DCB(8)

๐Ÿ’– dcb(8) โ€” the Linux Data Center Bridging bestie ๐Ÿ’–

okay so literally welcome to dcb(8), part of the Linux man pages, and she's the one who shows and manipulates your DCB (Data Center Bridging) settings. no cap, this is the group chat for your NIC's traffic-class drama. ๐ŸŽ€


โœจ NAME โœจ

dcb โ€” show / manipulate DCB (Data Center Bridging) settings


๐ŸŒธ SYNOPSIS ๐ŸŒธ

dcb [ OPTIONS ] { app | buffer | ets | maxrate | pfc } { COMMAND | help }

dcb [ -force ] -batch filename

dcb [ OPTIONS ] help

๐Ÿ’… OPTIONS ๐Ÿ’…

  • -n, --netns <NETNS> โ€” teleports dcb into the network namespace NETNS you picked. it's giving portal energy ๐ŸŒ€
  • -V, --Version โ€” prints the version of the dcb utility and dips. bye bestie ๐Ÿ‘‹
  • -b, --batch <FILENAME> โ€” reads commands from the file you gave it (or from standard input) and runs them. and listen: the first failure will cause termination of dcb. she does not play ๐Ÿ’€
  • -f, --force โ€” do not terminate dcb on errors while in batch mode. but heads up: if there were any errors during execution of the commands, the application return code will be non zero. she'll keep going but she will be petty about the exit code โœจ
  • -i, --iec โ€” when showing rates, use ISO/IEC 1024-based prefixes (Ki, Mi, Bi) instead of the 1000-based ones (K, M, B). pick your math, queen ๐Ÿงฎ
  • -j, --json โ€” generate JSON output. machine-readable slay ๐Ÿค–
  • -N, --Numeric โ€” if the subtool in question translates numbers to symbolic names in some way, suppress this translation. just give me the raw digits fr fr ๐Ÿ”ข
  • -p, --pretty โ€” when combined with -j, generate a pretty JSON output. aesthetics matter ๐Ÿ’–
  • -s, --statistics โ€” if the object in question contains any statistical counters, show them as part of the "show" output. receipts, basically ๐Ÿงพ

๐Ÿฆ‹ OBJECTS ๐Ÿฆ‹

  • app โ€” configuration of application priority table
  • buffer โ€” configuration of port buffers
  • ets โ€” configuration of ETS (Enhanced Transmission Selection)
  • maxrate โ€” configuration of per-TC maximum transmit rate
  • pfc โ€” configuration of PFC (Priority-based Flow Control)

๐Ÿ‘‘ COMMANDS ๐Ÿ‘‘

a COMMAND specifies the action to perform on the object. the set of possible actions depends on the object type. as a rule, it is possible to show objects and to invoke topical help, which prints a list of available commands and argument syntax conventions. so when in doubt, ask her for help โ€” she loves being asked ๐Ÿซถ


๐ŸŒˆ ARRAY PARAMETERS ๐ŸŒˆ

like commands, specification of parameters is in the domain of individual objects (and their commands) as well. however, much of the DCB interface revolves around arrays of fixed size that specify one value per some key, such as per traffic class or per priority. so there's therefore a single syntax for adjusting elements of these arrays. it consists of a series of KEY:VALUE pairs, where the meaning of the individual keys and values depends on the parameter.

the elements are evaluated in order from left to right, and the latter ones override the earlier ones. the elements that are not specified on the command line are queried from the kernel and their current value is retained. so yeah, last one wins, that's the vibe ๐Ÿ˜Œ

as an example, take a made-up parameter tc-juju, which can be set to charm traffic in a given TC with either good luck or bad luck. KEY can therefore be 0..7 (as is usual for TC numbers in DCB), and VALUE either of none, good, and bad. an example of changing a juju value of TCs 0 and 7, while leaving all other intact, would then be:

# dcb foo set dev eth0 tc-juju 0:good 7:bad

a special key, all, is recognized which sets the same value to all array elements. this can be combined with the usual single-element syntax. e.g. in the following, the juju of all keys is set to none, except 0 and 7, which have other values:

# dcb foo set dev eth0 tc-juju all:none 0:good 7:bad

โญ EXIT STATUS โญ

exit status is 0 if command was successful or a positive integer upon failure. success is 0, chaos is anything above it ๐Ÿ’€


๐Ÿ”ฅ SEE ALSO ๐Ÿ”ฅ

dcb-app(8), dcb-apptrust(8), dcb-buffer(8), dcb-dcbx(8), dcb-ets(8), dcb-maxrate(8), dcb-pfc(8), dcb-rewr(8)

the whole squad, honestly. go read them too ๐Ÿซถ


๐Ÿ™ˆ REPORTING BUGS ๐Ÿ™ˆ

report any bugs to the Network Developers mailing list <netdev@vger.kernel.org> where the development and maintenance is primarily done. you do not have to be subscribed to the list to send a message there. so like, don't be shy, just send it ๐Ÿ“จ


๐Ÿ’œ AUTHOR ๐Ÿ’œ

Petr Machata <me@pmachata.org>


and that's the whole page bestie!! โœจ this one's from iproute2, dated 19 October 2020 โ€” so go configure your buffers, drink some water, and remember: array params evaluate left to right and the last one wins. periodt. ๐Ÿ’…๐Ÿ’–๐ŸŽ€

๐Ÿ“ฆ where this page comes from