From: Maros Ondrejicka Date: Thu, 6 Oct 2022 16:17:05 +0000 (+0200) Subject: vcl: add api to check if vcl disconnected from vpp X-Git-Tag: v23.06-rc0~214 X-Git-Url: https://gerrit.fd.io/r/gitweb?a=commitdiff_plain;h=6ff8e90ed45e25e619f27beee1e0d016234e141e;p=vpp.git vcl: add api to check if vcl disconnected from vpp Type: feature Signed-off-by: Maros Ondrejicka Change-Id: I98bc108360f9d04a33126865ce49d2702cbe9cdf --- 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 }