From: Lukasz Majewski <lukma@denx.de>
To: Vladimir Oltean <olteanv@gmail.com>
Cc: Andrew Lunn <andrew@lunn.ch>,
Tristram.Ha@microchip.com,
Oleksij Rempel <o.rempel@pengutronix.de>,
UNGLinuxDriver@microchip.com, netdev@vger.kernel.org,
Sebastian Andrzej Siewior <bigeasy@linutronix.de>,
George McCollister <george.mccollister@gmail.com>
Subject: Re: [net][hsr] Question regarding HSR RedBox functionality implementation (preferably on KSZ9477)
Date: Tue, 9 Jan 2024 15:04:14 +0100 [thread overview]
Message-ID: <20240109150414.6a402fec@wsk> (raw)
In-Reply-To: <20240109125205.u6yc3z4neter24ae@skbuf>
[-- Attachment #1: Type: text/plain, Size: 2797 bytes --]
Hi Vladimir,
> Hi Lukasz,
>
> On Tue, Jan 09, 2024 at 01:32:34PM +0100, Lukasz Majewski wrote:
> > However, I'm wondering how the mainline Linux kernel could handle
> > HSR RedBox functionality (on document [1], Figure 2. we do have
> > "bridge" - OSI L2).
> >
> > To be more interesting - br0 can be created between hsr0 and e.g.
> > lan3. But as expected communication breaks on both directions (to
> > SAN and to HSR ring).
>
> Yes, I suppose this is how a RedBox should be modeled. In principle
> it's identical to how bridging with LAG ports (bond, team) works -
> either in software or offloaded.
> The trouble is that the HSR driver
> seems to only work with the DANH/DANP roles (as also mentioned in
> Documentation/networking/dsa/dsa.rst). I don't remember what doesn't
> work (or if I ever knew at all).
In the newest net-next only PRP_TLV_REDBOX_MAC is defined, which seems
to be REDBOX for DAN P (PRP).
> It might be the address substitution
> from hsr_xmit() that masks the MAC address of the SAN side device?
>
This needs to be further investigated.
> > Is there a similar functionality already present in the Linux kernel
> > (so this approach could be reused)?
> >
> > My (very rough idea) would be to extend KSZ9477 bridge join
> > functions to check if HSR capable interface is "bridged" and then
> > handle frames in a special way.
> >
> > However, I would like to first ask for as much input as possible -
> > to avoid any unnecessary work.
>
> First I'd figure out why the software data path isn't working, and if
> it can be fixed.
+1
> Then, fix that if possible, and add a new selftest to
> tools/testing/selftests/net/forwarding/, that should pass using veth
> interfaces as lower ports.
>
> Then, offloading something that has a clear model in software should
> be relatively easy, though you might need to add some logic to DSA.
> This is one place that needs to be edited, there may be others.
>
> /* dsa_port_pre_hsr_leave is not yet necessary since hsr
> devices cannot
> * meaningfully placed under a bridge yet
> */
>
Ok, the LAG approach in /net/dsa/user.c can be used as an example.
Thanks for shedding some light on this issue :-)
> >
> > Thanks in advance for help :-)
> >
> > Link:
> >
> > [1] -
> > https://ww1.microchip.com/downloads/en/Appnotes/AN3474-KSZ9477-High-Availability-Seamless-Redundancy-Application-Note-00003474A.pdf
> >
> >
> > Best regards,
> >
> > Lukasz Majewski
Best regards,
Lukasz Majewski
--
DENX Software Engineering GmbH, Managing Director: Erika Unter
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma@denx.de
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
next prev parent reply other threads:[~2024-01-09 14:04 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-22 13:31 [PATCH v6 net-next 0/5] net: dsa: hsr: Enable HSR HW offloading for KSZ9477 Lukasz Majewski
2023-09-22 13:31 ` [PATCH v6 net-next 1/5] net: dsa: propagate extack to ds->ops->port_hsr_join() Lukasz Majewski
2023-09-26 22:44 ` Vladimir Oltean
2023-09-22 13:31 ` [PATCH v6 net-next 2/5] net: dsa: notify drivers of MAC address changes on user ports Lukasz Majewski
2023-09-22 13:31 ` [PATCH v6 net-next 3/5] net: dsa: tag_ksz: Extend ksz9477_xmit() for HSR frame duplication Lukasz Majewski
2023-09-22 13:31 ` [PATCH v6 net-next 4/5] net: dsa: microchip: move REG_SW_MAC_ADDR to dev->info->regs[] Lukasz Majewski
2023-09-22 13:31 ` [PATCH v6 net-next 5/5] net: dsa: microchip: Enable HSR offloading for KSZ9477 Lukasz Majewski
2023-09-26 22:54 ` [PATCH v6 net-next 0/5] net: dsa: hsr: Enable HSR HW " Vladimir Oltean
2023-09-28 10:41 ` Lukasz Majewski
2023-10-03 7:58 ` Lukasz Majewski
2023-10-03 10:44 ` Vladimir Oltean
2023-10-03 12:51 ` Lukasz Majewski
2023-10-03 13:42 ` Jakub Kicinski
2023-10-03 14:15 ` Lukasz Majewski
2024-01-09 12:32 ` [net][hsr] Question regarding HSR RedBox functionality implementation (preferably on KSZ9477) Lukasz Majewski
2024-01-09 12:52 ` Vladimir Oltean
2024-01-09 14:04 ` Lukasz Majewski [this message]
2024-02-14 10:44 ` Lukasz Majewski
2024-02-15 11:51 ` Lukasz Majewski
2024-02-15 17:23 ` Stephen Hemminger
2023-10-03 13:50 ` [PATCH v6 net-next 0/5] net: dsa: hsr: Enable HSR HW offloading for KSZ9477 patchwork-bot+netdevbpf
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240109150414.6a402fec@wsk \
--to=lukma@denx.de \
--cc=Tristram.Ha@microchip.com \
--cc=UNGLinuxDriver@microchip.com \
--cc=andrew@lunn.ch \
--cc=bigeasy@linutronix.de \
--cc=george.mccollister@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=o.rempel@pengutronix.de \
--cc=olteanv@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.