diff options
author | Dave Barach <dbarach@cisco.com> | 2017-05-10 13:34:04 -0400 |
---|---|---|
committer | Damjan Marion <dmarion.lists@gmail.com> | 2017-05-10 20:41:04 +0000 |
commit | e5f1d27695e2e6b9be17198e9b49e95639a15c58 (patch) | |
tree | 945a17e443245aad52590bec371748829ce66eda /src/vnet/session | |
parent | 3335693cc1afe6742e9a5e726a682dd28b0ce4d4 (diff) |
Multi-thread enablement for the debug cli http server
Change-Id: Iec1f739fe24c722d0db6c10cc81b5e8333067ea1
Signed-off-by: Dave Barach <dbarach@cisco.com>
Diffstat (limited to 'src/vnet/session')
-rw-r--r-- | src/vnet/session/node.c | 6 | ||||
-rw-r--r-- | src/vnet/session/session.h | 10 |
2 files changed, 15 insertions, 1 deletions
diff --git a/src/vnet/session/node.c b/src/vnet/session/node.c index ce7c3868..fffc8eb3 100644 --- a/src/vnet/session/node.c +++ b/src/vnet/session/node.c @@ -401,6 +401,7 @@ session_queue_node_fn (vlib_main_t * vm, vlib_node_runtime_t * node, u32 my_thread_index = vm->thread_index; int i, rv; f64 now = vlib_time_now (vm); + void (*fp) (void *); SESSION_EVT_DBG (SESSION_EVT_POLL_GAP_TRACK, smm, my_thread_index); @@ -496,6 +497,11 @@ skip_dequeue: app = application_get (s0->app_index); app->cb_fns.builtin_server_rx_callback (s0); break; + case FIFO_EVENT_RPC: + fp = e0->rpc_args.fp; + (*fp) (e0->rpc_args.arg); + break; + default: clib_warning ("unhandled event type %d", e0->event_type); } diff --git a/src/vnet/session/session.h b/src/vnet/session/session.h index 5c281df7..efb9e30b 100644 --- a/src/vnet/session/session.h +++ b/src/vnet/session/session.h @@ -32,7 +32,8 @@ typedef enum FIFO_EVENT_APP_TX, FIFO_EVENT_TIMEOUT, FIFO_EVENT_DISCONNECT, - FIFO_EVENT_BUILTIN_RX + FIFO_EVENT_BUILTIN_RX, + FIFO_EVENT_RPC, } fifo_event_type_t; #define foreach_session_input_error \ @@ -91,12 +92,19 @@ typedef enum SESSION_STATE_N_STATES, } stream_session_state_t; +typedef struct +{ + void *fp; + void *arg; +} rpc_args_t; + /* *INDENT-OFF* */ typedef CLIB_PACKED (struct { union { svm_fifo_t * fifo; u64 session_handle; + rpc_args_t rpc_args; }; u8 event_type; u16 event_id; |