selftests: mptcp: add mptcp_lib_ns_init/exit helpers
Add helpers mptcp_lib_ns_init() and mptcp_lib_ns_exit() in mptcp_lib.sh to initialize and delete the given namespaces. Then every test script can invoke these helpers and use all namespaces. Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn> Reviewed-by: Matthieu Baerts (NGI0) <matttbe@kernel.org> Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org> Link: https://lore.kernel.org/r/20240306-upstream-net-next-20240304-selftests-mptcp-shared-code-shellcheck-v2-4-bc79e6e5e6a0@kernel.org Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
4214aac14e
commit
3a0f9bed3c
@ -3,9 +3,7 @@
|
||||
|
||||
. "$(dirname "${0}")/mptcp_lib.sh"
|
||||
|
||||
sec=$(date +%s)
|
||||
rndh=$(printf %x $sec)-$(mktemp -u XXXXXX)
|
||||
ns="ns1-$rndh"
|
||||
ns=""
|
||||
ksft_skip=4
|
||||
test_cnt=1
|
||||
timeout_poll=30
|
||||
@ -30,7 +28,7 @@ cleanup()
|
||||
{
|
||||
ip netns pids "${ns}" | xargs --no-run-if-empty kill -SIGKILL &>/dev/null
|
||||
|
||||
ip netns del $ns
|
||||
mptcp_lib_ns_exit "${ns}"
|
||||
}
|
||||
|
||||
mptcp_lib_check_mptcp
|
||||
@ -214,8 +212,7 @@ wait_connected()
|
||||
}
|
||||
|
||||
trap cleanup EXIT
|
||||
ip netns add $ns
|
||||
ip -n $ns link set dev lo up
|
||||
mptcp_lib_ns_init ns
|
||||
|
||||
echo "a" | \
|
||||
timeout ${timeout_test} \
|
||||
|
@ -121,12 +121,10 @@ while getopts "$optstring" option;do
|
||||
esac
|
||||
done
|
||||
|
||||
sec=$(date +%s)
|
||||
rndh=$(printf %x $sec)-$(mktemp -u XXXXXX)
|
||||
ns1="ns1-$rndh"
|
||||
ns2="ns2-$rndh"
|
||||
ns3="ns3-$rndh"
|
||||
ns4="ns4-$rndh"
|
||||
ns1=""
|
||||
ns2=""
|
||||
ns3=""
|
||||
ns4=""
|
||||
|
||||
TEST_COUNT=0
|
||||
TEST_GROUP=""
|
||||
@ -140,9 +138,9 @@ cleanup()
|
||||
|
||||
local netns
|
||||
for netns in "$ns1" "$ns2" "$ns3" "$ns4";do
|
||||
ip netns del $netns
|
||||
rm -f /tmp/$netns.{nstat,out}
|
||||
done
|
||||
mptcp_lib_ns_exit "${ns1}" "${ns2}" "${ns3}" "${ns4}"
|
||||
}
|
||||
|
||||
mptcp_lib_check_mptcp
|
||||
@ -158,10 +156,7 @@ cin_disconnect="$cin".disconnect
|
||||
cout_disconnect="$cout".disconnect
|
||||
trap cleanup EXIT
|
||||
|
||||
for i in "$ns1" "$ns2" "$ns3" "$ns4";do
|
||||
ip netns add $i || exit $ksft_skip
|
||||
ip -net $i link set lo up
|
||||
done
|
||||
mptcp_lib_ns_init ns1 ns2 ns3 ns4
|
||||
|
||||
# "$ns1" ns2 ns3 ns4
|
||||
# ns1eth2 ns2eth1 ns2eth3 ns3eth2 ns3eth4 ns4eth3
|
||||
@ -251,8 +246,8 @@ fi
|
||||
|
||||
check_mptcp_disabled()
|
||||
{
|
||||
local disabled_ns="ns_disabled-$rndh"
|
||||
ip netns add ${disabled_ns} || exit $ksft_skip
|
||||
local disabled_ns
|
||||
mptcp_lib_ns_init disabled_ns
|
||||
|
||||
# net.mptcp.enabled should be enabled by default
|
||||
if [ "$(ip netns exec ${disabled_ns} sysctl net.mptcp.enabled | awk '{ print $3 }')" -ne 1 ]; then
|
||||
@ -266,7 +261,7 @@ check_mptcp_disabled()
|
||||
local err=0
|
||||
LC_ALL=C ip netns exec ${disabled_ns} ./mptcp_connect -p 10000 -s MPTCP 127.0.0.1 < "$cin" 2>&1 | \
|
||||
grep -q "^socket: Protocol not available$" && err=1
|
||||
ip netns delete ${disabled_ns}
|
||||
mptcp_lib_ns_exit "${disabled_ns}"
|
||||
|
||||
if [ ${err} -eq 0 ]; then
|
||||
echo -e "New MPTCP socket cannot be blocked via sysctl\t\t[ FAIL ]"
|
||||
|
@ -86,17 +86,10 @@ init_partial()
|
||||
{
|
||||
capout=$(mktemp)
|
||||
|
||||
local sec rndh
|
||||
sec=$(date +%s)
|
||||
rndh=$(printf %x $sec)-$(mktemp -u XXXXXX)
|
||||
|
||||
ns1="ns1-$rndh"
|
||||
ns2="ns2-$rndh"
|
||||
mptcp_lib_ns_init ns1 ns2
|
||||
|
||||
local netns
|
||||
for netns in "$ns1" "$ns2"; do
|
||||
ip netns add $netns || exit $ksft_skip
|
||||
ip -net $netns link set lo up
|
||||
ip netns exec $netns sysctl -q net.mptcp.enabled=1
|
||||
ip netns exec $netns sysctl -q net.mptcp.pm_type=0 2>/dev/null || true
|
||||
ip netns exec $netns sysctl -q net.ipv4.conf.all.rp_filter=0
|
||||
@ -147,9 +140,9 @@ cleanup_partial()
|
||||
|
||||
local netns
|
||||
for netns in "$ns1" "$ns2"; do
|
||||
ip netns del $netns
|
||||
rm -f /tmp/$netns.{nstat,out}
|
||||
done
|
||||
mptcp_lib_ns_exit "${ns1}" "${ns2}"
|
||||
}
|
||||
|
||||
init() {
|
||||
|
@ -373,3 +373,24 @@ mptcp_lib_check_tools() {
|
||||
esac
|
||||
done
|
||||
}
|
||||
mptcp_lib_ns_init() {
|
||||
local sec rndh
|
||||
|
||||
sec=$(date +%s)
|
||||
rndh=$(printf %x "${sec}")-$(mktemp -u XXXXXX)
|
||||
|
||||
local netns
|
||||
for netns in "${@}"; do
|
||||
eval "${netns}=${netns}-${rndh}"
|
||||
|
||||
ip netns add "${!netns}" || exit ${KSFT_SKIP}
|
||||
ip -net "${!netns}" link set lo up
|
||||
done
|
||||
}
|
||||
|
||||
mptcp_lib_ns_exit() {
|
||||
local netns
|
||||
for netns in "${@}"; do
|
||||
ip netns del "${netns}"
|
||||
done
|
||||
}
|
||||
|
@ -14,11 +14,9 @@ timeout_test=$((timeout_poll * 2 + 1))
|
||||
iptables="iptables"
|
||||
ip6tables="ip6tables"
|
||||
|
||||
sec=$(date +%s)
|
||||
rndh=$(printf %x $sec)-$(mktemp -u XXXXXX)
|
||||
ns1="ns1-$rndh"
|
||||
ns2="ns2-$rndh"
|
||||
ns_sbox="ns_sbox-$rndh"
|
||||
ns1=""
|
||||
ns2=""
|
||||
ns_sbox=""
|
||||
|
||||
add_mark_rules()
|
||||
{
|
||||
@ -40,10 +38,10 @@ add_mark_rules()
|
||||
|
||||
init()
|
||||
{
|
||||
mptcp_lib_ns_init ns1 ns2 ns_sbox
|
||||
|
||||
local netns
|
||||
for netns in "$ns1" "$ns2" "$ns_sbox";do
|
||||
ip netns add $netns || exit $ksft_skip
|
||||
ip -net $netns link set lo up
|
||||
ip netns exec $netns sysctl -q net.mptcp.enabled=1
|
||||
ip netns exec $netns sysctl -q net.ipv4.conf.all.rp_filter=0
|
||||
ip netns exec $netns sysctl -q net.ipv4.conf.default.rp_filter=0
|
||||
@ -79,10 +77,7 @@ init()
|
||||
|
||||
cleanup()
|
||||
{
|
||||
local netns
|
||||
for netns in "$ns1" "$ns2" "$ns_sbox"; do
|
||||
ip netns del $netns
|
||||
done
|
||||
mptcp_lib_ns_exit "${ns1}" "${ns2}" "${ns_sbox}"
|
||||
rm -f "$cin" "$cout"
|
||||
rm -f "$sin" "$sout"
|
||||
}
|
||||
|
@ -24,15 +24,13 @@ while getopts "$optstring" option;do
|
||||
esac
|
||||
done
|
||||
|
||||
sec=$(date +%s)
|
||||
rndh=$(printf %x $sec)-$(mktemp -u XXXXXX)
|
||||
ns1="ns1-$rndh"
|
||||
ns1=""
|
||||
err=$(mktemp)
|
||||
|
||||
cleanup()
|
||||
{
|
||||
rm -f $err
|
||||
ip netns del $ns1
|
||||
mptcp_lib_ns_exit "${ns1}"
|
||||
}
|
||||
|
||||
mptcp_lib_check_mptcp
|
||||
@ -40,8 +38,7 @@ mptcp_lib_check_tools ip
|
||||
|
||||
trap cleanup EXIT
|
||||
|
||||
ip netns add $ns1 || exit $ksft_skip
|
||||
ip -net $ns1 link set lo up
|
||||
mptcp_lib_ns_init ns1
|
||||
ip netns exec $ns1 sysctl -q net.mptcp.enabled=1
|
||||
|
||||
check()
|
||||
|
@ -3,11 +3,9 @@
|
||||
|
||||
. "$(dirname "${0}")/mptcp_lib.sh"
|
||||
|
||||
sec=$(date +%s)
|
||||
rndh=$(printf %x $sec)-$(mktemp -u XXXXXX)
|
||||
ns1="ns1-$rndh"
|
||||
ns2="ns2-$rndh"
|
||||
ns3="ns3-$rndh"
|
||||
ns1=""
|
||||
ns2=""
|
||||
ns3=""
|
||||
capture=false
|
||||
ksft_skip=4
|
||||
timeout_poll=30
|
||||
@ -36,10 +34,7 @@ cleanup()
|
||||
rm -f "$large" "$small"
|
||||
rm -f "$capout"
|
||||
|
||||
local netns
|
||||
for netns in "$ns1" "$ns2" "$ns3";do
|
||||
ip netns del $netns
|
||||
done
|
||||
mptcp_lib_ns_exit "${ns1}" "${ns2}" "${ns3}"
|
||||
}
|
||||
|
||||
mptcp_lib_check_mptcp
|
||||
@ -65,9 +60,8 @@ setup()
|
||||
|
||||
trap cleanup EXIT
|
||||
|
||||
mptcp_lib_ns_init ns1 ns2 ns3
|
||||
for i in "$ns1" "$ns2" "$ns3";do
|
||||
ip netns add $i || exit $ksft_skip
|
||||
ip -net $i link set lo up
|
||||
ip netns exec $i sysctl -q net.ipv4.conf.all.rp_filter=0
|
||||
ip netns exec $i sysctl -q net.ipv4.conf.default.rp_filter=0
|
||||
done
|
||||
|
@ -50,10 +50,8 @@ app6_port=50004
|
||||
client_addr_id=${RANDOM:0:2}
|
||||
server_addr_id=${RANDOM:0:2}
|
||||
|
||||
sec=$(date +%s)
|
||||
rndh=$(printf %x "$sec")-$(mktemp -u XXXXXX)
|
||||
ns1="ns1-$rndh"
|
||||
ns2="ns2-$rndh"
|
||||
ns1=""
|
||||
ns2=""
|
||||
ret=0
|
||||
test_name=""
|
||||
|
||||
@ -118,10 +116,7 @@ cleanup()
|
||||
mptcp_lib_kill_wait $pid
|
||||
done
|
||||
|
||||
local netns
|
||||
for netns in "$ns1" "$ns2" ;do
|
||||
ip netns del "$netns"
|
||||
done
|
||||
mptcp_lib_ns_exit "${ns1}" "${ns2}"
|
||||
|
||||
rm -rf $file $client_evts $server_evts
|
||||
|
||||
@ -131,9 +126,8 @@ cleanup()
|
||||
trap cleanup EXIT
|
||||
|
||||
# Create and configure network namespaces for testing
|
||||
mptcp_lib_ns_init ns1 ns2
|
||||
for i in "$ns1" "$ns2" ;do
|
||||
ip netns add "$i" || exit 1
|
||||
ip -net "$i" link set lo up
|
||||
ip netns exec "$i" sysctl -q net.mptcp.enabled=1
|
||||
ip netns exec "$i" sysctl -q net.mptcp.pm_type=1
|
||||
done
|
||||
|
Loading…
x
Reference in New Issue
Block a user