]> git.baikalelectronics.ru Git - kernel.git/commit
net: dsa: hellcreek: Add TAPRIO offloading support
authorKurt Kanzenbach <kurt@linutronix.de>
Sat, 23 Jan 2021 10:56:33 +0000 (11:56 +0100)
committerJakub Kicinski <kuba@kernel.org>
Sun, 24 Jan 2021 05:25:16 +0000 (21:25 -0800)
commiteca78419b6d2903ac5e6702f36933f0c5a42b518
tree8dd1c8b1ad1d91c1f9ba27fba55b49114310d1bd
parentf50587883dfb9c29799182b7197fee445f5b71a4
net: dsa: hellcreek: Add TAPRIO offloading support

The switch has support for the 802.1Qbv Time Aware Shaper (TAS). Traffic
schedules may be configured individually on each front port. Each port has eight
egress queues. The traffic is mapped to a traffic class respectively via the PCP
field of a VLAN tagged frame.

The TAPRIO Qdisc already implements that. Therefore, this interface can simply
be reused. Add .port_setup_tc() accordingly.

The activation of a schedule on a port is split into two parts:

 * Programming the necessary gate control list (GCL)
 * Setup delayed work for starting the schedule

The hardware supports starting a schedule up to eight seconds in the future. The
TAPRIO interface provides an absolute base time. Therefore, periodic delayed
work is leveraged to check whether a schedule may be started or not.

Signed-off-by: Kurt Kanzenbach <kurt@linutronix.de>
Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/dsa/hirschmann/hellcreek.c
drivers/net/dsa/hirschmann/hellcreek.h