class RedistTable

RouteTable used to redistribute routes. More...

 
LOGO
 Annotated List  Files  Globals  Hierarchy  Index  Top

Public Types

Public Methods

Protected Members


Detailed Description

The RedistTable is used to redistribute routes from a routing table back out to a routing protocol. For example, when you want to redistribute BGP routes into OSPF.

For most operations the RedistTable is essentially a passthrough. It keeps track of nets it hears add and deletes for so when route Redistributor objects are added to the RedistTable they can announce the existing routes at startup.

Design note: RedistTable uses a set of IPNet's to cache routes - this should be route entry pointers with an appropriate comparitor (not pointer value based).

typedef set<IPNet<A>,RedistNetCmp<A> > RouteIndex

RouteIndex

 RedistTable (const string& tablename, RouteTable<A>* from_table)

RedistTable

Constructor.

Plumbs RedistTable in RIB graph after from_table.

Parameters:

from_tabletable to redistribute routes from.
 ~RedistTable ()

~RedistTable

Destructor.

Unplumbs table and deletes Redistributor object instances previously added with add_redistributor and not previously removed with remove_redistributor.

void  add_redistributor (Redistributor<A>* r)

add_redistributor

Add a redistributor to announce existing routes and future updates to.

void  remove_redistributor (Redistributor<A>* r)

remove_redistributor

Remove a redistributor.

Redistributor<A>*  redistributor (const string& name)

redistributor

Find redistributor with given name attribute.

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

add_route

Reimplemented from RouteTable.

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

delete_route

Reimplemented from RouteTable.

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

lookup_route

[const]

Reimplemented from RouteTable.

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

lookup_route

[const]

Reimplemented from RouteTable.

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

lookup_route_range

[const]

Reimplemented from RouteTable.

TableType  type ()

type

[const]

Reimplemented from RouteTable.

RouteTable<A>*  parent ()

parent

Reimplemented from RouteTable.

void  replumb (RouteTable<A>* old_parent, RouteTable<A>* new_parent)

replumb

Reimplemented from RouteTable.

string  str ()

str

[const]

Reimplemented from RouteTable.

inline const RouteIndex&  route_index ()

route_index

[const]

Get nets of live routes seen by RedistTable since it was instantiated.

RouteTable<A>* _parent

_parent

[protected]

RouteIndex _rt_index

_rt_index

[protected]

list<Redistributor<A>*> _outputs

_outputs

[protected]


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