ae15ed6e | 01-Oct-2022 |
Yevhen Orlov <yevhen.orlov@plvision.eu> |
net: marvell: prestera: Propagate nh state from hw to kernel
We poll nexthops in HW and call for each active nexthop appropriate neighbour.
Also we provide implicity neighbour resolving. For exampl
net: marvell: prestera: Propagate nh state from hw to kernel
We poll nexthops in HW and call for each active nexthop appropriate neighbour.
Also we provide implicity neighbour resolving. For example, user have added nexthop route: # ip route add 5.5.5.5 via 1.1.1.2 But neighbour 1.1.1.2 doesn't exist. In this case we will try to call neigh_event_send, even if there is no traffic. This is useful, when you have add route, which will be used after some time but with a lot of traffic (burst). So, we has prepared, offloaded route in advance.
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> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
show more ...
|
396b80cb | 01-Oct-2022 |
Yevhen Orlov <yevhen.orlov@plvision.eu> |
net: marvell: prestera: Add neighbour cache accounting
Move forward and use new PRESTERA_FIB_TYPE_UC_NH to provide basic nexthop routes support. Provide deinitialization sequence for all created rou
net: marvell: prestera: Add neighbour cache accounting
Move forward and use new PRESTERA_FIB_TYPE_UC_NH to provide basic nexthop routes support. Provide deinitialization sequence for all created router objects.
Limitations: - Only "local" and "main" tables supported - Only generic interfaces supported for router (no bridges or vlans)
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> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
show more ...
|
8b1ef491 | 01-Oct-2022 |
Yevhen Orlov <yevhen.orlov@plvision.eu> |
net: marvell: prestera: add stub handler neighbour events
Actual handler will be added in next patches
Co-developed-by: Taras Chornyi <tchornyi@marvell.com> Signed-off-by: Taras Chornyi <tchornyi@m
net: marvell: prestera: add stub handler neighbour events
Actual handler 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> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
show more ...
|
04f24a1e | 01-Oct-2022 |
Yevhen Orlov <yevhen.orlov@plvision.eu> |
net: marvell: prestera: Add heplers to interact with fib_notifier_info
This will be used to implement nexthops related logic in next patches. Also try to keep ipv4/6 abstraction to be able to reuse
net: marvell: prestera: Add heplers to interact with fib_notifier_info
This will be used to implement nexthops related logic in next patches. Also try to keep ipv4/6 abstraction to be able to reuse helpers for ipv6 in the future.
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> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
show more ...
|
59b44ea8 | 01-Oct-2022 |
Yevhen Orlov <yevhen.orlov@plvision.eu> |
net: marvell: prestera: Add length macros for prestera_ip_addr
Add macros to determine IP address length (internal driver types). This will be used in next patches for nexthops logic.
Co-developed-
net: marvell: prestera: Add length macros for prestera_ip_addr
Add macros to determine IP address length (internal driver types). This will be used in next patches for nexthops logic.
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> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
show more ...
|
90b6f9c0 | 01-Oct-2022 |
Yevhen Orlov <yevhen.orlov@plvision.eu> |
net: marvell: prestera: add delayed wq and flush wq on deinit
Flushing workqueues ensures, that no more pending works, related to just unregistered or deinitialized notifiers. After that we can free
net: marvell: prestera: add delayed wq and flush wq on deinit
Flushing workqueues ensures, that no more pending works, related to just unregistered or deinitialized notifiers. After that we can free memory.
Delayed wq will be used for neighbours 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> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
show more ...
|
333fe4d0 | 01-Oct-2022 |
Yevhen Orlov <yevhen.orlov@plvision.eu> |
net: marvell: prestera: Add strict cleanup of fib arbiter
This will, ensure, that there is no more, preciously allocated fib_cache entries left after deinit. Will be used to free allocated resources
net: marvell: prestera: Add strict cleanup of fib arbiter
This will, ensure, that there is no more, preciously allocated fib_cache entries left after deinit. Will be used to free allocated resources of nexthop routes, that points to "not our" port (e.g. eth0).
Signed-off-by: Yevhen Orlov <yevhen.orlov@plvision.eu> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
show more ...
|
1e7313e8 | 01-Oct-2022 |
Yevhen Orlov <yevhen.orlov@plvision.eu> |
net: marvell: prestera: Add cleanup of allocated fib_nodes
Do explicity cleanup on router_hw_fini, to ensure, that all allocated objects cleaned. This will be used in cases, when upper layer (cache)
net: marvell: prestera: Add cleanup of allocated fib_nodes
Do explicity cleanup on router_hw_fini, to ensure, that all allocated objects cleaned. This will be used in cases, when upper layer (cache) is not mapped to router_hw layer.
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> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
show more ...
|
44af9571 | 23-Aug-2022 |
Maksym Glubokiy <maksym.glubokiy@plvision.eu> |
net: prestera: manage matchall and flower priorities
matchall rules can be added only to chain 0 and their priorities have limitations: - new matchall ingress rule's priority must be higher (lower
net: prestera: manage matchall and flower priorities
matchall rules can be added only to chain 0 and their priorities have limitations: - new matchall ingress rule's priority must be higher (lower value) than any existing flower rule; - new matchall egress rule's priority must be lower (higher value) than any existing flower rule.
The opposite works for flower rule adding: - new flower ingress rule's priority must be lower (higher value) than any existing matchall rule; - new flower egress rule's priority must be higher (lower value) than any existing matchall rule.
This is a hardware limitation and thus must be properly handled in driver by reporting errors to the user when newly added rule has such a priority that cannot be installed into the hardware.
To achieve this, the driver must maintain both min/max matchall priorities for every flower block when user adds/deletes a matchall rule, as well as both min/max flower priorities for chain 0 for every adding/deletion of flower rules for chain 0.
Cc: Serhiy Boiko <serhiy.boiko@plvision.eu> Signed-off-by: Maksym Glubokiy <maksym.glubokiy@plvision.eu> Signed-off-by: David S. Miller <davem@davemloft.net>
show more ...
|
8c448c2b | 23-Aug-2022 |
Serhiy Boiko <serhiy.boiko@plvision.eu> |
net: prestera: add support for egress traffic mirroring
This enables adding matchall rules for egress:
tc filter add .. egress .. matchall skip_sw \ action mirred egress mirror dev ..
Signed
net: prestera: add support for egress traffic mirroring
This enables adding matchall rules for egress:
tc filter add .. egress .. matchall skip_sw \ action mirred egress mirror dev ..
Signed-off-by: Serhiy Boiko <serhiy.boiko@plvision.eu> Signed-off-by: Maksym Glubokiy <maksym.glubokiy@plvision.eu> Signed-off-by: David S. Miller <davem@davemloft.net>
show more ...
|