typedef multimap< A, |
UnresolvedIPRouteEntry< A > * >
|UnresolvedIPRouteEntry (const IPRouteEntry< A > *route)|
|Constructor for a given IPRouteEntry. |
|const IPRouteEntry< A > *||route () const|
|Get the route. |
|void||set_backlink (typename RouteBackLink::iterator v)|
|Set the backlink. |
|RouteBackLink::iterator||backlink () const|
|Get the backlink. |
|const IPRouteEntry< A > *||_route|
This class stored an extended unresolved routing table entry, for use in ExtIntTable. When a route with a non-local nexthop arrives, the ExtIntTable attempts to discover a local nexthop by finding the route that packets to the non-local nexthop would use. If the local nexthop is not found, this entry is used to store the unresolved route.
|UnresolvedIPRouteEntry< A >::UnresolvedIPRouteEntry||(||const IPRouteEntry< A > *||route||)||
|UnresolvedIPRouteEntry< A >::RouteBackLink::iterator UnresolvedIPRouteEntry< A >::backlink||(||)|| const
|void UnresolvedIPRouteEntry< A >::set_backlink||(||typename RouteBackLink::iterator||v||)||
Set the backlink.
When an unresolved route is created, the ExtIntTable will store a link to it in a multimap that is indexed by the unresolved nexthop. This will allow all the routes affected by a change (e.g., resolving the nexthop) to be found easily. However, if the EGP parent goes away, we need to remove the links from this multimap, and the backlink provides an iterator into the multimap that makes this operation very efficient.