|
xorp
|
Base class for a stage in BGP's internal plumbing. More...
#include <route_table_base.hh>
Public Member Functions | |
| BGPRouteTable (string tablename, Safi safi) | |
| virtual int | add_route (InternalMessage< A > &rtmsg, BGPRouteTable< A > *caller)=0 |
| virtual int | replace_route (InternalMessage< A > &old_rtmsg, InternalMessage< A > &new_rtmsg, BGPRouteTable< A > *caller)=0 |
| virtual int | delete_route (InternalMessage< A > &rtmsg, BGPRouteTable< A > *caller)=0 |
| virtual int | route_dump (InternalMessage< A > &rtmsg, BGPRouteTable< A > *caller, const PeerHandler *dump_peer) |
| virtual int | push (BGPRouteTable< A > *caller)=0 |
| virtual const SubnetRoute< A > * | lookup_route (const IPNet< A > &net, uint32_t &genid, FPAListRef &pa_list) const =0 |
| virtual void | route_used (const SubnetRoute< A > *, bool) |
| void | set_next_table (BGPRouteTable< A > *table) |
| BGPRouteTable< A > * | next_table () |
| virtual BGPRouteTable< A > * | parent () |
| virtual void | set_parent (BGPRouteTable< A > *parent) |
| virtual RouteTableType | type () const =0 |
| const string & | tablename () const |
| virtual string | str () const =0 |
| virtual void | wakeup () |
| virtual bool | get_next_message (BGPRouteTable *) |
| virtual bool | dump_next_route (DumpIterator< A > &dump_iter) |
| virtual void | igp_nexthop_changed (const A &bgp_nexthop) |
| Notification that the status of this next hop has changed. | |
| virtual void | peering_went_down (const PeerHandler *peer, uint32_t genid, BGPRouteTable< A > *caller) |
| virtual void | peering_down_complete (const PeerHandler *peer, uint32_t genid, BGPRouteTable< A > *caller) |
| virtual void | peering_came_up (const PeerHandler *peer, uint32_t genid, BGPRouteTable< A > *caller) |
| Safi | safi () const |
Protected Attributes | |
| BGPRouteTable< A > * | _next_table |
| BGPRouteTable< A > * | _parent |
| string | _tablename |
| const Safi | _safi |
Base class for a stage in BGP's internal plumbing.
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.
| void BGPRouteTable< A >::igp_nexthop_changed | ( | const A & | bgp_nexthop | ) | [virtual] |
Notification that the status of this next hop has changed.
| bgp_nexthop | The next hop that has changed. |
Reimplemented in DecisionTable< A >, RibInTable< A >, DummyDecisionTable< A >, DecisionTable< IPv4 >, and RibInTable< IPv4 >.