Ferritaas Incident Intelligence
Defect Intelligence Report Bug 0857120 Severity: High (P2)

SD-WAN Performance SLA Packet Loss False Positive on High-Speed 1Gbps Links

FortiGate SD-WAN Performance SLA health checks report false 40%–80% packet loss and trigger erratic route flapping on high-speed 1Gbps circuits when line-rate outbound traffic starves the local network driver's best-effort probe transmit queue.

Technical Root Cause Analysis

To monitor WAN health, the FortiOS link_monitor daemon generates continuous active probe packets (ICMP ping, HTTP GET, DNS queries, or TWAMP) across all member interfaces in the SD-WAN zone. The calculated packet loss, latency, and jitter directly determine which interface satisfies configured SLA targets for policy-based routing.

In affected FortiOS 7.2 releases, user-space probe packets generated by link_monitor are injected into the kernel network stack without an elevated socket priority or DSCP classification tag. When outbound WAN link utilization approaches 1Gbps line rate, the hardware driver's egress transmit ring buffer (txring) becomes completely full. Because probe packets lack priority, the network driver discards them locally at the tail of the FIFO queue (tracked internally as tx_dropped). The remote server never receives the probes, and the health check erroneously flags the 1Gbps link as degraded, failing over traffic to secondary connections and causing unnecessary voice and video session drops.

[link_monitor 982] health-check 'WAN1_Internet_SLA': sent=100, recv=38, loss=62.0% (threshold=10.0%) [sdwan] rule 1: 'Corporate_Traffic' member WAN1 failed SLA (latency: 12ms, loss: 62%) -> OUT_OF_SLA [sdwan] switching traffic from WAN1 (1Gbps Fiber) to WAN2 (50Mbps LTE Backup) [kernel] eth4: tx_dropped counter incremented by 1420 pkts (tx_ring_full: buffer exhausted) [link_monitor 982] health-check 'WAN1_Internet_SLA': status flapping 18 times in last 10m

Affected Firmware & Blast Radius Matrix

FortiOS Branch Vulnerable Builds Confirmed Clean Build Status & Workaround
FortiOS 7.2 7.2.1 – 7.2.5 7.2.6+ Apply diffservcode 101110 (CS6) to SLA probes
FortiOS 7.4 7.4.0 – 7.4.1 7.4.2+ Probe SO_PRIORITY auto-marking introduced in 7.4.2
FortiOS 7.0 Not Affected 7.0.x Branch Clean Simpler egress ring buffer management avoided queue drop

Platform Impact: Affects FortiGate 80F, 100F, and 200F appliances equipped with Gigabit Ethernet WAN interfaces handling high egress traffic bursts (over 700 Mbps).

Step 01: Free Verification CLI (Safe Read-Only)

Execute these diagnostic commands to verify whether your SD-WAN SLA packet loss is caused by local driver ring buffer drops rather than physical circuit loss:

Diagnostic Commands

# 1. Check SD-WAN health-check SLA metrics, packet loss, and link state
diagnose sys sdwan health-check status

# 2. Inspect kernel netlink interface statistics for tx_dropped packets
diagnose netlink interface list | grep -A 8 -B 2 "wan1"

# 3. Query historical SLA log churn for the active health-check
diagnose sys sdwan sla-log <health-check-name> 5

# 4. Verify physical interface duplex, link speed, and carrier errors
diagnose hardware deviceinfo nic wan1

Remediation & Workaround Steps (Teaser Preview)

Follow the complete step-by-step remediation guide in the interactive Ferrite platform:

Step 02: Apply High-Priority DSCP Tagging to SLA Health Checks

Configure diffservcode in SD-WAN health-check settings to place probe packets into hardware priority queues.

🔒 Interactive CLI Available in Ferrite Runbook #14

Step 03: Implement Egress Traffic Shaping to Protect Driver Ring Buffers

Apply egress rate shaping at 950Mbps on the WAN interface to prevent complete txring buffer exhaustion.

🔒 Interactive CLI Available in Ferrite Runbook #14

Step 04: Tune SD-WAN Failover and Recovery Threshold Dampening

Increase packet failure detection counts from 5 to 10 to smooth out momentary egress queue spikes.

🔒 Interactive CLI Available in Ferrite Runbook #14
⚡ Ferrite Platform Superpowers

Execute the Complete Runbook with Live Browser Automation

Connect your FortiGate via browser console (Web Serial) or local SSH bridge, verify each command in real-time, generate ready-to-run Tera Term scripts, and export sanitized TAC dossiers.

Live Browser Automation Direct terminal connection with live step checkoff.
📟
1-Click Tera Term (.ttl) Generate scripts for air-gapped jumpboxes.
🛡️
Zero-Trust Scrubber Scrub serials and credentials in local browser RAM.
📄
TAC P1 Escalation Dossier Standardized evidence export with SHA-256 seal.

Frequently Asked Questions

Why does SD-WAN report packet loss when the ISP circuit is healthy?

When high-speed 1Gbps WAN links operate near line capacity, the network interface driver transmit queue (txring) fills up. In vulnerable FortiOS releases, link_monitor probe packets were treated as best-effort traffic without socket priority. The Linux driver discarded the probes locally before they ever reached the physical cable, causing the health check to calculate false 30% to 80% loss.

How does this impact production network operations?

False packet loss causes SD-WAN rules to disqualify the primary fiber circuit and route traffic over slower backup lines (such as cellular or broadband), introducing unnecessary jitter and degrading VoIP/video quality.

Which FortiOS firmware versions resolve Bug 0857120?

FortiOS 7.2.6, 7.4.2, and later releases assign SO_PRIORITY flags to all link_monitor probe sockets, ensuring SLA probes bypass data plane queue congestion.