|
static int | session_send_evt_to_thread (void *data, void *args, u32 thread_index, session_evt_type_t evt_type) |
|
int | session_send_io_evt_to_thread (svm_fifo_t *f, session_evt_type_t evt_type) |
|
int | session_send_io_evt_to_thread_custom (void *data, u32 thread_index, session_evt_type_t evt_type) |
|
int | session_send_ctrl_evt_to_thread (stream_session_t *s, session_evt_type_t evt_type) |
|
void | session_send_rpc_evt_to_thread (u32 thread_index, void *fp, void *rpc_args) |
|
static void | session_program_transport_close (stream_session_t *s) |
|
stream_session_t * | session_alloc (u32 thread_index) |
|
void | session_free (stream_session_t *s) |
|
void | session_free_w_fifos (stream_session_t *s) |
|
static void | session_delete (stream_session_t *s) |
| Cleans up session and lookup table. More...
|
|
int | session_alloc_fifos (segment_manager_t *sm, stream_session_t *s) |
|
static stream_session_t * | session_alloc_for_connection (transport_connection_t *tc) |
|
static int | session_alloc_and_init (segment_manager_t *sm, transport_connection_t *tc, u8 alloc_fifos, stream_session_t **ret_s) |
|
static void | session_enqueue_discard_chain_bytes (vlib_main_t *vm, vlib_buffer_t *b, vlib_buffer_t **chain_b, u32 n_bytes_to_drop) |
| Discards bytes from buffer chain. More...
|
|
static int | session_enqueue_chain_tail (stream_session_t *s, vlib_buffer_t *b, u32 offset, u8 is_in_order) |
| Enqueue buffer chain tail. More...
|
|
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 (stream_session_t *s, session_dgram_hdr_t *hdr, vlib_buffer_t *b, u8 proto, u8 queue_event) |
|
u8 | stream_session_no_space (transport_connection_t *tc, u32 thread_index, u16 data_len) |
| Check if we have space in rx fifo to push more bytes. More...
|
|
u32 | session_tx_fifo_max_dequeue (transport_connection_t *tc) |
|
int | stream_session_peek_bytes (transport_connection_t *tc, u8 *buffer, u32 offset, u32 max_bytes) |
|
u32 | stream_session_dequeue_drop (transport_connection_t *tc, u32 max_bytes) |
|
static int | session_enqueue_notify (stream_session_t *s) |
| Notify session peer that new data has been enqueued. More...
|
|
int | session_dequeue_notify (stream_session_t *s) |
|
int | session_manager_flush_enqueue_events (u8 transport_proto, u32 thread_index) |
| Flushes queue of sessions that are to be notified of new data enqueued events. More...
|
|
int | session_manager_flush_all_enqueue_events (u8 transport_proto) |
|
void | stream_session_init_fifos_pointers (transport_connection_t *tc, u32 rx_pointer, u32 tx_pointer) |
| Init fifo tail and head pointers. More...
|
|
int | session_stream_connect_notify (transport_connection_t *tc, u8 is_fail) |
|
static void | session_switch_pool (void *cb_args) |
|
int | session_dgram_connect_notify (transport_connection_t *tc, u32 old_thread_index, stream_session_t **new_session) |
| Move dgram session to the right thread. More...
|
|
int | stream_session_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_transport_closed_notify (transport_connection_t *tc) |
| Notification from transport that session can be closed. More...
|
|
void | session_transport_reset_notify (transport_connection_t *tc) |
| Notify application that connection has been reset. More...
|
|
int | stream_session_accept (transport_connection_t *tc, u32 listener_index, u8 notify) |
| Accept a stream session. More...
|
|
int | session_open_cl (u32 app_wrk_index, session_endpoint_t *rmt, u32 opaque) |
|
int | session_open_vc (u32 app_wrk_index, session_endpoint_t *rmt, u32 opaque) |
|
int | session_open_app (u32 app_wrk_index, session_endpoint_t *rmt, u32 opaque) |
|
int | session_open (u32 app_wrk_index, session_endpoint_t *rmt, u32 opaque) |
| Ask transport to open connection to remote transport endpoint. More...
|
|
int | session_listen (stream_session_t *ls, session_endpoint_cfg_t *sep) |
| Ask transport to listen on session endpoint. More...
|
|
int | session_stop_listen (stream_session_t *s) |
| Ask transport to stop listening on local transport endpoint. More...
|
|
void | session_close (stream_session_t *s) |
| Initialize session closing procedure. More...
|
|
void | session_transport_close (stream_session_t *s) |
| Notify transport the session can be disconnected. More...
|
|
void | session_transport_cleanup (stream_session_t *s) |
| Cleanup transport and session state. More...
|
|
transport_service_type_t | session_transport_service_type (stream_session_t *s) |
|
transport_tx_fn_type_t | session_transport_tx_fn_type (stream_session_t *s) |
|
u8 | session_tx_is_dgram (stream_session_t *s) |
|
void | session_vpp_event_queues_allocate (session_manager_main_t *smm) |
| Allocate event queues in the shared-memory segment. More...
|
|
ssvm_private_t * | session_manager_get_evt_q_segment (void) |
|
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_connection_t * | session_get_transport (stream_session_t *s) |
|
transport_connection_t * | listen_session_get_transport (stream_session_t *s) |
|
int | listen_session_get_local_session_endpoint (stream_session_t *listener, session_endpoint_t *sep) |
|
void | session_flush_frames_main_thread (vlib_main_t *vm) |
|
static clib_error_t * | session_manager_main_enable (vlib_main_t *vm) |
|
void | session_node_enable_disable (u8 is_en) |
|
clib_error_t * | vnet_session_enable_disable (vlib_main_t *vm, u8 is_en) |
|
clib_error_t * | session_manager_main_init (vlib_main_t *vm) |
|
static clib_error_t * | session_config_fn (vlib_main_t *vm, unformat_input_t *input) |
|
Session and session manager.
Definition in file session.c.