diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 14:18:53 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 14:18:53 +0000 |
commit | a0e0018c9a7ef5ce7f6d2c3ae16aecbbd16a8f67 (patch) | |
tree | 8feaf1a1932871b139b3b30be4c09c66489918be /man/man8/tc-mqprio.8 | |
parent | Initial commit. (diff) | |
download | iproute2-a0e0018c9a7ef5ce7f6d2c3ae16aecbbd16a8f67.tar.xz iproute2-a0e0018c9a7ef5ce7f6d2c3ae16aecbbd16a8f67.zip |
Adding upstream version 6.1.0.upstream/6.1.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'man/man8/tc-mqprio.8')
-rw-r--r-- | man/man8/tc-mqprio.8 | 150 |
1 files changed, 150 insertions, 0 deletions
diff --git a/man/man8/tc-mqprio.8 b/man/man8/tc-mqprio.8 new file mode 100644 index 0000000..4b9e942 --- /dev/null +++ b/man/man8/tc-mqprio.8 @@ -0,0 +1,150 @@ +.TH MQPRIO 8 "24 Sept 2013" "iproute2" "Linux" +.SH NAME +MQPRIO \- Multiqueue Priority Qdisc (Offloaded Hardware QOS) +.SH SYNOPSIS +.B tc qdisc ... dev +dev +.B ( parent +classid +.B | root) [ handle +major: +.B ] mqprio [ num_tc +tcs +.B ] [ map +P0 P1 P2... +.B ] [ queues +count1@offset1 count2@offset2 ... +.B ] [ hw +1|0 +.B ] [ mode +dcb|channel] +.B ] [ shaper +dcb| +.B [ bw_rlimit +.B min_rate +min_rate1 min_rate2 ... +.B max_rate +max_rate1 max_rate2 ... +.B ]] + + +.SH DESCRIPTION +The MQPRIO qdisc is a simple queuing discipline that allows mapping +traffic flows to hardware queue ranges using priorities and a configurable +priority to traffic class mapping. A traffic class in this context is +a set of contiguous qdisc classes which map 1:1 to a set of hardware +exposed queues. + +By default the qdisc allocates a pfifo qdisc (packet limited first in, first +out queue) per TX queue exposed by the lower layer device. Other queuing +disciplines may be added subsequently. Packets are enqueued using the +.B map +parameter and hashed across the indicated queues in the +.B offset +and +.B count. +By default these parameters are configured by the hardware +driver to match the hardware QOS structures. + +.B Channel +mode supports full offload of the mqprio options, the traffic classes, the queue +configurations and QOS attributes to the hardware. Enabled hardware can provide +hardware QOS with the ability to steer traffic flows to designated traffic +classes provided by this qdisc. Hardware based QOS is configured using the +.B shaper +parameter. +.B bw_rlimit +with minimum and maximum bandwidth rates can be used for setting +transmission rates on each traffic class. Also further qdiscs may be added +to the classes of MQPRIO to create more complex configurations. + +.SH ALGORITHM +On creation with 'tc qdisc add', eight traffic classes are created mapping +priorities 0..7 to traffic classes 0..7 and priorities greater than 7 to +traffic class 0. This requires base driver support and the creation will +fail on devices that do not support hardware QOS schemes. + +These defaults can be overridden using the qdisc parameters. Providing +the 'hw 0' flag allows software to run without hardware coordination. + +If hardware coordination is being used and arguments are provided that +the hardware can not support then an error is returned. For many users +hardware defaults should work reasonably well. + +As one specific example numerous Ethernet cards support the 802.1Q +link strict priority transmission selection algorithm (TSA). MQPRIO +enabled hardware in conjunction with the classification methods below +can provide hardware offloaded support for this TSA. + +.SH CLASSIFICATION +Multiple methods are available to set the SKB priority which MQPRIO +uses to select which traffic class to enqueue the packet. +.TP +From user space +A process with sufficient privileges can encode the destination class +directly with SO_PRIORITY, see +.BR socket(7). +.TP +with iptables/nftables +An iptables/nftables rule can be created to match traffic flows and +set the priority. +.BR iptables(8) +.TP +with net_prio cgroups +The net_prio cgroup can be used to set the priority of all sockets +belong to an application. See kernel and cgroup documentation for details. + +.SH QDISC PARAMETERS +.TP +num_tc +Number of traffic classes to use. Up to 16 classes supported. + +.TP +map +The priority to traffic class map. Maps priorities 0..15 to a specified +traffic class. + +.TP +queues +Provide count and offset of queue range for each traffic class. In the +format, +.B count@offset. +Queue ranges for each traffic classes cannot overlap and must be a +contiguous range of queues. + +.TP +hw +Set to +.B 1 +to support hardware offload. Set to +.B 0 +to configure user specified values in software only. + +.TP +mode +Set to +.B channel +for full use of the mqprio options. Use +.B dcb +to offload only TC values and use hardware QOS defaults. Supported with 'hw' +set to 1 only. + +.TP +shaper +Use +.B bw_rlimit +to set bandwidth rate limits for a traffic class. Use +.B dcb +for hardware QOS defaults. Supported with 'hw' set to 1 only. + +.TP +min_rate +Minimum value of bandwidth rate limit for a traffic class. + +.TP +max_rate +Maximum value of bandwidth rate limit for a traffic class. + + +.SH AUTHORS +John Fastabend, <john.r.fastabend@intel.com> |