This patch series add gate and police action for tc flower offload to support Per-Stream Filtering and Policing(PSFP), which is defined in IEEE802.1Qci.
There is also a TC flower offload to set up VCAPs on ocelot driver. Because VCAPs use chain 10000-21255, we set chain 30000 to offload to gate and police action to run PSFP module. example: > tc qdisc add dev swp0 clsact > tc filter add dev swp0 ingress chain 0 pref 49152 flower \ skip_sw action goto chain 30000 > tc filter add dev swp0 ingress chain 30000 protocol 802.1Q \ flower skip_sw dst_mac 42:01:3E:72:2F:6B vlan_id 1 \ action gate index 1 base-time 0 \ sched-entry OPEN 6000 3 -1 \ action police index 1 rate 10Mbit burst 10000 Xiaoliang Yang (5): net: mscc: ocelot: add and export MAC table lookup operations net: mscc: ocelot: set vcap IS2 chain to goto PSFP chain net: dsa: felix: add gate action offload based on tc flower net: mscc: ocelot: use index to set vcap policer net: dsa: felix: add police action for tc flower offload drivers/net/dsa/ocelot/Makefile | 3 +- drivers/net/dsa/ocelot/felix.c | 25 + drivers/net/dsa/ocelot/felix.h | 18 + drivers/net/dsa/ocelot/felix_flower.c | 683 ++++++++++++++++++++++ drivers/net/dsa/ocelot/felix_vsc9959.c | 14 +- drivers/net/ethernet/mscc/ocelot.c | 33 +- drivers/net/ethernet/mscc/ocelot.h | 13 - drivers/net/ethernet/mscc/ocelot_flower.c | 19 +- drivers/net/ethernet/mscc/ocelot_vcap.c | 107 ++-- include/soc/mscc/ocelot.h | 43 +- include/soc/mscc/ocelot_ana.h | 10 + 11 files changed, 903 insertions(+), 65 deletions(-) create mode 100644 drivers/net/dsa/ocelot/felix_flower.c -- 2.17.1