NAME | SYNOPSIS | DESCRIPTION | PARAMETERS | EXAMPLES | AUTHORS | COLOPHON

TAPRIO(8)                           Linux                          TAPRIO(8)

NAME         top

       TAPRIO - Time Aware Priority Shaper

SYNOPSIS         top

       tc 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>

DESCRIPTION         top

       The 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).

PARAMETERS         top

       num_tc  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.

       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.

EXAMPLES         top

       The 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_TAI

AUTHORS         top

       Vinicius Costa Gomes <vinicius.gomes@intel.com>

COLOPHON         top

       This page is part of the iproute2 (utilities for controlling TCP/IP
       networking and traffic) project.  Information about the project can
       be found at 
       ⟨http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2⟩.
       If you have a bug report for this manual page, send it to
       netdev@vger.kernel.org, shemminger@osdl.org.  This page was obtained
       from the project's upstream Git repository
       ⟨https://git.kernel.org/pub/scm/network/iproute2/iproute2.git⟩ on
       2019-07-28.  (At that time, the date of the most recent commit that
       was found in the repository was 2019-07-26.)  If you discover any
       rendering problems in this HTML version of the page, or you believe
       there is a better or more up-to-date source for the page, or you have
       corrections or improvements to the information in this COLOPHON
       (which is not part of the original manual page), send a mail to
       man-pages@man7.org

iproute2                        25 Sept 2018                       TAPRIO(8)