![]() |
FD.io VPP
v19.04.4-rc0-5-ge88582fac
Vector Packet Processing
|
Include dependency graph for sctp.h:
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Data Structures | |
| struct | sctp_options_t |
Macros | |
| #define | foreach_sctp_timer |
| #define | SCTP_TIMER_HANDLE_INVALID ((u32) ~0) |
| #define | sctp_error(n, s) SCTP_ERROR_##n, |
| #define | NO_FLAG 0 |
| #define | IS_T_BIT_SET(var) ((var) & (1)) |
| #define | IS_E_BIT_SET(var) ((var) & (1)) |
| #define | IS_B_BIT_SET(var) ((var) & (1<<1)) |
| #define | IS_U_BIT_SET(var) ((var) & (1<<2)) |
| #define | MAX_SCTP_CONNECTIONS 8 |
| #define | SCTP_PRIMARY_PATH_IDX 0 |
| #define | sctp_trajectory_add_start(b, start) |
| #define | SCTP_INITIAL_SSHTRESH 65535 |
| #define | SET_BIT(A, k) ( A[(k/32)] |= (1 << (k%32)) ) |
| #define | CLEAR_BIT(A, k) ( A[(k/32)] &= ~(1 << (k%32)) ) |
| #define | TEST_BIT(A, k) ( A[(k/32)] & (1 << (k%32)) ) |
| #define | ENDIANESS_SWAP(x) _bytes_swap(&x, sizeof(x)); |
| #define | MAX_INFLIGHT_PACKETS 128 |
| #define | MAX_ENQUEABLE_SACKS 2 |
| #define | SUGGESTED_COOKIE_LIFE_SPAN_INCREMENT 1000 |
| #define | IP_PROTOCOL_SCTP 132 |
| #define | foreach_sctp_fsm_state |
| SSCTP FSM state definitions as per RFC4960. More... | |
| #define | SCTP_TICK 0.001 |
| SCTP tick period (s) More... | |
| #define | SHZ (u32) (1/SCTP_TICK) |
| SCTP tick frequency. More... | |
| #define | SCTP_TSTAMP_RESOLUTION SCTP_TICK |
| Time stamp resolution. More... | |
| #define | SCTP_RTO_INIT 3 * SHZ /* 3 seconds */ |
| #define | SCTP_RTO_MIN 1 * SHZ /* 1 second */ |
| #define | SCTP_RTO_MAX 60 * SHZ /* 60 seconds */ |
| #define | SCTP_RTO_BURST 4 |
| #define | SCTP_RTO_ALPHA 1/8 |
| #define | SCTP_RTO_BETA 1/4 |
| #define | SCTP_VALID_COOKIE_LIFE 60 * SHZ /* 60 seconds */ |
| #define | SCTP_ASSOCIATION_MAX_RETRANS 10 |
| #define | SCTP_PATH_MAX_RETRANS 5 |
| #define | SCTP_MAX_INIT_RETRANS 8 |
| #define | SCTP_HB_INTERVAL 30 * SHZ |
| #define | SCTP_HB_MAX_BURST 1 |
| #define | SCTP_DATA_IDLE_INTERVAL 15 * SHZ /* 15 seconds; the time-interval after which the connetion is considered IDLE */ |
| #define | SCTP_TO_TIMER_TICK SCTP_TICK*10 /* Period for converting from SCTP_TICK */ |
| #define | SCTP_CONN_RECOVERY 1 << 1 |
| #define | SCTP_FAST_RECOVERY 1 << 2 |
| #define | ABS(x) ((x) > 0) ? (x) : -(x); |
| #define | SELECT_MAX_RETRIES 8 |
Typedefs | |
| typedef enum _sctp_timers | sctp_timers_e |
| typedef enum _sctp_error | sctp_error_t |
| typedef struct _sctp_sub_connection | sctp_sub_connection_t |
| typedef struct _sctp_user_configuration | sctp_user_configuration_t |
| typedef struct _sctp_connection | sctp_connection_t |
| typedef void() | sctp_timer_expiration_handler(u32 conn_index, u32 timer_id) |
| typedef enum _sctp_state | sctp_state_t |
| typedef struct _sctp_lookup_dispatch | sctp_lookup_dispatch_t |
| typedef struct _sctp_main | sctp_main_t |
Variables | |
| format_function_t | format_sctp_state |
| sctp_main_t | sctp_main |
| vlib_node_registration_t | sctp4_input_node |
| (constructor) VLIB_REGISTER_NODE (sctp4_input_node) More... | |
| vlib_node_registration_t | sctp6_input_node |
| (constructor) VLIB_REGISTER_NODE (sctp6_input_node) More... | |
| vlib_node_registration_t | sctp4_output_node |
| (constructor) VLIB_REGISTER_NODE (sctp4_output_node) More... | |
| vlib_node_registration_t | sctp6_output_node |
| (constructor) VLIB_REGISTER_NODE (sctp6_output_node) More... | |
| #define foreach_sctp_fsm_state |
SSCTP FSM state definitions as per RFC4960.
| #define foreach_sctp_timer |
| #define SCTP_DATA_IDLE_INTERVAL 15 * SHZ /* 15 seconds; the time-interval after which the connetion is considered IDLE */ |
| #define SCTP_TSTAMP_RESOLUTION SCTP_TICK |
| typedef struct _sctp_connection sctp_connection_t |
| typedef enum _sctp_error sctp_error_t |
| typedef struct _sctp_lookup_dispatch sctp_lookup_dispatch_t |
| typedef struct _sctp_main sctp_main_t |
| typedef enum _sctp_state sctp_state_t |
| typedef struct _sctp_sub_connection sctp_sub_connection_t |
| typedef enum _sctp_timers sctp_timers_e |
| typedef struct _sctp_user_configuration sctp_user_configuration_t |
|
inlinestatic |
Definition at line 20 of file sctp_format.c.
Definition at line 26 of file sctp_format.c.
| void sctp_api_reference | ( | void | ) |
|
inlinestatic |
|
inlinestatic |
| u16 sctp_check_outstanding_data_chunks | ( | sctp_connection_t * | sctp_conn | ) |
|
inlinestatic |
| u8 sctp_configure | ( | sctp_user_configuration_t | config | ) |
| void sctp_connection_cleanup | ( | sctp_connection_t * | sctp_conn | ) |
| void sctp_connection_close | ( | sctp_connection_t * | sctp_conn | ) |
| void sctp_connection_del | ( | sctp_connection_t * | sctp_conn | ) |
|
inlinestatic |
| sctp_connection_t* sctp_connection_new | ( | u8 | thread_index | ) |
| void sctp_connection_timers_init | ( | sctp_connection_t * | sctp_conn | ) |
| void sctp_connection_timers_reset | ( | sctp_connection_t * | sctp_conn | ) |
| void sctp_data_retransmit | ( | sctp_connection_t * | sctp_conn | ) |
Definition at line 1492 of file sctp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlinestatic |
| 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.
Definition at line 24 of file sctp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void sctp_flush_frames_to_output | ( | u8 | thread_index | ) |
Flush v4 and v6 sctp and ip-lookup tx frames for thread index.
Definition at line 57 of file sctp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlinestatic |
|
inlinestatic |
Try to cleanup half-open connection.
If called from a thread that doesn't own tc, the call won't have any effect.
| tc | - connection to be cleaned up |
Definition at line 634 of file sctp.h.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
| clib_error_t* sctp_init | ( | vlib_main_t * | vm | ) |
|
inlinestatic |
| void sctp_init_mss | ( | sctp_connection_t * | sctp_conn | ) |
| void sctp_init_snd_vars | ( | sctp_connection_t * | sctp_conn | ) |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
| 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.
Definition at line 659 of file sctp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void sctp_prepare_cookie_ack_chunk | ( | sctp_connection_t * | sctp_conn, |
| u8 | idx, | ||
| vlib_buffer_t * | b | ||
| ) |
Definition at line 497 of file sctp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void sctp_prepare_cookie_echo_chunk | ( | sctp_connection_t * | sctp_conn, |
| u8 | idx, | ||
| vlib_buffer_t * | b, | ||
| u8 | reuse_buffer | ||
| ) |
Definition at line 531 of file sctp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void sctp_prepare_heartbeat_ack_chunk | ( | sctp_connection_t * | sctp_conn, |
| u8 | idx, | ||
| vlib_buffer_t * | b | ||
| ) |
Convert buffer to HEARTBEAT_ACK.
Definition at line 1132 of file sctp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:| 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.
Definition at line 840 of file sctp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:| 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.
Definition at line 700 of file sctp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void sctp_prepare_operation_error | ( | sctp_connection_t * | sctp_conn, |
| u8 | idx, | ||
| vlib_buffer_t * | b, | ||
| u8 | err_cause | ||
| ) |
Convert buffer to ERROR.
Definition at line 614 of file sctp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void sctp_prepare_sack_chunk | ( | sctp_connection_t * | sctp_conn, |
| u8 | idx, | ||
| vlib_buffer_t * | b | ||
| ) |
Convert buffer to SACK.
Definition at line 1094 of file sctp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void sctp_punt_unknown | ( | vlib_main_t * | vm, |
| u8 | is_ip4, | ||
| u8 | is_add | ||
| ) |
| u32 sctp_push_header | ( | transport_connection_t * | tconn, |
| vlib_buffer_t * | b | ||
| ) |
| void sctp_send_cookie_echo | ( | sctp_connection_t * | sctp_conn | ) |
Definition at line 569 of file sctp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void sctp_send_heartbeat | ( | sctp_connection_t * | sctp_conn | ) |
Definition at line 1203 of file sctp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void sctp_send_init | ( | sctp_connection_t * | sctp_conn | ) |
Definition at line 1285 of file sctp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void sctp_send_shutdown | ( | sctp_connection_t * | sctp_conn | ) |
Definition at line 1019 of file sctp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void sctp_send_shutdown_ack | ( | sctp_connection_t * | sctp_conn, |
| u8 | idx, | ||
| vlib_buffer_t * | b | ||
| ) |
Definition at line 1077 of file sctp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void sctp_send_shutdown_complete | ( | sctp_connection_t * | sctp_conn, |
| u8 | idx, | ||
| vlib_buffer_t * | b0 | ||
| ) |
Definition at line 1268 of file sctp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
| 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 | ||
| ) |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
Push SCTP header to buffer.
| b | - buffer to write the header to |
| sp_net | - source port net order |
| dp_net | - destination port net order |
| sctp_hdr_opts_len | - header and options length in bytes |
Definition at line 862 of file sctp.h.
Here is the call graph for this function:
|
inlinestatic |
Push SCTP header to buffer.
| vm | - vlib_main |
| b | - buffer to write the header to |
| sp_net | - source port net order |
| dp_net | - destination port net order |
| sctp_hdr_opts_len | - header and options length in bytes |
Definition at line 838 of file sctp.h.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlinestatic |
| clib_error_t* vnet_sctp_enable_disable | ( | vlib_main_t * | vm, |
| u8 | is_en | ||
| ) |
Here is the caller graph for this function:| format_function_t format_sctp_state |
| vlib_node_registration_t sctp4_input_node |
(constructor) VLIB_REGISTER_NODE (sctp4_input_node)
Definition at line 2277 of file sctp_input.c.
| vlib_node_registration_t sctp4_output_node |
(constructor) VLIB_REGISTER_NODE (sctp4_output_node)
Definition at line 354 of file sctp_output_node.c.
| vlib_node_registration_t sctp6_input_node |
(constructor) VLIB_REGISTER_NODE (sctp6_input_node)
Definition at line 2297 of file sctp_input.c.
| vlib_node_registration_t sctp6_output_node |
(constructor) VLIB_REGISTER_NODE (sctp6_output_node)
Definition at line 373 of file sctp_output_node.c.
| sctp_main_t sctp_main |