Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

The NFVbench project develops a toolkit that allows developers, integrators, testers and customers to measure and assess the L2/L3 forwarding performance of an NFV-infrastructure solution stack (i.e. OPNFV scenario) using a black-box approach. 

NFVbench is available as a self-contained docker container that includes the the main application and the Trex software traffic generator.

NFVbench is agnostic of the NFV platform, the controller used (ML2/OVS, ODL...), the network stack used (OVS, OVS-DPDK, VPP, SR-IOV...) and supports VLAN and VxLAN.

NFVbench is currently widely deployed in production NFV clouds around the world by multiple service providers and is mostly used for

  • on-site integrated performance benchmarking tool, which allows instant performance measurement on every deployed NFV platform
  • precise performance planning tool with high VNF density (multi-chaining)

NFVbench is also currently used as the traffic generator solution for the CNCF CNF testbed based on packet.net: CNF testbed slides.

Documentation

Source code

Mailing list

...

TRex project

NFVbench Docker image

Where can I find NFVbench Docker images?

...

Where is the change log for NFVbench Docker image?

No ChangeLog, look at NFVbench commit log on nfvbench.org.

 Note: there is also a GitHub mirror for NFVbench, but it is more complicated to see the association between commit history and tags

Which version of TRex is associated to a given version of NFVbench?

...

NFVbench loop VM image

The list of the artifacts generated by NFVbench project, including all versions of NFVbench loop VM, can be found here:
https://artifacts.opnfv.org/nfvbench.html.  Look for nfvbench/images.

CPU cores and huge pages

How to configure the CPU logical cores to be used by TRex?

 Reminder: a CPU logical core is either a SMT thread (ie when intel hyper-threading is enabled) or a CPU physical core (when SMT is disabled).

...

traffic_generator:
    ...
    generator_profile:
        - name: trex-local
          ...
          cores: 6
          platform:
            master_thread_id: '0'
            latency_thread_id: '2'
            dual_if:
              - socket: 0
                threads: [4,6,8,10,12,14]
          ...

...

Note: the cores config parameter does not include the system
  thread and the latency thread.

...

How can I see the logical CPU cores actually used by TRex?

...

How many huge pages do I need for NFVbench (TRex)?

...

Specify the memory reserved for running the TRex traffic generator (in MB).
Limit the amount of packet memory used. (Passed to dpdk as -m arg)

In the default config file for NFVbench 3.4.1, we have:

traffic_generator:
    generator_profile:
        - name: trex-local
          <skip>
          limit_memory: 1024

We use 1GB huge pages and we configure Linux kernel to allocate them at boot time with the parameters default_hugepagesz=1G hugepagesz=1G hugepages=<nb-of-pages> on the kernel CLI.  <nb-of-pages> has to be a
multiple of the number of NUMA nodes, because the same number of pages is allocated on each NUMA node.  For instance, if the traffic generator server has two NUMA nodes, the minimum value for one instance of TRex would be
<nb-of-pages>=2.

Note: at startup, TRex takes all the available huge pages, then he releases the pages he does not need.

Test traffic

What is the TRex frame size?

When we specify a frame size to NFVbench eg with the -fs command line option, TRex generates *802.3 Ethernet frames* of that size.  The size include the Ethernet header and the CRC checksum.  The CRC checksum is 4-byte long.  The Ethernet header is either 14-byte long (when NFVbench is configured without
VLAN ID) or 18-byte long (4 additional bytes for the 802.1Q tag when NFVbench is configured with VLAN IDs)The NFVbench project develops a toolkit that allows developers, integrators, testers and customers to measure and assess the L2/L3 forwarding performance of an NFV-infrastructure solution stack (i.e. OPNFV scenario) using a black-box approach. 

NFVbench is available as a self-contained docker container that includes the the main application and the Trex software traffic generator.

NFVbench is agnostic of the NFV platform, the controller used (ML2/OVS, ODL...), the network stack used (OVS, OVS-DPDK, VPP, SR-IOV...) and supports VLAN and VxLAN.

NFVbench is currently widely deployed in production NFV clouds around the world by multiple service providers and is mostly used for

  • on-site integrated performance benchmarking tool, which allows instant performance measurement on every deployed NFV platform
  • precise performance planning tool with high VNF density (multi-chaining)


NFVbench is also currently used as the traffic generator solution for the CNCF CNF testbed based on packet.net: CNF testbed slides.

Documentation

Source code

Mailing list

There is no mailing list dedicated to NFVbench.

For inquiries and questions: send an email to anuket-tech-discuss@lists.anuket.io with a Subject line starting with
"#nfvbench"

The list archives can be consulted and searched here:
https://lists.anuket.io/g/anuket-tech-discuss/search?q=%23nfvbench&ct=1

OPNFV list archives:

https://lists.opnfv.org/g/opnfv-tech-discuss/search?q=%23nfvbench&ct=1

TRex project

NFVbench Docker image

Where can I find NFVbench Docker images?

Available versions of NFVbench Docker images can be found on Docker hub: 

https://hub.docker.com/r/opnfv/nfvbench/tags

Where is the change log for NFVbench Docker image?

No ChangeLog, look at NFVbench commit log on nfvbench.org.

 Note: there is also a GitHub mirror for NFVbench, but it is more complicated to see the association between commit history and tags

Which version of TRex is associated to a given version of NFVbench?

For a given version of NFVbench container image on Docker hub, TRex version can be found in the TREX_VER environment variable in the image history.  For
instance, NFVbench Docker image version 3.4.1 is based on TRex 2.56 as can be seen here.

For a given version of NFVbench code base, the version of TRex that would be embedded in a Docker container built from that code base is given in the
TREX_VER environment variable found in docker/Dockerfile  For instance, NFVbench code base tagged 3.6.1 is meant to be used with TRex 2.61 as can be seen in the Dockerfile.

NFVbench loop VM image

The list of the artifacts generated by NFVbench project, including all versions of NFVbench loop VM, can be found here:
https://artifacts.opnfv.org/nfvbench.html.  Look for nfvbench/images.