2 # SPDX-License-Identifier: GPL-2.0
4 ##############################################################################
7 # Kselftest framework requirement - SKIP code is 4.
9 # namespace list created by setup_ns
12 ##############################################################################
16 local timeout=$1; shift
18 local start_time="$(date -u +%s%3N)"
29 local current_time="$(date -u +%s%3N)"
30 if ((current_time - start_time > timeout)); then
43 # disable errexit temporary
44 if [[ $- =~ "e" ]]; then
50 ip netns delete "${ns}" &> /dev/null
51 if ! busywait 2 ip netns list \| grep -vq "^$ns$" &> /dev/null; then
52 echo "Warn: Failed to remove namespace $ns"
57 [ $errexit -eq 1 ] && set -e
66 # setup netns with given names as prefix. e.g
67 # setup_ns local remote
73 for ns_name in "$@"; do
74 # Some test may setup/remove same netns multi times
75 if unset ${ns_name} 2> /dev/null; then
76 ns="${ns_name,,}-$(mktemp -u XXXXXX)"
77 eval readonly ${ns_name}="$ns"
84 if ! ip netns add "$ns"; then
85 echo "Failed to create namespace $ns_name"
89 ip -n "$ns" link set lo up
90 ns_list="$ns_list $ns"
92 NS_LIST="$NS_LIST $ns_list"