linux/drivers/net
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
..
appletalk
arcnet
arm ARM: fix bug of checking on signed return value using unsigned statement in w90p910 platform 2009-11-13 20:38:50 -08:00
atl1c atl1c: change atl1c_buffer struct and restructure clean atl1c_buffer procedure 2009-11-07 00:46:35 -08:00
atl1e net: Use netdev_alloc_skb_ip_align() 2009-10-13 11:48:18 -07:00
atlx net: Use netdev_alloc_skb_ip_align() 2009-10-13 11:48:18 -07:00
benet Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-11-08 23:00:54 -08:00
bonding bonding: fix 802.3ad standards compliance error 2009-11-15 22:21:34 -08:00
can net/can: add driver for mscan family & mpc52xx_mscan 2009-11-13 20:47:03 -08:00
chelsio
cris
cxgb3 cxgb3: declare MODULE_FIRMWARE 2009-11-10 20:28:50 -08:00
e1000 e1000: Fix erroneous display of stats by ethtool -S 2009-10-13 11:48:28 -07:00
e1000e Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-11-06 00:55:55 -08:00
ehea net: Use netdev_alloc_skb_ip_align() 2009-10-13 11:48:18 -07:00
enic net: Use netdev_alloc_skb_ip_align() 2009-10-13 11:48:18 -07:00
fs_enet net: Fix OF platform drivers coldplug/hotplug when compiled as modules 2009-10-14 14:54:52 -07:00
hamradio hamradio/mkiss: fix typo in compat_ioctl 2009-11-15 21:13:21 -08:00
ibm_newemac Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-10-27 01:03:26 -07:00
igb igb: only recycle page if it is on our numa node 2009-11-13 20:46:53 -08:00
igbvf Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-10-27 01:03:26 -07:00
irda Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-10-13 12:55:20 -07:00
ixgb ixgb: Fix erroneous display of stats by ethtool -S 2009-10-13 11:48:29 -07:00
ixgbe ixgbe: Make queue pairs on single MSI-X interrupts 2009-11-13 20:46:55 -08:00
ixp2000 Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-10-13 12:55:20 -07:00
mlx4
myri10ge myri10ge: declare MODULE_FIRMWARE 2009-11-10 20:28:51 -08:00
netxen netxen: update version to 4.0.65 2009-10-28 04:11:10 -07:00
pcmcia pcnet-cs: declare MODULE_FIRMWARE 2009-11-10 20:28:53 -08:00
phy tg3 / broadcom: Optionally disable TXC if no link 2009-11-02 23:39:15 -08:00
qlge qlge: Change version to v1.00.00.23.00.00-01. 2009-11-11 19:12:12 -08:00
sfc sfc: Enable heuristic selection between page and skb RX buffers 2009-10-29 21:37:07 -07:00
skfp
stmmac net: add support for STMicroelectronics Ethernet controllers. 2009-10-14 15:13:45 -07:00
tokenring tms380tr: declare MODULE_FIRMWARE 2009-11-10 20:28:53 -08:00
tulip
usb usbnet: Set link down initially for drivers that update link state 2009-11-10 20:54:40 -08:00
vmxnet3 vmxnet3: remove duplicate #include 2009-10-28 22:36:54 -07:00
vxge vxge: Configure the number of transmit descriptors per packet to MAX_SKB_FRAGS + 1. 2009-10-28 02:46:54 -07:00
wan net, compat_ioctl: handle socket ioctl abuses in tty drivers 2009-11-06 22:52:38 -08:00
wimax Merge branch 'linux-2.6.33.y' of git://git.kernel.org/pub/scm/linux/kernel/git/inaky/wimax 2009-11-06 05:01:54 -08:00
wireless iwlwifi: fix iwl1000 "RTS/CTS for HT" merge damage 2009-11-11 13:04:42 -08:00
3c59x.c net: Use netdev_alloc_skb_ip_align() 2009-10-13 11:48:18 -07:00
3c501.c
3c501.h
3c503.c
3c503.h
3c505.c
3c505.h
3c507.c
3c509.c
3c515.c
3c523.c
3c523.h
3c527.c
3c527.h
7990.c
7990.h
8139cp.c net: Use netdev_alloc_skb_ip_align() 2009-10-13 11:48:18 -07:00
8139too.c net: Use netdev_alloc_skb_ip_align() 2009-10-13 11:48:18 -07:00
8390.c
8390.h
8390p.c
82596.c
a2065.c
a2065.h
ac3200.c
acenic.c acenic: Pass up error code from ace_load_firmware() 2009-10-12 04:18:48 -07:00
acenic.h
amd8111e.c
amd8111e.h
apne.c
ariadne.c
ariadne.h
at1700.c
atarilance.c
atp.c
atp.h
au1000_eth.c net: au1000_eth: add missing capability.h 2009-10-22 21:51:27 -07:00
au1000_eth.h
ax88796.c
b44.c
b44.h
bcm63xx_enet.c net: Use netdev_alloc_skb_ip_align() 2009-10-13 11:48:18 -07:00
bcm63xx_enet.h
bfin_mac.c
bfin_mac.h
bmac.c
bmac.h
bnx2_fw.h
bnx2.c bnx2: avoid compiler warnings 2009-11-04 05:06:26 -08:00
bnx2.h cnic: Fix L2CTX_STATUSB_NUM offset in context memory. 2009-10-28 03:41:59 -07:00
bnx2x_dump.h
bnx2x_fw_defs.h
bnx2x_fw_file_hdr.h
bnx2x_hsi.h bnx2x: Add support for BCM84823 2009-11-05 20:00:41 -08:00
bnx2x_init_ops.h
bnx2x_init.h
bnx2x_link.c bnx2x: Fix register access timeout in 10M 2009-11-05 20:00:52 -08:00
bnx2x_link.h bnx2x: Fix CL73 autoneg issues 2009-11-05 20:00:29 -08:00
bnx2x_main.c bnx2x: version 1.52.1-4 2009-11-10 20:54:38 -08:00
bnx2x_reg.h bnx2x: Fix 10G mode in BCM8481/BCM84823 2009-11-05 20:00:48 -08:00
bnx2x.h bnx2x: Change coalescing granularity to 4us 2009-11-10 20:54:36 -08:00
bsd_comp.c
cassini.c NET: cassini, fix lock imbalance 2009-11-06 20:26:09 -08:00
cassini.h
cnic_defs.h cnic: Add bnx2x data structures. 2009-10-11 23:30:16 -07:00
cnic_if.h bnx2x: Add main CNIC interface functions. 2009-10-11 23:30:14 -07:00
cnic.c cnic: ensure ulp_type is not negative 2009-11-04 05:06:23 -08:00
cnic.h cnic: Add bnx2x data structures. 2009-10-11 23:30:16 -07:00
cpmac.c net: Use netdev_alloc_skb_ip_align() 2009-10-13 11:48:18 -07:00
cs89x0.c
cs89x0.h
davinci_emac.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-11-06 00:55:55 -08:00
de600.c
de600.h
de620.c
de620.h
declance.c
defxx.c
defxx.h
depca.c
depca.h
dl2k.c net: Use netdev_alloc_skb_ip_align() 2009-10-13 11:48:18 -07:00
dl2k.h
dm9000.c DM9000: Wake on LAN support 2009-11-11 19:22:21 -08:00
dm9000.h DM9000: Wake on LAN support 2009-11-11 19:22:21 -08:00
dnet.c
dnet.h
dummy.c
e100.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-11-06 00:55:55 -08:00
e2100.c
eepro.c
eexpress.c
eexpress.h
enc28j60_hw.h
enc28j60.c
epic100.c
eql.c
es3210.c
eth16i.c
ethoc.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-10-27 01:03:26 -07:00
ewrk3.c
ewrk3.h
fealnx.c
fec_mpc52xx_phy.c net: Fix OF platform drivers coldplug/hotplug when compiled as modules 2009-10-14 14:54:52 -07:00
fec_mpc52xx.c net/fec_mpc52xx: Fix kernel panic on FEC error 2009-10-14 15:10:19 -07:00
fec_mpc52xx.h
fec.c net: fix section mismatch in fec.c 2009-10-20 18:51:37 -07:00
fec.h
forcedeth.c
fsl_pq_mdio.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-11-08 23:00:54 -08:00
fsl_pq_mdio.h fsl_pq_mdio: Add Suport for etsec2.0 devices. 2009-11-02 23:40:57 -08:00
gianfar_ethtool.c gianfar: Basic Support for programming hash rules 2009-11-02 23:40:59 -08:00
gianfar_sysfs.c gianfar: Fix thinko in gfar_set_rx_stash_index() 2009-11-11 19:03:34 -08:00
gianfar.c gianfar: Revive SKB recycling 2009-11-11 19:03:36 -08:00
gianfar.h gianfar: Fix compiler and sparse warnings 2009-11-08 00:43:17 -08:00
hamachi.c net: Use netdev_alloc_skb_ip_align() 2009-10-13 11:48:18 -07:00
hp100.c
hp100.h
hp-plus.c
hp.c
hplance.c
hplance.h
hydra.c
ibmlana.c
ibmlana.h
ibmveth.c
ibmveth.h
ifb.c ifb: RCU locking avoids touching dev refcount 2009-11-01 23:55:12 -08:00
ioc3-eth.c
ipg.c net: Use netdev_alloc_skb_ip_align() 2009-10-13 11:48:18 -07:00
ipg.h
isa-skeleton.c
iseries_veth.c
jazzsonic.c
jme.c
jme.h
Kconfig Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-10-27 01:03:26 -07:00
korina.c net: Use netdev_alloc_skb_ip_align() 2009-10-13 11:48:18 -07:00
ks8842.c net: Use netdev_alloc_skb_ip_align() 2009-10-13 11:48:18 -07:00
ks8851_mll.c
ks8851.c KS8851: Fix ks8851_set_rx_mode() for IFF_MULTICAST 2009-10-20 19:11:07 -07:00
ks8851.h KS8851: Fix MAC address write order 2009-10-20 19:11:06 -07:00
lance.c
lasi_82596.c
lib8390.c
lib82596.c net: Use netdev_alloc_skb_ip_align() 2009-10-13 11:48:18 -07:00
LICENSE.SRC
ll_temac_main.c
ll_temac_mdio.c
ll_temac.h
lne390.c
loopback.c
lp486e.c
mac89x0.c
mac8390.c
macb.c
macb.h
mace.c
mace.h
macmace.c
macsonic.c macsonic: fix crash on PowerBook 520 2009-11-06 20:26:10 -08:00
macvlan.c vlan/macvlan: propagate transmission state to upper layers 2009-11-13 14:07:33 -08:00
Makefile net: add support for STMicroelectronics Ethernet controllers. 2009-10-14 15:13:45 -07:00
mdio.c mdio: Expose pause frame advertising flags to ethtool 2009-10-12 23:59:08 -07:00
meth.c
meth.h
mii.c
mipsnet.c
mv643xx_eth.c
mvme147.c
myri_sbus.c
myri_sbus.h
natsemi.c
ne2.c
ne2k-pci.c
ne3210.c
ne-h8300.c
ne.c
netconsole.c
netx-eth.c netx: declare MODULE_FIRMWARE 2009-11-10 20:28:48 -08:00
ni52.c
ni52.h
ni65.c
ni65.h
ni5010.c
ni5010.h
niu.c niu.c: Use correct length in strncmp 2009-11-13 14:07:30 -08:00
niu.h
ns83820.c
pasemi_mac_ethtool.c pasemi_mac: ethtool set settings support 2009-10-12 13:26:39 -07:00
pasemi_mac.c
pasemi_mac.h
pci-skeleton.c
pcnet32.c
plip.c
ppp_async.c
ppp_deflate.c
ppp_generic.c
ppp_mppe.c
ppp_mppe.h
ppp_synctty.c
pppoe.c pppoe: RCU locking in get_item_by_addr() 2009-11-01 23:55:13 -08:00
pppol2tp.c inet: rename some inet_sock fields 2009-10-18 18:52:53 -07:00
pppox.c net: pass kern to net_proto_family create function 2009-11-05 22:18:14 -08:00
ps3_gelic_net.c
ps3_gelic_net.h
ps3_gelic_wireless.c
ps3_gelic_wireless.h
qla3xxx.c
qla3xxx.h
r6040.c
r8169.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-11-06 00:55:55 -08:00
rionet.c
rrunner.c
rrunner.h
s2io-regs.h
s2io.c
s2io.h
s6gmac.c
sb1000.c
sb1250-mac.c sb1250-mac: duplicate setting of bit V_MAC_RX_PL_THRSH(4) in sbmac_channel_start() 2009-10-13 03:44:08 -07:00
sc92031.c net: Use netdev_alloc_skb_ip_align() 2009-10-13 11:48:18 -07:00
seeq8005.c
seeq8005.h
sgiseeq.c net: Use netdev_alloc_skb_ip_align() 2009-10-13 11:48:18 -07:00
sgiseeq.h
sh_eth.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-10-27 01:03:26 -07:00
sh_eth.h net: add Runtime PM to the sh_eth driver 2009-10-13 03:44:05 -07:00
sis190.c net: Use netdev_alloc_skb_ip_align() 2009-10-13 11:48:18 -07:00
sis900.c
sis900.h
skge.c net: Use netdev_alloc_skb_ip_align() 2009-10-13 11:48:18 -07:00
skge.h
sky2.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-11-06 00:55:55 -08:00
sky2.h sky2: fix receive pause thresholds 2009-10-29 22:57:27 -07:00
slhc.c
slip.c net, compat_ioctl: handle socket ioctl abuses in tty drivers 2009-11-06 22:52:38 -08:00
slip.h
smc91x.c
smc91x.h
smc911x.c
smc911x.h
smc9194.c
smc9194.h
smc-mca.c
smc-ultra32.c
smc-ultra.c
smsc911x.c net: smsc911x: allow platform_data to specify mac address 2009-10-13 11:48:32 -07:00
smsc911x.h
smsc9420.c
smsc9420.h
sni_82596.c
sonic.c
sonic.h
Space.c
spider_net_ethtool.c
spider_net.c spider-net: declare MODULE_FIRMWARE 2009-11-10 20:28:52 -08:00
spider_net.h
starfire.c
stnic.c
sun3_82586.c
sun3_82586.h
sun3lance.c
sunbmac.c
sunbmac.h
sundance.c
sungem_phy.c
sungem_phy.h
sungem.c NET: sungem, use spin_trylock_irqsave 2009-11-04 08:37:31 -08:00
sungem.h
sunhme.c
sunhme.h
sunlance.c
sunqe.c
sunqe.h
sunvnet.c
sunvnet.h
tc35815.c tc35815: Kill unused code 2009-11-02 23:43:58 -08:00
tehuti.c trivial: remove duplicated MIN macro from tehuti. 2009-11-04 05:06:24 -08:00
tehuti.h trivial: remove duplicated MIN macro from tehuti. 2009-11-04 05:06:24 -08:00
tg3.c tg3: Update version to 3.104 2009-11-15 22:14:55 -08:00
tg3.h tg3: Fix DIDs, Enable 5717 support 2009-11-15 22:14:54 -08:00
tlan.c net: Use netdev_alloc_skb_ip_align() 2009-10-13 11:48:18 -07:00
tlan.h
tsi108_eth.c net: Use netdev_alloc_skb_ip_align() 2009-10-13 11:48:18 -07:00
tsi108_eth.h
tun.c net/tun: handle compat_ioctl directly 2009-11-06 22:52:32 -08:00
typhoon.c
typhoon.h
ucc_geth_ethtool.c
ucc_geth.c
ucc_geth.h
veth.c net: Support specifying the network namespace upon device creation. 2009-11-08 00:53:51 -08:00
via-rhine.c net: Use netdev_alloc_skb_ip_align() 2009-10-13 11:48:18 -07:00
via-velocity.c via-velocity: Remove private device list 2009-10-28 04:01:46 -07:00
via-velocity.h via-velocity: Remove private device list 2009-10-28 04:01:46 -07:00
virtio_net.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2009-11-06 00:55:55 -08:00
wd.c
xen-netfront.c
xilinx_emaclite.c
xtsonic.c
yellowfin.c
znet.c znet: Don't claim DMA lock around free_dma() calls. 2009-10-07 22:15:23 -07:00
zorro8390.c