OpenSDN source code
FlowTableKSyncObject Class Reference

#include <flowtable_ksync.h>

Inheritance diagram for FlowTableKSyncObject:
Collaboration diagram for FlowTableKSyncObject:

Public Member Functions

 FlowTableKSyncObject (KSync *ksync)
 
 FlowTableKSyncObject (KSync *ksync, int max_index)
 
virtual ~FlowTableKSyncObject ()
 
void Init ()
 
void Shutdown ()
 
KSyncEntryAlloc (const KSyncEntry *key, uint32_t index)
 
void Free (KSyncEntry *key)
 
bool DoEventTrace (void)
 
FlowTableKSyncEntryFind (FlowEntry *key)
 
vr_flow_req & flow_req ()
 
KSyncksync () const
 
void set_flow_table (FlowTable *table)
 
FlowTableflow_table () const
 
void UpdateFlowHandle (FlowTableKSyncEntry *entry, uint32_t flow_handle)
 
void UpdateKey (KSyncEntry *entry, uint32_t flow_handle)
 
uint32_t GetKey (KSyncEntry *entry)
 
void GrowFreeList ()
 
KSyncFlowEntryFreeListfree_list ()
 
void NetlinkAck (KSyncEntry *entry, KSyncEntry::KSyncEvent event)
 
void GenerateKSyncEvent (FlowTableKSyncEntry *entry, KSyncEntry::KSyncEvent event)
 
void StartTimer ()
 
bool TimerExpiry ()
 
void UpdateUnresolvedFlowEntry (FlowEntryPtr flowptr)
 
- 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)
 
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 EmptyTable (void)
 
bool IsEmpty (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 kFlowDepSyncTimeout = 1000
 
static const uint32_t KFlowUnresolvedListYield = 32
 

Private Member Functions

 DISALLOW_COPY_AND_ASSIGN (FlowTableKSyncObject)
 

Private Attributes

KSyncksync_
 
FlowTableflow_table_
 
vr_flow_req flow_req_
 
KSyncFlowEntryFreeList free_list_
 
std::list< FlowEntryPtrunresolved_flow_list_
 
Timertimer_
 

Friends

class KSyncSandeshContext
 
class FlowTable
 

Additional Inherited Members

- 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
 
- Static Public Member Functions inherited from KSyncObject
static void Shutdown ()
 
- Protected Member Functions inherited from KSyncObject
KSyncEntryCreateImpl (const KSyncEntry *key)
 
void ClearStale (KSyncEntry *entry)
 
void ChangeKey (KSyncEntry *entry, uint32_t arg)
 
- Protected Attributes inherited from KSyncObject
tbb::recursive_mutex lock_
 

Detailed Description

Definition at line 212 of file flowtable_ksync.h.

Constructor & Destructor Documentation

◆ FlowTableKSyncObject() [1/2]

FlowTableKSyncObject::FlowTableKSyncObject ( KSync ksync)

Definition at line 683 of file flowtable_ksync.cc.

◆ FlowTableKSyncObject() [2/2]

FlowTableKSyncObject::FlowTableKSyncObject ( KSync ksync,
int  max_index 
)

Definition at line 688 of file flowtable_ksync.cc.

◆ ~FlowTableKSyncObject()

FlowTableKSyncObject::~FlowTableKSyncObject ( )
virtual

Definition at line 692 of file flowtable_ksync.cc.

Here is the call graph for this function:

Member Function Documentation

◆ Alloc()

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

Implements KSyncObject.

Definition at line 696 of file flowtable_ksync.cc.

Here is the call graph for this function:

◆ DISALLOW_COPY_AND_ASSIGN()

FlowTableKSyncObject::DISALLOW_COPY_AND_ASSIGN ( FlowTableKSyncObject  )
private

◆ DoEventTrace()

bool FlowTableKSyncObject::DoEventTrace ( void  )
inlinevirtual

Reimplemented from KSyncObject.

Definition at line 226 of file flowtable_ksync.h.

◆ Find()

FlowTableKSyncEntry * FlowTableKSyncObject::Find ( FlowEntry key)

Definition at line 707 of file flowtable_ksync.cc.

Here is the call graph for this function:

◆ flow_req()

vr_flow_req& FlowTableKSyncObject::flow_req ( )
inline

Definition at line 229 of file flowtable_ksync.h.

◆ flow_table()

FlowTable* FlowTableKSyncObject::flow_table ( ) const
inline

Definition at line 232 of file flowtable_ksync.h.

◆ Free()

void FlowTableKSyncObject::Free ( KSyncEntry key)
virtual

Reimplemented from KSyncObject.

Definition at line 702 of file flowtable_ksync.cc.

Here is the call graph for this function:

◆ free_list()

KSyncFlowEntryFreeList* FlowTableKSyncObject::free_list ( )
inline

Definition at line 238 of file flowtable_ksync.h.

◆ GenerateKSyncEvent()

void FlowTableKSyncObject::GenerateKSyncEvent ( FlowTableKSyncEntry entry,
KSyncEntry::KSyncEvent  event 
)

Definition at line 825 of file flowtable_ksync.cc.

Here is the call graph for this function:

◆ GetKey()

uint32_t FlowTableKSyncObject::GetKey ( KSyncEntry entry)
virtual

Reimplemented from KSyncObject.

Definition at line 717 of file flowtable_ksync.cc.

◆ GrowFreeList()

void FlowTableKSyncObject::GrowFreeList ( )

Definition at line 804 of file flowtable_ksync.cc.

Here is the call graph for this function:

◆ Init()

void FlowTableKSyncObject::Init ( )

Definition at line 726 of file flowtable_ksync.cc.

◆ ksync()

KSync* FlowTableKSyncObject::ksync ( ) const
inline

Definition at line 230 of file flowtable_ksync.h.

◆ NetlinkAck()

void FlowTableKSyncObject::NetlinkAck ( KSyncEntry entry,
KSyncEntry::KSyncEvent  event 
)
virtual

Reimplemented from KSyncObject.

Definition at line 811 of file flowtable_ksync.cc.

Here is the call graph for this function:

◆ set_flow_table()

void FlowTableKSyncObject::set_flow_table ( FlowTable table)
inline

Definition at line 231 of file flowtable_ksync.h.

◆ Shutdown()

void FlowTableKSyncObject::Shutdown ( void  )
inline

Definition at line 222 of file flowtable_ksync.h.

◆ StartTimer()

void FlowTableKSyncObject::StartTimer ( )

Definition at line 647 of file flowtable_ksync.cc.

Here is the call graph for this function:

◆ TimerExpiry()

bool FlowTableKSyncObject::TimerExpiry ( )

Definition at line 665 of file flowtable_ksync.cc.

Here is the call graph for this function:

◆ UpdateFlowHandle()

void FlowTableKSyncObject::UpdateFlowHandle ( FlowTableKSyncEntry entry,
uint32_t  flow_handle 
)

Definition at line 721 of file flowtable_ksync.cc.

Here is the call graph for this function:

◆ UpdateKey()

void FlowTableKSyncObject::UpdateKey ( KSyncEntry entry,
uint32_t  flow_handle 
)
virtual

Reimplemented from KSyncObject.

Definition at line 713 of file flowtable_ksync.cc.

◆ UpdateUnresolvedFlowEntry()

void FlowTableKSyncObject::UpdateUnresolvedFlowEntry ( FlowEntryPtr  flowptr)

Definition at line 635 of file flowtable_ksync.cc.

Here is the call graph for this function:

Friends And Related Function Documentation

◆ FlowTable

friend class FlowTable
friend

Definition at line 248 of file flowtable_ksync.h.

◆ KSyncSandeshContext

friend class KSyncSandeshContext
friend

Definition at line 247 of file flowtable_ksync.h.

Member Data Documentation

◆ flow_req_

vr_flow_req FlowTableKSyncObject::flow_req_
private

Definition at line 251 of file flowtable_ksync.h.

◆ flow_table_

FlowTable* FlowTableKSyncObject::flow_table_
private

Definition at line 250 of file flowtable_ksync.h.

◆ free_list_

KSyncFlowEntryFreeList FlowTableKSyncObject::free_list_
private

Definition at line 252 of file flowtable_ksync.h.

◆ kFlowDepSyncTimeout

const uint32_t FlowTableKSyncObject::kFlowDepSyncTimeout = 1000
static

Definition at line 215 of file flowtable_ksync.h.

◆ KFlowUnresolvedListYield

const uint32_t FlowTableKSyncObject::KFlowUnresolvedListYield = 32
static

Definition at line 216 of file flowtable_ksync.h.

◆ ksync_

KSync* FlowTableKSyncObject::ksync_
private

Definition at line 249 of file flowtable_ksync.h.

◆ timer_

Timer* FlowTableKSyncObject::timer_
private

Definition at line 254 of file flowtable_ksync.h.

◆ unresolved_flow_list_

std::list<FlowEntryPtr> FlowTableKSyncObject::unresolved_flow_list_
private

Definition at line 253 of file flowtable_ksync.h.


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