Versions Compared

Key

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

...

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

...

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.

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).