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

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