https://github.com/torvalds/linux
Revision a816c7c712ff9f6770168b91facb9bfa9f0acd48 authored by Jay Vosburgh on 01 March 2007, 01:03:37 UTC, committed by Jeff Garzik on 06 March 2007, 11:08:11 UTC
In active-backup mode, the current bonding code duplicates IGMP traffic to all slaves, so that switches are up to date in case of a failover from an active to a backup interface. If bonding then fails back to the original active interface, it is likely that the "active slave" switch's IGMP forwarding for the port will be out of date until some event occurs to refresh the switch (e.g., a membership query). This patch alters the behavior of bonding to no longer flood IGMP to all ports, and to issue IGMP JOINs to the newly active port at the time of a failover. This insures that switches are kept up to date for all cases. "GOELLESCH Niels" <niels.goellesch@eurocontrol.int> originally reported this problem, and included a patch. His original patch was modified by Jay Vosburgh to additionally remove the existing IGMP flood behavior, use RCU, streamline code paths, fix trailing white space, and adjust for style. Signed-off-by: Jay Vosburgh <fubar@us.ibm.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
1 parent e245cb7
Tip revision: a816c7c712ff9f6770168b91facb9bfa9f0acd48 authored by Jay Vosburgh on 01 March 2007, 01:03:37 UTC
bonding: Improve IGMP join processing
bonding: Improve IGMP join processing
Tip revision: a816c7c
File | Mode | Size |
---|---|---|
reed_solomon | ||
zlib_deflate | ||
zlib_inflate | ||
.gitignore | -rw-r--r-- | 51 bytes |
Kconfig | -rw-r--r-- | 2.1 KB |
Kconfig.debug | -rw-r--r-- | 15.3 KB |
Makefile | -rw-r--r-- | 2.1 KB |
audit.c | -rw-r--r-- | 1020 bytes |
bitmap.c | -rw-r--r-- | 24.0 KB |
bitrev.c | -rw-r--r-- | 2.1 KB |
bug.c | -rw-r--r-- | 4.0 KB |
bust_spinlocks.c | -rw-r--r-- | 582 bytes |
cmdline.c | -rw-r--r-- | 3.5 KB |
cpumask.c | -rw-r--r-- | 609 bytes |
crc-ccitt.c | -rw-r--r-- | 3.0 KB |
crc16.c | -rw-r--r-- | 2.8 KB |
crc32.c | -rw-r--r-- | 15.0 KB |
crc32defs.h | -rw-r--r-- | 1.0 KB |
ctype.c | -rw-r--r-- | 1.3 KB |
debug_locks.c | -rw-r--r-- | 1.1 KB |
dec_and_lock.c | -rw-r--r-- | 806 bytes |
devres.c | -rw-r--r-- | 6.5 KB |
div64.c | -rw-r--r-- | 1.3 KB |
dump_stack.c | -rw-r--r-- | 290 bytes |
extable.c | -rw-r--r-- | 1.9 KB |
fault-inject.c | -rw-r--r-- | 7.6 KB |
find_next_bit.c | -rw-r--r-- | 4.3 KB |
gen_crc32table.c | -rw-r--r-- | 1.8 KB |
genalloc.c | -rw-r--r-- | 5.3 KB |
halfmd4.c | -rw-r--r-- | 2.0 KB |
hweight.c | -rw-r--r-- | 1.6 KB |
idr.c | -rw-r--r-- | 10.9 KB |
inflate.c | -rw-r--r-- | 37.0 KB |
int_sqrt.c | -rw-r--r-- | 533 bytes |
iomap.c | -rw-r--r-- | 6.8 KB |
iomap_copy.c | -rw-r--r-- | 2.1 KB |
ioremap.c | -rw-r--r-- | 2.1 KB |
irq_regs.c | -rw-r--r-- | 578 bytes |
kernel_lock.c | -rw-r--r-- | 4.6 KB |
klist.c | -rw-r--r-- | 6.8 KB |
kobject.c | -rw-r--r-- | 14.3 KB |
kobject_uevent.c | -rw-r--r-- | 7.8 KB |
kref.c | -rw-r--r-- | 1.6 KB |
libcrc32c.c | -rw-r--r-- | 6.5 KB |
list_debug.c | -rw-r--r-- | 2.0 KB |
locking-selftest-hardirq.h | -rw-r--r-- | 207 bytes |
locking-selftest-mutex.h | -rw-r--r-- | 120 bytes |
locking-selftest-rlock-hardirq.h | -rw-r--r-- | 74 bytes |
locking-selftest-rlock-softirq.h | -rw-r--r-- | 74 bytes |
locking-selftest-rlock.h | -rw-r--r-- | 158 bytes |
locking-selftest-rsem.h | -rw-r--r-- | 163 bytes |
locking-selftest-softirq.h | -rw-r--r-- | 207 bytes |
locking-selftest-spin-hardirq.h | -rw-r--r-- | 73 bytes |
locking-selftest-spin-softirq.h | -rw-r--r-- | 73 bytes |
locking-selftest-spin.h | -rw-r--r-- | 118 bytes |
locking-selftest-wlock-hardirq.h | -rw-r--r-- | 74 bytes |
locking-selftest-wlock-softirq.h | -rw-r--r-- | 74 bytes |
locking-selftest-wlock.h | -rw-r--r-- | 158 bytes |
locking-selftest-wsem.h | -rw-r--r-- | 163 bytes |
locking-selftest.c | -rw-r--r-- | 28.6 KB |
parser.c | -rw-r--r-- | 5.8 KB |
percpu_counter.c | -rw-r--r-- | 964 bytes |
plist.c | -rw-r--r-- | 2.8 KB |
prio_tree.c | -rw-r--r-- | 12.2 KB |
radix-tree.c | -rw-r--r-- | 25.1 KB |
random32.c | -rw-r--r-- | 3.6 KB |
rbtree.c | -rw-r--r-- | 8.6 KB |
reciprocal_div.c | -rw-r--r-- | 159 bytes |
rwsem-spinlock.c | -rw-r--r-- | 6.9 KB |
rwsem.c | -rw-r--r-- | 6.4 KB |
semaphore-sleepers.c | -rw-r--r-- | 4.7 KB |
sha1.c | -rw-r--r-- | 2.4 KB |
smp_processor_id.c | -rw-r--r-- | 1.1 KB |
sort.c | -rw-r--r-- | 2.5 KB |
spinlock_debug.c | -rw-r--r-- | 6.8 KB |
string.c | -rw-r--r-- | 12.4 KB |
swiotlb.c | -rw-r--r-- | 25.0 KB |
textsearch.c | -rw-r--r-- | 9.2 KB |
ts_bm.c | -rw-r--r-- | 4.9 KB |
ts_fsm.c | -rw-r--r-- | 10.5 KB |
ts_kmp.c | -rw-r--r-- | 3.8 KB |
vsprintf.c | -rw-r--r-- | 18.8 KB |
Computing file changes ...