[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20181004.135245.1546656082346761382.davem@davemloft.net>
Date: Thu, 04 Oct 2018 13:52:45 -0700 (PDT)
From: David Miller <davem@...emloft.net>
To: vinicius.gomes@...el.com
Cc: netdev@...r.kernel.org, jesus.sanchez-palencia@...el.com,
henrik@...tad.us, richardcochran@...il.com, jhs@...atatu.com,
xiyou.wangcong@...il.com, jiri@...nulli.us,
ilias.apalodimas@...aro.org, simon.fok@...systems.com
Subject: Re: [PATCH net-next v1 1/1] tc: Add support for configuring the
taprio scheduler
From: Vinicius Costa Gomes <vinicius.gomes@...el.com>
Date: Fri, 28 Sep 2018 17:59:43 -0700
> This traffic scheduler allows traffic classes states (transmission
> allowed/not allowed, in the simplest case) to be scheduled, according
> to a pre-generated time sequence. This is the basis of the IEEE
> 802.1Qbv specification.
>
> Example configuration:
>
> tc qdisc replace dev enp3s0 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
>
> The configuration format is similar to mqprio. The main difference is
> the presence of a schedule, built by multiple "sched-entry"
> definitions, each entry has the following format:
>
> sched-entry <CMD> <GATE MASK> <INTERVAL>
>
> The only supported <CMD> is "S", which means "SetGateStates",
> following the IEEE 802.1Qbv-2015 definition (Table 8-6). <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 <CMD>
> and <GATE MASK> should be held before moving to the next entry.
>
> This schedule is circular, that is, after the last entry is executed
> it starts from the first one, indefinitely.
>
> The other parameters can be defined as follows:
>
> - base-time: specifies the instant 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 reference clock to be used;
>
> The parameters should be similar to what the IEEE 802.1Q family of
> specification defines.
>
> Signed-off-by: Vinicius Costa Gomes <vinicius.gomes@...el.com>
Applied.
Powered by blists - more mailing lists