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