class RouteTable

Base class for a routing table. More...

Contains pure virtuals
Definition#include <rt_tab_base.hh>
Template formRouteTable<class A>
Inherited byDebugTable, DeletionTable, ExportTable, ExtIntTable, MergedTable, OriginTable, RedistTable, RegisterTable
List of all Methods
Annotated List
Files
Globals
Hierarchy
Index

Public Methods

Protected Members


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.

 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> *, 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

RouteTablenext_table ()

next_table

RouteTableparent ()

parent

[virtual]

int  type ()

type

[const pure virtual]

const string&  tablename ()

tablename

[const]

void  replumb (RouteTable *old_parent, RouteTable *new_parent)

replumb

[pure virtual]

string  str ()

str

[const pure virtual]

void  flush ()

flush

[virtual]

string _tablename

_tablename

[protected]

RouteTable * _next_table

_next_table

[protected]


Generated by: pavlin on possum.icir.org on Thu Nov 6 23:47:07 2003, using kdoc 2.0a54+XORP.