|
| STATIC_ASSERT (sizeof(sctp_buffer_opaque_t)<=STRUCT_SIZE_OF(vnet_buffer_opaque_t, unused), "sctp_buffer_opaque_t too large for vnet_buffer_opaque_t") |
|
static char * | sctp_timer_to_string (u8 timer_id) |
|
sctp_connection_t * | sctp_connection_new (u8 thread_index) |
|
u8 | sctp_sub_connection_add_ip4 (vlib_main_t *vm, ip4_address_t *lcl_addr, ip4_address_t *rmt_addr) |
|
u8 | sctp_sub_connection_add_ip6 (vlib_main_t *vm, ip6_address_t *lcl_addr, ip6_address_t *rmt_addr) |
|
u8 | sctp_sub_connection_del_ip4 (ip4_address_t *lcl_addr, ip4_address_t *rmt_addr) |
|
u8 | sctp_sub_connection_del_ip6 (ip6_address_t *lcl_addr, ip6_address_t *rmt_addr) |
|
u8 | sctp_configure (sctp_user_configuration_t config) |
|
void | sctp_connection_close (sctp_connection_t *sctp_conn) |
|
void | sctp_connection_cleanup (sctp_connection_t *sctp_conn) |
| Cleans up connection state. More...
|
|
void | sctp_connection_del (sctp_connection_t *sctp_conn) |
|
u32 | sctp_push_header (transport_connection_t *tconn, vlib_buffer_t *b) |
|
void | sctp_send_init (sctp_connection_t *sctp_conn) |
|
void | sctp_send_cookie_echo (sctp_connection_t *sctp_conn) |
|
void | sctp_send_shutdown (sctp_connection_t *sctp_conn) |
|
void | sctp_send_shutdown_ack (sctp_connection_t *sctp_conn, u8 idx, vlib_buffer_t *b) |
|
void | sctp_send_shutdown_complete (sctp_connection_t *sctp_conn, u8 idx, vlib_buffer_t *b0) |
|
void | sctp_send_heartbeat (sctp_connection_t *sctp_conn) |
|
void | sctp_data_retransmit (sctp_connection_t *sctp_conn) |
|
void | sctp_flush_frame_to_output (vlib_main_t *vm, u8 thread_index, u8 is_ip4) |
| Flush tx frame populated by retransmits and timer pops. More...
|
|
void | sctp_flush_frames_to_output (u8 thread_index) |
| Flush v4 and v6 sctp and ip-lookup tx frames for thread index. More...
|
|
void | sctp_punt_unknown (vlib_main_t *vm, u8 is_ip4, u8 is_add) |
|
u8 * | format_sctp_connection_id (u8 *s, va_list *args) |
|
u8 * | format_sctp_connection (u8 *s, va_list *args) |
|
u8 * | format_sctp_scoreboard (u8 *s, va_list *args) |
|
u8 * | format_sctp_header (u8 *s, va_list *args) |
|
u8 * | format_sctp_tx_trace (u8 *s, va_list *args) |
|
clib_error_t * | sctp_init (vlib_main_t *vm) |
|
void | sctp_connection_timers_init (sctp_connection_t *sctp_conn) |
| Initialize all connection timers as invalid. More...
|
|
void | sctp_connection_timers_reset (sctp_connection_t *sctp_conn) |
| Stop all connection timers. More...
|
|
void | sctp_init_snd_vars (sctp_connection_t *sctp_conn) |
| Initialize connection send variables. More...
|
|
void | sctp_init_mss (sctp_connection_t *sctp_conn) |
|
void | sctp_prepare_initack_chunk (sctp_connection_t *sctp_conn, u8 idx, vlib_buffer_t *b, ip4_address_t *ip4_addr, u8 add_ip4, ip6_address_t *ip6_addr, u8 add_ip6) |
| Convert buffer to INIT-ACK. More...
|
|
void | sctp_prepare_initack_chunk_for_collision (sctp_connection_t *sctp_conn, u8 idx, vlib_buffer_t *b, ip4_address_t *ip4_addr, ip6_address_t *ip6_addr) |
| Convert buffer to INIT-ACK. More...
|
|
void | sctp_prepare_abort_for_collision (sctp_connection_t *sctp_conn, u8 idx, vlib_buffer_t *b, ip4_address_t *ip4_addr, ip6_address_t *ip6_addr) |
| Convert buffer to ABORT. More...
|
|
void | sctp_prepare_operation_error (sctp_connection_t *sctp_conn, u8 idx, vlib_buffer_t *b, u8 err_cause) |
| Convert buffer to ERROR. More...
|
|
void | sctp_prepare_cookie_echo_chunk (sctp_connection_t *sctp_conn, u8 idx, vlib_buffer_t *b, u8 reuse_buffer) |
|
void | sctp_prepare_cookie_ack_chunk (sctp_connection_t *sctp_conn, u8 idx, vlib_buffer_t *b) |
|
void | sctp_prepare_sack_chunk (sctp_connection_t *sctp_conn, u8 idx, vlib_buffer_t *b) |
| Convert buffer to SACK. More...
|
|
void | sctp_prepare_heartbeat_ack_chunk (sctp_connection_t *sctp_conn, u8 idx, vlib_buffer_t *b) |
| Convert buffer to HEARTBEAT_ACK. More...
|
|
u16 | sctp_check_outstanding_data_chunks (sctp_connection_t *sctp_conn) |
|
void | sctp_api_reference (void) |
|
static char * | sctp_state_to_string (u8 state) |
|
static char * | sctp_chunk_to_string (u8 type) |
|
static char * | sctp_optparam_type_to_string (u8 type) |
|
static sctp_main_t * | vnet_get_sctp_main () |
|
static sctp_header_t * | sctp_buffer_hdr (vlib_buffer_t *b) |
|
clib_error_t * | vnet_sctp_enable_disable (vlib_main_t *vm, u8 is_en) |
|
clib_error_t * | sctp_plugin_api_hookup (vlib_main_t *vm) |
|
static sctp_connection_t * | sctp_half_open_connection_get (u32 conn_index) |
|
static void | sctp_half_open_connection_del (sctp_connection_t *tc) |
| Cleanup half-open connection. More...
|
|
static u64 | sctp_set_time_now (u32 thread_index) |
|
static void | sctp_timer_set (sctp_connection_t *tc, u8 conn_idx, u8 timer_id, u32 interval) |
|
static void | sctp_timer_reset (sctp_connection_t *tc, u8 conn_idx, u8 timer_id) |
|
static int | sctp_half_open_connection_cleanup (sctp_connection_t *tc) |
| Try to cleanup half-open connection. More...
|
|
static u32 | sctp_header_bytes () |
|
static sctp_connection_t * | sctp_get_connection_from_transport (transport_connection_t *tconn) |
|
static u64 | sctp_time_now (void) |
|
static void | sctp_calculate_rto (sctp_connection_t *sctp_conn, u8 conn_idx) |
|
static void | sctp_timer_update (sctp_connection_t *tc, u8 conn_idx, u8 timer_id, u32 interval) |
|
static sctp_connection_t * | sctp_listener_get (u32 tli) |
|
static sctp_connection_t * | sctp_connection_get (u32 conn_index, u32 thread_index) |
|
static u8 | sctp_data_subconn_select (sctp_connection_t *sctp_conn) |
|
static u8 | sctp_sub_conn_id_via_ip6h (sctp_connection_t *sctp_conn, ip6_header_t *ip6h) |
|
static u8 | sctp_sub_conn_id_via_ip4h (sctp_connection_t *sctp_conn, ip4_header_t *ip4h) |
|
static void * | vlib_buffer_push_sctp_net_order (vlib_buffer_t *b, u16 sp, u16 dp, u8 sctp_hdr_opts_len) |
| Push SCTP header to buffer. More...
|
|
static void * | vlib_buffer_push_sctp (vlib_buffer_t *b, u16 sp_net, u16 dp_net, u8 sctp_hdr_opts_len) |
| Push SCTP header to buffer. More...
|
|
static u8 | sctp_next_avail_subconn (sctp_connection_t *sctp_conn) |
|
static void | update_smallest_pmtu_idx (sctp_connection_t *sctp_conn) |
|
static void | sctp_init_cwnd (sctp_connection_t *sctp_conn) |
|
static u8 | sctp_in_cong_recovery (sctp_connection_t *sctp_conn, u8 idx) |
|
static u8 | cwnd_fully_utilized (sctp_connection_t *sctp_conn, u8 idx) |
|
static void | update_cwnd (sctp_connection_t *sctp_conn) |
|