VCL: Add SET_KEEPALIVE, SET_TCP_KEEPIDLE, and SET_TCP_KEEPINTVL
[vpp.git] / src / uri / vppcom.h
index 4b048e0..0b2a2dc 100644 (file)
@@ -18,6 +18,7 @@
 
 #include <netdb.h>
 #include <errno.h>
+#include <sys/epoll.h>
 
 /*
  * VPPCOM Public API Definitions, Enums, and Data Structures
@@ -60,6 +61,22 @@ typedef enum
   VPPCOM_ETIMEDOUT = -ETIMEDOUT,
 } vppcom_error_t;
 
+typedef enum
+{
+  VPPCOM_ATTR_GET_NREAD,
+  VPPCOM_ATTR_PEEK_NREAD,
+  VPPCOM_ATTR_GET_FLAGS,
+  VPPCOM_ATTR_SET_FLAGS,
+  VPPCOM_ATTR_GET_LCL_ADDR,
+  VPPCOM_ATTR_GET_PEER_ADDR,
+  VPPCOM_ATTR_SET_REUSEADDR,
+  VPPCOM_ATTR_SET_BROADCAST,
+  VPPCOM_ATTR_SET_V6ONLY,
+  VPPCOM_ATTR_SET_KEEPALIVE,
+  VPPCOM_ATTR_SET_TCP_KEEPIDLE,
+  VPPCOM_ATTR_SET_TCP_KEEPINTVL,
+} vppcom_attr_op_t;
+
 /*
  * VPPCOM Public API Functions
  */
@@ -141,6 +158,15 @@ extern int vppcom_select (unsigned long n_bits,
                          unsigned long *write_map,
                          unsigned long *except_map, double wait_for_time);
 
+extern int vppcom_epoll_create (void);
+extern int vppcom_epoll_ctl (uint32_t vep_idx, int op,
+                            uint32_t session_index,
+                            struct epoll_event *event);
+extern int vppcom_epoll_wait (uint32_t vep_idx, struct epoll_event *events,
+                             int maxevents, double wait_for_time);
+extern int vppcom_session_attr (uint32_t session_index, uint32_t op,
+                               void *buffer, uint32_t * buflen);
+
 #endif /* included_vppcom_h */
 
 /*