From: Jay Vosburgh <fubar@us.ibm.com>
To: Neil Horman <nhorman@tuxdriver.com>
Cc: WeipingPan <panweiping3@gmail.com>, netdev@vger.kernel.org
Subject: Re: Is 802.3ad mode in bonding useful ?
Date: Fri, 29 Apr 2011 10:01:06 -0700 [thread overview]
Message-ID: <11733.1304096466@death> (raw)
In-Reply-To: <20110429104342.GA22387@hmsreliant.think-freely.org>
Neil Horman <nhorman@tuxdriver.com> wrote:
>On Fri, Apr 29, 2011 at 11:17:48AM +0800, WeipingPan wrote:
>> On 04/28/2011 08:21 PM, Neil Horman wrote:
>> >On Thu, Apr 28, 2011 at 03:33:50PM +0800, WeipingPan wrote:
>> >>Hi, all,
>> >>
>> >>802.3ad mode in bonding implements 802.3ad standard.
>> >>
>> >>I am just wondering 802.3ad mode is useful,
>> >>since bonding has many modes like balance-rr, active-backup, etc.
>> >>
>> >Yes, of course its usefull. For switches which support 802.3ad, this mode
>> >allows for both peers to understand that the links in the bond are acting as an
>> >aggregate, which makes it easier to prevent things like inadvertently looped
>> >back frames, for which the other modes have to have all sorts of hacks to
>> >prevent.
>> What is looped back frames here ?
>In this case they are frames that get received by the bond, which the bond
>itself sent. In modes where more than one slave is active, and in which the
>switch has no additional knoweldge of the aggregate (e.g. round robin mode), the
>bond can send a frame on one slave, which the switch may broadcast to all ports,
>causing the frame just sent by the bond to then get received on another slave.
Actually, the round-robin (balance-rr) and balance-xor modes
were originally meant to interoperate with a switch configured for
traditional Etherchannel (old versions of Sun Trunking, etc) the common
term in use now seems to be "static link aggregation" to distinguish it
from 802.3ad dynamic link aggregation. When the switch is set up that
way, there are no loopback problems, because the switch knows that all
of the ports are really one big aggregate, and it won't send broadcast
or multicast packets to more than one port of the aggregation, and knows
that a bcast/mcast originating from one of those ports should not loop
back to another port of the aggregation.
What Neil is talking about is running -rr or -xor against,
basically, a hub or unmanaged switch, in which the switch (a) doesn't
have any link aggregation capabilities, and (b) won't complain when it
sees the same MAC address coming in from multiple ports more or less
simultaneously. Managed switches (that have link aggregation
capabilities) will generally complain about "flapping" if they see the
same source MAC address arrive on multiple switch ports in a short
period of time.
The special hacks now in bond_handle_frame aren't really about
preventing loopbacks, but rather to suppress duplicates, particularly
for the short periods of time that a switch is flooding traffic to all
ports because its mac table is not up to date. This is an issue in,
e.g., active-backup mode, in which the switch has no special
configuration. This code has moved around a lot lately, so older
kernels will have a substantially different layout, although the logic
is still pretty much the same.
I don't recall that there's anything specifically to suppress
loopbacks for -rr or -xor mode, although there is transmit logic to keep
things like IGMP messages on the same slave all the time to keep the
switches happier.
>> I didn't see any special code to handle looped back frames in other
>> modes in bonding,
>> can you take an example ?
>>
>See bond_handle_frame.
The actual testing logic is in bond_should_deliver_exact_match.
-J
---
-Jay Vosburgh, IBM Linux Technology Center, fubar@us.ibm.com
prev parent reply other threads:[~2011-04-29 17:01 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-04-28 7:33 Is 802.3ad mode in bonding useful ? WeipingPan
2011-04-28 12:21 ` Neil Horman
[not found] ` <0FBC7C9C2640634A8B837C2EFFCFF32F0184732D72@SHEXMB-01.global.atheros.com>
2011-04-28 13:23 ` 答复: " Neil Horman
2011-04-29 3:17 ` WeipingPan
2011-04-29 10:43 ` Neil Horman
2011-04-29 13:59 ` WeipingPan
2011-04-29 14:04 ` John Lumby
2011-04-29 15:21 ` Rick Jones
2011-04-29 17:01 ` Jay Vosburgh [this message]
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=11733.1304096466@death \
--to=fubar@us.ibm.com \
--cc=netdev@vger.kernel.org \
--cc=nhorman@tuxdriver.com \
--cc=panweiping3@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 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).