BGPRouteTable< A > Class Template Reference

Base class for a stage in BGP's internal plumbing. More...

#include <route_table_base.hh>

Inheritance diagram for BGPRouteTable< A >:
AggregationTable< A > CacheTable< A > DampingTable< A > DebugTable< A > DecisionTable< A > DeletionTable< A > DumpTable< A > FanoutTable< A > FilterTable< A > NhLookupTable< A > PolicyTable< A > RibInTable< A > RibOutTable< A >

List of all members.

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

Detailed Description

template<class A>
class BGPRouteTable< A >

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.

Member Function Documentation

template<class A>
void BGPRouteTable< A >::igp_nexthop_changed ( const A &  bgp_nexthop) [virtual]

Notification that the status of this next hop has changed.

bgp_nexthopThe next hop that has changed.

Reimplemented in DecisionTable< A >, RibInTable< A >, DummyDecisionTable< A >, DecisionTable< IPv4 >, and RibInTable< IPv4 >.

The documentation for this class was generated from the following files:
 All Classes Namespaces Functions Variables Typedefs Enumerations