class PeerHandler

PeerHandler's job is primarily format conversion. More...

 
LOGO
 Annotated List  Files  Globals  Hierarchy  Index  Top

Public Methods

Protected Members


Detailed Description

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 (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, ref_ptr<FastPathAttributeList<IPv4> >& original_pa_list, ref_ptr<FastPathAttributeList<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, ref_ptr<FastPathAttributeList<IPv4> >& original_pa_list, 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 ()

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, FPAList4Ref& pa_list, bool ibgp, Safi safi)

add_route

[virtual]

int  add_route (const SubnetRoute<IPv6> &rt, FPAList6Ref& pa_list, bool ibgp, Safi safi)

add_route

[virtual]

int  replace_route (const SubnetRoute<IPv4> &old_rt, bool old_ibgp, const SubnetRoute<IPv4> &new_rt, bool new_ibgp, FPAList4Ref& pa_list, Safi safi)

replace_route

[virtual]

int  replace_route (const SubnetRoute<IPv6> &old_rt, bool old_ibgp, const SubnetRoute<IPv6> &new_rt, bool new_ibgp, FPAList6Ref& pa_list, Safi safi)

replace_route

[virtual]

int  delete_route (const SubnetRoute<IPv4> &rt, FPAList4Ref& pa_list, bool new_ibgp, Safi safi)

delete_route

[virtual]

int  delete_route (const SubnetRoute<IPv6> &rt, FPAList6Ref& pa_list, bool new_ibgp, Safi safi)

delete_route

[virtual]

PeerOutputState  push_packet ()

push_packet

[virtual]

void  output_no_longer_busy ()

output_no_longer_busy

[virtual]

AsNum  my_AS_number ()

my_AS_number

[const]

The AS number of this router.

AsNum  AS_number ()

AS_number

[const]

The AS number of the peer router.

bool  use_4byte_asnums ()

use_4byte_asnums

[const]

Do we use 4-byte AS numbers with this peer?

PeerType  get_peer_type ()

get_peer_type

[const virtual]

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.

uint32_t  get_unique_id ()

get_unique_id

[const virtual]

Returns: an ID that is unique per peer for use in decision.

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 by decision.

const IPv4&  my_v4_nexthop ()

my_v4_nexthop

[const]

const IPv6&  my_v6_nexthop ()

my_v6_nexthop

[const]

string  get_local_addr ()

get_local_addr

[const]

Get the local address as a string in numeric form.

string  get_peer_addr ()

get_peer_addr

[const]

Get the peer address as a string in numeric form.

bool  get_peer_addr (IPv4& addr)

get_peer_addr

[const]

Parameters:

addrfill in the address if this is IPv4.

Returns: true if the peer address is IPv4.

bool  get_peer_addr (IPv6& addr)

get_peer_addr

[const]

Parameters:

addrfill in the address if this is IPv6.

Returns: true if the peer address is IPv6.

uint32_t  get_prefix_count ()

get_prefix_count

[const]

Returns: the number of prefixes in the RIB-IN.

EventLoop&  eventloop ()

eventloop

[const virtual]

BGPPlumbing * _plumbing_unicast

_plumbing_unicast

[protected]

BGPPlumbing * _plumbing_multicast

_plumbing_multicast

[protected]


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