From: "Jürgen Lambrecht" <j.lambrecht@televic.com>
To: "Allan W. Nielsen" <allan.nielsen@microchip.com>
Cc: Andrew Lunn <andrew@lunn.ch>,
Horatiu Vultur <horatiu.vultur@microchip.com>,
linux-kernel@vger.kernel.org, netdev@vger.kernel.org,
bridge@lists.linux-foundation.org, jiri@resnulli.us,
ivecera@redhat.com, davem@davemloft.net,
roopa@cumulusnetworks.com, nikolay@cumulusnetworks.com,
anirudh.venkataramanan@intel.com, olteanv@gmail.com,
jeffrey.t.kirsher@intel.com, UNGLinuxDriver@microchip.com
Subject: Re: [RFC net-next v3 06/10] net: bridge: mrp: switchdev: Extend switchdev API to offload MRP
Date: Mon, 27 Jan 2020 15:39:05 +0100 [thread overview]
Message-ID: <8561814d-bfae-5e23-b0e8-a0e3adf800b4@televic.com> (raw)
In-Reply-To: <20200127122752.g4eanjl2naazyfh3@lx-anielsen.microsemi.net>
On 1/27/20 1:27 PM, Allan W. Nielsen wrote:
> CAUTION: This Email originated from outside Televic. Do not click links or open attachments unless you recognize the sender and know the content is safe.
>
>
> Hi Jürgen,
>
> On 27.01.2020 12:29, Jürgen Lambrecht wrote:
>> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
>>
>> On 1/26/20 4:59 PM, Andrew Lunn wrote:
>>> Given the design of the protocol, if the hardware decides the OS etc
>>> is dead, it should stop sending MRP_TEST frames and unblock the ports.
>>> If then becomes a 'dumb switch', and for a short time there will be a
>>> broadcast storm. Hopefully one of the other nodes will then take over
>>> the role and block a port.
This can probably be a configuration option in the hardware, how to fall-back.
>
>> In my experience a closed loop should never happen. It can make
>> software crash and give other problems. An other node should first
>> take over before unblocking the ring ports. (If this is possible - I
>> only follow this discussion halfly)
>>
>> What is your opinion?
> Having loops in the network is never a good thing - but to be honest, I
> think it is more important that we ensure the design can survive and
> recover from loops.
Indeed
>
> With the current design, it will be really hard to void loops when the
> network boot. MRP will actually start with the ports blocked, but they
> will be unblocked in the period from when the bridge is created and
> until MRP is enabled. If we want to change this (which I'm not too keen
> on), then we need to be able to block the ports while the bridge is
> down.
Our ring network is part of a bigger network. Loops are really not allowed.
>
> And even if we do this, then we can not guarantee to avoid loops. Lets
> assume we have a small ring with just 2 nodes: a MRM and a MRC. Lets
> assume the MRM boots first. It will unblock both ports as the ring is
> open. Now the MRC boots, and make the ring closed, and create a loop.
> This will take some time (milliseconds) before the MRM notice this and
> block one of the ports.
In my view there is a bring-up and tear-down module needed. I don't know if it should be part of MRP or not? Probably not, so something on top of the mrp daemon.
>
> But while we are at this topic, we need to add some functionality to
> the user-space application such that it can set the priority of the MRP
> frames. We will get that fixed.
Indeed! In my old design I had to give high priority, else the loop was wrongly closed at high network load.
I guess you mean the priority in the VLAN header?
I think to remember one talked about the bride code being VLAN-agnostic.
>
>> (FYI: I made that mistake once doing a proof-of-concept ring design:
>> during testing, when a "broken" Ethernet cable was "fixed" I had for a
>> short time a loop, and then it happened often that that port of the
>> (Marvell 88E6063) switch was blocked. (To unblock, only solution was
>> to bring that port down and up again, and then all "lost" packets came
>> out in a burst.) That problem was caused by flow control (with pause
>> frames), and disabling flow control fixed it, but flow-control is
>> default on as far as I know.)
> I see. It could be fun to see if what we have proposed so far will with
> with such a switch.
Depending on the projects I could work on it later this year (or only next year or not..)
Kind regards,
Jürgen
>
> /Allan
>
next prev parent reply other threads:[~2020-01-27 14:39 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-01-24 16:18 [RFC net-next v3 00/10] net: bridge: mrp: Add support for Media Redundancy Protocol (MRP) Horatiu Vultur
2020-01-24 16:18 ` [RFC net-next v3 01/10] net: bridge: mrp: Expose mrp attributes Horatiu Vultur
2020-01-24 16:18 ` [RFC net-next v3 02/10] net: bridge: mrp: Expose function br_mrp_port_open Horatiu Vultur
2020-01-24 17:37 ` Andrew Lunn
2020-01-25 11:29 ` Horatiu Vultur
2020-01-24 16:18 ` [RFC net-next v3 03/10] net: bridge: mrp: Add MRP interface used by netlink Horatiu Vultur
2020-01-24 17:43 ` Andrew Lunn
2020-01-25 11:37 ` Horatiu Vultur
2020-01-25 15:20 ` Andrew Lunn
2020-01-25 19:16 ` Allan W. Nielsen
2020-01-26 13:28 ` Horatiu Vultur
2020-01-26 15:39 ` Andrew Lunn
2020-02-20 9:08 ` Nikolay Aleksandrov
2020-02-20 13:00 ` Allan W. Nielsen
2020-01-24 16:18 ` [RFC net-next v3 04/10] net: bridge: mrp: Add generic netlink interface to configure MRP Horatiu Vultur
2020-01-25 15:34 ` Andrew Lunn
2020-01-25 19:28 ` Allan W. Nielsen
2020-01-26 13:39 ` Horatiu Vultur
2020-01-24 16:18 ` [RFC net-next v3 05/10] net: bridge: mrp: Update MRP interface to add switchdev support Horatiu Vultur
2020-01-24 16:18 ` [RFC net-next v3 06/10] net: bridge: mrp: switchdev: Extend switchdev API to offload MRP Horatiu Vultur
2020-01-25 16:35 ` Andrew Lunn
2020-01-26 13:22 ` Horatiu Vultur
2020-01-26 15:59 ` Andrew Lunn
2020-01-27 11:04 ` Allan W. Nielsen
2020-01-27 14:41 ` Jürgen Lambrecht
[not found] ` <c5733ddb-a837-b866-54bf-c631baf36c54@televic.com>
2020-01-27 15:06 ` Andrew Lunn
2020-01-28 9:50 ` Jürgen Lambrecht
2020-01-27 11:29 ` Jürgen Lambrecht
2020-01-27 12:27 ` Allan W. Nielsen
2020-01-27 14:39 ` Jürgen Lambrecht [this message]
2020-01-28 9:58 ` Allan W. Nielsen
2020-01-24 16:18 ` [RFC net-next v3 07/10] net: bridge: mrp: switchdev: Implement MRP API for switchdev Horatiu Vultur
2020-01-24 16:18 ` [RFC net-next v3 08/10] net: bridge: mrp: Connect MRP api with the switchev API Horatiu Vultur
2020-01-24 16:18 ` [RFC net-next v3 09/10] net: bridge: mrp: Integrate MRP into the bridge Horatiu Vultur
2020-01-25 15:42 ` Andrew Lunn
2020-01-26 12:49 ` Horatiu Vultur
2020-01-25 16:16 ` Andrew Lunn
2020-01-26 13:01 ` Horatiu Vultur
2020-01-26 17:12 ` Andrew Lunn
2020-01-27 10:57 ` Allan W. Nielsen
2020-01-27 13:02 ` Horatiu Vultur
2020-01-27 13:40 ` Andrew Lunn
2020-01-28 9:56 ` Jürgen Lambrecht
2020-01-28 10:17 ` Allan W. Nielsen
2020-01-24 16:18 ` [RFC net-next v3 10/10] net: bridge: mrp: Update Kconfig and Makefile Horatiu Vultur
2020-01-24 20:34 ` [RFC net-next v3 00/10] net: bridge: mrp: Add support for Media Redundancy Protocol (MRP) Allan W. Nielsen
2020-01-24 21:05 ` Vinicius Costa Gomes
2020-01-25 9:44 ` Allan W. Nielsen
2020-01-25 16:23 ` Andrew Lunn
2020-01-25 19:12 ` Allan W. Nielsen
2020-01-25 21:18 ` Vinicius Costa Gomes
2020-01-28 10:35 ` Jürgen Lambrecht
2020-02-18 12:18 ` Allan W. Nielsen
2020-02-18 16:55 ` Jakub Kicinski
2020-02-20 10:48 ` Nikolay Aleksandrov
2020-02-20 12:58 ` Allan W. Nielsen
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=8561814d-bfae-5e23-b0e8-a0e3adf800b4@televic.com \
--to=j.lambrecht@televic.com \
--cc=UNGLinuxDriver@microchip.com \
--cc=allan.nielsen@microchip.com \
--cc=andrew@lunn.ch \
--cc=anirudh.venkataramanan@intel.com \
--cc=bridge@lists.linux-foundation.org \
--cc=davem@davemloft.net \
--cc=horatiu.vultur@microchip.com \
--cc=ivecera@redhat.com \
--cc=jeffrey.t.kirsher@intel.com \
--cc=jiri@resnulli.us \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=nikolay@cumulusnetworks.com \
--cc=olteanv@gmail.com \
--cc=roopa@cumulusnetworks.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®