• Hangbin Liu's avatar
    bonding: fix ns validation on backup slaves · 4598380f
    Hangbin Liu authored
    When arp_validate is set to 2, 3, or 6, validation is performed for
    backup slaves as well. As stated in the bond documentation, validation
    involves checking the broadcast ARP request sent out via the active
    slave. This helps determine which slaves are more likely to function in
    the event of an active slave failure.
    
    However, when the target is an IPv6 address, the NS message sent from
    the active interface is not checked on backup slaves. Additionally,
    based on the bond_arp_rcv() rule b, we must reverse the saddr and daddr
    when checking the NS message.
    
    Note that when checking the NS message, the destination address is a
    multicast address. Therefore, we must convert the target address to
    solicited multicast in the bond_get_targets_ip6() function.
    
    Prior to the fix, the backup slaves had a mii status of "down", but
    after the fix, all of the slaves' mii status was updated to "UP".
    
    Fixes: 4e24be01 ("bonding: add new parameter ns_targets")
    Reviewed-by: default avatarJonathan Toppins <jtoppins@redhat.com>
    Acked-by: default avatarJay Vosburgh <jay.vosburgh@canonical.com>
    Signed-off-by: default avatarHangbin Liu <liuhangbin@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    4598380f
bond_main.c 175 KB