17f204a7dSKuniyuki Iwashima#!/bin/bash 27f204a7dSKuniyuki Iwashima# SPDX-License-Identifier: GPL-2.0 37f204a7dSKuniyuki Iwashima# 47f204a7dSKuniyuki Iwashima# Run tests when all ephemeral ports are exhausted. 57f204a7dSKuniyuki Iwashima# 67f204a7dSKuniyuki Iwashima# Author: Kuniyuki Iwashima <kuniyu@amazon.co.jp> 77f204a7dSKuniyuki Iwashima 87f204a7dSKuniyuki Iwashimaset +x 97f204a7dSKuniyuki Iwashimaset -e 107f204a7dSKuniyuki Iwashima 117f204a7dSKuniyuki Iwashimareadonly NETNS="ns-$(mktemp -u XXXXXX)" 127f204a7dSKuniyuki Iwashima 137f204a7dSKuniyuki Iwashimasetup() { 147f204a7dSKuniyuki Iwashima ip netns add "${NETNS}" 157f204a7dSKuniyuki Iwashima ip -netns "${NETNS}" link set lo up 167f204a7dSKuniyuki Iwashima ip netns exec "${NETNS}" \ 177f204a7dSKuniyuki Iwashima sysctl -w net.ipv4.ip_local_port_range="32768 32768" \ 187f204a7dSKuniyuki Iwashima > /dev/null 2>&1 197f204a7dSKuniyuki Iwashima ip netns exec "${NETNS}" \ 207f204a7dSKuniyuki Iwashima sysctl -w net.ipv4.ip_autobind_reuse=1 > /dev/null 2>&1 217f204a7dSKuniyuki Iwashima} 227f204a7dSKuniyuki Iwashima 237f204a7dSKuniyuki Iwashimacleanup() { 247f204a7dSKuniyuki Iwashima ip netns del "${NETNS}" 257f204a7dSKuniyuki Iwashima} 267f204a7dSKuniyuki Iwashima 277f204a7dSKuniyuki Iwashimatrap cleanup EXIT 287f204a7dSKuniyuki Iwashimasetup 297f204a7dSKuniyuki Iwashima 307f204a7dSKuniyuki Iwashimado_test() { 317f204a7dSKuniyuki Iwashima ip netns exec "${NETNS}" ./reuseaddr_ports_exhausted 327f204a7dSKuniyuki Iwashima} 337f204a7dSKuniyuki Iwashima 347f204a7dSKuniyuki Iwashimado_test 357f204a7dSKuniyuki Iwashimaecho "tests done" 36