[PATCH net-next v3 0/6] prestera: add basic router driver support

From: Yevhen Orlov
Date: Thu Jan 06 2022 - 22:02:21 EST


Add initial router support for Marvell Prestera driver.
Subscribe on inetaddr notifications. TRAP packets, that has to be routed
(if packet has router's destination MAC address).

Add features:
- Support ip address adding on port.
e.g.: "ip address add PORT 1.1.1.1/24"

Limitations:
- Only regular port supported. Vlan will be added soon.
- It is routing through CPU. Offloading will be added in
next patches.

Co-developed-by: Taras Chornyi <tchornyi@xxxxxxxxxxx>
Signed-off-by: Taras Chornyi <tchornyi@xxxxxxxxxxx>
Co-developed-by: Oleksandr Mazur <oleksandr.mazur@xxxxxxxxxxx>
Signed-off-by: Oleksandr Mazur <oleksandr.mazur@xxxxxxxxxxx>
Signed-off-by: Yevhen Orlov <yevhen.orlov@xxxxxxxxxxx>

Changes for v2:
* Remove useless assignment

Changes for v3:
* Reverse xmas tree variables refactor
* Make friendly NL_SET_ERR_MSG_MOD messages
* Refactor __prestera_inetaddr_event to use early return
* Add prestera_router_hw_fini, which verify lists are empty
* Fix error path in __prestera_vr_create. Remove unnecessary kfree.
* Make __prestera_vr_destroy symmetric to "create"
* prestera_vr_put/get now using refcount_t
* Add WARN for sanity check path in __prestera_rif_entry_key_copy
* Make prestera_rif_entry_create followed by prestera_rif_entry_destroy
* Add missed call prestera_router_fini in prestera_switch_fini

Yevhen Orlov (6):
net: marvell: prestera: add virtual router ABI
net: marvell: prestera: Add router interface ABI
net: marvell: prestera: Add prestera router infra
net: marvell: prestera: add hardware router objects accounting
net: marvell: prestera: Register inetaddr stub notifiers
net: marvell: prestera: Implement initial inetaddr notifiers

.../net/ethernet/marvell/prestera/Makefile | 3 +-
.../net/ethernet/marvell/prestera/prestera.h | 37 +++
.../ethernet/marvell/prestera/prestera_hw.c | 139 ++++++++++++
.../ethernet/marvell/prestera/prestera_hw.h | 11 +
.../ethernet/marvell/prestera/prestera_main.c | 9 +-
.../marvell/prestera/prestera_router.c | 185 +++++++++++++++
.../marvell/prestera/prestera_router_hw.c | 214 ++++++++++++++++++
.../marvell/prestera/prestera_router_hw.h | 37 +++
8 files changed, 633 insertions(+), 2 deletions(-)
create mode 100644 drivers/net/ethernet/marvell/prestera/prestera_router.c
create mode 100644 drivers/net/ethernet/marvell/prestera/prestera_router_hw.c
create mode 100644 drivers/net/ethernet/marvell/prestera/prestera_router_hw.h

--
2.17.1