• Hangbin Liu's avatar
    selftests: bonding: set active slave to primary eth1 specifically · cd65c48d
    Hangbin Liu authored
    In bond priority testing, we set the primary interface to eth1 and add
    eth0,1,2 to bond in serial. This is OK in normal times. But when in
    debug kernel, the bridge port that eth0,1,2 connected would start
    slowly (enter blocking, forwarding state), which caused the primary
    interface down for a while after enslaving and active slave changed.
    Here is a test log from Jakub's debug test[1].
    
     [  400.399070][   T50] br0: port 1(s0) entered disabled state
     [  400.400168][   T50] br0: port 4(s2) entered disabled state
     [  400.941504][ T2791] bond0: (slave eth0): making interface the new active one
     [  400.942603][ T2791] bond0: (slave eth0): Enslaving as an active interface with an up link
     [  400.943633][ T2766] br0: port 1(s0) entered blocking state
     [  400.944119][ T2766] br0: port 1(s0) entered forwarding state
     [  401.128792][ T2792] bond0: (slave eth1): making interface the new active one
     [  401.130771][ T2792] bond0: (slave eth1): Enslaving as an active interface with an up link
     [  401.131643][   T69] br0: port 2(s1) entered blocking state
     [  401.132067][   T69] br0: port 2(s1) entered forwarding state
     [  401.346201][ T2793] bond0: (slave eth2): Enslaving as a backup interface with an up link
     [  401.348414][   T50] br0: port 4(s2) entered blocking state
     [  401.348857][   T50] br0: port 4(s2) entered forwarding state
     [  401.519669][  T250] bond0: (slave eth0): link status definitely down, disabling slave
     [  401.526522][  T250] bond0: (slave eth1): link status definitely down, disabling slave
     [  401.526986][  T250] bond0: (slave eth2): making interface the new active one
     [  401.629470][  T250] bond0: (slave eth0): link status definitely up
     [  401.630089][  T250] bond0: (slave eth1): link status definitely up
     [...]
     # TEST: prio (active-backup ns_ip6_target primary_reselect 1)         [FAIL]
     # Current active slave is eth2 but not eth1
    
    Fix it by setting active slave to primary slave specifically before
    testing.
    
    [1] https://netdev-3.bots.linux.dev/vmksft-bonding-dbg/results/464301/1-bond-options-sh/stdout
    
    Fixes: 481b56e0
    
     ("selftests: bonding: re-format bond option tests")
    Signed-off-by: default avatarHangbin Liu <liuhangbin@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    cd65c48d
bond_options.sh 7.45 KB