All of lore.kernel.org
 help / color / mirror / Atom feed
* 2 ports could not bond to a aggregator in 802.3ad mode issue
@ 2007-12-25  7:40 lewis_zyxel
       [not found] ` <20071226141301.8231163b.akpm@linux-foundation.org>
  0 siblings, 1 reply; 3+ messages in thread
From: lewis_zyxel @ 2007-12-25  7:40 UTC (permalink / raw)
  To: linux-kernel

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


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2007-12-27  2:48 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-12-25  7:40 2 ports could not bond to a aggregator in 802.3ad mode issue lewis_zyxel
     [not found] ` <20071226141301.8231163b.akpm@linux-foundation.org>
2007-12-26 22:47   ` Jay Vosburgh
2007-12-27  2:48     ` Lewis Li

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.