From 053a0e44edb21713e0825f9c09ba4af12e686b38 Mon Sep 17 00:00:00 2001 From: Florin Coras Date: Tue, 13 Nov 2018 15:52:38 -0800 Subject: vcl/session: apps with process workers Allow apps to register child processes as app workers. In particular, on fork vcl now registers the child process with vpp as a new worker. Change-Id: I52a65fbc3292962b1f6e1fe0f6153f739e6e0d4a Signed-off-by: Florin Coras --- src/vcl/vcl_private.h | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'src/vcl/vcl_private.h') diff --git a/src/vcl/vcl_private.h b/src/vcl/vcl_private.h index d1a40b933a7..7bb0dbc5a66 100644 --- a/src/vcl/vcl_private.h +++ b/src/vcl/vcl_private.h @@ -219,8 +219,12 @@ typedef struct vcl_worker_ /* Session pool */ vcl_session_t *sessions; + /** Worker/thread index in current process */ u32 wrk_index; + /** Worker index in vpp*/ + u32 vpp_wrk_index; + /** Message queues epoll fd. Initialized only if using mqs with eventfds */ int mqs_epfd; @@ -272,15 +276,26 @@ typedef struct vppcom_main_t_ u32 debug; pthread_t main_cpu; - /** VPP binary api input queue */ - svm_queue_t *vl_input_queue; + /** Main process pid */ + pid_t main_pid; + + /** Current pid, may be different from main_pid if forked child */ + pid_t current_pid; + + /** Main process api client index. It's used by vpp to identify the app */ + u32 main_api_client_index; /** API client handle */ u32 my_client_index; + /** VPP binary api input queue */ + svm_queue_t *vl_input_queue; + /** State of the connection, shared between msg RX thread and main thread */ volatile app_state_t app_state; + u8 *app_name; + /** VCL configuration */ vppcom_cfg_t cfg; -- cgit 1.2.3-korg