Skip to content

VPP throughput using netmap interfaces

Francois edited this page May 17, 2021 · 7 revisions

This page reflects the current throughput results achieved with VPP while using netmap interfaces.

Testing Hardware

Test Setup

For this test TREX from Cisco was used. It is also used in VPP with the CSIT framework.

+--------+              +-----------+
|        |---------ix0--|  FreeBSD  |
| TREX   |              |   with    |
|        |---------ix1--|   VPP     |
+--------+              +-----------+

The test transmitted packets from TREX to the ix0 interface and the traffic was received back via the ix1 interface after passing through VPP and being routed.

Theoretical Maximums

The theoretical maximums are calculated for a 10Gbps link.

+--------------------+--------------------+
| Frame Size (bytes) | Packet Rate (pps)  |
+--------------------+--------------------+
|   64 bytes         | 14,880,952         |
|  128 bytes         | 8,445,946          |
|  256 bytes         | 4,528,986          |
|  512 bytes         | 2,349,624          |
| 1024 bytes         | 1,197,318          |
| 1280 bytes         |   961,538          |
| 1440 bytes         |   856,164          |
| 1518 bytes         |   812,744          |
+--------------------+--------------------+

Results

Using VPP for routing traffic

The results was measured running the trex test (stl/udp_for_benchmarks.py) and sending traffic in a single direction through the FreeBSD box with VPP.

+-------------+------------------+
| Packet Size | Throughput (pps) |
+-------------+------------------+
|   64 bytes  |   1.008 Mpps     |
|  128 bytes  |   920.311 kpps   |
|  256 bytes  |   797.789 kpps   |
|  512 bytes  |   706.338 kpps   |
| 1024 bytes  |   621.963 kpps   |
| 1280 bytes  |   569.140 kpps   |
| 1440 bytes  |   547.139 kpps   |
| 1518 bytes  |   524.864 kpps   |
+-------------+------------------+

Using netmap-fwd for routing Traffic

The results was measured running the trex test (stl/udp_for_benchmarks.py) and sending traffic in a single direction through the FreeBSD box while running netmap-fwd.

+-------------+------------------+
| Packet Size | Throughput (pps) |
+-------------+------------------+
|   64 bytes  |     2.989 Mpps   |
|  128 bytes  |                  |
|  256 bytes  |                  |
|  512 bytes  |     2.357 Mpps   |
| 1024 bytes  |                  |
| 1280 bytes  |                  |
| 1440 bytes  |                  |
| 1518 bytes  |   815.291 kpps   |
+-------------+------------------+

Using tools/netmap/bridge to forward traffic

The results was measured running the trex test (stl/udp_for_benchmarks.py) and sending traffic in a single direction through the FreeBSD box while running bridge. In this case the setup is similar to the loopback test on TREX but all traffic is forwarded by the FreeBSD box in bridge mode.

+-------------+------------------+
| Packet Size | Throughput (pps) |
+-------------+------------------+
|   64 bytes  |    7.197 Mpps    |
|  128 bytes  |    7.638 Mpps    |
|  256 bytes  |                  |
|  512 bytes  |    2.358 Mpps    |
| 1024 bytes  |                  |
| 1280 bytes  |  964.915 kpps    |
| 1440 bytes  |                  |
| 1518 bytes  |  815.239 kpps    |
+-------------+------------------+