mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-09-04 20:19:47 +08:00 
			
		
		
		
	selftests: mptcp: userspace pm address tests
This patch adds userspace pm tests support for mptcp_join.sh script. Add userspace pm add_addr and rm_addr test cases in userspace_tests(). Reviewed-by: Mat Martineau <mathew.j.martineau@linux.intel.com> Signed-off-by: Geliang Tang <geliang.tang@suse.com> Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
		
							parent
							
								
									d0d9c8f2df
								
							
						
					
					
						commit
						97040cf980
					
				| @ -455,6 +455,12 @@ wait_mpj() | ||||
| 	done | ||||
| } | ||||
| 
 | ||||
| kill_wait() | ||||
| { | ||||
| 	kill $1 > /dev/null 2>&1 | ||||
| 	wait $1 2>/dev/null | ||||
| } | ||||
| 
 | ||||
| pm_nl_set_limits() | ||||
| { | ||||
| 	local ns=$1 | ||||
| @ -654,6 +660,9 @@ do_transfer() | ||||
| 
 | ||||
| 	local port=$((10000 + TEST_COUNT - 1)) | ||||
| 	local cappid | ||||
| 	local userspace_pm=0 | ||||
| 	local evts_ns1 | ||||
| 	local evts_ns1_pid | ||||
| 
 | ||||
| 	:> "$cout" | ||||
| 	:> "$sout" | ||||
| @ -690,12 +699,24 @@ do_transfer() | ||||
| 		extra_args="-r ${speed:6}" | ||||
| 	fi | ||||
| 
 | ||||
| 	if [[ "${addr_nr_ns1}" = "userspace_"* ]]; then | ||||
| 		userspace_pm=1 | ||||
| 		addr_nr_ns1=${addr_nr_ns1:10} | ||||
| 	fi | ||||
| 
 | ||||
| 	if [[ "${addr_nr_ns2}" = "fastclose_"* ]]; then | ||||
| 		# disconnect | ||||
| 		extra_args="$extra_args -I ${addr_nr_ns2:10}" | ||||
| 		addr_nr_ns2=0 | ||||
| 	fi | ||||
| 
 | ||||
| 	if [ $userspace_pm -eq 1 ]; then | ||||
| 		evts_ns1=$(mktemp) | ||||
| 		:> "$evts_ns1" | ||||
| 		ip netns exec ${listener_ns} ./pm_nl_ctl events >> "$evts_ns1" 2>&1 & | ||||
| 		evts_ns1_pid=$! | ||||
| 	fi | ||||
| 
 | ||||
| 	local local_addr | ||||
| 	if is_v6 "${connect_addr}"; then | ||||
| 		local_addr="::" | ||||
| @ -748,6 +769,8 @@ do_transfer() | ||||
| 	if [ $addr_nr_ns1 -gt 0 ]; then | ||||
| 		local counter=2 | ||||
| 		local add_nr_ns1=${addr_nr_ns1} | ||||
| 		local id=10 | ||||
| 		local tk | ||||
| 		while [ $add_nr_ns1 -gt 0 ]; do | ||||
| 			local addr | ||||
| 			if is_v6 "${connect_addr}"; then | ||||
| @ -755,9 +778,18 @@ do_transfer() | ||||
| 			else | ||||
| 				addr="10.0.$counter.1" | ||||
| 			fi | ||||
| 			if [ $userspace_pm -eq 0 ]; then | ||||
| 				pm_nl_add_endpoint $ns1 $addr flags signal | ||||
| 			else | ||||
| 				tk=$(sed -n 's/.*\(token:\)\([[:digit:]]*\).*$/\2/p;q' "$evts_ns1") | ||||
| 				ip netns exec ${listener_ns} ./pm_nl_ctl ann $addr token $tk id $id | ||||
| 				sleep 1 | ||||
| 				ip netns exec ${listener_ns} ./pm_nl_ctl rem token $tk id $id | ||||
| 			fi | ||||
| 
 | ||||
| 			counter=$((counter + 1)) | ||||
| 			add_nr_ns1=$((add_nr_ns1 - 1)) | ||||
| 			id=$((id + 1)) | ||||
| 		done | ||||
| 	elif [ $addr_nr_ns1 -lt 0 ]; then | ||||
| 		local rm_nr_ns1=$((-addr_nr_ns1)) | ||||
| @ -890,6 +922,11 @@ do_transfer() | ||||
| 	    kill $cappid | ||||
| 	fi | ||||
| 
 | ||||
| 	if [ $userspace_pm -eq 1 ]; then | ||||
| 		kill_wait $evts_ns1_pid | ||||
| 		rm -rf $evts_ns1 | ||||
| 	fi | ||||
| 
 | ||||
| 	NSTAT_HISTORY=/tmp/${listener_ns}.nstat ip netns exec ${listener_ns} \ | ||||
| 		nstat | grep Tcp > /tmp/${listener_ns}.out | ||||
| 	NSTAT_HISTORY=/tmp/${connector_ns}.nstat ip netns exec ${connector_ns} \ | ||||
| @ -2810,6 +2847,16 @@ userspace_tests() | ||||
| 		chk_join_nr 0 0 0 | ||||
| 		chk_rm_nr 0 0 | ||||
| 	fi | ||||
| 
 | ||||
| 	# userspace pm add & remove address | ||||
| 	if reset "userspace pm add & remove address"; then | ||||
| 		set_userspace_pm $ns1 | ||||
| 		pm_nl_set_limits $ns2 1 1 | ||||
| 		run_tests $ns1 $ns2 10.0.1.1 0 userspace_1 0 slow | ||||
| 		chk_join_nr 1 1 1 | ||||
| 		chk_add_nr 1 1 | ||||
| 		chk_rm_nr 1 1 invert | ||||
| 	fi | ||||
| } | ||||
| 
 | ||||
| endpoint_tests() | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Geliang Tang
						Geliang Tang