DCB-ETS(8)
๐ DCB-ETS ๐
okay bestie, so this is dcb-ets โ a little corner of the iproute2 family that lives in section 8 of your man pages (yes, the "system administration" section, very grown-up of her). She's your girl for showing and messing with the ETS โ that's Enhanced Transmission Selection โ settings inside the DCB subsystem, aka Data Center Bridging. ๐
โจ NAME โจ
dcb-ets โ show / manipulate ETS (Enhanced Transmission Selection) settings of the DCB (Data Center Bridging) subsystem.
๐ SYNOPSIS ๐
dcb [ OPTIONS ] ets { COMMAND | help }
dcb ets show dev DEV [ willing ] [ ets-cap ] [ cbs ] [ tc-tsa ] [ reco-
tc-tsa ] [ pg-bw ] [ tc-bw ] [ reco-tc-bw ] [ prio-tc ] [ reco-
prio-tc ]
dcb ets set dev DEV [ willing { on | off } ] [ { tc-tsa | reco-tc-tsa }
TSA-MAP ] [ { pg-bw | tc-bw | reco-tc-bw } BW-MAP ] [ { prio-tc
| reco-prio-tc } PRIO-MAP ]
TSA-MAP := [ TSA-MAP ] TSA-MAPPING
TSA-MAPPING := { TC | all }:{ strict | cbs | ets | vendor }
BW-MAP := [ BW-MAP ] BW-MAPPING
BW-MAPPING := { TC | all }:INTEGER
PRIO-MAP := [ PRIO-MAP ] PRIO-MAPPING
PRIO-MAPPING := { PRIO | all }:TC
TC := { 0 .. 7 }
PRIO := { 0 .. 7 }
๐ฆ DESCRIPTION ๐ฆ
dcb ets is the whole vibe for configuring Enhanced Transmission Selection attributes through the Linux DCB (Data Center Bridging) interface. ETS is the one that lets you set up the mapping of priorities to traffic classes, the traffic selection algorithm to use per traffic class, bandwidth allocation, all of that. ๐
Two DCB TLVs are related to the ETS feature: a configuration one and a recommendation-values one. The recommendation values get the reco- prefix, while the configuration ones just have plain names. iykyk. โจ
๐ PARAMETERS ๐
okay so for the read-write parameters, the following describes only the write direction, meaning how you'd use them with the set command. For the show command, you just use the parameter name as a simple keyword, no extra arguments, and the tool will show you that value. And when you give no parameters at all? The tool shows you the complete ETS configuration. she's generous like that. ๐ซถ
ets-capโ a read-only property that shows the number of supported ETS traffic classes.cbsโ a read-only property that is enabled if the driver and the hardware support the CBS Transmission Selection Algorithm.willing { on | off }โ whether the local host should accept configuration from peer TLVs.prio-tc PRIO-MAP,reco-prio-tc PRIO-MAPโPRIO-MAPuses the array parameter syntax, seedcb(8)for the deets. Keys are priorities, values are traffic classes. For each priority, it sets a TC where traffic with that priority gets directed to.tc-tsa TSA-MAP,reco-tc-tsa TSA-MAPโTSA-MAPuses the array parameter syntax, seedcb(8)for the deets. Keys are TCs, values are Transmission Selection Algorithm (TSA) keywords (listed right below). For each TC, it sets the algorithm used for deciding how traffic queued up at that TC is scheduled for transmission. The supported TSAs are:strictโ for strict priority, where traffic in higher-numbered TCs always takes precedence over traffic in lower-numbered TCs.etsโ for Enhanced Traffic Selection, where available bandwidth is distributed among the ETS-enabled TCs according to the weights set bytc-bwandreco-tc-bw, respectively.cbsโ for Credit Based Shaper, where traffic is scheduled in a strict manner up to the limit set by a shaper.vendorโ for vendor-specific traffic selection algorithm.
tc-bw BW-MAP,reco-tc-bw BW-MAPโBW-MAPuses the array parameter syntax, seedcb(8)for the deets. Keys are TCs, values are integers representing the percent of available bandwidth given to the traffic class in question. The value should be0for TCs whose TSA is notets, and the sum of all values shall be100. As an exception to the standard wording, a configuration with noetsTCs is permitted to sum up to0instead.pg-bw BW-MAPโ the precise meaning ofpg-bwis not standardized, but the assumption seems to be that the same scheduling process as on the transmit side is applicable on the receive side as well, and it configures receive bandwidth allocation foretsingress traffic classes (priority groups). not me side-eyeing a vaguely-defined standard ๐
๐ธ EXAMPLE & USAGE ๐ธ
Configure ETS priomap in a one-to-one fashion:
# dcb ets set dev eth0 prio-tc 0:0 1:1 2:2 3:3 4:4 5:5 6:6 7:7
Set TSA and transmit bandwidth configuration:
# dcb ets set dev eth0 tc-tsa all:strict 0:ets 1:ets 2:ets \
tc-bw all:0 0:33 1:33 2:34
Show what was set:
# dcb ets show dev eth0 prio-tc tc-tsa tc-bw
prio-tc 0:0 1:1 2:2 3:3 4:4 5:5 6:6 7:7
tc-tsa 0:ets 1:ets 2:ets 3:strict 4:strict 5:strict 6:strict 7:strict
tc-bw 0:33 1:33 2:34 3:0 4:0 5:0 6:0 7:0
look at her go, everything exactly where you put it ๐ง
๐ EXIT STATUS ๐
Exit status is 0 if the command was successful, or a positive integer upon failure. so like, zero is the slay, anything else is a cry for help. ๐ญ
๐ฅ SEE ALSO ๐ฅ
๐ REPORTING BUGS ๐
Found a bug? Report it to the Network Developers mailing list <netdev@vger.kernel.org>, where the development and maintenance is primarily done. And bestie, you do not have to be subscribed to the list to send a message there. go off. ๐
โญ AUTHOR โญ
Petr Machata <me@pmachata.org>
fr fr, that's the whole page. go configure some traffic classes, you main character. ๐ โจ
this was brought to you by the iproute2 girlies, dated 19 October 2020 ๐ โ no cap, that's the version and date right there, and that's a wrap, mwah ๐
๐ฆ where this page comes from
- alpine 3.24: iproute2-doc 7.0.0-r0 ยท GPL-2.0-or-later
- arch rolling: iproute2 7.2.0-1
- arch rolling: iproute2 7.3.0-1 ยท GPL-2.0-or-later
- centos-stream 10: iproute 7.0.0-2.el10 ยท GPL-2.0-or-later AND NIST-PD
- nixos 26.05: iproute2 7.0.0
- nixpkgs unstable: iproute2 7.2.0
- ubuntu stonking: iproute2 7.2.0-1ubuntu1 ยท GPL-2.0-only
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms