OpenSDN source code
OVSDB::HaStaleDevVnTable Class Reference

#include <ha_stale_dev_vn.h>

Inheritance diagram for OVSDB::HaStaleDevVnTable:
Collaboration diagram for OVSDB::HaStaleDevVnTable:

Classes

struct  StaleL2Entry
 

Public Types

typedef boost::function< void(void)> StaleClearL2EntryCb
 
typedef std::map< StaleL2Entry, StaleClearL2EntryCbCbMap
 
- Public Types inherited from KSyncDBObject
enum  DBFilterResp {
  DBFilterAccept , DBFilterIgnore , DBFilterDelete , DBFilterDelAdd ,
  DBFilterMax
}
 
- Public Types inherited from KSyncObject
typedef boost::intrusive::member_hook< KSyncEntry, boost::intrusive::set_member_hook<>, &KSyncEntry::node_KSyncObjectNode
 
typedef boost::intrusive::set< KSyncEntry, KSyncObjectNodeTree
 
typedef boost::intrusive::member_hook< KSyncFwdReference, boost::intrusive::set_member_hook<>, &KSyncFwdReference::node_KSyncFwdRefNode
 
typedef boost::intrusive::set< KSyncFwdReference, KSyncFwdRefNodeFwdRefTree
 
typedef boost::intrusive::member_hook< KSyncBackReference, boost::intrusive::set_member_hook<>, &KSyncBackReference::node_KSyncBackRefNode
 
typedef boost::intrusive::set< KSyncBackReference, KSyncBackRefNodeBackRefTree
 

Public Member Functions

 HaStaleDevVnTable (Agent *agent, OvsPeerManager *manager, ConnectionStateEntry *state, std::string &dev_name)
 
virtual ~HaStaleDevVnTable ()
 
KSyncEntryAlloc (const KSyncEntry *key, uint32_t index)
 
KSyncEntryDBToKSyncEntry (const DBEntry *)
 
DBFilterResp OvsdbDBEntryFilter (const DBEntry *entry, const OvsdbDBEntry *ovsdb_entry)
 
Agentagent () const
 
void DeleteTableDone ()
 
virtual void EmptyTable ()
 
void VnReEvalEnqueue (const boost::uuids::uuid &vn_uuid)
 
bool VnReEval (const boost::uuids::uuid &vn_uuid)
 
OvsPeerroute_peer () const
 
const std::string & dev_name () const
 
ConnectionStateEntrystate () const
 
uint64_t time_stamp () const
 
void StaleClearAddEntry (uint64_t time_stamp, HaStaleL2RouteEntry *entry, StaleClearL2EntryCb cb)
 
void StaleClearDelEntry (uint64_t time_stamp, HaStaleL2RouteEntry *entry)
 
- Public Member Functions inherited from OVSDB::OvsdbDBObject
 OvsdbDBObject (OvsdbClientIdl *idl, bool init_stale_entry_cleanup)
 
 OvsdbDBObject (OvsdbClientIdl *idl, DBTable *tbl, bool init_stale_entry_cleanup)
 
virtual ~OvsdbDBObject ()
 
virtual void OvsdbRegisterDBTable (DBTable *tbl)
 
void OvsdbStartResyncWalk ()
 
void NotifyAddOvsdb (OvsdbDBEntry *key, struct ovsdb_idl_row *row)
 
void NotifyDeleteOvsdb (OvsdbDBEntry *key, struct ovsdb_idl_row *row)
 
virtual OvsdbDBEntryAllocOvsEntry (struct ovsdb_idl_row *row)
 
bool DBWalkNotify (DBTablePartBase *partition, DBEntryBase *entry)
 
void DBWalkDone (DBTableBase *partition)
 
void DeleteTable (void)
 
OvsdbClientIdlclient_idl ()
 
- Public Member Functions inherited from KSyncDBObject
 KSyncDBObject (const std::string &name)
 
 KSyncDBObject (const std::string &name, int max_index)
 
 KSyncDBObject (const std::string &name, DBTableBase *table)
 
 KSyncDBObject (const std::string &name, DBTableBase *table, int max_index)
 
virtual ~KSyncDBObject ()
 
void RegisterDb (DBTableBase *table)
 
void UnregisterDb (DBTableBase *table)
 
void Notify (DBTablePartBase *partition, DBEntryBase *entry)
 
DBTableBaseGetDBTable ()
 
DBTableBase::ListenerId GetListenerId (DBTableBase *table)
 
void set_test_id (DBTableBase::ListenerId id)
 
DBTableBase::ListenerId id () const
 
- Public Member Functions inherited from KSyncObject
 KSyncObject (const std::string &name)
 
 KSyncObject (const std::string &name, int max_index)
 
virtual ~KSyncObject ()
 
void InitStaleEntryCleanup (boost::asio::io_context &ios, uint32_t cleanup_time, uint32_t cleanup_intvl, uint16_t entries_per_intvl)
 
void NotifyEvent (KSyncEntry *entry, KSyncEntry::KSyncEvent event)
 
void SafeNotifyEvent (KSyncEntry *entry, KSyncEntry::KSyncEvent event)
 
virtual void NetlinkAck (KSyncEntry *entry, KSyncEntry::KSyncEvent event)
 
void BackRefAdd (KSyncEntry *key, KSyncEntry *reference)
 
void BackRefDel (KSyncEntry *key)
 
void BackRefReEval (KSyncEntry *key)
 
KSyncEntryCreate (const KSyncEntry *key)
 
KSyncEntryCreate (const KSyncEntry *key, bool skip_lookup)
 
KSyncEntryCreateStale (const KSyncEntry *key)
 
void Change (KSyncEntry *entry)
 
void Delete (KSyncEntry *entry)
 
KSyncEntryFind (const KSyncEntry *key)
 
KSyncEntryNext (const KSyncEntry *entry) const
 
KSyncEntryGetReference (const KSyncEntry *key)
 
virtual void Free (KSyncEntry *entry)
 
bool IsEmpty (void)
 
virtual bool DoEventTrace (void)
 
virtual void PreFree (KSyncEntry *entry)
 
std::size_t Size ()
 
void set_delete_scheduled ()
 
bool delete_scheduled ()
 
virtual SandeshTraceBufferPtr GetKSyncTraceBuf ()
 

Static Public Attributes

static const uint32_t kStaleTimerJobInterval = 100
 
static const uint32_t kNumEntriesPerIteration = 100
 
- Static Public Attributes inherited from OVSDB::OvsdbDBObject
static const uint32_t StaleEntryCleanupTimer = 300000
 
static const uint32_t StaleEntryYeildTimer = 100
 
static const uint16_t StaleEntryDeletePerIteration = 32
 

Private Member Functions

bool StaleClearTimerCb ()
 
 DISALLOW_COPY_AND_ASSIGN (HaStaleDevVnTable)
 

Private Attributes

Agentagent_
 
OvsPeerManagermanager_
 
std::unique_ptr< OvsPeerroute_peer_
 
std::string dev_name_
 
ConnectionStateEntryPtr state_
 
HaStaleVnTablevn_table_
 
CbMap stale_l2_entry_map_
 
uint64_t time_stamp_
 
Timerstale_clear_timer_
 
WorkQueue< boost::uuids::uuid > * vn_reeval_queue_
 

Friends

class HaStaleDevVnEntry
 

Additional Inherited Members

- Static Public Member Functions inherited from KSyncObject
static void Shutdown ()
 
- Protected Member Functions inherited from OVSDB::OvsdbDBObject
DBFilterResp DBEntryFilter (const DBEntry *entry, const KSyncDBEntry *ksync)
 
- Protected Member Functions inherited from KSyncObject
KSyncEntryCreateImpl (const KSyncEntry *key)
 
void ClearStale (KSyncEntry *entry)
 
void ChangeKey (KSyncEntry *entry, uint32_t arg)
 
virtual void UpdateKey (KSyncEntry *entry, uint32_t arg)
 
virtual uint32_t GetKey (KSyncEntry *entry)
 
- Protected Attributes inherited from OVSDB::OvsdbDBObject
OvsdbClientIdlPtr client_idl_
 
- Protected Attributes inherited from KSyncObject
tbb::recursive_mutex lock_
 

Detailed Description

Definition at line 19 of file ha_stale_dev_vn.h.

Member Typedef Documentation

◆ CbMap

◆ StaleClearL2EntryCb

typedef boost::function<void(void)> OVSDB::HaStaleDevVnTable::StaleClearL2EntryCb

Definition at line 24 of file ha_stale_dev_vn.h.

Constructor & Destructor Documentation

◆ HaStaleDevVnTable()

HaStaleDevVnTable::HaStaleDevVnTable ( Agent agent,
OvsPeerManager manager,
ConnectionStateEntry state,
std::string &  dev_name 
)

Definition at line 187 of file ha_stale_dev_vn.cc.

Here is the call graph for this function:

◆ ~HaStaleDevVnTable()

HaStaleDevVnTable::~HaStaleDevVnTable ( )
virtual

Definition at line 207 of file ha_stale_dev_vn.cc.

Here is the call graph for this function:

Member Function Documentation

◆ agent()

Agent * HaStaleDevVnTable::agent ( ) const
virtual

Reimplemented from OVSDB::OvsdbDBObject.

Definition at line 256 of file ha_stale_dev_vn.cc.

◆ Alloc()

KSyncEntry * HaStaleDevVnTable::Alloc ( const KSyncEntry key,
uint32_t  index 
)
virtual

Implements KSyncObject.

Definition at line 218 of file ha_stale_dev_vn.cc.

◆ DBToKSyncEntry()

KSyncEntry * HaStaleDevVnTable::DBToKSyncEntry ( const DBEntry db_entry)
virtual

Implements KSyncDBObject.

Definition at line 225 of file ha_stale_dev_vn.cc.

Here is the call graph for this function:

◆ DeleteTableDone()

void HaStaleDevVnTable::DeleteTableDone ( void  )
virtual

Reimplemented from OVSDB::OvsdbDBObject.

Definition at line 260 of file ha_stale_dev_vn.cc.

Here is the call graph for this function:

◆ dev_name()

const std::string & HaStaleDevVnTable::dev_name ( ) const

Definition at line 304 of file ha_stale_dev_vn.cc.

◆ DISALLOW_COPY_AND_ASSIGN()

OVSDB::HaStaleDevVnTable::DISALLOW_COPY_AND_ASSIGN ( HaStaleDevVnTable  )
private

◆ EmptyTable()

void HaStaleDevVnTable::EmptyTable ( void  )
virtual

Reimplemented from OVSDB::OvsdbDBObject.

Definition at line 273 of file ha_stale_dev_vn.cc.

Here is the call graph for this function:

◆ OvsdbDBEntryFilter()

KSyncDBObject::DBFilterResp HaStaleDevVnTable::OvsdbDBEntryFilter ( const DBEntry entry,
const OvsdbDBEntry ovsdb_entry 
)
virtual

Reimplemented from OVSDB::OvsdbDBObject.

Definition at line 233 of file ha_stale_dev_vn.cc.

Here is the call graph for this function:

◆ route_peer()

OvsPeer * HaStaleDevVnTable::route_peer ( ) const

Definition at line 300 of file ha_stale_dev_vn.cc.

◆ StaleClearAddEntry()

void HaStaleDevVnTable::StaleClearAddEntry ( uint64_t  time_stamp,
HaStaleL2RouteEntry entry,
StaleClearL2EntryCb  cb 
)

Definition at line 312 of file ha_stale_dev_vn.cc.

Here is the call graph for this function:

◆ StaleClearDelEntry()

void HaStaleDevVnTable::StaleClearDelEntry ( uint64_t  time_stamp,
HaStaleL2RouteEntry entry 
)

Definition at line 324 of file ha_stale_dev_vn.cc.

Here is the call graph for this function:

◆ StaleClearTimerCb()

bool HaStaleDevVnTable::StaleClearTimerCb ( )
private

Definition at line 334 of file ha_stale_dev_vn.cc.

Here is the call graph for this function:

◆ state()

ConnectionStateEntry * HaStaleDevVnTable::state ( ) const

Definition at line 308 of file ha_stale_dev_vn.cc.

◆ time_stamp()

uint64_t OVSDB::HaStaleDevVnTable::time_stamp ( ) const
inline

Definition at line 62 of file ha_stale_dev_vn.h.

◆ VnReEval()

bool HaStaleDevVnTable::VnReEval ( const boost::uuids::uuid vn_uuid)

Definition at line 290 of file ha_stale_dev_vn.cc.

Here is the call graph for this function:

◆ VnReEvalEnqueue()

void HaStaleDevVnTable::VnReEvalEnqueue ( const boost::uuids::uuid vn_uuid)

Definition at line 282 of file ha_stale_dev_vn.cc.

Here is the call graph for this function:

Friends And Related Function Documentation

◆ HaStaleDevVnEntry

friend class HaStaleDevVnEntry
friend

Definition at line 69 of file ha_stale_dev_vn.h.

Member Data Documentation

◆ agent_

Agent* OVSDB::HaStaleDevVnTable::agent_
private

Definition at line 73 of file ha_stale_dev_vn.h.

◆ dev_name_

std::string OVSDB::HaStaleDevVnTable::dev_name_
private

Definition at line 76 of file ha_stale_dev_vn.h.

◆ kNumEntriesPerIteration

const uint32_t OVSDB::HaStaleDevVnTable::kNumEntriesPerIteration = 100
static

Definition at line 22 of file ha_stale_dev_vn.h.

◆ kStaleTimerJobInterval

const uint32_t OVSDB::HaStaleDevVnTable::kStaleTimerJobInterval = 100
static

Definition at line 21 of file ha_stale_dev_vn.h.

◆ manager_

OvsPeerManager* OVSDB::HaStaleDevVnTable::manager_
private

Definition at line 74 of file ha_stale_dev_vn.h.

◆ route_peer_

std::unique_ptr<OvsPeer> OVSDB::HaStaleDevVnTable::route_peer_
private

Definition at line 75 of file ha_stale_dev_vn.h.

◆ stale_clear_timer_

Timer* OVSDB::HaStaleDevVnTable::stale_clear_timer_
private

Definition at line 85 of file ha_stale_dev_vn.h.

◆ stale_l2_entry_map_

CbMap OVSDB::HaStaleDevVnTable::stale_l2_entry_map_
private

Definition at line 81 of file ha_stale_dev_vn.h.

◆ state_

ConnectionStateEntryPtr OVSDB::HaStaleDevVnTable::state_
private

Definition at line 77 of file ha_stale_dev_vn.h.

◆ time_stamp_

uint64_t OVSDB::HaStaleDevVnTable::time_stamp_
private

Definition at line 84 of file ha_stale_dev_vn.h.

◆ vn_reeval_queue_

WorkQueue<boost::uuids::uuid>* OVSDB::HaStaleDevVnTable::vn_reeval_queue_
private

Definition at line 90 of file ha_stale_dev_vn.h.

◆ vn_table_

HaStaleVnTable* OVSDB::HaStaleDevVnTable::vn_table_
private

Definition at line 79 of file ha_stale_dev_vn.h.


The documentation for this class was generated from the following files: