Commit 9168ea02 authored by Geliang Tang's avatar Geliang Tang Committed by Jakub Kicinski

selftests: mptcp: fix wait_rm_addr/sf parameters

The second input parameter of 'wait_rm_addr/sf $1 1' is misused. If it's
1, wait_rm_addr/sf will never break, and will loop ten times, then
'wait_rm_addr/sf' equals to 'sleep 1'. This delay time is too long,
which can sometimes make the tests fail.

A better way to use wait_rm_addr/sf is to use rm_addr/sf_count to obtain
the current value, and then pass into wait_rm_addr/sf.

Fixes: 4369c198 ("selftests: mptcp: test userspace pm out of transfer")
Cc: stable@vger.kernel.org
Suggested-by: default avatarMatthieu Baerts <matttbe@kernel.org>
Reviewed-by: default avatarMatthieu Baerts <matttbe@kernel.org>
Signed-off-by: default avatarGeliang Tang <geliang.tang@suse.com>
Signed-off-by: default avatarMat Martineau <martineau@kernel.org>
Link: https://lore.kernel.org/r/20231025-send-net-next-20231025-v1-2-db8f25f798eb@kernel.orgSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent f4a75e9d
...@@ -3289,6 +3289,7 @@ userspace_pm_rm_sf_addr_ns1() ...@@ -3289,6 +3289,7 @@ userspace_pm_rm_sf_addr_ns1()
local addr=$1 local addr=$1
local id=$2 local id=$2
local tk sp da dp local tk sp da dp
local cnt_addr cnt_sf
tk=$(grep "type:1," "$evts_ns1" | tk=$(grep "type:1," "$evts_ns1" |
sed -n 's/.*\(token:\)\([[:digit:]]*\).*$/\2/p;q') sed -n 's/.*\(token:\)\([[:digit:]]*\).*$/\2/p;q')
...@@ -3298,11 +3299,13 @@ userspace_pm_rm_sf_addr_ns1() ...@@ -3298,11 +3299,13 @@ userspace_pm_rm_sf_addr_ns1()
sed -n 's/.*\(daddr6:\)\([0-9a-f:.]*\).*$/\2/p;q') sed -n 's/.*\(daddr6:\)\([0-9a-f:.]*\).*$/\2/p;q')
dp=$(grep "type:10" "$evts_ns1" | dp=$(grep "type:10" "$evts_ns1" |
sed -n 's/.*\(dport:\)\([[:digit:]]*\).*$/\2/p;q') sed -n 's/.*\(dport:\)\([[:digit:]]*\).*$/\2/p;q')
cnt_addr=$(rm_addr_count ${ns1})
cnt_sf=$(rm_sf_count ${ns1})
ip netns exec $ns1 ./pm_nl_ctl rem token $tk id $id ip netns exec $ns1 ./pm_nl_ctl rem token $tk id $id
ip netns exec $ns1 ./pm_nl_ctl dsf lip "::ffff:$addr" \ ip netns exec $ns1 ./pm_nl_ctl dsf lip "::ffff:$addr" \
lport $sp rip $da rport $dp token $tk lport $sp rip $da rport $dp token $tk
wait_rm_addr $ns1 1 wait_rm_addr $ns1 "${cnt_addr}"
wait_rm_sf $ns1 1 wait_rm_sf $ns1 "${cnt_sf}"
} }
userspace_pm_add_sf() userspace_pm_add_sf()
...@@ -3324,17 +3327,20 @@ userspace_pm_rm_sf_addr_ns2() ...@@ -3324,17 +3327,20 @@ userspace_pm_rm_sf_addr_ns2()
local addr=$1 local addr=$1
local id=$2 local id=$2
local tk da dp sp local tk da dp sp
local cnt_addr cnt_sf
tk=$(sed -n 's/.*\(token:\)\([[:digit:]]*\).*$/\2/p;q' "$evts_ns2") tk=$(sed -n 's/.*\(token:\)\([[:digit:]]*\).*$/\2/p;q' "$evts_ns2")
da=$(sed -n 's/.*\(daddr4:\)\([0-9.]*\).*$/\2/p;q' "$evts_ns2") da=$(sed -n 's/.*\(daddr4:\)\([0-9.]*\).*$/\2/p;q' "$evts_ns2")
dp=$(sed -n 's/.*\(dport:\)\([[:digit:]]*\).*$/\2/p;q' "$evts_ns2") dp=$(sed -n 's/.*\(dport:\)\([[:digit:]]*\).*$/\2/p;q' "$evts_ns2")
sp=$(grep "type:10" "$evts_ns2" | sp=$(grep "type:10" "$evts_ns2" |
sed -n 's/.*\(sport:\)\([[:digit:]]*\).*$/\2/p;q') sed -n 's/.*\(sport:\)\([[:digit:]]*\).*$/\2/p;q')
cnt_addr=$(rm_addr_count ${ns2})
cnt_sf=$(rm_sf_count ${ns2})
ip netns exec $ns2 ./pm_nl_ctl rem token $tk id $id ip netns exec $ns2 ./pm_nl_ctl rem token $tk id $id
ip netns exec $ns2 ./pm_nl_ctl dsf lip $addr lport $sp \ ip netns exec $ns2 ./pm_nl_ctl dsf lip $addr lport $sp \
rip $da rport $dp token $tk rip $da rport $dp token $tk
wait_rm_addr $ns2 1 wait_rm_addr $ns2 "${cnt_addr}"
wait_rm_sf $ns2 1 wait_rm_sf $ns2 "${cnt_sf}"
} }
userspace_tests() userspace_tests()
......
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