|
| ||||||||||||||||
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_table | table 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 |
| 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]