vcl: add DSCP support in VCL
[vpp.git] / src / vcl / vppcom.h
index 0930300..46517ad 100644 (file)
@@ -45,32 +45,42 @@ extern "C"
 #define VPPCOM_ENV_VPP_API_SOCKET              "VCL_VPP_API_SOCKET"
 #define VPPCOM_ENV_VPP_SAPI_SOCKET             "VCL_VPP_SAPI_SOCKET"
 
-typedef enum
-{
-  VPPCOM_PROTO_TCP = 0,
-  VPPCOM_PROTO_UDP,
-  VPPCOM_PROTO_NONE,
-  VPPCOM_PROTO_TLS,
-  VPPCOM_PROTO_QUIC,
-} vppcom_proto_t;
+  typedef enum
+  {
+    VPPCOM_PROTO_TCP = 0,
+    VPPCOM_PROTO_UDP,
+    VPPCOM_PROTO_NONE,
+    VPPCOM_PROTO_TLS,
+    VPPCOM_PROTO_QUIC,
+    VPPCOM_PROTO_DTLS,
+    VPPCOM_PROTO_SRTP,
+  } vppcom_proto_t;
 
-typedef enum
-{
-  VPPCOM_IS_IP6 = 0,
-  VPPCOM_IS_IP4,
-} vppcom_is_ip4_t;
+  typedef enum
+  {
+    VPPCOM_IS_IP6 = 0,
+    VPPCOM_IS_IP4,
+  } vppcom_is_ip4_t;
 
-typedef struct vppcom_endpt_t_
-{
-  uint8_t is_cut_thru;
-  uint8_t is_ip4;
-  uint8_t *ip;
-  uint16_t port;
-  uint64_t parent_handle;
-} vppcom_endpt_t;
+  typedef struct vppcom_endpt_t_
+  {
+    uint8_t is_cut_thru;
+    uint8_t is_ip4;
+    uint8_t *ip;
+    uint16_t port;
+    uint64_t parent_handle;
+  } vppcom_endpt_t;
 
 typedef uint32_t vcl_session_handle_t;
 
+typedef struct vppcom_cert_key_pair_
+{
+  char *cert;
+  char *key;
+  uint32_t cert_len;
+  uint32_t key_len;
+} vppcom_cert_key_pair_t;
+
 typedef enum
 {
   VPPCOM_OK = 0,
@@ -87,7 +97,10 @@ typedef enum
   VPPCOM_ENOTCONN = -ENOTCONN,
   VPPCOM_ECONNREFUSED = -ECONNREFUSED,
   VPPCOM_ETIMEDOUT = -ETIMEDOUT,
-  VPPCOM_EEXIST = -EEXIST
+  VPPCOM_EEXIST = -EEXIST,
+  VPPCOM_ENOPROTOOPT = -ENOPROTOOPT,
+  VPPCOM_EPIPE = -EPIPE,
+  VPPCOM_ENOENT = -ENOENT,
 } vppcom_error_t;
 
 typedef enum
@@ -126,9 +139,13 @@ typedef enum
   VPPCOM_ATTR_SET_TCP_KEEPINTVL,
   VPPCOM_ATTR_GET_TCP_USER_MSS,
   VPPCOM_ATTR_SET_TCP_USER_MSS,
-  VPPCOM_ATTR_SET_SHUT,
-  VPPCOM_ATTR_GET_SHUT,
   VPPCOM_ATTR_SET_CONNECTED,
+  VPPCOM_ATTR_SET_CKPAIR,
+  VPPCOM_ATTR_SET_VRF,
+  VPPCOM_ATTR_GET_VRF,
+  VPPCOM_ATTR_GET_DOMAIN,
+  VPPCOM_ATTR_SET_ENDPT_EXT_CFG,
+  VPPCOM_ATTR_SET_DSCP,
 } vppcom_attr_op_t;
 
 typedef struct _vcl_poll
@@ -157,6 +174,7 @@ extern int vppcom_app_create (const char *app_name);
 extern void vppcom_app_destroy (void);
 
 extern int vppcom_session_create (uint8_t proto, uint8_t is_nonblocking);
+extern int vppcom_session_shutdown (uint32_t session_handle, int how);
 extern int vppcom_session_close (uint32_t session_handle);
 extern int vppcom_session_bind (uint32_t session_handle, vppcom_endpt_t * ep);
 extern int vppcom_session_listen (uint32_t session_handle, uint32_t q_len);
@@ -204,10 +222,8 @@ extern int vppcom_session_read_segments (uint32_t session_handle,
                                         uint32_t max_bytes);
 extern void vppcom_session_free_segments (uint32_t session_handle,
                                          uint32_t n_bytes);
-extern int vppcom_session_tls_add_cert (uint32_t session_handle, char *cert,
-                                       uint32_t cert_len);
-extern int vppcom_session_tls_add_key (uint32_t session_handle, char *key,
-                                      uint32_t key_len);
+extern int vppcom_add_cert_key_pair (vppcom_cert_key_pair_t *ckpair);
+extern int vppcom_del_cert_key_pair (uint32_t ckpair_index);
 extern int vppcom_unformat_proto (uint8_t * proto, char *proto_str);
 extern int vppcom_session_is_connectable_listener (uint32_t session_handle);
 extern int vppcom_session_listener (uint32_t session_handle);