Commit 3a0f9bed authored by Geliang Tang's avatar Geliang Tang Committed by Jakub Kicinski

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: default avatarGeliang Tang <tanggeliang@kylinos.cn>
Reviewed-by: default avatarMatthieu Baerts (NGI0) <matttbe@kernel.org>
Signed-off-by: default avatarMatthieu 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.orgSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 4214aac1
......@@ -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
......
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