• Brian Haley's avatar
    bonding: send IPv6 neighbor advertisement on failover · 305d552a
    Brian Haley authored
    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: default avatarBrian Haley <brian.haley@hp.com>
    Signed-off-by: default avatarJay Vosburgh <fubar@us.ibm.com>
    Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
    305d552a
ndisc.c 46 KB