![]() |
FD.io VPP
v20.05.1-6-gf53edbc3b
Vector Packet Processing
|
Include dependency graph for tcp_output.c:Go to the source code of this file.
Data Structures | |
| struct | tcp_tx_trace_t |
Macros | |
| #define | foreach_tcp4_output_next |
| #define | foreach_tcp6_output_next |
| #define | tcp_error(n, s) s, |
| #define | scoreboard_rescue_rxt_valid(_sb, _tc) |
| #define | foreach_tcp4_reset_next |
| #define | foreach_tcp6_reset_next |
Typedefs | |
| typedef enum _tcp_output_next | tcp_output_next_t |
| typedef enum _tcp_reset_next | tcp_reset_next_t |
Variables | |
| static char * | tcp_error_strings [] |
| vlib_node_registration_t | tcp4_output_node |
| (constructor) VLIB_REGISTER_NODE (tcp4_output_node) More... | |
| vlib_node_registration_t | tcp6_output_node |
| (constructor) VLIB_REGISTER_NODE (tcp6_output_node) More... | |
| vlib_node_registration_t | tcp4_reset_node |
| (constructor) VLIB_REGISTER_NODE (tcp4_reset_node) More... | |
| vlib_node_registration_t | tcp6_reset_node |
| (constructor) VLIB_REGISTER_NODE (tcp6_reset_node) More... | |
| #define foreach_tcp4_output_next |
Definition at line 29 of file tcp_output.c.
| #define foreach_tcp4_reset_next |
Definition at line 2347 of file tcp_output.c.
| #define foreach_tcp6_output_next |
Definition at line 35 of file tcp_output.c.
| #define foreach_tcp6_reset_next |
Definition at line 2351 of file tcp_output.c.
| #define scoreboard_rescue_rxt_valid | ( | _sb, | |
| _tc | |||
| ) |
Definition at line 1694 of file tcp_output.c.
| #define tcp_error | ( | n, | |
| s | |||
| ) | s, |
| typedef enum _tcp_output_next tcp_output_next_t |
| typedef enum _tcp_reset_next tcp_reset_next_t |
| u16 ip4_tcp_compute_checksum_custom | ( | vlib_main_t * | vm, |
| vlib_buffer_t * | p0, | ||
| ip46_address_t * | src, | ||
| ip46_address_t * | dst | ||
| ) |
Definition at line 392 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:| u16 ip6_tcp_compute_checksum_custom | ( | vlib_main_t * | vm, |
| vlib_buffer_t * | p0, | ||
| ip46_address_t * | src, | ||
| ip46_address_t * | dst | ||
| ) |
Definition at line 366 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlinestatic |
Definition at line 2176 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Definition at line 2076 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Definition at line 2356 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:| VLIB_NODE_FN() tcp4_output_node | ( | vlib_main_t * | vm, |
| vlib_node_runtime_t * | node, | ||
| vlib_frame_t * | from_frame | ||
| ) |
| VLIB_NODE_FN() tcp4_reset_node | ( | vlib_main_t * | vm, |
| vlib_node_runtime_t * | node, | ||
| vlib_frame_t * | from_frame | ||
| ) |
| VLIB_NODE_FN() tcp6_output_node | ( | vlib_main_t * | vm, |
| vlib_node_runtime_t * | node, | ||
| vlib_frame_t * | from_frame | ||
| ) |
| VLIB_NODE_FN() tcp6_reset_node | ( | vlib_main_t * | vm, |
| vlib_node_runtime_t * | node, | ||
| vlib_frame_t * | from_frame | ||
| ) |
|
inlinestatic |
|
static |
Reset congestion control, switch cwnd to loss window and try again.
Definition at line 1277 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlinestatic |
|
static |
Definition at line 1261 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlinestatic |
Definition at line 412 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Definition at line 1992 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Definition at line 539 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Definition at line 561 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:| int tcp_fastrecovery_prr_snd_space | ( | tcp_connection_t * | tc | ) |
Estimate send space using proportional rate reduction (RFC6937)
Definition at line 1651 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Definition at line 351 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:| u32 tcp_initial_window_to_advertise | ( | tcp_connection_t * | tc | ) |
Compute initial window and scale factor.
As per RFC1323, window field in SYN and SYN-ACK segments is never scaled.
Definition at line 102 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlinestatic |
TCP's initial window.
Definition at line 83 of file tcp_output.c.
Here is the caller graph for this function:
|
inlinestatic |
Convert buffer to ACK.
Definition at line 471 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlinestatic |
Prepare ACK.
Definition at line 438 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Definition at line 233 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Convert buffer to FIN-ACK.
Definition at line 482 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlinestatic |
Definition at line 268 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Definition at line 574 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void tcp_make_syn | ( | tcp_connection_t * | tc, |
| vlib_buffer_t * | b | ||
| ) |
Convert buffer to SYN.
Definition at line 491 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Definition at line 169 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Convert buffer to SYN-ACK.
Definition at line 517 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Definition at line 198 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlinestatic |
Definition at line 1688 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Definition at line 2044 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlinestatic |
Definition at line 2140 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlinestatic |
Definition at line 2100 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Build a retransmit segment.
Definition at line 1218 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Allocate a new buffer and build a new tcp segment.
| wrk | tcp worker | |
| tc | connection for which the segment will be allocated | |
| offset | offset of the first byte in the tx fifo | |
| max_deq_byte | segment size | |
| [out] | b | pointer to buffer allocated |
Definition at line 1106 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void tcp_program_ack | ( | tcp_connection_t * | tc | ) |
Definition at line 1030 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void tcp_program_dupack | ( | tcp_connection_t * | tc | ) |
Definition at line 1040 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void tcp_program_retransmit | ( | tcp_connection_t * | tc | ) |
Definition at line 1052 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlinestatic |
Push TCP header and update connection variables.
Should only be called for segments with data, not for 'control' packets.
Definition at line 909 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Definition at line 775 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:| int tcp_retransmit_first_unacked | ( | tcp_worker_ctx_t * | wrk, |
| tcp_connection_t * | tc | ||
| ) |
Retransmit first unacked segment.
Definition at line 1592 of file tcp_output.c.
Here is the call graph for this function:
|
static |
Fast retransmit without SACK info.
Definition at line 1856 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Do retransmit with SACKs.
Definition at line 1702 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlinestatic |
|
static |
Definition at line 334 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void tcp_send_ack | ( | tcp_connection_t * | tc | ) |
Definition at line 1011 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Definition at line 1937 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void tcp_send_fin | ( | tcp_connection_t * | tc | ) |
Send FIN.
Definition at line 860 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void tcp_send_reset | ( | tcp_connection_t * | tc | ) |
Build and set reset packet for connection.
Definition at line 742 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void tcp_send_reset_w_pkt | ( | tcp_connection_t * | tc, |
| vlib_buffer_t * | pkt, | ||
| u32 | thread_index, | ||
| u8 | is_ip4 | ||
| ) |
Send reset without reusing existing buffer.
It extracts connection info out of original packet
Definition at line 657 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void tcp_send_syn | ( | tcp_connection_t * | tc | ) |
Send SYN.
Builds a SYN packet for a half-open connection and sends it to ipx_lookup. The packet is not forwarded through tcpx_output to avoid doing lookups in the half_open pool.
Definition at line 798 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void tcp_send_synack | ( | tcp_connection_t * | tc | ) |
Definition at line 833 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void tcp_send_window_update_ack | ( | tcp_connection_t * | tc | ) |
Send window update ack.
Ensures that it will be sent only once, after a zero rwnd has been advertised in a previous ack, and only if rwnd has grown beyond a configurable value.
Definition at line 1080 of file tcp_output.c.
Here is the call graph for this function:| int tcp_session_custom_tx | ( | void * | conn, |
| transport_send_params_t * | sp | ||
| ) |
| u32 tcp_session_push_header | ( | transport_connection_t * | tconn, |
| vlib_buffer_t * | b | ||
| ) |
| void tcp_timer_delack_handler | ( | tcp_connection_t * | tc | ) |
Delayed ack timer handler.
Sends delayed ACK when timer expires
Definition at line 1067 of file tcp_output.c.
Here is the call graph for this function:| void tcp_timer_persist_handler | ( | tcp_connection_t * | tc | ) |
Got 0 snd_wnd from peer, try to do something about it.
Definition at line 1509 of file tcp_output.c.
Here is the call graph for this function:| void tcp_timer_retransmit_handler | ( | tcp_connection_t * | tc | ) |
| void tcp_timer_retransmit_syn_handler | ( | tcp_connection_t * | tc | ) |
SYN retransmit timer handler.
Active open only.
Definition at line 1446 of file tcp_output.c.
Here is the call graph for this function:
|
static |
Definition at line 1611 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void tcp_update_burst_snd_vars | ( | tcp_connection_t * | tc | ) |
Update burst send vars.
This should only be called when doing bursts
Definition at line 303 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlinestatic |
Definition at line 114 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlinestatic |
Compute and return window to advertise, scaled as per RFC1323.
Definition at line 159 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:| vlib_node_registration_t tcp4_output_node |
(constructor) VLIB_REGISTER_NODE (tcp4_output_node)
Definition at line 2301 of file tcp_output.c.
| vlib_node_registration_t tcp4_reset_node |
(constructor) VLIB_REGISTER_NODE (tcp4_reset_node)
Definition at line 2428 of file tcp_output.c.
| vlib_node_registration_t tcp6_output_node |
(constructor) VLIB_REGISTER_NODE (tcp6_output_node)
Definition at line 2321 of file tcp_output.c.
| vlib_node_registration_t tcp6_reset_node |
(constructor) VLIB_REGISTER_NODE (tcp6_reset_node)
Definition at line 2444 of file tcp_output.c.
|
static |
Definition at line 41 of file tcp_output.c.