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__);\
169 #endif // vnsw_agent_flow_proto_hpp
static const int kMinTableCount
FlowTraceFilter * ipv6_trace_filter()
void DisableFlowKSyncQueue(uint32_t index, bool disabled)
void DisableFlowUpdateQueue(bool disabled)
uint64_t recompute_process_
void update_linklocal_flow_count(int val)
FlowTraceFilter ipv6_trace_filter_
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)
FlowEntry * Find(const FlowKey &key, uint32_t table_index) const
friend class SandeshIPv4FlowFilterRequest
uint32_t flow_table_count() const
UpdateFlowEventQueue flow_update_queue_
boost::asio::ip::address IpAddress
std::vector< DeleteFlowEventQueue * > flow_delete_queue_
uint32_t linklocal_flow_count() const
PortTableManager * port_table_manager()
std::vector< FlowEventQueue * > flow_event_queue_
boost::shared_ptr< TraceBuffer< SandeshTrace > > SandeshTraceBufferPtr
tbb::atomic< int > linklocal_flow_count_
friend class FlowTraceFilterTest
FlowTokenPool ksync_tokens_
bool FlowUpdateHandler(FlowEvent *req)
bool FlowEventHandler(FlowEvent *req, FlowTable *table)
FlowTable * GetFlowTable(const FlowKey &key, uint32_t flow_handle) const
FlowTable * GetTable(uint16_t index) const
friend class FlowUpdateTest
friend class SandeshShowFlowFilterRequest
friend class SandeshIPv6FlowFilterRequest
bool ProcessFlowEvent(const FlowEvent &req, FlowTable *table)
FlowHandler * AllocProtoHandler(PktInfoPtr info, boost::asio::io_context &io)
std::vector< FlowTable * > flow_table_list_
static const int kMaxTableCount
uint16_t FlowTableIndex(const IpAddress &sip, const IpAddress &dip, uint8_t proto, uint16_t sport, uint16_t dport, uint32_t flow_handle) const
void MessageRequest(FlowEntry *flow)
uint64_t vrouter_responses_
FlowTokenPool update_tokens_
void EnqueueUnResolvedFlowEntry(FlowEntry *flow)
PortTableManager port_table_manager_
bool Enqueue(PktInfoPtr msg)
std::vector< FlowEventQueue * > flow_tokenless_queue_
void EvictFlowRequest(FlowEntry *flow, uint32_t flow_handle, uint8_t gen_id, uint8_t evict_gen_id)
virtual void TokenAvailable(TokenPool *pool_base)
const FlowStats * flow_stats() const
void DisableFlowEventQueue(uint32_t index, bool disabled)
FlowTraceFilter ipv4_trace_filter_
void SetProfileData(ProfileData *data)
bool FlowKSyncMsgHandler(FlowEvent *req, FlowTable *table)
std::vector< KSyncFlowEventQueue * > flow_ksync_queue_
FlowTokenPool del_tokens_
uint64_t revaluate_count_
SandeshTraceBufferPtr PktFlowTraceBuf
uint32_t FlowCount() const
bool FlowDeleteHandler(FlowEvent *req, FlowTable *table)
void DeleteFlowRequest(FlowEntry *flow)
bool Validate(PktInfo *msg)
bool TokenCheck(const FlowTokenPool *pool) const
uint64_t recompute_count_
Timer * stats_update_timer_
void EnqueueFlowEvent(FlowEvent *event)
void ForceEnqueueFreeFlowReference(FlowEntryPtr &flow)
void CreateAuditEntry(const FlowKey &key, uint32_t flow_handle, uint8_t gen_id)
bool FlowStatsUpdate() const
bool EnqueueReentrant(boost::shared_ptr< PktInfo > msg, uint8_t table_index)
boost::shared_ptr< Token > TokenPtr
bool ShouldTrace(const FlowEntry *flow, const FlowEntry *rflow)
FlowProto(Agent *agent, boost::asio::io_context &io)
void DisableFlowDeleteQueue(uint32_t index, bool disabled)
bool UpdateFlow(FlowEntry *flow)
size_t FlowUpdateQueueLength()
void InterfaceFlowCount(const Interface *intf, uint64_t *created, uint64_t *aged, uint32_t *active_flows) const
FlowTraceFilter * ipv4_trace_filter()
uint64_t revaluate_process_
FlowTokenPool add_tokens_
void VnFlowCounters(const VnEntry *vn, uint32_t *in_count, uint32_t *out_count)
boost::shared_ptr< PktInfo > PktInfoPtr
bool AddFlow(FlowEntry *flow)
boost::intrusive_ptr< FlowEntry > FlowEntryPtr
void GrowFreeListRequest(FlowTable *table)
TokenPtr GetToken(FlowEvent::Event event)