Messages in this thread | | | From | Yevhen Orlov <> | Subject | [PATCH net-next v3 0/6] prestera: add basic router driver support | Date | Fri, 7 Jan 2022 05:01:30 +0200 |
| |
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@marvell.com> Signed-off-by: Taras Chornyi <tchornyi@marvell.com> Co-developed-by: Oleksandr Mazur <oleksandr.mazur@plvision.eu> Signed-off-by: Oleksandr Mazur <oleksandr.mazur@plvision.eu> Signed-off-by: Yevhen Orlov <yevhen.orlov@plvision.eu>
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
| |