1#!/bin/sh
2#
3# This is an example script for using netperf. Feel free to modify it
4# as necessary, but I would suggest that you copy this one first.
5# This script performs various UDP unidirectional stream tests.
6#
7
8if [ $# -gt 2 ]; then
9  echo "try again, correctly -> udp_stream_script hostname [CPU]"
10  exit 1
11fi
12
13if [ $# -eq 0 ]; then
14  echo "try again, correctly -> udp_stream_script hostname [CPU]"
15  exit 1
16fi
17
18# where the programs are
19
20#NETHOME=/usr/local/netperf
21#NETHOME="/opt/netperf"
22NETHOME="."
23
24# at what port will netserver be waiting? If you decide to run
25# netserver at a differnet port than the default of 12865, then set
26# the value of PORT apropriately
27#PORT="-p some_other_portnum"
28PORT=""
29
30# The test length in seconds
31TEST_TIME=60
32
33# How accurate we want the estimate of performance:
34#      maximum and minimum test iterations (-i)
35#      confidence level (99 or 95) and interval (percent)
36
37STATS_STUFF="-i 10,2 -I 99,10"
38
39# The socket sizes that we will be testing. This should be a list of
40# integers separated by spaces
41
42SOCKET_SIZES="32768"
43
44# The send sizes that we will be using. Using send sizes that result
45# in UDP packets which are larger than link size can be a bad thing to do.
46# for FDDI, you can tack-on a 4096 data point
47
48SEND_SIZES="64 1024 1472"
49
50# if there are two parms, parm one it the hostname and parm two will
51# be a CPU indicator. actually, anything as a second parm will cause
52# the CPU to be measured, but we will "advertise" it should be "CPU"
53
54if [ $# -eq 2 ]; then
55  REM_HOST=$1
56  LOC_CPU="-c"
57  REM_CPU="-C"
58fi
59
60if [ $# -eq 1 ]; then
61  LOC_CPU=""
62  REM_CPU=""
63  REM_HOST=$1
64fi
65
66# If we are measuring CPU utilization, then we can save beaucoup
67# time by saving the results of the CPU calibration and passing
68# them in during the real tests. So, we execute the new CPU "tests"
69# of netperf and put the values into shell vars.
70case $LOC_CPU in
71\-c) LOC_RATE=`$NETHOME/netperf $PORT -t LOC_CPU`;;
72*) LOC_RATE=""
73esac
74
75case $REM_CPU in
76\-C) REM_RATE=`$NETHOME/netperf $PORT -t REM_CPU -H $REM_HOST`;;
77*) REM_RATE=""
78esac
79
80# This will tell netperf that headers are not to be displayed
81NO_HDR="-P 0"
82
83for SOCKET_SIZE in $SOCKET_SIZES
84do
85  for SEND_SIZE in $SEND_SIZES
86  do
87    echo
88    echo ------------------------------------------------------
89    echo Testing with the following command line:
90    echo $NETHOME/netperf $PORT -l $TEST_TIME -H $REM_HOST $STATS_STUFF \
91           $LOC_CPU $LOC_RATE $REM_CPU $REM_RATE -t UDP_STREAM -- \
92           -m $SEND_SIZE -s $SOCKET_SIZE -S $SOCKET_SIZE
93
94    $NETHOME/netperf $PORT -l $TEST_TIME -H $REM_HOST $STATS_STUFF \
95      $LOC_CPU $LOC_RATE $REM_CPU $REM_RATE -t UDP_STREAM -- \
96      -m $SEND_SIZE -s $SOCKET_SIZE -S $SOCKET_SIZE
97
98  done
99done
100echo
101