5 #ifndef SRC_BGP_BGP_SERVER_H_
6 #define SRC_BGP_BGP_SERVER_H_
8 #include <tbb/spin_rw_mutex.h>
9 #include <boost/asio/ip/tcp.hpp>
10 #include <boost/dynamic_bitset.hpp>
11 #include <boost/scoped_ptr.hpp>
12 #include <boost/bind.hpp>
73 virtual std::string
ToString()
const;
302 bool CollectStats(BgpRouterState *state,
bool first)
const;
boost::asio::ip::address_v4 Ip4Address
void RoutingInstanceMgrDeletionComplete(RoutingInstanceMgr *mgr)
void decrement_deleting_count()
boost::scoped_ptr< BgpAttrDB > attr_db_
boost::scoped_ptr< RoutePathReplicator > ermvpn_replicator_
boost::scoped_ptr< BgpConditionListener > inet6_condition_listener_
RTargetGroupMgr * rtarget_group_mgr()
uint32_t num_deleting_bgp_peer() const
std::string bgp_identifier_string() const
tbb::atomic< uint32_t > num_up_bgpaas_peer_
DSCPUpdateListenersList dscp_listeners_
uint32_t cluster_id() const
uint32_t GetStaticRouteCount() const
as_t local_autonomous_system_
bool CollectStats(BgpRouterState *state, bool first) const
ExtCommunityDB * extcomm_db()
const RoutingInstanceMgr * routing_instance_mgr() const
IServiceChainMgr * service_chain_mgr(SCAddress::Family family)
void RemovePeer(TcpSession::Endpoint remote, BgpPeer *peer)
boost::asio::io_context * ioservice()
uint32_t bgp_identifier_u32_
uint32_t num_service_chains() const
BgpServer(EventManager *evm)
BgpSessionManager * session_mgr_
uint32_t num_bgp_peer() const
uint32_t num_static_routes() const
boost::scoped_ptr< IServiceChainMgr > evpn_service_chain_mgr_
uint32_t GetDownStaticRouteCount() const
void set_logging_disabled(bool flag)
friend class BgpServerTest
bool enable_4byte_as() const
uint32_t GetEndOfRibSendTime() const
LifetimeActor * deleter()
BgpPeer * FindExactPeer(const BgpPeer *peer) const
const RTargetGroupMgr * rtarget_group_mgr() const
BgpPeer * FindNextPeer(const std::string &name=std::string())
tbb::spin_rw_mutex rw_mutex_
std::multimap< TcpSession::Endpoint, BgpPeer * > EndpointPeerList
void VisitBgpPeers(BgpServer::VisitorFn) const
void IncrementUpBgpaasPeerCount()
DISALLOW_COPY_AND_ASSIGN(BgpServer)
void UnregisterAdminDownCallback(int listener)
void DecrementUpPeerCount()
boost::scoped_ptr< RoutePathReplicator > inetvpn_replicator_
bool ignore_aspath() const
boost::dynamic_bitset admin_down_bmap_
boost::scoped_ptr< ClusterListDB > cluster_list_db_
void UnregisterPeer(BgpPeer *peer)
boost::scoped_ptr< BgpUpdateSender > update_sender_
RoutingInstanceMgr * routing_instance_mgr()
Ip4Address bgp_identifier_
uint32_t num_down_static_routes() const
boost::scoped_ptr< ConfigUpdater > updater_
void IncrementUpPeerCount()
const RoutingPolicyMgr * routing_policy_mgr() const
std::vector< DSCPUpdateCb > DSCPUpdateListenersList
bool gr_helper_disable() const
BgpConditionListener * condition_listener(SCAddress::Family family)
void set_gr_helper_disable(bool gr_helper_disable)
boost::scoped_ptr< AsPathDB > aspath_db_
boost::function< void(BgpPeer *)> VisitorFn
bool HasSelfConfiguration() const
tbb::atomic< uint32_t > deleting_bgpaas_count_
int RegisterIdentifierUpdateCallback(IdentifierUpdateCb callback)
tbb::atomic< uint32_t > bgp_count_
uint32_t bgp_identifier() const
uint32_t GetEndOfRibReceiveTime() const
boost::scoped_ptr< IServiceChainMgr > evpn6_service_chain_mgr_
std::vector< AdminDownCb > AdminDownListenersList
std::vector< ASNUpdateCb > ASNUpdateListenersList
tbb::atomic< uint64_t > message_build_error_
boost::scoped_ptr< EdgeDiscoveryDB > edge_discovery_db_
void set_ignore_aspath(bool flag)
uint32_t num_down_service_chains() const
void DecrementUpBgpaasPeerCount()
boost::scoped_ptr< BgpOListDB > olist_db_
boost::scoped_ptr< BgpConfigManager > config_mgr_
std::map< std::string, BgpPeer * > BgpPeerList
void decrement_deleting_bgpaas_count()
EdgeDiscoveryDB * edge_discovery_db()
IdentifierUpdateListenersList id_listeners_
uint32_t num_deleting_bgpaas_peer() const
void NotifyASNUpdate(as_t old_asn, as_t old_local_asn)
int RegisterPeer(BgpPeer *peer)
bool IsFastConvergenceEnabled() const
AsPath4ByteDB * aspath_4byte_db()
friend class BgpServerUnitTest
boost::dynamic_bitset dscp_bmap_
BgpConfigManager * config_manager()
BgpGlobalQosConfig * global_qos()
StaticRouteMgrList srt_manager_list_
boost::function< void(Ip4Address)> IdentifierUpdateCb
uint16_t GetGracefulRestartTime() const
void UnregisterASNUpdateCallback(int listener)
PmsiTunnelDB * pmsi_tunnel_db()
bool logging_disabled() const
int RegisterAdminDownCallback(AdminDownCb callback)
ASNUpdateListenersList asn_listeners_
uint64_t message_build_error() const
boost::scoped_ptr< OriginVnPathDB > ovnpath_db_
uint32_t NumUpPeer() const
boost::scoped_ptr< BgpGlobalQosConfig > global_qos_
const BgpMembershipManager * membership_mgr() const
void UnregisterDSCPUpdateCallback(int listener)
BgpConditionListener * condition_listener(Address::Family family)
as_t autonomous_system() const
void UpdateBgpIdentifier(const Ip4Address &identifier)
boost::scoped_ptr< BgpMembershipManager > membership_mgr_
virtual std::string ToString() const
RoutePathReplicator * replicator(Address::Family family)
const BgpGlobalSystemConfig * global_config() const
bool mvpn_ipv4_enable() const
boost::dynamic_bitset asn_bmap_
void set_cluster_id(uint32_t id)
void InsertStaticRouteMgr(IStaticRouteMgr *srt_manager)
void increment_message_build_error() const
BgpPeer * FindPeer(const std::string &name)
boost::scoped_ptr< RoutePathReplicator > inet6vpn_replicator_
tbb::atomic< uint32_t > bgpaas_count_
boost::scoped_ptr< RoutePathReplicator > evpn_replicator_
boost::scoped_ptr< RTargetGroupMgr > rtarget_group_mgr_
boost::scoped_ptr< As4PathDB > as4path_db_
uint32_t num_deleted_routing_instance() const
tbb::atomic< uint32_t > num_up_peer_
boost::scoped_ptr< BgpGlobalSystemConfig > global_config_
boost::function< void(uint8_t)> DSCPUpdateCb
void set_mvpn_ipv4_enable(bool flag)
void NotifyDSCPUpdate(int new_dscp_value)
void set_autonomous_system(as_t asn)
BgpUpdateSender * update_sender()
boost::scoped_ptr< CommunityDB > comm_db_
bool IsNextHopCheckEnabled() const
const RoutePathReplicator * replicator(Address::Family family) const
uint32_t bgp_identifier_u32() const
int RegisterDSCPUpdateCallback(DSCPUpdateCb cb)
boost::scoped_ptr< EdgeForwardingDB > edge_forwarding_db_
uint16_t GetXmppHoldTime() const
boost::scoped_ptr< AsPath4ByteDB > aspath_4byte_db_
uint32_t num_routing_instance() const
tbb::atomic< uint32_t > deleting_count_
bool IsServerStartingUp() const
boost::function< void()> AdminDownCb
uint32_t get_output_queue_depth() const
void InsertPeer(TcpSession::Endpoint remote, BgpPeer *peer)
as_t local_autonomous_system() const
boost::scoped_ptr< IServiceChainMgr > inet_service_chain_mgr_
EdgeForwardingDB * edge_forwarding_db()
OriginVnPathDB * ovnpath_db()
boost::scoped_ptr< BgpConditionListener > evpn_condition_listener_
const BgpConfigManager * config_manager() const
void NotifyIdentifierUpdate(Ip4Address old_identifier)
boost::scoped_ptr< RoutePathReplicator > mvpn_replicator_
boost::scoped_ptr< DeleteActor > deleter_
void set_enable_4byte_as(bool flag)
void UnregisterIdentifierUpdateCallback(int listener)
void NotifyAllStaticRoutes()
boost::scoped_ptr< RoutingInstanceMgr > inst_mgr_
const std::string & localname() const
boost::function< void(as_t, as_t)> ASNUpdateCb
time_t GetRTargetTableLastUpdatedTimeStamp() const
BgpSessionManager * session_manager()
int RegisterASNUpdateCallback(ASNUpdateCb callback)
BgpMembershipManager * membership_mgr()
BgpGlobalSystemConfig * global_config()
RoutingPolicyMgr * routing_policy_mgr()
boost::scoped_ptr< BgpConditionListener > evpn6_condition_listener_
EndpointPeerList endpoint_peer_list_
uint32_t NumUpBgpaasPeer() const
boost::scoped_ptr< RoutingPolicyMgr > policy_mgr_
boost::dynamic_bitset peer_bmap_
boost::scoped_ptr< BgpConditionListener > inet_condition_listener_
boost::scoped_ptr< ExtCommunityDB > extcomm_db_
bool IsReadyForDeletion()
LifetimeManager * lifetime_manager()
void increment_deleting_count()
std::vector< IdentifierUpdateCb > IdentifierUpdateListenersList
bool IsGRHelperModeEnabled() const
AdminDownListenersList admin_down_listeners_
boost::dynamic_bitset id_bmap_
boost::scoped_ptr< PmsiTunnelDB > pmsi_tunnel_db_
uint32_t num_bgpaas_peer() const
ClusterListDB * cluster_list_db()
uint32_t GetLongLivedGracefulRestartTime() const
void increment_deleting_bgpaas_count()
uint32_t hold_time() const
void RemoveStaticRouteMgr(IStaticRouteMgr *srt_manager)
std::set< IStaticRouteMgr * > StaticRouteMgrList
boost::scoped_ptr< IServiceChainMgr > inet6_service_chain_mgr_
boost::scoped_ptr< LifetimeManager > lifetime_manager_
void FillPeerStats(const BgpPeer *peer) const
boost::asio::ip::tcp::endpoint Endpoint