OpenSDN source code
|
#include <ksync_sock_user.h>
Public Types | |
enum | KSyncSockEntryType { KSYNC_FLOW_ENTRY_TYPE = 0, KSYNC_MAX_ENTRY_TYPE } |
typedef std::map< int, vr_nexthop_req > | ksync_map_nh |
typedef boost::unordered_map < int, vr_flow_req > | ksync_map_flow |
typedef std::map< int, vr_interface_req > | ksync_map_if |
typedef std::set< vr_route_req, TestRouteCmp > | ksync_rt_tree |
typedef std::map< int, vr_mpls_req > | ksync_map_mpls |
typedef std::map< int, vr_mirror_req > | ksync_map_mirror |
typedef std::set < vr_vrf_assign_req, TestVrfAssignCmp > | ksync_vrf_assign_tree |
typedef std::map< int, vr_vrf_stats_req > | ksync_map_vrf_stats |
typedef std::map< int, vr_vxlan_req > | ksync_map_vxlan |
typedef std::map< int, vr_vrf_req > | ksync_map_vrf |
typedef std::queue < KSyncUserSockContext * > | ksync_map_ctx_queue |
![]() | |
typedef std::map< uint32_t, KSyncBulkMsgContext > | WaitTree |
typedef std::pair< uint32_t, KSyncBulkMsgContext > | WaitTreePair |
typedef boost::function< void(const boost::system::error_code &, size_t)> | HandlerCb |
typedef WorkQueue< KSyncRxData > | KSyncReceiveQueue |
typedef WorkQueue < KSyncRxQueueData > | KSyncRxWorkQueue |
Public Member Functions | |
KSyncSockTypeMap (boost::asio::io_context &ios) | |
~KSyncSockTypeMap () | |
virtual uint32_t | GetSeqno (char *data) |
virtual bool | IsMoreData (char *data) |
virtual bool | BulkDecoder (char *data, KSyncBulkSandeshContext *ctxt) |
virtual bool | Decoder (char *data, AgentSandeshContext *ctxt) |
virtual bool | Validate (char *data) |
virtual void | AsyncReceive (boost::asio::mutable_buffers_1, HandlerCb) |
virtual void | AsyncSendTo (KSyncBufferList *iovec, uint32_t seq_no, HandlerCb cb) |
virtual std::size_t | SendTo (KSyncBufferList *iovec, uint32_t seq_no) |
virtual void | Receive (boost::asio::mutable_buffers_1) |
void | PurgeTxBuffer () |
void | ProcessSandesh (const uint8_t *, std::size_t, KSyncUserSockContext *) |
vr_bridge_entry * | BridgeMmapAlloc (int size) |
void | BridgeMmapFree () |
vr_bridge_entry * | GetBridgeEntry (int idx) |
void | SetBridgeEntry (uint32_t idx, vr_route_req *req, bool set) |
void | UpdateBridgeEntryInactiveFlag (int idx, bool set) |
void | SetBlockMsgProcessing (bool enable) |
bool | IsBlockMsgProcessing () |
void | set_is_incremental_index (bool incremental) |
bool | is_incremental_index () |
void | SetKSyncError (KSyncSockEntryType type, int ksync_error) |
int | GetKSyncError (KSyncSockEntryType type) |
void | AddNetlinkTxBuff (struct nl_client *cl) |
void | InitNetlinkDoneMsg (struct nlmsghdr *nlh, uint32_t seq_num) |
void | DisableReceiveQueue (bool disable) |
![]() | |
KSyncSock () | |
virtual | ~KSyncSock () |
void | SendAsync (KSyncEntry *entry, int msg_len, char *msg, KSyncEntry::KSyncEvent event) |
std::size_t | BlockingSend (char *msg, int msg_len) |
bool | BlockingRecv () |
void | GenericSend (IoContext *ctx) |
uint32_t | AllocSeqNo (IoContext::Type type) |
uint32_t | AllocSeqNo (IoContext::Type type, uint32_t instance) |
KSyncReceiveQueue * | GetReceiveQueue (IoContext::Type type, uint32_t instance) |
KSyncReceiveQueue * | GetReceiveQueue (uint32_t seqno) |
KSyncBulkMsgContext * | LocateBulkContext (uint32_t seqno, IoContext::Type io_context_type, uint32_t work_queue_index) |
int | SendBulkMessage (KSyncBulkMsgContext *bulk_context, uint32_t seqno) |
bool | TryAddToBulk (KSyncBulkMsgContext *bulk_context, IoContext *ioc) |
void | OnEmptyQueue (bool done) |
int | tx_count () const |
const KSyncTxQueue * | send_queue () const |
const KSyncReceiveQueue * | get_receive_work_queue (uint16_t index) const |
KSyncReceiveQueue * | AllocQueue (KSyncBulkSandeshContext ctxt[], uint32_t task_id, uint32_t instance, const char *name) |
uint32_t | WaitTreeSize () const |
void | SetSeqno (uint32_t seq) |
void | SetMeasureQueueDelay (bool val) |
void | reset_use_wait_tree () |
void | set_process_data_inline () |
void | EnqueueRxProcessData (KSyncEntry *entry, KSyncEntry::KSyncEvent event) |
Static Public Member Functions | |
static void | set_error_code (int code) |
static int | error_code () |
static void | SimulateResponse (uint32_t, int, int) |
static void | SendNetlinkDoneMsg (uint32_t seq_num) |
static void | IfDumpResponse (uint32_t) |
static void | IfNetlinkMsgSend (uint32_t seq_num, ksync_map_if::const_iterator it) |
static void | IfStatsUpdate (int, int, int, int, int, int, int) |
static void | IfStatsSet (int, int, int, int, int, int, int) |
static void | InterfaceAdd (int id, int flags=0, int mac_size=6) |
static void | InterfaceDelete (int id) |
static void | NHAdd (int id, int flags=0) |
static void | NHDelete (int id) |
static void | MplsAdd (int id) |
static void | MplsDelete (int id) |
static void | MirrorAdd (int id) |
static void | MirrorDelete (int id) |
static void | RouteAdd (vr_route_req &req) |
static void | RouteDelete (vr_route_req &req) |
static void | VrfAssignAdd (vr_vrf_assign_req &req) |
static void | VrfAssignDelete (vr_vrf_assign_req &req) |
static void | VrfAdd (vr_vrf_req &req) |
static void | VrfDelete (vr_vrf_req &req) |
static void | VrfStatsAdd (int vrf_id) |
static void | VrfStatsUpdate (int vrf_id, const vr_vrf_stats_req &req) |
static void | VrfStatsDelete (int vrf_id) |
static void | VxlanAdd (int id) |
static void | VxlanDelete (int id) |
static void | SetDropStats (const vr_drop_stats_req &req) |
static void | SetVRouterOps (const vrouter_ops &req) |
static int | IfCount () |
static int | NHCount () |
static int | MplsCount () |
static int | RouteCount () |
static int | VxLanCount () |
static KSyncSockTypeMap * | GetKSyncSockTypeMap () |
static void | Init (boost::asio::io_context &ios) |
static void | Shutdown () |
static vr_flow_entry * | FlowMmapAlloc (int size) |
static void | FlowMmapFree () |
static vr_flow_entry * | GetFlowEntry (int idx) |
static void | SetFlowEntry (vr_flow_req *req, bool set) |
static void | IncrFlowStats (int idx, int pkts, int bytes) |
static void | SetTcpFlag (int idx, uint32_t flags) |
static void | SetOFlowStats (int idx, uint8_t pkts, uint16_t bytes) |
static void | SetFlowTcpFlags (int idx, uint16_t flags) |
static void | SetEvictedFlag (int idx) |
static void | ResetEvictedFlag (int idx) |
static void | FlowNatResponse (uint32_t seq_num, vr_flow_req *req, int code=0) |
static void | SetUnderlaySourcePort (int idx, int port) |
![]() | |
static void | Start (bool read_inline) |
static void | Shutdown () |
static KSyncSock * | Get (DBTablePartBase *partition) |
static KSyncSock * | Get (int partition_id) |
static uint32_t | GetPid () |
static int | GetNetlinkFamilyId () |
static void | SetNetlinkFamilyId (int id) |
static AgentSandeshContext * | GetAgentSandeshContext (uint32_t type) |
static void | SetAgentSandeshContext (AgentSandeshContext *ctx, uint32_t idx) |
Public Attributes | |
ksync_map_nh | nh_map |
ksync_map_flow | flow_map |
ksync_map_if | if_map |
ksync_rt_tree | rt_tree |
ksync_map_mpls | mpls_map |
ksync_map_mirror | mirror_map |
ksync_vrf_assign_tree | vrf_assign_tree |
ksync_map_vrf_stats | vrf_stats_map |
vr_drop_stats_req | drop_stats |
vrouter_ops | ksync_vrouter_ops |
ksync_map_vxlan | vxlan_map |
ksync_map_vrf | vrf_map |
ksync_map_ctx_queue | ctx_queue_ |
tbb::mutex | ctx_queue_lock_ |
Private Member Functions | |
void | PurgeBlockedMsg () |
DISALLOW_COPY_AND_ASSIGN (KSyncSockTypeMap) | |
Private Attributes | |
udp::socket | sock_ |
udp::endpoint | local_ep_ |
int | ksync_error_ [KSYNC_MAX_ENTRY_TYPE] |
bool | block_msg_processing_ |
bool | is_incremental_index_ |
vr_bridge_entry * | bridge_table_ |
std::vector< struct nl_client > | tx_buff_list_ |
Static Private Attributes | |
static KSyncSockTypeMap * | singleton_ |
static vr_flow_entry * | flow_table_ |
static int | error_code_ |
Friends | |
class | MockDumpHandlerBase |
class | RouteDumpHandler |
class | VrfAssignDumpHandler |
class | VrfDumpHandler |
Additional Inherited Members | |
![]() | |
static const int | kRxWorkQueueCount = 2 |
static const int | kMsgGrowSize = 16 |
static const unsigned | kBufLen = (4*1024) |
static const unsigned | kMaxBulkMsgCount = 16 |
static const unsigned | kMaxBulkMsgSize = (4*1024) |
static const unsigned | kInvalidBulkSeqNo = 0xFFFFFFFF |
![]() | |
bool | ValidateAndEnqueue (char *data, KSyncBulkMsgContext *context) |
KSyncBulkSandeshContext * | GetBulkSandeshContext (uint32_t seqno) |
void | ProcessDataInline (char *data) |
![]() | |
static void | Init (bool use_work_queue, const std::string &cpu_pin_policy) |
static void | SetSockTableEntry (KSyncSock *sock) |
![]() | |
tbb::mutex | mutex_ |
nl_client * | nl_client_ |
WaitTree | wait_tree_ |
KSyncTxQueue | send_queue_ |
KSyncReceiveQueue * | uve_rx_queue [kRxWorkQueueCount] |
KSyncReceiveQueue * | ksync_rx_queue [kRxWorkQueueCount] |
uint32_t | max_bulk_msg_count_ |
uint32_t | max_bulk_buf_size_ |
uint32_t | bulk_seq_no_ |
uint32_t | bulk_buf_size_ |
uint32_t | bulk_msg_count_ |
uint32_t | bmca_prod_ |
uint32_t | bmca_cons_ |
KSyncBulkMsgContext * | bulk_mctx_arr_ [KSYNC_BMC_ARR_SIZE] |
Definition at line 86 of file ksync_sock_user.h.
typedef std::queue<KSyncUserSockContext *> KSyncSockTypeMap::ksync_map_ctx_queue |
Definition at line 131 of file ksync_sock_user.h.
typedef boost::unordered_map<int, vr_flow_req> KSyncSockTypeMap::ksync_map_flow |
Definition at line 111 of file ksync_sock_user.h.
typedef std::map<int, vr_interface_req> KSyncSockTypeMap::ksync_map_if |
Definition at line 113 of file ksync_sock_user.h.
typedef std::map<int, vr_mirror_req> KSyncSockTypeMap::ksync_map_mirror |
Definition at line 119 of file ksync_sock_user.h.
typedef std::map<int, vr_mpls_req> KSyncSockTypeMap::ksync_map_mpls |
Definition at line 117 of file ksync_sock_user.h.
typedef std::map<int, vr_nexthop_req> KSyncSockTypeMap::ksync_map_nh |
Definition at line 109 of file ksync_sock_user.h.
typedef std::map<int, vr_vrf_req> KSyncSockTypeMap::ksync_map_vrf |
Definition at line 129 of file ksync_sock_user.h.
typedef std::map<int, vr_vrf_stats_req> KSyncSockTypeMap::ksync_map_vrf_stats |
Definition at line 123 of file ksync_sock_user.h.
typedef std::map<int, vr_vxlan_req> KSyncSockTypeMap::ksync_map_vxlan |
Definition at line 127 of file ksync_sock_user.h.
typedef std::set<vr_route_req, TestRouteCmp> KSyncSockTypeMap::ksync_rt_tree |
Definition at line 115 of file ksync_sock_user.h.
typedef std::set<vr_vrf_assign_req, TestVrfAssignCmp> KSyncSockTypeMap::ksync_vrf_assign_tree |
Definition at line 121 of file ksync_sock_user.h.
Enumerator | |
---|---|
KSYNC_FLOW_ENTRY_TYPE | |
KSYNC_MAX_ENTRY_TYPE |
Definition at line 88 of file ksync_sock_user.h.
|
inline |
Definition at line 93 of file ksync_sock_user.h.
|
inline |
Definition at line 97 of file ksync_sock_user.h.
void KSyncSockTypeMap::AddNetlinkTxBuff | ( | struct nl_client * | cl | ) |
Definition at line 51 of file ksync_sock_user.cc.
|
virtual |
Implements KSyncSock.
Definition at line 593 of file ksync_sock_user.cc.
|
virtual |
Implements KSyncSock.
Definition at line 572 of file ksync_sock_user.cc.
vr_bridge_entry * KSyncSockTypeMap::BridgeMmapAlloc | ( | int | size | ) |
Definition at line 709 of file ksync_sock_user.cc.
void KSyncSockTypeMap::BridgeMmapFree | ( | ) |
Definition at line 715 of file ksync_sock_user.cc.
|
virtual |
Implements KSyncSock.
Definition at line 530 of file ksync_sock_user.cc.
|
virtual |
Implements KSyncSock.
Definition at line 536 of file ksync_sock_user.cc.
void KSyncSockTypeMap::DisableReceiveQueue | ( | bool | disable | ) |
Definition at line 227 of file ksync_sock_user.cc.
|
private |
|
inlinestatic |
Definition at line 149 of file ksync_sock_user.h.
|
static |
Definition at line 602 of file ksync_sock_user.cc.
|
static |
Definition at line 607 of file ksync_sock_user.cc.
|
static |
vr_bridge_entry * KSyncSockTypeMap::GetBridgeEntry | ( | int | idx | ) |
Definition at line 722 of file ksync_sock_user.cc.
|
static |
Definition at line 614 of file ksync_sock_user.cc.
|
inline |
Definition at line 223 of file ksync_sock_user.h.
|
inlinestatic |
Definition at line 183 of file ksync_sock_user.h.
|
virtual |
Implements KSyncSock.
Definition at line 519 of file ksync_sock_user.cc.
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
Definition at line 672 of file ksync_sock_user.cc.
|
static |
void KSyncSockTypeMap::InitNetlinkDoneMsg | ( | struct nlmsghdr * | nlh, |
uint32_t | seq_num | ||
) |
Definition at line 195 of file ksync_sock_user.cc.
|
static |
|
static |
|
inline |
Definition at line 217 of file ksync_sock_user.h.
|
inline |
Definition at line 208 of file ksync_sock_user.h.
|
virtual |
Implements KSyncSock.
Definition at line 524 of file ksync_sock_user.cc.
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
void KSyncSockTypeMap::ProcessSandesh | ( | const uint8_t * | , |
std::size_t | , | ||
KSyncUserSockContext * | |||
) |
|
private |
Definition at line 781 of file ksync_sock_user.cc.
void KSyncSockTypeMap::PurgeTxBuffer | ( | ) |
Definition at line 84 of file ksync_sock_user.cc.
|
virtual |
Implements KSyncSock.
Definition at line 598 of file ksync_sock_user.cc.
|
static |
Definition at line 664 of file ksync_sock_user.cc.
|
static |
|
static |
|
static |
|
static |
|
virtual |
Implements KSyncSock.
Definition at line 583 of file ksync_sock_user.cc.
|
inlinestatic |
Definition at line 148 of file ksync_sock_user.h.
|
inline |
Definition at line 213 of file ksync_sock_user.h.
void KSyncSockTypeMap::SetBlockMsgProcessing | ( | bool | enable | ) |
Definition at line 790 of file ksync_sock_user.cc.
void KSyncSockTypeMap::SetBridgeEntry | ( | uint32_t | idx, |
vr_route_req * | req, | ||
bool | set | ||
) |
Definition at line 726 of file ksync_sock_user.cc.
|
static |
|
static |
Definition at line 657 of file ksync_sock_user.cc.
|
static |
|
static |
Definition at line 687 of file ksync_sock_user.cc.
|
inline |
Definition at line 219 of file ksync_sock_user.h.
|
static |
Definition at line 701 of file ksync_sock_user.cc.
|
static |
Definition at line 680 of file ksync_sock_user.cc.
|
static |
Definition at line 694 of file ksync_sock_user.cc.
|
static |
|
static |
Definition at line 776 of file ksync_sock_user.cc.
|
static |
void KSyncSockTypeMap::UpdateBridgeEntryInactiveFlag | ( | int | idx, |
bool | set | ||
) |
Definition at line 751 of file ksync_sock_user.cc.
|
virtual |
Implements KSyncSock.
Definition at line 541 of file ksync_sock_user.cc.
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
friend |
Definition at line 203 of file ksync_sock_user.h.
|
friend |
Definition at line 204 of file ksync_sock_user.h.
|
friend |
Definition at line 205 of file ksync_sock_user.h.
|
friend |
Definition at line 206 of file ksync_sock_user.h.
|
private |
Definition at line 236 of file ksync_sock_user.h.
|
private |
Definition at line 240 of file ksync_sock_user.h.
ksync_map_ctx_queue KSyncSockTypeMap::ctx_queue_ |
Definition at line 132 of file ksync_sock_user.h.
tbb::mutex KSyncSockTypeMap::ctx_queue_lock_ |
Definition at line 133 of file ksync_sock_user.h.
vr_drop_stats_req KSyncSockTypeMap::drop_stats |
Definition at line 125 of file ksync_sock_user.h.
|
staticprivate |
Definition at line 241 of file ksync_sock_user.h.
ksync_map_flow KSyncSockTypeMap::flow_map |
Definition at line 112 of file ksync_sock_user.h.
|
staticprivate |
Definition at line 239 of file ksync_sock_user.h.
ksync_map_if KSyncSockTypeMap::if_map |
Definition at line 114 of file ksync_sock_user.h.
|
private |
Definition at line 237 of file ksync_sock_user.h.
|
private |
Definition at line 235 of file ksync_sock_user.h.
vrouter_ops KSyncSockTypeMap::ksync_vrouter_ops |
Definition at line 126 of file ksync_sock_user.h.
|
private |
Definition at line 234 of file ksync_sock_user.h.
ksync_map_mirror KSyncSockTypeMap::mirror_map |
Definition at line 120 of file ksync_sock_user.h.
ksync_map_mpls KSyncSockTypeMap::mpls_map |
Definition at line 118 of file ksync_sock_user.h.
ksync_map_nh KSyncSockTypeMap::nh_map |
Definition at line 110 of file ksync_sock_user.h.
ksync_rt_tree KSyncSockTypeMap::rt_tree |
Definition at line 116 of file ksync_sock_user.h.
|
staticprivate |
Definition at line 238 of file ksync_sock_user.h.
|
private |
Definition at line 233 of file ksync_sock_user.h.
|
private |
Definition at line 245 of file ksync_sock_user.h.
ksync_vrf_assign_tree KSyncSockTypeMap::vrf_assign_tree |
Definition at line 122 of file ksync_sock_user.h.
ksync_map_vrf KSyncSockTypeMap::vrf_map |
Definition at line 130 of file ksync_sock_user.h.
ksync_map_vrf_stats KSyncSockTypeMap::vrf_stats_map |
Definition at line 124 of file ksync_sock_user.h.
ksync_map_vxlan KSyncSockTypeMap::vxlan_map |
Definition at line 128 of file ksync_sock_user.h.