File: benchmark-iperf3-port.sh

package info (click to toggle)
rootlesskit 2.0.2-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 636 kB
  • sloc: sh: 433; makefile: 25
file content (43 lines) | stat: -rwxr-xr-x 1,021 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#!/bin/bash
source $(realpath $(dirname $0))/common.inc.sh
function benchmark::iperf3::port() {
	statedir=$(mktemp -d)
	INFO "[benchmark:iperf3::port] $@"
	portdriver="$1"
	shift
	flags="$@"
	IPERF3="iperf3"
	if echo "$@" | grep -q -- --detach-netns; then
		IPERF3="nsenter -n${statedir}/netns $IPERF3"
	fi
	$ROOTLESSKIT $flags --port-driver=$portdriver --state-dir=$statedir $IPERF3 -s >/dev/null &
	rkpid=$!
	# wait for socket to be available
	sleep 3
	rootlessctl="rootlessctl --socket=$statedir/api.sock"
	if [ $portdriver != "implicit" ]; then
		portid=$($rootlessctl add-ports 127.0.0.1:5201:5201/tcp)
		$rootlessctl list-ports
	fi
	$IPERF3C 127.0.0.1
	if [ $portdriver != "implicit" ]; then
		$rootlessctl remove-ports $portid
	fi
	kill $rkpid
}

if [ $# -lt 1 ]; then
	ERROR "Usage: $0 PORTDRIVER [FLAGS...]"
	exit 1
fi
portdriver=$1
shift 1
flags=$@

if ! echo $flags | grep -q -- "--net"; then
	flags="$flags --net=slirp4netns"
fi
flags="$flags --mtu=65520"

set -x
benchmark::iperf3::port ${portdriver} $flags