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 () |
![]() | |
Proto (Agent *agent, const char *task_name, PktHandler::PktModuleName mod, boost::asio::io_context &io) | |
virtual | ~Proto () |
virtual bool | Enqueue (boost::shared_ptr< PktInfo > msg) |
virtual void | ProcessStats (PktStatsType::Type type) |
virtual ProtoHandler * | AllocProtoHandler (boost::shared_ptr< PktInfo > info, boost::asio::io_context &io)=0 |
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 | |
![]() | |
typedef WorkQueue < boost::shared_ptr< PktInfo > > | ProtoWorkQueue |
![]() | |
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 | ) |
FlowHandler * FlowProto::AllocProtoHandler | ( | PktInfoPtr | info, |
boost::asio::io_context & | io | ||
) |
void FlowProto::CreateAuditEntry | ( | const FlowKey & | key, |
uint32_t | flow_handle, | ||
uint8_t | gen_id | ||
) |
void FlowProto::DeleteFlowRequest | ( | FlowEntry * | flow | ) |
void FlowProto::DeleteFlowRequest | ( | const FlowKey & | key | ) |
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 | ) |
bool FlowProto::Enqueue | ( | PktInfoPtr | msg | ) |
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.