@@ -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