4.3.2) IPerf
Overview
iPerf3 is a common networking measurement tool with a variety of options, allowing for testing bandwidth, delay, and packet loss on IP enabled links. iPerf3 can test either TCP or UDP links. For a successful test the Experimenter needs to set the two end measurements in client-server pairs, and start the server side first.
Location
The sample code for initiating a iPerf traffic is located in:
/root/Profiles/ProfileScripts/Traffic/Samples/startIperfServer.sh
and
/root/Profiles/ProfileScripts/Traffic/Samples/startIperfClient.sh
By default, a TCP client server using iPerf3 is being setup for five minutes.
According to the instructions for running sample applications, the best way to use iPerf is to copy the script to the startTraffic.sh script (again, in client-server pairs):
$cp /root/Profiles/ProfileScripts/Traffic/Samples/startIperfServer.sh /root/Profiles/ProfileScripts/Traffic/startTraffic.sh
Edit the iPerf scripts in /root/Profiles/ProfileScripts/Traffic/Samples/startIperfClient.sh and ./startIperfServer.sh to change the duration, destination, traffic type, or any of the many options available for this tool.
DESTINATION_IP By default, the server IP address set in the startIperfClient.sh is the default IP address an srsRAN eNB (172.16.0.1). Therefore, if the server is setup at the eNB, then the client need not be modified. For all other setups, the IP address of the server needs to be changed according to the experiment setup.
IPERF_DURATION is the time iPerf traffic will be generated. By default the value is 300 seconds (5 minutes).
-u flag on both the client and the server forces UDP traffic instead of the default TCP traffic.
-r flag on the client forces the traffic to flow from the server to the client
The current client script is setup to first verify the reachability of the destination IP address before starting the traffic.
Potential Pitfall
The iPerf server needs to be setup before the iPerf client for the measurement to succeed.
Additionally, the IP address of the server has to be reachable from the client for the measurement to initiate. To ensure that the measurement starts only after the radio module initialized the network interface the ./startIperfClient.sh script first attempts to ping the IP address of the server, and only upon success it starts the measurement.