summaryrefslogtreecommitdiffstats
path: root/kernel/fs/exportfs
AgeCommit message (Expand)AuthorFilesLines
2015-08-04Add the rt linux 4.1.3-rt3 as baseYunhong Jiang2-0/+550
a> 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462
.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. SPDX-License-Identifier: CC-BY-4.0
.. (c) Cisco Systems, Inc


Testing SR-IOV
==============

NFVbench supports SR-IOV with the PVP and PVVP packet flow. Most use cases for SR-IOV only require single VNF chains (NxPVP).
Daisy chaining VNFs with SR-IOV (PVVP) requires selecting either SR-IOV for the middle network or a fast vswitch (using the
standard OVS for that purpose works but would be a serious bottleneck)

Instructions below refer to the PVP or PVVP use cases.
For external chains using SR-IOV, select the VLAN tagging option that corresponds to the external chains SR-IOV setting.

Pre-requisites
--------------
To test SR-IOV you need to have compute nodes configured to support one or more SR-IOV interfaces (also knows as PF or physical function)
and you need OpenStack to be configured to support SR-IOV.
You will also need to know:
- the name of the physical networks associated to the SR-IOV interfaces (this is a configuration in Nova compute)
- the VLAN range that can be used on the switch ports that are wired to the SR-IOV ports. Such switch ports are normally configured in trunk mode with a range of VLAN ids enabled on that port

For example, in the case of 2 SR-IOV ports per compute node, 2 physical networks are generally configured in OpenStack with a distinct name.
The VLAN range to use is is also allocated and reserved by the network administrator and in coordination with the corresponding top of rack switch port configuration.


Configuration
-------------
To enable SR-IOV test, you will need to provide the following configuration options to NFVbench (in the configuration file).
This example instructs NFVbench to create the left and right networks of a PVP packet flow to run on 2 SRIOV ports named "phys_sriov0" and "phys_sriov1" using resp. segmentation_id 2000 and 2001:

.. code-block:: bash

    sriov: true
    internal_networks:
       left:
           segmentation_id: 2000
           physical_network: phys_sriov0
       right:
           segmentation_id: 2001
           physical_network: phys_sriov1

The segmentation ID fields must be different.
In the case of PVVP, the middle network also needs to be provisioned properly.
The same physical network can also be shared by the virtual networks but with different segmentation IDs.

Multi-Chaining
--------------
The above configuration works for multi-chaining and shared network ("service_chain_shared_net" set to true).
In that case all VNFs will share the same left and right network/VLAN.

In the case of non shared network ("service_chain_shared_net" set to false), the segmentation_id fields must
contain a list of distinct VLANs to use for each chain. Example of configuration for 3 chains:

.. code-block:: bash

    sriov: true
    internal_networks:
       left:
           segmentation_id: [2000, 2001, 2002]
           physical_network: phys_sriov0
       right:
           segmentation_id: [2100, 2101, 2102]
           physical_network: phys_sriov1

Alternatively it is also possible to specify different physnets per chain:

.. code-block:: bash

    sriov: true
    internal_networks:
       left:
           segmentation_id: [2000, 2001, 2002]
           physical_network: [phys_sriov0, phys_sriov2, phys_sriov4]
       right:
           segmentation_id: [2100, 2101, 2102]
           physical_network: [phys_sriov1, phys_srviov3, phys_sriov5]


NFVbench cores with SR-IOV
--------------------------
The default core count for NFVbench/TRex may not be sufficient for higher throughput line cards (greater than 10Gbps).
This will result in warning messages such as:

.. code-block:: bash

    INFO WARNING: There is a significant difference between requested TX rate (119047618) and actual TX rate (38897379).
    The traffic generator may not have sufficient CPU to achieve the requested TX rate.

In that case it is recommended to try allocating more cores to TRex using the cores property in the configuration
file, for example to set to 8 cores:

.. code-block:: bash

    cores: 8

It is also advisable to increase the number of vcpus in the VMs:


VM Flavor for SR-IOV and NIC NUMA socket placement
--------------------------------------------------

Because SR-IOV throughput uses a lot of CPU in the VM, it is recommended to increase the
vcpu count, for example to 4 vcpus:

.. code-block:: bash

    flavor:
      # Number of vCPUs for the flavor
      vcpus: 4
      # Memory for the flavor in MB
      ram: 8192
      # Size of local disk in GB
      disk: 0
      extra_specs:
          "hw:cpu_policy": dedicated

If the 2 selected ports reside on NICs that are on different NUMA sockets, you will need to explicitly tell Nova to use 2 numa nodes in the flavor used for the VMs in order to satisfy the filters, for example:

.. code-block:: bash

    flavor:
      # Number of vCPUs for the flavor
      vcpus: 4
      # Memory for the flavor in MB
      ram: 8192
      # Size of local disk in GB
      disk: 0
      extra_specs:
          "hw:cpu_policy": dedicated
          "hw:numa_nodes": 2

Failure to do so might cause the VM creation to fail with the Nova error
"Instance creation error: Insufficient compute resources:
Requested instance NUMA topology together with requested PCI devices cannot fit the given host NUMA topology."

Example of configuration file (shared network)
----------------------------------------------

Single chain or multi-chain with shared network (only requires 2 segmentation ID for all chains):

.. code-block:: bash

    flavor:
       # Number of vCPUs for the flavor
       vcpus: 4
       # Memory for the flavor in MB
       ram: 8192
       # Size of local disk in GB
       disk: 0
       extra_specs:
          "hw:cpu_policy": dedicated
    cores: 8
    sriov: true
    internal_networks:
       left:
          segmentation_id: 3830
          physical_network: phys_sriov0
       right:
          segmentation_id: 3831
          physical_network: phys_sriov1

Example of full run 2xPVP shared network SR-IOV:

.. code-block:: bash

    2018-12-03 18:24:07,419 INFO Loading configuration file: /tmp/nfvbench/sriov.yaml
    2018-12-03 18:24:07,423 INFO -c /tmp/nfvbench/sriov.yaml --rate 10Mpps --duration 1 -scc 2 --no-cleanup
    2018-12-03 18:24:07,426 INFO Connecting to TRex (127.0.0.1)...
    2018-12-03 18:24:07,575 INFO Connected to TRex
    2018-12-03 18:24:07,575 INFO    Port 0: Ethernet Controller XL710 for 40GbE QSFP+ speed=40Gbps mac=3c:fd:fe:b5:3d:70 pci=0000:5e:00.0 driver=net_i40e
    2018-12-03 18:24:07,575 INFO    Port 1: Ethernet Controller XL710 for 40GbE QSFP+ speed=40Gbps mac=3c:fd:fe:b5:3d:71 pci=0000:5e:00.1 driver=net_i40e
    2018-12-03 18:24:07,626 INFO Found built-in VM image file nfvbenchvm-0.6.qcow2
    2018-12-03 18:24:09,072 INFO Created flavor 'nfvbench.medium'
    2018-12-03 18:24:10,004 INFO Created network: nfvbench-lnet.
    2018-12-03 18:24:10,837 INFO Created network: nfvbench-rnet.
    2018-12-03 18:24:12,065 INFO Security disabled on port nfvbench-loop-vm0-0
    2018-12-03 18:24:13,425 INFO Security disabled on port nfvbench-loop-vm0-1
    2018-12-03 18:24:13,425 INFO Creating instance nfvbench-loop-vm0 with AZ
    2018-12-03 18:24:16,052 INFO Created instance nfvbench-loop-vm0 - waiting for placement resolution...
    2018-12-03 18:24:16,240 INFO Waiting for instance nfvbench-loop-vm0 to become active (retry 1/101)...
    <snip>
    2018-12-03 18:24:59,266 INFO Waiting for instance nfvbench-loop-vm0 to become active (retry 21/101)...
    2018-12-03 18:25:01,427 INFO Instance nfvbench-loop-vm0 is active and has been placed on nova:charter-compute-5
    2018-12-03 18:25:02,819 INFO Security disabled on port nfvbench-loop-vm1-0
    2018-12-03 18:25:04,198 INFO Security disabled on port nfvbench-loop-vm1-1
    2018-12-03 18:25:04,199 INFO Creating instance nfvbench-loop-vm1 with AZ nova:charter-compute-5
    2018-12-03 18:25:05,032 INFO Created instance nfvbench-loop-vm1 on nova:charter-compute-5
    2018-12-03 18:25:05,033 INFO Instance nfvbench-loop-vm0 is ACTIVE on nova:charter-compute-5
    2018-12-03 18:25:05,212 INFO Waiting for 1/2 instance to become active (retry 1/100)...
    <snip>
    2018-12-03 18:25:48,531 INFO Waiting for 1/2 instance to become active (retry 21/100)...
    2018-12-03 18:25:50,677 INFO Instance nfvbench-loop-vm1 is ACTIVE on nova:charter-compute-5
    2018-12-03 18:25:50,677 INFO All instances are active
    2018-12-03 18:25:50,677 INFO Port 0: VLANs [3830, 3830]
    2018-12-03 18:25:50,677 INFO Port 1: VLANs [3831, 3831]
    2018-12-03 18:25:50,677 INFO Port 0: dst MAC ['fa:16:3e:de:4e:54', 'fa:16:3e:7a:26:2b']
    2018-12-03 18:25:50,677 INFO Port 1: dst MAC ['fa:16:3e:6c:bb:cd', 'fa:16:3e:e0:48:45']
    2018-12-03 18:25:50,678 INFO ChainRunner initialized
    2018-12-03 18:25:50,678 INFO Starting 2xPVP benchmark...
    2018-12-03 18:25:50,683 INFO Starting traffic generator to ensure end-to-end connectivity
    2018-12-03 18:25:50,698 INFO Created 2 traffic streams for port 0.
    2018-12-03 18:25:50,700 INFO Created 2 traffic streams for port 1.
    2018-12-03 18:25:50,821 INFO Captured unique src mac 0/4, capturing return packets (retry 1/100)...
    2018-12-03 18:25:52,944 INFO Received packet from mac: fa:16:3e:de:4e:54 (chain=0, port=0)
    2018-12-03 18:25:52,945 INFO Received packet from mac: fa:16:3e:6c:bb:cd (chain=0, port=1)
    2018-12-03 18:25:53,077 INFO Captured unique src mac 2/4, capturing return packets (retry 2/100)...
    <snip>
    2018-12-03 18:26:10,798 INFO End-to-end connectivity established
    2018-12-03 18:26:10,816 INFO Cleared all existing streams
    2018-12-03 18:26:10,846 INFO Created 4 traffic streams for port 0.
    2018-12-03 18:26:10,849 INFO Created 4 traffic streams for port 1.
    2018-12-03 18:26:10,849 INFO Starting to generate traffic...
    2018-12-03 18:26:10,850 INFO Running traffic generator
    2018-12-03 18:26:11,877 INFO TX: 10000004; RX: 9999999; Est. Dropped: 5; Est. Drop rate: 0.0000%
    2018-12-03 18:26:11,877 INFO ...traffic generating ended.
    2018-12-03 18:26:11,882 INFO Service chain 'PVP' run completed.
    2018-12-03 18:26:11,936 INFO Clean up skipped.
    2018-12-03 18:26:11,969 INFO
    ========== NFVBench Summary ==========
    Date: 2018-12-03 18:25:50
    NFVBench version 3.0.3.dev1
    Openstack Neutron:
      vSwitch: OPENVSWITCH
      Encapsulation: VLAN
    Benchmarks:
    > Networks:
      > Components:
        > Traffic Generator:
            Profile: trex-local
            Tool: TRex
        > Versions:
          > Traffic_Generator:
              build_date: Nov 13 2017
              version: v2.32
              built_by: hhaim
              mode: STL
              build_time: 10:58:17
          > CiscoVIM: 2.9.7-17036
      > Service chain:
        > PVP:
          > Traffic:
              Profile: traffic_profile_64B
              Bidirectional: True
              Flow count: 10000
              Service chains count: 2
              Compute nodes: [u'nova:charter-compute-5']

              Run Summary:

                +-----------------+-------------+----------------------+----------------------+----------------------+
                |   L2 Frame Size |  Drop Rate  |   Avg Latency (usec) |   Min Latency (usec) |   Max Latency (usec) |
                +=================+=============+======================+======================+======================+
                |              64 |   0.0000%   |                   13 |                   10 |                  141 |
                +-----------------+-------------+----------------------+----------------------+----------------------+


              L2 frame size: 64

              Run Config:

                +-------------+---------------------------+------------------------+-----------------+---------------------------+------------------------+-----------------+
                |  Direction  |  Requested TX Rate (bps)  |  Actual TX Rate (bps)  |  RX Rate (bps)  |  Requested TX Rate (pps)  |  Actual TX Rate (pps)  |  RX Rate (pps)  |
                +=============+===========================+========================+=================+===========================+========================+=================+
                |   Forward   |       336.0000 Mbps       |     336.0000 Mbps      |  336.0000 Mbps  |        500,000 pps        |      500,000 pps       |   500,000 pps   |
                +-------------+---------------------------+------------------------+-----------------+---------------------------+------------------------+-----------------+
                |   Reverse   |       336.0000 Mbps       |     336.0000 Mbps      |  336.0000 Mbps  |        500,000 pps        |      500,000 pps       |   500,000 pps   |
                +-------------+---------------------------+------------------------+-----------------+---------------------------+------------------------+-----------------+
                |    Total    |       672.0000 Mbps       |     672.0000 Mbps      |  672.0000 Mbps  |       1,000,000 pps       |     1,000,000 pps      |  1,000,000 pps  |
                +-------------+---------------------------+------------------------+-----------------+---------------------------+------------------------+-----------------+

              Forward Chain Packet Counters and Latency:

                +---------+--------------+--------------+------------+------------+------------+
                |  Chain  |  TRex.TX.p0  |  TRex.RX.p1  |  Avg lat.  |  Min lat.  |  Max lat.  |
                +=========+==============+==============+============+============+============+
                |    0    |   250,000    |   250,000    |  17 usec   |  10 usec   |  138 usec  |
                +---------+--------------+--------------+------------+------------+------------+
                |    1    |   250,000    |   250,000    |  17 usec   |  10 usec   |  139 usec  |
                +---------+--------------+--------------+------------+------------+------------+
                |  total  |   500,000    |   500,000    |  17 usec   |  10 usec   |  139 usec  |
                +---------+--------------+--------------+------------+------------+------------+

              Reverse Chain Packet Counters and Latency:

                +---------+--------------+--------------+------------+------------+------------+
                |  Chain  |  TRex.TX.p1  |  TRex.RX.p0  |  Avg lat.  |  Min lat.  |  Max lat.  |
                +=========+==============+==============+============+============+============+
                |    0    |   250,000    |   250,000    |  12 usec   |  10 usec   |  141 usec  |
                +---------+--------------+--------------+------------+------------+------------+
                |    1    |   250,000    |   250,000    |  11 usec   |  10 usec   |  132 usec  |
                +---------+--------------+--------------+------------+------------+------------+
                |  total  |   500,000    |   500,000    |  12 usec   |  10 usec   |  141 usec  |
                +---------+--------------+--------------+------------+------------+------------+

Example of configuration file (non shared network)
--------------------------------------------------

Multi-chain with non shared network (requires 2 segmentation ID per chain), example with 2 chains
sharing the same 2 SRIOV ports (or PF):

.. code-block:: bash

    flavor:
       # Number of vCPUs for the flavor
       vcpus: 4
       # Memory for the flavor in MB
       ram: 8192
       # Size of local disk in GB
       disk: 0
       extra_specs:
          "hw:cpu_policy": dedicated
    cores: 8
    sriov: true
    internal_networks:
       left:
            segmentation_id: [3830, 3831]
            physical_network: phys_sriov0
       right:
            segmentation_id: [3832, 3833]
            physical_network: phys_sriov1

Example of full run 2xPVP non-shared network SR-IOV:

.. code-block:: bash

    2018-12-04 17:15:25,284 INFO -c /tmp/nfvbench/sriov.yaml --rate 1Mpps --duration 1 -scc 2 --no-cleanup
    2018-12-04 17:15:25,287 INFO Connecting to TRex (127.0.0.1)...
    2018-12-04 17:15:25,463 INFO Connected to TRex
    2018-12-04 17:15:25,464 INFO    Port 0: Ethernet Controller XL710 for 40GbE QSFP+ speed=40Gbps mac=3c:fd:fe:b5:3d:70 pci=0000:5e:00.0 driver=net_i40e
    2018-12-04 17:15:25,464 INFO    Port 1: Ethernet Controller XL710 for 40GbE QSFP+ speed=40Gbps mac=3c:fd:fe:b5:3d:71 pci=0000:5e:00.1 driver=net_i40e
    2018-12-04 17:15:25,515 INFO Found built-in VM image file nfvbenchvm-0.6.qcow2
    2018-12-04 17:15:26,457 INFO Created flavor 'nfvbench.medium'
    2018-12-04 17:15:27,449 INFO Created network: nfvbench-lnet0.
    2018-12-04 17:15:28,368 INFO Created network: nfvbench-rnet0.
    2018-12-04 17:15:29,143 INFO Created port nfvbench-loop-vm0-0
    2018-12-04 17:15:29,626 INFO Security disabled on port nfvbench-loop-vm0-0
    2018-12-04 17:15:30,636 INFO Created port nfvbench-loop-vm0-1
    2018-12-04 17:15:31,139 INFO Security disabled on port nfvbench-loop-vm0-1
    2018-12-04 17:15:31,140 INFO Creating instance nfvbench-loop-vm0 with AZ
    2018-12-04 17:15:34,893 INFO Created instance nfvbench-loop-vm0 - waiting for placement resolution...
    2018-12-04 17:15:35,068 INFO Waiting for instance nfvbench-loop-vm0 to become active (retry 1/101)...
    <snip>
    2018-12-04 17:16:22,253 INFO Instance nfvbench-loop-vm0 is active and has been placed on nova:charter-compute-4
    2018-12-04 17:16:23,154 INFO Created network: nfvbench-lnet1.
    2018-12-04 17:16:23,863 INFO Created network: nfvbench-rnet1.
    2018-12-04 17:16:24,799 INFO Created port nfvbench-loop-vm1-0
    2018-12-04 17:16:25,267 INFO Security disabled on port nfvbench-loop-vm1-0
    2018-12-04 17:16:26,006 INFO Created port nfvbench-loop-vm1-1
    2018-12-04 17:16:26,612 INFO Security disabled on port nfvbench-loop-vm1-1
    2018-12-04 17:16:26,612 INFO Creating instance nfvbench-loop-vm1 with AZ nova:charter-compute-4
    2018-12-04 17:16:27,610 INFO Created instance nfvbench-loop-vm1 on nova:charter-compute-4
    2018-12-04 17:16:27,610 INFO Instance nfvbench-loop-vm0 is ACTIVE on nova:charter-compute-4
    2018-12-04 17:16:27,788 INFO Waiting for 1/2 instance to become active (retry 1/100)...
    <snip>

    2018-12-04 17:17:04,258 INFO Instance nfvbench-loop-vm1 is ACTIVE on nova:charter-compute-4
    2018-12-04 17:17:04,258 INFO All instances are active
    2018-12-04 17:17:04,259 INFO Port 0: VLANs [3830, 3831]
    2018-12-04 17:17:04,259 INFO Port 1: VLANs [3832, 3833]
    2018-12-04 17:17:04,259 INFO Port 0: dst MAC ['fa:16:3e:ef:f4:b0', 'fa:16:3e:e5:74:cd']
    2018-12-04 17:17:04,259 INFO Port 1: dst MAC ['fa:16:3e:d6:dc:84', 'fa:16:3e:8e:d9:30']
    2018-12-04 17:17:04,259 INFO ChainRunner initialized
    2018-12-04 17:17:04,260 INFO Starting 2xPVP benchmark...
    2018-12-04 17:17:04,266 INFO Starting traffic generator to ensure end-to-end connectivity
    2018-12-04 17:17:04,297 INFO Created 2 traffic streams for port 0.
    2018-12-04 17:17:04,300 INFO Created 2 traffic streams for port 1.
    2018-12-04 17:17:04,420 INFO Captured unique src mac 0/4, capturing return packets (retry 1/100)...
    2018-12-04 17:17:06,532 INFO Received packet from mac: fa:16:3e:d6:dc:84 (chain=0, port=1)
    2018-12-04 17:17:06,532 INFO Received packet from mac: fa:16:3e:ef:f4:b0 (chain=0, port=0)
    2018-12-04 17:17:06,644 INFO Captured unique src mac 2/4, capturing return packets (retry 2/100)...
    <snip>

    2018-12-04 17:17:24,337 INFO Received packet from mac: fa:16:3e:8e:d9:30 (chain=1, port=1)
    2018-12-04 17:17:24,338 INFO Received packet from mac: fa:16:3e:e5:74:cd (chain=1, port=0)
    2018-12-04 17:17:24,338 INFO End-to-end connectivity established
    2018-12-04 17:17:24,355 INFO Cleared all existing streams
    2018-12-04 17:17:24,383 INFO Created 4 traffic streams for port 0.
    2018-12-04 17:17:24,386 INFO Created 4 traffic streams for port 1.
    2018-12-04 17:17:24,386 INFO Starting to generate traffic...
    2018-12-04 17:17:24,386 INFO Running traffic generator
    2018-12-04 17:17:25,415 INFO TX: 1000004; RX: 1000004; Est. Dropped: 0; Est. Drop rate: 0.0000%
    2018-12-04 17:17:25,415 INFO ...traffic generating ended.
    2018-12-04 17:17:25,420 INFO Service chain 'PVP' run completed.
    2018-12-04 17:17:25,471 INFO Clean up skipped.
    2018-12-04 17:17:25,508 INFO
    ========== NFVBench Summary ==========
    Date: 2018-12-04 17:17:04
    NFVBench version 3.0.3.dev1
    Openstack Neutron:
      vSwitch: OPENVSWITCH
      Encapsulation: VLAN
    Benchmarks:
    > Networks:
      > Components:
        > Traffic Generator:
            Profile: trex-local
            Tool: TRex
        > Versions:
          > Traffic_Generator:
              build_date: Nov 13 2017
              version: v2.32
              built_by: hhaim
              mode: STL
              build_time: 10:58:17
          > CiscoVIM: 2.9.7-17036
      > Service chain:
        > PVP:
          > Traffic:
              Profile: traffic_profile_64B
              Bidirectional: True
              Flow count: 10000
              Service chains count: 2
              Compute nodes: [u'nova:charter-compute-4']

                Run Summary:

                  +-----------------+-------------+----------------------+----------------------+----------------------+
                  |   L2 Frame Size |  Drop Rate  |   Avg Latency (usec) |   Min Latency (usec) |   Max Latency (usec) |
                  +=================+=============+======================+======================+======================+
                  |              64 |   0.0000%   |                   18 |                   10 |                  120 |
                  +-----------------+-------------+----------------------+----------------------+----------------------+


                L2 frame size: 64

                Run Config:

                  +-------------+---------------------------+------------------------+-----------------+---------------------------+------------------------+-----------------+
                  |  Direction  |  Requested TX Rate (bps)  |  Actual TX Rate (bps)  |  RX Rate (bps)  |  Requested TX Rate (pps)  |  Actual TX Rate (pps)  |  RX Rate (pps)  |
                  +=============+===========================+========================+=================+===========================+========================+=================+
                  |   Forward   |       336.0000 Mbps       |     336.0013 Mbps      |  336.0013 Mbps  |        500,000 pps        |      500,002 pps       |   500,002 pps   |
                  +-------------+---------------------------+------------------------+-----------------+---------------------------+------------------------+-----------------+
                  |   Reverse   |       336.0000 Mbps       |     336.0013 Mbps      |  336.0013 Mbps  |        500,000 pps        |      500,002 pps       |   500,002 pps   |
                  +-------------+---------------------------+------------------------+-----------------+---------------------------+------------------------+-----------------+
                  |    Total    |       672.0000 Mbps       |     672.0027 Mbps      |  672.0027 Mbps  |       1,000,000 pps       |     1,000,004 pps      |  1,000,004 pps  |
                  +-------------+---------------------------+------------------------+-----------------+---------------------------+------------------------+-----------------+

                Forward Chain Packet Counters and Latency:

                  +---------+--------------+--------------+------------+------------+------------+
                  |  Chain  |  TRex.TX.p0  |  TRex.RX.p1  |  Avg lat.  |  Min lat.  |  Max lat.  |
                  +=========+==============+==============+============+============+============+
                  |    0    |   250,001    |   250,001    |  26 usec   |  10 usec   |  70 usec   |
                  +---------+--------------+--------------+------------+------------+------------+
                  |    1    |   250,001    |   250,001    |  11 usec   |  10 usec   |  39 usec   |
                  +---------+--------------+--------------+------------+------------+------------+
                  |  total  |   500,002    |   500,002    |  19 usec   |  10 usec   |  70 usec   |
                  +---------+--------------+--------------+------------+------------+------------+

                Reverse Chain Packet Counters and Latency:

                  +---------+--------------+--------------+------------+------------+------------+
                  |  Chain  |  TRex.TX.p1  |  TRex.RX.p0  |  Avg lat.  |  Min lat.  |  Max lat.  |
                  +=========+==============+==============+============+============+============+
                  |    0    |   250,001    |   250,001    |  19 usec   |  10 usec   |  119 usec  |
                  +---------+--------------+--------------+------------+------------+------------+
                  |    1    |   250,001    |   250,001    |  19 usec   |  10 usec   |  120 usec  |
                  +---------+--------------+--------------+------------+------------+------------+
                  |  total  |   500,002    |   500,002    |  19 usec   |  10 usec   |  120 usec  |
                  +---------+--------------+--------------+------------+------------+------------+