github.com/rootless-containers/rootlesskit/v2@v2.3.4/hack/benchmark-iperf3-port-udp.sh (about)

     1  #!/bin/bash
     2  # TODO: merge this script into benchmark-iperf3-port.sh
     3  source $(realpath $(dirname $0))/common.inc.sh
     4  function benchmark::iperf3::port::udp() {
     5  	statedir=$(mktemp -d)
     6  	INFO "[benchmark:iperf3::port::udp] $@"
     7  	portdriver="$1"
     8  	shift
     9  	flags="$@"
    10  	IPERF3="iperf3"
    11  	if echo "$@" | grep -q -- --detach-netns; then
    12  		IPERF3="nsenter -n${statedir}/netns $IPERF3"
    13  	fi
    14  	$ROOTLESSKIT $flags --port-driver=$portdriver --state-dir=$statedir $IPERF3 -s >/dev/null &
    15  	rkpid=$!
    16  	# wait for socket to be available
    17  	sleep 3
    18  	rootlessctl="rootlessctl --socket=$statedir/api.sock"
    19  	if [ $portdriver != "implicit" ]; then
    20  		portids=$($rootlessctl add-ports 127.0.0.1:5201:5201/tcp 127.0.0.1:5201:5201/udp)
    21  		$rootlessctl list-ports
    22  	fi
    23  	sleep 3
    24  	$IPERF3C 127.0.0.1 -u -b 100G
    25  	if [ $portdriver != "implicit" ]; then
    26  		$rootlessctl remove-ports $portids
    27  	fi
    28  	kill $rkpid
    29  }
    30  
    31  if [ $# -lt 1 ]; then
    32  	ERROR "Usage: $0 PORTDRIVER [FLAGS...]"
    33  	exit 1
    34  fi
    35  portdriver=$1
    36  shift 1
    37  flags=$@
    38  if ! echo $flags | grep -q -- "--net"; then
    39  	flags="$flags --net=slirp4netns"
    40  fi
    41  flags="$flags --mtu=65520"
    42  
    43  set -x
    44  benchmark::iperf3::port::udp ${portdriver} $flags