|
|
The XORP BGP is internally implemented as a set of pipelines. Each pipeline receives routes from a BGP peer, stores them, and applies filters to them to modify the routes. Then the pipelines converge on a single decision process, which decides which route wins amongst possible alternative routes. After decision, the winning routes fanout again along a set of pipelines, again being filtered, before being transmitted to peers.
Each stage in these pipelines is a BGPRouteTable. BGPRouteTable is a virtual base class, so all the stages consist of specialized RouteTable class instances.
BGPRouteTable (string tablename, Safi safi)
| BGPRouteTable |
~BGPRouteTable ()
| ~BGPRouteTable |
[virtual]
int add_route (InternalMessage<A> &rtmsg,
BGPRouteTable<A> *caller)
| add_route |
[pure virtual]
int replace_route (InternalMessage<A> &old_rtmsg,
InternalMessage<A> &new_rtmsg,
BGPRouteTable<A> *caller)
| replace_route |
[pure virtual]
int delete_route (InternalMessage<A> &rtmsg,
BGPRouteTable<A> *caller)
| delete_route |
[pure virtual]
int route_dump (InternalMessage<A> &rtmsg,
BGPRouteTable<A> *caller,
const PeerHandler *dump_peer)
| route_dump |
[virtual]
int push (BGPRouteTable<A> *caller)
| push |
[pure virtual]
const
SubnetRoute<A> * lookup_route (const IPNet<A> &net,
uint32_t& genid,
FPAListRef& pa_list)
| lookup_route |
[const pure virtual]
void route_used (const SubnetRoute<A>* ,
bool )
| route_used |
[virtual]
void set_next_table (BGPRouteTable<A>* table)
| set_next_table |
BGPRouteTable<A> * next_table ()
| next_table |
BGPRouteTable<A> * parent ()
| parent |
[virtual]
void set_parent (BGPRouteTable<A> *parent)
| set_parent |
[virtual]
RouteTableType type ()
| type |
[const pure virtual]
const string& tablename ()
| tablename |
[const]
string str ()
| str |
[const pure virtual]
void wakeup ()
| wakeup |
[virtual]
bool get_next_message (BGPRouteTable *)
| get_next_message |
[virtual]
bool dump_next_route (DumpIterator<A>& dump_iter)
| dump_next_route |
[virtual]
void igp_nexthop_changed (const A& bgp_nexthop)
| igp_nexthop_changed |
[virtual]
Notification that the status of this next hop has changed.
Parameters:
bgp_nexthop | The next hop that has changed. |
void peering_went_down (const PeerHandler *peer, uint32_t genid,
BGPRouteTable<A> *caller)
| peering_went_down |
[virtual]
void peering_down_complete (const PeerHandler *peer, uint32_t genid,
BGPRouteTable<A> *caller)
| peering_down_complete |
[virtual]
void peering_came_up (const PeerHandler *peer, uint32_t genid,
BGPRouteTable<A> *caller)
| peering_came_up |
[virtual]
Safi safi ()
| safi |
[const]
BGPRouteTable<A> * _next_table | _next_table |
[protected]
BGPRouteTable<A> * _parent | _parent |
[protected]
string _tablename | _tablename |
[protected]
const Safi _safi | _safi |
[protected]