Commit f2ae0fa6 authored by Florian Westphal's avatar Florian Westphal Committed by David S. Miller
Browse files

selftests/mptcp: add diag listen tests



Check dumping of mptcp listener sockets:
1. filter by dport should not return any results
2. filter by sport should return listen sk
3. filter by saddr+sport should return listen sk
4. no filter should return listen sk

Signed-off-by: default avatarFlorian Westphal <fw@strlen.de>
Signed-off-by: default avatarMat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 4fa39b70
Loading
Loading
Loading
Loading
+38 −0
Original line number Diff line number Diff line
@@ -71,6 +71,43 @@ chk_msk_remote_key_nr()
		__chk_nr "grep -c remote_key" $*
}

__chk_listen()
{
	local filter="$1"
	local expected=$2

	shift 2
	msg=$*

	nr=$(ss -N $ns -Ml "$filter" | grep -c LISTEN)
	printf "%-50s" "$msg"

	if [ $nr != $expected ]; then
		echo "[ fail ] expected $expected found $nr"
		ret=$test_cnt
	else
		echo "[  ok  ]"
	fi
}

chk_msk_listen()
{
	lport=$1
	local msg="check for listen socket"

	# destination port search should always return empty list
	__chk_listen "dport $lport" 0 "listen match for dport $lport"

	# should return 'our' mptcp listen socket
	__chk_listen "sport $lport" 1 "listen match for sport $lport"

	__chk_listen "src inet:0.0.0.0:$lport" 1 "listen match for saddr and sport"

	__chk_listen "" 1 "all listen sockets"

	nr=$(ss -Ml $filter | wc -l)
}

# $1: ns, $2: port
wait_local_port_listen()
{
@@ -113,6 +150,7 @@ echo "a" | \
				0.0.0.0 >/dev/null &
wait_local_port_listen $ns 10000
chk_msk_nr 0 "no msk on netns creation"
chk_msk_listen 10000

echo "b" | \
	timeout ${timeout_test} \