Table of Contents
Introduction
The R4 release will evaluate the conntrack performance of Open vSwitch (OVS).
...
We will compare the performance of an optimized software based OVS with the performance of the OVS running on a MLNX SmartNIC with hardware offload enabled.
Akraino Test Group Information
SmartNIC deployed Architecture
We reuse the test architecture for smart NIC in R3 release. The below description is the same with the R3 release test documents.
...
We use Ansible to automatically setup the filesystem image and install the OVS-DPDK in the SmartNICs.
The File Server is a simple Nginx based web server where stores the BF drivers, FS image.
...
Image | download link |
---|---|
BlueField-3.5.0.11563.tar.xz | http://www.mellanox.com/downloads/BlueField/BlueField-3.5.0.11563/BlueField-3.5.0.11563.tar.xz |
core-image-full-BlueField-3.5.0.11563.2.7.4.tar.xz | |
mft-4.16.0-105-x86_64-rpm.tgz | https://www.mellanox.com/downloads/MFT/mft-4.16.0-105-x86_64-rpm.tgz |
MLNX_OFED_LINUX-5.2-1.0.4.0-rhel7.6-x86_64.tgz | http://www.mellanox.com/page/mlnx_ofed_eula?mtag=linux_sw_drivers&mrequest=downloads&mtype=ofed&mver=MLNX_OFED-5.2-1.0.4.0&mname=MLNX_OFED_LINUX-5.2-1.0.4.0-rhel7.6-x86_64.tgz |
OVS-DPDK Test Architecture
OVS-DPDK on BlueField Test Architecture
The testbed setup is shown in the above diagram. DUT stands for Device Under Test
Test Framework
The software used and the OVS-DPDK setup is shown below.
...
Code Block |
---|
root:/home/ovs-dpdk# ovs-vsctl --format=csv --data=bare --no-headings --column=other_config list open_vswitch dpdk-extra="-w 0000:03:00.0,representor=[0-1],dv_xmeta_en=1,sys_mem_en=1", dpdk-init="true", dpdk-socket-mem="4096", hw-offload="true", max-idle="120000" |
Traffic Generator
We will use DPDK pktgen as the Traffic Generator.
CT Ruleset
Code Block | ||
---|---|---|
| ||
Br-ex rules table=0 priority=300 in_port=eth2,tcp,tp_dst=32768/0x8000 actions=output:br-int-patch table=0 priority=300 in_port=eth2,udp,tp_dst=32768/0x8000 actions=output:br-int-patch table=0 priority=200 in_port=eth2 actions=output:LOCAL table=0 priority=200 in_port=LOCAL actions=eth2 table=0 priority=200 in_port=br-int-patch actions=eth2 |
...
Code Block | ||
---|---|---|
| ||
Br-int rules table=0,arp,action=normal table=1,priority=1,ip,ct_state=+trk+new,action=ct(commit),normal table=0,ip,ct_state=-trk,action=ct(table=1) table=1,priority=1,ip,ct_state=+trk+est,action=normal |
Nginx configuration
Code Block | ||
---|---|---|
| ||
user nginx; worker_processes auto; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 2000000; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log off; sendfile on; keepalive_timeout 65; include /etc/nginx/conf.d/*.conf; } |
...
Code Block |
---|
./wrk -t 32 -c 640 -d30s http://10.0.1.127/ -H "Connection: Close" |
Performance Results
For the optimized software-based OVS, we tested on a 48C24q VM, running NGINX as a server, CT is enabled on OVS-DPDK.( upstream version / our version )
...
Note: the result also depends on the traffic generator side.
Frame size | 114 bytes |
---|---|
Packets per second | ~23Mpps |
The test is to evaluate the performance of SmartNIC offloading.
Test API description
Thus we currently don't have any Test APIs provided.
Test Dashboards
Functional Tests
Open vSwitch itself contains a test suite for functional test, the link is http://docs.openvswitch.org/en/latest/topics/testing/
...
25 cases are skipped due to the configuration.
Additional Testing
n/a
Bottlenecks/Errata
n/a