]> 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)
commit79489331cc7deb470c44a72e91127da585f27106
tree8dd1c8b1ad1d91c1f9ba27fba55b49114310d1bd
parent465c6e2ac3ab87a95001bc48850b5f643d778de1
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