class ExportTable

ExportTable is used to send routes to the RIB clients. More...

Definition#include <rt_tab_export.hh>
Template formExportTable<class A>
InheritsRouteTable [public ]
List of all Methods
Annotated List
Files
Globals
Hierarchy
Index

Public Methods


Detailed Description

ExportTable is a RouteTable that is used in RIBs to send routes to the RIB clients such as the Forwarding Engine Abstraction (FEA) process. It is the final RouteTable in the RIB.

 ExportTable (const string& tablename, RouteTable<A> *parent, list<RibClient *> *rib_clients_list)

ExportTable

ExportTable Constructor

Parameters:
tablenamethe name of the table, used for debugging purposes.
parentthe RouteTable immediately preceding this one. Usually this will be a RegisterTable.
rib_clients_lista pointer to the RIB's list of RibClient instances. The list of RibClient instances is used to communicate with the RIB clients using XRLs.

 ~ExportTable ()

~ExportTable

ExportTable Destructor

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

add_route

add_route is called when a new route is successfully added to the RIB, and this needs to be communicated to the RIB clients.

Parameters:
routethe RouteEntry for the new route.
callerthe RouteTable calling this method. This must be the same as _parent

Reimplemented from RouteTable.

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

delete_route

delete_route is called when a route is removed from the the RIB, and this needs to be communicated to the RIB clients.

Parameters:
routethe RouteEntry for the route being deleted.
callerthe RouteTable calling this method. This must be the same as _parent

Reimplemented from RouteTable.

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

lookup_route

[const]

lookup a route in this RIB. This request is simply passed on unchanged to the parent.

Reimplemented from RouteTable.

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

lookup_route

[const]

lookup a route in this RIB. This request is simply passed on unchanged to the parent.

Reimplemented from RouteTable.

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

lookup_route_range

[const]

lookup a route range in this RIB. This request is simply passed on unchanged to the parent.

Reimplemented from RouteTable.

int  type ()

type

[const]

Returns: EXPORT_TABLE

Reimplemented from RouteTable.

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

replumb

replumb to replace the old parent of this table with a new parent

Parameters:
old_parentthe parent RouteTable being replaced (must be the same as the existing parent)
new_parentthe new parent RouteTable

Reimplemented from RouteTable.

RouteTable<A> * parent ()

parent

Returns: this ExportTable's parent RouteTable

Reimplemented from RouteTable.

string  str ()

str

[const]

Returns: this ExportTable as a string for debugging purposes

Reimplemented from RouteTable.

void  flush ()

flush

A single routing change communicated by a routing protocol can cause multiple add_route and delete_route events at the ExportTable (typically a delete_route then an add_route to replace a route). flush is called explicitly after the end of a batch of changes to allow events to be queued and then amalgamated in the ExportTable to reduce unnecessary changes reaching the RIB clients.

Reimplemented from RouteTable.


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