UPERF - sonata-nfv/tng-probes GitHub Wiki
Description
The UPERF probe is based on the uperf network performance tool. A test for bandwidth is available for the 5G-TANGO V&V Platform. This probe comes with a wrapper API that makes using the uperf automatic and easy. Also there is an automatic openflow-based way to perform traffic steering in OpenStack to guide the generated traffic toward and form the network service that is under test.
Files
- uperf-agent-v2.py is used to manage the uperf, run the test and send the results to the appropriate database.
- kristo.xml is the actual test that will be run on the system under test.
- uperfstart.php and uperfdone.php are the files that implement the API that is used to communicate with the uperf probe.
- mg-agentUPERF.py is used to apply the SDN rules in the OpenStack in order to perform traffic steering to the network service under test.
System Input
To invoke a test a REST HTTP POST request at 10.100.33.119/uperfstart.php is needed. This can be done easily by CURL or POSTMAN. The body of the POST request must be JSON and have the following format as the example: {"ingressIP":"10.0.0.100", "egressIP":"10.0.0.131", "testBandwidth":"1", "testTime":"10", "testID":"mytestid17", "placeholder1":"0", "placeholder2":"0", "testType":"simple"}
- ingressIP: ingress IP endpoint of the service under test
- egressIP: egress IP endpoint of the service under test
- testBandwidth: integer number (1 is approximately 3.2Mb)
- testTime: time in seconds that the test will be executed
- testID: random ID of the test to be executed
- placeholder1: empty field for future use
- placeholder2: empty field for future use
- testType: simple
System output
To get the status of a test and some basic measurements there is a GET request in the following format: 10.100.33.119/uperfdone.php?tid=mytestid17&ingressip=10.0.0.100&egressip=10.0.0.131
Also a JSON file is produced containing all the measurements of the test. To see the format of the JSON file, there are 2 examples in the folder named results.
Requirements
- 2 machines with uperf installed
- Python 2.7
- Apache2 with PHP enabled
- An SDN/NFV infrastructure based on OpenStack and SONATA platform
Installation
uperf-agent-v2.py and uperftest.xml need to be in the folder of uperf. uperf-agent-v2.py needs to be edited in order to have correct IP and PORT depending on the configuration of your network.
To run uperf-agent-v2.py in the background use:
$ nohup python uperf-agent-v2.py &
The files in php-scripts folder must be available under a webserver in the uperf master machine. (eg. Apache)
mg-agentUPERF.py need to be in the OpenStack machine and must be edited in order to have the correct port interfaces for the OpenStack deployemnt.
To run mg-agentUPERF.py in the background use:
$ nohup python mg-agentUPERF.py &