|
|
All policy filter tables in BGP have very similar functionality. Some have more features than others, but most of the code is shared.
The export filter is the most "standard" table, so it is used as a base table for the source match and import filter tables.
PolicyTable (const string& tablename, const Safi& safi,
BGPRouteTable<A>* parent,
PolicyFilters& pfs,
const filter::Filter& type)
| PolicyTable |
Parameters:
tablename | name of the table. |
safi | the safi. |
parent | the parent table. |
pfs | a reference to the global policy filters. |
type | the type of policy filter used in this table. |
~PolicyTable ()
| ~PolicyTable |
[virtual]
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 *dump_peer)
| route_dump |
[virtual]
Reimplemented from BGPRouteTable.
int push (BGPRouteTable<A> *caller)
| push |
Reimplemented from BGPRouteTable.
void route_used (const SubnetRoute<A>* route, bool in_use)
| route_used |
Reimplemented from BGPRouteTable.
bool get_next_message (BGPRouteTable<A> *next_table)
| get_next_message |
Reimplemented from BGPRouteTable.
const SubnetRoute<A> * lookup_route (const IPNet<A> &net,
uint32_t& genid)
| lookup_route |
[const]
Reimplemented from BGPRouteTable.
RouteTableType type ()
| type |
[const]
Reimplemented from BGPRouteTable.
string str ()
| str |
[const]
Reimplemented from BGPRouteTable.
const InternalMessage<A>* do_filtering (const InternalMessage<A>& rtmsg,
bool no_modify)
| do_filtering |
[const]
Performs policy filtering on a route.
If null is returned, then the route is rejected. The pointer to the same route may be returned if the route is accepted but not modified. A pointer to a different route will be returned in the case of an accepted and modified route. The old route will be deleted.
Parameters:
rtmsg | the route message to filter. |
no_modify | if true, the filter will not modify the route. |
Returns: the possibly modified message, Null if rejected by filter.
const filter::Filter _filter_type | _filter_type |
[protected]
void init_varrw ()
| init_varrw |
[protected virtual]
BGPVarRW<A>* _varrw | _varrw |
[protected]