Hello, I am currently trying to run a UPF application via VPP, I decided to use DPDK and Kubernetes but the speeds I am getting with iperf is not realistic, I am getting 0 Mbps when I use the VPP as a gateway, if I remove the VPP as gateway the throughput speed goes around 4Gbps
iperf3 -c 10.0.7.167 -i 1 -t 10 Connecting to host 10.0.7.167, port 5201 [ 5] local 10.0.4.48 port 40466 connected to 10.0.7.167 port 5201 [ ID] Interval Transfer Bitrate Retr Cwnd [ 5] 0.00-1.00 sec 323 KBytes 2.65 Mbits/sec 7 8.74 KBytes [ 5] 1.00-2.00 sec 0.00 Bytes 0.00 bits/sec 1 8.74 KBytes [ 5] 2.00-3.00 sec 0.00 Bytes 0.00 bits/sec 0 8.74 KBytes [ 5] 3.00-4.00 sec 0.00 Bytes 0.00 bits/sec 1 8.74 KBytes [ 5] 4.00-5.00 sec 0.00 Bytes 0.00 bits/sec 0 8.74 KBytes [ 5] 5.00-6.00 sec 0.00 Bytes 0.00 bits/sec 0 8.74 KBytes [ 5] 6.00-7.00 sec 0.00 Bytes 0.00 bits/sec 1 8.74 KBytes [ 5] 7.00-8.00 sec 0.00 Bytes 0.00 bits/sec 0 8.74 KBytes [ 5] 8.00-9.00 sec 0.00 Bytes 0.00 bits/sec 0 8.74 KBytes [ 5] 9.00-10.00 sec 0.00 Bytes 0.00 bits/sec 0 8.74 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bitrate Retr [ 5] 0.00-10.00 sec 323 KBytes 265 Kbits/sec 10 sender [ 5] 0.00-10.00 sec 0.00 Bytes 0.00 bits/sec receiver The kubernetes worker node is running on AWS (c5.4xlarge), I used sriov-dp to add the DPDK interfaces into the pods. Below is my startup.conf unix { nodaemon log /tmp/vpp.log full-coredump gid vpp interactive cli-listen /run/vpp/cli.sock exec /openair-upf/etc/init.conf } api-trace { on } dpdk { uio-driver vfio-pci dev default { num-rx-queues 1 num-rx-queues 1 } dev 0000:00:06.0 dev 0000:00:07.0 dev 0000:00:08.0 } api-segment { gid vpp } plugins { path /usr/lib/x86_64-linux-gnu/vpp_plugins/ plugin dpdk_plugin.so { enable } plugin gtpu_plugin.so { disable } plugin upf_plugin.so { enable } } Init conf: ip table add 1 ip table add 2 set interface ip table VirtualFunctionEthernet0/6/0 1 set interface mtu 9001 VirtualFunctionEthernet0/6/0 set interface ip address VirtualFunctionEthernet0/6/0 10.0.4.11/24 set interface state VirtualFunctionEthernet0/6/0 up set interface ip table VirtualFunctionEthernet0/7/0 0 set interface mtu 9001 VirtualFunctionEthernet0/7/0 set interface ip address VirtualFunctionEthernet0/7/0 10.0.6.11/24 set interface state VirtualFunctionEthernet0/7/0 up set interface ip table VirtualFunctionEthernet0/8/0 2 set interface mtu 9001 VirtualFunctionEthernet0/8/0 set interface ip address VirtualFunctionEthernet0/8/0 10.0.7.11/24 set interface state VirtualFunctionEthernet0/8/0 up ip route add 0.0.0.0/0 table 2 via 10.0.7.167 VirtualFunctionEthernet0/8/0 trace add dpdk-input 100 First of all I noticed the following errors in the container logs: interface [error ]: hw_add_del_mac_address: dpdk_add_del_mac_address: mac address add/del failed: -95 interface [error ]: hw_add_del_mac_address: dpdk_add_del_mac_address: mac address add/del failed: -95 interface [error ]: hw_add_del_mac_address: dpdk_add_del_mac_address: mac address add/del failed: -95 interface [error ]: hw_add_del_mac_address: dpdk_add_del_mac_address: mac address add/del failed: -95 interface [error ]: hw_add_del_mac_address: dpdk_add_del_mac_address: mac address add/del failed: -95 interface [error ]: hw_add_del_mac_address: dpdk_add_del_mac_address: mac address add/del failed: -95 format_dpdk_device:590: rte_eth_dev_rss_hash_conf_get returned -95 format_dpdk_device:590: rte_eth_dev_rss_hash_conf_get returned -95 format_dpdk_device:590: rte_eth_dev_rss_hash_conf_get returned -95 format_dpdk_device:590: rte_eth_dev_rss_hash_conf_get returned -95 format_dpdk_device:590: rte_eth_dev_rss_hash_conf_get returned -95 format_dpdk_device:590: rte_eth_dev_rss_hash_conf_get returned -95 format_dpdk_device:590: rte_eth_dev_rss_hash_conf_get returned -95 format_dpdk_device:590: rte_eth_dev_rss_hash_conf_get returned -95 format_dpdk_device:590: rte_eth_dev_rss_hash_conf_get returned -95 I am a bit confused about the errors because I am able to see the correct MAC address for all the DPDK interfaces in vpp console, is it safe not to worry about them? vpp# show hardware-interfaces Name Idx Link Hardware VirtualFunctionEthernet0/6/0 1 up VirtualFunctionEthernet0/6/0 Link speed: unknown *Ethernet address 02:3d:a7:51:90:bc* AWS ENA VF carrier up full duplex mtu 9001 flags: admin-up pmd rx-ip4-cksum VirtualFunctionEthernet0/7/0 2 up VirtualFunctionEthernet0/7/0 Link speed: unknown * Ethernet address 02:87:8d:0f:e2:20* AWS ENA VF VirtualFunctionEthernet0/8/0 3 up VirtualFunctionEthernet0/8/0 Link speed: unknown * Ethernet address 02:20:55:04:c1:76* AWS ENA VF carrier up full duplex mtu 9001 flags: admin-up pmd rx-ip4-cksum [ec2-user@ip-10-0-0-53 ~]$ kubectl -n oai exec -ti oai-vpp-upf-57d4fbdcb5-xnslq bin/vppctl show version kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl kubectl exec [POD] -- [COMMAND] instead. vpp v21.01.1-release built by root on 4e3c1ed23a8e at 2021-11-25T16:47:55 [image: image.png] Ping tests are working normally on the VPP.. Also will the *Link speed: unknown* have affect it also? Any idea what could be causing the low iperf speed?
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#20557): https://lists.fd.io/g/vpp-dev/message/20557 Mute This Topic: https://lists.fd.io/mt/87388694/21656 Group Owner: vpp-dev+ow...@lists.fd.io Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-