Re: bridge: HSR support
From: Arvid Brodin <hidden>
Date: 2011-10-24 14:18:03
Stephen Hemminger wrote:
On Tue, 11 Oct 2011 20:25:08 +0200 Arvid Brodin [off-list ref] wrote:quoted
Hi, I want to add support for HSR ("High-availability Seamless Redundancy", IEC-62439-3) to the bridge code. With HSR, all connected units have two network ports and are connected in a ring. All new Ethernet packets are sent on both ports (or passed through if the current unit is not the originating unit). The same packet is never passed twice. Non-HSR units are not allowed in the ring. This gives instant, reconfiguration-free failover. I'd like your input on how to design the user interface. To me it seems natural to use bridge-utils, which of course today supports STP. One solution is to simply add an "hsr" command: # brctl hsr <bridge> on|off But HSR is mutually exclusive to other modes, and I think that STP and standard bridge mode are mutually exclusive, too? Perhaps it would be better (more user- friendly) to # brctl type <bridge> standard|stp|hsr ? 'brctl stp <bridge> on|off' would have to be kept for compatibility, but could be a simple wrapper for 'brctl type <bridge> stp|standard' What do you think about this?Why is it a bridge thing and not a standalone or bonding (or the new team device feature? Wouldn't users want to use it without all the stuff related to bridging. The fact that it doesn't work with STP is a big red flag that it doesn't belong in the bridge.
Ok, having read up some more on this it looks like STP is a standardised part of bridging, so I guess you're right. I need to do two things: 1) Bind two network interfaces into one (say, eth0 & eth1 => hsr0). Frames sent on hsr0 should get an HSR tag (including the correct EtherType) and go out on both eth0 and eth1. 2) Ingress frames on eth0 & eth1, with EtherType 0x88fb, should be captured and handled specially (either received on hsr0 or forwarded to the other bound physical interface). Any ideas on the best way to implement this -- what's the nicest place to "hook into" for this? -- Arvid Brodin Enea Services Stockholm AB