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