|
char * | phase_to_string (u8 phase) |
|
static u8 | sctp_lookup_is_valid (transport_connection_t *trans_conn, sctp_header_t *sctp_hdr) |
|
static sctp_connection_t * | sctp_lookup_connection (u32 fib_index, vlib_buffer_t *b, u8 thread_index, u8 is_ip4) |
| Lookup transport connection. More...
|
|
static void | sctp_set_rx_trace_data (sctp_rx_trace_t *rx_trace, sctp_connection_t *sctp_conn, sctp_header_t *sctp_hdr, vlib_buffer_t *b0, u8 is_ip4) |
|
static u16 | sctp_calculate_implied_length (ip4_header_t *ip4_hdr, ip6_header_t *ip6_hdr, int is_ip4) |
|
static u8 | sctp_is_bundling (u16 sctp_implied_length, sctp_chunks_common_hdr_t *sctp_common_hdr) |
|
static u16 | sctp_handle_operation_err (sctp_header_t *sctp_hdr, sctp_connection_t *sctp_conn, u8 idx, vlib_buffer_t *b, u16 *next0) |
|
static u16 | sctp_handle_init (sctp_header_t *sctp_hdr, sctp_chunks_common_hdr_t *sctp_chunk_hdr, sctp_connection_t *sctp_conn, vlib_buffer_t *b0, u16 sctp_implied_length) |
|
static u16 | sctp_is_valid_init_ack (sctp_header_t *sctp_hdr, sctp_chunks_common_hdr_t *sctp_chunk_hdr, sctp_connection_t *sctp_conn, vlib_buffer_t *b0, u16 sctp_implied_length) |
|
static u16 | sctp_handle_init_ack (sctp_header_t *sctp_hdr, sctp_chunks_common_hdr_t *sctp_chunk_hdr, sctp_connection_t *sctp_conn, u8 idx, vlib_buffer_t *b0, u16 sctp_implied_length) |
|
static int | sctp_session_enqueue_data_ooo (sctp_connection_t *sctp_conn, vlib_buffer_t *b, u16 data_len, u8 conn_idx) |
| Enqueue data out-of-order for delivery to application. More...
|
|
static int | sctp_session_enqueue_data (sctp_connection_t *sctp_conn, vlib_buffer_t *b, u16 data_len, u8 conn_idx) |
| Enqueue data for delivery to application. More...
|
|
static u8 | sctp_is_sack_delayable (sctp_connection_t *sctp_conn, u8 idx, u8 is_gapping) |
|
static void | sctp_is_connection_gapping (sctp_connection_t *sctp_conn, u32 tsn, u8 *gapping) |
|
static u16 | sctp_handle_data (sctp_payload_data_chunk_t *sctp_data_chunk, sctp_connection_t *sctp_conn, u8 idx, vlib_buffer_t *b, u16 *next0) |
|
static u16 | sctp_handle_cookie_echo (sctp_header_t *sctp_hdr, sctp_chunks_common_hdr_t *sctp_chunk_hdr, sctp_connection_t *sctp_conn, u8 idx, vlib_buffer_t *b0, u16 *next0) |
|
static u16 | sctp_handle_cookie_ack (sctp_header_t *sctp_hdr, sctp_chunks_common_hdr_t *sctp_chunk_hdr, sctp_connection_t *sctp_conn, u8 idx, vlib_buffer_t *b0, u16 *next0) |
|
static uword | sctp46_rcv_phase_inline (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame, int is_ip4) |
|
VLIB_NODE_FN() | sctp4_rcv_phase_node (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame) |
|
VLIB_NODE_FN() | sctp6_init_phase_node (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame) |
|
static u8 * | format_sctp_rx_trace_short (u8 *s, va_list *args) |
|
static u16 | sctp_handle_shutdown (sctp_header_t *sctp_hdr, sctp_chunks_common_hdr_t *sctp_chunk_hdr, sctp_connection_t *sctp_conn, u8 idx, vlib_buffer_t *b0, u16 sctp_implied_length, u16 *next0) |
|
static u16 | sctp_handle_shutdown_ack (sctp_header_t *sctp_hdr, sctp_chunks_common_hdr_t *sctp_chunk_hdr, sctp_connection_t *sctp_conn, u8 idx, vlib_buffer_t *b0, u16 sctp_implied_length, u16 *next0) |
|
static u16 | sctp_handle_shutdown_complete (sctp_header_t *sctp_hdr, sctp_chunks_common_hdr_t *sctp_chunk_hdr, sctp_connection_t *sctp_conn, u8 idx, vlib_buffer_t *b0, u16 sctp_implied_length, u16 *next0) |
|
static uword | sctp46_shutdown_phase_inline (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame, int is_ip4) |
|
VLIB_NODE_FN() | sctp4_shutdown_phase_node (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame) |
|
VLIB_NODE_FN() | sctp6_shutdown_phase_node (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame) |
|
static u16 | sctp_handle_sack (sctp_selective_ack_chunk_t *sack_chunk, sctp_connection_t *sctp_conn, u8 idx, vlib_buffer_t *b0, u16 *next0) |
|
static u16 | sctp_handle_heartbeat (sctp_hb_req_chunk_t *sctp_hb_chunk, sctp_connection_t *sctp_conn, u8 idx, vlib_buffer_t *b0, u16 *next0) |
|
static u16 | sctp_handle_heartbeat_ack (sctp_hb_ack_chunk_t *sctp_hb_ack_chunk, sctp_connection_t *sctp_conn, u8 idx, vlib_buffer_t *b0, u16 *next0) |
|
static void | sctp_node_inc_counter (vlib_main_t *vm, u32 sctp4_node, u32 sctp6_node, u8 is_ip4, u8 evt, u8 val) |
|
static uword | sctp46_listen_process_inline (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame, int is_ip4) |
|
VLIB_NODE_FN() | sctp4_listen_phase_node (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame) |
|
VLIB_NODE_FN() | sctp6_listen_phase_node (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame) |
|
static uword | sctp46_established_phase_inline (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame, int is_ip4) |
|
VLIB_NODE_FN() | sctp4_established_phase_node (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame) |
|
VLIB_NODE_FN() | sctp6_established_phase_node (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame) |
|
static u8 * | format_sctp_rx_trace (u8 *s, va_list *args) |
|
static uword | sctp46_input_dispatcher (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame, int is_ip4) |
|
VLIB_NODE_FN() | sctp4_input_node (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame) |
|
VLIB_NODE_FN() | sctp6_input_node (vlib_main_t *vm, vlib_node_runtime_t *node, vlib_frame_t *from_frame) |
|
static void | sctp_dispatch_table_init (sctp_main_t *tm) |
|
clib_error_t * | sctp_input_init (vlib_main_t *vm) |
|