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_
return s;
}
-const char *vppcom_session_state_str (vcl_session_state_t state);
-
static inline u8
vcl_session_is_ct (vcl_session_t * s)
{
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_all ();
void vcl_send_session_unlisten (vcl_worker_t * wrk, vcl_session_t * s);
int vcl_segment_attach_session (uword segment_handle, uword rxf_offset,
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
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_ */
/*