|
static u32 | tcp_connection_bind (u32 session_index, transport_endpoint_t *lcl) |
|
u32 | tcp_session_bind (u32 session_index, transport_endpoint_t *tep) |
|
static void | tcp_connection_unbind (u32 listener_index) |
|
u32 | tcp_session_unbind (u32 listener_index) |
|
transport_connection_t * | tcp_session_get_listener (u32 listener_index) |
|
void | tcp_half_open_connection_del (tcp_connection_t *tc) |
| Cleanup half-open connection. More...
|
|
int | tcp_half_open_connection_cleanup (tcp_connection_t *tc) |
| Try to cleanup half-open connection. More...
|
|
tcp_connection_t * | tcp_half_open_connection_new (void) |
|
void | tcp_connection_cleanup (tcp_connection_t *tc) |
| Cleans up connection state. More...
|
|
void | tcp_connection_del (tcp_connection_t *tc) |
| Connection removal. More...
|
|
tcp_connection_t * | tcp_connection_new (u8 thread_index) |
|
void | tcp_connection_reset (tcp_connection_t *tc) |
| Notify session that connection has been reset. More...
|
|
void | tcp_connection_close (tcp_connection_t *tc) |
| Begin connection closing procedure. More...
|
|
void | tcp_session_close (u32 conn_index, u32 thread_index) |
|
void | tcp_session_cleanup (u32 conn_index, u32 thread_index) |
|
void | tcp_connection_timers_init (tcp_connection_t *tc) |
| Initialize all connection timers as invalid. More...
|
|
void | tcp_connection_timers_reset (tcp_connection_t *tc) |
| Stop all connection timers. More...
|
|
void | tcp_init_snd_vars (tcp_connection_t *tc) |
| Initialize connection send variables. More...
|
|
void | tcp_connection_init_vars (tcp_connection_t *tc) |
| Initialize tcp connection variables. More...
|
|
static int | tcp_alloc_custom_local_endpoint (tcp_main_t *tm, ip46_address_t *lcl_addr, u16 *lcl_port, u8 is_ip4) |
|
int | tcp_connection_open (transport_endpoint_t *rmt) |
|
int | tcp_session_open (transport_endpoint_t *tep) |
|
u8 * | format_tcp_state (u8 *s, va_list *args) |
|
u8 * | format_tcp_connection_flags (u8 *s, va_list *args) |
|
u8 * | format_tcp_timers (u8 *s, va_list *args) |
|
u8 * | format_tcp_congestion_status (u8 *s, va_list *args) |
|
u8 * | format_tcp_vars (u8 *s, va_list *args) |
|
u8 * | format_tcp_connection_id (u8 *s, va_list *args) |
|
u8 * | format_tcp_connection (u8 *s, va_list *args) |
|
u8 * | format_tcp_session (u8 *s, va_list *args) |
|
u8 * | format_tcp_listener_session (u8 *s, va_list *args) |
|
u8 * | format_tcp_half_open_session (u8 *s, va_list *args) |
|
u8 * | format_tcp_sacks (u8 *s, va_list *args) |
|
u8 * | format_tcp_rcv_sacks (u8 *s, va_list *args) |
|
u8 * | format_tcp_sack_hole (u8 *s, va_list *args) |
|
u8 * | format_tcp_scoreboard (u8 *s, va_list *args) |
|
transport_connection_t * | tcp_session_get_transport (u32 conn_index, u32 thread_index) |
|
transport_connection_t * | tcp_half_open_session_get_transport (u32 conn_index) |
|
u16 | tcp_session_send_mss (transport_connection_t *trans_conn) |
| Compute maximum segment size for session layer. More...
|
|
static u32 | tcp_round_snd_space (tcp_connection_t *tc, u32 snd_space) |
|
u32 | tcp_snd_space (tcp_connection_t *tc) |
| Compute tx window session is allowed to fill. More...
|
|
u32 | tcp_session_send_space (transport_connection_t *trans_conn) |
|
i32 | tcp_rcv_wnd_available (tcp_connection_t *tc) |
|
u32 | tcp_session_tx_fifo_offset (transport_connection_t *trans_conn) |
|
void | tcp_update_time (f64 now, u8 thread_index) |
|
void | tcp_timer_keep_handler (u32 conn_index) |
|
void | tcp_timer_establish_handler (u32 conn_index) |
|
void | tcp_timer_waitclose_handler (u32 conn_index) |
|
static void | tcp_expired_timers_dispatch (u32 *expired_timers) |
|
void | tcp_initialize_timer_wheels (tcp_main_t *tm) |
|
clib_error_t * | tcp_main_enable (vlib_main_t *vm) |
|
clib_error_t * | vnet_tcp_enable_disable (vlib_main_t *vm, u8 is_en) |
|
void | tcp_punt_unknown (vlib_main_t *vm, u8 is_ip4, u8 is_add) |
|
clib_error_t * | tcp_init (vlib_main_t *vm) |
|
static clib_error_t * | tcp_config_fn (vlib_main_t *vm, unformat_input_t *input) |
|
int | tcp_configure_v4_source_address_range (vlib_main_t *vm, ip4_address_t *start, ip4_address_t *end, u32 table_id) |
| Configure an ipv4 source address range. More...
|
|
int | tcp_configure_v6_source_address_range (vlib_main_t *vm, ip6_address_t *start, ip6_address_t *end, u32 table_id) |
| Configure an ipv6 source address range. More...
|
|
static clib_error_t * | tcp_src_address (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd_arg) |
|
static u8 * | tcp_scoreboard_dump_trace (u8 *s, sack_scoreboard_t *sb) |
|
static clib_error_t * | tcp_show_scoreboard_trace_fn (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd_arg) |
|
u8 * | tcp_scoreboard_replay (u8 *s, tcp_connection_t *tc, u8 verbose) |
|
static clib_error_t * | tcp_scoreboard_trace_fn (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd_arg) |
|
static clib_error_t * | show_tcp_punt_fn (vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd_arg) |
|
TCP host stack utilities.
Definition in file tcp.c.
Begin connection closing procedure.
If at the end the connection is not in CLOSED state, it is not removed. Instead, we rely on on TCP to advance through state machine to either 1) LAST_ACK (passive close) whereby when the last ACK is received tcp_connection_del is called. This notifies session of the delete and calls cleanup. 2) TIME_WAIT (active close) whereby after 2MSL the 2MSL timer triggers and cleanup is called.
N.B. Half-close connections are not supported
Definition at line 270 of file tcp.c.