|
|
The XORP BGP is internally implemented as a set of pipelines consisting of a series of BGPRouteTables. 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.
RibInTable is the first stage in such a pipeline. It receives routes from a single BGP peer, and stores them. Changes are passed down the pipeline as they occur, and route lookups from downstream are answered by the RibInTable.
RibInTable (string tablename, Safi safi, const PeerHandler *peer)
| RibInTable |
~RibInTable ()
| ~RibInTable |
void flush ()
| flush |
Remove all the stored routes. Used to flush static routes only.
int add_route (const InternalMessage<A> &rtmsg,
BGPRouteTable<A> *caller)
| add_route |
Reimplemented from BGPRouteTable.
void ribin_peering_went_down ()
| ribin_peering_went_down |
void ribin_peering_came_up ()
| ribin_peering_came_up |
int replace_route (const InternalMessage<A> & ,
const InternalMessage<A> & ,
BGPRouteTable<A> * )
| replace_route |
Reimplemented from BGPRouteTable.
int delete_route (const InternalMessage<A> &rtmsg,
BGPRouteTable<A> *caller)
| delete_route |
Reimplemented from BGPRouteTable.
int push (BGPRouteTable<A> *caller)
| push |
Reimplemented from BGPRouteTable.
int delete_add_routes ()
| delete_add_routes |
const SubnetRoute<A> * lookup_route (const IPNet<A> &net,
uint32_t& genid)
| lookup_route |
[const]
Reimplemented from BGPRouteTable.
void route_used (const SubnetRoute<A>* route, bool in_use)
| route_used |
Reimplemented from BGPRouteTable.
BGPRouteTable<A> * parent ()
| parent |
Reimplemented from BGPRouteTable.
RouteTableType type ()
| type |
[const]
Reimplemented from BGPRouteTable.
string str ()
| str |
[const]
Reimplemented from BGPRouteTable.
bool get_next_message (BGPRouteTable<A> *)
| get_next_message |
Reimplemented from BGPRouteTable.
void set_peer_is_up ()
| set_peer_is_up |
bool dump_next_route (DumpIterator<A>& dump_iter)
| dump_next_route |
Reimplemented from BGPRouteTable.
void igp_nexthop_changed (const A& bgp_nexthop)
| igp_nexthop_changed |
Reimplemented from BGPRouteTable.
int route_count ()
| route_count |
[const]
BgpTrie<A>& trie ()
| trie |
[const]
const PeerHandler* peer_handler ()
| peer_handler |
[const]
uint32_t genid ()
| genid |
[const]
void crash_dump ()
| crash_dump |
[const]
Reimplemented from CrashDumper.
string dump_state ()
| dump_state |
[const]
Reimplemented from CrashDumper.