5 #ifndef SRC_BGP_PEER_CLOSE_MANAGER_H_
6 #define SRC_BGP_PEER_CLOSE_MANAGER_H_
18 class BgpNeighborResp;
41 boost::asio::io_context *io_service);
62 void Close(
bool graceful);
70 uint32_t path_flags)
const;
std::set< Address::Family > Families
void TriggerSweepStateActions()
bool MembershipPathCallback(DBTablePartBase *root, BgpRoute *rt, BgpPath *path)
virtual bool IsRegistered(BgpTable *table) const
virtual ~PeerCloseManager()
PeerCloseManager(IPeerClose *peer_close, boost::asio::io_context *io_service)
friend class PeerCloseTest
void MembershipRequestCallback()
virtual void UnregisterRibIn(BgpTable *table)
boost::scoped_ptr< WorkQueue< Event * > > event_queue_
virtual void GetRegisteredRibs(std::list< BgpTable * > *tables)
void set_membership_state(MembershipState state)
bool IsMembershipInUse() const
const Stats & stats() const
std::string GetEventName(EventType eventType) const
virtual bool AssertMembershipReqCount(bool do_assert=true)
void Close(bool graceful)
bool EventCallback(Event *event)
tbb::atomic< int > membership_req_pending_
friend class BgpServerUnitTest
virtual void StartRestartTimer(int time)
IPeerClose * peer_close() const
virtual void WalkRibIn(BgpTable *table)
BgpNeighborResp * FillCloseInfo(BgpNeighborResp *resp) const
void ProcessEORMarkerReceived(Address::Family family)
std::string GetMembershipStateName(MembershipState state) const
void UpdateRouteStats(Address::Family family, const BgpPath *old_path, uint32_t path_flags) const
virtual bool CanUseMembershipManager() const
void EnqueueEvent(Event *event)
bool IsInDeleteState() const
virtual void UnregisterRibOut(BgpTable *table)
bool IsCloseInProgress() const
bool RestartTimerCallback()
friend class GracefulRestartTest
MembershipState membership_state_
bool IsMembershipInWait() const
IPeerClose::Families * families()
virtual bool AssertSweepState(bool do_assert=true)
@ MEMBERSHIP_REQUEST_COMPLETE_CALLBACK
friend class PeerCloseManagerTest
std::string GetStateName(State state) const
bool IsInGRTimerWaitState() const
virtual bool AssertMembershipState(bool do_assert=true)
IPeerClose::Families families_
bool IsQueueEmpty() const
virtual bool IsRibInRegistered(BgpTable *table) const
void FillRouteCloseInfo(PeerCloseInfo *close_info) const
bool IsInLlgrTimerWaitState() const
virtual void Unregister(BgpTable *table)
virtual bool AssertMembershipManagerInUse(bool do_assert=true)
Event(EventType event_type, bool graceful)
Event(EventType event_type)
Event(EventType event_type, Address::Family family)
tbb::atomic< uint64_t > staled
tbb::atomic< uint64_t > deleted
tbb::atomic< uint64_t > fresh
tbb::atomic< uint64_t > llgr_staled
tbb::atomic< uint64_t > refreshed
RouteStats route_stats[Address::NUM_FAMILIES]