class DecisionTable

BGPRouteTable which receives routes from all peers and decided which routes win. More...

 
LOGO
 Annotated List  Files  Globals  Hierarchy  Index  Top

Public Methods


Detailed Description

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.

DecisionTable is a BGPRouteTable which performs this decision process. It has many upstream BGPRouteTables and a single downstream BGPRouteTable. Only the winning routes according to the BGP decision process are propagated downstream.

When a new route reaches DecisionTable from one peer, we must lookup that route in all the other upstream branches to see if this route wins, or even if it doesn't win, if it causes a change of winning route. Similarly for route deletions coming from a peer, etc.

 DecisionTable (string tablename, Safi safi, NextHopResolver<A>& next_hop_resolver)

DecisionTable

 ~DecisionTable ()

~DecisionTable

int  add_parent (BGPRouteTable<A> *parent, PeerHandler *peer_handler, uint32_t genid)

add_parent

int  remove_parent (BGPRouteTable<A> *parent)

remove_parent

int  add_route (const InternalMessage<A> &rtmsg, BGPRouteTable<A> *caller)

add_route

Reimplemented from BGPRouteTable.

int  replace_route (const InternalMessage<A> &old_rtmsg, const InternalMessage<A> &new_rtmsg, BGPRouteTable<A> *caller)

replace_route

Reimplemented from BGPRouteTable.

int  delete_route (const InternalMessage<A> &rtmsg, BGPRouteTable<A> *caller)

delete_route

Reimplemented from BGPRouteTable.

int  route_dump (const InternalMessage<A> &rtmsg, BGPRouteTable<A> *caller, const PeerHandler *peer)

route_dump

Reimplemented from BGPRouteTable.

int  push (BGPRouteTable<A> *caller)

push

Reimplemented from BGPRouteTable.

const SubnetRoute<A> * lookup_route (const IPNet<A> &net, uint32_t& genid)

lookup_route

[const]

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.

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

[virtual]

Notification that the status of this next hop has changed.

Parameters:

bgp_nexthopThe next hop that has changed.

Reimplemented from BGPRouteTable.

void  peering_went_down (const PeerHandler *peer, uint32_t genid, BGPRouteTable<A> *caller)

peering_went_down

Reimplemented from BGPRouteTable.

void  peering_down_complete (const PeerHandler *peer, uint32_t genid, BGPRouteTable<A> *caller)

peering_down_complete

Reimplemented from BGPRouteTable.

void  peering_came_up (const PeerHandler *peer, uint32_t genid, BGPRouteTable<A> *caller)

peering_came_up

Reimplemented from BGPRouteTable.


Generated by: pavlin on possum.icir.org on Wed Mar 21 11:23:48 2007, using kdoc $.