[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20200929101016.3743530-1-vladimir.oltean@nxp.com>
Date: Tue, 29 Sep 2020 13:09:55 +0300
From: Vladimir Oltean <vladimir.oltean@....com>
To: davem@...emloft.net
Cc: alexandre.belloni@...tlin.com, andrew@...n.ch,
f.fainelli@...il.com, vivien.didelot@...il.com,
horatiu.vultur@...rochip.com, joergen.andreasen@...rochip.com,
allan.nielsen@...rochip.com, alexandru.marginean@....com,
claudiu.manoil@....com, xiaoliang.yang_1@....com,
hongbo.wang@....com, netdev@...r.kernel.org, kuba@...nel.org,
jiri@...nulli.us, idosch@...sch.org, UNGLinuxDriver@...rochip.com
Subject: [RFC PATCH v2 net-next 00/21] Offload tc-flower to mscc_ocelot switch using VCAP chains
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
Powered by blists - more mailing lists