5 #ifndef __AGENT_FLOWTABLE_KSYNC_H__
6 #define __AGENT_FLOWTABLE_KSYNC_H__
8 #include <boost/asio.hpp>
9 #include <boost/bind.hpp>
18 #include <vrouter/ksync/agent_ksync_types.h>
69 int AddMsg(
char *buf,
int buf_len);
100 uint8_t
gen_id, uint64_t evict_flow_bytes,
101 uint64_t evict_flow_packets,
102 int32_t evict_flow_oflow) {
181 boost::intrusive::list_member_hook<>,
183 typedef boost::intrusive::list<FlowTableKSyncEntry, Node>
FreeList;
static const uint32_t kInvalidFlowHandle
uint32_t get_transaction_id() const
FlowKSyncResponseInfo ksync_response_info_
boost::intrusive::list_member_hook free_list_node_
int ksync_response_error() const
virtual uint32_t GetTableIndex() const
virtual ~FlowTableKSyncEntry()
bool AllowDeleteStateComp()
void set_evict_gen_id(uint8_t gen_id)
void set_gen_id(uint8_t gen_id)
int Encode(sandesh_op::type op, char *buf, int buf_len)
virtual void ErrorHandler(int, uint32_t, KSyncEvent) const
FlowTableKSyncObject * ksync_obj_
virtual bool ShouldReEvalBackReference() const
void SetKSyncResponseInfo(int ksync_error, uint32_t flow_handle, uint8_t gen_id, uint64_t evict_flow_bytes, uint64_t evict_flow_packets, int32_t evict_flow_oflow)
uint32_t old_component_nh_idx_
int ChangeMsg(char *buf, int buf_len)
const FlowKSyncResponseInfo * ksync_response_info() const
int AddMsg(char *buf, int buf_len)
std::string ToString() const
FlowEvent::Event last_event() const
uint32_t old_first_mirror_index_
int DeleteMsg(char *buf, int buf_len)
uint32_t old_reverse_flow_id_
FlowEntryPtr flow_entry() const
virtual std::string VrouterError(uint32_t error) const
void SetPcapData(FlowEntryPtr fe, std::vector< int8_t > &data)
void set_hash_id(uint32_t hash_id)
uint16_t old_drop_reason_
uint32_t old_second_mirror_index_
uint32_t vrouter_hash_id() const
virtual KSyncEntry * UnresolvedReference()
uint32_t vrouter_hash_id_
DISALLOW_COPY_AND_ASSIGN(FlowTableKSyncEntry)
void ResetKSyncResponseInfo()
boost::shared_ptr< Token > token_
KSyncObject * GetObject() const
FlowEvent::Event last_event_
uint32_t old_first_mirror_index()
uint8_t underlay_gw_index
virtual bool pre_alloc_rx_buffer() const
void set_transaction_id(uint32_t transaction_id)
FlowTableKSyncEntry(FlowTableKSyncObject *obj)
bool IsLess(const KSyncEntry &rhs) const
void GenerateKSyncEvent(FlowTableKSyncEntry *entry, KSyncEntry::KSyncEvent event)
void Free(KSyncEntry *key)
void UpdateKey(KSyncEntry *entry, uint32_t flow_handle)
DISALLOW_COPY_AND_ASSIGN(FlowTableKSyncObject)
static const uint32_t KFlowUnresolvedListYield
FlowTableKSyncObject(KSync *ksync)
void UpdateFlowHandle(FlowTableKSyncEntry *entry, uint32_t flow_handle)
static const uint32_t kFlowDepSyncTimeout
void NetlinkAck(KSyncEntry *entry, KSyncEntry::KSyncEvent event)
KSyncFlowEntryFreeList free_list_
std::list< FlowEntryPtr > unresolved_flow_list_
KSyncEntry * Alloc(const KSyncEntry *key, uint32_t index)
FlowTableKSyncEntry * Find(FlowEntry *key)
void set_flow_table(FlowTable *table)
FlowTable * flow_table() const
virtual ~FlowTableKSyncObject()
uint32_t GetKey(KSyncEntry *entry)
KSyncFlowEntryFreeList * free_list()
void UpdateUnresolvedFlowEntry(FlowEntryPtr flowptr)
FlowTableKSyncEntry * Allocate(const KSyncEntry *key)
boost::intrusive::member_hook< FlowTableKSyncEntry, boost::intrusive::list_member_hook<>, &FlowTableKSyncEntry::free_list_node_ > Node
static const uint32_t kTestInitCount
uint32_t max_count() const
uint32_t alloc_count() const
static const uint32_t kMinThreshold
KSyncFlowEntryFreeList(FlowTableKSyncObject *object, FlowEntry *flow, uint32_t hash_id)
FlowTableKSyncObject * object_
uint32_t free_count() const
boost::intrusive::list< FlowTableKSyncEntry, Node > FreeList
KSyncFlowEntryFreeList(FlowTableKSyncObject *object)
uint32_t total_alloc() const
DISALLOW_COPY_AND_ASSIGN(KSyncFlowEntryFreeList)
void Reset(FlowEntryPtr fe, uint32_t hash_id)
static const uint32_t kMaxThreshold
static const uint32_t kGrowSize
void Free(FlowTableKSyncEntry *flow)
static const uint32_t kInitCount
uint32_t total_free() const
virtual ~KSyncFlowEntryFreeList()
boost::intrusive_ptr< FlowEntry > FlowEntryPtr
int32_t evict_flow_oflow_
uint64_t evict_flow_bytes_
uint64_t evict_flow_packets_