|
|
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:
tablename | the name of the table, used for debugging purposes. |
parent | the RouteTable immediately preceding this one. Usually this will be a RegisterTable. |
rib_clients_list | a 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 |
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:
route | the RouteEntry for the new route. |
caller | the RouteTable calling this method. This must be the same as _parent. |
Returns: XORP_OK on success, otherwise XORP_ERROR.
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:
route | the RouteEntry for the route being deleted. |
caller | the RouteTable calling this method. This must be the same as _parent. |
Returns: XORP_OK on success, otherwise XORP_ERROR.
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.
TableType type ()
| type |
[const]
Returns: the table type (TableType).
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_parent | the parent RouteTable being replaced (must be the same as the existing parent) |
new_parent | the 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.