|
u8 | session_node_lookup_fifo_event (svm_fifo_t *f, session_event_t *e) |
|
static session_evt_elt_t * | session_evt_elt_alloc (session_worker_t *wrk) |
|
static void | session_evt_elt_free (session_worker_t *wrk, session_evt_elt_t *elt) |
|
static void | session_evt_add_old (session_worker_t *wrk, session_evt_elt_t *elt) |
|
static void | session_evt_add_head_old (session_worker_t *wrk, session_evt_elt_t *elt) |
|
static u32 | session_evt_ctrl_data_alloc (session_worker_t *wrk) |
|
static session_evt_elt_t * | session_evt_alloc_ctrl (session_worker_t *wrk) |
|
static void * | session_evt_ctrl_data (session_worker_t *wrk, session_evt_elt_t *elt) |
|
static void | session_evt_ctrl_data_free (session_worker_t *wrk, session_evt_elt_t *elt) |
|
static session_evt_elt_t * | session_evt_alloc_new (session_worker_t *wrk) |
|
static session_evt_elt_t * | session_evt_alloc_old (session_worker_t *wrk) |
|
session_t * | session_alloc (u32 thread_index) |
|
void | session_free (session_t *s) |
|
void | session_free_w_fifos (session_t *s) |
|
void | session_cleanup_half_open (transport_proto_t tp, session_handle_t ho_handle) |
|
u8 | session_is_valid (u32 si, u8 thread_index) |
|
static session_t * | session_get (u32 si, u32 thread_index) |
|
static session_t * | session_get_if_valid (u64 si, u32 thread_index) |
|
static session_t * | session_get_from_handle (session_handle_t handle) |
|
static session_t * | session_get_from_handle_if_valid (session_handle_t handle) |
|
u64 | session_segment_handle (session_t *s) |
|
static void | session_pool_add_peeker (u32 thread_index) |
| Acquires a lock that blocks a session pool from expanding. More...
|
|
static void | session_pool_remove_peeker (u32 thread_index) |
|
static session_t * | session_get_from_handle_safe (u64 handle) |
| Get session from handle and 'lock' pool resize if not in same thread. More...
|
|
static u32 | session_get_index (session_t *s) |
|
static session_t * | session_clone_safe (u32 session_index, u32 thread_index) |
|
int | session_open (u32 app_index, session_endpoint_t *tep, u32 opaque) |
| Ask transport to open connection to remote transport endpoint. More...
|
|
int | session_listen (session_t *s, session_endpoint_cfg_t *sep) |
| Ask transport to listen on session endpoint. More...
|
|
int | session_stop_listen (session_t *s) |
| Ask transport to stop listening on local transport endpoint. More...
|
|
void | session_close (session_t *s) |
| Initialize session closing procedure. More...
|
|
void | session_reset (session_t *s) |
| Force a close without waiting for data to be flushed. More...
|
|
void | session_transport_close (session_t *s) |
| Notify transport the session can be disconnected. More...
|
|
void | session_transport_reset (session_t *s) |
| Force transport close. More...
|
|
void | session_transport_cleanup (session_t *s) |
| Cleanup transport and session state. More...
|
|
int | session_send_io_evt_to_thread (svm_fifo_t *f, session_evt_type_t evt_type) |
|
int | session_enqueue_notify (session_t *s) |
|
int | session_dequeue_notify (session_t *s) |
|
int | session_send_io_evt_to_thread_custom (void *data, u32 thread_index, session_evt_type_t evt_type) |
|
void | session_send_rpc_evt_to_thread (u32 thread_index, void *fp, void *rpc_args) |
|
void | session_send_rpc_evt_to_thread_force (u32 thread_index, void *fp, void *rpc_args) |
|
void | session_add_self_custom_tx_evt (transport_connection_t *tc, u8 has_prio) |
|
void | sesssion_reschedule_tx (transport_connection_t *tc) |
|
transport_connection_t * | session_get_transport (session_t *s) |
|
void | session_get_endpoint (session_t *s, transport_endpoint_t *tep, u8 is_lcl) |
|
u8 * | format_session (u8 *s, va_list *args) |
| Format stream session as per the following format. More...
|
|
uword | unformat_session (unformat_input_t *input, va_list *args) |
|
uword | unformat_transport_connection (unformat_input_t *input, va_list *args) |
|
int | session_enqueue_stream_connection (transport_connection_t *tc, vlib_buffer_t *b, u32 offset, u8 queue_event, u8 is_in_order) |
|
int | session_enqueue_dgram_connection (session_t *s, session_dgram_hdr_t *hdr, vlib_buffer_t *b, u8 proto, u8 queue_event) |
|
int | session_stream_connect_notify (transport_connection_t *tc, session_error_t err) |
|
int | session_dgram_connect_notify (transport_connection_t *tc, u32 old_thread_index, session_t **new_session) |
| Move dgram session to the right thread. More...
|
|
int | session_stream_accept_notify (transport_connection_t *tc) |
|
void | session_transport_closing_notify (transport_connection_t *tc) |
| Notification from transport that connection is being closed. More...
|
|
void | session_transport_delete_notify (transport_connection_t *tc) |
| Notification from transport that connection is being deleted. More...
|
|
void | session_half_open_delete_notify (transport_proto_t tp, session_handle_t ho_handle) |
|
void | session_transport_closed_notify (transport_connection_t *tc) |
| Notification from transport that it is closed. More...
|
|
void | session_transport_reset_notify (transport_connection_t *tc) |
| Notify application that connection has been reset. More...
|
|
int | session_stream_accept (transport_connection_t *tc, u32 listener_index, u32 thread_index, u8 notify) |
| Accept a stream session. More...
|
|
int | session_dgram_accept (transport_connection_t *tc, u32 listener_index, u32 thread_index) |
|
void | session_register_transport (transport_proto_t transport_proto, const transport_proto_vft_t *vft, u8 is_ip4, u32 output_node) |
| Initialize session layer for given transport proto and ip version. More...
|
|
transport_proto_t | session_add_transport_proto (void) |
|
int | session_tx_fifo_peek_bytes (transport_connection_t *tc, u8 *buffer, u32 offset, u32 max_bytes) |
|
u32 | session_tx_fifo_dequeue_drop (transport_connection_t *tc, u32 max_bytes) |
|
static u32 | transport_max_rx_enqueue (transport_connection_t *tc) |
|
static u32 | transport_max_tx_dequeue (transport_connection_t *tc) |
|
static u32 | transport_max_rx_dequeue (transport_connection_t *tc) |
|
static u32 | transport_rx_fifo_size (transport_connection_t *tc) |
|
static u32 | transport_tx_fifo_size (transport_connection_t *tc) |
|
static u8 | transport_rx_fifo_has_ooo_data (transport_connection_t *tc) |
|
static clib_time_type_t | transport_time_now (u32 thread_index) |
|
static clib_us_time_t | transport_us_time_now (u32 thread_index) |
|
static void | transport_add_tx_event (transport_connection_t *tc) |
|
static u64 | listen_session_get_handle (session_t *s) |
|
static session_t * | listen_session_get_from_handle (session_handle_t handle) |
|
static void | listen_session_parse_handle (session_handle_t handle, u32 *index, u32 *thread_index) |
|
static session_t * | listen_session_alloc (u8 thread_index, session_type_t type) |
|
static session_t * | listen_session_get (u32 ls_index) |
|
static void | listen_session_free (session_t *s) |
|
transport_connection_t * | listen_session_get_transport (session_t *s) |
|
static session_main_t * | vnet_get_session_main () |
|
static session_worker_t * | session_main_get_worker (u32 thread_index) |
|
static session_worker_t * | session_main_get_worker_if_valid (u32 thread_index) |
|
static svm_msg_q_t * | session_main_get_vpp_event_queue (u32 thread_index) |
|
static u8 | session_main_is_enabled () |
|
int | session_main_flush_enqueue_events (u8 proto, u32 thread_index) |
| Flushes queue of sessions that are to be notified of new data enqueued events. More...
|
|
int | session_main_flush_all_enqueue_events (u8 transport_proto) |
|
void | session_queue_run_on_main_thread (vlib_main_t *vm) |
|
static void | session_add_pending_tx_buffer (u32 thread_index, u32 bi, u32 next_node) |
| Add session node pending buffer with custom node. More...
|
|
ssvm_private_t * | session_main_get_evt_q_segment (void) |
|
void | session_node_enable_disable (u8 is_en) |
|
clib_error_t * | vnet_session_enable_disable (vlib_main_t *vm, u8 is_en) |
|
session_t * | session_alloc_for_connection (transport_connection_t *tc) |
|