Commit 935ff5bb authored by Matthieu Baerts (NGI0)'s avatar Matthieu Baerts (NGI0) Committed by Paolo Abeni

selftests: mptcp: join: validate backup in MPJ

A peer can notify the other one that a subflow has to be treated as
"backup" by two different ways: either by sending a dedicated MP_PRIO
notification, or by setting the backup flag in the MP_JOIN handshake.

The selftests were previously monitoring the former, but not the latter.
This is what is now done here by looking at these new MIB counters when
validating the 'backup' cases:

  MPTcpExtMPJoinSynBackupRx
  MPTcpExtMPJoinSynAckBackupRx

The 'Fixes' tag here below is the same as the one from the previous
commit: this patch here is not fixing anything wrong in the selftests,
but it will help to validate a new fix for an issue introduced by this
commit ID.

Fixes: 4596a2c1 ("mptcp: allow creating non-backup subflows")
Cc: stable@vger.kernel.org
Reviewed-by: default avatarMat Martineau <martineau@kernel.org>
Signed-off-by: default avatarMatthieu Baerts (NGI0) <matttbe@kernel.org>
Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
parent 4dde0d72
...@@ -1634,6 +1634,8 @@ chk_prio_nr() ...@@ -1634,6 +1634,8 @@ chk_prio_nr()
{ {
local mp_prio_nr_tx=$1 local mp_prio_nr_tx=$1
local mp_prio_nr_rx=$2 local mp_prio_nr_rx=$2
local mpj_syn=$3
local mpj_syn_ack=$4
local count local count
print_check "ptx" print_check "ptx"
...@@ -1655,6 +1657,26 @@ chk_prio_nr() ...@@ -1655,6 +1657,26 @@ chk_prio_nr()
else else
print_ok print_ok
fi fi
print_check "syn backup"
count=$(mptcp_lib_get_counter ${ns1} "MPTcpExtMPJoinSynBackupRx")
if [ -z "$count" ]; then
print_skip
elif [ "$count" != "$mpj_syn" ]; then
fail_test "got $count JOIN[s] syn with Backup expected $mpj_syn"
else
print_ok
fi
print_check "synack backup"
count=$(mptcp_lib_get_counter ${ns2} "MPTcpExtMPJoinSynAckBackupRx")
if [ -z "$count" ]; then
print_skip
elif [ "$count" != "$mpj_syn_ack" ]; then
fail_test "got $count JOIN[s] synack with Backup expected $mpj_syn_ack"
else
print_ok
fi
} }
chk_subflow_nr() chk_subflow_nr()
...@@ -2612,7 +2634,7 @@ backup_tests() ...@@ -2612,7 +2634,7 @@ backup_tests()
sflags=nobackup speed=slow \ sflags=nobackup speed=slow \
run_tests $ns1 $ns2 10.0.1.1 run_tests $ns1 $ns2 10.0.1.1
chk_join_nr 1 1 1 chk_join_nr 1 1 1
chk_prio_nr 0 1 chk_prio_nr 0 1 1 0
fi fi
# single address, backup # single address, backup
...@@ -2625,7 +2647,7 @@ backup_tests() ...@@ -2625,7 +2647,7 @@ backup_tests()
run_tests $ns1 $ns2 10.0.1.1 run_tests $ns1 $ns2 10.0.1.1
chk_join_nr 1 1 1 chk_join_nr 1 1 1
chk_add_nr 1 1 chk_add_nr 1 1
chk_prio_nr 1 1 chk_prio_nr 1 1 0 0
fi fi
# single address with port, backup # single address with port, backup
...@@ -2638,7 +2660,7 @@ backup_tests() ...@@ -2638,7 +2660,7 @@ backup_tests()
run_tests $ns1 $ns2 10.0.1.1 run_tests $ns1 $ns2 10.0.1.1
chk_join_nr 1 1 1 chk_join_nr 1 1 1
chk_add_nr 1 1 chk_add_nr 1 1
chk_prio_nr 1 1 chk_prio_nr 1 1 0 0
fi fi
if reset "mpc backup" && if reset "mpc backup" &&
...@@ -2647,7 +2669,7 @@ backup_tests() ...@@ -2647,7 +2669,7 @@ backup_tests()
speed=slow \ speed=slow \
run_tests $ns1 $ns2 10.0.1.1 run_tests $ns1 $ns2 10.0.1.1
chk_join_nr 0 0 0 chk_join_nr 0 0 0
chk_prio_nr 0 1 chk_prio_nr 0 1 0 0
fi fi
if reset "mpc backup both sides" && if reset "mpc backup both sides" &&
...@@ -2657,7 +2679,7 @@ backup_tests() ...@@ -2657,7 +2679,7 @@ backup_tests()
speed=slow \ speed=slow \
run_tests $ns1 $ns2 10.0.1.1 run_tests $ns1 $ns2 10.0.1.1
chk_join_nr 0 0 0 chk_join_nr 0 0 0
chk_prio_nr 1 1 chk_prio_nr 1 1 0 0
fi fi
if reset "mpc switch to backup" && if reset "mpc switch to backup" &&
...@@ -2666,7 +2688,7 @@ backup_tests() ...@@ -2666,7 +2688,7 @@ backup_tests()
sflags=backup speed=slow \ sflags=backup speed=slow \
run_tests $ns1 $ns2 10.0.1.1 run_tests $ns1 $ns2 10.0.1.1
chk_join_nr 0 0 0 chk_join_nr 0 0 0
chk_prio_nr 0 1 chk_prio_nr 0 1 0 0
fi fi
if reset "mpc switch to backup both sides" && if reset "mpc switch to backup both sides" &&
...@@ -2676,7 +2698,7 @@ backup_tests() ...@@ -2676,7 +2698,7 @@ backup_tests()
sflags=backup speed=slow \ sflags=backup speed=slow \
run_tests $ns1 $ns2 10.0.1.1 run_tests $ns1 $ns2 10.0.1.1
chk_join_nr 0 0 0 chk_join_nr 0 0 0
chk_prio_nr 1 1 chk_prio_nr 1 1 0 0
fi fi
} }
...@@ -3053,7 +3075,7 @@ fullmesh_tests() ...@@ -3053,7 +3075,7 @@ fullmesh_tests()
addr_nr_ns2=1 sflags=backup,fullmesh speed=slow \ addr_nr_ns2=1 sflags=backup,fullmesh speed=slow \
run_tests $ns1 $ns2 10.0.1.1 run_tests $ns1 $ns2 10.0.1.1
chk_join_nr 2 2 2 chk_join_nr 2 2 2
chk_prio_nr 0 1 chk_prio_nr 0 1 1 0
chk_rm_nr 0 1 chk_rm_nr 0 1
fi fi
...@@ -3066,7 +3088,7 @@ fullmesh_tests() ...@@ -3066,7 +3088,7 @@ fullmesh_tests()
sflags=nobackup,nofullmesh speed=slow \ sflags=nobackup,nofullmesh speed=slow \
run_tests $ns1 $ns2 10.0.1.1 run_tests $ns1 $ns2 10.0.1.1
chk_join_nr 2 2 2 chk_join_nr 2 2 2
chk_prio_nr 0 1 chk_prio_nr 0 1 1 0
chk_rm_nr 0 1 chk_rm_nr 0 1
fi fi
} }
...@@ -3318,7 +3340,7 @@ userspace_tests() ...@@ -3318,7 +3340,7 @@ userspace_tests()
sflags=backup speed=slow \ sflags=backup speed=slow \
run_tests $ns1 $ns2 10.0.1.1 run_tests $ns1 $ns2 10.0.1.1
chk_join_nr 1 1 0 chk_join_nr 1 1 0
chk_prio_nr 0 0 chk_prio_nr 0 0 0 0
fi fi
# userspace pm type prevents rm_addr # userspace pm type prevents rm_addr
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment