| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
SRPerf is a performance evaluation framework for software and hardware implementations of SRv6. It is designed following the network benchmarking guidelines defined in RFC 2544.
This is the project web page, part of the ROSE project.
The architecture of SRPerf is composed of two main building blocks: testbed and orchestrator as shown in the figure below. The testbed is composed of two nodes, the tester and the System Under Test (SUT).
The nodes have two network interfaces cards (NIC) each and are connected back-to-back using both NICs. The tester sends traffic towards the SUT through one port, which is then received back through the other port, after being forwarded by the SUT.
Accordingly, the tester can easily perform all different kinds of throughput measurements as well as round-trip delay.
A full description of the framework can be found here.
The implementation of SRPerf is orgainzed in several directories as follows:
Each of the differnt components of SRPerf requires a set of dependencies that needs to be installed in order to run successfully.
Under each directory we can find the list dependencies in file named tools.list
For example the orchestrator dependencies are:
paramiko (pip) numpy (pip) pyaml (pip)
SRPerf uses TRex as Traffic Generator (TG). TRex is an open source realistic traffic generator that supports both transmitting and receiving ports. It is based on DPDK and can generate layer-4 to layer-7 traffics with a rate up to 10-22 mpps per core.
The config file should be in YAML format, and it can contain multiple YAML sequences. Each sequence represent a different test to be performed along with the parameters required for such test:
- experiment: ipv6 rate: pdr run: 10 size: min type: plain
We provide an automated way for generating such config file, using the config_generator.py availale under the orchestrator directory.
Usage: config_generator.py [options]
Options:
-h, --help show this help message and exit
-t TYPE, --type=TYPE Test type {plain|transit|end|proxy|all}
-s SIZE, --size=SIZE Size type {max|min|all}
To start an experiment, some initial configurations have to be provided to the orchestrator. This configurations should be in the testbed.yaml under the orchestrator directory.
The file should include the following configuration:
An Example is as shown below:
sut: 10.0.0.1 sut_home: /home/foobar/linux-srv6-perf/sut sut_user: foo sut_name: sut fwd: linux
The cfg_manager assumes that the public key has been pushed in the sut node and the private key is stored inside the orchestrator folder as id_rsa.
You can start an experiment by running the orchestrator.py script that can found under the orchestrator directory.
python orchestrator.py
| Back | FazBrowse Home | New Git URL |