DPDK 22.11.5
|
#include <rte_tm.h>
Data Fields | |
struct rte_tm_token_bucket | committed |
struct rte_tm_token_bucket | peak |
int32_t | pkt_length_adjust |
int | packet_mode |
Shaper (rate limiter) profile
Multiple shaper instances can share the same shaper profile. Each node has zero or one private shaper (only one node using it) and/or zero, one or several shared shapers (multiple nodes use the same shaper instance). A private shaper is used to perform traffic shaping for a single node, while a shared shaper is used to perform traffic shaping for a group of nodes.
Single rate shapers use a single token bucket. A single rate shaper can be configured by setting the rate of the committed bucket to zero, which effectively disables this bucket. The peak bucket is used to limit the rate and the burst size for the current shaper.
Dual rate shapers use both the committed and the peak token buckets. The rate of the peak bucket has to be bigger than zero, as well as greater than or equal to the rate of the committed bucket.
struct rte_tm_token_bucket committed |
struct rte_tm_token_bucket peak |
int32_t pkt_length_adjust |
Signed value to be added to the length of each packet for the purpose of shaping. Can be used to correct the packet length with the framing overhead bytes that are also consumed on the wire (e.g. RTE_TM_ETH_FRAMING_OVERHEAD_FCS). This field is ignored when the profile enables packet mode.
int packet_mode |
When zero, the byte mode is enabled for the current profile, so the rate and size fields in both the committed and peak token buckets are specified in bytes per second and bytes, respectively. When non-zero, the packet mode is enabled for the current profile, so the rate and size fields in both the committed and peak token buckets are specified in packets per second and packets, respectively.