]> git.baikalelectronics.ru Git - kernel.git/commit
net: ethernet: ti: cpsw: add MQPRIO Qdisc offload
authorIvan Khoronzhuk <ivan.khoronzhuk@linaro.org>
Mon, 23 Jul 2018 21:26:31 +0000 (00:26 +0300)
committerDavid S. Miller <davem@davemloft.net>
Tue, 24 Jul 2018 03:34:36 +0000 (20:34 -0700)
commit19461ef11fa37757284e59a1acb35e3cfbbb0b58
tree6da23d616348ed6d8ae62556ea664a030b1f510b
parent6cb33786bc9c70f95e3dd2f30e0c6f8b3ed25d3d
net: ethernet: ti: cpsw: add MQPRIO Qdisc offload

That's possible to offload vlan to tc priority mapping with
assumption sk_prio == L2 prio.

Example:
$ ethtool -L eth0 rx 1 tx 4

$ qdisc replace dev eth0 handle 100: parent root mqprio 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 hw 1

$ tc -g class show dev eth0
+---(100:ffe2) mqprio
|    +---(100:3) mqprio
|    +---(100:4) mqprio
|    
+---(100:ffe1) mqprio
|    +---(100:2) mqprio
|    
+---(100:ffe0) mqprio
     +---(100:1) mqprio

Here, 100:1 is txq0, 100:2 is txq1, 100:3 is txq2, 100:4 is txq3
txq0 belongs to tc0, txq1 to tc1, txq2 and txq3 to tc2
The offload part only maps L2 prio to classes of traffic, but not
to transmit queues, so to direct traffic to traffic class vlan has
to be created with appropriate egress map.

Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Grygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@linaro.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/ti/cpsw.c