![]() |
FD.io VPP
v17.04-9-g99c0734
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 | tcp_get_free_buffer_index(tm, bidx) |
| #define | foreach_tcp4_reset_next |
| #define | foreach_tcp6_reset_next |
Typedefs | |
| typedef enum _tcp_output_nect | tcp_output_next_t |
| typedef enum _tcp_reset_next | tcp_reset_next_t |
Variables | |
| 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... | |
| static char * | tcp_error_strings [] |
| u16 | dummy_mtu = 400 |
| 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 1352 of file tcp_output.c.
| #define foreach_tcp6_output_next |
Definition at line 33 of file tcp_output.c.
| #define foreach_tcp6_reset_next |
Definition at line 1356 of file tcp_output.c.
| #define tcp_error | ( | n, | |
| s | |||
| ) | s, |
| #define tcp_get_free_buffer_index | ( | tm, | |
| bidx | |||
| ) |
Definition at line 363 of file tcp_output.c.
| typedef enum _tcp_output_nect tcp_output_next_t |
| typedef enum _tcp_reset_next tcp_reset_next_t |
|
inlinestatic |
Definition at line 1143 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 1361 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
|
static |
|
static |
|
static |
|
inlinestatic |
Definition at line 510 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 788 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void tcp_fast_retransmit | ( | tcp_connection_t * | tc | ) |
Definition at line 1098 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 107 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlinestatic |
TCP's IW as recommended by RFC6928.
Definition at line 97 of file tcp_output.c.
Here is the caller graph for this function:| void tcp_make_ack | ( | tcp_connection_t * | tc, |
| vlib_buffer_t * | b | ||
| ) |
Convert buffer to ACK.
Definition at line 433 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void tcp_make_ack_i | ( | tcp_connection_t * | tc, |
| vlib_buffer_t * | b, | ||
| tcp_state_t | state, | ||
| u8 | flags | ||
| ) |
Prepare ACK.
Definition at line 406 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 315 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void tcp_make_fin | ( | tcp_connection_t * | tc, |
| vlib_buffer_t * | b | ||
| ) |
Convert buffer to FIN-ACK.
Definition at line 447 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 345 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:| int tcp_make_reset_in_place | ( | vlib_main_t * | vm, |
| vlib_buffer_t * | b0, | ||
| tcp_state_t | state, | ||
| u32 | my_thread_index, | ||
| u8 | is_ip4 | ||
| ) |
Definition at line 534 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlinestatic |
|
inlinestatic |
Definition at line 254 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void tcp_make_synack | ( | tcp_connection_t * | tc, |
| vlib_buffer_t * | b | ||
| ) |
Convert buffer to SYN-ACK.
Definition at line 468 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 280 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:| u32 tcp_options_write | ( | u8 * | data, |
| tcp_options_t * | opts | ||
| ) |
Write TCP options to segment.
Definition at line 171 of file tcp_output.c.
Here is the caller graph for this function:| u32 tcp_prepare_retransmit_segment | ( | tcp_connection_t * | tc, |
| vlib_buffer_t * | b, | ||
| u32 | max_bytes | ||
| ) |
Build a retransmit segment.
Definition at line 922 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Push TCP header and update connection variables.
Definition at line 854 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:| u32 tcp_push_header | ( | transport_connection_t * | tconn, |
| vlib_buffer_t * | b | ||
| ) |
Definition at line 1336 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void tcp_push_ip_hdr | ( | tcp_main_t * | tm, |
| tcp_connection_t * | tc, | ||
| vlib_buffer_t * | b | ||
| ) |
Definition at line 702 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void tcp_retransmit_first_unacked | ( | tcp_connection_t * | tc | ) |
Retansmit first unacked segment.
Definition at line 1077 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 385 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 811 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 | ( | vlib_buffer_t * | pkt, |
| u8 | is_ip4 | ||
| ) |
Send reset without reusing existing buffer.
Definition at line 629 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 734 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 1135 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void tcp_set_snd_mss | ( | tcp_connection_t * | tc | ) |
| void tcp_timer_delack_handler | ( | u32 | index | ) |
| void tcp_timer_retransmit_handler | ( | u32 | index | ) |
Definition at line 968 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void tcp_timer_retransmit_syn_handler | ( | u32 | index | ) |
| u32 tcp_window_to_advertise | ( | tcp_connection_t * | tc, |
| tcp_state_t | state | ||
| ) |
Compute and return window to advertise, scaled as per RFC1323.
Definition at line 126 of file tcp_output.c.
Here is the call graph for this function:
Here is the caller graph for this function:| VLIB_NODE_FUNCTION_MULTIARCH | ( | tcp4_output_node | , |
| tcp4_output | |||
| ) |
| VLIB_NODE_FUNCTION_MULTIARCH | ( | tcp6_output_node | , |
| tcp6_output | |||
| ) |
| VLIB_NODE_FUNCTION_MULTIARCH | ( | tcp4_reset_node | , |
| tcp4_send_reset | |||
| ) |
| VLIB_NODE_FUNCTION_MULTIARCH | ( | tcp6_reset_node | , |
| tcp6_send_reset | |||
| ) |
| u16 dummy_mtu = 400 |
Definition at line 50 of file tcp_output.c.
| vlib_node_registration_t tcp4_output_node |
(constructor) VLIB_REGISTER_NODE (tcp4_output_node)
Definition at line 19 of file tcp_output.c.
| vlib_node_registration_t tcp4_reset_node |
(constructor) VLIB_REGISTER_NODE (tcp4_reset_node)
Definition at line 1436 of file tcp_output.c.
| vlib_node_registration_t tcp6_output_node |
(constructor) VLIB_REGISTER_NODE (tcp6_output_node)
Definition at line 20 of file tcp_output.c.
| vlib_node_registration_t tcp6_reset_node |
(constructor) VLIB_REGISTER_NODE (tcp6_reset_node)
Definition at line 1454 of file tcp_output.c.
|
static |
Definition at line 37 of file tcp_output.c.