The purpose of this patch is to add more comprehensive support for flow offloading in the mscc_ocelot library and switch drivers.
The design (with chains) is the result of this discussion: https://lkml.org/lkml/2020/6/2/203 I have tested it on Seville VSC9953 and Felix VSC9959, but it should also work on Ocelot-1 VSC7514. Vladimir Oltean (7): net: mscc: ocelot: offload multiple tc-flower actions in same rule net: mscc: ocelot: introduce conversion helpers between port and netdev net: mscc: ocelot: create TCAM skeleton from tc filter chains net: mscc: ocelot: only install TCAM entries into a specific lookup and PAG net: mscc: ocelot: relax ocelot_exclusive_mac_etype_filter_rules() net: mscc: ocelot: offload redirect action to VCAP IS2 selftests: ocelot: add some example VCAP IS1, IS2 and ES0 tc offloads Xiaoliang Yang (2): net: mscc: ocelot: offload ingress skbedit and vlan actions to VCAP IS1 net: mscc: ocelot: offload egress VLAN rewriting to VCAP ES0 MAINTAINERS | 1 + drivers/net/dsa/ocelot/felix.c | 22 + drivers/net/dsa/ocelot/felix.h | 3 + drivers/net/dsa/ocelot/felix_vsc9959.c | 3 + drivers/net/dsa/ocelot/seville_vsc9953.c | 2 + drivers/net/ethernet/mscc/ocelot.c | 7 + drivers/net/ethernet/mscc/ocelot.h | 2 + drivers/net/ethernet/mscc/ocelot_flower.c | 516 +++++++++++++++++- drivers/net/ethernet/mscc/ocelot_net.c | 30 + drivers/net/ethernet/mscc/ocelot_vcap.c | 362 +++++++++--- drivers/net/ethernet/mscc/ocelot_vcap.h | 96 +++- drivers/net/ethernet/mscc/ocelot_vsc7514.c | 2 + include/soc/mscc/ocelot.h | 5 +- .../drivers/net/ocelot/tc_flower_chains.sh | 273 +++++++++ tools/testing/selftests/net/forwarding/lib.sh | 43 ++ 15 files changed, 1261 insertions(+), 106 deletions(-) create mode 100755 tools/testing/selftests/drivers/net/ocelot/tc_flower_chains.sh -- 2.25.1