linux/drivers
Jay Vosburgh 2d6682db11 bonding: fix 802.3ad standards compliance error
The language of 802.3ad 43.4.9 requires the "recordPDU" function
to, in part, compare the Partner parameter values in a received LACPDU
to the stored Actor values.  If those match, then the Partner's
synchronization state is set to true.

	The current 802.3ad implementation is performing these steps out
of order; first, the synchronization check is done, then the paramters are
checked to see if they match (the synch check being done against a match
check of a prior LACPDU).  This causes delays in establishing aggregators
in some circumstances.

	This patch modifies the 802.3ad code to call __choose_matched,
the function that does the "match" comparisions, as the first step of
__record_pdu, instead of immediately afterwards.  This new behavior is
in compliance with the language of the standard.

	Some additional commentary relating to code vs. standard is also
added.

	Reported by Martin Patterson <martin@gear6.com> who also supplied
the logic of the fix and verified the patch.

Signed-off-by: Jay Vosburgh <fubar@us.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2009-11-15 22:21:34 -08:00
..
accessibility
acpi
amba
ata
atm ambassador: declare MODULE_FIRMWARE 2009-11-10 20:28:49 -08:00
auxdisplay
base
block
bluetooth
cdrom
char
clocksource
connector
cpufreq
cpuidle
crypto
dca
dio
dma
edac
eisa
firewire
firmware
gpio
gpu
hid
hwmon
i2c
ide
idle
ieee1394
ieee802154 fakehard: mlme_ops->get_phy implementation 2009-11-06 14:32:20 +03:00
infiniband
input
isdn speedfax: declare MODULE_FIRMWARE 2009-11-10 20:30:37 -08:00
leds
lguest
macintosh
mca
md
media
memstick
message
mfd headers: remove sched.h from poll.h 2009-10-04 15:05:10 -07:00
misc iwmc3200top: simplify the driver version 2009-11-15 22:08:31 -08:00
mmc
mtd
net bonding: fix 802.3ad standards compliance error 2009-11-15 22:21:34 -08:00
nubus
of
oprofile
parisc parisc: led: Use for_each_netdev_rcu() 2009-11-10 20:54:43 -08:00
parport
pci ACPICA: fixup after acpi_get_object_info() change 2009-09-25 14:24:22 -04:00
pcmcia
platform
pnp
power
pps
ps3
rapidio
regulator
rtc
s390 netiucv: displayed TX bytes value much too high 2009-11-13 20:47:01 -08:00
sbus
scsi
serial Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-11-06 00:55:55 -08:00
sfi
sh
sn
spi
ssb Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-11-11 11:38:16 -08:00
staging Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 2009-11-09 11:17:24 -08:00
tc
telephony
thermal
uio
usb
uwb
video
virtio
vlynq
w1
watchdog
xen
zorro
Kconfig
Makefile