TAPRIO - Online Linux Manual Page
Section : 8
Updated : 25 Sept 2018
Source : iproute2
Note : Linux
NAMETAPRIO − Time Aware Priority Shaper
SYNOPSIStc qdisc ... dev dev parent classid [ handle major: ] taprio num_tc tcs map P0 P1 P2 ... queues count1@offset1 count2@offset2 ... base-time base-time clockid clockid sched-entry <command 1> <gate mask 1> <interval 1> sched-entry <command 2> <gate mask 2> <interval 2> sched-entry <command 3> <gate mask 3> <interval 3> sched-entry <command N> <gate mask N> <interval N>
DESCRIPTIONThe TAPRIO qdisc implements a simplified version of the scheduling state machine defined by IEEE 802.1Q-2018 Section 8.6.9, which allows configuration of a sequence of gate states, where each gate state allows outgoing traffic for a subset (potentially empty) of traffic classes. How traffic is mapped to different hardware queues is similar to mqprio(8) and so the map and queues parameters have the same meaning. The other parameters specify the schedule, and at what point in time it should start (it can behave as the schedule started in the past).
PARAMETERSnum_tc .BR Number of traffic classes to use. Up to 16 classes supported. map
The priority to traffic class map. Maps priorities 0..15 to a specified traffic class. See mqprio(8) for more details. queues
Provide count and offset of queue range for each traffic class. In the format, count@offset. Queue ranges for each traffic classes cannot overlap and must be a contiguous range of queues. base-time
Specifies the instant in nanoseconds, using the reference of clockid, defining the time when the schedule starts. If 'base-time' is a time in the past, the schedule will start at base-time + (N * cycle-time) where N is the smallest integer so the resulting time is greater than "now", and "cycle-time" is the sum of all the intervals of the entries in the schedule; clockid
Specifies the clock to be used by qdisc's internal timer for measuring time and scheduling events. This argument must be omitted when using the full-offload feature (flags 0x2), since in that case, the clockid is implicitly /dev/ptpN (where N is given by ethtool -T eth0 | grep 'PTP Hardware Clock' ), and therefore not necessarily synchronized with the system's CLOCK_TAI. sched-entry
There may multiple sched-entry parameters in a single schedule. Each one has the sched-entry <command> <gatemask> <interval> format. The only supported <command> is "S", which means "SetGateStates", following the IEEE 802.1Q-2018 definition (Table 8-7). <gate mask> is a bitmask where each bit is a associated with a traffic class, so bit 0 (the least significant bit) being "on" means that traffic class 0 is "active" for that schedule entry. <interval> is a time duration, in nanoseconds, that specifies for how long that state defined by <command> and <gate mask> should be held before moving to the next entry. flags
This is a bit mask which specifies different modes for taprio. 0x1 Enables the txtime-assist feature. In this mode, taprio will set the transmit timestamp depending on the interval in which the packet needs to be transmitted. It will then utililize the etf(8) qdisc to sort and transmit the packets at the right time. The second example can be used as a reference to configure this mode. 0x2 Enables the full-offload feature. In this mode, taprio will pass the gate control list to the NIC which will execute it cyclically in hardware. When using full-offload, there is no need to specify the clockid argument. The txtime-assist and full-offload features are mutually exclusive, i.e. setting flags to 0x3 is invalid. txtime-delay
This parameter is specific to the txtime offload mode. It specifies the maximum time a packet might take to reach the network card from the taprio qdisc. The value should always be greater than the delta specified in the etf(8) qdisc.
EXAMPLESThe following example shows how an traffic schedule with three traffic classes ("num_tc 3"), which are separated different traffic classes, we are going to call these TC 0, TC 1 and TC 2. We could read the "map" parameter below as: traffic with priority 3 is classified as TC 0, priority 2 is classified as TC 1 and the rest is classified as TC 2. The schedule will start at instant 1528743495910289987 using the reference CLOCK_TAI. The schedule is composed of three entries each of 300us duration. # tc qdisc replace dev eth0 parent root handle 100 taprio
num_tc 3
map 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2
queues 1@0 1@1 2@2
base-time 1528743495910289987
sched-entry S 01 300000
sched-entry S 02 300000
sched-entry S 04 300000
clockid CLOCK_TAIFollowing is an example to enable the txtime offload mode in taprio. See etf(8) for more information about configuring the ETF qdisc. # tc qdisc replace dev eth0 parent root handle 100 taprio
num_tc 3
map 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2
queues 1@0 1@0 1@0
base-time 1528743495910289987
sched-entry S 01 300000
sched-entry S 02 300000
sched-entry S 04 400000
flags 0x1
txtime-delay 200000
clockid CLOCK_TAI
# tc qdisc replace dev $IFACE parent 100:1 etf skip_skb_check
offload delta 200000 clockid CLOCK_TAIThe following is a schedule in full offload mode. The base-time is 200 ns and the cycle-time is implicitly calculated as the sum of all sched-entry durations (i.e. 20 us + 20 us + 60 us = 100 us). Although the base-time is in the past, the hardware will start executing the schedule at a PTP time equal to the smallest integer multiple of 100 us, plus 200 ns, that is larger than the NIC's current PTP time. # tc qdisc add dev eth0 parent root taprio
num_tc 8
map 0 1 2 3 4 5 6 7
queues 1@0 1@1 1@2 1@3 1@4 1@5 1@6 1@7
base-time 200
sched-entry S 80 20000
sched-entry S a0 20000
sched-entry S df 60000
flags 0x2
AUTHORSVinicius Costa Gomes <vinicius.gomes@intel.com> 0
Johanes Gumabo
Data Size : 14,591 byte
man-tc-taprio.8Build : 2025-03-22, 13:26 :
Visitor Screen : x
Visitor Counter ( page / site ) : 3 / 1,209,118
Visitor ID : :
Visitor IP : 3.137.182.21 :
Visitor Provider : AMAZON-02 :
Provider Position ( lat x lon ) : 37.751000 x -97.822000 : x
Provider Accuracy Radius ( km ) : 1000 :
Provider City : :
Provider Province : , : ,
Provider Country : United States :
Provider Continent : North America :
Visitor Recorder : Version :
Visitor Recorder : Library :
Online Linux Manual Page : Version : Online Linux Manual Page - Fedora.40 - march=x86-64 - mtune=generic - 25.03.22
Online Linux Manual Page : Library : lib_c - 24.10.03 - march=x86-64 - mtune=generic - Fedora.40
Online Linux Manual Page : Library : lib_m - 24.10.03 - march=x86-64 - mtune=generic - Fedora.40
Data Base : Version : Online Linux Manual Page Database - 24.04.13 - march=x86-64 - mtune=generic - fedora-38
Data Base : Library : lib_c - 23.02.07 - march=x86-64 - mtune=generic - fedora.36
If error, please print screen and send to johanes_gumabo@yahoo.co.id
Under development. Support me via PayPal.
ERROR : Need New Coding : (rof_BR|3|tc-taprio.8|57|1|.BR
)