7 #include <sandesh/sandesh_trace.h>
11 #include "pugixml/pugixml.hpp"
19 #include "controller/controller_types.h"
25 #define SECS_TO_USECS(t) t * 1000 * 1000
26 #define SECS_TO_MSECS(t) t * 1000
30 const std::string &timer_name,
31 uint32_t timer_interval)
32 : agent_(agent), last_restart_time_(0),
33 xmpp_server_(
""), timer_name_(timer_name),
34 timer_interval_(timer_interval) {
39 GetTaskId(
"Agent::ControllerXmpp"), 0);
106 llgr_params().stale_config_cleanup_time())),
107 sequence_number_(0) {
126 llgr_params().stale_config_cleanup_time());
133 llgr_params().config_poll_time())),
134 config_channel_(config_channel) {
146 gres_parameters().IsEnabled());
159 bool config_seen =
false;
184 llgr_params().config_poll_time());
198 llgr_params().config_inactivity_time());
200 llgr_params().config_fallback_time());
210 llgr_params().end_of_rib_tx_poll_time())),
211 agent_xmpp_channel_(NULL) {
221 gres_parameters().IsEnabled());
233 bool end_of_rib =
false;
264 llgr_params().end_of_rib_tx_poll_time());
278 llgr_params().end_of_rib_tx_inactivity_time());
280 llgr_params().end_of_rib_tx_fallback_time());
290 llgr_params().end_of_rib_rx_fallback_time())),
291 agent_xmpp_channel_(NULL) {
312 gres_parameters().IsEnabled());
322 global_system_config()->gres_parameters().end_of_rib_time();
325 llgr_params().end_of_rib_rx_fallback_time());
335 gres_parameters().llgr_stale_time())),
336 agent_xmpp_channel_(NULL) {
354 gres_parameters().IsEnabled());
364 global_system_config()->gres_parameters().llgr_stale_time());
367 llgr_params().llgr_stale_time());
void EnqueueEndOfConfig()
uint8_t GetXmppServerIdx()
void StartEndOfRibTxWalker()
std::string GetXmppServer()
VNController * controller() const
const uint64_t controller_xmpp_channel_setup_time(uint8_t idx) const
AgentParam * params() const
EventManager * event_manager() const
IFMapAgentStaleCleaner * ifmap_stale_cleaner() const
EventNotifier * event_notifier() const
AgentIfMapXmppChannel * ifmap_xmpp_channel(uint8_t idx) const
const int8_t & ifmap_active_xmpp_server_index() const
bool StaleTimeout(uint64_t)
GlobalSystemConfig * global_system_config() const
InstanceManager * instance_manager()
static TaskScheduler * GetInstance()
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)
#define CONTROLLER_TRACE(obj,...)
virtual uint32_t GetTimerInterval() const
uint64_t sequence_number_
virtual void Start(AgentXmppChannel *agent_xmpp_channel)
virtual bool TimerExpirationDone()
ConfigCleanupTimer(Agent *agent)
bool TimerExpiredCallback()
virtual void Start(AgentXmppChannel *agent_xmpp_channel)
virtual uint32_t GetTimerInterval() const =0
uint64_t last_restart_time_
virtual bool TimerExpirationDone()
Timer * controller_timer_
ControllerTimer(Agent *agent, const std::string &timer_name, uint32_t timer_interval)
virtual ~ControllerTimer()
const std::string & timer_name() const
void GresEnabled(bool enable)
virtual void Start(AgentXmppChannel *agent_xmpp_channel)
AgentIfMapXmppChannel * config_channel_
virtual bool TimerExpirationDone()
uint64_t end_of_config_processed_time_
uint64_t inactivity_detected_time_
virtual uint32_t GetTimerInterval() const
uint32_t GetFallbackInterval() const
uint64_t config_inactivity_time_
uint64_t last_config_receive_time_
uint32_t GetInactivityInterval() const
EndOfConfigTimer(Agent *agent, AgentIfMapXmppChannel *channel)
uint64_t fallback_interval_
virtual void Start(AgentXmppChannel *agent_xmpp_channel)
uint64_t end_of_rib_rx_fallback_time_
virtual bool TimerExpirationDone()
virtual uint32_t GetTimerInterval() const
uint64_t end_of_rib_rx_time_
AgentXmppChannel * agent_xmpp_channel_
void GresEnabled(bool enable)
EndOfRibRxTimer(Agent *agent)
uint32_t GetFallbackInterval() const
uint32_t GetInactivityInterval() const
virtual bool TimerExpirationDone()
void GresEnabled(bool enable)
uint64_t last_route_published_time_
AgentXmppChannel * agent_xmpp_channel_
uint64_t fallback_interval_
virtual uint32_t GetTimerInterval() const
EndOfRibTxTimer(Agent *agent)
virtual void Start(AgentXmppChannel *agent_xmpp_channel)
uint64_t end_of_rib_tx_time_
LlgrStaleTimer(Agent *agent)
AgentXmppChannel * agent_xmpp_channel_
virtual void Start(AgentXmppChannel *agent_xmpp_channel)
void GresEnabled(bool enable)
virtual bool TimerExpirationDone()
uint64_t llgr_stale_time_
virtual uint32_t GetTimerInterval() const
static uint64_t UTCTimestampUsec()