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-MAP uses the array parameter syntax, see dcb(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-MAP uses the array parameter syntax, see dcb(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 by tc-bw and reco-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-MAP uses the array parameter syntax, see dcb(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 be 0 for TCs whose TSA is not ets, and the sum of all values shall be 100. As an exception to the standard wording, a configuration with no ets TCs is permitted to sum up to 0 instead.
  • pg-bw BW-MAP โ€” the precise meaning of pg-bw is 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 for ets ingress 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