From 6ff8e90ed45e25e619f27beee1e0d016234e141e Mon Sep 17 00:00:00 2001 From: Maros Ondrejicka Date: Thu, 6 Oct 2022 18:17:05 +0200 Subject: vcl: add api to check if vcl disconnected from vpp Type: feature Signed-off-by: Maros Ondrejicka Change-Id: I98bc108360f9d04a33126865ce49d2702cbe9cdf --- src/vcl/vppcom.c | 11 +++++++++++ src/vcl/vppcom.h | 11 ++++++++++- 2 files changed, 21 insertions(+), 1 deletion(-) (limited to 'src/vcl') diff --git a/src/vcl/vppcom.c b/src/vcl/vppcom.c index d217058370e..ae45be3b359 100644 --- a/src/vcl/vppcom.c +++ b/src/vcl/vppcom.c @@ -4490,6 +4490,17 @@ vppcom_session_get_error (uint32_t session_handle) return VPPCOM_OK; } +int +vppcom_worker_is_detached (void) +{ + vcl_worker_t *wrk = vcl_worker_get_current (); + + if (!vcm->cfg.use_mq_eventfd) + return VPPCOM_ENOTSUP; + + return wrk->api_client_handle == ~0; +} + /* * fd.io coding-style-patch-verification: ON * diff --git a/src/vcl/vppcom.h b/src/vcl/vppcom.h index 6e15cd17cd4..08724cc31d8 100644 --- a/src/vcl/vppcom.h +++ b/src/vcl/vppcom.h @@ -102,7 +102,8 @@ typedef enum VPPCOM_ENOPROTOOPT = -ENOPROTOOPT, VPPCOM_EPIPE = -EPIPE, VPPCOM_ENOENT = -ENOENT, - VPPCOM_EADDRINUSE = -EADDRINUSE + VPPCOM_EADDRINUSE = -EADDRINUSE, + VPPCOM_ENOTSUP = -ENOTSUP } vppcom_error_t; typedef enum @@ -272,6 +273,14 @@ extern int vppcom_worker_mqs_epfd (void); */ extern int vppcom_session_get_error (uint32_t session_handle); +/** + * Returns true if current worker is disconnected from vpp + * + * Application can use this API to check if VPP is disconnected + * as long as `use-mq-eventfd` is being set + */ +extern int vppcom_worker_is_detached (void); + /* *INDENT-OFF* */ #ifdef __cplusplus } -- cgit 1.2.3-korg