From 993683150202254c6ba8dd43e087a7229edd5d4c Mon Sep 17 00:00:00 2001 From: Florin Coras Date: Thu, 2 Aug 2018 10:45:44 -0700 Subject: vcl: support for eventfd mq signaling - support eventfd based mq signaling. Based on configuration, vcl epoll/select can use either condvars or epoll on mq eventfds. - add vcl support for memfd segments - vpp explicitly registers cut-through segments with apps/vcl - if using eventfd, make ldp allow one call to libc_epoll_create. Needed for the message queue epfd - update svm_queue_t to allow blocking calls with eventfd signaling. Change-Id: I064151ac370bbe29bb16c968bf4e3659c8286bea Signed-off-by: Florin Coras --- src/vcl/vppcom.h | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) (limited to 'src/vcl/vppcom.h') diff --git a/src/vcl/vppcom.h b/src/vcl/vppcom.h index 8d414f6cc77..eff79c3a5ac 100644 --- a/src/vcl/vppcom.h +++ b/src/vcl/vppcom.h @@ -31,17 +31,18 @@ extern "C" /* * VPPCOM Public API Definitions, Enums, and Data Structures */ -#define INVALID_SESSION_ID (~0) -#define VPPCOM_CONF_DEFAULT "/etc/vpp/vcl.conf" -#define VPPCOM_ENV_CONF "VCL_CONFIG" -#define VPPCOM_ENV_DEBUG "VCL_DEBUG" -#define VPPCOM_ENV_API_PREFIX "VCL_API_PREFIX" -#define VPPCOM_ENV_APP_PROXY_TRANSPORT_TCP "VCL_APP_PROXY_TRANSPORT_TCP" -#define VPPCOM_ENV_APP_PROXY_TRANSPORT_UDP "VCL_APP_PROXY_TRANSPORT_UDP" -#define VPPCOM_ENV_APP_NAMESPACE_ID "VCL_APP_NAMESPACE_ID" -#define VPPCOM_ENV_APP_NAMESPACE_SECRET "VCL_APP_NAMESPACE_SECRET" -#define VPPCOM_ENV_APP_SCOPE_LOCAL "VCL_APP_SCOPE_LOCAL" -#define VPPCOM_ENV_APP_SCOPE_GLOBAL "VCL_APP_SCOPE_GLOBAL" +#define INVALID_SESSION_ID (~0) +#define VPPCOM_CONF_DEFAULT "/etc/vpp/vcl.conf" +#define VPPCOM_ENV_CONF "VCL_CONFIG" +#define VPPCOM_ENV_DEBUG "VCL_DEBUG" +#define VPPCOM_ENV_API_PREFIX "VCL_API_PREFIX" +#define VPPCOM_ENV_APP_PROXY_TRANSPORT_TCP "VCL_APP_PROXY_TRANSPORT_TCP" +#define VPPCOM_ENV_APP_PROXY_TRANSPORT_UDP "VCL_APP_PROXY_TRANSPORT_UDP" +#define VPPCOM_ENV_APP_NAMESPACE_ID "VCL_APP_NAMESPACE_ID" +#define VPPCOM_ENV_APP_NAMESPACE_SECRET "VCL_APP_NAMESPACE_SECRET" +#define VPPCOM_ENV_APP_SCOPE_LOCAL "VCL_APP_SCOPE_LOCAL" +#define VPPCOM_ENV_APP_SCOPE_GLOBAL "VCL_APP_SCOPE_GLOBAL" +#define VPPCOM_ENV_VPP_API_SOCKET "VCL_VPP_API_SOCKET" typedef enum { @@ -250,6 +251,7 @@ extern int vppcom_session_sendto (uint32_t session_index, void *buffer, vppcom_endpt_t * ep); extern int vppcom_poll (vcl_poll_t * vp, uint32_t n_sids, double wait_for_time); +extern int vppcom_mq_epoll_fd (void); /* * VPPCOM Event Functions -- cgit 1.2.3-korg