|
OpenSDN source code
|
#include <flow_proto.h>


Public Member Functions | |
| FlowProto (Agent *agent, boost::asio::io_context &io) | |
| virtual | ~FlowProto () |
| void | Init () |
| void | InitDone () |
| void | Shutdown () |
| void | FlushFlows () |
| bool | Validate (PktInfo *msg) |
| FlowHandler * | AllocProtoHandler (PktInfoPtr info, boost::asio::io_context &io) |
| bool | Enqueue (PktInfoPtr msg) |
| FlowEntry * | Find (const FlowKey &key, uint32_t table_index) const |
| uint16_t | FlowTableIndex (const IpAddress &sip, const IpAddress &dip, uint8_t proto, uint16_t sport, uint16_t dport, uint32_t flow_handle) const |
| uint32_t | flow_table_count () const |
| FlowTable * | GetTable (uint16_t index) const |
| FlowTable * | GetFlowTable (const FlowKey &key, uint32_t flow_handle) const |
| uint32_t | FlowCount () const |
| void | VnFlowCounters (const VnEntry *vn, uint32_t *in_count, uint32_t *out_count) |
| void | InterfaceFlowCount (const Interface *intf, uint64_t *created, uint64_t *aged, uint32_t *active_flows) const |
| bool | AddFlow (FlowEntry *flow) |
| bool | UpdateFlow (FlowEntry *flow) |
| void | EnqueueFlowEvent (FlowEvent *event) |
| void | ForceEnqueueFreeFlowReference (FlowEntryPtr &flow) |
| void | DeleteFlowRequest (FlowEntry *flow) |
| void | DeleteFlowRequest (const FlowKey &key) |
| void | EvictFlowRequest (FlowEntry *flow, uint32_t flow_handle, uint8_t gen_id, uint8_t evict_gen_id) |
| void | CreateAuditEntry (const FlowKey &key, uint32_t flow_handle, uint8_t gen_id) |
| bool | FlowEventHandler (FlowEvent *req, FlowTable *table) |
| bool | FlowUpdateHandler (FlowEvent *req) |
| bool | FlowDeleteHandler (FlowEvent *req, FlowTable *table) |
| bool | FlowKSyncMsgHandler (FlowEvent *req, FlowTable *table) |
| void | GrowFreeListRequest (FlowTable *table) |
| 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 | MessageRequest (FlowEntry *flow) |
| void | DisableFlowEventQueue (uint32_t index, bool disabled) |
| void | DisableFlowUpdateQueue (bool disabled) |
| void | DisableFlowKSyncQueue (uint32_t index, bool disabled) |
| void | DisableFlowDeleteQueue (uint32_t index, bool disabled) |
| size_t | FlowUpdateQueueLength () |
| const FlowStats * | flow_stats () const |
| void | SetProfileData (ProfileData *data) |
| uint32_t | linklocal_flow_count () const |
| void | update_linklocal_flow_count (int val) |
| bool | EnqueueReentrant (boost::shared_ptr< PktInfo > msg, uint8_t table_index) |
| bool | ShouldTrace (const FlowEntry *flow, const FlowEntry *rflow) |
| void | EnqueueUnResolvedFlowEntry (FlowEntry *flow) |
| virtual void | TokenAvailable (TokenPool *pool_base) |
| TokenPtr | GetToken (FlowEvent::Event event) |
| bool | TokenCheck (const FlowTokenPool *pool) const |
| PortTableManager * | port_table_manager () |
Public Member Functions inherited from Proto | |
| Proto (Agent *agent, const char *task_name, PktHandler::PktModuleName mod, boost::asio::io_context &io) | |
| virtual | ~Proto () |
| virtual void | ProcessStats (PktStatsType::Type type) |
| void | FreeBuffer (PktInfo *msg) |
| bool | ProcessProto (boost::shared_ptr< PktInfo > msg_info) |
| bool | RunProtoHandler (ProtoHandler *handler) |
| void | set_trace (bool val) |
| void | set_free_buffer (bool val) |
| boost::asio::io_context & | get_io_service () const |
| Agent * | agent () const |
| const ProtoWorkQueue * | work_queue () const |
Static Public Attributes | |
| static const int | kMinTableCount = 1 |
| static const int | kMaxTableCount = 16 |
Private Member Functions | |
| FlowTraceFilter * | ipv4_trace_filter () |
| FlowTraceFilter * | ipv6_trace_filter () |
| bool | ProcessFlowEvent (const FlowEvent &req, FlowTable *table) |
| bool | FlowStatsUpdate () const |
Private Attributes | |
| FlowTokenPool | add_tokens_ |
| FlowTokenPool | ksync_tokens_ |
| FlowTokenPool | del_tokens_ |
| FlowTokenPool | update_tokens_ |
| std::vector< FlowEventQueue * > | flow_event_queue_ |
| std::vector< FlowEventQueue * > | flow_tokenless_queue_ |
| std::vector< DeleteFlowEventQueue * > | flow_delete_queue_ |
| std::vector< KSyncFlowEventQueue * > | flow_ksync_queue_ |
| std::vector< FlowTable * > | flow_table_list_ |
| UpdateFlowEventQueue | flow_update_queue_ |
| tbb::atomic< int > | linklocal_flow_count_ |
| bool | use_vrouter_hash_ |
| FlowTraceFilter | ipv4_trace_filter_ |
| FlowTraceFilter | ipv6_trace_filter_ |
| FlowStats | stats_ |
| PortTableManager | port_table_manager_ |
| Timer * | stats_update_timer_ |
Friends | |
| class | SandeshIPv4FlowFilterRequest |
| class | SandeshIPv6FlowFilterRequest |
| class | SandeshShowFlowFilterRequest |
| class | FlowTraceFilterTest |
| class | FlowUpdateTest |
| class | FlowTest |
Additional Inherited Members | |
Public Types inherited from Proto | |
| typedef WorkQueue< boost::shared_ptr< PktInfo > > | ProtoWorkQueue |
Protected Attributes inherited from Proto | |
| Agent * | agent_ |
| PktHandler::PktModuleName | module_ |
| bool | trace_ |
| bool | free_buffer_ |
| boost::asio::io_context & | io_ |
| ProtoWorkQueue | work_queue_ |
Definition at line 46 of file flow_proto.h.
| FlowProto::FlowProto | ( | Agent * | agent, |
| boost::asio::io_context & | io | ||
| ) |
|
virtual |
| bool FlowProto::AddFlow | ( | FlowEntry * | flow | ) |
|
virtual |
Implements Proto.
Definition at line 188 of file flow_proto.cc.

| void FlowProto::CreateAuditEntry | ( | const FlowKey & | key, |
| uint32_t | flow_handle, | ||
| uint8_t | gen_id | ||
| ) |
| void FlowProto::DeleteFlowRequest | ( | const FlowKey & | key | ) |
| void FlowProto::DeleteFlowRequest | ( | FlowEntry * | flow | ) |
| void FlowProto::DisableFlowDeleteQueue | ( | uint32_t | index, |
| bool | disabled | ||
| ) |
Definition at line 248 of file flow_proto.cc.
| void FlowProto::DisableFlowEventQueue | ( | uint32_t | index, |
| bool | disabled | ||
| ) |
Definition at line 230 of file flow_proto.cc.
| void FlowProto::DisableFlowKSyncQueue | ( | uint32_t | index, |
| bool | disabled | ||
| ) |
Definition at line 240 of file flow_proto.cc.
| void FlowProto::DisableFlowUpdateQueue | ( | bool | disabled | ) |
|
virtual |
Reimplemented from Proto.
Definition at line 220 of file flow_proto.cc.

| void FlowProto::EnqueueFlowEvent | ( | FlowEvent * | event | ) |
| bool FlowProto::EnqueueReentrant | ( | boost::shared_ptr< PktInfo > | msg, |
| uint8_t | table_index | ||
| ) |
| void FlowProto::EnqueueUnResolvedFlowEntry | ( | FlowEntry * | flow | ) |
| void FlowProto::EvictFlowRequest | ( | FlowEntry * | flow, |
| uint32_t | flow_handle, | ||
| uint8_t | gen_id, | ||
| uint8_t | evict_gen_id | ||
| ) |
|
inline |
Definition at line 108 of file flow_proto.h.
|
inline |
Definition at line 68 of file flow_proto.h.
| uint32_t FlowProto::FlowCount | ( | ) | const |
Definition at line 265 of file flow_proto.cc.
|
private |
| bool FlowProto::FlowUpdateHandler | ( | FlowEvent * | req | ) |
| size_t FlowProto::FlowUpdateQueueLength | ( | ) |
| void FlowProto::FlushFlows | ( | ) |
Definition at line 255 of file flow_proto.cc.
| void FlowProto::ForceEnqueueFreeFlowReference | ( | FlowEntryPtr & | flow | ) |
| FlowTable * FlowProto::GetTable | ( | uint16_t | index | ) | const |
Definition at line 261 of file flow_proto.cc.
| TokenPtr FlowProto::GetToken | ( | FlowEvent::Event | event | ) |
| void FlowProto::GrowFreeListRequest | ( | FlowTable * | table | ) |
| void FlowProto::Init | ( | ) |
| void FlowProto::InitDone | ( | ) |
| void FlowProto::InterfaceFlowCount | ( | const Interface * | intf, |
| uint64_t * | created, | ||
| uint64_t * | aged, | ||
| uint32_t * | active_flows | ||
| ) | const |
|
inlineprivate |
Definition at line 137 of file flow_proto.h.
|
inlineprivate |
Definition at line 138 of file flow_proto.h.
| void FlowProto::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 | ||
| ) |
|
inline |
Definition at line 111 of file flow_proto.h.
| void FlowProto::MessageRequest | ( | FlowEntry * | flow | ) |
|
inline |
Definition at line 126 of file flow_proto.h.
| void FlowProto::SetProfileData | ( | ProfileData * | data | ) |
| void FlowProto::Shutdown | ( | ) |
|
virtual |
Reimplemented from Proto.
Definition at line 753 of file flow_proto.cc.

| bool FlowProto::TokenCheck | ( | const FlowTokenPool * | pool | ) | const |
|
inline |
Definition at line 112 of file flow_proto.h.
| bool FlowProto::UpdateFlow | ( | FlowEntry * | flow | ) |
|
virtual |
Reimplemented from Proto.
Definition at line 196 of file flow_proto.cc.
| void FlowProto::VnFlowCounters | ( | const VnEntry * | vn, |
| uint32_t * | in_count, | ||
| uint32_t * | out_count | ||
| ) |
|
friend |
Definition at line 136 of file flow_proto.h.
|
friend |
Definition at line 134 of file flow_proto.h.
|
friend |
Definition at line 135 of file flow_proto.h.
|
friend |
Definition at line 131 of file flow_proto.h.
|
friend |
Definition at line 132 of file flow_proto.h.
|
friend |
Definition at line 133 of file flow_proto.h.
|
private |
Definition at line 143 of file flow_proto.h.
|
private |
Definition at line 145 of file flow_proto.h.
|
private |
Definition at line 149 of file flow_proto.h.
|
private |
Definition at line 147 of file flow_proto.h.
|
private |
Definition at line 150 of file flow_proto.h.
|
private |
Definition at line 151 of file flow_proto.h.
|
private |
Definition at line 148 of file flow_proto.h.
|
private |
Definition at line 152 of file flow_proto.h.
|
private |
Definition at line 155 of file flow_proto.h.
|
private |
Definition at line 156 of file flow_proto.h.
|
static |
Definition at line 49 of file flow_proto.h.
|
static |
Definition at line 48 of file flow_proto.h.
|
private |
Definition at line 144 of file flow_proto.h.
|
private |
Definition at line 153 of file flow_proto.h.
|
private |
Definition at line 158 of file flow_proto.h.
|
private |
Definition at line 157 of file flow_proto.h.
|
private |
Definition at line 159 of file flow_proto.h.
|
private |
Definition at line 146 of file flow_proto.h.
|
private |
Definition at line 154 of file flow_proto.h.