class ExportTable

ExportTable is used to send routes to the FEA. 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 Unicast RIBs to send routes to the Forwarding Engine Abstraction (FEA) process. It is the final RouteTable in the RIB

 ExportTable (const string& tablename, RouteTable<A>* parent, FeaClient *fea)

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.
feaa pointer to the RIB's FeaClient instance. The FeaClient is used to communicate with the FEA 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 FEA.

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

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 FEA.

Reimplemented from RouteTable.


Generated by: pavlin on possum.icir.org on Mon Mar 10 19:35:00 2003, using kdoc 2.0a54+XORP.