1*ec8cb4f6SMartin KaFai Lau#!/bin/bash
2*ec8cb4f6SMartin KaFai Lau# SPDX-License-Identifier: GPL-2.0
3*ec8cb4f6SMartin KaFai Lau# Copyright (c) 2022 Meta Platforms, Inc. and affiliates.
4*ec8cb4f6SMartin KaFai Lau
5*ec8cb4f6SMartin KaFai LauNS='stress_reuseport_listen_ns'
6*ec8cb4f6SMartin KaFai LauNR_FILES=24100
7*ec8cb4f6SMartin KaFai LauSAVED_NR_FILES=$(ulimit -n)
8*ec8cb4f6SMartin KaFai Lau
9*ec8cb4f6SMartin KaFai Lausetup() {
10*ec8cb4f6SMartin KaFai Lau	ip netns add $NS
11*ec8cb4f6SMartin KaFai Lau	ip netns exec $NS sysctl -q -w net.ipv6.ip_nonlocal_bind=1
12*ec8cb4f6SMartin KaFai Lau	ulimit -n $NR_FILES
13*ec8cb4f6SMartin KaFai Lau}
14*ec8cb4f6SMartin KaFai Lau
15*ec8cb4f6SMartin KaFai Laucleanup() {
16*ec8cb4f6SMartin KaFai Lau	ip netns del $NS
17*ec8cb4f6SMartin KaFai Lau	ulimit -n $SAVED_NR_FILES
18*ec8cb4f6SMartin KaFai Lau}
19*ec8cb4f6SMartin KaFai Lau
20*ec8cb4f6SMartin KaFai Lautrap cleanup EXIT
21*ec8cb4f6SMartin KaFai Lausetup
22*ec8cb4f6SMartin KaFai Lau# 300 different vips listen on port 443
23*ec8cb4f6SMartin KaFai Lau# Each vip:443 sockaddr has 80 LISTEN sock by using SO_REUSEPORT
24*ec8cb4f6SMartin KaFai Lau# Total 24000 listening socks
25*ec8cb4f6SMartin KaFai Lauip netns exec $NS ./stress_reuseport_listen 300 80
26