vcl: add hugepage for vcl configure and svm
[vpp.git] / src / vcl / vcl_private.h
index 66d4180..846875d 100644 (file)
@@ -139,6 +139,8 @@ typedef enum vcl_session_flags_
   VCL_SESSION_F_HAS_RX_EVT = 1 << 3,
   VCL_SESSION_F_RD_SHUTDOWN = 1 << 4,
   VCL_SESSION_F_WR_SHUTDOWN = 1 << 5,
+  VCL_SESSION_F_PENDING_DISCONNECT = 1 << 6,
+  VCL_SESSION_F_PENDING_FREE = 1 << 7,
 } __clib_packed vcl_session_flags_t;
 
 typedef struct vcl_session_
@@ -170,6 +172,8 @@ typedef struct vcl_session_
   transport_endpt_ext_cfg_t *ext_config;
   u8 dscp;
 
+  i32 vpp_error;
+
 #if VCL_ELOG
   elog_track_t elog_track;
 #endif
@@ -200,6 +204,7 @@ typedef struct vppcom_cfg_t_
   u8 *vpp_bapi_socket_name;    /**< bapi socket transport socket name */
   u32 tls_engine;
   u8 mt_wrk_supported;
+  u8 huge_page;
 } vppcom_cfg_t;
 
 void vppcom_cfg (vppcom_cfg_t * vcl_cfg);
@@ -541,8 +546,6 @@ vcl_session_table_lookup_listener (vcl_worker_t * wrk, u64 handle)
   return s;
 }
 
-const char *vppcom_session_state_str (vcl_session_state_t state);
-
 static inline u8
 vcl_session_is_ct (vcl_session_t * s)
 {
@@ -716,6 +719,7 @@ int vcl_send_worker_rpc (u32 dst_wrk_index, void *data, u32 data_len);
 int vcl_segment_attach (u64 segment_handle, char *name,
                        ssvm_segment_type_t type, int fd);
 void vcl_segment_detach (u64 segment_handle);
+void vcl_segment_detach_segments (u32 *seg_indices);
 void vcl_send_session_unlisten (vcl_worker_t * wrk, vcl_session_t * s);
 
 int vcl_segment_attach_session (uword segment_handle, uword rxf_offset,
@@ -729,6 +733,7 @@ svm_fifo_chunk_t *vcl_segment_alloc_chunk (uword segment_handle,
                                           uword *offset);
 int vcl_session_share_fifos (vcl_session_t *s, svm_fifo_t *rxf,
                             svm_fifo_t *txf);
+void vcl_worker_detach_sessions (vcl_worker_t *wrk);
 
 /*
  * VCL Binary API
@@ -754,6 +759,14 @@ int vcl_sapi_recv_fds (vcl_worker_t * wrk, int *fds, int n_fds);
 int vcl_sapi_add_cert_key_pair (vppcom_cert_key_pair_t *ckpair);
 int vcl_sapi_del_cert_key_pair (u32 ckpair_index);
 
+/*
+ * Utility functions
+ */
+const char *vcl_session_state_str (vcl_session_state_t state);
+u8 *vcl_format_ip4_address (u8 *s, va_list *args);
+u8 *vcl_format_ip6_address (u8 *s, va_list *args);
+u8 *vcl_format_ip46_address (u8 *s, va_list *args);
+
 #endif /* SRC_VCL_VCL_PRIVATE_H_ */
 
 /*