Kernaali Tools
FortiGate

FortiGate Hardware Offload Problems: NPU/ASIC Fixes and Workarounds

Traffic works until FortiGate offloads it? Find scoped NPU/ASIC fixes for IPsec, QinQ, NP6 failback and SoC5 shaping, with CLI commands and fixed releases.

FortiGate normally moves eligible sessions from the FortiOS CPU path to a Network Processor (NPU/ASIC) fast path. Hardware offload lowers CPU load and increases throughput. Hardware limitations, firmware defects and unusual packet paths can nevertheless work in software and fail after offload.

Useful clues: the first packets pass and traffic stops; a policy works with auto-asic-offload disabled; an IPsec tunnel works with npu-offload disabled; debug flow sees setup but no later packets; or existing sessions fail after failover/failback. Test only the affected policy, tunnel or feature.

Quick reference

ProblemTypical symptomWorkaroundRoot reason
Same-FortiGate local-LAN IPsecVPN connects; internal traffic failsPhase1: npu-offload disableField-isolated NPU return-path failure
Nested 802.1Q over 802.1QFirst packets work, then stopPolicy offload off; Phase1 off for IPsec underlayUnsupported format on pre-NP8 hardware
NP6 IPsec / ESPOne-way traffic; counters divergeTunnel offload off; scope policy test as documentedIPsec engine / PBA resource condition
Redundant-interface failbackExisting sessions lose packetsPolicy offload off + filtered session clearStale NPU egress member
SoC5 ingress shapingForwarded traffic loses packetsPolicy offload off or fixed firmwareIssue 1256278: QTM/NPU drops
FortiAP tunnel-mode SSID + VPNVPN up; internal resources unreachableAffected Phase1: npu-offload disableDocumented CAPWAP/IPsec interaction

What npu-offload and auto-asic-offload control

npu-offload controls IPsec Phase1 NPU acceleration.

Change only the affected IPsec Phase1
config vpn ipsec phase1-interface
    edit "<phase1>"
        set npu-offload disable
    next
end

auto-asic-offload controls firewall-policy session acceleration.

Change only the affected firewall policy
config firewall policy
    edit <policy-id>
        set auto-asic-offload disable
    next
end

They are related controls, not interchangeable. Do not disable both automatically: choose the smallest relevant offload domain. Run examples in the owning VDOM, replace placeholders with the affected existing object, and record the previous setting. A Phase1 change interrupts the affected tunnel; reconnect and establish fresh security associations (SAs). Policy tests also need a fresh session.

Here, “CPU path” means FortiOS handles the datapath instead of the NPU fast path. IPsec cryptography may still use a content processor (CP); npu-offload disable does not disable every hardware accelerator.

The common first-packets-work pattern

Packet 1:            CPU → policy/routing → works
Session established: CPU programs NPU
Packet 2+:           NPU fast path → specific failure
Offload disabled:    CPU → policy/routing → keeps working
This is a useful pattern, not a universal sequence or an exact packet-count rule. Failback and resource-exhaustion cases can start much later.

Offload failures and their fixes

Remote-access IPsec from behind the same FortiGate

Symptom: FortiClient connects and split-tunnel Internet access works, but VPN destinations do not. Protected traffic may reach the destination and receive a reply, yet usable return traffic never reaches the VPN client with NPU offload active.

1. Why it fails

The client’s outer physical address is directly reachable behind the same FortiGate that terminates the VPN. This fictional topology uses ordinary Layer-2/VLAN forwarding, not FortiAP tunnel mode.

FortiClient endpoint: 192.168.250.50
        │ IPsec over OFFICE-LAN
        ▼
same FortiGate → decrypt → REMOTE-ACCESS-VPN
                              ├─ INTERNAL-LAN
                              └─ SITE-TO-SITE-VPN

Reply → IPsec encrypt → OFFICE-LAN → same client

The encrypted return packet must leave toward that directly connected VPN peer. The failure was isolated to the NPU-offloaded IPsec datapath in this same-FortiGate topology: the CPU path, routes, policies and selectors worked. The exact internal ASIC defect is unknown.

2. How to fix it

Change only the affected IPsec Phase1
config vpn ipsec phase1-interface
    edit "<remote-access-phase1>"
        set npu-offload disable
    next
end

Reconnect FortiClient to establish fresh SAs after the tunnel interruption.

3. Why the fix works

FortiOS handles decrypt/encrypt processing and return forwarding without handing this datapath to the problematic NPU fast path. The route stays the same; the processor changes: NPU fast path → FortiOS CPU path.

Status: Field-observed workaround; experimentally isolated to NPU offload, with no established bug ID or affected-version range.

Source: Phase1 control; separate SSID case; August 2026 field report: 401F local Guest Wi-Fi needed offload disabled; other WANs worked. Related evidence does not establish an identical defect.

QinQ 802.1Q-over-802.1Q traffic stops after offload

Symptom: Traffic through nested 802.1Q interfaces passes its first packets, then stops. The initial capture can make routing, ARP, NAT or policy look intermittently broken.

1. Why it fails

FortiOS creates the session in software, then programs the NPU. Fortinet identifies a hardware design limitation for this nested-interface format on pre-NP8 processors, including NP6, NP6XLite, NP7 and NP7Lite: the CPU handles it, but the offloaded flow fails.

802.1Q inside 802.1Q differs from 802.1Q inside 802.1ad. Fortinet documents offload support for the latter. NP7 virtual-wire-pair DVLAN modes are a separate configuration, not proof that nested routed VLAN interfaces support the same offload.

2. How to fix it

For ordinary forwarding, including a policy that performs NAT:

Change only the affected firewall policy
config firewall policy
    edit <policy-id>
        set auto-asic-offload disable
    next
end

For an IPsec tunnel using that QinQ interface as its underlay:

Change only the affected IPsec Phase1
config vpn ipsec phase1-interface
    edit "<phase1-name>"
        set npu-offload disable
    next
end

Retest a fresh session or SA. NAT itself is not the cause.

3. Why the fix works

The working initial packets demonstrate software forwarding for this flow. Keeping it on the CPU avoids transferring the double-tagged traffic into unsupported NPU processing.

Status: Hardware limitation on the stated pre-NP8 processors. The current tip excludes NP8 from that statement; it does not establish model-specific NP8 support. Do not assume NP8 compatibility without its platform documentation.

Source: Fortinet Technical Tip: 802.1Q-over-802.1Q offload limitation

NP6 IPsec / ESP hardware-path drops

Symptom: The tunnel stays up but traffic becomes one-way or encrypt/decrypt counters diverge. ESP arrives without the expected forwarded traffic.

1. Why it fails

Fortinet documents an NP6 IPsec-engine/PBA resource condition in which excessive Layer-2 padding on cleartext or ESP packets can block the session in hardware. Asymmetric counters alone do not prove a PBA leak.

2. How to fix it

Change only the affected IPsec Phase1
config vpn ipsec phase1-interface
    edit "<phase1-name>"
        set npu-offload disable
    next
end

The tip’s broader isolation test also disables ASIC offload on the affected VPN policies at both peers, where applicable:

Change only the affected firewall policy
config firewall policy
    edit <policy-id>
        set auto-asic-offload disable
    next
end

Expect a tunnel interruption. If this restores traffic, arrange TAC investigation and a controlled reproduction. For confirmed padding-related PBA cases, the source also documents padding-stripping settings requiring a reboot; have TAC validate their applicability.

3. Why the fix works

The tunnel bypasses the affected NP6 IPsec engine. FortiOS manages packet processing and forwarding through the software path, with higher CPU load and potentially lower VPN throughput.

Status: Vendor-documented workaround for the NP6 condition; the tip gives no universal affected-version range or software-fix release.

Source: Fortinet Technical Tip: ESP drops and NP6 PBA leak

Redundant interface failback leaves stale NPU sessions

Symptom: After redundant-interface failover/failback, existing sessions lose packets although the active member and routing are correct.

1. Why it fails

On the documented NP6/NP6XLite platforms, FortiOS returns to the recovered primary member, but an offloaded session can retain the standby egress member. Software says “primary”; the stale hardware entry still sends to “standby”.

2. How to fix it

Change only the affected firewall policy
config firewall policy
    edit <policy-id>
        set auto-asic-offload disable
    next
end

Then select only the affected sessions. Replace these fictional addresses and policy ID; run in the owning VDOM:

Read-only • inspect the filtered sessions
diagnose sys session filter clear
diagnose sys session filter policy <policy-id>
diagnose sys session filter src 192.168.250.50
diagnose sys session filter dst 10.77.20.10
diagnose sys session list

Proceed only if the list matches the intended traffic. Reapply the same filters below before clearing; matching connections are interrupted. If a filter command errors, stop.

Disruptive • clear only the selected policy and address pair
diagnose sys session filter clear
diagnose sys session filter policy <policy-id>
diagnose sys session filter src 192.168.250.50
diagnose sys session filter dst 10.77.20.10
diagnose sys session clear
diagnose sys session filter clear

3. Why the fix works

Replacement sessions stay on the CPU path and use the current interface decision, bypassing the stale NPU egress entry.

Status: Vendor-documented workaround. The current tip says a permanent software fix is being developed, without a release or bug ID. NP7 flushes sessions for this transition and is not included in this specific issue.

Source: Fortinet Troubleshooting Tip: redundant-interface failback on NP6/NP6XLite; session filter syntax

SoC5 ingress shaping causes packet loss

Symptom: Forwarded data traffic loses packets on affected SoC5 models when ingress shaping and ASIC offload are enabled together.

1. Why it fails

Issue 1256278 affects the hardware/QTM path with an ingress shaping profile. On affected SoC5 platforms, such as 50G, 70G, 90G and 120G, repeat this during loss and look for increasing DCE_QTM_ENQ_DROP:

Read-only • SoC5/NP7Lite drop counters
diagnose npu np7lite dce-drop-all 0

2. How to fix it

Change only the affected firewall policy
config firewall policy
    edit <policy-id>
        set auto-asic-offload disable
    next
end

Alternatively, remove the affected interface ingress shaping profile if its bandwidth policy can be changed.

Permanent fix: FortiOS 7.4.12 lists 1256278 as resolved. Fortinet also documents resolution in 7.6.4 and 8.0.0. Choose a supported fixed release for the model and follow its upgrade path.

3. Why the fix works

Disabling offload avoids the affected QTM/NPU path. A fixed release allows hardware acceleration to remain enabled with the corrected implementation.

Status: Resolved Fortinet bug, 1256278. This condition concerns forwarded traffic, not traffic addressed to the FortiGate itself.

Source: Fortinet Troubleshooting Tip: SoC5 ingress shaping, issue 1256278; FortiOS 7.4.12 resolved issues: 1256278

FortiAP tunnel-mode SSID clients cannot use the local IPsec VPN

Symptom: A client on a FortiGate tunnel-mode SSID establishes remote-access IPsec on that same FortiGate but cannot reach internal resources.

1. Why it fails

This is a separate CAPWAP/tunnel-mode wireless path. Fortinet documents decrypted traffic failing the reverse-path check in this topology on FortiOS 7.4.x/7.6.x. The tip does not identify the internal defect; it does not establish that ordinary LAN clients fail for this reason.

2. How to fix it

Change only the affected IPsec Phase1
config vpn ipsec phase1-interface
    edit "<remote-access-phase1>"
        set npu-offload disable
    next
end

Reconnect the client after the tunnel resets. Use this tunnel-scoped workaround; changing global CAPWAP acceleration is broader.

3. Why the fix works

The affected IPsec datapath stays under FortiOS software processing, bypassing the documented NPU interaction with tunneled wireless traffic. This does not change routes or disable reverse-path checking.

Status: Vendor-documented workaround; the cited tip provides no bug ID or fixed release.

Source: Fortinet Technical Tip: tunnel-mode SSID clients using remote-access VPN

How to confirm hardware offload is involved

In the owning VDOM, filter to the affected flow before listing sessions. These fictional addresses illustrate LAN forwarding; for decrypted VPN traffic, use the inner tunnel addresses rather than the client’s outer physical address:

Read-only • inspect one address pair; then remove diagnostic filters
diagnose sys session filter clear
diagnose sys session filter src 192.168.250.50
diagnose sys session filter dst 10.77.20.10
diagnose sys session list
diagnose sys session filter clear

Inspect npu info and its offload= pair for original/reply directions. Fortinet’s NP6 example uses offload=8/8 for both directions offloaded. The npu session state, npu_state and flags describe hardware state; values vary by processor. Use the matching hardware reference, not a universal bitmask. no_ofld_reason, when present, explains why offload was not used.

For IPsec:

Read-only • inspect the affected IPsec tunnel
diagnose vpn tunnel list name <phase1-name>

Compare encryption/decryption counters while generating traffic. A directional mismatch narrows the investigation; it does not identify a particular defect.

Normal diagnose debug flow and diagnose sniffer packet can show session setup and then go quiet: offloaded packets bypass the CPU. Fortinet documents this visibility limit. Silence is not proof that packets vanished. Retest with the relevant scoped offload setting disabled and a fresh session; compare actual endpoint connectivity as well as captures.

If connectivity still fails, check routes, policies and IPsec selectors. For failures tied to large packets, use the IPsec overhead calculator to investigate MTU separately. See intermittent IPsec troubleshooting for SA/rekey checks and another specifically scoped firmware defect.

Performance cost and when to restore offload

Hardware acceleration is normally desirable. Disabling it can increase CPU usage and reduce maximum throughput, VPN throughput and concurrent-session scalability. Do not disable NPU/ASIC acceleration globally as routine troubleshooting.

  1. Use the smallest affected policy or tunnel scope.
  2. Confirm the diagnosis with a fresh session and monitor CPU under representative load.
  3. Prefer a supported firmware fix where available; restore the recorded offload setting and retest after the correction.
  4. Use TAC for unexplained production cases instead of treating a workaround as a permanent design.

References