forked from mirrors/linux
		
	selftests: mptcp: Add tests for userspace PM type
These tests ensure that the in-kernel path manager is bypassed when the userspace path manager is configured. Kernel code is still responsible for ADD_ADDR echo, so also make sure that's working. Tested-by: Geliang Tang <geliang.tang@suse.com> Acked-by: Paolo Abeni <pabeni@redhat.com> Co-developed-by: Matthieu Baerts <matthieu.baerts@tessares.net> Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net> Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
		
							parent
							
								
									6bb63ccc25
								
							
						
					
					
						commit
						5ac1d2d634
					
				
					 1 changed files with 66 additions and 0 deletions
				
			
		|  | @ -70,6 +70,7 @@ init_partial() | ||||||
| 		ip netns add $netns || exit $ksft_skip | 		ip netns add $netns || exit $ksft_skip | ||||||
| 		ip -net $netns link set lo up | 		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.enabled=1 | ||||||
|  | 		ip netns exec $netns sysctl -q net.mptcp.pm_type=0 | ||||||
| 		ip netns exec $netns sysctl -q net.ipv4.conf.all.rp_filter=0 | 		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 | 		ip netns exec $netns sysctl -q net.ipv4.conf.default.rp_filter=0 | ||||||
| 		if [ $checksum -eq 1 ]; then | 		if [ $checksum -eq 1 ]; then | ||||||
|  | @ -1611,6 +1612,13 @@ wait_attempt_fail() | ||||||
| 	return 1 | 	return 1 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | set_userspace_pm() | ||||||
|  | { | ||||||
|  | 	local ns=$1 | ||||||
|  | 
 | ||||||
|  | 	ip netns exec $ns sysctl -q net.mptcp.pm_type=1 | ||||||
|  | } | ||||||
|  | 
 | ||||||
| subflows_tests() | subflows_tests() | ||||||
| { | { | ||||||
| 	if reset "no JOIN"; then | 	if reset "no JOIN"; then | ||||||
|  | @ -2698,6 +2706,63 @@ fail_tests() | ||||||
| 	fi | 	fi | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | userspace_tests() | ||||||
|  | { | ||||||
|  | 	# userspace pm type prevents add_addr | ||||||
|  | 	if reset "userspace pm type prevents add_addr"; then | ||||||
|  | 		set_userspace_pm $ns1 | ||||||
|  | 		pm_nl_set_limits $ns1 0 2 | ||||||
|  | 		pm_nl_set_limits $ns2 0 2 | ||||||
|  | 		pm_nl_add_endpoint $ns1 10.0.2.1 flags signal | ||||||
|  | 		run_tests $ns1 $ns2 10.0.1.1 | ||||||
|  | 		chk_join_nr 0 0 0 | ||||||
|  | 		chk_add_nr 0 0 | ||||||
|  | 	fi | ||||||
|  | 
 | ||||||
|  | 	# userspace pm type rejects join | ||||||
|  | 	if reset "userspace pm type rejects join"; then | ||||||
|  | 		set_userspace_pm $ns1 | ||||||
|  | 		pm_nl_set_limits $ns1 1 1 | ||||||
|  | 		pm_nl_set_limits $ns2 1 1 | ||||||
|  | 		pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow | ||||||
|  | 		run_tests $ns1 $ns2 10.0.1.1 | ||||||
|  | 		chk_join_nr 1 1 0 | ||||||
|  | 	fi | ||||||
|  | 
 | ||||||
|  | 	# userspace pm type does not send join | ||||||
|  | 	if reset "userspace pm type does not send join"; then | ||||||
|  | 		set_userspace_pm $ns2 | ||||||
|  | 		pm_nl_set_limits $ns1 1 1 | ||||||
|  | 		pm_nl_set_limits $ns2 1 1 | ||||||
|  | 		pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow | ||||||
|  | 		run_tests $ns1 $ns2 10.0.1.1 | ||||||
|  | 		chk_join_nr 0 0 0 | ||||||
|  | 	fi | ||||||
|  | 
 | ||||||
|  | 	# userspace pm type prevents mp_prio | ||||||
|  | 	if reset "userspace pm type prevents mp_prio"; then | ||||||
|  | 		set_userspace_pm $ns1 | ||||||
|  | 		pm_nl_set_limits $ns1 1 1 | ||||||
|  | 		pm_nl_set_limits $ns2 1 1 | ||||||
|  | 		pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow | ||||||
|  | 		run_tests $ns1 $ns2 10.0.1.1 0 0 0 slow backup | ||||||
|  | 		chk_join_nr 1 1 0 | ||||||
|  | 		chk_prio_nr 0 0 | ||||||
|  | 	fi | ||||||
|  | 
 | ||||||
|  | 	# userspace pm type prevents rm_addr | ||||||
|  | 	if reset "userspace pm type prevents rm_addr"; then | ||||||
|  | 		set_userspace_pm $ns1 | ||||||
|  | 		set_userspace_pm $ns2 | ||||||
|  | 		pm_nl_set_limits $ns1 0 1 | ||||||
|  | 		pm_nl_set_limits $ns2 0 1 | ||||||
|  | 		pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow | ||||||
|  | 		run_tests $ns1 $ns2 10.0.1.1 0 0 -1 slow | ||||||
|  | 		chk_join_nr 0 0 0 | ||||||
|  | 		chk_rm_nr 0 0 | ||||||
|  | 	fi | ||||||
|  | } | ||||||
|  | 
 | ||||||
| implicit_tests() | implicit_tests() | ||||||
| { | { | ||||||
| 	# userspace pm type prevents add_addr | 	# userspace pm type prevents add_addr | ||||||
|  | @ -2767,6 +2832,7 @@ all_tests_sorted=( | ||||||
| 	m@fullmesh_tests | 	m@fullmesh_tests | ||||||
| 	z@fastclose_tests | 	z@fastclose_tests | ||||||
| 	F@fail_tests | 	F@fail_tests | ||||||
|  | 	u@userspace_tests | ||||||
| 	I@implicit_tests | 	I@implicit_tests | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Mat Martineau
						Mat Martineau