Skip to content

IETF usage example 1

Manuel Peuster edited this page Oct 4, 2018 · 1 revision

tng-bench: IETF usage example 1

#5gtango/wp4/benchmark

Testbed Setup

The test setup uses two machines:

  1. VM in which tng-bench (the controller) is executed
  2. Physical server on which vim-emu (Containernet) is executed. On this machine the tested service, e.g., the Suricata VNF is deployed and tested using vim-emu. This process is controlled by tng-bench from machine 1.
+--------------------------------+      +--------------------------------+
|                                |      | +----------------------------+ |
|                                |      | |............................| |
|                                |      | |...---------................| |
|                                |      | |.(  probe1   )-------+......| |
|                                |      | |..`---------'........v......| |
|                                |      | |.................---------..| |
|  +-------------------------+   |      | |...............(    VNF    )| |
|  |.........................|   |      | |................`---------'.| |
|  |.........................|<--+------+->.....................|......| |
|  |.tng-bench...............|   |      | |...---------.........|......| |
|  +-------------------------+   |      | |.(  probe2   )<------+......| |
|                                |      | |..`---------'...............| |
|                                |      | |............................| |
|                                |      | |.vim-emu.(execution.env)....| |
|                                |      | +----------------------------+ |
|                                |      |                                |
| tng-bench controller machine   |      | test executor phys. machine(s) |
+--------------------------------+      +--------------------------------+

Experiment Description/Definition

Our first example experiment tests a single VNF (Suricata) using iperf. To do so, two probes (iperf client and iparf server) are deployed alongside with the VNF. Probes and VNF are deployed as Docker containers. During the experiment we alter the available CPU time of the VNF.

Using the existing description approach of son-profile / tng-bench, we have the following artifacts describing the experiment:

  1. Network service to be tested: The Suricata network service, consisting of a single VNF (Suricata).
  2. To benchmark the given Suricata service we have a PED (aka VNF BD) describing how the given service should be benchmarked.

Notes

  • this is still the old definition approach not yet adapted to our VNF-BDs
  • however, my plan is to continue with the notion that a PED (or VNF-BD) references a service to be tested (given e.g. as 5GTANGO/ETSI descriptors)
  • I will use the node type field sin the VNF-BD et to external for this, as discussed in one of the last calls, i.e., the BD also can link the network service to be tested
  • tng-bench needs a pre-processor module to read in the VNF-BDs (as given here vnf-bench-model/parsed_vnf-bd.yaml at master · raphaelvrosa/vnf-bench-model · GitHub)

Workflow

Once a user has the service and the PED (or VNF-BD) it is just a matter of starting vim-emu on the target test execution machine:

tng-bench-emusrv

and to run tng-bench to execute the experiment:

tng-bench -p examples/peds/ped_suricata_tp_small.yml

This runs all experiments defined in examples/peds/ped_suricata_tp_small.yml.

Results

There is still some code missing in tng-bench to do a full example run (mostly the monitoring and probe triggering), but the progress is going well. See: Execute/benchmark 5GTANGO package on vim-emu · Issue #17 · sonata-nfv/tng-sdk-benchmark · GitHub for details.