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;
void set_hash_id(uint32_t hash_id)
uint32_t alloc_count() const
void ResetKSyncResponseInfo()
uint32_t old_reverse_flow_id_
FlowTable * flow_table() const
FlowTableKSyncObject(KSync *ksync)
static const uint32_t kTestInitCount
uint16_t old_drop_reason_
boost::shared_ptr< Token > token_
void set_evict_gen_id(uint8_t gen_id)
KSyncEntry * Alloc(const KSyncEntry *key, uint32_t index)
virtual KSyncEntry * UnresolvedReference()
KSyncFlowEntryFreeList free_list_
virtual bool ShouldReEvalBackReference() const
std::string ToString() 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)
FlowEvent::Event last_event_
boost::intrusive::list_member_hook free_list_node_
FlowTableKSyncObject * object_
static const uint32_t kMaxThreshold
uint32_t old_first_mirror_index()
uint8_t underlay_gw_index
void SetPcapData(FlowEntryPtr fe, std::vector< int8_t > &data)
KSyncFlowEntryFreeList * free_list()
uint32_t old_first_mirror_index_
void GenerateKSyncEvent(FlowTableKSyncEntry *entry, KSyncEntry::KSyncEvent event)
void UpdateKey(KSyncEntry *entry, uint32_t flow_handle)
uint32_t GetKey(KSyncEntry *entry)
virtual void ErrorHandler(int, uint32_t, KSyncEvent) const
uint32_t total_free() const
boost::intrusive::list< FlowTableKSyncEntry, Node > FreeList
DISALLOW_COPY_AND_ASSIGN(FlowTableKSyncEntry)
virtual ~FlowTableKSyncEntry()
virtual ~KSyncFlowEntryFreeList()
uint32_t total_alloc() const
virtual ~FlowTableKSyncObject()
void Free(FlowTableKSyncEntry *flow)
bool AllowDeleteStateComp()
void UpdateUnresolvedFlowEntry(FlowEntryPtr flowptr)
uint32_t get_transaction_id() const
void Free(KSyncEntry *key)
FlowTableKSyncEntry * Allocate(const KSyncEntry *key)
DISALLOW_COPY_AND_ASSIGN(KSyncFlowEntryFreeList)
uint64_t evict_flow_packets_
FlowKSyncResponseInfo ksync_response_info_
uint32_t old_second_mirror_index_
static const uint32_t kMinThreshold
uint32_t max_count() const
const FlowKSyncResponseInfo * ksync_response_info() const
uint32_t vrouter_hash_id_
static const uint32_t KFlowUnresolvedListYield
void set_gen_id(uint8_t gen_id)
FlowTableKSyncObject * ksync_obj_
void set_flow_table(FlowTable *table)
void NetlinkAck(KSyncEntry *entry, KSyncEntry::KSyncEvent event)
virtual std::string VrouterError(uint32_t error) const
int AddMsg(char *buf, int buf_len)
void set_transaction_id(uint32_t transaction_id)
bool IsLess(const KSyncEntry &rhs) const
uint32_t old_component_nh_idx_
uint32_t free_count() const
static const uint32_t kInvalidFlowHandle
FlowTableKSyncEntry(FlowTableKSyncObject *obj)
uint32_t vrouter_hash_id() const
virtual uint32_t GetTableIndex() const
uint64_t evict_flow_bytes_
FlowEntryPtr flow_entry() const
int DeleteMsg(char *buf, int buf_len)
int32_t evict_flow_oflow_
KSyncFlowEntryFreeList(FlowTableKSyncObject *object)
DISALLOW_COPY_AND_ASSIGN(FlowTableKSyncObject)
static const uint32_t kFlowDepSyncTimeout
int ChangeMsg(char *buf, int buf_len)
static const uint32_t kGrowSize
std::list< FlowEntryPtr > unresolved_flow_list_
static const uint32_t kInitCount
int ksync_response_error() const
void UpdateFlowHandle(FlowTableKSyncEntry *entry, uint32_t flow_handle)
boost::intrusive::member_hook< FlowTableKSyncEntry, boost::intrusive::list_member_hook<>,&FlowTableKSyncEntry::free_list_node_ > Node
FlowEvent::Event last_event() const
virtual bool pre_alloc_rx_buffer() const
int Encode(sandesh_op::type op, char *buf, int buf_len)
boost::intrusive_ptr< FlowEntry > FlowEntryPtr
KSyncObject * GetObject() const
FlowTableKSyncEntry * Find(FlowEntry *key)