|
static u32 | tcp_connection_bind (u32 session_index, ip46_address_t *ip, u16 port_host_byte_order, u8 is_ip4) |
|
u32 | tcp_session_bind_ip4 (u32 session_index, ip46_address_t *ip, u16 port_host_byte_order) |
|
u32 | tcp_session_bind_ip6 (u32 session_index, ip46_address_t *ip, u16 port_host_byte_order) |
|
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_connection_cleanup (tcp_connection_t *tc) |
| Cleans up connection state. More...
|
|
void | tcp_connection_del (tcp_connection_t *tc) |
| Connection removal. More...
|
|
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 * | ip_interface_get_first_ip (u32 sw_if_index, u8 is_ip4) |
|
u16 | tcp_allocate_local_port (tcp_main_t *tm, ip46_address_t *ip) |
| Allocate local port and add if successful add entry to local endpoint table to mark the pair as used. More...
|
|
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...
|
|
static void | tcp_connection_select_lb_bucket (tcp_connection_t *tc, const dpo_id_t *dpo, dpo_id_t *result) |
|
fib_node_index_t | tcp_lookup_rmt_in_fib (tcp_connection_t *tc) |
|
static int | tcp_connection_stack_on_fib_entry (tcp_connection_t *tc) |
|
static void | tcp_connection_fib_attach (tcp_connection_t *tc) |
| Stack tcp connection on peer's fib entry. More...
|
|
void | tcp_connection_init_vars (tcp_connection_t *tc) |
| Initialize tcp connection variables. More...
|
|
int | tcp_connection_open (ip46_address_t *rmt_addr, u16 rmt_port, u8 is_ip4) |
|
int | tcp_session_open_ip4 (ip46_address_t *addr, u16 port) |
|
int | tcp_session_open_ip6 (ip46_address_t *addr, u16 port) |
|
u8 * | format_tcp_state (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_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_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) |
|
clib_error_t * | tcp_init (vlib_main_t *vm) |
|
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 194 of file tcp.c.
Initialize tcp connection variables.
Should be called after having received a msg from the peer, i.e., a SYN or a SYNACK, such that connection options have already been exchanged.
Definition at line 444 of file tcp.c.