OpenCloudOS-Kernel/net
Brian Haley 305d552acc bonding: send IPv6 neighbor advertisement on failover
This patch adds better IPv6 failover support for bonding devices,
especially when in active-backup mode and there are only IPv6 addresses
configured, as reported by Alex Sidorenko.

- Creates a new file, net/drivers/bonding/bond_ipv6.c, for the
   IPv6-specific routines.  Both regular bonds and VLANs over bonds
   are supported.

- Adds a new tunable, num_unsol_na, to limit the number of unsolicited
   IPv6 Neighbor Advertisements that are sent on a failover event.
   Default is 1.

- Creates two new IPv6 neighbor discovery functions:

   ndisc_build_skb()
   ndisc_send_skb()

   These were required to support VLANs since we have to be able to
   add the VLAN id to the skb since ndisc_send_na() and friends
   shouldn't be asked to do this.  These two routines are basically
   __ndisc_send() split into two pieces, in a slightly different order.

- Updates Documentation/networking/bonding.txt and bumps the rev of bond
   support to 3.4.0.

On failover, this new code will generate one packet:

- An unsolicited IPv6 Neighbor Advertisement, which helps the switch
   learn that the address has moved to the new slave.

Testing has shown that sending just the NA results in pretty good
behavior when in active-back mode, I saw no lost ping packets for example.

Signed-off-by: Brian Haley <brian.haley@hp.com>
Signed-off-by: Jay Vosburgh <fubar@us.ibm.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
2008-11-06 00:49:37 -05:00
..
9p net: remove two duplicated #include 2008-11-03 18:23:09 -08:00
802 net: '&' redux 2008-11-03 18:21:05 -08:00
8021q net/: Kill now superfluous ->last_rx stores. 2008-11-03 22:01:07 -08:00
appletalk net: '&' redux 2008-11-03 18:21:05 -08:00
atm net: replace NIPQUAD() in net/*/ 2008-10-31 00:54:56 -07:00
ax25 net: '&' redux 2008-11-03 18:21:05 -08:00
bluetooth net/: Kill now superfluous ->last_rx stores. 2008-11-03 22:01:07 -08:00
bridge net: '&' redux 2008-11-03 18:21:05 -08:00
can net: Remove CONFIG_KMOD from net/ (towards removing CONFIG_KMOD entirely) 2008-10-16 15:24:51 -07:00
core net: Don't leak packets when a netns is going down 2008-11-05 16:00:24 -08:00
dccp dccp: Cleanup routines for feature negotiation 2008-11-04 23:56:30 -08:00
decnet net: '&' redux 2008-11-03 18:21:05 -08:00
dsa net/: Kill now superfluous ->last_rx stores. 2008-11-03 22:01:07 -08:00
econet netns: Use net_eq() to compare net-namespaces for optimization. 2008-07-19 22:34:43 -07:00
ethernet dsa: add support for Trailer tagging format 2008-10-08 17:24:16 -07:00
ieee80211 net/: Kill now superfluous ->last_rx stores. 2008-11-03 22:01:07 -08:00
ipv4 net: '&' redux 2008-11-03 18:21:05 -08:00
ipv6 bonding: send IPv6 neighbor advertisement on failover 2008-11-06 00:49:37 -05:00
ipx net: '&' redux 2008-11-03 18:21:05 -08:00
irda net: '&' redux 2008-11-03 18:21:05 -08:00
iucv iucv: Fix mismerge again. 2008-09-30 03:03:35 -07:00
key af_key: fix SADB_X_SPDDELETE response 2008-10-10 14:07:03 -07:00
lapb
llc net: '&' redux 2008-11-03 18:21:05 -08:00
mac80211 mac80211: fix two kernel-doc warnings 2008-10-31 19:02:36 -04:00
netfilter net: '&' redux 2008-11-03 18:21:05 -08:00
netlabel net: replace NIPQUAD() in net/*/ 2008-10-31 00:54:56 -07:00
netlink netlink: constify struct nlattr * arg to parsing functions 2008-10-28 11:59:11 -07:00
netrom net: '&' redux 2008-11-03 18:21:05 -08:00
packet net: convert BUG_TRAP to generic WARN_ON 2008-07-25 21:43:18 -07:00
phonet net: '&' redux 2008-11-03 18:21:05 -08:00
rfkill rfkill: rate-limit rfkill-input workqueue usage (v3) 2008-10-31 19:00:10 -04:00
rose net: '&' redux 2008-11-03 18:21:05 -08:00
rxrpc net: replace NIPQUAD() in net/*/ 2008-10-31 00:54:56 -07:00
sched netem: eliminate unneeded return values 2008-11-03 21:13:26 -08:00
sctp net: '&' redux 2008-11-03 18:21:05 -08:00
sunrpc sunrpc: Fix build warning due to typo in %pI4 format changes. 2008-11-02 23:57:06 -08:00
tipc net: convert print_mac to %pM 2008-10-27 17:06:18 -07:00
unix net: '&' redux 2008-11-03 18:21:05 -08:00
wanrouter wanmain.c doesn't need syncppp.h 2008-07-23 23:00:36 +02:00
wireless wireless regulatory: move ignore_request 2008-10-31 19:02:32 -04:00
x25 net: '&' redux 2008-11-03 18:21:05 -08:00
xfrm net: replace NIPQUAD() in net/*/ 2008-10-31 00:54:56 -07:00
Kconfig netns: Coexist with the sysfs limitations v2 2008-10-27 17:51:47 -07:00
Makefile net: Distributed Switch Architecture protocol support 2008-10-08 17:15:19 -07:00
TUNABLE
compat.c flag parameters: paccept 2008-07-24 10:47:27 -07:00
nonet.c
socket.c net: remove two duplicated #include 2008-11-03 18:23:09 -08:00
sysctl_net.c missing bits of net-namespace / sysctl 2008-07-27 09:45:34 -07:00