|
|
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.
This is a template class, where A is either a the IPv4 class or the IPv6 class.
typedef multimap<A, UnresolvedIPRouteEntry<A>* > RouteBackLink | RouteBackLink |
UnresolvedIPRouteEntry (const IPRouteEntry<A>* route)
| UnresolvedIPRouteEntry |
Constructor for a given IPRouteEntry.
Parameters:
route | the IPRouteEntry route. |
inline const IPRouteEntry<A>* route ()
| route |
[const]
Get the route.
Returns: the route.
inline void set_backlink (typename RouteBackLink::iterator v)
| set_backlink |
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.
Parameters:
backlink | the ExtIntTable multimap iterator for this route. |
inline typename RouteBackLink::iterator backlink ()
| backlink |
[const]
Get the backlink.
Returns: the backlink iterator.
See also: set_backlink