alistair23-linux/drivers/net
Jay Vosburgh c2edacf80e bonding / ipv6: no addrconf for slaves separately from master
At present, when a device is enslaved to bonding, if ipv6 is
active then addrconf will be initated on the slave (because it is closed
then opened during the enslavement processing).  This causes DAD and RS
packets to be sent from the slave.  These packets in turn can confuse
switches that perform ipv6 snooping, causing them to incorrectly update
their forwarding tables (if, e.g., the slave being added is an inactve
backup that won't be used right away) and direct traffic away from the
active slave to a backup slave (where the incoming packets will be
dropped).

	This patch alters the behavior so that addrconf will only run on
the master device itself.  I believe this is logically correct, as it
prevents slaves from having an IPv6 identity independent from the
master.  This is consistent with the IPv4 behavior for bonding.

	This is accomplished by (a) having bonding set IFF_SLAVE sooner
in the enslavement processing than currently occurs (before open, not
after), and (b) having ipv6 addrconf ignore UP and CHANGE events on
slave devices.

	The eql driver also uses the IFF_SLAVE flag.  I inspected eql,
and I believe this change is reasonable for its usage of IFF_SLAVE, but
I did not test it.

Signed-off-by: Jay Vosburgh <fubar@us.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-07-10 12:41:19 -04:00
..
appletalk
arcnet [ARCNET]: Use menuconfig objects. 2007-05-24 16:36:51 -07:00
arm Use menuconfig objects II - netdev (general+100mbit) 2007-07-08 22:16:40 -04:00
atl1 atl1: remove write-only var in tx handler 2007-07-10 12:41:19 -04:00
bonding bonding / ipv6: no addrconf for slaves separately from master 2007-07-10 12:41:19 -04:00
chelsio network drivers: eliminate unneeded kill_vid code 2007-06-03 11:44:20 -04:00
cris
cxgb3 use is_power_of_2() in cxgb3/cxgb3_main.c 2007-07-10 12:22:30 -04:00
e1000 e1000: disable polling before registering netdevice 2007-06-03 11:44:20 -04:00
ehea ehea: Whitespace cleanup 2007-07-08 22:16:45 -04:00
fec_8xx Use menuconfig objects II - netdev (general+100mbit) 2007-07-08 22:16:40 -04:00
fs_enet Use menuconfig objects II - netdev (general+100mbit) 2007-07-08 22:16:40 -04:00
hamradio Fix "deprecated" typoes. 2007-05-09 07:18:01 +02:00
ibm_emac ibm_emac: fix link speed detection change 2007-05-17 20:43:15 -04:00
irda smsc-ircc2: bypass PNP detection until we get the quirks worked out 2007-07-01 12:29:44 -07:00
ixgb ixgb: don't print error if pci_enable_msi() fails, cleanup minor leak 2007-05-17 20:43:15 -04:00
ixp2000 potential compiler error, irqfunc caller sites update 2007-07-06 10:23:43 -07:00
mlx4 drivers/net: fix comparisons of unsigned < 0 2007-07-08 22:16:39 -04:00
myri10ge Use is_power_of_2() in myri10ge/myri10ge.c 2007-07-10 12:22:30 -04:00
netxen netxen: deinline and sparse fix 2007-07-10 12:41:09 -04:00
pcmcia PCMCIA: add Socket Ethernet card into pcnet_cs 2007-07-10 12:24:03 -04:00
phy phylib: Add Marvell 88E1112 phy id 2007-07-10 12:41:09 -04:00
sk98lin sk98lin: handle pci_enable_device() return value in skge_resume() 2007-04-28 11:00:57 -04:00
skfp potential parse error in ifdef 2007-06-01 08:18:27 -07:00
tokenring tokenring/3c359.c:xl_init() must be __devinit 2007-07-10 12:24:42 -04:00
tulip Use menuconfig objects II - netdev (general+100mbit) 2007-07-08 22:16:40 -04:00
usb Cleanup usbnet_probe() return value handling 2007-07-10 12:41:18 -04:00
wan Use menuconfig objects II - netdev/wan 2007-05-11 17:53:26 -04:00
wireless [PATCH] hostap: Remove driver version number 2007-07-08 22:16:38 -04:00
3c59x.c 3cSOHO100-TX needs EXTRA_PREAMBLE 2007-07-10 12:22:30 -04:00
3c501.c
3c501.h
3c503.c
3c503.h
3c505.c
3c505.h
3c507.c
3c509.c remove broken URLs from net drivers' output 2007-05-09 08:58:18 +02:00
3c515.c
3c523.c
3c523.h
3c527.c
3c527.h
7990.c m68k: kill skb_copy_from_linear_data compiler warnings 2007-05-04 17:59:08 -07:00
7990.h
8139cp.c 8139cp: Convert to generic boolean 2007-07-08 22:16:38 -04:00
8139too.c
8390.c
8390.h AX88796 network driver 2007-07-10 12:41:08 -04:00
82596.c
a2065.c m68k: kill skb_copy_from_linear_data compiler warnings 2007-05-04 17:59:08 -07:00
a2065.h
ac3200.c
acenic.c acenic: SET_NETDEV_DEV is always there these days 2007-07-08 22:16:40 -04:00
acenic.h network drivers: eliminate unneeded kill_vid code 2007-06-03 11:44:20 -04:00
acenic_firmware.h
amd8111e.c network drivers: eliminate unneeded kill_vid code 2007-06-03 11:44:20 -04:00
amd8111e.h potential parse error in ifdef 2007-06-01 08:18:27 -07:00
apne.c
ariadne.c m68k: Amiga A2065 and Ariadne TX statistics 2007-05-04 17:59:07 -07:00
ariadne.h
at1700.c
atari_bionet.c
atari_pamsnet.c atari_pamsnet.c: old declaration ritchie style fix 2007-07-10 12:22:30 -04:00
atarilance.c
atp.c remove broken URLs from net drivers' output 2007-05-09 08:58:18 +02:00
atp.h
au1000_eth.c au1000_eth: Fix warnings. 2007-06-27 02:33:06 -04:00
au1000_eth.h
ax88796.c AX88796 network driver 2007-07-10 12:41:08 -04:00
b44.c b44: use netdev_alloc_skb 2007-07-08 22:16:40 -04:00
b44.h b44: packet offset is constant 2007-07-08 22:16:40 -04:00
bmac.c [POWERPC] Rename get_property to of_get_property: drivers 2007-05-02 20:04:32 +10:00
bmac.h
bnx2.c [BNX2]: Update version and reldate. 2007-06-07 13:38:40 -07:00
bnx2.h [BNX2]: Enable DMA on 5709. 2007-06-07 13:38:38 -07:00
bnx2_fw.h [BNX2]: Update 5708 firmware. 2007-05-03 13:21:13 -07:00
bnx2_fw2.h [BNX2]: Update 5709 firmware. 2007-05-03 13:21:48 -07:00
bsd_comp.c
cassini.c [CASSINI]: Fix printk message typo. 2007-05-31 01:23:22 -07:00
cassini.h
cs89x0.c
cs89x0.h
de600.c
de600.h
de620.c
de620.h
declance.c declance: Remove a dangling spin_unlock_irq() thingy 2007-05-21 19:41:19 -04:00
defxx.c defxx: Fix the handling of ioremap() failures 2007-05-30 09:52:48 -04:00
defxx.h
depca.c
depca.h
dgrs.c
dgrs.h
dgrs_asstruct.h
dgrs_bcomm.h
dgrs_es4h.h
dgrs_ether.h
dgrs_firmware.c
dgrs_i82596.h
dgrs_plx9060.h
dl2k.c
dl2k.h
dm9000.c drivers/net/dm9000: Convert to generic boolean 2007-05-08 01:41:56 -04:00
dm9000.h
dummy.c
e100.c e100: Fix Tyan motherboard e100 not receiving IPMI commands 2007-07-10 12:24:43 -04:00
e2100.c
eepro.c Fix occurrences of "the the " 2007-05-09 08:57:56 +02:00
eepro100.c remove broken URLs from net drivers' output 2007-05-09 08:58:18 +02:00
eexpress.c [netdrvr] eexpress: minor corrections 2007-04-28 11:05:43 -04:00
eexpress.h
epic100.c remove broken URLs from net drivers' output 2007-05-09 08:58:18 +02:00
eql.c
es3210.c
eth16i.c
ewrk3.c
ewrk3.h
fealnx.c
fec.c
fec.h
forcedeth.c forcedeth: use unicast receive mode for WoL 2007-06-20 19:15:04 -04:00
gianfar.c gianfar: add support for SGMII 2007-07-08 22:16:38 -04:00
gianfar.h gianfar: add support for SGMII 2007-07-08 22:16:38 -04:00
gianfar_ethtool.c
gianfar_mii.c gianfar: add support for SGMII 2007-07-08 22:16:38 -04:00
gianfar_mii.h
gianfar_sysfs.c
hamachi.c
hp-plus.c
hp.c
hp100.c net/hp100: fix section mismatch warning 2007-06-01 08:18:30 -07:00
hp100.h
hplance.c
hplance.h
hydra.c
ibmlana.c
ibmlana.h
ibmveth.c ibmveth: Automatically enable larger rx buffer pools for larger mtu 2007-06-09 18:25:34 -04:00
ibmveth.h
ifb.c
ioc3-eth.c IOC3: Switch to pci refcounting safe APIs 2007-07-10 12:29:24 -04:00
isa-skeleton.c
iseries_veth.c
jazzsonic.c SONIC interrupt handling 2007-05-04 17:59:08 -07:00
Kconfig AX88796 network driver 2007-07-10 12:41:08 -04:00
lance.c
lasi_82596.c Extract chip specific code out of lasi_82596.c 2007-07-08 22:16:45 -04:00
lib8390.c
lib82596.c Extract chip specific code out of lasi_82596.c 2007-07-08 22:16:45 -04:00
LICENSE.SRC
lne390.c
loopback.c
lp486e.c
mac89x0.c m68k: Mac89x0 Ethernet netif updates 2007-05-04 17:59:06 -07:00
mac8390.c m68k: Mac DP8390 update 2007-05-04 17:59:07 -07:00
macb.c
macb.h
mace.c [POWERPC] Rename get_property to of_get_property: drivers 2007-05-02 20:04:32 +10:00
mace.h
macmace.c macmace: use "unsigned long flags;" 2007-07-10 12:41:18 -04:00
macsonic.c SONIC interrupt handling 2007-05-04 17:59:08 -07:00
Makefile AX88796 network driver 2007-07-10 12:41:08 -04:00
meth.c meth driver renovation 2007-05-24 17:20:49 -04:00
meth.h Fix occurrences of "the the " 2007-05-09 08:57:56 +02:00
mii.c mii: add kernel-doc notation 2007-04-28 11:01:05 -04:00
mipsnet.c [MIPS] Don't drag a platform specific header into generic arch code. 2007-06-20 22:27:10 +01:00
mipsnet.h
mv643xx_eth.c mv643xx_eth: make eth_port_uc_addr_{get,set}() calls symmetric 2007-04-28 11:01:02 -04:00
mv643xx_eth.h mv643xx_eth: make eth_port_uc_addr_{get,set}() calls symmetric 2007-04-28 11:01:02 -04:00
mvme147.c
myri_code.h
myri_sbus.c
myri_sbus.h
natsemi.c natsemi irq flags 2007-06-20 19:15:04 -04:00
ne-h8300.c
ne.c ne: MIPS: Use platform_driver for ne on RBTX49XX 2007-05-08 01:23:09 -04:00
ne2.c
ne2k-pci.c remove broken URLs from net drivers' output 2007-05-09 08:58:18 +02:00
ne3210.c
netconsole.c
netx-eth.c
ni52.c
ni52.h
ni65.c
ni65.h
ni5010.c
ni5010.h
ns83820.c drivers/net/ns83820.c: fix a check-after-use 2007-07-02 08:24:52 -04:00
pasemi_mac.c pasemi_mac: Fix TX interrupt threshold 2007-07-08 22:16:45 -04:00
pasemi_mac.h pasemi_mac: Fix register defines 2007-05-15 17:44:39 -04:00
pci-skeleton.c
pcnet32.c pcnet32: change to use netdev_priv 2007-04-28 11:00:58 -04:00
plip.c
ppp_async.c
ppp_deflate.c
ppp_generic.c [PPP]: Fix osize too small errors when decoding mppe. 2007-06-23 23:05:54 -07:00
ppp_mppe.c [PPP]: Revert 606f585e36 2007-06-23 23:04:11 -07:00
ppp_mppe.h
ppp_synctty.c
pppoe.c
pppox.c [L2TP]: Add the ability to autoload a pppox protocol module. 2007-04-30 00:21:02 -07:00
qla3xxx.c qla3xxx: cleanup checksum offload code 2007-07-08 22:16:40 -04:00
qla3xxx.h qla3xxx: Adding support for the Agere PHY (ET1011C) 2007-04-28 11:01:02 -04:00
r8169.c r8169: perform RX config change after mac filtering 2007-07-08 22:16:45 -04:00
rionet.c
rrunner.c rrunner.c:rr_init() must be __devinit 2007-07-10 12:24:42 -04:00
rrunner.h
s2io-regs.h S2io: Remove unused variables 2007-04-28 11:01:01 -04:00
s2io.c Fix typo in drivers/net/s2io.c 2007-07-10 12:24:42 -04:00
s2io.h s2io: add PCI error recovery support 2007-07-08 22:16:38 -04:00
saa9730.c
saa9730.h
sb1000.c
sb1250-mac.c potential compiler error, irqfunc caller sites update 2007-07-06 10:23:43 -07:00
sc92031.c
seeq8005.c
seeq8005.h
sgiseeq.c Convert SGI IP22 and specific drivers to platform_device. 2007-05-11 17:00:29 +01:00
sgiseeq.h
shaper.c
sis190.c
sis900.c sis900_mii_probe() must be __devinit 2007-07-10 12:24:42 -04:00
sis900.h
skge.c skge: crash on shutdown/suspend 2007-05-11 17:53:36 -04:00
skge.h skge: rearrange fields 2007-04-28 11:01:00 -04:00
sky2.c sky2: 1.16 version 2007-07-10 12:22:30 -04:00
sky2.h sky2: debug interface 2007-07-10 12:22:28 -04:00
slhc.c
slip.c
slip.h
smc-mca.c
smc-ultra.c
smc-ultra32.c
smc91x.c
smc91x.h Blackfin SMC91X ethernet supporting driver: SMC91C111 LEDs are note drived in the kernel like in uboot 2007-06-11 17:44:14 +08:00
smc911x.c smc911x: fix compilation breakage 2007-05-15 17:44:39 -04:00
smc911x.h
smc9194.c
smc9194.h
sni_82596.c Ethernet driver for EISA only SNI RM200/RM400 machines 2007-07-08 22:16:46 -04:00
sonic.c SONIC interrupt handling 2007-05-04 17:59:08 -07:00
sonic.h
Space.c m68k: macmace fixes 2007-05-04 17:59:07 -07:00
spider_net.c spidernet: improve interrupt handling 2007-07-10 12:22:30 -04:00
spider_net.h spidernet: Replace literal with const 2007-07-08 22:16:45 -04:00
spider_net_ethtool.c spidernet: checksum and ethtool 2007-06-20 19:09:33 -04:00
starfire.c starfire list alpha as 64 bit arch 2007-07-02 08:24:51 -04:00
starfire_firmware.h
starfire_firmware.pl
stnic.c
sun3_82586.c m68k: kill skb_copy_from_linear_data compiler warnings 2007-05-04 17:59:08 -07:00
sun3_82586.h
sun3lance.c
sunbmac.c
sunbmac.h
sundance.c remove broken URLs from net drivers' output 2007-05-09 08:58:18 +02:00
sungem.c [POWERPC] Rename get_property to of_get_property: drivers 2007-05-02 20:04:32 +10:00
sungem.h
sungem_phy.c [POWERPC] Rename get_property to of_get_property: drivers 2007-05-02 20:04:32 +10:00
sungem_phy.h
sunhme.c
sunhme.h
sunlance.c
sunqe.c
sunqe.h
tc35815.c tc35815: Remove unnecessary skb->dev assignment 2007-05-08 01:41:56 -04:00
tg3.c [TG3]: Fix link problem on Dell's onboard 5906. 2007-06-03 18:08:41 -07:00
tg3.h tg3: use flush_work_keventd() 2007-05-09 12:30:51 -07:00
tlan.c
tlan.h
tsi108_eth.c [POWERPC] Generalize tsi108 PHY types 2007-05-08 11:54:20 +10:00
tsi108_eth.h [POWERPC] Generalize tsi108 PHY types 2007-05-08 11:54:20 +10:00
tun.c
typhoon-firmware.h
typhoon.c network drivers: eliminate unneeded kill_vid code 2007-06-03 11:44:20 -04:00
typhoon.h
ucc_geth.c QE Ethernet driver writes to wrong register to mask interrupts 2007-07-10 12:24:42 -04:00
ucc_geth.h ucc_geth: Fix interrupt coalescing size and alignment 2007-04-28 11:01:04 -04:00
ucc_geth_mii.c ucc_geth: Fix MODULE_DEVICE_TABLE() duplication 2007-05-24 17:20:48 -04:00
ucc_geth_mii.h ucc_geth: eliminate max-speed, change interface-type to phy-connection-type 2007-05-15 17:44:40 -04:00
via-rhine.c
via-velocity.c typo in via-velocity.c 2007-06-09 18:25:34 -04:00
via-velocity.h
wd.c
yellowfin.c remove broken URLs from net drivers' output 2007-05-09 08:58:18 +02:00
znet.c
zorro8390.c