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