348 boost::asio::ip::address_v4 Ip4Address
void ReleaseWalker(AgentRouteWalker *walker)
Base class for all Route entries in agent.
virtual Agent::RouteTableType GetTableType() const =0
uint64_t sequence_number() const
static bool ControllerSendSubscribe(AgentXmppChannel *peer, VrfEntry *vrf, bool subscribe)
VrfTable * vrf_table() const
EventManager * event_manager() const
const Ip4Address * router_ip_ptr() const
TaskScheduler * task_scheduler() const
static Agent * GetInstance()
void AllocPeerNotifyWalker()
DBState * GetRouteExportState(DBTablePartBase *partition, DBEntryBase *e)
void PeerNotifyMulticastRoutes(bool associate)
void ReleaseDeletePeerWalker()
DBTableBase::ListenerId GetVrfExportListenerId()
void StopPeerNotifyRoutes()
AgentRouteWalkerPtr route_walker_
DBState * GetVrfExportState(DBTablePartBase *partition, DBEntryBase *e)
void ReleaseDeleteStaleWalker()
void ReleasePeerNotifyWalker()
void PeerNotifyRoutes(WalkDoneCb cb)
ControllerRouteWalker * delete_peer_walker() const
ControllerRouteWalker * route_walker() const
void set_delete_stale_walker_cb(WalkDoneCb cb)
AgentRouteWalkerPtr delete_peer_walker_
DBTableBase::ListenerId id_
AgentXmppChannel * channel_
void AllocDeletePeerWalker()
uint64_t ChannelSequenceNumber() const
void DelPeerRoutes(WalkDoneCb walk_done_cb, uint64_t sequence_number)
WalkDoneCb delete_peer_walker_cb_
AgentXmppChannel * GetAgentXmppChannel() const
WalkDoneCb route_walker_cb_
void set_delete_peer_walker_cb(WalkDoneCb cb)
void AllocDeleteStaleWalker()
void set_route_walker_cb(WalkDoneCb cb)
WalkDoneCb delete_stale_walker_cb_
void DeleteVrfState(DBTablePartBase *partition, DBEntryBase *entry)
AgentRouteWalkerPtr delete_stale_walker_
ControllerRouteWalker * delete_stale_walker() const
BgpPeer(BgpServer *server, RoutingInstance *instance, const BgpNeighborConfig *config)
void set_sequence_number(uint64_t sequence_number)
void Start(Type type, bool associate, AgentRouteWalker::WalkDone walk_done_cb)
DBState * GetState(DBTableBase *tbl_base, ListenerId listener) const
void ClearState(DBTableBase *tbl_base, ListenerId listener)
void Unregister(ListenerId listener)
Timer * delete_timeout_timer_
tbb::atomic< bool > deleted_
static void ProcessDelete(DynamicPeer *p)
DynamicPeer(Agent *agent, Type type, const std::string &name, bool controller_export)
virtual bool DeleteOnZeroRefcount() const
virtual bool SkipAddChangeRequest() const
tbb::atomic< bool > skip_add_change_
static const uint32_t kDeleteTimeout
AgentRouteWalkerManager * agent_route_walk_manager() const
virtual bool IsDeleted() const
virtual const Ip4Address * NexthopIp(Agent *agent, const AgentPath *path) const
tbb::atomic< uint32_t > refcount_
uint32_t refcount() const
uint64_t sequence_number() const
uint64_t sequence_number_
virtual bool DeleteOnZeroRefcount() const
Peer(Type type, const std::string &name, bool controller_export)
DBTableBase::ListenerId GetListenerId() const
static bool DeleteTimer(Timer *Timer)
static Timer * CreateTimer(boost::asio::io_context &service, const std::string &name, int task_id=Timer::GetTimerTaskId(), int task_instance=Timer::GetTimerInstanceId(), bool delete_on_completion=false)
bool Start(int time, Handler handler, ErrorHandler error_handler=NULL)
void intrusive_ptr_release(const Peer *p)
void intrusive_ptr_add_ref(const Peer *p)
RouteExport * rt_export_[Agent::ROUTE_TABLE_MAX]
static uint64_t UTCTimestampUsec()