We have been testing DPDK acceleration for ipsec tunnels on our nutanix hosts.
dpdk-iperf-1 and dpdk-iperf-2 are simple 4-core 8gb RAM ubuntu VMs with minor host tuning (sysctl window sizes etc) for iperf performance testing, and can maintain about 17Gbps using iperf3 when directly connected to one another.
dpdk-test-vm04-1 and dpdk-test-vm04-2 are fortigate VMs on v7.6.2 (2cpu, 16gb ram). When testing iperf performance on a basic ipsec tunnel we saw approximately 1.2Gbps between the ubuntu VMs. After enabling dpdk (see config below) we are only able to increase this performance to 1.5Gbps.test diagram
I've confirmed that the dpdk engine is correctly picking up this traffic - ipsec_dec_packets and ipsec_enc_packets are incrementing, and the vnp and vnpsp engines all kick into life with `diagnose dpdk performance show` while the test is running.
However we did expect to see a significantly higher performance uplift for ipsec tunnels, is there something we're missing?
Current working DPDK config:
dpdk.global
status=enable
multiqueue=enable
sleep-on-idle=enable
elasticbuffer=enable
per-session-accounting=1
ipsec-offload=1
hugepage-percentage=40
nr_hugepages=3198
mbufpool-percentage=30
session-table-percentage=5
protects=
dpdk.cpus
en-cpus=(all) 0,1
rx-cpus=(all) 0,1
vnp-cpus=(all) 0,1
vnpsp-cpus=(all) 0,1
ips-cpus=(all) 0,1
tx-cpus=(all) 0,1
isolated-cpus=1
system.interface
Interface "port1"
dpdk=enable
Interface "port2"
dpdk=enable
Interface "port3"
dpdk=enable
Hello,
Thank you for using the Community Forum. I will seek to get you an answer or help. We will reply to this thread with an update as soon as possible.
Thanks,
Hello,
We are still looking for an answer to your question.
We will come back to you ASAP.
Thanks,
Hi @depereo ,
You're observing limited performance gains from DPDK acceleration on your FortiGate VMs during IPsec throughput testing. Despite enabling DPDK and confirming that IPsec traffic is being offloaded, the throughput increase from approximately 1.2 Gbps to 1.5 Gbps suggests that additional optimizations may be necessary.
If you’re still experiencing issues after following the steps provided in the reference links above, could you please run the following commands and share their output with us? This will help us better analyze the situation.
diagnose dpdk log show
diagnose dpdk statistics clear all
diagnose dpdk statistics show
diagnose dpdk performance show
diagnose sys mpstat 2 3
BR.
If my answer provided a solution for you, please mark the reply as solved it so that others can get it easily while searching for similar scenarios.
CCIE #68781
Hello,
I would recommend to disable "sleep-on-idle" setting for performance reasons.
Moreover, I would recommend to check whether SR-IOV is enabled (all benchmarks are run when SR-IOV is enabled):
https://www.fortinet.com/content/dam/fortinet/assets/data-sheets/FortiGate_VM_KVM.pdf (page 7)
Also, I would recommend to check IPsec performance while AES256GCM cypher is set (as in the benchmark).
https://docs.fortinet.com/document/fortification/7.0.0/new-features/954778/add-ipsec-fast-path-in-vp... (list of supported cyphers)
Based on your description, it seems the offload is not occurring. Check the npu_flag in the output of the diagnose vpn tunnel list command. For more details, refer to this knowledge base article: Technical Tip: Ensuring IPSec traffic is offloaded for improved throughput
User | Count |
---|---|
2593 | |
1381 | |
800 | |
659 | |
455 |
The Fortinet Security Fabric brings together the concepts of convergence and consolidation to provide comprehensive cybersecurity protection for all users, devices, and applications and across all network edges.
Copyright 2025 Fortinet, Inc. All Rights Reserved.