![]() |
FD.io VPP
v20.05.1-6-gf53edbc3b
Vector Packet Processing
|
Include dependency graph for transport.h:
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Data Structures | |
| struct | transport_send_params_ |
Macros | |
| #define | TRANSPORT_PACER_MIN_MSS 1460 |
| #define | TRANSPORT_PACER_MIN_BURST TRANSPORT_PACER_MIN_MSS |
| #define | TRANSPORT_PACER_MAX_BURST (43 * TRANSPORT_PACER_MIN_MSS) |
| #define | TRANSPORT_PACER_MAX_BURST_PKTS 43 |
| #define | TRANSPORT_PACER_MIN_IDLE 100 |
| #define | TRANSPORT_PACER_IDLE_FACTOR 0.05 |
| #define | transport_proto_foreach(VAR, BODY) |
Typedefs | |
| typedef struct _transport_options_t | transport_options_t |
| typedef enum transport_snd_flags_ | transport_snd_flags_t |
| typedef struct transport_send_params_ | transport_send_params_t |
| typedef struct _transport_proto_vft | transport_proto_vft_t |
Enumerations | |
| enum | transport_snd_flags_ { TRANSPORT_SND_F_DESCHED = 1 << 0, TRANSPORT_SND_F_POSTPONE = 1 << 1, TRANSPORT_SND_N_FLAGS } |
Variables | |
| transport_proto_vft_t * | tp_vfts |
| Per-type vector of transport protocol virtual function tables. More... | |
| #define TRANSPORT_PACER_IDLE_FACTOR 0.05 |
Definition at line 27 of file transport.h.
| #define TRANSPORT_PACER_MAX_BURST (43 * TRANSPORT_PACER_MIN_MSS) |
Definition at line 24 of file transport.h.
| #define TRANSPORT_PACER_MAX_BURST_PKTS 43 |
Definition at line 25 of file transport.h.
| #define TRANSPORT_PACER_MIN_BURST TRANSPORT_PACER_MIN_MSS |
Definition at line 23 of file transport.h.
| #define TRANSPORT_PACER_MIN_IDLE 100 |
Definition at line 26 of file transport.h.
| #define TRANSPORT_PACER_MIN_MSS 1460 |
Definition at line 22 of file transport.h.
| #define transport_proto_foreach | ( | VAR, | |
| BODY | |||
| ) |
Definition at line 126 of file transport.h.
| typedef struct _transport_options_t transport_options_t |
| typedef struct _transport_proto_vft transport_proto_vft_t |
| typedef struct transport_send_params_ transport_send_params_t |
| typedef enum transport_snd_flags_ transport_snd_flags_t |
| enum transport_snd_flags_ |
| Enumerator | |
|---|---|
| TRANSPORT_SND_F_DESCHED | |
| TRANSPORT_SND_F_POSTPONE | |
| TRANSPORT_SND_N_FLAGS | |
Definition at line 37 of file transport.h.
Definition at line 627 of file transport.c.
Here is the call graph for this function:
Here is the caller graph for this function:| int transport_alloc_local_endpoint | ( | u8 | proto, |
| transport_endpoint_cfg_t * | rmt, | ||
| ip46_address_t * | lcl_addr, | ||
| u16 * | lcl_port | ||
| ) |
Definition at line 565 of file transport.c.
Here is the call graph for this function:
Here is the caller graph for this function:| int transport_alloc_local_port | ( | u8 | proto, |
| 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 475 of file transport.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlinestatic |
Definition at line 175 of file transport.h.
Here is the call graph for this function:
Here is the caller graph for this function:| void transport_cleanup | ( | transport_proto_t | tp, |
| u32 | conn_index, | ||
| u8 | thread_index | ||
| ) |
| void transport_cleanup_half_open | ( | transport_proto_t | tp, |
| u32 | conn_index | ||
| ) |
Definition at line 308 of file transport.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void transport_close | ( | transport_proto_t | tp, |
| u32 | conn_index, | ||
| u8 | thread_index | ||
| ) |
| int transport_connect | ( | transport_proto_t | tp, |
| transport_endpoint_cfg_t * | tep | ||
| ) |
|
inlinestatic |
|
inlinestatic |
Definition at line 214 of file transport.h.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlinestatic |
|
inlinestatic |
Check if transport connection is paced.
Definition at line 317 of file transport.h.
Here is the call graph for this function:
Here is the caller graph for this function:| void transport_connection_reschedule | ( | transport_connection_t * | tc | ) |
Definition at line 756 of file transport.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlinestatic |
Get send parameters for transport connection.
These include maximum tx burst, mss, tx offset and other flags transport might want to provide to sessin layer
| tc | transport connection |
| sp | send paramaters |
Definition at line 195 of file transport.h.
Here is the caller graph for this function:| u32 transport_connection_tx_pacer_burst | ( | transport_connection_t * | tc | ) |
Get tx pacer max burst.
| tc | transport connection |
| time_now | current cpu time |
Definition at line 729 of file transport.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void transport_connection_tx_pacer_init | ( | transport_connection_t * | tc, |
| u64 | rate_bytes_per_sec, | ||
| u32 | initial_bucket | ||
| ) |
Initialize tx pacer for connection.
| tc | transport connection |
| rate_bytes_per_second | initial byte rate |
| burst_bytes | initial burst size in bytes |
Definition at line 712 of file transport.c.
Here is the call graph for this function:
Here is the caller graph for this function:| u64 transport_connection_tx_pacer_rate | ( | transport_connection_t * | tc | ) |
Get tx pacer current rate.
| tc | transport connection |
Definition at line 736 of file transport.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void transport_connection_tx_pacer_reset | ( | transport_connection_t * | tc, |
| u64 | rate_bytes_per_sec, | ||
| u32 | initial_bucket, | ||
| clib_us_time_t | rtt | ||
| ) |
Definition at line 695 of file transport.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void transport_connection_tx_pacer_reset_bucket | ( | transport_connection_t * | tc, |
| u32 | bucket | ||
| ) |
Reset tx pacer bucket.
| tc | transport connection |
| bucket | value the bucket will be reset to |
Definition at line 705 of file transport.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void transport_connection_tx_pacer_update | ( | transport_connection_t * | tc, |
| u64 | bytes_per_sec, | ||
| clib_us_time_t | rtt | ||
| ) |
Update tx pacer pacing rate.
| tc | transport connection |
| bytes_per_sec | new pacing rate |
| rtt | connection rtt that is used to compute inactivity time after which pacer bucket is reset to 1 mtu |
Definition at line 722 of file transport.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void transport_connection_tx_pacer_update_bytes | ( | transport_connection_t * | tc, |
| u32 | bytes | ||
| ) |
Definition at line 749 of file transport.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void transport_connection_update_tx_bytes | ( | transport_connection_t * | tc, |
| u32 | bytes | ||
| ) |
Update tx bytes for paced transport connection.
If tx pacing is enabled, this update pacer bucket to account for the amount of bytes that have been sent.
| tc | transport connection |
| bytes | bytes recently sent |
Definition at line 742 of file transport.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlinestatic |
|
inlinestatic |
Definition at line 250 of file transport.h.
Here is the call graph for this function:
Here is the caller graph for this function:| void transport_enable_disable | ( | vlib_main_t * | vm, |
| u8 | is_en | ||
| ) |
Definition at line 421 of file transport.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlinestatic |
| void transport_get_endpoint | ( | transport_proto_t | tp, |
| u32 | conn_index, | ||
| u32 | thread_index, | ||
| transport_endpoint_t * | tep, | ||
| u8 | is_lcl | ||
| ) |
Definition at line 373 of file transport.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlinestatic |
|
inlinestatic |
| void transport_get_listener_endpoint | ( | transport_proto_t | tp, |
| u32 | conn_index, | ||
| transport_endpoint_t * | tep, | ||
| u8 | is_lcl | ||
| ) |
Definition at line 389 of file transport.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void transport_init | ( | void | ) |
Definition at line 795 of file transport.c.
Here is the call graph for this function:
Here is the caller graph for this function:| transport_proto_vft_t* transport_protocol_get_vft | ( | transport_proto_t | transport_proto | ) |
Get transport virtual function table.
| type | - session type (not protocol type) |
Definition at line 282 of file transport.c.
Here is the caller graph for this function:| transport_proto_t transport_register_new_protocol | ( | const transport_proto_vft_t * | vft, |
| fib_protocol_t | fib_proto, | ||
| u32 | output_node | ||
| ) |
Definition at line 259 of file transport.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void transport_register_protocol | ( | transport_proto_t | transport_proto, |
| const transport_proto_vft_t * | vft, | ||
| fib_protocol_t | fib_proto, | ||
| u32 | output_node | ||
| ) |
Register transport virtual function table.
| transport_proto | - transport protocol type (i.e., TCP, UDP ..) |
| vft | - virtual function table for transport proto |
| fib_proto | - network layer protocol |
| output_node | - output node index that session layer will hand off buffers to, for requested fib proto |
Definition at line 246 of file transport.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void transport_reset | ( | transport_proto_t | tp, |
| u32 | conn_index, | ||
| u8 | thread_index | ||
| ) |
Definition at line 456 of file transport.c.
Here is the call graph for this function:
Here is the caller graph for this function:| u32 transport_start_listen | ( | transport_proto_t | tp, |
| u32 | session_index, | ||
| transport_endpoint_t * | tep | ||
| ) |
| u32 transport_stop_listen | ( | transport_proto_t | tp, |
| u32 | conn_index | ||
| ) |
| void transport_update_time | ( | clib_time_type_t | time_now, |
| u8 | thread_index | ||
| ) |
| transport_proto_vft_t* tp_vfts |
Per-type vector of transport protocol virtual function tables.
Definition at line 29 of file transport.c.