FD.io VPP
v19.01.3-6-g70449b9b9
Vector Packet Processing
|
Go to the source code of this file.
Macros | |
#define | transport_proto_foreach(VAR, BODY) |
Typedefs | |
typedef enum transport_dequeue_type_ | transport_tx_fn_type_t |
typedef enum transport_service_type_ | transport_service_type_t |
typedef struct _transport_proto_vft | transport_proto_vft_t |
Variables | |
transport_proto_vft_t * | tp_vfts |
Per-type vector of transport protocol virtual function tables. More... | |
#define transport_proto_foreach | ( | VAR, | |
BODY | |||
) |
Definition at line 90 of file transport_interface.h.
typedef struct _transport_proto_vft transport_proto_vft_t |
typedef enum transport_service_type_ transport_service_type_t |
typedef enum transport_dequeue_type_ transport_tx_fn_type_t |
Definition at line 22 of file transport_interface.h.
Enumerator | |
---|---|
TRANSPORT_SERVICE_VC | virtual circuit service |
TRANSPORT_SERVICE_CL | connectionless service |
TRANSPORT_SERVICE_APP | app transport service |
TRANSPORT_N_SERVICES |
Definition at line 31 of file transport_interface.h.
Definition at line 491 of file transport.c.
|
inlinestatic |
Check if transport connection is paced.
Definition at line 164 of file transport_interface.h.
u32 transport_connection_snd_space | ( | transport_connection_t * | tc, |
u64 | time_now, | ||
u16 | mss | ||
) |
Get maximum tx burst allowed for transport connection.
tc | transport connection |
time_now | current cpu time as returned by clib_cpu_time_now |
mss | transport's mss |
Definition at line 585 of file transport.c.
u32 transport_connection_tx_pacer_burst | ( | transport_connection_t * | tc, |
u64 | time_now | ||
) |
Definition at line 577 of file transport.c.
void transport_connection_tx_pacer_init | ( | transport_connection_t * | tc, |
u32 | 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 555 of file transport.c.
void transport_connection_tx_pacer_reset | ( | transport_connection_t * | tc, |
u32 | rate_bytes_per_sec, | ||
u32 | initial_bucket, | ||
u64 | time_now | ||
) |
Definition at line 538 of file transport.c.
void transport_connection_tx_pacer_update | ( | transport_connection_t * | tc, |
u64 | bytes_per_sec | ||
) |
Update tx pacer pacing rate.
tc | transport connection |
bytes_per_sec | new pacing rate |
Definition at line 567 of file transport.c.
void transport_connection_tx_pacer_update_bytes | ( | transport_connection_t * | tc, |
u32 | bytes | ||
) |
Definition at line 611 of file transport.c.
void transport_connection_update_tx_stats | ( | transport_connection_t * | tc, |
u32 | bytes | ||
) |
Update tx byte stats for transport connection.
If tx pacing is enabled, this also updates pacer bucket to account for the amount of bytes that have been sent.
tc | transport connection |
pkts | packets recently sent |
bytes | bytes recently sent |
Definition at line 603 of file transport.c.
|
inlinestatic |
Definition at line 107 of file transport_interface.h.
void transport_enable_disable | ( | vlib_main_t * | vm, |
u8 | is_en | ||
) |
Definition at line 636 of file transport.c.
void transport_init_tx_pacers_period | ( | void | ) |
Initialize period for tx pacers.
Defines a unit of time with respect to number of cpu cycles that is to be used by all tx pacers.
Definition at line 618 of file transport.c.
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 256 of file transport.c.
transport_service_type_t transport_protocol_service_type | ( | transport_proto_t | ) |
transport_tx_fn_type_t transport_protocol_tx_fn_type | ( | transport_proto_t | tp | ) |
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 238 of file transport.c.
transport_proto_vft_t* tp_vfts |
Per-type vector of transport protocol virtual function tables.
Generate typed init functions for multiple hash table styles...
Definition at line 23 of file transport.c.