class RouteTable

Base class for a routing table. More...

 
LOGO
 Annotated List  Files  Globals  Hierarchy  Index  Top

Public Methods

Protected Methods


Detailed Description

This is the base class for a routing table. A RIB consists of a tree of RouteTables that take routes from routing protocols and merge them together so that routes that emerge from the last table are the best routes available, and have nexthop information that is for an immediate neighbor of this router. See the RIB design document for an overview of how RouteTable are plumbed together to form a RIB.

All RouteTables that form the RIB are derived from this base class.

RouteTables take routing changes in from one or more parents, and pass on those changes to the _next_table if the change is for the best of the alternative routes.

RouteTables take route lookup requests from their _next_table, and pass on those requests to their parents. If more than one parent has a response, only the best is returned as the answer.

Note: A = Address Type, e.g., IPv4 or IPv6.

 RouteTable (const string& name)

RouteTable

 ~RouteTable ()

~RouteTable

[virtual]

int  add_route (const IPRouteEntry<A>& route, RouteTable* caller)

add_route

[pure virtual]

int  delete_route (const IPRouteEntry<A>* route, RouteTable* caller)

delete_route

[pure virtual]

const IPRouteEntry<A>*  lookup_route (const IPNet<A>& net)

lookup_route

[const pure virtual]

const IPRouteEntry<A>*  lookup_route (const A& addr)

lookup_route

[const pure virtual]

RouteRange<A>*  lookup_route_range (const A& addr)

lookup_route_range

[const pure virtual]

void  set_next_table (RouteTable* next_table)

set_next_table

[virtual]

RouteTable*  parent ()

parent

[virtual]

TableType  type ()

type

[const pure virtual]

void  replumb (RouteTable* old_parent, RouteTable* new_parent)

replumb

[pure virtual]

string  str ()

str

[const pure virtual]

void  flush ()

flush

[virtual]

inline const string&  tablename ()

tablename

[const]

inline RouteTable*  next_table ()

next_table

inline const RouteTable*  next_table ()

next_table

[const]

void  replace_policytags (const IPRouteEntry<A>& route, const PolicyTags& prevtags, RouteTable* caller)

replace_policytags

[virtual]

inline void  set_tablename (const string& s)

set_tablename

[protected]


Generated by: pavlin on possum.icir.org on Wed Apr 13 21:53:20 2005, using kdoc $.