CN-UPB / tng-sdk-benchmark

5GTANGO SDK tool for fully automated VNF and network service benchmarking and profiling.
https://5gtango.eu
Apache License 2.0
2 stars 6 forks source link

Join the chat at https://gitter.im/sonata-nfv/Lobby Build Status

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

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.

Feedback-Chanel