[PATCH net-next 0/2] Marvell Prestera add flower and match all support

From: Vadym Kochan
Date: Tue Jun 15 2021 - 08:55:14 EST


From: Vadym Kochan <vkochan@xxxxxxxxxxx>

Add ACL infrastructure for Prestera Switch ASICs family devices to
offload cls_flower rules to be processed in the HW.

ACL implementation is based on tc filter api. The flower classifier
is supported to configure ACL rules/matches/action.

Supported actions:

- drop
- trap
- pass

Supported dissector keys:

- indev
- src_mac
- dst_mac
- src_ip
- dst_ip
- ip_proto
- src_port
- dst_port
- vlan_id
- vlan_ethtype
- icmp type/code

- Introduce matchall filter support
- Add SPAN API to configure port mirroring.
- Add tc mirror action.

At this moment, only mirror (egress) action is supported.

Example:
tc filter ... action mirred egress mirror dev DEV

Serhiy Boiko (2):
net: marvell: Implement TC flower offload
net: marvell: prestera: Add matchall support

.../net/ethernet/marvell/prestera/Makefile | 3 +-
.../net/ethernet/marvell/prestera/prestera.h | 7 +
.../ethernet/marvell/prestera/prestera_acl.c | 400 ++++++++++++++++++
.../ethernet/marvell/prestera/prestera_acl.h | 130 ++++++
.../ethernet/marvell/prestera/prestera_flow.c | 215 ++++++++++
.../ethernet/marvell/prestera/prestera_flow.h | 14 +
.../marvell/prestera/prestera_flower.c | 359 ++++++++++++++++
.../marvell/prestera/prestera_flower.h | 18 +
.../ethernet/marvell/prestera/prestera_hw.c | 361 ++++++++++++++++
.../ethernet/marvell/prestera/prestera_hw.h | 23 +
.../ethernet/marvell/prestera/prestera_main.c | 98 ++++-
.../ethernet/marvell/prestera/prestera_span.c | 245 +++++++++++
.../ethernet/marvell/prestera/prestera_span.h | 20 +
13 files changed, 1891 insertions(+), 2 deletions(-)
create mode 100644 drivers/net/ethernet/marvell/prestera/prestera_acl.c
create mode 100644 drivers/net/ethernet/marvell/prestera/prestera_acl.h
create mode 100644 drivers/net/ethernet/marvell/prestera/prestera_flow.c
create mode 100644 drivers/net/ethernet/marvell/prestera/prestera_flow.h
create mode 100644 drivers/net/ethernet/marvell/prestera/prestera_flower.c
create mode 100644 drivers/net/ethernet/marvell/prestera/prestera_flower.h
create mode 100644 drivers/net/ethernet/marvell/prestera/prestera_span.c
create mode 100644 drivers/net/ethernet/marvell/prestera/prestera_span.h

--
2.17.1