Re: [PATCH v2] net: hsr: Provide RedBox support

From: Wojciech Drewek
Date: Thu Mar 07 2024 - 06:43:21 EST




On 07.03.2024 12:33, Lukasz Majewski wrote:
> Introduce RedBox support (HSR-SAN to be more precise) for HSR networks.
> The 'Mode U' has been implemented without optimizations for traffic
> reduction - i.e. only sending HSR supervisory frames to Port C and not
> forwarding to HSR ring frames addressed to Port C.
>
> The corresponding patch to modify iptable2 sources has already been sent:
> https://lore.kernel.org/netdev/20240226124110.37892211@hermes.local/T/
>
> Testing procedure:
> ------------------
> The EVB-KSZ9477 has been used for testing on net-next branch
> (SHA1: 709776ea8562).
>
> Ports 4/5 were used for SW managed HSR (hsr1) as first hsr0 for ports 1/2
> (with HW offloading for ksz9477) was created. Port 3 has been used as
> interlink port (single USB-ETH dongle).
>
> Configuration - RedBox (EVB-KSZ9477):
> ifconfig lan1 down;ifconfig lan2 down
> ip link add name hsr0 type hsr slave1 lan1 slave2 lan2 supervision 45 version 1
> ip link add name hsr1 type hsr slave1 lan4 slave2 lan5 interlink lan3 supervision 45 version 1
> ifconfig lan4 up;ifconfig lan5 up
> ifconfig lan3 up
> ifconfig hsr1 192.168.0.11 up
>
> Configuration - DAN-H (EVB-KSZ9477):
>
> ifconfig lan1 down;ifconfig lan2 down
> ip link add name hsr0 type hsr slave1 lan1 slave2 lan2 supervision 45 version 1
> ip link add name hsr1 type hsr slave1 lan4 slave2 lan5 supervision 45 version 1
> ifconfig lan4 up;ifconfig lan5 up
> ifconfig hsr1 192.168.0.12 up
>
> This approach uses only SW based HSR devices (hsr1).
>
> -------------- ----------------- ------------
> DAN-H Port5 | <------> | Port5 | |
> Port4 | <------> | Port4 Port3 | <---> | PC
> | | (RedBox) | | (USB-ETH)
> EVB-KSZ9477 | | EVB-KSZ9477 | |
> -------------- ----------------- ------------
>
> Signed-off-by: Lukasz Majewski <lukma@xxxxxxx>

Reviewed-by: Wojciech Drewek <wojciech.drewek@xxxxxxxxx>

>
> ---
> Changes for v2:
>
> - Add deleting of HSR_PT_INTERLINK node to hsr_del_ports()
> - Rewrite handle_std_frame() to awoid code duplication
> - Fix reverse christmas tree in hsr_prune_proxy_nodes() as well as
> remove stale node indication as interlink doesn't need this detection
> (only check if node is inactive for more than HSR_PROXY_NODE_FORGET_TIME
> is required)
> - Rewrite commit message
> ---
> include/uapi/linux/if_link.h | 1 +
> net/hsr/hsr_device.c | 36 ++++++++++++++++++++--
> net/hsr/hsr_device.h | 4 +--
> net/hsr/hsr_forward.c | 58 ++++++++++++++++++++++++++++++------
> net/hsr/hsr_framereg.c | 52 ++++++++++++++++++++++++++++++++
> net/hsr/hsr_framereg.h | 6 ++++
> net/hsr/hsr_main.h | 7 +++++
> net/hsr/hsr_netlink.c | 29 ++++++++++++++++--
> net/hsr/hsr_slave.c | 1 +
> 9 files changed, 178 insertions(+), 16 deletions(-)
>

<...>