All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH v2 net-next 00/21] Offload tc-flower to mscc_ocelot switch using VCAP chains
@ 2020-09-29 10:09 Vladimir Oltean
  2020-09-29 10:09 ` [RFC PATCH v2 net-next 01/21] net: mscc: ocelot: introduce a new ocelot_target_{read,write} API Vladimir Oltean
                   ` (20 more replies)
  0 siblings, 21 replies; 24+ messages in thread
From: Vladimir Oltean @ 2020-09-29 10:09 UTC (permalink / raw)
  To: davem
  Cc: alexandre.belloni, andrew, f.fainelli, vivien.didelot,
	horatiu.vultur, joergen.andreasen, allan.nielsen,
	alexandru.marginean, claudiu.manoil, xiaoliang.yang_1,
	hongbo.wang, netdev, kuba, jiri, idosch, UNGLinuxDriver

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

Still posting as RFC because there might still be some bugs and missing
checks, and I would not like this to get merged before hearing some
feedback.

I have tested it on Seville VSC9953 and Felix VSC9959, but it should
also work on Ocelot-1 VSC7514.

Vladimir Oltean (17):
  net: mscc: ocelot: introduce a new ocelot_target_{read,write} API
  net: mscc: ocelot: generalize existing code for VCAP
  net: mscc: ocelot: auto-detect packet buffer size and number of frame
    references
  net: mscc: ocelot: automatically detect VCAP IS2 constants
  net: mscc: ocelot: add definitions for VCAP IS1 keys, actions and
    target
  net: mscc: ocelot: add definitions for VCAP ES0 keys, actions and
    target
  net: mscc: ocelot: auto-detect VCAP ES0 and IS1 parameters
  net: mscc: ocelot: parse flower action before key
  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 (4):
  net: mscc: ocelot: return error if VCAP filter is not found
  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 +
 arch/mips/boot/dts/mscc/ocelot.dtsi           |   4 +-
 drivers/net/dsa/ocelot/felix.c                |  25 +-
 drivers/net/dsa/ocelot/felix.h                |   8 +-
 drivers/net/dsa/ocelot/felix_vsc9959.c        | 196 ++++-
 drivers/net/dsa/ocelot/seville_vsc9953.c      | 196 ++++-
 drivers/net/ethernet/mscc/ocelot.c            | 103 ++-
 drivers/net/ethernet/mscc/ocelot.h            |   2 +
 drivers/net/ethernet/mscc/ocelot_flower.c     | 559 +++++++++++++-
 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       | 713 ++++++++++++------
 drivers/net/ethernet/mscc/ocelot_vcap.h       |  98 ++-
 drivers/net/ethernet/mscc/ocelot_vsc7514.c    | 187 ++++-
 include/soc/mscc/ocelot.h                     |  59 +-
 include/soc/mscc/ocelot_qsys.h                |   3 +
 include/soc/mscc/ocelot_vcap.h                | 200 ++++-
 .../drivers/net/ocelot/test_tc_chains.sh      | 179 +++++
 19 files changed, 2193 insertions(+), 451 deletions(-)
 delete mode 100644 drivers/net/ethernet/mscc/ocelot_s2.h
 create mode 100755 tools/testing/selftests/drivers/net/ocelot/test_tc_chains.sh

-- 
2.25.1


^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2020-09-29 14:45 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-29 10:09 [RFC PATCH v2 net-next 00/21] Offload tc-flower to mscc_ocelot switch using VCAP chains Vladimir Oltean
2020-09-29 10:09 ` [RFC PATCH v2 net-next 01/21] net: mscc: ocelot: introduce a new ocelot_target_{read,write} API Vladimir Oltean
2020-09-29 10:09 ` [RFC PATCH v2 net-next 02/21] net: mscc: ocelot: return error if VCAP filter is not found Vladimir Oltean
2020-09-29 10:09 ` [RFC PATCH v2 net-next 03/21] net: mscc: ocelot: generalize existing code for VCAP Vladimir Oltean
2020-09-29 10:09 ` [RFC PATCH v2 net-next 04/21] net: mscc: ocelot: auto-detect packet buffer size and number of frame references Vladimir Oltean
2020-09-29 10:10 ` [RFC PATCH v2 net-next 05/21] net: mscc: ocelot: automatically detect VCAP IS2 constants Vladimir Oltean
2020-09-29 10:10 ` [RFC PATCH v2 net-next 06/21] net: mscc: ocelot: add definitions for VCAP IS1 keys, actions and target Vladimir Oltean
2020-09-29 10:10 ` [RFC PATCH v2 net-next 07/21] net: mscc: ocelot: add definitions for VCAP ES0 " Vladimir Oltean
2020-09-29 14:45   ` Jakub Kicinski
2020-09-29 10:10 ` [RFC PATCH v2 net-next 08/21] net: mscc: ocelot: auto-detect VCAP ES0 and IS1 parameters Vladimir Oltean
2020-09-29 10:10 ` [RFC PATCH v2 net-next 09/21] net: mscc: ocelot: parse flower action before key Vladimir Oltean
2020-09-29 10:10 ` [RFC PATCH v2 net-next 10/21] net: mscc: ocelot: offload multiple tc-flower actions in same rule Vladimir Oltean
2020-09-29 10:10 ` [RFC PATCH v2 net-next 11/21] net: mscc: ocelot: change vcap to be compatible with full and quad entry Vladimir Oltean
2020-09-29 10:10 ` [RFC PATCH v2 net-next 12/21] net: mscc: ocelot: add a new ocelot_vcap_block_find_filter_by_id function Vladimir Oltean
2020-09-29 10:10 ` [RFC PATCH v2 net-next 13/21] net: mscc: ocelot: look up the filters in flower_stats() and flower_destroy() Vladimir Oltean
2020-09-29 10:10 ` [RFC PATCH v2 net-next 14/21] net: mscc: ocelot: introduce conversion helpers between port and netdev Vladimir Oltean
2020-09-29 10:10 ` [RFC PATCH v2 net-next 15/21] net: mscc: ocelot: create TCAM skeleton from tc filter chains Vladimir Oltean
2020-09-29 10:10 ` [RFC PATCH v2 net-next 16/21] net: mscc: ocelot: offload ingress skbedit and vlan actions to VCAP IS1 Vladimir Oltean
2020-09-29 10:10 ` [RFC PATCH v2 net-next 17/21] net: mscc: ocelot: offload egress VLAN rewriting to VCAP ES0 Vladimir Oltean
2020-09-29 14:45   ` Jakub Kicinski
2020-09-29 10:10 ` [RFC PATCH v2 net-next 18/21] net: mscc: ocelot: only install TCAM entries into a specific lookup and PAG Vladimir Oltean
2020-09-29 10:10 ` [RFC PATCH v2 net-next 19/21] net: mscc: ocelot: relax ocelot_exclusive_mac_etype_filter_rules() Vladimir Oltean
2020-09-29 10:10 ` [RFC PATCH v2 net-next 20/21] net: mscc: ocelot: offload redirect action to VCAP IS2 Vladimir Oltean
2020-09-29 10:10 ` [RFC PATCH v2 net-next 21/21] selftests: ocelot: add some example VCAP IS1, IS2 and ES0 tc offloads Vladimir Oltean

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.