| Description | This article describes the ipsec-round-robin config option found under config system global (not to be confused with round-robin under config system affinity-packet-redistribution), its deprecation from FortiOS, and what should be used instead for spreading out CPU utilization on FortiGates handling IPsec without hardware-acceleration (such as FortiGate-VMs). |
| Scope | FortiGate, IPsec |
| Solution |
As a quick primer: when IPsec traffic is incoming on a FortiGate without hardware-acceleration (such as FortiGate-VM), there are two main workflows that the CPU must handle:
One major concern is that from a network interface perspective, a single IPsec tunnel represents just one network flow/tuple (e.g., one Source sending to one Destination, using a given Protocol/Port). Because it appears to be one network flow (even though it may tunnel many user traffic sessions within that one flow), that traffic is all processed by a single interface RX queue, and therefore only a single CPU core is handling that incoming traffic. This becomes a problem as the amount of user traffic increases on that IPsec tunnel, as it leads to a single CPU Core becoming overburdened as it processes and decrypts the incoming IPsec traffic.
Important: the information in this article primarily applies to FortiGates that either have no hardware-acceleration capability for IPsec traffic (like FortiGate-VMs) or that have disabled hardware-acceleration for some reason. Devices with Network Processors and/or Content Processors are able to offload packet handling and IPsec encrypt/decrypt operations away from the CPU, which lowers CPU utilization substantially and improves traffic/IPsec throughput.
Over time there have been several attempts to address this in FortiOS, typically by enabling some kind of Receive Packet Steering (RPS) that allows incoming IPsec traffic to be spread across multiple CPU cores, which reduces the burden on any single core and increases overall performance by scaling across cores. Here are some of the options that are/were available, as well as if/when they have been deprecated (as of the time of this writing).
CLI Locations of Above Commands:
config system global set ipsec-round-robin [ enable | disable ] <----- No function in 7.4.5/7.6.1+, deprecated in 7.6.1+. set ipsec-soft-dec-async [ enable | disable ] <----- Deprecated in 7.4.2+. end
config system affinity-packet-redistribution set affinity-cpumask {string} set round-robin [ enable | disable ] end |
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.