xref: /linux/tools/testing/selftests/net/net_helper.sh (revision 79790b6818e96c58fe2bffee1b418c16e64e7b80)
1#!/bin/bash
2# SPDX-License-Identifier: GPL-2.0
3#
4# Helper functions
5
6wait_local_port_listen()
7{
8	local listener_ns="${1}"
9	local port="${2}"
10	local protocol="${3}"
11	local pattern
12	local i
13
14	pattern=":$(printf "%04X" "${port}") "
15
16	# for tcp protocol additionally check the socket state
17	[ ${protocol} = "tcp" ] && pattern="${pattern}0A"
18	for i in $(seq 10); do
19		if ip netns exec "${listener_ns}" awk '{print $2" "$4}' \
20		   /proc/net/"${protocol}"* | grep -q "${pattern}"; then
21			break
22		fi
23		sleep 0.1
24	done
25}
26