![]() |
FD.io VPP
v21.10.1-2-g0a485f517
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_BURSTS_PER_RTT 20 |
| #define | TRANSPORT_PACER_MIN_IDLE 100 |
| #define | TRANSPORT_PACER_IDLE_FACTOR 0.05 |
| #define | transport_proto_foreach(VAR, VAR_ALLOW_BM) |
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_BURSTS_PER_RTT 20 |
Definition at line 26 of file transport.h.
| #define TRANSPORT_PACER_IDLE_FACTOR 0.05 |
Definition at line 28 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 27 of file transport.h.
| #define TRANSPORT_PACER_MIN_MSS 1460 |
Definition at line 22 of file transport.h.
| #define transport_proto_foreach | ( | VAR, | |
| VAR_ALLOW_BM | |||
| ) |
Definition at line 130 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 38 of file transport.h.
Definition at line 645 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 583 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 493 of file transport.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
inlinestatic |
Definition at line 182 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 | ||
| ) |
| 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 | ||
| ) |
| int transport_connection_attribute | ( | transport_proto_t | tp, |
| u32 | conn_index, | ||
| u8 | thread_index, | ||
| u8 | is_get, | ||
| transport_endpt_attr_t * | attr | ||
| ) |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
Check if transport connection is paced.
Definition at line 325 of file transport.h.
Here is the caller graph for this function:| void transport_connection_reschedule | ( | transport_connection_t * | tc | ) |
Definition at line 790 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 202 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 757 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 739 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 764 of file transport.c.
Here is the call 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 721 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 732 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 749 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 777 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 770 of file transport.c.
Here is the call graph for this function:
|
inlinestatic |
|
inlinestatic |
| void transport_enable_disable | ( | vlib_main_t * | vm, |
| u8 | is_en | ||
| ) |
Definition at line 439 of file transport.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void transport_fifos_init_ooo | ( | transport_connection_t * | tc | ) |
Definition at line 807 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 380 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 396 of file transport.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void transport_half_close | ( | transport_proto_t | tp, |
| u32 | conn_index, | ||
| u8 | thread_index | ||
| ) |
| void transport_init | ( | void | ) |
Definition at line 837 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 | ||
| ) |
| 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 474 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_pacer_time | ( | u32 | thread_index, |
| clib_time_type_t | now | ||
| ) |
Request pacer time update.
| thread_index | thread for which time is updated |
| now | time now |
Definition at line 784 of file transport.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void transport_update_time | ( | clib_time_type_t | time_now, |
| u8 | thread_index | ||
| ) |
Definition at line 815 of file transport.c.
| transport_proto_vft_t* tp_vfts |
Per-type vector of transport protocol virtual function tables.
Definition at line 29 of file transport.c.