|
|
PeerHandler's job is primarily format conversion. But it also servers as a handle to tie together the input and output sides of a RIB.
PeerHandler (const string &peername, BGPPeer *peer,
BGPPlumbing *plumbing_unicast,
BGPPlumbing *plumbing_multicast)
| PeerHandler |
~PeerHandler ()
| ~PeerHandler |
[virtual]
void stop ()
| stop |
void peering_went_down ()
| peering_went_down |
void peering_came_up ()
| peering_came_up |
bool peering_is_up ()
| peering_is_up |
[const]
int process_update_packet (const UpdatePacket *p)
| process_update_packet |
process_update_packet is called when an update packet has been received by this peer
template <typename A> bool add (const UpdatePacket *p,
PathAttributeList<A>& pa_list,Safi safi)
| add |
Given an update packet find all the NLRIs with <AFI,SAFI> specified and inject one by one into the plumbing.
Parameters:
p | - packet to tease apart |
safi | - Subsequent address family identifier |
Returns: true if an <AFI,SAFI> was found.
template <typename A> bool withdraw (const UpdatePacket *p, Safi safi)
| withdraw |
Given an update packet find all the WITHDRAWs with <AFI,SAFI> specified and inject one by on into the plumbing.
Parameters:
p | - packet to tease apart |
safi | - Subsequent address family identifier |
Returns: true if an <AFI,SAFI> was found.
template <typename A> bool multiprotocol (Safi safi,
BGPPeerData::Direction d)
| multiprotocol |
[const]
int start_packet (bool ibgp)
| start_packet |
[virtual]
add_route and delete_route are called by the plumbing to propagate a route *to* the peer.
int add_route (const SubnetRoute<IPv4> &rt, Safi safi)
| add_route |
[virtual]
int add_route (const SubnetRoute<IPv6> &rt, Safi safi)
| add_route |
[virtual]
int replace_route (const SubnetRoute<IPv4> &old_rt,
const SubnetRoute<IPv4> &new_rt,
Safi safi)
| replace_route |
[virtual]
int replace_route (const SubnetRoute<IPv6> &old_rt,
const SubnetRoute<IPv6> &new_rt,
Safi safi)
| replace_route |
[virtual]
int delete_route (const SubnetRoute<IPv4> &rt, Safi safi)
| delete_route |
[virtual]
int delete_route (const SubnetRoute<IPv6> &rt, Safi safi)
| delete_route |
[virtual]
PeerOutputState push_packet ()
| push_packet |
[virtual]
void output_no_longer_busy ()
| output_no_longer_busy |
[virtual]
AsNum AS_number ()
| AS_number |
[const]
const string& peername ()
| peername |
[const]
bool ibgp ()
| ibgp |
[const]
bool originate_route_handler ()
| originate_route_handler |
[const virtual]
Returns: true if this is the originate route handler.
const IPv4& id ()
| id |
[const virtual]
Returns: the neighbours BGP ID as an integer for use by decision.
uint32_t neighbour_address ()
| neighbour_address |
[const]
Returns: the neighbours IP address an as integer for use be decision.
const IPv4& my_v4_nexthop ()
| my_v4_nexthop |
[const]
const IPv6& my_v6_nexthop ()
| my_v6_nexthop |
[const]
EventLoop& eventloop ()
| eventloop |
[const]
BGPPlumbing * _plumbing_unicast | _plumbing_unicast |
[protected]
BGPPlumbing * _plumbing_multicast | _plumbing_multicast |
[protected]
bool _ibgp | _ibgp |
[protected]