FD.io VPP  v21.10.1-2-g0a485f517
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.

Data Structures

struct  tcp_add_del_adj_args_t
 

Functions

static void tcp_add_del_adj_cb (tcp_add_del_adj_args_t *args)
 
static void tcp_add_del_adjacency (tcp_connection_t *tc, u8 is_add)
 
static void tcp_cc_init (tcp_connection_t *tc)
 
static void tcp_cc_cleanup (tcp_connection_t *tc)
 
void tcp_cc_algo_register (tcp_cc_algorithm_type_e type, const tcp_cc_algorithm_t *vft)
 Register exiting cc algo type. More...
 
tcp_cc_algorithm_ttcp_cc_algo_get (tcp_cc_algorithm_type_e type)
 
tcp_cc_algorithm_type_e tcp_cc_algo_new_type (const tcp_cc_algorithm_t *vft)
 Register new cc algo type. More...
 
static u32 tcp_connection_bind (u32 session_index, transport_endpoint_t *lcl)
 
static u32 tcp_session_bind (u32 session_index, transport_endpoint_t *tep)
 
static void tcp_connection_unbind (u32 listener_index)
 
static u32 tcp_session_unbind (u32 listener_index)
 
static transport_connection_ttcp_session_get_listener (u32 listener_index)
 
static tcp_connection_ttcp_half_open_connection_alloc (void)
 
static void tcp_half_open_connection_free (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...
 
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_ttcp_connection_alloc (u8 thread_index)
 
tcp_connection_ttcp_connection_alloc_w_base (u8 thread_index, tcp_connection_t **base)
 
void tcp_connection_free (tcp_connection_t *tc)
 
void tcp_program_cleanup (tcp_worker_ctx_t *wrk, tcp_connection_t *tc)
 
void tcp_connection_close (tcp_connection_t *tc)
 Begin connection closing procedure. More...
 
static void tcp_session_half_close (u32 conn_index, u32 thread_index)
 
static void tcp_session_close (u32 conn_index, u32 thread_index)
 
static void tcp_session_cleanup (u32 conn_index, u32 thread_index)
 
static void tcp_session_cleanup_ho (u32 conn_index)
 
static void tcp_session_reset (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...
 
static u32 tcp_generate_random_iss (tcp_connection_t *tc)
 Generate random iss as per rfc6528. More...
 
static void tcp_init_rcv_mss (tcp_connection_t *tc)
 Initialize max segment size we're able to process. More...
 
static void tcp_init_mss (tcp_connection_t *tc)
 
void tcp_init_snd_vars (tcp_connection_t *tc)
 Initialize connection send variables. More...
 
void tcp_enable_pacing (tcp_connection_t *tc)
 
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)
 
static int tcp_session_open (transport_endpoint_cfg_t *rmt)
 
static u8format_tcp_session (u8 *s, va_list *args)
 
static u8format_tcp_listener_session (u8 *s, va_list *args)
 
static u8format_tcp_half_open_session (u8 *s, va_list *args)
 
static transport_connection_ttcp_session_get_transport (u32 conn_index, u32 thread_index)
 
static transport_connection_ttcp_half_open_session_get_transport (u32 conn_index)
 
static int tcp_set_attribute (tcp_connection_t *tc, transport_endpt_attr_t *attr)
 
static int tcp_get_attribute (tcp_connection_t *tc, transport_endpt_attr_t *attr)
 
static int tcp_session_attribute (u32 conn_index, u32 thread_index, u8 is_get, transport_endpt_attr_t *attr)
 
static u16 tcp_session_cal_goal_size (tcp_connection_t *tc)
 
static u32 tcp_round_snd_space (tcp_connection_t *tc, u32 snd_space)
 
static u32 tcp_snd_space_inline (tcp_connection_t *tc)
 Compute tx window session is allowed to fill. More...
 
u32 tcp_snd_space (tcp_connection_t *tc)
 
static int tcp_session_send_params (transport_connection_t *trans_conn, transport_send_params_t *sp)
 
static void tcp_timer_waitclose_handler (tcp_connection_t *tc)
 
static void tcp_dispatch_pending_timers (tcp_worker_ctx_t *wrk)
 
static void tcp_handle_cleanups (tcp_worker_ctx_t *wrk, clib_time_type_t now)
 
static void tcp_update_time (f64 now, u8 thread_index)
 
static void tcp_session_flush_data (transport_connection_t *tconn)
 
static int tcp_session_app_rx_evt (transport_connection_t *conn)
 
void tcp_connection_tx_pacer_update (tcp_connection_t *tc)
 
void tcp_connection_tx_pacer_reset (tcp_connection_t *tc, u32 window, u32 start_bucket)
 
void tcp_reschedule (tcp_connection_t *tc)
 
static void tcp_expired_timers_dispatch (u32 *expired_timers)
 
static void tcp_initialize_iss_seed (tcp_main_t *tm)
 
static clib_error_ttcp_main_enable (vlib_main_t *vm)
 
clib_error_tvnet_tcp_enable_disable (vlib_main_t *vm, u8 is_en)
 
void tcp_punt_unknown (vlib_main_t *vm, u8 is_ip4, u8 is_add)
 
static void tcp_configuration_init (void)
 Initialize default values for tcp parameters. More...
 
static clib_error_ttcp_init (vlib_main_t *vm)
 

Variables

tcp_main_t tcp_main
 
static timer_expiration_handlertimer_expiration_handlers [TCP_N_TIMERS]
 
const static transport_proto_vft_t tcp_proto
 

Detailed Description

TCP host stack utilities.

Definition in file tcp.c.

Function Documentation

◆ format_tcp_half_open_session()

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

Definition at line 877 of file tcp.c.

◆ format_tcp_listener_session()

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

Definition at line 863 of file tcp.c.

◆ format_tcp_session()

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

Definition at line 847 of file tcp.c.

+ Here is the call graph for this function:

◆ tcp_add_del_adj_cb()

static void tcp_add_del_adj_cb ( tcp_add_del_adj_args_t args)
static

Definition at line 40 of file tcp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ tcp_add_del_adjacency()

static void tcp_add_del_adjacency ( tcp_connection_t tc,
u8  is_add 
)
static

Definition at line 58 of file tcp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ tcp_alloc_custom_local_endpoint()

static int tcp_alloc_custom_local_endpoint ( tcp_main_t tm,
ip46_address_t *  lcl_addr,
u16 lcl_port,
u8  is_ip4 
)
static

Definition at line 757 of file tcp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ tcp_cc_algo_get()

tcp_cc_algorithm_t* tcp_cc_algo_get ( tcp_cc_algorithm_type_e  type)

Definition at line 96 of file tcp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ tcp_cc_algo_new_type()

tcp_cc_algorithm_type_e tcp_cc_algo_new_type ( const tcp_cc_algorithm_t vft)

Register new cc algo type.

Definition at line 103 of file tcp.c.

+ Here is the call graph for this function:

◆ tcp_cc_algo_register()

void tcp_cc_algo_register ( tcp_cc_algorithm_type_e  type,
const tcp_cc_algorithm_t vft 
)

Register exiting cc algo type.

Definition at line 85 of file tcp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ tcp_cc_cleanup()

static void tcp_cc_cleanup ( tcp_connection_t tc)
static

Definition at line 78 of file tcp.c.

+ Here is the caller graph for this function:

◆ tcp_cc_init()

static void tcp_cc_init ( tcp_connection_t tc)
static

Definition at line 72 of file tcp.c.

+ Here is the caller graph for this function:

◆ tcp_configuration_init()

static void tcp_configuration_init ( void  )
static

Initialize default values for tcp parameters.

Definition at line 1568 of file tcp.c.

+ Here is the caller graph for this function:

◆ tcp_connection_alloc()

tcp_connection_t* tcp_connection_alloc ( u8  thread_index)

Definition at line 287 of file tcp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ tcp_connection_alloc_w_base()

tcp_connection_t* tcp_connection_alloc_w_base ( u8  thread_index,
tcp_connection_t **  base 
)

Definition at line 300 of file tcp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ tcp_connection_bind()

static u32 tcp_connection_bind ( u32  session_index,
transport_endpoint_t lcl 
)
static

Definition at line 111 of file tcp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ tcp_connection_cleanup()

void tcp_connection_cleanup ( tcp_connection_t tc)

Cleans up connection state.

No notifications.

Definition at line 233 of file tcp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ tcp_connection_close()

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.

Definition at line 360 of file tcp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ tcp_connection_del()

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

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ tcp_connection_free()

void tcp_connection_free ( tcp_connection_t tc)

Definition at line 323 of file tcp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ tcp_connection_init_vars()

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

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ tcp_connection_timers_init()

void tcp_connection_timers_init ( tcp_connection_t tc)

Initialize all connection timers as invalid.

Definition at line 500 of file tcp.c.

+ Here is the caller graph for this function:

◆ tcp_connection_timers_reset()

void tcp_connection_timers_reset ( tcp_connection_t tc)

Stop all connection timers.

Definition at line 517 of file tcp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ tcp_connection_tx_pacer_reset()

void tcp_connection_tx_pacer_reset ( tcp_connection_t tc,
u32  window,
u32  start_bucket 
)

Definition at line 1380 of file tcp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ tcp_connection_tx_pacer_update()

void tcp_connection_tx_pacer_update ( tcp_connection_t tc)

Definition at line 1367 of file tcp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ tcp_connection_unbind()

static void tcp_connection_unbind ( u32  listener_index)
static

Definition at line 152 of file tcp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ tcp_dispatch_pending_timers()

static void tcp_dispatch_pending_timers ( tcp_worker_ctx_t wrk)
static

Definition at line 1228 of file tcp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ tcp_enable_pacing()

void tcp_enable_pacing ( tcp_connection_t tc)

Definition at line 715 of file tcp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ tcp_expired_timers_dispatch()

static void tcp_expired_timers_dispatch ( u32 expired_timers)
static

Definition at line 1398 of file tcp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ tcp_generate_random_iss()

static u32 tcp_generate_random_iss ( tcp_connection_t tc)
static

Generate random iss as per rfc6528.

Definition at line 627 of file tcp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ tcp_get_attribute()

static int tcp_get_attribute ( tcp_connection_t tc,
transport_endpt_attr_t attr 
)
static

Definition at line 973 of file tcp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ tcp_half_open_connection_alloc()

static tcp_connection_t* tcp_half_open_connection_alloc ( void  )
static

Definition at line 185 of file tcp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ tcp_half_open_connection_cleanup()

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

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ tcp_half_open_connection_free()

static void tcp_half_open_connection_free ( tcp_connection_t tc)
static

Cleanup half-open connection.

Definition at line 196 of file tcp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ tcp_half_open_session_get_transport()

static transport_connection_t* tcp_half_open_session_get_transport ( u32  conn_index)
static

Definition at line 907 of file tcp.c.

+ Here is the call graph for this function:

◆ tcp_handle_cleanups()

static void tcp_handle_cleanups ( tcp_worker_ctx_t wrk,
clib_time_type_t  now 
)
static

Definition at line 1271 of file tcp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ tcp_init()

static clib_error_t* tcp_init ( vlib_main_t vm)
static

Definition at line 1599 of file tcp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ tcp_init_mss()

static void tcp_init_mss ( tcp_connection_t tc)
static

Definition at line 665 of file tcp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ tcp_init_rcv_mss()

static void tcp_init_rcv_mss ( tcp_connection_t tc)
static

Initialize max segment size we're able to process.

The value is constrained by the output interface's MTU and by the size of the IP and TCP headers (see RFC6691). It is also what we advertise to our peer.

Definition at line 652 of file tcp.c.

+ Here is the caller graph for this function:

◆ tcp_init_snd_vars()

void tcp_init_snd_vars ( tcp_connection_t tc)

Initialize connection send variables.

Definition at line 694 of file tcp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ tcp_initialize_iss_seed()

static void tcp_initialize_iss_seed ( tcp_main_t tm)
static

Definition at line 1444 of file tcp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ tcp_main_enable()

static clib_error_t* tcp_main_enable ( vlib_main_t vm)
static

Definition at line 1454 of file tcp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ tcp_program_cleanup()

void tcp_program_cleanup ( tcp_worker_ctx_t wrk,
tcp_connection_t tc 
)

Definition at line 336 of file tcp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ tcp_punt_unknown()

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

Definition at line 1555 of file tcp.c.

+ Here is the caller graph for this function:

◆ tcp_reschedule()

void tcp_reschedule ( tcp_connection_t tc)

Definition at line 1391 of file tcp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ tcp_round_snd_space()

static u32 tcp_round_snd_space ( tcp_connection_t tc,
u32  snd_space 
)
inlinestatic

Definition at line 1034 of file tcp.c.

+ Here is the caller graph for this function:

◆ tcp_session_app_rx_evt()

static int tcp_session_app_rx_evt ( transport_connection_t conn)
static

Definition at line 1313 of file tcp.c.

+ Here is the call graph for this function:

◆ tcp_session_attribute()

static int tcp_session_attribute ( u32  conn_index,
u32  thread_index,
u8  is_get,
transport_endpt_attr_t attr 
)
static

Definition at line 1008 of file tcp.c.

+ Here is the call graph for this function:

◆ tcp_session_bind()

static u32 tcp_session_bind ( u32  session_index,
transport_endpoint_t tep 
)
static

Definition at line 146 of file tcp.c.

+ Here is the call graph for this function:

◆ tcp_session_cal_goal_size()

static u16 tcp_session_cal_goal_size ( tcp_connection_t tc)
static

Definition at line 1023 of file tcp.c.

+ Here is the caller graph for this function:

◆ tcp_session_cleanup()

static void tcp_session_cleanup ( u32  conn_index,
u32  thread_index 
)
static

Definition at line 461 of file tcp.c.

+ Here is the call graph for this function:

◆ tcp_session_cleanup_ho()

static void tcp_session_cleanup_ho ( u32  conn_index)
static

Definition at line 472 of file tcp.c.

+ Here is the call graph for this function:

◆ tcp_session_close()

static void tcp_session_close ( u32  conn_index,
u32  thread_index 
)
static

Definition at line 453 of file tcp.c.

+ Here is the call graph for this function:

◆ tcp_session_flush_data()

static void tcp_session_flush_data ( transport_connection_t tconn)
static

Definition at line 1303 of file tcp.c.

+ Here is the call graph for this function:

◆ tcp_session_get_listener()

static transport_connection_t* tcp_session_get_listener ( u32  listener_index)
static

Definition at line 176 of file tcp.c.

+ Here is the call graph for this function:

◆ tcp_session_get_transport()

static transport_connection_t* tcp_session_get_transport ( u32  conn_index,
u32  thread_index 
)
static

Definition at line 898 of file tcp.c.

+ Here is the call graph for this function:

◆ tcp_session_half_close()

static void tcp_session_half_close ( u32  conn_index,
u32  thread_index 
)
static

Definition at line 429 of file tcp.c.

+ Here is the call graph for this function:

◆ tcp_session_open()

static int tcp_session_open ( transport_endpoint_cfg_t rmt)
static

Definition at line 784 of file tcp.c.

+ Here is the call graph for this function:

◆ tcp_session_reset()

static void tcp_session_reset ( u32  conn_index,
u32  thread_index 
)
static

Definition at line 484 of file tcp.c.

+ Here is the call graph for this function:

◆ tcp_session_send_params()

static int tcp_session_send_params ( transport_connection_t trans_conn,
transport_send_params_t sp 
)
static

Definition at line 1104 of file tcp.c.

+ Here is the call graph for this function:

◆ tcp_session_unbind()

static u32 tcp_session_unbind ( u32  listener_index)
static

Definition at line 169 of file tcp.c.

+ Here is the call graph for this function:

◆ tcp_set_attribute()

static int tcp_set_attribute ( tcp_connection_t tc,
transport_endpt_attr_t attr 
)
static

Definition at line 914 of file tcp.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ tcp_snd_space()

u32 tcp_snd_space ( tcp_connection_t tc)

Definition at line 1098 of file tcp.c.

+ Here is the call graph for this function:

◆ tcp_snd_space_inline()

static u32 tcp_snd_space_inline ( tcp_connection_t tc)
inlinestatic

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

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ tcp_timer_waitclose_handler()

static void tcp_timer_waitclose_handler ( tcp_connection_t tc)
static

Definition at line 1132 of file tcp.c.

+ Here is the call graph for this function:

◆ tcp_update_time()

static void tcp_update_time ( f64  now,
u8  thread_index 
)
static

Definition at line 1292 of file tcp.c.

+ Here is the call graph for this function:

◆ vnet_tcp_enable_disable()

clib_error_t* vnet_tcp_enable_disable ( vlib_main_t vm,
u8  is_en 
)

Definition at line 1537 of file tcp.c.

+ Here is the call graph for this function:

Variable Documentation

◆ tcp_main

tcp_main_t tcp_main

Definition at line 28 of file tcp.c.

◆ tcp_proto

const static transport_proto_vft_t tcp_proto
static
Initial value:
= {
.start_listen = tcp_session_bind,
.stop_listen = tcp_session_unbind,
.push_header = tcp_session_push_header,
.get_connection = tcp_session_get_transport,
.get_listener = tcp_session_get_listener,
.attribute = tcp_session_attribute,
.connect = tcp_session_open,
.half_close = tcp_session_half_close,
.cleanup = tcp_session_cleanup,
.cleanup_ho = tcp_session_cleanup_ho,
.send_params = tcp_session_send_params,
.update_time = tcp_update_time,
.flush_data = tcp_session_flush_data,
.custom_tx = tcp_session_custom_tx,
.app_rx_evt = tcp_session_app_rx_evt,
.format_connection = format_tcp_session,
.format_listener = format_tcp_listener_session,
.format_half_open = format_tcp_half_open_session,
.transport_options = {
.name = "tcp",
.short_name = "T",
.tx_type = TRANSPORT_TX_PEEK,
.service_type = TRANSPORT_SERVICE_VC,
},
}

Definition at line 1334 of file tcp.c.

◆ timer_expiration_handlers

tcp_session_close
static void tcp_session_close(u32 conn_index, u32 thread_index)
Definition: tcp.c:453
tcp_session_app_rx_evt
static int tcp_session_app_rx_evt(transport_connection_t *conn)
Definition: tcp.c:1313
tcp_session_cleanup
static void tcp_session_cleanup(u32 conn_index, u32 thread_index)
Definition: tcp.c:461
tcp_timer_persist_handler
timer_expiration_handler tcp_timer_persist_handler
format_tcp_half_open_session
static u8 * format_tcp_half_open_session(u8 *s, va_list *args)
Definition: tcp.c:877
tcp_half_open_session_get_transport
static transport_connection_t * tcp_half_open_session_get_transport(u32 conn_index)
Definition: tcp.c:907
tcp_session_open
static int tcp_session_open(transport_endpoint_cfg_t *rmt)
Definition: tcp.c:784
tcp_session_unbind
static u32 tcp_session_unbind(u32 listener_index)
Definition: tcp.c:169
tcp_session_get_transport
static transport_connection_t * tcp_session_get_transport(u32 conn_index, u32 thread_index)
Definition: tcp.c:898
tcp_session_send_params
static int tcp_session_send_params(transport_connection_t *trans_conn, transport_send_params_t *sp)
Definition: tcp.c:1104
TRANSPORT_SERVICE_VC
@ TRANSPORT_SERVICE_VC
virtual circuit service
Definition: transport_types.h:39
tcp_session_get_listener
static transport_connection_t * tcp_session_get_listener(u32 listener_index)
Definition: tcp.c:176
TRANSPORT_TX_PEEK
@ TRANSPORT_TX_PEEK
reliable transport protos
Definition: transport_types.h:30
tcp_session_reset
static void tcp_session_reset(u32 conn_index, u32 thread_index)
Definition: tcp.c:484
tcp_timer_waitclose_handler
static void tcp_timer_waitclose_handler(tcp_connection_t *tc)
Definition: tcp.c:1132
tcp_session_cleanup_ho
static void tcp_session_cleanup_ho(u32 conn_index)
Definition: tcp.c:472
tcp_session_attribute
static int tcp_session_attribute(u32 conn_index, u32 thread_index, u8 is_get, transport_endpt_attr_t *attr)
Definition: tcp.c:1008
tcp_session_bind
static u32 tcp_session_bind(u32 session_index, transport_endpoint_t *tep)
Definition: tcp.c:146
tcp_session_custom_tx
int tcp_session_custom_tx(void *conn, transport_send_params_t *sp)
Definition: tcp_output.c:1994
tcp_update_time
static void tcp_update_time(f64 now, u8 thread_index)
Definition: tcp.c:1292
vnet_tcp_enable_disable
clib_error_t * vnet_tcp_enable_disable(vlib_main_t *vm, u8 is_en)
Definition: tcp.c:1537
tcp_session_flush_data
static void tcp_session_flush_data(transport_connection_t *tconn)
Definition: tcp.c:1303
tcp_session_push_header
u32 tcp_session_push_header(transport_connection_t *tconn, vlib_buffer_t *b)
Definition: tcp_output.c:972
tcp_timer_retransmit_handler
timer_expiration_handler tcp_timer_retransmit_handler
tcp_timer_retransmit_syn_handler
timer_expiration_handler tcp_timer_retransmit_syn_handler
tcp_session_half_close
static void tcp_session_half_close(u32 conn_index, u32 thread_index)
Definition: tcp.c:429
format_tcp_listener_session
static u8 * format_tcp_listener_session(u8 *s, va_list *args)
Definition: tcp.c:863
format_tcp_session
static u8 * format_tcp_session(u8 *s, va_list *args)
Definition: tcp.c:847