5GTANGO VNF/NS Benchmarking Framework
This repository contains the tng-sdk-benchmark
component that is part of the European H2020 project 5GTANGO NFV SDK. This component is responsible to automatically execute performance benchmarks of NFV network services and functions.
The seed code of this component is based on the son-cli
toolbox, specifically the son-profile
tool, which was developed as part of the European H2020 project SONATA.
Cite this Work
If you use this tool for your research, publications, or NFV projects, please consider to cite the following paper:
@inproceedings{peuster2017chainprofiling,
Author = {Peuster, Manuel and Karl, Holger},
Booktitle = {2017 IEEE Conference on Network Function Virtualization and Software Defined Networks (NFV-SDN)},
Month = {Nov},
Pages = {1-6},
Title = {Profile your chains, not functions: Automated network service profiling in DevOps environments},
Year = {2017}}
References
-
M. Peuster, S. Schneider, H. Karl: The Softwarised Network Data Zoo. In IEEE/IFIP 15th International Conference on Network and Service Management (CNSM), Halifax, Canada. (2019)
-
M. Peuster and H. Karl: Profile Your Chains, Not Functions: Automated Network Service Profiling in DevOps Environments. IEEE Conference on Network Function Virtualization and Software Defined Networks (NFV-SDN), Berlin, Germany. (2017)
-
M. Peuster, H. Karl: Understand Your Chains: Towards Performance Profile-based Network Service Management. Fifth European Workshop on Software Defined Networks (EWSDN). IEEE. (2016)
-
M. Peuster, H. Karl, and S. v. Rossem: MeDICINE: Rapid Prototyping of Production-Ready Network Services in Multi-PoP Environments. IEEE Conference on Network Function Virtualization and Software Defined Networks (NFV-SDN), Palo Alto, CA, USA, pp. 148-153. doi: 10.1109/NFV-SDN.2016.7919490. (2016)
Installation
Please follow this guide to install and setup tng-sdk-benchmark and a corresponding execution environment.
OSM Client requirements
The OSM Client built into tng-bench requires the following packages, which can be installed as follows:
apt-get install libcurl4-gnutls-dev libgnutls28-dev
Usage
tng-bench --ped examples-osm/peds/ped_example_vnf.yml \
--ibbd /tmp/bds --generator osm \
--config .tng-bench.conf
Run a benchmarking experiment
Before you can run your first benchmarking experiment, you need to install tng-bench and an execution platform following this guide.
tng-bench -p examples/peds/ped_suricata_tp_small.yml
Manually re-run the result processing
Runs the result processing module using existing results. This step is also automatically performed once at the end of an experiment execution.
# manually trigger result processing of generated results (to create *.csv files)
tng-bench-result -rd results/
Development
To contribute to the development of this 5GTANGO component, you may use the very same development workflow as for any other 5GTANGO Github project. That is, you have to fork the repository and create pull requests.
Setup development environment
$ python setup.py develop
CI Integration
All pull requests are automatically tested by Jenkins and will only be accepted if no test is broken.
Run tests manually
You can also run the test manually on your local machine. To do so, you need to do:
$ pytest -v
License
This 5GTANGO component is published under Apache 2.0 license. Please see the LICENSE file for more details.
Lead Developers
The following lead developers are responsible for this repository and have admin rights. They can, for example, merge pull requests.
- Manuel Peuster (@mpeuster)
- Stefan Schneider (@StefanUPB)
Feedback-Chanel
- Please use the GitHub issues to report bugs.
- You may use the mailing list sonata-dev@lists.atosresearch.eu