class FilterTable

specialized BGPRouteTable implementing a filter bank to modify or drop routes. 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. After decision, the winning routes fanout again along a set of pipelines, again being filtered, before being transmitted to peers.

FilterTable is a BGPRouteTable that can hold banks of route filters. Normally FilterTable propagates add_route, delete_route and the response to lookup_route directly through from the parent to the child. A route filter can cause these to not be be propagated, or can modify the attributes of the route in the message.

Typically there are two FilterTables for each peer, one in the input branch from that peer, and one in the output branch to that peer. A FilterTable does not store the routes it modifies. Thus is is normally followed by a CacheTable which stores those routes for later use.

 FilterTable (string tablename, Safi safi, BGPRouteTable<A> *parent, NextHopResolver<A>& next_hop_resolver)

FilterTable

 ~FilterTable ()

~FilterTable

void  reconfigure_filter ()

reconfigure_filter

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

add_route

Reimplemented from BGPRouteTable.

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

replace_route

Reimplemented from BGPRouteTable.

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

delete_route

Reimplemented from BGPRouteTable.

int  route_dump (InternalMessage<A> &rtmsg, BGPRouteTable<A> *caller, const PeerHandler *dump_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, FPAListRef& pa_list)

lookup_route

[const]

Reimplemented from BGPRouteTable.

void  route_used (const SubnetRoute<A>* route, bool in_use)

route_used

Reimplemented from BGPRouteTable.

RouteTableType  type ()

type

[const]

Reimplemented from BGPRouteTable.

string  str ()

str

[const]

Reimplemented from BGPRouteTable.

bool  get_next_message (BGPRouteTable<A> *next_table)

get_next_message

Reimplemented from BGPRouteTable.

int  add_aggregation_filter (bool is_ibgp)

add_aggregation_filter

int  add_simple_AS_filter (const AsNum &asn)

add_simple_AS_filter

int  add_route_reflector_input_filter (IPv4 bgp_id, IPv4 cluster_id)

add_route_reflector_input_filter

int  add_AS_prepend_filter (const AsNum &asn, bool is_confederation_peer)

add_AS_prepend_filter

int  add_nexthop_rewrite_filter (const A& nexthop, bool directly_connected, const IPNet<A> &subnet)

add_nexthop_rewrite_filter

int  add_nexthop_peer_check_filter (const A& nexthop, const A& peer_address)

add_nexthop_peer_check_filter

int  add_ibgp_loop_filter ()

add_ibgp_loop_filter

int  add_route_reflector_ibgp_loop_filter (bool client, IPv4 bgp_id, IPv4 cluster_id)

add_route_reflector_ibgp_loop_filter

int  add_route_reflector_purge_filter ()

add_route_reflector_purge_filter

int  add_localpref_insertion_filter (uint32_t default_local_pref)

add_localpref_insertion_filter

int  add_localpref_removal_filter ()

add_localpref_removal_filter

int  add_med_insertion_filter ()

add_med_insertion_filter

int  add_med_removal_filter ()

add_med_removal_filter

int  add_known_community_filter (PeerType peer_type)

add_known_community_filter

int  add_unknown_filter ()

add_unknown_filter

int  add_originate_route_filter (const AsNum &asn, PeerType peer_type)

add_originate_route_filter

void  do_versioning ()

do_versioning


Generated by: pavlin on kobe.xorp.net on Wed Jan 7 19:11:04 2009, using kdoc 2.0a54+XORP.