Skip to content

Wired Offload

Julius Bairaktaris edited this page Oct 19, 2026 · 2 revisions

Wired Offload

qca_ppe programs the PPE through the kernel's standard offload interfaces. No firmware is involved.

  • Routed traffic (IPv4/IPv6, NAT, PPPoE, 802.1Q VLAN) goes through the fw4 flowtable. It needs hardware flow offloading, which the image turns on: Network → Firewall → Hardware flow offloading, or flow_offloading_hw='1' in firewall.@defaults[0].
  • Bridged traffic goes through switchdev: FDB, VLAN filtering, STP, LAG and IGMP/MLD snooping. Always on.
  • tc and ethtool: tbf, ets, prio, mqprio, red, gred, tc flower and n-tuple rules, matchall police and mirroring, dcb app priority maps.

The Wi-Fi offload takes routed flows from the same flowtable, so with hardware flow offloading off, routed Wi-Fi flows are not offloaded either.

Checking it

mount -t debugfs none /sys/kernel/debug 2>/dev/null
grep -c HW_OFFLOAD /proc/net/nf_conntrack   # connections in hardware
cat /sys/kernel/debug/*.ppe/offload         # offloaded and rejected flows
cat /sys/kernel/debug/*.ppe/flows           # the PPE flow table

[OFFLOAD] without [HW_OFFLOAD] means the software flowtable only. Short connections may end before they reach hardware.

Clone this wiki locally