OpenSDN source code
BgpServer Class Reference

#include <bgp_server.h>

Collaboration diagram for BgpServer:

Classes

class  ConfigUpdater
 
class  DeleteActor
 

Public Types

typedef boost::function< void()> AdminDownCb
 
typedef boost::function< void(uint8_t)> DSCPUpdateCb
 
typedef boost::function< void(as_t, as_t)> ASNUpdateCb
 
typedef boost::function< void(Ip4Address)> IdentifierUpdateCb
 
typedef boost::function< void(BgpPeer *)> VisitorFn
 
typedef std::set< IStaticRouteMgr * > StaticRouteMgrList
 

Public Member Functions

 BgpServer (EventManager *evm)
 
virtual ~BgpServer ()
 
virtual std::string ToString () const
 
uint16_t GetGracefulRestartTime () const
 
uint32_t GetLongLivedGracefulRestartTime () const
 
bool IsFastConvergenceEnabled () const
 
uint16_t GetXmppHoldTime () const
 
bool IsNextHopCheckEnabled () const
 
uint32_t GetEndOfRibReceiveTime () const
 
uint32_t GetEndOfRibSendTime () const
 
int RegisterPeer (BgpPeer *peer)
 
void UnregisterPeer (BgpPeer *peer)
 
BgpPeerFindPeer (const std::string &name)
 
BgpPeerFindNextPeer (const std::string &name=std::string())
 
void InsertPeer (TcpSession::Endpoint remote, BgpPeer *peer)
 
void RemovePeer (TcpSession::Endpoint remote, BgpPeer *peer)
 
virtual BgpPeerFindPeer (TcpSession::Endpoint remote) const
 
BgpPeerFindExactPeer (const BgpPeer *peer) const
 
void Shutdown ()
 
void VisitBgpPeers (BgpServer::VisitorFn) const
 
BgpSessionManagersession_manager ()
 
BgpUpdateSenderupdate_sender ()
 
LifetimeManagerlifetime_manager ()
 
BgpConfigManagerconfig_manager ()
 
const BgpConfigManagerconfig_manager () const
 
RoutingInstanceMgrrouting_instance_mgr ()
 
const RoutingInstanceMgrrouting_instance_mgr () const
 
RoutingPolicyMgrrouting_policy_mgr ()
 
const RoutingPolicyMgrrouting_policy_mgr () const
 
RTargetGroupMgrrtarget_group_mgr ()
 
const RTargetGroupMgrrtarget_group_mgr () const
 
BgpConditionListenercondition_listener (Address::Family family)
 
BgpConditionListenercondition_listener (SCAddress::Family family)
 
IServiceChainMgrservice_chain_mgr (SCAddress::Family family)
 
RoutePathReplicatorreplicator (Address::Family family)
 
const RoutePathReplicatorreplicator (Address::Family family) const
 
BgpMembershipManagermembership_mgr ()
 
const BgpMembershipManagermembership_mgr () const
 
AsPathDBaspath_db ()
 
AsPath4ByteDBaspath_4byte_db ()
 
As4PathDBas4path_db ()
 
BgpAttrDBattr_db ()
 
BgpOListDBolist_db ()
 
ClusterListDBcluster_list_db ()
 
CommunityDBcomm_db ()
 
EdgeDiscoveryDBedge_discovery_db ()
 
EdgeForwardingDBedge_forwarding_db ()
 
ExtCommunityDBextcomm_db ()
 
OriginVnPathDBovnpath_db ()
 
PmsiTunnelDBpmsi_tunnel_db ()
 
bool IsDeleted () const
 
bool IsReadyForDeletion ()
 
void RetryDelete ()
 
bool logging_disabled () const
 
void set_logging_disabled (bool flag)
 
bool destroyed () const
 
void set_destroyed ()
 
DBdatabase ()
 
const std::string & localname () const
 
bool admin_down () const
 
uint32_t cluster_id () const
 
void set_cluster_id (uint32_t id)
 
as_t autonomous_system () const
 
void set_autonomous_system (as_t asn)
 
as_t local_autonomous_system () const
 
uint32_t bgp_identifier () const
 
uint32_t bgp_identifier_u32 () const
 
std::string bgp_identifier_string () const
 
void UpdateBgpIdentifier (const Ip4Address &identifier)
 
uint32_t hold_time () const
 
bool HasSelfConfiguration () const
 
uint32_t num_routing_instance () const
 
uint32_t num_deleted_routing_instance () const
 
uint32_t num_bgp_peer () const
 
uint32_t num_deleting_bgp_peer () const
 
void increment_deleting_count ()
 
void decrement_deleting_count ()
 
uint32_t num_bgpaas_peer () const
 
uint32_t num_deleting_bgpaas_peer () const
 
void increment_deleting_bgpaas_count ()
 
void decrement_deleting_bgpaas_count ()
 
uint32_t get_output_queue_depth () const
 
uint32_t num_service_chains () const
 
uint32_t num_down_service_chains () const
 
uint32_t num_static_routes () const
 
uint32_t num_down_static_routes () const
 
void IncrementUpPeerCount ()
 
void DecrementUpPeerCount ()
 
uint32_t NumUpPeer () const
 
void IncrementUpBgpaasPeerCount ()
 
void DecrementUpBgpaasPeerCount ()
 
uint32_t NumUpBgpaasPeer () const
 
LifetimeActordeleter ()
 
boost::asio::io_context * ioservice ()
 
void increment_message_build_error () const
 
uint64_t message_build_error () const
 
int RegisterAdminDownCallback (AdminDownCb callback)
 
void UnregisterAdminDownCallback (int listener)
 
void NotifyAdminDown ()
 
int RegisterASNUpdateCallback (ASNUpdateCb callback)
 
void UnregisterASNUpdateCallback (int listener)
 
void NotifyASNUpdate (as_t old_asn, as_t old_local_asn)
 
int RegisterIdentifierUpdateCallback (IdentifierUpdateCb callback)
 
void UnregisterIdentifierUpdateCallback (int listener)
 
void NotifyIdentifierUpdate (Ip4Address old_identifier)
 
int RegisterDSCPUpdateCallback (DSCPUpdateCb cb)
 
void UnregisterDSCPUpdateCallback (int listener)
 
void NotifyDSCPUpdate (int new_dscp_value)
 
void InsertStaticRouteMgr (IStaticRouteMgr *srt_manager)
 
void RemoveStaticRouteMgr (IStaticRouteMgr *srt_manager)
 
void NotifyAllStaticRoutes ()
 
uint32_t GetStaticRouteCount () const
 
uint32_t GetDownStaticRouteCount () const
 
BgpGlobalSystemConfigglobal_config ()
 
const BgpGlobalSystemConfigglobal_config () const
 
BgpGlobalQosConfigglobal_qos ()
 
bool gr_helper_disable () const
 
void set_gr_helper_disable (bool gr_helper_disable)
 
bool IsGRHelperModeEnabled () const
 
bool CollectStats (BgpRouterState *state, bool first) const
 
bool IsServerStartingUp () const
 
time_t GetRTargetTableLastUpdatedTimeStamp () const
 
bool mvpn_ipv4_enable () const
 
void set_mvpn_ipv4_enable (bool flag)
 
bool enable_4byte_as () const
 
void set_enable_4byte_as (bool flag)
 
bool ignore_aspath () const
 
void set_ignore_aspath (bool flag)
 

Static Public Member Functions

static void Initialize ()
 
static void Terminate ()
 

Private Types

typedef std::map< std::string, BgpPeer * > BgpPeerList
 
typedef std::vector< AdminDownCbAdminDownListenersList
 
typedef std::vector< ASNUpdateCbASNUpdateListenersList
 
typedef std::vector< IdentifierUpdateCbIdentifierUpdateListenersList
 
typedef std::vector< DSCPUpdateCbDSCPUpdateListenersList
 
typedef std::multimap< TcpSession::Endpoint, BgpPeer * > EndpointPeerList
 

Private Member Functions

void RoutingInstanceMgrDeletionComplete (RoutingInstanceMgr *mgr)
 
void FillPeerStats (const BgpPeer *peer) const
 
void ClearBgpaaSPeers ()
 
 DISALLOW_COPY_AND_ASSIGN (BgpServer)
 

Private Attributes

tbb::spin_rw_mutex rw_mutex_
 
bool admin_down_
 
AdminDownListenersList admin_down_listeners_
 
boost::dynamic_bitset admin_down_bmap_
 
uint32_t cluster_id_
 
as_t autonomous_system_
 
as_t local_autonomous_system_
 
ASNUpdateListenersList asn_listeners_
 
boost::dynamic_bitset asn_bmap_
 
Ip4Address bgp_identifier_
 
uint32_t bgp_identifier_u32_
 
IdentifierUpdateListenersList id_listeners_
 
boost::dynamic_bitset id_bmap_
 
DSCPUpdateListenersList dscp_listeners_
 
boost::dynamic_bitset dscp_bmap_
 
uint32_t hold_time_
 
bool gr_helper_disable_
 
StaticRouteMgrList srt_manager_list_
 
DB db_
 
boost::dynamic_bitset peer_bmap_
 
tbb::atomic< uint32_t > bgp_count_
 
tbb::atomic< uint32_t > num_up_peer_
 
tbb::atomic< uint32_t > deleting_count_
 
tbb::atomic< uint32_t > bgpaas_count_
 
tbb::atomic< uint32_t > num_up_bgpaas_peer_
 
tbb::atomic< uint32_t > deleting_bgpaas_count_
 
BgpPeerList peer_list_
 
EndpointPeerList endpoint_peer_list_
 
boost::scoped_ptr< LifetimeManagerlifetime_manager_
 
boost::scoped_ptr< DeleteActordeleter_
 
bool destroyed_
 
bool logging_disabled_
 
bool mvpn_ipv4_enable_
 
bool ignore_aspath_
 
boost::scoped_ptr< AsPathDBaspath_db_
 
boost::scoped_ptr< AsPath4ByteDBaspath_4byte_db_
 
boost::scoped_ptr< As4PathDBas4path_db_
 
boost::scoped_ptr< BgpOListDBolist_db_
 
boost::scoped_ptr< ClusterListDBcluster_list_db_
 
boost::scoped_ptr< CommunityDBcomm_db_
 
boost::scoped_ptr< EdgeDiscoveryDBedge_discovery_db_
 
boost::scoped_ptr< EdgeForwardingDBedge_forwarding_db_
 
boost::scoped_ptr< ExtCommunityDBextcomm_db_
 
boost::scoped_ptr< OriginVnPathDBovnpath_db_
 
boost::scoped_ptr< PmsiTunnelDBpmsi_tunnel_db_
 
boost::scoped_ptr< BgpAttrDBattr_db_
 
BgpSessionManagersession_mgr_
 
boost::scoped_ptr< BgpUpdateSenderupdate_sender_
 
boost::scoped_ptr< RoutingInstanceMgrinst_mgr_
 
boost::scoped_ptr< RoutingPolicyMgrpolicy_mgr_
 
boost::scoped_ptr< RTargetGroupMgrrtarget_group_mgr_
 
boost::scoped_ptr< BgpMembershipManagermembership_mgr_
 
boost::scoped_ptr< BgpConditionListenerinet_condition_listener_
 
boost::scoped_ptr< BgpConditionListenerinet6_condition_listener_
 
boost::scoped_ptr< BgpConditionListenerevpn_condition_listener_
 
boost::scoped_ptr< BgpConditionListenerevpn6_condition_listener_
 
boost::scoped_ptr< RoutePathReplicatorinetvpn_replicator_
 
boost::scoped_ptr< RoutePathReplicatorermvpn_replicator_
 
boost::scoped_ptr< RoutePathReplicatormvpn_replicator_
 
boost::scoped_ptr< RoutePathReplicatorevpn_replicator_
 
boost::scoped_ptr< RoutePathReplicatorinet6vpn_replicator_
 
boost::scoped_ptr< IServiceChainMgrinet_service_chain_mgr_
 
boost::scoped_ptr< IServiceChainMgrinet6_service_chain_mgr_
 
boost::scoped_ptr< IServiceChainMgrevpn_service_chain_mgr_
 
boost::scoped_ptr< IServiceChainMgrevpn6_service_chain_mgr_
 
boost::scoped_ptr< BgpGlobalSystemConfigglobal_config_
 
boost::scoped_ptr< BgpGlobalQosConfigglobal_qos_
 
boost::scoped_ptr< BgpConfigManagerconfig_mgr_
 
boost::scoped_ptr< ConfigUpdaterupdater_
 
tbb::atomic< uint64_t > message_build_error_
 

Friends

class BgpServerTest
 
class BgpServerUnitTest
 

Detailed Description

Definition at line 58 of file bgp_server.h.

Member Typedef Documentation

◆ AdminDownCb

typedef boost::function<void()> BgpServer::AdminDownCb

Definition at line 60 of file bgp_server.h.

◆ AdminDownListenersList

typedef std::vector<AdminDownCb> BgpServer::AdminDownListenersList
private

Definition at line 318 of file bgp_server.h.

◆ ASNUpdateCb

typedef boost::function<void(as_t, as_t)> BgpServer::ASNUpdateCb

Definition at line 62 of file bgp_server.h.

◆ ASNUpdateListenersList

typedef std::vector<ASNUpdateCb> BgpServer::ASNUpdateListenersList
private

Definition at line 319 of file bgp_server.h.

◆ BgpPeerList

typedef std::map<std::string, BgpPeer *> BgpServer::BgpPeerList
private

Definition at line 317 of file bgp_server.h.

◆ DSCPUpdateCb

typedef boost::function<void(uint8_t)> BgpServer::DSCPUpdateCb

Definition at line 61 of file bgp_server.h.

◆ DSCPUpdateListenersList

typedef std::vector<DSCPUpdateCb> BgpServer::DSCPUpdateListenersList
private

Definition at line 321 of file bgp_server.h.

◆ EndpointPeerList

typedef std::multimap<TcpSession::Endpoint, BgpPeer *> BgpServer::EndpointPeerList
private

Definition at line 322 of file bgp_server.h.

◆ IdentifierUpdateCb

typedef boost::function<void(Ip4Address)> BgpServer::IdentifierUpdateCb

Definition at line 63 of file bgp_server.h.

◆ IdentifierUpdateListenersList

Definition at line 320 of file bgp_server.h.

◆ StaticRouteMgrList

Definition at line 65 of file bgp_server.h.

◆ VisitorFn

typedef boost::function<void(BgpPeer *)> BgpServer::VisitorFn

Definition at line 64 of file bgp_server.h.

Constructor & Destructor Documentation

◆ BgpServer()

BgpServer::BgpServer ( EventManager evm)
explicit

Definition at line 485 of file bgp_server.cc.

◆ ~BgpServer()

BgpServer::~BgpServer ( )
virtual

Definition at line 549 of file bgp_server.cc.

Member Function Documentation

◆ admin_down()

bool BgpServer::admin_down ( ) const
inline

Definition at line 204 of file bgp_server.h.

◆ as4path_db()

As4PathDB* BgpServer::as4path_db ( )
inline

Definition at line 182 of file bgp_server.h.

◆ aspath_4byte_db()

AsPath4ByteDB* BgpServer::aspath_4byte_db ( )
inline

Definition at line 181 of file bgp_server.h.

◆ aspath_db()

AsPathDB* BgpServer::aspath_db ( )
inline

Definition at line 180 of file bgp_server.h.

◆ attr_db()

BgpAttrDB* BgpServer::attr_db ( )
inline

Definition at line 183 of file bgp_server.h.

◆ autonomous_system()

as_t BgpServer::autonomous_system ( ) const
inline

Definition at line 207 of file bgp_server.h.

◆ bgp_identifier()

uint32_t BgpServer::bgp_identifier ( ) const
inline

Definition at line 210 of file bgp_server.h.

◆ bgp_identifier_string()

std::string BgpServer::bgp_identifier_string ( ) const
inline

Definition at line 213 of file bgp_server.h.

◆ bgp_identifier_u32()

uint32_t BgpServer::bgp_identifier_u32 ( ) const
inline

Definition at line 211 of file bgp_server.h.

◆ ClearBgpaaSPeers()

void BgpServer::ClearBgpaaSPeers ( )
private

Definition at line 663 of file bgp_server.cc.

◆ cluster_id()

uint32_t BgpServer::cluster_id ( ) const
inline

Definition at line 205 of file bgp_server.h.

◆ cluster_list_db()

ClusterListDB* BgpServer::cluster_list_db ( )
inline

Definition at line 185 of file bgp_server.h.

◆ CollectStats()

bool BgpServer::CollectStats ( BgpRouterState *  state,
bool  first 
) const

Definition at line 1072 of file bgp_server.cc.

Here is the call graph for this function:

◆ comm_db()

CommunityDB* BgpServer::comm_db ( )
inline

Definition at line 186 of file bgp_server.h.

◆ condition_listener() [1/2]

BgpConditionListener* BgpServer::condition_listener ( Address::Family  family)
inline

Definition at line 114 of file bgp_server.h.

◆ condition_listener() [2/2]

BgpConditionListener* BgpServer::condition_listener ( SCAddress::Family  family)
inline

Definition at line 124 of file bgp_server.h.

◆ config_manager() [1/2]

BgpConfigManager* BgpServer::config_manager ( )
inline

Definition at line 100 of file bgp_server.h.

◆ config_manager() [2/2]

const BgpConfigManager* BgpServer::config_manager ( ) const
inline

Definition at line 101 of file bgp_server.h.

◆ database()

DB* BgpServer::database ( )
inline

Definition at line 202 of file bgp_server.h.

◆ decrement_deleting_bgpaas_count()

void BgpServer::decrement_deleting_bgpaas_count ( )
inline

Definition at line 235 of file bgp_server.h.

◆ decrement_deleting_count()

void BgpServer::decrement_deleting_count ( )
inline

Definition at line 227 of file bgp_server.h.

◆ DecrementUpBgpaasPeerCount()

void BgpServer::DecrementUpBgpaasPeerCount ( )
inline

Definition at line 260 of file bgp_server.h.

◆ DecrementUpPeerCount()

void BgpServer::DecrementUpPeerCount ( )
inline

Definition at line 250 of file bgp_server.h.

◆ deleter()

LifetimeActor * BgpServer::deleter ( )

Definition at line 571 of file bgp_server.cc.

◆ destroyed()

bool BgpServer::destroyed ( ) const
inline

Definition at line 199 of file bgp_server.h.

◆ DISALLOW_COPY_AND_ASSIGN()

BgpServer::DISALLOW_COPY_AND_ASSIGN ( BgpServer  )
private

◆ edge_discovery_db()

EdgeDiscoveryDB* BgpServer::edge_discovery_db ( )
inline

Definition at line 187 of file bgp_server.h.

◆ edge_forwarding_db()

EdgeForwardingDB* BgpServer::edge_forwarding_db ( )
inline

Definition at line 188 of file bgp_server.h.

◆ enable_4byte_as()

bool BgpServer::enable_4byte_as ( ) const

Definition at line 733 of file bgp_server.cc.

Here is the call graph for this function:

◆ extcomm_db()

ExtCommunityDB* BgpServer::extcomm_db ( )
inline

Definition at line 189 of file bgp_server.h.

◆ FillPeerStats()

void BgpServer::FillPeerStats ( const BgpPeer peer) const
private

Definition at line 1043 of file bgp_server.cc.

Here is the call graph for this function:

◆ FindExactPeer()

BgpPeer * BgpServer::FindExactPeer ( const BgpPeer peer) const

Definition at line 674 of file bgp_server.cc.

Here is the call graph for this function:

◆ FindNextPeer()

BgpPeer * BgpServer::FindNextPeer ( const std::string &  name = std::string())

Definition at line 641 of file bgp_server.cc.

◆ FindPeer() [1/2]

BgpPeer* BgpServer::FindPeer ( const std::string &  name)

◆ FindPeer() [2/2]

BgpPeer * BgpServer::FindPeer ( TcpSession::Endpoint  remote) const
virtual

Definition at line 669 of file bgp_server.cc.

◆ get_output_queue_depth()

uint32_t BgpServer::get_output_queue_depth ( ) const

Definition at line 765 of file bgp_server.cc.

Here is the call graph for this function:

◆ GetDownStaticRouteCount()

uint32_t BgpServer::GetDownStaticRouteCount ( ) const

Definition at line 1032 of file bgp_server.cc.

Here is the call graph for this function:

◆ GetEndOfRibReceiveTime()

uint32_t BgpServer::GetEndOfRibReceiveTime ( ) const

Definition at line 721 of file bgp_server.cc.

◆ GetEndOfRibSendTime()

uint32_t BgpServer::GetEndOfRibSendTime ( ) const

Definition at line 725 of file bgp_server.cc.

◆ GetGracefulRestartTime()

uint16_t BgpServer::GetGracefulRestartTime ( ) const

Definition at line 703 of file bgp_server.cc.

◆ GetLongLivedGracefulRestartTime()

uint32_t BgpServer::GetLongLivedGracefulRestartTime ( ) const

Definition at line 709 of file bgp_server.cc.

◆ GetRTargetTableLastUpdatedTimeStamp()

time_t BgpServer::GetRTargetTableLastUpdatedTimeStamp ( ) const

Definition at line 1213 of file bgp_server.cc.

Here is the call graph for this function:

◆ GetStaticRouteCount()

uint32_t BgpServer::GetStaticRouteCount ( ) const

Definition at line 1021 of file bgp_server.cc.

Here is the call graph for this function:

◆ GetXmppHoldTime()

uint16_t BgpServer::GetXmppHoldTime ( ) const

Definition at line 715 of file bgp_server.cc.

◆ global_config() [1/2]

BgpGlobalSystemConfig* BgpServer::global_config ( )
inline

Definition at line 292 of file bgp_server.h.

◆ global_config() [2/2]

const BgpGlobalSystemConfig* BgpServer::global_config ( ) const
inline

Definition at line 293 of file bgp_server.h.

◆ global_qos()

BgpGlobalQosConfig* BgpServer::global_qos ( )
inline

Definition at line 296 of file bgp_server.h.

◆ gr_helper_disable()

bool BgpServer::gr_helper_disable ( ) const
inline

Definition at line 297 of file bgp_server.h.

◆ HasSelfConfiguration()

bool BgpServer::HasSelfConfiguration ( ) const

Definition at line 575 of file bgp_server.cc.

Here is the call graph for this function:

◆ hold_time()

uint32_t BgpServer::hold_time ( ) const
inline

Definition at line 217 of file bgp_server.h.

◆ ignore_aspath()

bool BgpServer::ignore_aspath ( ) const
inline

Definition at line 309 of file bgp_server.h.

◆ increment_deleting_bgpaas_count()

void BgpServer::increment_deleting_bgpaas_count ( )
inline

Definition at line 234 of file bgp_server.h.

◆ increment_deleting_count()

void BgpServer::increment_deleting_count ( )
inline

Definition at line 226 of file bgp_server.h.

◆ increment_message_build_error()

void BgpServer::increment_message_build_error ( ) const
inline

Definition at line 271 of file bgp_server.h.

◆ IncrementUpBgpaasPeerCount()

void BgpServer::IncrementUpBgpaasPeerCount ( )
inline

Definition at line 257 of file bgp_server.h.

◆ IncrementUpPeerCount()

void BgpServer::IncrementUpPeerCount ( )
inline

Definition at line 247 of file bgp_server.h.

◆ Initialize()

void BgpServer::Initialize ( )
static

Definition at line 555 of file bgp_server.cc.

Here is the call graph for this function:

◆ InsertPeer()

void BgpServer::InsertPeer ( TcpSession::Endpoint  remote,
BgpPeer peer 
)

Definition at line 646 of file bgp_server.cc.

◆ InsertStaticRouteMgr()

void BgpServer::InsertStaticRouteMgr ( IStaticRouteMgr srt_manager)

Definition at line 999 of file bgp_server.cc.

◆ ioservice()

boost::asio::io_context * BgpServer::ioservice ( )

Definition at line 689 of file bgp_server.cc.

Here is the call graph for this function:

◆ IsDeleted()

bool BgpServer::IsDeleted ( ) const

Definition at line 422 of file bgp_server.cc.

◆ IsFastConvergenceEnabled()

bool BgpServer::IsFastConvergenceEnabled ( ) const

Definition at line 693 of file bgp_server.cc.

◆ IsGRHelperModeEnabled()

bool BgpServer::IsGRHelperModeEnabled ( ) const

Definition at line 741 of file bgp_server.cc.

◆ IsNextHopCheckEnabled()

bool BgpServer::IsNextHopCheckEnabled ( ) const

Definition at line 697 of file bgp_server.cc.

◆ IsReadyForDeletion()

bool BgpServer::IsReadyForDeletion ( )

Definition at line 432 of file bgp_server.cc.

Here is the call graph for this function:

◆ IsServerStartingUp()

bool BgpServer::IsServerStartingUp ( ) const

Definition at line 729 of file bgp_server.cc.

Here is the call graph for this function:

◆ lifetime_manager()

LifetimeManager* BgpServer::lifetime_manager ( )
inline

Definition at line 99 of file bgp_server.h.

◆ local_autonomous_system()

as_t BgpServer::local_autonomous_system ( ) const
inline

Definition at line 209 of file bgp_server.h.

◆ localname()

const string & BgpServer::localname ( ) const

Definition at line 685 of file bgp_server.cc.

◆ logging_disabled()

bool BgpServer::logging_disabled ( ) const
inline

Definition at line 196 of file bgp_server.h.

◆ membership_mgr() [1/2]

BgpMembershipManager* BgpServer::membership_mgr ( )
inline

Definition at line 175 of file bgp_server.h.

◆ membership_mgr() [2/2]

const BgpMembershipManager* BgpServer::membership_mgr ( ) const
inline

Definition at line 176 of file bgp_server.h.

◆ message_build_error()

uint64_t BgpServer::message_build_error ( ) const
inline

Definition at line 272 of file bgp_server.h.

◆ mvpn_ipv4_enable()

bool BgpServer::mvpn_ipv4_enable ( ) const
inline

Definition at line 305 of file bgp_server.h.

◆ NotifyAdminDown()

void BgpServer::NotifyAdminDown ( )

Definition at line 853 of file bgp_server.cc.

◆ NotifyAllStaticRoutes()

void BgpServer::NotifyAllStaticRoutes ( )

Definition at line 1011 of file bgp_server.cc.

Here is the call graph for this function:

◆ NotifyASNUpdate()

void BgpServer::NotifyASNUpdate ( as_t  old_asn,
as_t  old_local_asn 
)

Definition at line 898 of file bgp_server.cc.

◆ NotifyDSCPUpdate()

void BgpServer::NotifyDSCPUpdate ( int  new_dscp_value)

Definition at line 943 of file bgp_server.cc.

◆ NotifyIdentifierUpdate()

void BgpServer::NotifyIdentifierUpdate ( Ip4Address  old_identifier)

Definition at line 988 of file bgp_server.cc.

◆ num_bgp_peer()

uint32_t BgpServer::num_bgp_peer ( ) const
inline

Definition at line 224 of file bgp_server.h.

◆ num_bgpaas_peer()

uint32_t BgpServer::num_bgpaas_peer ( ) const
inline

Definition at line 232 of file bgp_server.h.

◆ num_deleted_routing_instance()

uint32_t BgpServer::num_deleted_routing_instance ( ) const

Definition at line 760 of file bgp_server.cc.

◆ num_deleting_bgp_peer()

uint32_t BgpServer::num_deleting_bgp_peer ( ) const
inline

Definition at line 225 of file bgp_server.h.

◆ num_deleting_bgpaas_peer()

uint32_t BgpServer::num_deleting_bgpaas_peer ( ) const
inline

Definition at line 233 of file bgp_server.h.

◆ num_down_service_chains()

uint32_t BgpServer::num_down_service_chains ( ) const

Definition at line 792 of file bgp_server.cc.

◆ num_down_static_routes()

uint32_t BgpServer::num_down_static_routes ( ) const

Definition at line 807 of file bgp_server.cc.

Here is the call graph for this function:

◆ num_routing_instance()

uint32_t BgpServer::num_routing_instance ( ) const

Definition at line 755 of file bgp_server.cc.

◆ num_service_chains()

uint32_t BgpServer::num_service_chains ( ) const

Definition at line 781 of file bgp_server.cc.

◆ num_static_routes()

uint32_t BgpServer::num_static_routes ( ) const

Definition at line 803 of file bgp_server.cc.

Here is the call graph for this function:

◆ NumUpBgpaasPeer()

uint32_t BgpServer::NumUpBgpaasPeer ( ) const
inline

Definition at line 264 of file bgp_server.h.

◆ NumUpPeer()

uint32_t BgpServer::NumUpPeer ( ) const
inline

Definition at line 254 of file bgp_server.h.

◆ olist_db()

BgpOListDB* BgpServer::olist_db ( )
inline

Definition at line 184 of file bgp_server.h.

◆ ovnpath_db()

OriginVnPathDB* BgpServer::ovnpath_db ( )
inline

Definition at line 190 of file bgp_server.h.

◆ pmsi_tunnel_db()

PmsiTunnelDB* BgpServer::pmsi_tunnel_db ( )
inline

Definition at line 191 of file bgp_server.h.

◆ RegisterAdminDownCallback()

int BgpServer::RegisterAdminDownCallback ( AdminDownCb  callback)

Definition at line 818 of file bgp_server.cc.

◆ RegisterASNUpdateCallback()

int BgpServer::RegisterASNUpdateCallback ( ASNUpdateCb  callback)

Definition at line 864 of file bgp_server.cc.

◆ RegisterDSCPUpdateCallback()

int BgpServer::RegisterDSCPUpdateCallback ( DSCPUpdateCb  cb)

Definition at line 909 of file bgp_server.cc.

◆ RegisterIdentifierUpdateCallback()

int BgpServer::RegisterIdentifierUpdateCallback ( IdentifierUpdateCb  callback)

Definition at line 954 of file bgp_server.cc.

◆ RegisterPeer()

int BgpServer::RegisterPeer ( BgpPeer peer)

Definition at line 585 of file bgp_server.cc.

Here is the call graph for this function:

◆ RemovePeer()

void BgpServer::RemovePeer ( TcpSession::Endpoint  remote,
BgpPeer peer 
)

Definition at line 652 of file bgp_server.cc.

◆ RemoveStaticRouteMgr()

void BgpServer::RemoveStaticRouteMgr ( IStaticRouteMgr srt_manager)

Definition at line 1005 of file bgp_server.cc.

◆ replicator() [1/2]

RoutePathReplicator* BgpServer::replicator ( Address::Family  family)
inline

Definition at line 148 of file bgp_server.h.

◆ replicator() [2/2]

const RoutePathReplicator* BgpServer::replicator ( Address::Family  family) const
inline

Definition at line 161 of file bgp_server.h.

◆ RetryDelete()

void BgpServer::RetryDelete ( )

Definition at line 426 of file bgp_server.cc.

◆ routing_instance_mgr() [1/2]

RoutingInstanceMgr* BgpServer::routing_instance_mgr ( )
inline

Definition at line 102 of file bgp_server.h.

◆ routing_instance_mgr() [2/2]

const RoutingInstanceMgr* BgpServer::routing_instance_mgr ( ) const
inline

Definition at line 103 of file bgp_server.h.

◆ routing_policy_mgr() [1/2]

RoutingPolicyMgr* BgpServer::routing_policy_mgr ( )
inline

Definition at line 106 of file bgp_server.h.

◆ routing_policy_mgr() [2/2]

const RoutingPolicyMgr* BgpServer::routing_policy_mgr ( ) const
inline

Definition at line 107 of file bgp_server.h.

◆ RoutingInstanceMgrDeletionComplete()

void BgpServer::RoutingInstanceMgrDeletionComplete ( RoutingInstanceMgr mgr)
private

◆ rtarget_group_mgr() [1/2]

RTargetGroupMgr* BgpServer::rtarget_group_mgr ( )
inline

Definition at line 110 of file bgp_server.h.

◆ rtarget_group_mgr() [2/2]

const RTargetGroupMgr* BgpServer::rtarget_group_mgr ( ) const
inline

Definition at line 111 of file bgp_server.h.

◆ service_chain_mgr()

IServiceChainMgr* BgpServer::service_chain_mgr ( SCAddress::Family  family)
inline

Definition at line 136 of file bgp_server.h.

◆ session_manager()

BgpSessionManager* BgpServer::session_manager ( )
inline

Definition at line 97 of file bgp_server.h.

◆ set_autonomous_system()

void BgpServer::set_autonomous_system ( as_t  asn)
inline

Definition at line 208 of file bgp_server.h.

◆ set_cluster_id()

void BgpServer::set_cluster_id ( uint32_t  id)
inline

Definition at line 206 of file bgp_server.h.

◆ set_destroyed()

void BgpServer::set_destroyed ( )
inline

Definition at line 200 of file bgp_server.h.

◆ set_enable_4byte_as()

void BgpServer::set_enable_4byte_as ( bool  flag)

Definition at line 737 of file bgp_server.cc.

Here is the call graph for this function:

◆ set_gr_helper_disable()

void BgpServer::set_gr_helper_disable ( bool  gr_helper_disable)
inline

Definition at line 298 of file bgp_server.h.

Here is the call graph for this function:

◆ set_ignore_aspath()

void BgpServer::set_ignore_aspath ( bool  flag)
inline

Definition at line 310 of file bgp_server.h.

◆ set_logging_disabled()

void BgpServer::set_logging_disabled ( bool  flag)
inline

Definition at line 197 of file bgp_server.h.

◆ set_mvpn_ipv4_enable()

void BgpServer::set_mvpn_ipv4_enable ( bool  flag)
inline

Definition at line 306 of file bgp_server.h.

◆ Shutdown()

void BgpServer::Shutdown ( )

Definition at line 567 of file bgp_server.cc.

◆ Terminate()

void BgpServer::Terminate ( )
static

Definition at line 559 of file bgp_server.cc.

Here is the call graph for this function:

◆ ToString()

string BgpServer::ToString ( ) const
virtual

Definition at line 563 of file bgp_server.cc.

◆ UnregisterAdminDownCallback()

void BgpServer::UnregisterAdminDownCallback ( int  listener)

Definition at line 834 of file bgp_server.cc.

◆ UnregisterASNUpdateCallback()

void BgpServer::UnregisterASNUpdateCallback ( int  listener)

Definition at line 880 of file bgp_server.cc.

◆ UnregisterDSCPUpdateCallback()

void BgpServer::UnregisterDSCPUpdateCallback ( int  listener)

Definition at line 925 of file bgp_server.cc.

◆ UnregisterIdentifierUpdateCallback()

void BgpServer::UnregisterIdentifierUpdateCallback ( int  listener)

Definition at line 970 of file bgp_server.cc.

◆ UnregisterPeer()

void BgpServer::UnregisterPeer ( BgpPeer peer)

Definition at line 609 of file bgp_server.cc.

Here is the call graph for this function:

◆ update_sender()

BgpUpdateSender* BgpServer::update_sender ( )
inline

Definition at line 98 of file bgp_server.h.

◆ UpdateBgpIdentifier()

void BgpServer::UpdateBgpIdentifier ( const Ip4Address identifier)

Definition at line 1220 of file bgp_server.cc.

Here is the call graph for this function:

◆ VisitBgpPeers()

void BgpServer::VisitBgpPeers ( BgpServer::VisitorFn  fn) const

Definition at line 811 of file bgp_server.cc.

Friends And Related Function Documentation

◆ BgpServerTest

friend class BgpServerTest
friend

Definition at line 315 of file bgp_server.h.

◆ BgpServerUnitTest

friend class BgpServerUnitTest
friend

Definition at line 316 of file bgp_server.h.

Member Data Documentation

◆ admin_down_

bool BgpServer::admin_down_
private

Definition at line 330 of file bgp_server.h.

◆ admin_down_bmap_

boost::dynamic_bitset BgpServer::admin_down_bmap_
private

Definition at line 332 of file bgp_server.h.

◆ admin_down_listeners_

AdminDownListenersList BgpServer::admin_down_listeners_
private

Definition at line 331 of file bgp_server.h.

◆ as4path_db_

boost::scoped_ptr<As4PathDB> BgpServer::as4path_db_
private

Definition at line 369 of file bgp_server.h.

◆ asn_bmap_

boost::dynamic_bitset BgpServer::asn_bmap_
private

Definition at line 337 of file bgp_server.h.

◆ asn_listeners_

ASNUpdateListenersList BgpServer::asn_listeners_
private

Definition at line 336 of file bgp_server.h.

◆ aspath_4byte_db_

boost::scoped_ptr<AsPath4ByteDB> BgpServer::aspath_4byte_db_
private

Definition at line 368 of file bgp_server.h.

◆ aspath_db_

boost::scoped_ptr<AsPathDB> BgpServer::aspath_db_
private

Definition at line 367 of file bgp_server.h.

◆ attr_db_

boost::scoped_ptr<BgpAttrDB> BgpServer::attr_db_
private

Definition at line 378 of file bgp_server.h.

◆ autonomous_system_

as_t BgpServer::autonomous_system_
private

Definition at line 334 of file bgp_server.h.

◆ bgp_count_

tbb::atomic<uint32_t> BgpServer::bgp_count_
private

Definition at line 350 of file bgp_server.h.

◆ bgp_identifier_

Ip4Address BgpServer::bgp_identifier_
private

Definition at line 338 of file bgp_server.h.

◆ bgp_identifier_u32_

uint32_t BgpServer::bgp_identifier_u32_
private

Definition at line 339 of file bgp_server.h.

◆ bgpaas_count_

tbb::atomic<uint32_t> BgpServer::bgpaas_count_
private

Definition at line 353 of file bgp_server.h.

◆ cluster_id_

uint32_t BgpServer::cluster_id_
private

Definition at line 333 of file bgp_server.h.

◆ cluster_list_db_

boost::scoped_ptr<ClusterListDB> BgpServer::cluster_list_db_
private

Definition at line 371 of file bgp_server.h.

◆ comm_db_

boost::scoped_ptr<CommunityDB> BgpServer::comm_db_
private

Definition at line 372 of file bgp_server.h.

◆ config_mgr_

boost::scoped_ptr<BgpConfigManager> BgpServer::config_mgr_
private

Definition at line 404 of file bgp_server.h.

◆ db_

DB BgpServer::db_
private

Definition at line 348 of file bgp_server.h.

◆ deleter_

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

Definition at line 360 of file bgp_server.h.

◆ deleting_bgpaas_count_

tbb::atomic<uint32_t> BgpServer::deleting_bgpaas_count_
private

Definition at line 355 of file bgp_server.h.

◆ deleting_count_

tbb::atomic<uint32_t> BgpServer::deleting_count_
private

Definition at line 352 of file bgp_server.h.

◆ destroyed_

bool BgpServer::destroyed_
private

Definition at line 361 of file bgp_server.h.

◆ dscp_bmap_

boost::dynamic_bitset BgpServer::dscp_bmap_
private

Definition at line 343 of file bgp_server.h.

◆ dscp_listeners_

DSCPUpdateListenersList BgpServer::dscp_listeners_
private

Definition at line 342 of file bgp_server.h.

◆ edge_discovery_db_

boost::scoped_ptr<EdgeDiscoveryDB> BgpServer::edge_discovery_db_
private

Definition at line 373 of file bgp_server.h.

◆ edge_forwarding_db_

boost::scoped_ptr<EdgeForwardingDB> BgpServer::edge_forwarding_db_
private

Definition at line 374 of file bgp_server.h.

◆ endpoint_peer_list_

EndpointPeerList BgpServer::endpoint_peer_list_
private

Definition at line 357 of file bgp_server.h.

◆ ermvpn_replicator_

boost::scoped_ptr<RoutePathReplicator> BgpServer::ermvpn_replicator_
private

Definition at line 392 of file bgp_server.h.

◆ evpn6_condition_listener_

boost::scoped_ptr<BgpConditionListener> BgpServer::evpn6_condition_listener_
private

Definition at line 390 of file bgp_server.h.

◆ evpn6_service_chain_mgr_

boost::scoped_ptr<IServiceChainMgr> BgpServer::evpn6_service_chain_mgr_
private

Definition at line 399 of file bgp_server.h.

◆ evpn_condition_listener_

boost::scoped_ptr<BgpConditionListener> BgpServer::evpn_condition_listener_
private

Definition at line 389 of file bgp_server.h.

◆ evpn_replicator_

boost::scoped_ptr<RoutePathReplicator> BgpServer::evpn_replicator_
private

Definition at line 394 of file bgp_server.h.

◆ evpn_service_chain_mgr_

boost::scoped_ptr<IServiceChainMgr> BgpServer::evpn_service_chain_mgr_
private

Definition at line 398 of file bgp_server.h.

◆ extcomm_db_

boost::scoped_ptr<ExtCommunityDB> BgpServer::extcomm_db_
private

Definition at line 375 of file bgp_server.h.

◆ global_config_

boost::scoped_ptr<BgpGlobalSystemConfig> BgpServer::global_config_
private

Definition at line 402 of file bgp_server.h.

◆ global_qos_

boost::scoped_ptr<BgpGlobalQosConfig> BgpServer::global_qos_
private

Definition at line 403 of file bgp_server.h.

◆ gr_helper_disable_

bool BgpServer::gr_helper_disable_
private

Definition at line 345 of file bgp_server.h.

◆ hold_time_

uint32_t BgpServer::hold_time_
private

Definition at line 344 of file bgp_server.h.

◆ id_bmap_

boost::dynamic_bitset BgpServer::id_bmap_
private

Definition at line 341 of file bgp_server.h.

◆ id_listeners_

IdentifierUpdateListenersList BgpServer::id_listeners_
private

Definition at line 340 of file bgp_server.h.

◆ ignore_aspath_

bool BgpServer::ignore_aspath_
private

Definition at line 364 of file bgp_server.h.

◆ inet6_condition_listener_

boost::scoped_ptr<BgpConditionListener> BgpServer::inet6_condition_listener_
private

Definition at line 388 of file bgp_server.h.

◆ inet6_service_chain_mgr_

boost::scoped_ptr<IServiceChainMgr> BgpServer::inet6_service_chain_mgr_
private

Definition at line 397 of file bgp_server.h.

◆ inet6vpn_replicator_

boost::scoped_ptr<RoutePathReplicator> BgpServer::inet6vpn_replicator_
private

Definition at line 395 of file bgp_server.h.

◆ inet_condition_listener_

boost::scoped_ptr<BgpConditionListener> BgpServer::inet_condition_listener_
private

Definition at line 387 of file bgp_server.h.

◆ inet_service_chain_mgr_

boost::scoped_ptr<IServiceChainMgr> BgpServer::inet_service_chain_mgr_
private

Definition at line 396 of file bgp_server.h.

◆ inetvpn_replicator_

boost::scoped_ptr<RoutePathReplicator> BgpServer::inetvpn_replicator_
private

Definition at line 391 of file bgp_server.h.

◆ inst_mgr_

boost::scoped_ptr<RoutingInstanceMgr> BgpServer::inst_mgr_
private

Definition at line 383 of file bgp_server.h.

◆ lifetime_manager_

boost::scoped_ptr<LifetimeManager> BgpServer::lifetime_manager_
private

Definition at line 359 of file bgp_server.h.

◆ local_autonomous_system_

as_t BgpServer::local_autonomous_system_
private

Definition at line 335 of file bgp_server.h.

◆ logging_disabled_

bool BgpServer::logging_disabled_
private

Definition at line 362 of file bgp_server.h.

◆ membership_mgr_

boost::scoped_ptr<BgpMembershipManager> BgpServer::membership_mgr_
private

Definition at line 386 of file bgp_server.h.

◆ message_build_error_

tbb::atomic<uint64_t> BgpServer::message_build_error_
mutableprivate

Definition at line 407 of file bgp_server.h.

◆ mvpn_ipv4_enable_

bool BgpServer::mvpn_ipv4_enable_
private

Definition at line 363 of file bgp_server.h.

◆ mvpn_replicator_

boost::scoped_ptr<RoutePathReplicator> BgpServer::mvpn_replicator_
private

Definition at line 393 of file bgp_server.h.

◆ num_up_bgpaas_peer_

tbb::atomic<uint32_t> BgpServer::num_up_bgpaas_peer_
private

Definition at line 354 of file bgp_server.h.

◆ num_up_peer_

tbb::atomic<uint32_t> BgpServer::num_up_peer_
private

Definition at line 351 of file bgp_server.h.

◆ olist_db_

boost::scoped_ptr<BgpOListDB> BgpServer::olist_db_
private

Definition at line 370 of file bgp_server.h.

◆ ovnpath_db_

boost::scoped_ptr<OriginVnPathDB> BgpServer::ovnpath_db_
private

Definition at line 376 of file bgp_server.h.

◆ peer_bmap_

boost::dynamic_bitset BgpServer::peer_bmap_
private

Definition at line 349 of file bgp_server.h.

◆ peer_list_

BgpPeerList BgpServer::peer_list_
private

Definition at line 356 of file bgp_server.h.

◆ pmsi_tunnel_db_

boost::scoped_ptr<PmsiTunnelDB> BgpServer::pmsi_tunnel_db_
private

Definition at line 377 of file bgp_server.h.

◆ policy_mgr_

boost::scoped_ptr<RoutingPolicyMgr> BgpServer::policy_mgr_
private

Definition at line 384 of file bgp_server.h.

◆ rtarget_group_mgr_

boost::scoped_ptr<RTargetGroupMgr> BgpServer::rtarget_group_mgr_
private

Definition at line 385 of file bgp_server.h.

◆ rw_mutex_

tbb::spin_rw_mutex BgpServer::rw_mutex_
private

Definition at line 329 of file bgp_server.h.

◆ session_mgr_

BgpSessionManager* BgpServer::session_mgr_
private

Definition at line 381 of file bgp_server.h.

◆ srt_manager_list_

StaticRouteMgrList BgpServer::srt_manager_list_
private

Definition at line 346 of file bgp_server.h.

◆ update_sender_

boost::scoped_ptr<BgpUpdateSender> BgpServer::update_sender_
private

Definition at line 382 of file bgp_server.h.

◆ updater_

boost::scoped_ptr<ConfigUpdater> BgpServer::updater_
private

Definition at line 405 of file bgp_server.h.


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