Skip to content

Commit 9e9d176

Browse files
geliangtangkuba-moo
authored andcommitted
selftests: mptcp: add pm_nl_set_endpoint helper
This patch moves endpoint settings out of do_transfer() into a new helper pm_nl_set_endpoint(). And invoke this helper in do_transfer(). This makes the code much more clearer. Reviewed-by: Matthieu Baerts <matthieu.baerts@tessares.net> Signed-off-by: Geliang Tang <geliang.tang@suse.com> Signed-off-by: Mat Martineau <martineau@kernel.org> Link: https://lore.kernel.org/r/20230623-send-net-next-20230623-v1-7-a883213c8ba9@kernel.org Signed-off-by: Jakub Kicinski <kuba@kernel.org>
1 parent 1534f87 commit 9e9d176

1 file changed

Lines changed: 122 additions & 113 deletions

File tree

tools/testing/selftests/net/mptcp/mptcp_join.sh

Lines changed: 122 additions & 113 deletions
Original file line numberDiff line numberDiff line change
@@ -822,122 +822,11 @@ pm_nl_check_endpoint()
822822
fi
823823
}
824824

825-
do_transfer()
825+
pm_nl_set_endpoint()
826826
{
827827
local listener_ns="$1"
828828
local connector_ns="$2"
829-
local cl_proto="$3"
830-
local srv_proto="$4"
831-
local connect_addr="$5"
832-
local speed="$6"
833-
834-
local port=$((10000 + TEST_COUNT - 1))
835-
local cappid
836-
837-
:> "$cout"
838-
:> "$sout"
839-
:> "$capout"
840-
841-
if [ $capture -eq 1 ]; then
842-
local capuser
843-
if [ -z $SUDO_USER ] ; then
844-
capuser=""
845-
else
846-
capuser="-Z $SUDO_USER"
847-
fi
848-
849-
capfile=$(printf "mp_join-%02u-%s.pcap" "$TEST_COUNT" "${listener_ns}")
850-
851-
echo "Capturing traffic for test $TEST_COUNT into $capfile"
852-
ip netns exec ${listener_ns} tcpdump -i any -s 65535 -B 32768 $capuser -w $capfile > "$capout" 2>&1 &
853-
cappid=$!
854-
855-
sleep 1
856-
fi
857-
858-
NSTAT_HISTORY=/tmp/${listener_ns}.nstat ip netns exec ${listener_ns} \
859-
nstat -n
860-
NSTAT_HISTORY=/tmp/${connector_ns}.nstat ip netns exec ${connector_ns} \
861-
nstat -n
862-
863-
local extra_args
864-
if [ $speed = "fast" ]; then
865-
extra_args="-j"
866-
elif [ $speed = "slow" ]; then
867-
extra_args="-r 50"
868-
elif [[ $speed = "speed_"* ]]; then
869-
extra_args="-r ${speed:6}"
870-
fi
871-
872-
local flags="subflow"
873-
local extra_cl_args=""
874-
local extra_srv_args=""
875-
local trunc_size=""
876-
if [[ "${addr_nr_ns2}" = "fastclose_"* ]]; then
877-
if [ ${test_linkfail} -le 1 ]; then
878-
echo "fastclose tests need test_linkfail argument"
879-
fail_test
880-
return 1
881-
fi
882-
883-
# disconnect
884-
trunc_size=${test_linkfail}
885-
local side=${addr_nr_ns2:10}
886-
887-
if [ ${side} = "client" ]; then
888-
extra_cl_args="-f ${test_linkfail}"
889-
extra_srv_args="-f -1"
890-
elif [ ${side} = "server" ]; then
891-
extra_srv_args="-f ${test_linkfail}"
892-
extra_cl_args="-f -1"
893-
else
894-
echo "wrong/unknown fastclose spec ${side}"
895-
fail_test
896-
return 1
897-
fi
898-
addr_nr_ns2=0
899-
elif [[ "${addr_nr_ns2}" = "fullmesh_"* ]]; then
900-
flags="${flags},fullmesh"
901-
addr_nr_ns2=${addr_nr_ns2:9}
902-
fi
903-
904-
extra_srv_args="$extra_args $extra_srv_args"
905-
if [ "$test_linkfail" -gt 1 ];then
906-
timeout ${timeout_test} \
907-
ip netns exec ${listener_ns} \
908-
./mptcp_connect -t ${timeout_poll} -l -p $port -s ${srv_proto} \
909-
$extra_srv_args "::" < "$sinfail" > "$sout" &
910-
else
911-
timeout ${timeout_test} \
912-
ip netns exec ${listener_ns} \
913-
./mptcp_connect -t ${timeout_poll} -l -p $port -s ${srv_proto} \
914-
$extra_srv_args "::" < "$sin" > "$sout" &
915-
fi
916-
local spid=$!
917-
918-
wait_local_port_listen "${listener_ns}" "${port}"
919-
920-
extra_cl_args="$extra_args $extra_cl_args"
921-
if [ "$test_linkfail" -eq 0 ];then
922-
timeout ${timeout_test} \
923-
ip netns exec ${connector_ns} \
924-
./mptcp_connect -t ${timeout_poll} -p $port -s ${cl_proto} \
925-
$extra_cl_args $connect_addr < "$cin" > "$cout" &
926-
elif [ "$test_linkfail" -eq 1 ] || [ "$test_linkfail" -eq 2 ];then
927-
( cat "$cinfail" ; sleep 2; link_failure $listener_ns ; cat "$cinfail" ) | \
928-
tee "$cinsent" | \
929-
timeout ${timeout_test} \
930-
ip netns exec ${connector_ns} \
931-
./mptcp_connect -t ${timeout_poll} -p $port -s ${cl_proto} \
932-
$extra_cl_args $connect_addr > "$cout" &
933-
else
934-
tee "$cinsent" < "$cinfail" | \
935-
timeout ${timeout_test} \
936-
ip netns exec ${connector_ns} \
937-
./mptcp_connect -t ${timeout_poll} -p $port -s ${cl_proto} \
938-
$extra_cl_args $connect_addr > "$cout" &
939-
fi
940-
local cpid=$!
829+
local connect_addr="$3"
941830

942831
# let the mptcp subflow be established in background before
943832
# do endpoint manipulation
@@ -1077,6 +966,126 @@ do_transfer()
1077966
done
1078967
done
1079968
fi
969+
}
970+
971+
do_transfer()
972+
{
973+
local listener_ns="$1"
974+
local connector_ns="$2"
975+
local cl_proto="$3"
976+
local srv_proto="$4"
977+
local connect_addr="$5"
978+
local speed="$6"
979+
980+
local port=$((10000 + TEST_COUNT - 1))
981+
local cappid
982+
983+
:> "$cout"
984+
:> "$sout"
985+
:> "$capout"
986+
987+
if [ $capture -eq 1 ]; then
988+
local capuser
989+
if [ -z $SUDO_USER ] ; then
990+
capuser=""
991+
else
992+
capuser="-Z $SUDO_USER"
993+
fi
994+
995+
capfile=$(printf "mp_join-%02u-%s.pcap" "$TEST_COUNT" "${listener_ns}")
996+
997+
echo "Capturing traffic for test $TEST_COUNT into $capfile"
998+
ip netns exec ${listener_ns} tcpdump -i any -s 65535 -B 32768 $capuser -w $capfile > "$capout" 2>&1 &
999+
cappid=$!
1000+
1001+
sleep 1
1002+
fi
1003+
1004+
NSTAT_HISTORY=/tmp/${listener_ns}.nstat ip netns exec ${listener_ns} \
1005+
nstat -n
1006+
NSTAT_HISTORY=/tmp/${connector_ns}.nstat ip netns exec ${connector_ns} \
1007+
nstat -n
1008+
1009+
local extra_args
1010+
if [ $speed = "fast" ]; then
1011+
extra_args="-j"
1012+
elif [ $speed = "slow" ]; then
1013+
extra_args="-r 50"
1014+
elif [[ $speed = "speed_"* ]]; then
1015+
extra_args="-r ${speed:6}"
1016+
fi
1017+
1018+
local flags="subflow"
1019+
local extra_cl_args=""
1020+
local extra_srv_args=""
1021+
local trunc_size=""
1022+
if [[ "${addr_nr_ns2}" = "fastclose_"* ]]; then
1023+
if [ ${test_linkfail} -le 1 ]; then
1024+
echo "fastclose tests need test_linkfail argument"
1025+
fail_test
1026+
return 1
1027+
fi
1028+
1029+
# disconnect
1030+
trunc_size=${test_linkfail}
1031+
local side=${addr_nr_ns2:10}
1032+
1033+
if [ ${side} = "client" ]; then
1034+
extra_cl_args="-f ${test_linkfail}"
1035+
extra_srv_args="-f -1"
1036+
elif [ ${side} = "server" ]; then
1037+
extra_srv_args="-f ${test_linkfail}"
1038+
extra_cl_args="-f -1"
1039+
else
1040+
echo "wrong/unknown fastclose spec ${side}"
1041+
fail_test
1042+
return 1
1043+
fi
1044+
addr_nr_ns2=0
1045+
elif [[ "${addr_nr_ns2}" = "fullmesh_"* ]]; then
1046+
flags="${flags},fullmesh"
1047+
addr_nr_ns2=${addr_nr_ns2:9}
1048+
fi
1049+
1050+
extra_srv_args="$extra_args $extra_srv_args"
1051+
if [ "$test_linkfail" -gt 1 ];then
1052+
timeout ${timeout_test} \
1053+
ip netns exec ${listener_ns} \
1054+
./mptcp_connect -t ${timeout_poll} -l -p $port -s ${srv_proto} \
1055+
$extra_srv_args "::" < "$sinfail" > "$sout" &
1056+
else
1057+
timeout ${timeout_test} \
1058+
ip netns exec ${listener_ns} \
1059+
./mptcp_connect -t ${timeout_poll} -l -p $port -s ${srv_proto} \
1060+
$extra_srv_args "::" < "$sin" > "$sout" &
1061+
fi
1062+
local spid=$!
1063+
1064+
wait_local_port_listen "${listener_ns}" "${port}"
1065+
1066+
extra_cl_args="$extra_args $extra_cl_args"
1067+
if [ "$test_linkfail" -eq 0 ];then
1068+
timeout ${timeout_test} \
1069+
ip netns exec ${connector_ns} \
1070+
./mptcp_connect -t ${timeout_poll} -p $port -s ${cl_proto} \
1071+
$extra_cl_args $connect_addr < "$cin" > "$cout" &
1072+
elif [ "$test_linkfail" -eq 1 ] || [ "$test_linkfail" -eq 2 ];then
1073+
( cat "$cinfail" ; sleep 2; link_failure $listener_ns ; cat "$cinfail" ) | \
1074+
tee "$cinsent" | \
1075+
timeout ${timeout_test} \
1076+
ip netns exec ${connector_ns} \
1077+
./mptcp_connect -t ${timeout_poll} -p $port -s ${cl_proto} \
1078+
$extra_cl_args $connect_addr > "$cout" &
1079+
else
1080+
tee "$cinsent" < "$cinfail" | \
1081+
timeout ${timeout_test} \
1082+
ip netns exec ${connector_ns} \
1083+
./mptcp_connect -t ${timeout_poll} -p $port -s ${cl_proto} \
1084+
$extra_cl_args $connect_addr > "$cout" &
1085+
fi
1086+
local cpid=$!
1087+
1088+
pm_nl_set_endpoint $listener_ns $connector_ns $connect_addr
10801089

10811090
wait $cpid
10821091
local retc=$?

0 commit comments

Comments
 (0)