vcl/ldp: add locked sessions shim layer
[vpp.git] / src / vcl / vppcom.h
index 641946b..513947a 100644 (file)
@@ -31,7 +31,7 @@ extern "C"
 /*
  * VPPCOM Public API Definitions, Enums, and Data Structures
  */
-#define INVALID_SESSION_ID                     (~0)
+#define INVALID_SESSION_ID                     ((u32)~0)
 #define VPPCOM_CONF_DEFAULT                    "/etc/vpp/vcl.conf"
 #define VPPCOM_ENV_CONF                        "VCL_CONFIG"
 #define VPPCOM_ENV_DEBUG                       "VCL_DEBUG"
@@ -97,6 +97,8 @@ typedef struct vppcom_endpt_t_
   uint16_t port;
 } vppcom_endpt_t;
 
+typedef uint32_t vcl_session_handle_t;
+
 typedef enum
 {
   VPPCOM_OK = 0,
@@ -151,12 +153,14 @@ typedef enum
   VPPCOM_ATTR_GET_TCP_USER_MSS,
   VPPCOM_ATTR_SET_TCP_USER_MSS,
   VPPCOM_ATTR_GET_REFCNT,
+  VPPCOM_ATTR_SET_SHUT,
+  VPPCOM_ATTR_GET_SHUT,
 } vppcom_attr_op_t;
 
 typedef struct _vcl_poll
 {
   uint32_t fds_ndx;
-  uint32_t sid;
+  vcl_session_handle_t sh;
   short events;
   short revents;
 } vcl_poll_t;
@@ -277,7 +281,8 @@ extern int vppcom_session_sendto (uint32_t session_handle, void *buffer,
 extern int vppcom_poll (vcl_poll_t * vp, uint32_t n_sids,
                        double wait_for_time);
 extern int vppcom_mq_epoll_fd (void);
-extern int vppcom_session_index (uint32_t session_handle);
+extern int vppcom_session_index (vcl_session_handle_t session_handle);
+extern int vppcom_session_worker (vcl_session_handle_t session_handle);
 extern int vppcom_session_handle (uint32_t session_index);
 
 extern int vppcom_session_read_segments (uint32_t session_handle,