mirror of
				https://git.proxmox.com/git/mirror_iproute2
				synced 2025-11-04 08:25:08 +00:00 
			
		
		
		
	The argument parser only accepts num_tc: https://git.kernel.org/pub/scm/network/iproute2/iproute2.git/tree/tc/q_mqprio.c#n55 Signed-off-by: Caleb Raitto <caraitto@google.com> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
		
			
				
	
	
		
			151 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			151 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
.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>
 |