This series patches adds support for VCAP IS1 and ES0 module, each VCAP correspond to a flow chain to offload.
VCAP IS1 supports FLOW_ACTION_VLAN_MANGLE action to filter MAC, IP, VLAN, protocol, and TCP/UDP ports keys and retag vlian tag, FLOW_ACTION_PRIORITY action to classify packages to different Qos in hw. VCAP ES0 supports FLOW_ACTION_VLAN_PUSH action to filter vlan keys and push a specific vlan tag to frames. Changes since v1->v2: - Use different chain to assign rules to different hardware VCAP, and use action goto chain to express flow order. - Add FLOW_ACTION_PRIORITY to add Qos classification on VCAP IS1. - Multiple actions support. - Fix some code issues. Vladimir Oltean (3): net: mscc: ocelot: introduce a new ocelot_target_{read,write} API net: mscc: ocelot: generalize existing code for VCAP net: dsa: tag_ocelot: use VLAN information from tagging header when available Xiaoliang Yang (7): net: mscc: ocelot: allocated rules to different hardware VCAP TCAMs by chain index net: mscc: ocelot: change vcap to be compatible with full and quad entry net: mscc: ocelot: VCAP IS1 support net: mscc: ocelot: VCAP ES0 support net: mscc: ocelot: multiple actions support net: ocelot: return error if rule is not found net: dsa: felix: correct VCAP IS2 keys offset drivers/net/dsa/ocelot/felix.c | 2 - drivers/net/dsa/ocelot/felix.h | 2 - drivers/net/dsa/ocelot/felix_vsc9959.c | 202 +++++- drivers/net/ethernet/mscc/ocelot.c | 11 + drivers/net/ethernet/mscc/ocelot_ace.c | 729 ++++++++++++++++------ drivers/net/ethernet/mscc/ocelot_ace.h | 26 +- drivers/net/ethernet/mscc/ocelot_board.c | 5 +- drivers/net/ethernet/mscc/ocelot_flower.c | 95 ++- drivers/net/ethernet/mscc/ocelot_io.c | 17 + drivers/net/ethernet/mscc/ocelot_regs.c | 21 +- drivers/net/ethernet/mscc/ocelot_s2.h | 64 -- include/soc/mscc/ocelot.h | 39 +- include/soc/mscc/ocelot_vcap.h | 199 +++++- net/dsa/tag_ocelot.c | 29 + 14 files changed, 1105 insertions(+), 336 deletions(-) delete mode 100644 drivers/net/ethernet/mscc/ocelot_s2.h -- 2.17.1