FD.io VPP  v17.10-9-gd594711
Vector Packet Processing
tcp.c File Reference

TCP host stack utilities. More...

+ Include dependency graph for tcp.c:

Go to the source code of this file.

Macros

#define PORT_MASK   ((1 << 16)- 1)
 

Functions

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)
 
static void transport_endpoint_del (u32 tepi)
 
static transport_endpoint_t * transport_endpoint_new (void)
 
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 * ip_interface_get_first_ip (u32 sw_if_index, u8 is_ip4)
 
int tcp_allocate_local_port (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...
 
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...
 
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_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_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)
 

Variables

tcp_main_t tcp_main
 
const char * tcp_dbg_evt_str []
 
const char * tcp_fsm_states []
 
const char * tcp_conn_timers []
 
static const transport_proto_vft_t tcp_proto
 
static timer_expiration_handler * timer_expiration_handlers [TCP_N_TIMERS]
 
static vlib_cli_command_t tcp_src_address_command
 (constructor) VLIB_CLI_COMMAND (tcp_src_address_command) More...
 
static vlib_cli_command_t tcp_show_scoreboard_trace_command
 (constructor) VLIB_CLI_COMMAND (tcp_show_scoreboard_trace_command) More...
 
static vlib_cli_command_t tcp_replay_scoreboard_command
 (constructor) VLIB_CLI_COMMAND (tcp_replay_scoreboard_command) More...
 
static vlib_cli_command_t show_tcp_punt_command
 (constructor) VLIB_CLI_COMMAND (show_tcp_punt_command) More...
 

Detailed Description

TCP host stack utilities.

Definition in file tcp.c.

Macro Definition Documentation

#define PORT_MASK   ((1 << 16)- 1)

Definition at line 387 of file tcp.c.

Function Documentation

u8* format_tcp_congestion_status ( u8 *  s,
va_list *  args 
)

Definition at line 790 of file tcp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u8* format_tcp_connection ( u8 *  s,
va_list *  args 
)

Definition at line 865 of file tcp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u8* format_tcp_connection_id ( u8 *  s,
va_list *  args 
)

Definition at line 841 of file tcp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u8* format_tcp_half_open_session ( u8 *  s,
va_list *  args 
)

Definition at line 908 of file tcp.c.

+ Here is the call graph for this function:

u8* format_tcp_listener_session ( u8 *  s,
va_list *  args 
)

Definition at line 900 of file tcp.c.

+ Here is the call graph for this function:

u8* format_tcp_rcv_sacks ( u8 *  s,
va_list *  args 
)

Definition at line 940 of file tcp.c.

+ Here is the call graph for this function:

u8* format_tcp_sack_hole ( u8 *  s,
va_list *  args 
)

Definition at line 964 of file tcp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u8* format_tcp_sacks ( u8 *  s,
va_list *  args 
)

Definition at line 916 of file tcp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u8* format_tcp_scoreboard ( u8 *  s,
va_list *  args 
)

Definition at line 976 of file tcp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u8* format_tcp_session ( u8 *  s,
va_list *  args 
)

Definition at line 884 of file tcp.c.

+ Here is the call graph for this function:

u8* format_tcp_state ( u8 *  s,
va_list *  args 
)

Definition at line 747 of file tcp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u8* format_tcp_timers ( u8 *  s,
va_list *  args 
)

Definition at line 765 of file tcp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u8* format_tcp_vars ( u8 *  s,
va_list *  args 
)

Definition at line 803 of file tcp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void* ip_interface_get_first_ip ( u32  sw_if_index,
u8  is_ip4 
)

Definition at line 355 of file tcp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static clib_error_t* show_tcp_punt_fn ( vlib_main_t *  vm,
unformat_input_t *  input,
vlib_cli_command_t *  cmd_arg 
)
static

Definition at line 1915 of file tcp.c.

+ Here is the call graph for this function:

int tcp_allocate_local_port ( ip46_address_t *  ip)

Allocate local port and add if successful add entry to local endpoint table to mark the pair as used.

Definition at line 393 of file tcp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static clib_error_t* tcp_config_fn ( vlib_main_t *  vm,
unformat_input_t *  input 
)
static

Definition at line 1431 of file tcp.c.

+ Here is the call graph for this function:

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.

Parameters
vmvlib_main_t pointer
startfirst ipv4 address in the source address range
endlast ipv4 address in the source address range
table_idVRF / table ID, 0 for the default FIB
Returns
0 if all OK, else an error indication from api_errno.h

Definition at line 1478 of file tcp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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.

Parameters
vmvlib_main_t pointer
startfirst ipv6 address in the source address range
endlast ipv6 address in the source address range
table_idVRF / table ID, 0 for the default FIB
Returns
0 if all OK, else an error indication from api_errno.h

Definition at line 1570 of file tcp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u32 tcp_connection_bind ( u32  session_index,
transport_endpoint_t *  lcl 
)
static

Definition at line 32 of file tcp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void tcp_connection_cleanup ( tcp_connection_t *  tc)

Cleans up connection state.

No notifications.

Definition at line 176 of file tcp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void tcp_connection_close ( tcp_connection_t *  tc)

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 295 of file tcp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void tcp_connection_del ( tcp_connection_t *  tc)

Connection removal.

This should be called only once connection enters CLOSED state. Note that it notifies the session of the removal event, so if the goal is to just remove the connection, call tcp_connection_cleanup instead.

Definition at line 222 of file tcp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void tcp_connection_init_vars ( tcp_connection_t *  tc)

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 593 of file tcp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

tcp_connection_t* tcp_connection_new ( u8  thread_index)

Definition at line 230 of file tcp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int tcp_connection_open ( transport_endpoint_t *  rmt)

Definition at line 606 of file tcp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void tcp_connection_reset ( tcp_connection_t *  tc)

Notify session that connection has been reset.

Switch state to closed and wait for session to call cleanup.

Definition at line 247 of file tcp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void tcp_connection_timers_init ( tcp_connection_t *  tc)

Initialize all connection timers as invalid.

Definition at line 442 of file tcp.c.

+ Here is the caller graph for this function:

void tcp_connection_timers_reset ( tcp_connection_t *  tc)

Stop all connection timers.

Definition at line 459 of file tcp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void tcp_connection_unbind ( u32  listener_index)
static

Definition at line 72 of file tcp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static void tcp_expired_timers_dispatch ( u32 *  expired_timers)
static

Definition at line 1243 of file tcp.c.

+ Here is the caller graph for this function:

int tcp_half_open_connection_cleanup ( tcp_connection_t *  tc)

Try to cleanup half-open connection.

If called from a thread that doesn't own tc, the call won't have any effect.

Parameters
tc- connection to be cleaned up
Returns
non-zero if cleanup failed.

Definition at line 147 of file tcp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void tcp_half_open_connection_del ( tcp_connection_t *  tc)

Cleanup half-open connection.

Definition at line 127 of file tcp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

tcp_connection_t* tcp_half_open_connection_new ( void  )

Definition at line 159 of file tcp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

transport_connection_t* tcp_half_open_session_get_transport ( u32  conn_index)

Definition at line 1009 of file tcp.c.

+ Here is the call graph for this function:

clib_error_t* tcp_init ( vlib_main_t *  vm)

Definition at line 1420 of file tcp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void tcp_init_snd_vars ( tcp_connection_t *  tc)

Initialize connection send variables.

Definition at line 569 of file tcp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void tcp_initialize_timer_wheels ( tcp_main_t *  tm)

Definition at line 1262 of file tcp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

clib_error_t* tcp_main_enable ( vlib_main_t *  vm)

Definition at line 1276 of file tcp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void tcp_punt_unknown ( vlib_main_t *  vm,
u8  is_ip4,
u8  is_add 
)

Definition at line 1410 of file tcp.c.

+ Here is the caller graph for this function:

i32 tcp_rcv_wnd_available ( tcp_connection_t *  tc)

Definition at line 1120 of file tcp.c.

+ Here is the caller graph for this function:

static u32 tcp_round_snd_space ( tcp_connection_t *  tc,
u32  snd_space 
)
inlinestatic

Definition at line 1036 of file tcp.c.

+ Here is the caller graph for this function:

static u8* tcp_scoreboard_dump_trace ( u8 *  s,
sack_scoreboard_t *  sb 
)
static

Definition at line 1731 of file tcp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

u8* tcp_scoreboard_replay ( u8 *  s,
tcp_connection_t *  tc,
u8  verbose 
)

Definition at line 1794 of file tcp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static clib_error_t* tcp_scoreboard_trace_fn ( vlib_main_t *  vm,
unformat_input_t *  input,
vlib_cli_command_t *  cmd_arg 
)
static

Definition at line 1872 of file tcp.c.

+ Here is the call graph for this function:

u32 tcp_session_bind ( u32  session_index,
transport_endpoint_t *  tep 
)

Definition at line 66 of file tcp.c.

+ Here is the call graph for this function:

void tcp_session_cleanup ( u32  conn_index,
u32  thread_index 
)

Definition at line 343 of file tcp.c.

+ Here is the call graph for this function:

void tcp_session_close ( u32  conn_index,
u32  thread_index 
)

Definition at line 335 of file tcp.c.

+ Here is the call graph for this function:

transport_connection_t* tcp_session_get_listener ( u32  listener_index)

Definition at line 96 of file tcp.c.

+ Here is the call graph for this function:

transport_connection_t* tcp_session_get_transport ( u32  conn_index,
u32  thread_index 
)

Definition at line 1002 of file tcp.c.

+ Here is the call graph for this function:

int tcp_session_open ( transport_endpoint_t *  tep)

Definition at line 729 of file tcp.c.

+ Here is the call graph for this function:

u16 tcp_session_send_mss ( transport_connection_t *  trans_conn)

Compute maximum segment size for session layer.

Since the result needs to be the actual data length, it first computes the tcp options to be used in the next burst and subtracts their length from the connection's snd_mss.

Definition at line 1023 of file tcp.c.

+ Here is the call graph for this function:

u32 tcp_session_send_space ( transport_connection_t *  trans_conn)

Definition at line 1112 of file tcp.c.

+ Here is the call graph for this function:

u32 tcp_session_tx_fifo_offset ( transport_connection_t *  trans_conn)

Definition at line 1126 of file tcp.c.

u32 tcp_session_unbind ( u32  listener_index)

Definition at line 89 of file tcp.c.

+ Here is the call graph for this function:

static clib_error_t* tcp_show_scoreboard_trace_fn ( vlib_main_t *  vm,
unformat_input_t *  input,
vlib_cli_command_t *  cmd_arg 
)
static

Definition at line 1756 of file tcp.c.

+ Here is the call graph for this function:

u32 tcp_snd_space ( tcp_connection_t *  tc)

Compute tx window session is allowed to fill.

Takes into account available send space, snd_mss and the congestion state of the connection. If possible, the value returned is a multiple of snd_mss.

Parameters
tctcp connection
Returns
number of bytes session is allowed to write

Definition at line 1063 of file tcp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static clib_error_t* tcp_src_address ( vlib_main_t *  vm,
unformat_input_t *  input,
vlib_cli_command_t *  cmd_arg 
)
static

Definition at line 1643 of file tcp.c.

+ Here is the call graph for this function:

void tcp_timer_establish_handler ( u32  conn_index)

Definition at line 1169 of file tcp.c.

+ Here is the call graph for this function:

void tcp_timer_keep_handler ( u32  conn_index)

Definition at line 1157 of file tcp.c.

+ Here is the call graph for this function:

void tcp_timer_waitclose_handler ( u32  conn_index)

Definition at line 1197 of file tcp.c.

+ Here is the call graph for this function:

static void transport_endpoint_del ( u32  tepi)
inlinestatic

Definition at line 105 of file tcp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static transport_endpoint_t* transport_endpoint_new ( void  )
inlinestatic

Definition at line 114 of file tcp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

clib_error_t* vnet_tcp_enable_disable ( vlib_main_t *  vm,
u8  is_en 
)

Definition at line 1392 of file tcp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Variable Documentation

vlib_cli_command_t show_tcp_punt_command
static
Initial value:
=
{
.path = "show tcp punt",
.short_help = "show tcp punt",
.function = show_tcp_punt_fn,
}
static clib_error_t * show_tcp_punt_fn(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd_arg)
Definition: tcp.c:1915

(constructor) VLIB_CLI_COMMAND (show_tcp_punt_command)

Definition at line 1929 of file tcp.c.

const char* tcp_conn_timers[]
Initial value:
= {
#define _(sym, str)
}
#define foreach_tcp_timer
TCP timers.
Definition: tcp.h:69

Definition at line 758 of file tcp.c.

const char* tcp_dbg_evt_str[]
Initial value:
= {
#define _(sym, str)
}

Definition at line 734 of file tcp.c.

const char* tcp_fsm_states[]
Initial value:
= {
#define _(sym, str)
}
#define foreach_tcp_fsm_state
TCP FSM state definitions as per RFC793.
Definition: tcp.h:42

Definition at line 740 of file tcp.c.

tcp_main_t tcp_main

Definition at line 29 of file tcp.c.

const transport_proto_vft_t tcp_proto
static
Initial value:
= {
.unbind = tcp_session_unbind,
.push_header = tcp_push_header,
.get_connection = tcp_session_get_transport,
.get_listener = tcp_session_get_listener,
.cleanup = tcp_session_cleanup,
.send_mss = tcp_session_send_mss,
.send_space = tcp_session_send_space,
.tx_fifo_offset = tcp_session_tx_fifo_offset,
.format_connection = format_tcp_session,
.format_listener = format_tcp_listener_session,
.format_half_open = format_tcp_half_open_session,
}
u32 tcp_session_unbind(u32 listener_index)
Definition: tcp.c:89
u32 tcp_session_bind(u32 session_index, transport_endpoint_t *tep)
Definition: tcp.c:66
transport_connection_t * tcp_half_open_session_get_transport(u32 conn_index)
Definition: tcp.c:1009
u32 tcp_session_tx_fifo_offset(transport_connection_t *trans_conn)
Definition: tcp.c:1126
transport_connection_t * tcp_session_get_listener(u32 listener_index)
Definition: tcp.c:96
void tcp_session_cleanup(u32 conn_index, u32 thread_index)
Definition: tcp.c:343
u32 tcp_push_header(transport_connection_t *tconn, vlib_buffer_t *b)
Definition: tcp_output.c:1955
void tcp_session_close(u32 conn_index, u32 thread_index)
Definition: tcp.c:335
u8 * format_tcp_half_open_session(u8 *s, va_list *args)
Definition: tcp.c:908
u8 * format_tcp_session(u8 *s, va_list *args)
Definition: tcp.c:884
u16 tcp_session_send_mss(transport_connection_t *trans_conn)
Compute maximum segment size for session layer.
Definition: tcp.c:1023
int tcp_session_open(transport_endpoint_t *tep)
Definition: tcp.c:729
u32 tcp_session_send_space(transport_connection_t *trans_conn)
Definition: tcp.c:1112
transport_connection_t * tcp_session_get_transport(u32 conn_index, u32 thread_index)
Definition: tcp.c:1002
u8 * format_tcp_listener_session(u8 *s, va_list *args)
Definition: tcp.c:900

Definition at line 1137 of file tcp.c.

vlib_cli_command_t tcp_replay_scoreboard_command
static
Initial value:
=
{
.path = "tcp replay scoreboard",
.short_help = "tcp replay scoreboard <connection>",
}
static clib_error_t * tcp_scoreboard_trace_fn(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd_arg)
Definition: tcp.c:1872

(constructor) VLIB_CLI_COMMAND (tcp_replay_scoreboard_command)

Definition at line 1906 of file tcp.c.

vlib_cli_command_t tcp_show_scoreboard_trace_command
static
Initial value:
=
{
.path = "show tcp scoreboard trace",
.short_help = "show tcp scoreboard trace <connection>",
}
static clib_error_t * tcp_show_scoreboard_trace_fn(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd_arg)
Definition: tcp.c:1756

(constructor) VLIB_CLI_COMMAND (tcp_show_scoreboard_trace_command)

Definition at line 1785 of file tcp.c.

vlib_cli_command_t tcp_src_address_command
static
Initial value:
=
{
.path = "tcp src-address",
.short_help = "tcp src-address <ip-addr> [- <ip-addr>] add src address range",
.function = tcp_src_address,
}
static clib_error_t * tcp_src_address(vlib_main_t *vm, unformat_input_t *input, vlib_cli_command_t *cmd_arg)
Definition: tcp.c:1643

(constructor) VLIB_CLI_COMMAND (tcp_src_address_command)

Definition at line 1722 of file tcp.c.

timer_expiration_handler* timer_expiration_handlers[TCP_N_TIMERS]
static
Initial value:
=
{
}
void tcp_timer_keep_handler(u32 conn_index)
Definition: tcp.c:1157
timer_expiration_handler tcp_timer_retransmit_handler
void tcp_timer_establish_handler(u32 conn_index)
Definition: tcp.c:1169
timer_expiration_handler tcp_timer_retransmit_syn_handler
timer_expiration_handler tcp_timer_persist_handler
void tcp_timer_waitclose_handler(u32 conn_index)
Definition: tcp.c:1197
timer_expiration_handler tcp_timer_delack_handler

Definition at line 1230 of file tcp.c.