5 #ifndef vnsw_agent_flow_proto_hpp
6 #define vnsw_agent_flow_proto_hpp
61 boost::asio::io_context &
io);
66 uint8_t proto, uint16_t sport,
67 uint16_t dport, uint32_t flow_handle)
const;
75 uint64_t *aged, uint32_t *active_flows)
const;
85 uint8_t gen_id, uint8_t evict_gen_id);
95 uint8_t gen_id,
int ksync_error,
96 uint64_t evict_flow_bytes,
97 uint64_t evict_flow_packets,
98 int32_t evict_flow_oflow,
99 uint32_t transcation_id);
118 uint8_t table_index);
164 #define PKTFLOW_TRACE(obj, ...)\
166 PktFlow##obj::TraceMsg(PktFlowTraceBuf, __FILE__, __LINE__, ##__VA_ARGS__);\
boost::asio::ip::address IpAddress
TokenPtr GetToken(FlowEvent::Event event)
void EvictFlowRequest(FlowEntry *flow, uint32_t flow_handle, uint8_t gen_id, uint8_t evict_gen_id)
FlowTokenPool del_tokens_
bool FlowStatsUpdate() const
std::vector< DeleteFlowEventQueue * > flow_delete_queue_
void DeleteFlowRequest(FlowEntry *flow)
bool FlowDeleteHandler(FlowEvent *req, FlowTable *table)
void GrowFreeListRequest(FlowTable *table)
void CreateAuditEntry(const FlowKey &key, uint32_t flow_handle, uint8_t gen_id)
void ForceEnqueueFreeFlowReference(FlowEntryPtr &flow)
bool FlowUpdateHandler(FlowEvent *req)
void DisableFlowDeleteQueue(uint32_t index, bool disabled)
FlowTable * GetTable(uint16_t index) const
Timer * stats_update_timer_
void DisableFlowUpdateQueue(bool disabled)
FlowTraceFilter ipv4_trace_filter_
std::vector< FlowTable * > flow_table_list_
uint32_t flow_table_count() const
void InterfaceFlowCount(const Interface *intf, uint64_t *created, uint64_t *aged, uint32_t *active_flows) const
uint32_t FlowCount() const
void VnFlowCounters(const VnEntry *vn, uint32_t *in_count, uint32_t *out_count)
FlowHandler * AllocProtoHandler(PktInfoPtr info, boost::asio::io_context &io)
bool ProcessFlowEvent(const FlowEvent &req, FlowTable *table)
void update_linklocal_flow_count(int val)
tbb::atomic< int > linklocal_flow_count_
FlowTraceFilter * ipv6_trace_filter()
virtual void TokenAvailable(TokenPool *pool_base)
friend class SandeshIPv6FlowFilterRequest
PortTableManager port_table_manager_
const FlowStats * flow_stats() const
friend class FlowUpdateTest
void EnqueueUnResolvedFlowEntry(FlowEntry *flow)
bool ShouldTrace(const FlowEntry *flow, const FlowEntry *rflow)
FlowTable * GetFlowTable(const FlowKey &key, uint32_t flow_handle) const
FlowProto(Agent *agent, boost::asio::io_context &io)
void EnqueueFlowEvent(FlowEvent *event)
static const int kMaxTableCount
void DisableFlowKSyncQueue(uint32_t index, bool disabled)
FlowTokenPool add_tokens_
std::vector< FlowEventQueue * > flow_tokenless_queue_
FlowTokenPool update_tokens_
FlowTraceFilter ipv6_trace_filter_
static const int kMinTableCount
friend class FlowTraceFilterTest
FlowTokenPool ksync_tokens_
void MessageRequest(FlowEntry *flow)
FlowTraceFilter * ipv4_trace_filter()
bool FlowEventHandler(FlowEvent *req, FlowTable *table)
FlowEntry * Find(const FlowKey &key, uint32_t table_index) const
bool TokenCheck(const FlowTokenPool *pool) const
friend class SandeshShowFlowFilterRequest
uint32_t linklocal_flow_count() const
void KSyncEventRequest(KSyncEntry *ksync_entry, KSyncEntry::KSyncEvent event, uint32_t flow_handle, uint8_t gen_id, int ksync_error, uint64_t evict_flow_bytes, uint64_t evict_flow_packets, int32_t evict_flow_oflow, uint32_t transcation_id)
void DisableFlowEventQueue(uint32_t index, bool disabled)
bool UpdateFlow(FlowEntry *flow)
UpdateFlowEventQueue flow_update_queue_
void SetProfileData(ProfileData *data)
PortTableManager * port_table_manager()
std::vector< KSyncFlowEventQueue * > flow_ksync_queue_
friend class SandeshIPv4FlowFilterRequest
bool EnqueueReentrant(boost::shared_ptr< PktInfo > msg, uint8_t table_index)
bool FlowKSyncMsgHandler(FlowEvent *req, FlowTable *table)
uint16_t FlowTableIndex(const IpAddress &sip, const IpAddress &dip, uint8_t proto, uint16_t sport, uint16_t dport, uint32_t flow_handle) const
size_t FlowUpdateQueueLength()
bool Enqueue(PktInfoPtr msg)
std::vector< FlowEventQueue * > flow_event_queue_
bool Validate(PktInfo *msg)
bool AddFlow(FlowEntry *flow)
boost::intrusive_ptr< FlowEntry > FlowEntryPtr
SandeshTraceBufferPtr PktFlowTraceBuf
boost::shared_ptr< Token > TokenPtr
boost::shared_ptr< PktInfo > PktInfoPtr
boost::shared_ptr< TraceBuffer< SandeshTrace > > SandeshTraceBufferPtr
uint64_t revaluate_count_
uint64_t revaluate_process_
uint64_t vrouter_responses_
uint64_t recompute_count_
uint64_t recompute_process_