OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
BgpPeer Class Reference

#include <bgp_peer.h>

Inheritance diagram for BgpPeer:
Collaboration diagram for BgpPeer:

Classes

class  DeleteActor
 
struct  OriginOverride
 
class  PeerStats
 

Public Types

typedef std::set< Address::FamilyAddressFamilyList
 
typedef AuthenticationData::KeyType KeyType
 
typedef std::set< RouteTargetRouteTargetList
 
typedef boost::function< void()> WalkDoneCb
 
- Public Types inherited from Peer
enum  Type {
  MULTICAST_PEER, EVPN_PEER, BGP_PEER, EVPN_ROUTING_PEER,
  LINKLOCAL_PEER, ECMP_PEER, VXLAN_BGP_PEER, LOCAL_VM_PORT_PEER,
  LOCAL_VM_PEER, LOCAL_PEER, NOVA_PEER, VGW_PEER,
  MULTICAST_FABRIC_TREE_BUILDER, OVS_PEER, MULTICAST_TOR_PEER, MAC_VM_BINDING_PEER,
  INET_EVPN_PEER, MAC_LEARNING_PEER
}
 
typedef std::map< std::string,
Peer * > 
PeerMap
 
typedef std::pair< std::string,
Peer * > 
PeerPair
 

Public Member Functions

 BgpPeer (BgpServer *server, RoutingInstance *instance, const BgpNeighborConfig *config)
 
virtual ~BgpPeer ()
 
virtual const std::string & ToString () const
 
virtual const std::string & ToUVEKey () const
 
virtual bool SendUpdate (const uint8_t *msg, size_t msgsize, const std::string *msg_str)
 
virtual bool SendUpdate (const uint8_t *msg, size_t msgsize)
 
virtual bool FlushUpdate ()
 
void ConfigUpdate (const BgpNeighborConfig *config)
 
void ClearConfig ()
 
bool AcceptSession (BgpSession *session)
 
BgpSessionCreateSession ()
 
virtual void SetAdminState (bool down, int subcode=BgpProto::Notification::AdminShutdown)
 
void SendOpen (TcpSession *session)
 
void SendKeepalive (bool from_timer)
 
void SendNotification (BgpSession *, int code, int subcode=0, const std::string &data=std::string())
 
void ProcessUpdate (const BgpProto::Update *msg, size_t msgsize=0)
 
virtual bool ReceiveMsg (BgpSession *session, const u_int8_t *msg, size_t size)
 
void StartKeepaliveTimer ()
 
bool KeepaliveTimerRunning ()
 
bool PrefixLimitIdleTimerRunning () const
 
void SetSendReady ()
 
bool SetCapabilities (const BgpProto::OpenMessage *msg)
 
void ResetCapabilities ()
 
void RegisterAllTables ()
 
virtual BgpServerserver ()
 
virtual BgpServerserver () const
 
uint32_t PeerAddress () const
 
const std::string peer_address_string () const
 
const BgpPeerKeypeer_key () const
 
uint16_t peer_port () const
 
std::string transport_address_string () const
 
std::string gateway_address_string (Address::Family family) const
 
const std::string & peer_name () const
 
const std::string & peer_basename () const
 
std::string router_type () const
 
TcpSession::Endpoint endpoint () const
 
virtual bool CheckSplitHorizon (uint32_t cluster_id=0, uint32_t ribout_cid=0) const
 
StateMachine::State GetState () const
 
virtual const std::string GetStateName () const
 
void set_session (BgpSession *session)
 
void clear_session ()
 
BgpSessionsession ()
 
uint16_t hold_time () const
 
as_t local_as () const
 
as_t peer_as () const
 
size_t buffer_size () const
 
virtual uint32_t local_bgp_identifier () const
 
std::string local_bgp_identifier_string () const
 
virtual uint32_t bgp_identifier () const
 
std::string bgp_identifier_string () const
 
const std::vector< std::string > & configured_families () const
 
bool LookupFamily (Address::Family family)
 
bool IsFamilyNegotiated (Address::Family family)
 
RoutingInstanceGetRoutingInstance ()
 
RoutingInstanceGetRoutingInstance () const
 
int GetIndex () const
 
int GetTaskInstance () const
 
virtual BgpProto::BgpPeerType PeerType () const
 
const string & private_as_action () const
 
const BgpNeighborConfigconfig () const
 
virtual void SetDataCollectionKey (BgpPeerInfo *peer_info) const
 
void FillNeighborInfo (const BgpSandeshContext *bsc, BgpNeighborResp *bnr, bool summary) const
 
bool IsDeleted () const
 
bool IsAdminDown () const
 
bool IsPassive () const
 
bool IsCloseInProgress () const
 
virtual bool IsReady () const
 
virtual bool IsXmppPeer () const
 
virtual bool CanUseMembershipManager () const
 
virtual bool IsRegistrationRequired () const
 
virtual time_t GetEorSendTimerElapsedTime () const
 
virtual bool send_ready () const
 
void Close (bool graceful)
 
void Clear (int subcode)
 
virtual IPeerClosepeer_close ()
 
virtual IPeerClosepeer_close () const
 
virtual void UpdateCloseRouteStats (Address::Family family, const BgpPath *old_path, uint32_t path_flags) const
 
virtual IPeerDebugStatspeer_stats ()
 
virtual const IPeerDebugStatspeer_stats () const
 
void ManagedDelete ()
 
void RetryDelete ()
 
LifetimeActordeleter ()
 
void Initialize ()
 
void NotifyEstablished (bool established)
 
void increment_flap_count ()
 
void reset_flap_count ()
 
uint64_t flap_count () const
 
uint64_t last_flap () const
 
uint64_t total_flap_count () const
 
void DSCPUpdateCallback (uint8_t dscp_value)
 
std::string last_flap_at () const
 
void inc_rx_open ()
 
void inc_rx_keepalive ()
 
void inc_rx_update ()
 
void inc_rx_notification ()
 
void inc_tx_open ()
 
void inc_tx_keepalive ()
 
void inc_tx_update ()
 
void inc_tx_notification ()
 
void inc_rx_end_of_rib ()
 
void inc_rx_route_reach (uint64_t count)
 
void inc_rx_route_unreach (uint64_t count)
 
void inc_tx_end_of_rib ()
 
uint64_t get_rx_keepalive () const
 
uint64_t get_rx_update () const
 
uint64_t get_rx_notification () const
 
uint64_t get_tx_keepalive () const
 
uint64_t get_tx_update () const
 
uint64_t get_rx_end_of_rib () const
 
uint64_t get_rx_route_reach () const
 
uint64_t get_rx_route_unreach () const
 
uint64_t get_rx_route_total () const
 
uint64_t get_tx_end_of_rib () const
 
uint64_t get_tx_route_reach () const
 
uint64_t get_tx_route_unreach () const
 
uint64_t get_tx_route_total () const
 
void inc_connect_error ()
 
void inc_connect_timer_expired ()
 
void inc_hold_timer_expired ()
 
void inc_open_error ()
 
void inc_update_error ()
 
uint64_t get_connect_error () const
 
uint64_t get_connect_timer_expired () const
 
uint64_t get_hold_timer_expired () const
 
uint64_t get_open_error () const
 
uint64_t get_update_error () const
 
uint64_t get_socket_reads () const
 
uint64_t get_socket_writes () const
 
bool ResumeClose ()
 
void MembershipRequestCallback (BgpTable *table)
 
virtual void UpdateTotalPathCount (int count) const
 
virtual int GetTotalPathCount () const
 
virtual bool IsAs4Supported () const
 
virtual void ResetAs4Supported ()
 
virtual void UpdatePrimaryPathCount (int count, Address::Family family) const
 
virtual void ProcessPathTunnelEncapsulation (const BgpPath *path, BgpAttr *attr, ExtCommunityDB *extcomm_db, const BgpTable *table) const
 
virtual const std::vector
< std::string > 
GetDefaultTunnelEncap (const Address::Family family) const
 
virtual int GetPrimaryPathCount () const
 
void RegisterToVpnTables ()
 
StateMachinestate_machine ()
 
const StateMachinestate_machine () const
 
bool GetBestAuthKeyItem (AuthenticationKey *auth_key)
 
bool InstallAuthKeys ()
 
std::string GetInuseAuthKeyValue () const
 
void SetListenSocketAuthKey (const AuthenticationKey &auth_key, KeyType key_type)
 
void ClearListenSocketAuthKey ()
 
void SetSessionSocketAuthKey (TcpSession *session)
 
void SetSessionSocketOptionDscp (TcpSession *session)
 
bool AttemptGRHelperMode (int code, int subcode) const
 
void Register (BgpTable *table, const RibExportPolicy &policy)
 
void Register (BgpTable *table)
 
bool EndOfRibSendTimerExpired (Address::Family family)
 
void CustomClose ()
 
const std::vector< std::string > & negotiated_families () const
 
void ReceiveEndOfRIB (Address::Family family, size_t msgsize)
 
const std::vector
< BgpProto::OpenMessage::Capability * > & 
capabilities () const
 
virtual bool IsInGRTimerWaitState () const
 
PeerCloseManagerclose_manager ()
 
virtual bool IsServerStartingUp () const
 
bool IsCloseGraceful () const
 
bool IsRouterTypeBGPaaS () const
 
virtual bool ProcessSession () const
 
void RoutingInstanceCallback (const std::string &vrf_name, int op)
 
void ASNUpdateCallback (as_t old_asn, as_t old_local_asn)
 
 BgpPeer (AgentXmppChannel *channel, const Ip4Address &server_ip, const std::string &name, DBTableBase::ListenerId id, Peer::Type bgp_peer_type)
 
virtual ~BgpPeer ()
 
bool Compare (const Peer *rhs) const
 
void SetVrfListenerId (DBTableBase::ListenerId id)
 
DBTableBase::ListenerId GetVrfExportListenerId ()
 
void PeerNotifyRoutes (WalkDoneCb cb)
 
void PeerNotifyMulticastRoutes (bool associate)
 
void AllocPeerNotifyWalker ()
 
void ReleasePeerNotifyWalker ()
 
void StopPeerNotifyRoutes ()
 
void DelPeerRoutes (WalkDoneCb walk_done_cb, uint64_t sequence_number)
 
void DeleteStale ()
 
void AllocDeleteStaleWalker ()
 
void ReleaseDeleteStaleWalker ()
 
void AllocDeletePeerWalker ()
 
void ReleaseDeletePeerWalker ()
 
void StopDeleteStale ()
 
ControllerRouteWalkerroute_walker () const
 
ControllerRouteWalkerdelete_stale_walker () const
 
ControllerRouteWalkerdelete_peer_walker () const
 
DBStateGetVrfExportState (DBTablePartBase *partition, DBEntryBase *e)
 
DBStateGetRouteExportState (DBTablePartBase *partition, DBEntryBase *e)
 
void DeleteVrfState (DBTablePartBase *partition, DBEntryBase *entry)
 
uint32_t setup_time () const
 
Agentagent () const
 
AgentXmppChannelGetAgentXmppChannel () const
 
uint64_t ChannelSequenceNumber () const
 
void set_route_walker_cb (WalkDoneCb cb)
 
void set_delete_stale_walker_cb (WalkDoneCb cb)
 
void set_delete_peer_walker_cb (WalkDoneCb cb)
 
- Public Member Functions inherited from DynamicPeer
 DynamicPeer (Agent *agent, Type type, const std::string &name, bool controller_export)
 
virtual ~DynamicPeer ()
 
virtual bool SkipAddChangeRequest () const
 
void StopRouteExports ()
 
bool DeleteTimeout ()
 
- Public Member Functions inherited from Peer
 Peer (Type type, const std::string &name, bool controller_export)
 
virtual ~Peer ()
 
bool IsLess (const Peer *rhs) const
 
virtual bool export_to_controller () const
 
virtual const Ip4AddressNexthopIp (Agent *agent, const AgentPath *path) const
 
const std::string & GetName () const
 
const Type GetType () const
 
uint32_t refcount () const
 
uint64_t sequence_number () const
 
void incr_sequence_number ()
 
- Public Member Functions inherited from IPeer
virtual ~IPeer ()
 
- Public Member Functions inherited from IPeerUpdate
virtual ~IPeerUpdate ()
 

Static Public Member Functions

static void FillBgpNeighborDebugState (BgpNeighborResp *bnr, const IPeerDebugStats *peer)
 
static const std::vector
< Address::Family > & 
supported_families ()
 
- Static Public Member Functions inherited from DynamicPeer
static void ProcessDelete (DynamicPeer *p)
 

Static Public Attributes

static const int kEndOfRibSendRetryTime = 1
 
static const int kRouteTargetEndOfRibTimeSecs = 30
 
static const size_t kMinBufferCapacity = 4096
 
static const size_t kMaxBufferCapacity = 32768
 
- Static Public Attributes inherited from DynamicPeer
static const uint32_t kDeleteTimeout = 300 * 1000
 

Protected Member Functions

virtual void SendEndOfRIBActual (Address::Family family)
 
virtual void SendEndOfRIB (Address::Family family)
 
int membership_req_pending () const
 
virtual bool notification () const
 

Private Types

typedef std::map
< Address::Family, const
uint8_t * > 
FamilyToCapabilityMap
 
typedef std::vector
< BgpPeerFamilyAttributes * > 
FamilyAttributesList
 

Private Member Functions

size_t GetBufferCapacity () const
 
bool FlushUpdateUnlocked ()
 
void KeepaliveTimerErrorHandler (std::string error_name, std::string error_message)
 
virtual void StartKeepaliveTimerUnlocked ()
 
void StopKeepaliveTimerUnlocked ()
 
bool KeepaliveTimerExpired ()
 
void StartPrefixLimitIdleTimer (uint32_t plim_idle_time_msecs)
 
void StopPrefixLimitIdleTimer ()
 
bool PrefixLimitIdleTimerExpired ()
 
void PrefixLimitIdleTimerErrorHandler (std::string error_name, std::string error_message)
 
RibExportPolicy BuildRibExportPolicy (Address::Family family) const
 
void StartEndOfRibReceiveTimer (Address::Family family)
 
bool EndOfRibReceiveTimerExpired (Address::Family family)
 
void EndOfRibTimerErrorHandler (std::string error_name, std::string error_message)
 
uint32_t GetEndOfRibReceiveTime (Address::Family family) const
 
virtual void BindLocalEndpoint (BgpSession *session)
 
void UnregisterAllTables ()
 
void BGPPeerInfoSend (const BgpPeerInfoData &peer_info) const
 
virtual bool MembershipPathCallback (DBTablePartBase *tpart, BgpRoute *route, BgpPath *path)
 
uint32_t GetPathFlags (Address::Family family, const BgpAttr *attr) const
 
uint32_t GetLocalPrefFromMed (uint32_t med) const
 
virtual bool MpNlriAllowed (uint16_t afi, uint8_t safi)
 
virtual bool Is4ByteAsSupported () const
 
BgpAttrPtr GetMpNlriNexthop (BgpMpNlri *nlri, BgpAttrPtr attr)
 
template<typename TableT , typename PrefixT >
void ProcessNlri (Address::Family family, DBRequest::DBOperation oper, const BgpMpNlri *nlri, BgpAttrPtr attr, uint32_t flags)
 
bool GetBestAuthKey (AuthenticationKey *auth_key, KeyType *key_type) const
 
bool ProcessAuthKeyChainConfig (const BgpNeighborConfig *config)
 
void LogInstallAuthKeys (const std::string &socket_name, const std::string &oper, const AuthenticationKey &auth_key, KeyType key_type)
 
void SetInuseAuthKeyInfo (const AuthenticationKey &key, KeyType type)
 
void ResetInuseAuthKeyInfo ()
 
bool CheckPrefixLimits ()
 
bool ProcessFamilyAttributesConfig (const BgpNeighborConfig *config)
 
void ProcessEndpointConfig (const BgpNeighborConfig *config)
 
void PostCloseRelease ()
 
void FillBgpNeighborFamilyAttributes (BgpNeighborResp *nbr) const
 
void FillCloseInfo (BgpNeighborResp *resp) const
 
BgpAttrPtr GetRouteTargetRouteAttr () const
 
void BGPaaSAddRTarget (as_t as, BgpTable *table, BgpAttrPtr attr, RouteTargetList::const_iterator it)
 
void AddRTargets (as_t as)
 
void DeleteRTargets (as_t as)
 
void BGPaaSDeleteRTarget (as_t as, BgpTable *table, RouteTargetList::const_iterator it)
 
BgpTableGetRTargetTable ()
 
std::string BytesToHexString (const u_int8_t *msg, size_t size)
 
virtual uint32_t GetOutputQueueDepth (Address::Family family) const
 
virtual time_t GetRTargetTableLastUpdatedTimeStamp () const
 
virtual void TriggerPrefixLimitCheck () const
 
 DISALLOW_COPY_AND_ASSIGN (BgpPeer)
 
 DISALLOW_COPY_AND_ASSIGN (BgpPeer)
 

Static Private Member Functions

static int Encode (const BgpMessage *msg, uint8_t *data, size_t size, EncodeOffsets *offsets=NULL, bool as4=false)
 

Private Attributes

BgpServerserver_
 
RoutingInstancertinstance_
 
TcpSession::Endpoint endpoint_
 
BgpPeerKey peer_key_
 
uint16_t peer_port_
 
std::string peer_name_
 
std::string peer_basename_
 
std::string router_type_
 
bool peer_is_control_node_
 
std::string to_str_
 
std::string uve_key_str_
 
const BgpNeighborConfigconfig_
 
int index_
 
TaskTrigger trigger_
 
Timerprefix_limit_idle_timer_
 
TaskTrigger prefix_limit_trigger_
 
tbb::spin_mutex spin_mutex_
 
size_t buffer_capacity_
 
std::vector< uint8_t > buffer_
 
BgpSessionsession_
 
Timerkeepalive_timer_
 
Timereor_receive_timer_ [Address::NUM_FAMILIES]
 
Timereor_send_timer_ [Address::NUM_FAMILIES]
 
time_t eor_send_timer_start_time_
 
bool send_ready_
 
bool admin_down_
 
bool passive_
 
bool resolve_paths_
 
bool as_override_
 
string private_as_action_
 
uint32_t cluster_id_
 
OriginOverride origin_override_
 
tbb::atomic< int > membership_req_pending_
 
bool defer_close_
 
bool graceful_close_
 
bool as4_supported_
 
bool vpn_tables_registered_
 
std::vector
< BgpProto::OpenMessage::Capability * > 
capabilities_
 
uint16_t hold_time_
 
as_t local_as_
 
as_t peer_as_
 
uint32_t local_bgp_id_
 
uint32_t peer_bgp_id_
 
FamilyAttributesList family_attributes_list_
 
std::vector< tbb::atomic
< uint32_t > > 
family_primary_path_count_
 
std::vector< std::string > configured_families_
 
std::vector< std::string > negotiated_families_
 
BgpProto::BgpPeerType peer_type_
 
boost::scoped_ptr< StateMachinestate_machine_
 
boost::scoped_ptr< BgpPeerClosepeer_close_
 
boost::scoped_ptr
< PeerCloseManager
close_manager_
 
boost::scoped_ptr< PeerStatspeer_stats_
 
boost::scoped_ptr< DeleteActordeleter_
 
LifetimeRef< BgpPeerinstance_delete_ref_
 
tbb::atomic< int > total_path_count_
 
tbb::atomic< int > primary_path_count_
 
uint64_t flap_count_
 
uint64_t total_flap_count_
 
uint64_t last_flap_
 
int dscp_listener_id_
 
AuthenticationData auth_data_
 
AuthenticationKey inuse_auth_key_
 
KeyType inuse_authkey_type_
 
RouteTargetList rtargets_
 
int asn_listener_id_
 
int instance_op_
 
AgentXmppChannelchannel_
 
Ip4Address server_ip_
 
DBTableBase::ListenerId id_
 
uint32_t setup_time_
 
AgentRouteWalkerPtr route_walker_
 
AgentRouteWalkerPtr delete_peer_walker_
 
AgentRouteWalkerPtr delete_stale_walker_
 
WalkDoneCb route_walker_cb_
 
WalkDoneCb delete_stale_walker_cb_
 
WalkDoneCb delete_peer_walker_cb_
 

Static Private Attributes

static const std::vector
< Address::Family
supported_families_
 

Friends

class BgpConfigTest
 
class BgpPeerTest
 
class BgpServerUnitTest
 
class StateMachineUnitTest
 

Detailed Description

Definition at line 82 of file bgp_peer.h.

Member Typedef Documentation

Definition at line 89 of file bgp_peer.h.

Definition at line 387 of file bgp_peer.h.

typedef std::map<Address::Family, const uint8_t *> BgpPeer::FamilyToCapabilityMap
private

Definition at line 386 of file bgp_peer.h.

Definition at line 90 of file bgp_peer.h.

Definition at line 91 of file bgp_peer.h.

typedef boost::function<void()> BgpPeer::WalkDoneCb

Definition at line 158 of file peer.h.

Constructor & Destructor Documentation

BgpPeer::BgpPeer ( BgpServer server,
RoutingInstance instance,
const BgpNeighborConfig config 
)

Definition at line 469 of file bgp_peer.cc.

Here is the call graph for this function:

BgpPeer::~BgpPeer ( )
virtual

Definition at line 625 of file bgp_peer.cc.

Here is the call graph for this function:

BgpPeer::BgpPeer ( AgentXmppChannel channel,
const Ip4Address server_ip,
const std::string &  name,
DBTableBase::ListenerId  id,
Peer::Type  bgp_peer_type 
)

Definition at line 102 of file peer.cc.

Here is the call graph for this function:

virtual BgpPeer::~BgpPeer ( )
virtual

Member Function Documentation

bool BgpPeer::AcceptSession ( BgpSession session)

Definition at line 1369 of file bgp_peer.cc.

Here is the call graph for this function:

void BgpPeer::AddRTargets ( as_t  as)
private

Definition at line 727 of file bgp_peer.cc.

Here is the call graph for this function:

Agent * BgpPeer::agent ( ) const

Definition at line 327 of file peer.cc.

void BgpPeer::AllocDeletePeerWalker ( )

Definition at line 191 of file peer.cc.

Here is the call graph for this function:

void BgpPeer::AllocDeleteStaleWalker ( )

Definition at line 168 of file peer.cc.

Here is the call graph for this function:

void BgpPeer::AllocPeerNotifyWalker ( )

Definition at line 128 of file peer.cc.

Here is the call graph for this function:

void BgpPeer::ASNUpdateCallback ( as_t  old_asn,
as_t  old_local_asn 
)

Definition at line 768 of file bgp_peer.cc.

Here is the call graph for this function:

bool BgpPeer::AttemptGRHelperMode ( int  code,
int  subcode 
) const

Definition at line 1668 of file bgp_peer.cc.

Here is the call graph for this function:

uint32_t BgpPeer::bgp_identifier ( ) const
virtual

Implements IPeer.

Definition at line 1223 of file bgp_peer.cc.

string BgpPeer::bgp_identifier_string ( ) const

Definition at line 1227 of file bgp_peer.cc.

void BgpPeer::BGPaaSAddRTarget ( as_t  as,
BgpTable table,
BgpAttrPtr  attr,
RouteTargetList::const_iterator  it 
)
private

Definition at line 714 of file bgp_peer.cc.

Here is the call graph for this function:

void BgpPeer::BGPaaSDeleteRTarget ( as_t  as,
BgpTable table,
RouteTargetList::const_iterator  it 
)
private

Definition at line 742 of file bgp_peer.cc.

Here is the call graph for this function:

void BgpPeer::BGPPeerInfoSend ( const BgpPeerInfoData &  peer_info) const
private

Definition at line 416 of file bgp_peer.cc.

void BgpPeer::BindLocalEndpoint ( BgpSession session)
privatevirtual

Definition at line 815 of file bgp_peer.cc.

size_t BgpPeer::buffer_size ( ) const
inline

Definition at line 185 of file bgp_peer.h.

RibExportPolicy BgpPeer::BuildRibExportPolicy ( Address::Family  family) const
private

Definition at line 243 of file bgp_peer.cc.

Here is the call graph for this function:

string BgpPeer::BytesToHexString ( const u_int8_t *  msg,
size_t  size 
)
private

Definition at line 2245 of file bgp_peer.cc.

bool BgpPeer::CanUseMembershipManager ( ) const
virtual

Implements IPeer.

Definition at line 421 of file bgp_peer.cc.

const std::vector<BgpProto::OpenMessage::Capability *>& BgpPeer::capabilities ( ) const
inline

Definition at line 347 of file bgp_peer.h.

uint64_t BgpPeer::ChannelSequenceNumber ( ) const

Definition at line 335 of file peer.cc.

bool BgpPeer::CheckPrefixLimits ( )
private

Definition at line 934 of file bgp_peer.cc.

Here is the call graph for this function:

bool BgpPeer::CheckSplitHorizon ( uint32_t  cluster_id = 0,
uint32_t  ribout_cid = 0 
) const
virtual

Reimplemented from IPeer.

Definition at line 677 of file bgp_peer.cc.

Here is the call graph for this function:

void BgpPeer::Clear ( int  subcode)

Definition at line 1306 of file bgp_peer.cc.

void BgpPeer::clear_session ( )

Definition at line 2231 of file bgp_peer.cc.

Here is the call graph for this function:

void BgpPeer::ClearConfig ( )

Definition at line 1162 of file bgp_peer.cc.

void BgpPeer::ClearListenSocketAuthKey ( )

Definition at line 888 of file bgp_peer.cc.

Here is the call graph for this function:

void BgpPeer::Close ( bool  graceful)
virtual

Implements IPeer.

Definition at line 1269 of file bgp_peer.cc.

PeerCloseManager* BgpPeer::close_manager ( )
inline

Definition at line 355 of file bgp_peer.h.

bool BgpPeer::Compare ( const Peer rhs) const
inlinevirtual

Reimplemented from Peer.

Definition at line 164 of file peer.h.

const BgpNeighborConfig* BgpPeer::config ( ) const
inline

Definition at line 213 of file bgp_peer.h.

void BgpPeer::ConfigUpdate ( const BgpNeighborConfig config)

Definition at line 992 of file bgp_peer.cc.

Here is the call graph for this function:

const std::vector<std::string>& BgpPeer::configured_families ( ) const
inline

Definition at line 193 of file bgp_peer.h.

BgpSession * BgpPeer::CreateSession ( )

Definition at line 1340 of file bgp_peer.cc.

Here is the call graph for this function:

void BgpPeer::CustomClose ( )

Definition at line 1251 of file bgp_peer.cc.

Here is the call graph for this function:

ControllerRouteWalker * BgpPeer::delete_peer_walker ( ) const

Definition at line 250 of file peer.cc.

ControllerRouteWalker * BgpPeer::delete_stale_walker ( ) const

Definition at line 246 of file peer.cc.

LifetimeActor * BgpPeer::deleter ( )

Definition at line 1167 of file bgp_peer.cc.

void BgpPeer::DeleteRTargets ( as_t  as)
private

Definition at line 755 of file bgp_peer.cc.

Here is the call graph for this function:

void BgpPeer::DeleteStale ( )

Definition at line 224 of file peer.cc.

void BgpPeer::DeleteVrfState ( DBTablePartBase partition,
DBEntryBase entry 
)

Definition at line 259 of file peer.cc.

Here is the call graph for this function:

void BgpPeer::DelPeerRoutes ( WalkDoneCb  walk_done_cb,
uint64_t  sequence_number 
)

Definition at line 213 of file peer.cc.

Here is the call graph for this function:

BgpPeer::DISALLOW_COPY_AND_ASSIGN ( BgpPeer  )
private
BgpPeer::DISALLOW_COPY_AND_ASSIGN ( BgpPeer  )
private
void BgpPeer::DSCPUpdateCallback ( uint8_t  dscp_value)

Definition at line 2771 of file bgp_peer.cc.

Here is the call graph for this function:

static int BgpPeer::Encode ( const BgpMessage msg,
uint8_t *  data,
size_t  size,
EncodeOffsets offsets = NULL,
bool  as4 = false 
)
staticprivate
bool BgpPeer::EndOfRibReceiveTimerExpired ( Address::Family  family)
private

Definition at line 2170 of file bgp_peer.cc.

Here is the call graph for this function:

bool BgpPeer::EndOfRibSendTimerExpired ( Address::Family  family)

Definition at line 331 of file bgp_peer.cc.

Here is the call graph for this function:

void BgpPeer::EndOfRibTimerErrorHandler ( std::string  error_name,
std::string  error_message 
)
private

Definition at line 2124 of file bgp_peer.cc.

TcpSession::Endpoint BgpPeer::endpoint ( ) const
inline

Definition at line 171 of file bgp_peer.h.

void BgpPeer::FillBgpNeighborDebugState ( BgpNeighborResp *  bnr,
const IPeerDebugStats peer 
)
static

Definition at line 2440 of file bgp_peer.cc.

Here is the call graph for this function:

void BgpPeer::FillBgpNeighborFamilyAttributes ( BgpNeighborResp *  nbr) const
private

Definition at line 2481 of file bgp_peer.cc.

Here is the call graph for this function:

void BgpPeer::FillCloseInfo ( BgpNeighborResp *  resp) const
private

Definition at line 2436 of file bgp_peer.cc.

void BgpPeer::FillNeighborInfo ( const BgpSandeshContext bsc,
BgpNeighborResp *  bnr,
bool  summary 
) const

Definition at line 2504 of file bgp_peer.cc.

Here is the call graph for this function:

uint64_t BgpPeer::flap_count ( ) const
inline

Definition at line 249 of file bgp_peer.h.

bool BgpPeer::FlushUpdate ( )
virtual

Reimplemented from IPeerUpdate.

Definition at line 1658 of file bgp_peer.cc.

Here is the call graph for this function:

bool BgpPeer::FlushUpdateUnlocked ( )
private

Definition at line 1628 of file bgp_peer.cc.

Here is the call graph for this function:

string BgpPeer::gateway_address_string ( Address::Family  family) const

Definition at line 1240 of file bgp_peer.cc.

uint64_t BgpPeer::get_connect_error ( ) const

Definition at line 2687 of file bgp_peer.cc.

uint64_t BgpPeer::get_connect_timer_expired ( ) const

Definition at line 2691 of file bgp_peer.cc.

uint64_t BgpPeer::get_hold_timer_expired ( ) const

Definition at line 2695 of file bgp_peer.cc.

uint64_t BgpPeer::get_open_error ( ) const

Definition at line 2699 of file bgp_peer.cc.

uint64_t BgpPeer::get_rx_end_of_rib ( ) const

Definition at line 2619 of file bgp_peer.cc.

uint64_t BgpPeer::get_rx_keepalive ( ) const

Definition at line 2575 of file bgp_peer.cc.

uint64_t BgpPeer::get_rx_notification ( ) const

Definition at line 2607 of file bgp_peer.cc.

uint64_t BgpPeer::get_rx_route_reach ( ) const

Definition at line 2635 of file bgp_peer.cc.

uint64_t BgpPeer::get_rx_route_total ( ) const

Definition at line 2655 of file bgp_peer.cc.

uint64_t BgpPeer::get_rx_route_unreach ( ) const

Definition at line 2647 of file bgp_peer.cc.

uint64_t BgpPeer::get_rx_update ( ) const

Definition at line 2591 of file bgp_peer.cc.

uint64_t BgpPeer::get_socket_reads ( ) const

Definition at line 2707 of file bgp_peer.cc.

uint64_t BgpPeer::get_socket_writes ( ) const

Definition at line 2713 of file bgp_peer.cc.

uint64_t BgpPeer::get_tx_end_of_rib ( ) const

Definition at line 2627 of file bgp_peer.cc.

uint64_t BgpPeer::get_tx_keepalive ( ) const

Definition at line 2583 of file bgp_peer.cc.

uint64_t BgpPeer::get_tx_route_reach ( ) const

Definition at line 2639 of file bgp_peer.cc.

uint64_t BgpPeer::get_tx_route_total ( ) const

Definition at line 2661 of file bgp_peer.cc.

uint64_t BgpPeer::get_tx_route_unreach ( ) const

Definition at line 2651 of file bgp_peer.cc.

uint64_t BgpPeer::get_tx_update ( ) const

Definition at line 2599 of file bgp_peer.cc.

uint64_t BgpPeer::get_update_error ( ) const

Definition at line 2703 of file bgp_peer.cc.

AgentXmppChannel * BgpPeer::GetAgentXmppChannel ( ) const

Definition at line 331 of file peer.cc.

bool BgpPeer::GetBestAuthKey ( AuthenticationKey auth_key,
KeyType key_type 
) const
private

Definition at line 819 of file bgp_peer.cc.

Here is the call graph for this function:

bool BgpPeer::GetBestAuthKeyItem ( AuthenticationKey auth_key)
size_t BgpPeer::GetBufferCapacity ( ) const
private

Definition at line 657 of file bgp_peer.cc.

Here is the call graph for this function:

const std::vector< std::string > BgpPeer::GetDefaultTunnelEncap ( const Address::Family  family) const
virtual

Implements IPeer.

Definition at line 2047 of file bgp_peer.cc.

uint32_t BgpPeer::GetEndOfRibReceiveTime ( Address::Family  family) const
private

Definition at line 314 of file bgp_peer.cc.

Here is the call graph for this function:

time_t BgpPeer::GetEorSendTimerElapsedTime ( ) const
virtual

Definition at line 310 of file bgp_peer.cc.

Here is the call graph for this function:

int BgpPeer::GetIndex ( ) const
inline

Definition at line 205 of file bgp_peer.h.

string BgpPeer::GetInuseAuthKeyValue ( ) const

Definition at line 914 of file bgp_peer.cc.

uint32_t BgpPeer::GetLocalPrefFromMed ( uint32_t  med) const
private

Definition at line 1865 of file bgp_peer.cc.

BgpAttrPtr BgpPeer::GetMpNlriNexthop ( BgpMpNlri nlri,
BgpAttrPtr  attr 
)
private

Definition at line 2289 of file bgp_peer.cc.

Here is the call graph for this function:

uint32_t BgpPeer::GetOutputQueueDepth ( Address::Family  family) const
privatevirtual

Definition at line 305 of file bgp_peer.cc.

Here is the call graph for this function:

uint32_t BgpPeer::GetPathFlags ( Address::Family  family,
const BgpAttr attr 
) const
private

Definition at line 1829 of file bgp_peer.cc.

Here is the call graph for this function:

virtual int BgpPeer::GetPrimaryPathCount ( ) const
inlinevirtual

Implements IPeer.

Definition at line 322 of file bgp_peer.h.

DBState * BgpPeer::GetRouteExportState ( DBTablePartBase partition,
DBEntryBase e 
)

Definition at line 303 of file peer.cc.

Here is the call graph for this function:

BgpAttrPtr BgpPeer::GetRouteTargetRouteAttr ( ) const
private

Definition at line 704 of file bgp_peer.cc.

Here is the call graph for this function:

RoutingInstance* BgpPeer::GetRoutingInstance ( )
inline

Definition at line 202 of file bgp_peer.h.

RoutingInstance* BgpPeer::GetRoutingInstance ( ) const
inline

Definition at line 203 of file bgp_peer.h.

BgpTable * BgpPeer::GetRTargetTable ( )
private

Definition at line 694 of file bgp_peer.cc.

Here is the call graph for this function:

time_t BgpPeer::GetRTargetTableLastUpdatedTimeStamp ( ) const
privatevirtual

Definition at line 327 of file bgp_peer.cc.

Here is the call graph for this function:

StateMachine::State BgpPeer::GetState ( ) const

Definition at line 1332 of file bgp_peer.cc.

const string BgpPeer::GetStateName ( ) const
virtual

Implements IPeer.

Definition at line 1336 of file bgp_peer.cc.

int BgpPeer::GetTaskInstance ( ) const

Definition at line 2383 of file bgp_peer.cc.

Here is the call graph for this function:

virtual int BgpPeer::GetTotalPathCount ( ) const
inlinevirtual

Implements IPeer.

Definition at line 313 of file bgp_peer.h.

DBTableBase::ListenerId BgpPeer::GetVrfExportListenerId ( )
inline

Definition at line 171 of file peer.h.

DBState * BgpPeer::GetVrfExportState ( DBTablePartBase partition,
DBEntryBase e 
)

Definition at line 294 of file peer.cc.

Here is the call graph for this function:

uint16_t BgpPeer::hold_time ( ) const
inline

Definition at line 182 of file bgp_peer.h.

void BgpPeer::inc_connect_error ( )

Definition at line 2667 of file bgp_peer.cc.

void BgpPeer::inc_connect_timer_expired ( )

Definition at line 2671 of file bgp_peer.cc.

void BgpPeer::inc_hold_timer_expired ( )

Definition at line 2675 of file bgp_peer.cc.

void BgpPeer::inc_open_error ( )

Definition at line 2679 of file bgp_peer.cc.

void BgpPeer::inc_rx_end_of_rib ( )

Definition at line 2615 of file bgp_peer.cc.

void BgpPeer::inc_rx_keepalive ( )

Definition at line 2571 of file bgp_peer.cc.

void BgpPeer::inc_rx_notification ( )

Definition at line 2603 of file bgp_peer.cc.

void BgpPeer::inc_rx_open ( )

Definition at line 2563 of file bgp_peer.cc.

void BgpPeer::inc_rx_route_reach ( uint64_t  count)

Definition at line 2631 of file bgp_peer.cc.

void BgpPeer::inc_rx_route_unreach ( uint64_t  count)

Definition at line 2643 of file bgp_peer.cc.

void BgpPeer::inc_rx_update ( )

Definition at line 2587 of file bgp_peer.cc.

void BgpPeer::inc_tx_end_of_rib ( )

Definition at line 2623 of file bgp_peer.cc.

void BgpPeer::inc_tx_keepalive ( )

Definition at line 2579 of file bgp_peer.cc.

void BgpPeer::inc_tx_notification ( )

Definition at line 2611 of file bgp_peer.cc.

void BgpPeer::inc_tx_open ( )

Definition at line 2567 of file bgp_peer.cc.

void BgpPeer::inc_tx_update ( )

Definition at line 2595 of file bgp_peer.cc.

void BgpPeer::inc_update_error ( )

Definition at line 2683 of file bgp_peer.cc.

void BgpPeer::increment_flap_count ( )

Definition at line 2727 of file bgp_peer.cc.

Here is the call graph for this function:

void BgpPeer::Initialize ( )

Definition at line 652 of file bgp_peer.cc.

bool BgpPeer::InstallAuthKeys ( )

Definition at line 842 of file bgp_peer.cc.

Here is the call graph for this function:

bool BgpPeer::Is4ByteAsSupported ( ) const
privatevirtual

Definition at line 1791 of file bgp_peer.cc.

bool BgpPeer::IsAdminDown ( ) const
inline

Definition at line 221 of file bgp_peer.h.

virtual bool BgpPeer::IsAs4Supported ( ) const
inlinevirtual

Implements IPeer.

Definition at line 314 of file bgp_peer.h.

bool BgpPeer::IsCloseGraceful ( ) const

Definition at line 323 of file bgp_peer.cc.

bool BgpPeer::IsCloseInProgress ( ) const

Definition at line 1322 of file bgp_peer.cc.

Here is the call graph for this function:

bool BgpPeer::IsDeleted ( ) const
virtual

Reimplemented from DynamicPeer.

Definition at line 1314 of file bgp_peer.cc.

bool BgpPeer::IsFamilyNegotiated ( Address::Family  family)

Definition at line 1174 of file bgp_peer.cc.

Here is the call graph for this function:

bool BgpPeer::IsInGRTimerWaitState ( ) const
virtual

Implements IPeer.

Definition at line 1318 of file bgp_peer.cc.

bool BgpPeer::IsPassive ( ) const
inline

Definition at line 222 of file bgp_peer.h.

bool BgpPeer::IsReady ( ) const
virtual

Implements IPeer.

Definition at line 1207 of file bgp_peer.cc.

virtual bool BgpPeer::IsRegistrationRequired ( ) const
inlinevirtual

Implements IPeer.

Definition at line 227 of file bgp_peer.h.

bool BgpPeer::IsRouterTypeBGPaaS ( ) const
inlinevirtual

Implements IPeer.

Definition at line 358 of file bgp_peer.h.

bool BgpPeer::IsServerStartingUp ( ) const
virtual

Definition at line 319 of file bgp_peer.cc.

Here is the call graph for this function:

bool BgpPeer::IsXmppPeer ( ) const
virtual

Implements IPeer.

Definition at line 1211 of file bgp_peer.cc.

void BgpPeer::KeepaliveTimerErrorHandler ( std::string  error_name,
std::string  error_message 
)
private

Definition at line 2164 of file bgp_peer.cc.

bool BgpPeer::KeepaliveTimerExpired ( )
private

Definition at line 2179 of file bgp_peer.cc.

Here is the call graph for this function:

bool BgpPeer::KeepaliveTimerRunning ( )

Definition at line 2211 of file bgp_peer.cc.

Here is the call graph for this function:

uint64_t BgpPeer::last_flap ( ) const
inline

Definition at line 250 of file bgp_peer.h.

string BgpPeer::last_flap_at ( ) const

Definition at line 2719 of file bgp_peer.cc.

Here is the call graph for this function:

as_t BgpPeer::local_as ( ) const
inline

Definition at line 183 of file bgp_peer.h.

uint32_t BgpPeer::local_bgp_identifier ( ) const
virtual

Definition at line 1215 of file bgp_peer.cc.

string BgpPeer::local_bgp_identifier_string ( ) const

Definition at line 1219 of file bgp_peer.cc.

void BgpPeer::LogInstallAuthKeys ( const std::string &  socket_name,
const std::string &  oper,
const AuthenticationKey auth_key,
KeyType  key_type 
)
private

Definition at line 918 of file bgp_peer.cc.

Here is the call graph for this function:

bool BgpPeer::LookupFamily ( Address::Family  family)
inline

Definition at line 197 of file bgp_peer.h.

void BgpPeer::ManagedDelete ( )

Definition at line 2364 of file bgp_peer.cc.

Here is the call graph for this function:

int BgpPeer::membership_req_pending ( ) const
inlineprotected

Definition at line 366 of file bgp_peer.h.

bool BgpPeer::MembershipPathCallback ( DBTablePartBase tpart,
BgpRoute route,
BgpPath path 
)
privatevirtual

Implements IPeer.

Definition at line 458 of file bgp_peer.cc.

void BgpPeer::MembershipRequestCallback ( BgpTable table)
virtual

Implements IPeer.

Definition at line 430 of file bgp_peer.cc.

Here is the call graph for this function:

bool BgpPeer::MpNlriAllowed ( uint16_t  afi,
uint8_t  safi 
)
privatevirtual

Definition at line 1776 of file bgp_peer.cc.

Here is the call graph for this function:

const std::vector<std::string>& BgpPeer::negotiated_families ( ) const
inline

Definition at line 342 of file bgp_peer.h.

bool BgpPeer::notification ( ) const
protectedvirtual

Definition at line 1663 of file bgp_peer.cc.

void BgpPeer::NotifyEstablished ( bool  established)

Definition at line 798 of file bgp_peer.cc.

Here is the call graph for this function:

const std::string BgpPeer::peer_address_string ( ) const
inline

Definition at line 161 of file bgp_peer.h.

as_t BgpPeer::peer_as ( ) const
inline

Definition at line 184 of file bgp_peer.h.

const std::string& BgpPeer::peer_basename ( ) const
inline

Definition at line 169 of file bgp_peer.h.

IPeerClose * BgpPeer::peer_close ( )
virtual

Implements IPeer.

Definition at line 1285 of file bgp_peer.cc.

IPeerClose * BgpPeer::peer_close ( ) const
virtual

Implements IPeer.

Definition at line 1289 of file bgp_peer.cc.

const BgpPeerKey& BgpPeer::peer_key ( ) const
inline

Definition at line 164 of file bgp_peer.h.

const std::string& BgpPeer::peer_name ( ) const
inline

Definition at line 168 of file bgp_peer.h.

uint16_t BgpPeer::peer_port ( ) const
inline

Definition at line 165 of file bgp_peer.h.

IPeerDebugStats * BgpPeer::peer_stats ( )
virtual

Implements IPeer.

Definition at line 1298 of file bgp_peer.cc.

const IPeerDebugStats * BgpPeer::peer_stats ( ) const
virtual

Implements IPeer.

Definition at line 1302 of file bgp_peer.cc.

uint32_t BgpPeer::PeerAddress ( ) const
inline

Definition at line 160 of file bgp_peer.h.

Here is the call graph for this function:

void BgpPeer::PeerNotifyMulticastRoutes ( bool  associate)

Definition at line 162 of file peer.cc.

void BgpPeer::PeerNotifyRoutes ( WalkDoneCb  cb)

Definition at line 149 of file peer.cc.

virtual BgpProto::BgpPeerType BgpPeer::PeerType ( ) const
inlinevirtual

Implements IPeer.

Definition at line 208 of file bgp_peer.h.

void BgpPeer::PostCloseRelease ( )
private

Definition at line 1187 of file bgp_peer.cc.

Here is the call graph for this function:

void BgpPeer::PrefixLimitIdleTimerErrorHandler ( std::string  error_name,
std::string  error_message 
)
private

Definition at line 2118 of file bgp_peer.cc.

bool BgpPeer::PrefixLimitIdleTimerExpired ( )
private

Definition at line 2114 of file bgp_peer.cc.

bool BgpPeer::PrefixLimitIdleTimerRunning ( ) const

Definition at line 2110 of file bgp_peer.cc.

Here is the call graph for this function:

const string& BgpPeer::private_as_action ( ) const
inline

Definition at line 211 of file bgp_peer.h.

bool BgpPeer::ProcessAuthKeyChainConfig ( const BgpNeighborConfig config)
private

Definition at line 831 of file bgp_peer.cc.

Here is the call graph for this function:

void BgpPeer::ProcessEndpointConfig ( const BgpNeighborConfig config)
private

Definition at line 980 of file bgp_peer.cc.

Here is the call graph for this function:

bool BgpPeer::ProcessFamilyAttributesConfig ( const BgpNeighborConfig config)
private

Definition at line 958 of file bgp_peer.cc.

Here is the call graph for this function:

template<typename TableT , typename PrefixT >
void BgpPeer::ProcessNlri ( Address::Family  family,
DBRequest::DBOperation  oper,
const BgpMpNlri nlri,
BgpAttrPtr  attr,
uint32_t  flags 
)
private

Definition at line 1796 of file bgp_peer.cc.

Here is the call graph for this function:

void BgpPeer::ProcessPathTunnelEncapsulation ( const BgpPath path,
BgpAttr attr,
ExtCommunityDB extcomm_db,
const BgpTable table 
) const
virtual

Implements IPeer.

Definition at line 2054 of file bgp_peer.cc.

Here is the call graph for this function:

bool BgpPeer::ProcessSession ( ) const
virtual

Definition at line 2766 of file bgp_peer.cc.

Here is the call graph for this function:

void BgpPeer::ProcessUpdate ( const BgpProto::Update msg,
size_t  msgsize = 0 
)

Definition at line 1879 of file bgp_peer.cc.

Here is the call graph for this function:

void BgpPeer::ReceiveEndOfRIB ( Address::Family  family,
size_t  msgsize 
)

Definition at line 270 of file bgp_peer.cc.

Here is the call graph for this function:

bool BgpPeer::ReceiveMsg ( BgpSession session,
const u_int8_t *  msg,
size_t  size 
)
virtual

Definition at line 2261 of file bgp_peer.cc.

Here is the call graph for this function:

void BgpPeer::Register ( BgpTable table,
const RibExportPolicy policy 
)

Definition at line 1381 of file bgp_peer.cc.

Here is the call graph for this function:

void BgpPeer::Register ( BgpTable table)

Definition at line 1403 of file bgp_peer.cc.

Here is the call graph for this function:

void BgpPeer::RegisterAllTables ( )

Definition at line 1432 of file bgp_peer.cc.

Here is the call graph for this function:

void BgpPeer::RegisterToVpnTables ( )

Definition at line 2130 of file bgp_peer.cc.

Here is the call graph for this function:

void BgpPeer::ReleaseDeletePeerWalker ( )

Definition at line 202 of file peer.cc.

void BgpPeer::ReleaseDeleteStaleWalker ( )

Definition at line 179 of file peer.cc.

void BgpPeer::ReleasePeerNotifyWalker ( )

Definition at line 139 of file peer.cc.

void BgpPeer::reset_flap_count ( )

Definition at line 2747 of file bgp_peer.cc.

Here is the call graph for this function:

virtual void BgpPeer::ResetAs4Supported ( )
inlinevirtual

Definition at line 315 of file bgp_peer.h.

void BgpPeer::ResetCapabilities ( )

Definition at line 1764 of file bgp_peer.cc.

Here is the call graph for this function:

void BgpPeer::ResetInuseAuthKeyInfo ( )
private

Definition at line 875 of file bgp_peer.cc.

Here is the call graph for this function:

bool BgpPeer::ResumeClose ( )

Definition at line 463 of file bgp_peer.cc.

void BgpPeer::RetryDelete ( )

Definition at line 2377 of file bgp_peer.cc.

ControllerRouteWalker * BgpPeer::route_walker ( ) const

Definition at line 242 of file peer.cc.

std::string BgpPeer::router_type ( ) const
inline

Definition at line 170 of file bgp_peer.h.

void BgpPeer::RoutingInstanceCallback ( const std::string &  vrf_name,
int  op 
)

Definition at line 779 of file bgp_peer.cc.

Here is the call graph for this function:

virtual bool BgpPeer::send_ready ( ) const
inlinevirtual

Reimplemented from IPeerUpdate.

Definition at line 229 of file bgp_peer.h.

void BgpPeer::SendEndOfRIB ( Address::Family  family)
protectedvirtual

Definition at line 404 of file bgp_peer.cc.

Here is the call graph for this function:

void BgpPeer::SendEndOfRIBActual ( Address::Family  family)
protectedvirtual

Definition at line 279 of file bgp_peer.cc.

Here is the call graph for this function:

void BgpPeer::SendKeepalive ( bool  from_timer)

Definition at line 1561 of file bgp_peer.cc.

Here is the call graph for this function:

void BgpPeer::SendNotification ( BgpSession ,
int  code,
int  subcode = 0,
const std::string &  data = std::string() 
)

Definition at line 1683 of file bgp_peer.cc.

Here is the call graph for this function:

void BgpPeer::SendOpen ( TcpSession session)

Definition at line 1485 of file bgp_peer.cc.

Here is the call graph for this function:

virtual bool BgpPeer::SendUpdate ( const uint8_t *  msg,
size_t  msgsize,
const std::string *  msg_str 
)
virtual

Reimplemented from IPeerUpdate.

virtual bool BgpPeer::SendUpdate ( const uint8_t *  msg,
size_t  msgsize 
)
inlinevirtual

Implements IPeerUpdate.

Definition at line 107 of file bgp_peer.h.

Here is the call graph for this function:

virtual BgpServer* BgpPeer::server ( )
inlinevirtual

Implements IPeer.

Definition at line 157 of file bgp_peer.h.

virtual BgpServer* BgpPeer::server ( ) const
inlinevirtual

Implements IPeer.

Definition at line 158 of file bgp_peer.h.

BgpSession * BgpPeer::session ( )

Definition at line 2241 of file bgp_peer.cc.

void BgpPeer::set_delete_peer_walker_cb ( WalkDoneCb  cb)

Definition at line 346 of file peer.cc.

void BgpPeer::set_delete_stale_walker_cb ( WalkDoneCb  cb)

Definition at line 343 of file peer.cc.

void BgpPeer::set_route_walker_cb ( WalkDoneCb  cb)

Definition at line 339 of file peer.cc.

void BgpPeer::set_session ( BgpSession session)

Definition at line 2225 of file bgp_peer.cc.

Here is the call graph for this function:

void BgpPeer::SetAdminState ( bool  down,
int  subcode = BgpProto::Notification::AdminShutdown 
)
virtual

Definition at line 1357 of file bgp_peer.cc.

bool BgpPeer::SetCapabilities ( const BgpProto::OpenMessage msg)

Definition at line 1691 of file bgp_peer.cc.

Here is the call graph for this function:

void BgpPeer::SetDataCollectionKey ( BgpPeerInfo *  peer_info) const
virtual

Definition at line 2387 of file bgp_peer.cc.

Here is the call graph for this function:

void BgpPeer::SetInuseAuthKeyInfo ( const AuthenticationKey key,
KeyType  type 
)
private

Definition at line 870 of file bgp_peer.cc.

void BgpPeer::SetListenSocketAuthKey ( const AuthenticationKey auth_key,
KeyType  key_type 
)

Definition at line 880 of file bgp_peer.cc.

Here is the call graph for this function:

void BgpPeer::SetSendReady ( )

Definition at line 2216 of file bgp_peer.cc.

Here is the call graph for this function:

void BgpPeer::SetSessionSocketAuthKey ( TcpSession session)

Definition at line 894 of file bgp_peer.cc.

Here is the call graph for this function:

void BgpPeer::SetSessionSocketOptionDscp ( TcpSession session)

Definition at line 903 of file bgp_peer.cc.

Here is the call graph for this function:

uint32_t BgpPeer::setup_time ( ) const
inline

Definition at line 201 of file peer.h.

void BgpPeer::SetVrfListenerId ( DBTableBase::ListenerId  id)
inline

Definition at line 170 of file peer.h.

void BgpPeer::StartEndOfRibReceiveTimer ( Address::Family  family)
private

Definition at line 2151 of file bgp_peer.cc.

Here is the call graph for this function:

void BgpPeer::StartKeepaliveTimer ( )

Definition at line 2201 of file bgp_peer.cc.

Here is the call graph for this function:

void BgpPeer::StartKeepaliveTimerUnlocked ( )
privatevirtual

Definition at line 2191 of file bgp_peer.cc.

Here is the call graph for this function:

void BgpPeer::StartPrefixLimitIdleTimer ( uint32_t  plim_idle_time_msecs)
private

Definition at line 2100 of file bgp_peer.cc.

Here is the call graph for this function:

StateMachine* BgpPeer::state_machine ( )
inline

Definition at line 326 of file bgp_peer.h.

const StateMachine* BgpPeer::state_machine ( ) const
inline

Definition at line 327 of file bgp_peer.h.

void BgpPeer::StopDeleteStale ( )

Definition at line 235 of file peer.cc.

void BgpPeer::StopKeepaliveTimerUnlocked ( )
private

Definition at line 2207 of file bgp_peer.cc.

Here is the call graph for this function:

void BgpPeer::StopPeerNotifyRoutes ( )

Definition at line 155 of file peer.cc.

void BgpPeer::StopPrefixLimitIdleTimer ( )
private

Definition at line 2106 of file bgp_peer.cc.

Here is the call graph for this function:

static const std::vector<Address::Family>& BgpPeer::supported_families ( )
inlinestatic

Definition at line 351 of file bgp_peer.h.

virtual const std::string& BgpPeer::ToString ( ) const
inlinevirtual

Implements IPeer.

Definition at line 100 of file bgp_peer.h.

uint64_t BgpPeer::total_flap_count ( ) const
inline

Definition at line 251 of file bgp_peer.h.

virtual const std::string& BgpPeer::ToUVEKey ( ) const
inlinevirtual

Implements IPeer.

Definition at line 101 of file bgp_peer.h.

string BgpPeer::transport_address_string ( ) const

Definition at line 1231 of file bgp_peer.cc.

Here is the call graph for this function:

void BgpPeer::TriggerPrefixLimitCheck ( ) const
privatevirtual

Definition at line 988 of file bgp_peer.cc.

Here is the call graph for this function:

void BgpPeer::UnregisterAllTables ( )
private
void BgpPeer::UpdateCloseRouteStats ( Address::Family  family,
const BgpPath old_path,
uint32_t  path_flags 
) const
virtual

Implements IPeer.

Definition at line 1293 of file bgp_peer.cc.

Here is the call graph for this function:

void BgpPeer::UpdatePrimaryPathCount ( int  count,
Address::Family  family 
) const
virtual

Implements IPeer.

Definition at line 2088 of file bgp_peer.cc.

Here is the call graph for this function:

virtual void BgpPeer::UpdateTotalPathCount ( int  count) const
inlinevirtual

Implements IPeer.

Definition at line 310 of file bgp_peer.h.

Friends And Related Function Documentation

friend class BgpConfigTest
friend

Definition at line 370 of file bgp_peer.h.

friend class BgpPeerTest
friend

Definition at line 371 of file bgp_peer.h.

friend class BgpServerUnitTest
friend

Definition at line 372 of file bgp_peer.h.

friend class StateMachineUnitTest
friend

Definition at line 373 of file bgp_peer.h.

Member Data Documentation

bool BgpPeer::admin_down_
private

Definition at line 505 of file bgp_peer.h.

bool BgpPeer::as4_supported_
private

Definition at line 516 of file bgp_peer.h.

bool BgpPeer::as_override_
private

Definition at line 508 of file bgp_peer.h.

int BgpPeer::asn_listener_id_
private

Definition at line 545 of file bgp_peer.h.

AuthenticationData BgpPeer::auth_data_
private

Definition at line 541 of file bgp_peer.h.

std::vector<uint8_t> BgpPeer::buffer_
private

Definition at line 498 of file bgp_peer.h.

size_t BgpPeer::buffer_capacity_
private

Definition at line 497 of file bgp_peer.h.

std::vector<BgpProto::OpenMessage::Capability *> BgpPeer::capabilities_
private

Definition at line 518 of file bgp_peer.h.

AgentXmppChannel* BgpPeer::channel_
private

Definition at line 210 of file peer.h.

boost::scoped_ptr<PeerCloseManager> BgpPeer::close_manager_
private

Definition at line 531 of file bgp_peer.h.

uint32_t BgpPeer::cluster_id_
private

Definition at line 510 of file bgp_peer.h.

const BgpNeighborConfig* BgpPeer::config_
private

Definition at line 469 of file bgp_peer.h.

std::vector<std::string> BgpPeer::configured_families_
private

Definition at line 526 of file bgp_peer.h.

bool BgpPeer::defer_close_
private

Definition at line 514 of file bgp_peer.h.

AgentRouteWalkerPtr BgpPeer::delete_peer_walker_
private

Definition at line 215 of file peer.h.

WalkDoneCb BgpPeer::delete_peer_walker_cb_
private

Definition at line 219 of file peer.h.

AgentRouteWalkerPtr BgpPeer::delete_stale_walker_
private

Definition at line 216 of file peer.h.

WalkDoneCb BgpPeer::delete_stale_walker_cb_
private

Definition at line 218 of file peer.h.

boost::scoped_ptr<DeleteActor> BgpPeer::deleter_
private

Definition at line 533 of file bgp_peer.h.

int BgpPeer::dscp_listener_id_
private

Definition at line 540 of file bgp_peer.h.

TcpSession::Endpoint BgpPeer::endpoint_
private

Definition at line 460 of file bgp_peer.h.

Timer* BgpPeer::eor_receive_timer_[Address::NUM_FAMILIES]
private

Definition at line 501 of file bgp_peer.h.

Timer* BgpPeer::eor_send_timer_[Address::NUM_FAMILIES]
private

Definition at line 502 of file bgp_peer.h.

time_t BgpPeer::eor_send_timer_start_time_
private

Definition at line 503 of file bgp_peer.h.

FamilyAttributesList BgpPeer::family_attributes_list_
private

Definition at line 524 of file bgp_peer.h.

std::vector<tbb::atomic<uint32_t> > BgpPeer::family_primary_path_count_
mutableprivate

Definition at line 525 of file bgp_peer.h.

uint64_t BgpPeer::flap_count_
private

Definition at line 537 of file bgp_peer.h.

bool BgpPeer::graceful_close_
private

Definition at line 515 of file bgp_peer.h.

uint16_t BgpPeer::hold_time_
private

Definition at line 519 of file bgp_peer.h.

DBTableBase::ListenerId BgpPeer::id_
private

Definition at line 212 of file peer.h.

int BgpPeer::index_
private

Definition at line 472 of file bgp_peer.h.

LifetimeRef<BgpPeer> BgpPeer::instance_delete_ref_
private

Definition at line 534 of file bgp_peer.h.

int BgpPeer::instance_op_
private

Definition at line 546 of file bgp_peer.h.

AuthenticationKey BgpPeer::inuse_auth_key_
private

Definition at line 542 of file bgp_peer.h.

KeyType BgpPeer::inuse_authkey_type_
private

Definition at line 543 of file bgp_peer.h.

Timer* BgpPeer::keepalive_timer_
private

Definition at line 500 of file bgp_peer.h.

const int BgpPeer::kEndOfRibSendRetryTime = 1
static

Definition at line 84 of file bgp_peer.h.

const size_t BgpPeer::kMaxBufferCapacity = 32768
static

Definition at line 87 of file bgp_peer.h.

const size_t BgpPeer::kMinBufferCapacity = 4096
static

Definition at line 86 of file bgp_peer.h.

const int BgpPeer::kRouteTargetEndOfRibTimeSecs = 30
static

Definition at line 85 of file bgp_peer.h.

uint64_t BgpPeer::last_flap_
private

Definition at line 539 of file bgp_peer.h.

as_t BgpPeer::local_as_
private

Definition at line 520 of file bgp_peer.h.

uint32_t BgpPeer::local_bgp_id_
private

Definition at line 522 of file bgp_peer.h.

tbb::atomic<int> BgpPeer::membership_req_pending_
private

Definition at line 513 of file bgp_peer.h.

std::vector<std::string> BgpPeer::negotiated_families_
private

Definition at line 527 of file bgp_peer.h.

OriginOverride BgpPeer::origin_override_
private

Definition at line 511 of file bgp_peer.h.

bool BgpPeer::passive_
private

Definition at line 506 of file bgp_peer.h.

as_t BgpPeer::peer_as_
private

Definition at line 521 of file bgp_peer.h.

std::string BgpPeer::peer_basename_
private

Definition at line 464 of file bgp_peer.h.

uint32_t BgpPeer::peer_bgp_id_
private

Definition at line 523 of file bgp_peer.h.

boost::scoped_ptr<BgpPeerClose> BgpPeer::peer_close_
private

Definition at line 530 of file bgp_peer.h.

bool BgpPeer::peer_is_control_node_
private

Definition at line 466 of file bgp_peer.h.

BgpPeerKey BgpPeer::peer_key_
private

Definition at line 461 of file bgp_peer.h.

std::string BgpPeer::peer_name_
private

Definition at line 463 of file bgp_peer.h.

uint16_t BgpPeer::peer_port_
private

Definition at line 462 of file bgp_peer.h.

boost::scoped_ptr<PeerStats> BgpPeer::peer_stats_
private

Definition at line 532 of file bgp_peer.h.

BgpProto::BgpPeerType BgpPeer::peer_type_
private

Definition at line 528 of file bgp_peer.h.

Timer* BgpPeer::prefix_limit_idle_timer_
private

Definition at line 474 of file bgp_peer.h.

TaskTrigger BgpPeer::prefix_limit_trigger_
mutableprivate

Definition at line 475 of file bgp_peer.h.

tbb::atomic<int> BgpPeer::primary_path_count_
mutableprivate

Definition at line 536 of file bgp_peer.h.

string BgpPeer::private_as_action_
private

Definition at line 509 of file bgp_peer.h.

bool BgpPeer::resolve_paths_
private

Definition at line 507 of file bgp_peer.h.

AgentRouteWalkerPtr BgpPeer::route_walker_
private

Definition at line 214 of file peer.h.

WalkDoneCb BgpPeer::route_walker_cb_
private

Definition at line 217 of file peer.h.

std::string BgpPeer::router_type_
private

Definition at line 465 of file bgp_peer.h.

RouteTargetList BgpPeer::rtargets_
private

Definition at line 544 of file bgp_peer.h.

RoutingInstance* BgpPeer::rtinstance_
private

Definition at line 459 of file bgp_peer.h.

bool BgpPeer::send_ready_
private

Definition at line 504 of file bgp_peer.h.

BgpServer* BgpPeer::server_
private

Definition at line 458 of file bgp_peer.h.

Ip4Address BgpPeer::server_ip_
private

Definition at line 211 of file peer.h.

BgpSession* BgpPeer::session_
private

Definition at line 499 of file bgp_peer.h.

uint32_t BgpPeer::setup_time_
private

Definition at line 213 of file peer.h.

tbb::spin_mutex BgpPeer::spin_mutex_
private

Definition at line 496 of file bgp_peer.h.

boost::scoped_ptr<StateMachine> BgpPeer::state_machine_
private

Definition at line 529 of file bgp_peer.h.

const vector< Address::Family > BgpPeer::supported_families_
staticprivate
std::string BgpPeer::to_str_
mutableprivate

Definition at line 467 of file bgp_peer.h.

uint64_t BgpPeer::total_flap_count_
private

Definition at line 538 of file bgp_peer.h.

tbb::atomic<int> BgpPeer::total_path_count_
mutableprivate

Definition at line 535 of file bgp_peer.h.

TaskTrigger BgpPeer::trigger_
private

Definition at line 473 of file bgp_peer.h.

std::string BgpPeer::uve_key_str_
mutableprivate

Definition at line 468 of file bgp_peer.h.

bool BgpPeer::vpn_tables_registered_
private

Definition at line 517 of file bgp_peer.h.


The documentation for this class was generated from the following files: