All of lore.kernel.org
 help / color / mirror / Atom feed
From: "lewis_zyxel" <lachang.li@zyxel.com.tw>
To: <linux-kernel@vger.kernel.org>
Subject: 2 ports could not bond to a aggregator in 802.3ad mode issue
Date: Tue, 25 Dec 2007 15:40:30 +0800	[thread overview]
Message-ID: <001201c846c9$6d03de40$431a17ac@ZyXEL.com> (raw)

I wish to be personally CC'ed the answers/comments posted to the list in 
response to my posting.

I have 2 ports(eth0, eth1) in my device. I use kernel(2.6.23) bonding driver 
v3.1.3 (June 13, 2007) to bond 2 ports to one aggregator and use the 
following commands to setup the environment:
insmod ./bonding.ko mode=4 miimon=100
ifconfig bond0 172.23.26.223 netmask 255.255.255.0
ifconfig eth0 down
ifconfig eth1 down
ifenslave bond0 eth0 eth1

After the setting, I cat the proc entry and got the following information

Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer2 (0)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

802.3ad info
LACP rate: slow
Active Aggregator Info:
        Aggregator ID: 1
        Number of ports: 1
        Actor Key: 17
        Partner Key: 1
        Partner Mac Address: 00:00:00:00:00:00

Slave Interface: eth0
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:e0:0c:48:00:04
Aggregator ID: 1

Slave Interface: eth1
MII Status: up
Link Failure Count: 0
Permanent HW addr: 6f:74:66:73:74:79
Aggregator ID: 2

It shows that 2 ports could not bond to a aggregator. After I trace the the 
bonding driver code, I modify the ad_port_selection_logic() in bond_3ad.c as 
following:

- ((MAC_ADDRESS_COMPARE(&(port->partner_oper_system), &(null_mac_addr)) && 
// partner answers
+ (!(MAC_ADDRESS_COMPARE(&(port->partner_oper_system), &(null_mac_addr)) && 
// partner answers
            !aggregator->is_individual)  // but is not individual OR
            )

After the modification, I cat the proc entry again and the result is as 
following:
/home/shares # cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.1.3 (June 13, 2007)

Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer2 (0)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

802.3ad info
LACP rate: slow
Active Aggregator Info:
        Aggregator ID: 1
        Number of ports: 2
        Actor Key: 17
        Partner Key: 1
        Partner Mac Address: 00:00:00:00:00:00

Slave Interface: eth0
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:e0:0c:48:00:04
Aggregator ID: 1

Slave Interface: eth1
MII Status: up
Link Failure Count: 0
Permanent HW addr: 6f:74:66:73:74:79
Aggregator ID: 1

The behavior changes from 'one aggregator with one port'  to 'one aggregator 
with 2 ports', the latter seems more accurate. Is there a bug in bonding 
driver code v3.1.3 (June 13, 2007)?
Best regards,
Lewis Li


             reply	other threads:[~2007-12-25  7:56 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-12-25  7:40 lewis_zyxel [this message]
     [not found] ` <20071226141301.8231163b.akpm@linux-foundation.org>
2007-12-26 22:47   ` 2 ports could not bond to a aggregator in 802.3ad mode issue Jay Vosburgh
2007-12-27  2:48     ` Lewis Li

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='001201c846c9$6d03de40$431a17ac@ZyXEL.com' \
    --to=lachang.li@zyxel.com.tw \
    --cc=linux-kernel@vger.kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.