RE: [PATCH][RFC] net/bridge: add basic VEPA support
From: Fischer, Anna <hidden>
Date: 2009-08-13 22:24:55
Also in:
bridge, lkml
Subject: Re: [PATCH][RFC] net/bridge: add basic VEPA support On Tuesday 11 August 2009, Paul Congdon (UC Davis) wrote:quoted
quoted
quoted
The patch from Eric Biederman to allow macvlan to bridge between its slave ports is at http://kerneltrap.org/mailarchive/linux-netdev/2009/3/9/5125774Looking through the discussions here, it does not seem as if adecisionquoted
quoted
was made to integrate those patches, because they would make the macvlan interface behave too much like a bridge.Right, that question is still open, and dont't see it as very important right now, as long as we can still use it for VEPA.quoted
quoted
Also, it seems as if there was still a problem with doing multicast/broadcast delivery when enabling local VM-to-VM communication. Is that solved by now?Not yet, but I guess it comes as a natural extension when I fix multicast/broadcast delivery from the reflective relay for VEPA. The logic that I would use there is: broadcast from a dowstream port: if (bridge_mode(source_port)) { forward_to_upstream(frame); for_each_downstream(port) { /* deliver to all bridge ports except self, do not deliver to any VEPA port. */ if (bridge_mode(port) && port != source_port) { forward_to_downstream(frame, port); } } } else { forward_to_upstream(frame); } broadcast from the upstream port if (bridge_mode(frame.source)) { /* comes from a port in bridge mode, so has already been delivered to all other bridge ports */ for_each_downstream(port) { if (!bridge_mode(port)) { forward_to_downstream(frame, port); } } } else if (vepa_mode(frame.source)) { /* comes from VEPA port, so need to deliver to all bridge and all vepa ports except self */ for_each_downstream(port) { if (port != frame.source) forward_to_downstream(frame, port); } else { /* external source, so flood to everyone */ for_each_downstream(port) { forward_to_downstream(frame, port); } For multicast, we can do the same, or optionally add a per-port filter as you mentioned, if it becomes a bottleneck. Do you think this addresses the problem, or did I miss something important?
Yes, I think this addresses the problem. It would be very useful if this functionality was in macvlan. Thanks, Anna