mbox series

[RFC,net-next,00/14] Offload tc-flower using VCAP chains

Message ID 20200925121855.370863-1-vladimir.oltean@nxp.com
Headers show
Series Offload tc-flower using VCAP chains | expand

Message

Vladimir Oltean Sept. 25, 2020, 12:18 p.m. UTC
This is the result of this discussion:
https://lkml.org/lkml/2020/6/2/203

RFC because there are still some TODO items:
- I haven't added VCAP fields to Ocelot and to Seville, mostly because I
  don't understand how to derive the ENTRY_WIDTH setting. Would
  appreciate some help there. I've only tested this on Felix.
- The selftests script is rather bare bones, not sure what to add to it
  to make it more comprehensive. Understanding that this is the go-to
  reference for any user, it would need to be pretty clear how the thing
  can be used.

Comments appreciated.

Vladimir Oltean (11):
  net: mscc: ocelot: introduce a new ocelot_target_{read,write} API
  net: mscc: ocelot: generalize existing code for VCAP
  net: mscc: ocelot: offload multiple tc-flower actions in same rule
  net: mscc: ocelot: add a new ocelot_vcap_block_find_filter_by_id
    function
  net: mscc: ocelot: look up the filters in flower_stats() and
    flower_destroy()
  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 (3):
  net: mscc: ocelot: change vcap to be compatible with full and quad
    entry
  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                |  24 +-
 drivers/net/dsa/ocelot/felix.h                |   5 +-
 drivers/net/dsa/ocelot/felix_vsc9959.c        | 188 ++++-
 drivers/net/dsa/ocelot/seville_vsc9953.c      |  27 +-
 drivers/net/ethernet/mscc/ocelot.c            |  11 +
 drivers/net/ethernet/mscc/ocelot.h            |   2 +
 drivers/net/ethernet/mscc/ocelot_flower.c     | 485 ++++++++++-
 drivers/net/ethernet/mscc/ocelot_io.c         |  17 +
 drivers/net/ethernet/mscc/ocelot_net.c        |  30 +
 drivers/net/ethernet/mscc/ocelot_s2.h         |  64 --
 drivers/net/ethernet/mscc/ocelot_vcap.c       | 794 ++++++++++++------
 drivers/net/ethernet/mscc/ocelot_vcap.h       |  98 ++-
 drivers/net/ethernet/mscc/ocelot_vsc7514.c    |  27 +-
 include/soc/mscc/ocelot.h                     |  43 +-
 include/soc/mscc/ocelot_vcap.h                | 200 ++++-
 .../drivers/net/ocelot/test_tc_chains.sh      | 179 ++++
 17 files changed, 1800 insertions(+), 395 deletions(-)
 delete mode 100644 drivers/net/ethernet/mscc/ocelot_s2.h
 create mode 100755 tools/testing/selftests/drivers/net/ocelot/test_tc_chains.sh