OpenSDN source code
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
KSyncFlowMemory Class Reference

#include <ksync_flow_memory.h>

Inheritance diagram for KSyncFlowMemory:
Collaboration diagram for KSyncFlowMemory:

Public Member Functions

 KSyncFlowMemory (KSync *ksync, uint32_t minor_id)
 
virtual ~KSyncFlowMemory ()
 
virtual void Init ()
 
const vr_flow_entry * GetKernelFlowEntry (uint32_t idx, bool ignore_active_status) const
 
const vr_flow_entry * GetValidKFlowEntry (const FlowKey &key, uint32_t idx, uint8_t gen_id) const
 
const vr_flow_entry * GetKFlowStats (const FlowKey &key, uint32_t idx, uint8_t gen_id, vr_flow_stats *stats) const
 
const vr_flow_entry * GetKFlowStatsAndInfo (const FlowKey &key, uint32_t idx, uint8_t gen_id, vr_flow_stats *stats, KFlowData *info) const
 
bool GetFlowKey (uint32_t index, FlowKey *key, bool *is_nat_flow)
 
bool IsEvictionMarked (const vr_flow_entry *entry, uint16_t flags) const
 
virtual int get_entry_size ()
 
virtual bool IsInactiveEntry (uint32_t idx, uint8_t &gen_id)
 
virtual void SetTableSize ()
 
virtual int EncodeReq (nl_client *nl, uint32_t attr_len)
 
virtual void CreateProtoAuditEntry (uint32_t index, uint8_t gen_id)
 
virtual void InitTest ()
 
virtual void Shutdown ()
 
void DecrementHoldFlowCounter ()
 
void IncrementHoldFlowCounter ()
 
void UpdateAgentHoldFlowCounter ()
 
- Public Member Functions inherited from KSyncMemory
 KSyncMemory (KSync *ksync, uint32_t minor_id)
 
virtual ~KSyncMemory ()
 
void InitMem (void *hpmem)
 
bool AuditProcess ()
 
void MapSharedMemory ()
 
void GetTableSize ()
 
int GetKernelTableSize ()
 
void UnmapMemTest ()
 
KSyncksync () const
 
void set_major_devid (int id)
 
void set_table_size (int count)
 
void set_table_path (const std::string &path)
 
uint32_t audit_timeout () const
 
void Mmap (bool unlink, void *khpmem, bool kernel_mode)
 
uint32_t table_entries_count ()
 

Static Public Member Functions

static void VrFlowToIp (const vr_flow_entry *kflow, IpAddress *sip, IpAddress *dip)
 

Private Member Functions

void KFlow2FlowKey (const vr_flow_entry *entry, FlowKey *key) const
 
void ReadFlowInfo (const vr_flow_entry *k_flow, vr_flow_stats *stats, KFlowData *info) const
 

Private Attributes

uint32_t hold_flow_counter_
 
const vr_flow_entry * flow_table_
 

Additional Inherited Members

- Static Public Attributes inherited from KSyncMemory
static const uint32_t kAuditSweepTime = 180
 
static const uint32_t kAuditYieldTimer = 100
 
static const uint32_t kAuditTimeout = (5 * 1000 * 1000)
 
static const uint32_t kAuditYieldMax = (1024)
 
static const uint32_t kAuditYieldMin = (100)
 
- Protected Attributes inherited from KSyncMemory
KSyncksync_
 
void * table_
 
std::string table_path_
 
int major_devid_
 
int minor_devid_
 
int table_size_
 
uint32_t table_entries_count_
 
Timeraudit_timer_
 
uint32_t audit_timeout_
 
uint32_t audit_yield_
 
uint32_t audit_interval_
 
uint32_t audit_idx_
 
std::list< AuditEntryaudit_list_
 

Detailed Description

Definition at line 22 of file ksync_flow_memory.h.

Constructor & Destructor Documentation

KSyncFlowMemory::KSyncFlowMemory ( KSync ksync,
uint32_t  minor_id 
)

Definition at line 45 of file ksync_flow_memory.cc.

virtual KSyncFlowMemory::~KSyncFlowMemory ( )
inlinevirtual

Definition at line 25 of file ksync_flow_memory.h.

Member Function Documentation

void KSyncFlowMemory::CreateProtoAuditEntry ( uint32_t  index,
uint8_t  gen_id 
)
virtual

Implements KSyncMemory.

Definition at line 86 of file ksync_flow_memory.cc.

Here is the call graph for this function:

void KSyncFlowMemory::DecrementHoldFlowCounter ( )
virtual

Reimplemented from KSyncMemory.

Definition at line 103 of file ksync_flow_memory.cc.

int KSyncFlowMemory::EncodeReq ( nl_client *  nl,
uint32_t  attr_len 
)
virtual

Implements KSyncMemory.

Definition at line 58 of file ksync_flow_memory.cc.

int KSyncFlowMemory::get_entry_size ( )
virtual

Implements KSyncMemory.

Definition at line 77 of file ksync_flow_memory.cc.

bool KSyncFlowMemory::GetFlowKey ( uint32_t  index,
FlowKey key,
bool *  is_nat_flow 
)

Definition at line 201 of file ksync_flow_memory.cc.

Here is the call graph for this function:

const vr_flow_entry * KSyncFlowMemory::GetKernelFlowEntry ( uint32_t  idx,
bool  ignore_active_status 
) const

Definition at line 181 of file ksync_flow_memory.cc.

const vr_flow_entry * KSyncFlowMemory::GetKFlowStats ( const FlowKey key,
uint32_t  idx,
uint8_t  gen_id,
vr_flow_stats *  stats 
) const

Definition at line 233 of file ksync_flow_memory.cc.

Here is the call graph for this function:

const vr_flow_entry * KSyncFlowMemory::GetKFlowStatsAndInfo ( const FlowKey key,
uint32_t  idx,
uint8_t  gen_id,
vr_flow_stats *  stats,
KFlowData info 
) const

Definition at line 254 of file ksync_flow_memory.cc.

Here is the call graph for this function:

const vr_flow_entry * KSyncFlowMemory::GetValidKFlowEntry ( const FlowKey key,
uint32_t  idx,
uint8_t  gen_id 
) const

Definition at line 160 of file ksync_flow_memory.cc.

Here is the call graph for this function:

void KSyncFlowMemory::IncrementHoldFlowCounter ( )
virtual

Reimplemented from KSyncMemory.

Definition at line 108 of file ksync_flow_memory.cc.

void KSyncFlowMemory::Init ( )
virtual

Reimplemented from KSyncMemory.

Definition at line 51 of file ksync_flow_memory.cc.

Here is the call graph for this function:

void KSyncFlowMemory::InitTest ( )
virtual

Reimplemented from KSyncMemory.

Definition at line 282 of file ksync_flow_memory.cc.

Here is the call graph for this function:

bool KSyncFlowMemory::IsEvictionMarked ( const vr_flow_entry *  entry,
uint16_t  flags 
) const

Definition at line 222 of file ksync_flow_memory.cc.

bool KSyncFlowMemory::IsInactiveEntry ( uint32_t  idx,
uint8_t &  gen_id 
)
virtual

Implements KSyncMemory.

Definition at line 119 of file ksync_flow_memory.cc.

Here is the call graph for this function:

void KSyncFlowMemory::KFlow2FlowKey ( const vr_flow_entry *  entry,
FlowKey key 
) const
private

Definition at line 148 of file ksync_flow_memory.cc.

Here is the call graph for this function:

void KSyncFlowMemory::ReadFlowInfo ( const vr_flow_entry *  k_flow,
vr_flow_stats *  stats,
KFlowData info 
) const
private

Definition at line 246 of file ksync_flow_memory.cc.

void KSyncFlowMemory::SetTableSize ( )
virtual

Reimplemented from KSyncMemory.

Definition at line 81 of file ksync_flow_memory.cc.

Here is the call graph for this function:

void KSyncFlowMemory::Shutdown ( void  )
virtual

Reimplemented from KSyncMemory.

Definition at line 291 of file ksync_flow_memory.cc.

Here is the call graph for this function:

void KSyncFlowMemory::UpdateAgentHoldFlowCounter ( )
virtual

Reimplemented from KSyncMemory.

Definition at line 113 of file ksync_flow_memory.cc.

Here is the call graph for this function:

void KSyncFlowMemory::VrFlowToIp ( const vr_flow_entry *  kflow,
IpAddress sip,
IpAddress dip 
)
static

Definition at line 129 of file ksync_flow_memory.cc.

Member Data Documentation

const vr_flow_entry* KSyncFlowMemory::flow_table_
private

Definition at line 63 of file ksync_flow_memory.h.

uint32_t KSyncFlowMemory::hold_flow_counter_
private

Definition at line 59 of file ksync_flow_memory.h.


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