24 #include <ovsdb_types.h>
26 using namespace OVSDB;
30 vn_uuid_(vn_uuid), l2_table_(NULL), old_l2_table_(NULL),
31 oper_bridge_table_(NULL), dev_ip_(), vn_name_(
""), vxlan_id_(0) {
154 return reflector_table->
agent();
172 return reflector_table->
state();
189 std::string &dev_name) :
190 OvsdbDBObject(NULL, false), agent_(agent), manager_(manager),
191 dev_name_(dev_name), state_(state),
194 *(agent->event_manager())->io_service(),
195 "OVSDB Route Replicator cleanup timer",
196 agent->task_scheduler()->GetTaskId(
"Agent::KSync"), 0)) {
372 const std::string &dev_name,
373 const std::string &vn_uuid) :
374 OvsdbSandeshTask(resp_ctx,
"0.0.0.0", 0), dev_name_(dev_name), vn_uuid_(vn_uuid) {
404 OvsdbHaStaleDevVnExport dentry;
406 dentry.set_dev_name(entry->
dev_name());
407 dentry.set_dev_ip(entry->
dev_ip().to_string());
409 dentry.set_vn_name(entry->
vn_name());
410 dentry.set_vxlan_id(entry->
vxlan_id());
415 OvsdbHaStaleDevVnExportResp *d_resp =
416 static_cast<OvsdbHaStaleDevVnExportResp *
>(resp);
417 std::vector<OvsdbHaStaleDevVnExport> &dev_vn =
418 const_cast<std::vector<OvsdbHaStaleDevVnExport>&
>(
419 d_resp->get_dev_vn());
420 dev_vn.push_back(dentry);
424 return static_cast<SandeshResponse *
>(
new OvsdbHaStaleDevVnExportResp());
431 if (con_entry == NULL) {
437 void OvsdbHaStaleDevVnExportReq::HandleRequest()
const {
boost::function< void(void)> StaleClearL2EntryCb
int ha_stale_route_interval() const
void UpdateResp(KSyncEntry *kentry, SandeshResponse *resp)
const std::string & device_display_name() const
OVSDB::OvsdbClient * ovsdb_client() const
DBFilterResp OvsdbDBEntryFilter(const DBEntry *entry, const OvsdbDBEntry *ovsdb_entry)
void Change(KSyncEntry *entry)
CbMap stale_l2_entry_map_
OvsPeer * route_peer() const
static Agent * GetInstance()
The TaskScheduler keeps track of what tasks are currently schedulable. When a task is enqueued it is ...
const std::string & vn_name() const
HaStaleL2RouteTable * old_l2_table_
void Shutdown(bool delete_entries=true)
const IpAddress & tor_ip() const
virtual void EmptyTable(void)
std::string StateString() const
boost::uuids::uuid vn_uuid_
const boost::uuids::uuid & vn_uuid() const
boost::asio::ip::address IpAddress
OvsPeer * Allocate(const IpAddress &peer_ip)
void StaleClearAddEntry(uint64_t time_stamp, HaStaleL2RouteEntry *entry, StaleClearL2EntryCb cb)
virtual void OvsdbRegisterDBTable(DBTable *tbl)
std::unique_ptr< OvsPeer > route_peer_
Timer * stale_clear_timer_
static std::string UuidToString(const boost::uuids::uuid &id)
static void Unregister(KSyncObject *)
std::string EncodeFirstPage()
int GetTaskId(const std::string &name)
HaStaleDevVnEntry(OvsdbDBObject *table, const boost::uuids::uuid &vn_uuid)
ConnectionStateEntry * state() const
FilterResp Filter(KSyncEntry *entry)
HaStaleDevVnTable * ha_stale_dev_vn_table() const
TaskScheduler * task_scheduler() const
AgentRouteTable * bridge_table() const
bool Get(const std::string &key, std::string *val) const
OvsPeer * route_peer() const
KSyncObject * GetObject(OvsdbClientSession *session)
void SafeNotifyEvent(KSyncEntry *entry, KSyncEntry::KSyncEvent event)
static TaskScheduler * GetInstance()
void Enqueue(Task *task)
Enqueues a task for running. Starts task if all policy rules are met else puts task in waitq...
virtual ~HaStaleDevVnTable()
ConnectionStateEntryPtr state_
DBTableBase * GetDBTable()
ConnectionStateEntry * state() const
PhysicalDeviceVnTable * physical_device_vn_table() const
KSyncObject * GetObject() const
AgentRouteTable * GetBridgeRouteTable() const
void TriggerAck(HaStaleL2RouteTable *table)
void VnReEvalEnqueue(const boost::uuids::uuid &vn_uuid)
KSyncEntry * Find(const KSyncEntry *key)
AgentRouteTable * oper_bridge_table_
bool IsLess(const KSyncEntry &) const
bool Add(const std::string &key, const std::string &val)
KSyncEntry * GetReference(const KSyncEntry *key)
boost::asio::ip::address_v4 Ip4Address
ConnectionStateEntry * Find(const std::string &device_name)
bool VnReEval(const boost::uuids::uuid &vn_uuid)
virtual ~HaStaleDevVnSandeshTask()
WorkQueue< boost::uuids::uuid > * vn_reeval_queue_
static const uint32_t kStaleTimerJobInterval
uint32_t vxlan_id() const
const std::string & dev_name() const
VrfEntry * GetVrf() const
HaStaleDevVnSandeshTask(std::string resp_ctx, AgentSandeshArguments &args)
ConnectionStateTable * connection_table()
KSyncEntry * DBToKSyncEntry(const DBEntry *)
void StaleClearDelEntry(uint64_t time_stamp, HaStaleL2RouteEntry *entry)
static const uint32_t kNumEntriesPerIteration
void EncodeArgs(AgentSandeshArguments &args)
bool Start(int time, Handler handler, ErrorHandler error_handler=NULL)
OvsPeerManager * manager_
SandeshResponse * Alloc()
KSyncEntry * UnresolvedReference()
const boost::uuids::uuid & GetUuid() const
const string & GetName() const
HaStaleL2RouteTable * l2_table_
const std::string & dev_name() const
virtual void EmptyTable()
const std::string & vn_name() const
KSyncEntry * Alloc(const KSyncEntry *key, uint32_t index)
bool Enqueue(QueueEntryT entry)
friend class HaStaleDevVnEntry
HaStaleDevVnTable(Agent *agent, OvsPeerManager *manager, ConnectionStateEntry *state, std::string &dev_name)
void set_name(const std::string &name)
HaStaleVnTable * vn_table_
static bool DeleteTimer(Timer *Timer)
void UpdateParams(HaStaleDevVnEntry *dev_vn)