Message ID | 20230329101859.3458449-4-liuhangbin@gmail.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | bonding: fix ns validation on backup slaves | expand |
On 3/29/23 06:18, Hangbin Liu wrote: > This patch add bonding arp validate tests with mode active backup, > monitor arp_ip_target and ns_ip6_target. It also checks mii_status > to make sure all slaves are UP. > > Signed-off-by: Hangbin Liu <liuhangbin@gmail.com> Acked-by: Jonathan Toppins <jtoppins@redhat.com>
Hangbin Liu <liuhangbin@gmail.com> wrote: >This patch add bonding arp validate tests with mode active backup, >monitor arp_ip_target and ns_ip6_target. It also checks mii_status >to make sure all slaves are UP. > >Signed-off-by: Hangbin Liu <liuhangbin@gmail.com> Acked-by: Jay Vosburgh <jay.vosburgh@canonical.com> >--- > .../drivers/net/bonding/bond_options.sh | 55 +++++++++++++++++++ > 1 file changed, 55 insertions(+) > >diff --git a/tools/testing/selftests/drivers/net/bonding/bond_options.sh b/tools/testing/selftests/drivers/net/bonding/bond_options.sh >index 431ce0e45e3c..4909d529210c 100755 >--- a/tools/testing/selftests/drivers/net/bonding/bond_options.sh >+++ b/tools/testing/selftests/drivers/net/bonding/bond_options.sh >@@ -5,6 +5,7 @@ > > ALL_TESTS=" > prio >+ arp_validate > " > > REQUIRE_MZ=no >@@ -207,6 +208,60 @@ prio() > done > } > >+arp_validate_test() >+{ >+ local param="$1" >+ RET=0 >+ >+ # create bond >+ bond_reset "${param}" >+ >+ bond_check_connection >+ [ $RET -ne 0 ] && log_test "arp_validate" "$retmsg" >+ >+ # wait for a while to make sure the mii status stable >+ sleep 5 >+ for i in $(seq 0 2); do >+ mii_status=$(cmd_jq "ip -n ${s_ns} -j -d link show eth$i" ".[].linkinfo.info_slave_data.mii_status") >+ if [ ${mii_status} != "UP" ]; then >+ RET=1 >+ log_test "arp_validate" "interface eth$i mii_status $mii_status" >+ fi >+ done >+} >+ >+arp_validate_arp() >+{ >+ local mode=$1 >+ local val >+ for val in $(seq 0 6); do >+ arp_validate_test "mode $mode arp_interval 1000 arp_ip_target ${sw_ip4} arp_validate $val" >+ log_test "arp_validate" "mode $mode arp_ip_target arp_validate $val" >+ done >+} >+ >+arp_validate_ns() >+{ >+ local mode=$1 >+ local val >+ >+ if skip_ns; then >+ log_test_skip "arp_validate ns" "Current iproute or kernel doesn't support bond option 'ns_ip6_target'." >+ return 0 >+ fi >+ >+ for val in $(seq 0 6); do >+ arp_validate_test "mode $mode arp_interval 1000 ns_ip6_target ${sw_ip6} arp_validate $val" >+ log_test "arp_validate" "mode $mode ns_ip6_target arp_validate $val" >+ done >+} >+ >+arp_validate() >+{ >+ arp_validate_arp "active-backup" >+ arp_validate_ns "active-backup" >+} >+ > trap cleanup EXIT > > setup_prepare >-- >2.38.1 >
diff --git a/tools/testing/selftests/drivers/net/bonding/bond_options.sh b/tools/testing/selftests/drivers/net/bonding/bond_options.sh index 431ce0e45e3c..4909d529210c 100755 --- a/tools/testing/selftests/drivers/net/bonding/bond_options.sh +++ b/tools/testing/selftests/drivers/net/bonding/bond_options.sh @@ -5,6 +5,7 @@ ALL_TESTS=" prio + arp_validate " REQUIRE_MZ=no @@ -207,6 +208,60 @@ prio() done } +arp_validate_test() +{ + local param="$1" + RET=0 + + # create bond + bond_reset "${param}" + + bond_check_connection + [ $RET -ne 0 ] && log_test "arp_validate" "$retmsg" + + # wait for a while to make sure the mii status stable + sleep 5 + for i in $(seq 0 2); do + mii_status=$(cmd_jq "ip -n ${s_ns} -j -d link show eth$i" ".[].linkinfo.info_slave_data.mii_status") + if [ ${mii_status} != "UP" ]; then + RET=1 + log_test "arp_validate" "interface eth$i mii_status $mii_status" + fi + done +} + +arp_validate_arp() +{ + local mode=$1 + local val + for val in $(seq 0 6); do + arp_validate_test "mode $mode arp_interval 1000 arp_ip_target ${sw_ip4} arp_validate $val" + log_test "arp_validate" "mode $mode arp_ip_target arp_validate $val" + done +} + +arp_validate_ns() +{ + local mode=$1 + local val + + if skip_ns; then + log_test_skip "arp_validate ns" "Current iproute or kernel doesn't support bond option 'ns_ip6_target'." + return 0 + fi + + for val in $(seq 0 6); do + arp_validate_test "mode $mode arp_interval 1000 ns_ip6_target ${sw_ip6} arp_validate $val" + log_test "arp_validate" "mode $mode ns_ip6_target arp_validate $val" + done +} + +arp_validate() +{ + arp_validate_arp "active-backup" + arp_validate_ns "active-backup" +} + trap cleanup EXIT setup_prepare
This patch add bonding arp validate tests with mode active backup, monitor arp_ip_target and ns_ip6_target. It also checks mii_status to make sure all slaves are UP. Signed-off-by: Hangbin Liu <liuhangbin@gmail.com> --- .../drivers/net/bonding/bond_options.sh | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+)