From: Jay Vosburgh <fubar@us.ibm.com>
To: Stephen Hemminger <shemminger@linux-foundation.org>
Cc: Jiri Bohac <jbohac@suse.cz>,
netdev@vger.kernel.org, David Miller <davem@davemloft.net>
Subject: Re: PATCH: fix bridged 802.3ad bonding
Date: Tue, 03 Jun 2008 14:22:08 -0700 [thread overview]
Message-ID: <18105.1212528128@death> (raw)
In-Reply-To: <20080603131326.1f70915e@extreme>
Stephen Hemminger <shemminger@linux-foundation.org> wrote:
>On Tue, 3 Jun 2008 21:32:27 +0200
>Jiri Bohac <jbohac@suse.cz> wrote:
[...]
>> But I think I found a much nicer fix for the problem:
>>
>> diff --git a/net/bridge/br_input.c b/net/bridge/br_input.c
>> --- a/net/bridge/br_input.c
>> +++ b/net/bridge/br_input.c
>> @@ -136,6 +136,10 @@ struct sk_buff *br_handle_frame(struct net_bridge_port *p, struct sk_buff *skb)
>> if (skb->protocol == htons(ETH_P_PAUSE))
>> goto drop;
>>
>> + /* Don't touch SLOW frames (LACP, etc.) */
>> + if (skb->protocol == htons(ETH_P_SLOW))
>> + return skb;
>> +
>> /* Process STP BPDU's through normal netif_receive_skb() path */
>> if (p->br->stp_enabled != BR_NO_STP) {
>> if (NF_HOOK(PF_BRIDGE, NF_BR_LOCAL_IN, skb, skb->dev,
>>
>> The LACP frames always have the link-local destination MAC
>> address and so they are not handled by the bridge anyway. They
>> are only dropped, unless STP is turned on. So let's just not drop
>> the SLOW packets. Does this look better?
>>
>
>Better, but still have a couple of questions:
>1) Do you want to processing frames when bridge port is in blocking
> state (because STP detected a loop)?
I believe so. If I'm reading correctly, the layout is something
like:
bridge -> bond0 -> [ eth0, eth1, etc ]
so bonding needs to see the LACPDUs in order to decide which
subset of the slaves (eth0, eth1, etc) should be active and which should
not. That, in turn, may affect the topology of the network. In other
words, the presence or absence of a loop is determined by the set of
interfaces (or, really, the location of the peer of that set) made
active by link aggregation. For 802.3ad, the set of active slaves
(active aggregator) will always connect to the same peer, but link
failures could move the active aggregator from one peer to a different
peer.
This seems to agree with my (brief) examination of standards and
documentation: 802.3ad doesn't really say much about STP, 802.1d 6.5.1
discusses link aggregation a bit, in particular:
a) For a MAC entity that contains a Link Aggregation sublayer, the value
of MAC_Enabled is directly determined by the value of the aAggAdminState
attribute (30.7.1.13 in IEEE Std 802.3-2002), and the value of
MAC_Operational is directly determined by the value of the aAggOperState
attribute (30.7.1.13 in IEEE Std 802.3).
suggests that the aggregation is treated as a unit (I'm not that
familiar with 802.1d, so I could be misreading it here).
Lastly, Cisco's Etherchannel implementation treats a LACP
aggregation as a single bridge port.
Thoughts?
-J
---
-Jay Vosburgh, IBM Linux Technology Center, fubar@us.ibm.com
next prev parent reply other threads:[~2008-06-03 21:22 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-06-03 13:21 PATCH: fix bridged 802.3ad bonding Jiri Bohac
2008-06-03 14:13 ` Patrick McHardy
2008-06-03 16:46 ` Stephen Hemminger
2008-06-03 19:32 ` Jiri Bohac
2008-06-03 20:13 ` Stephen Hemminger
2008-06-03 21:20 ` Jiri Bohac
2008-06-03 21:22 ` Jay Vosburgh [this message]
2008-06-03 21:43 ` Stephen Hemminger
2008-06-04 4:55 ` Stephen Hemminger
2008-06-04 8:24 ` Jiri Bohac
2008-06-04 16:06 ` Stephen Hemminger
2008-06-05 10:13 ` Jiri Bohac
2008-06-10 22:42 ` David Miller
2008-06-17 15:33 ` Jiri Bohac
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=18105.1212528128@death \
--to=fubar@us.ibm.com \
--cc=davem@davemloft.net \
--cc=jbohac@suse.cz \
--cc=netdev@vger.kernel.org \
--cc=shemminger@linux-foundation.org \
/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;
as well as URLs for NNTP newsgroup(s).