Skip to content
Julius Bairaktaris edited this page Oct 17, 2026 · 16 revisions

openwrt-ppe-nss

OpenWrt main with hardware offload for Qualcomm IPQ807x and IPQ60xx routers in the qualcommax target, such as the Xiaomi AX3600, Redmi AX6, Linksys MX4300 and MR7350, Dynalink DL-WRX36 and GL.iNet GL-AX1800.

The default branch, ppe-nss, runs OpenWrt's upstream qca_edma and qca_ppe ethernet and DSA drivers on kernel 6.18. It uses only in-kernel offload interfaces. There is no ECM, no NSS qdisc and no vendor NSS host driver.

Two engines do the work:

  • The PPE, the packet engine in the SoC's switch, forwards wired traffic. qca_ppe programs it from the fw4 flowtable, switchdev and tc.
  • The NSS cores run the Wi-Fi data path. nss-wifi-drv, a small host driver, boots the NSS firmware and hands it the ath11k rings.

What is offloaded

Traffic Engine Kernel interface
Routed IPv4/IPv6, NAT, PPPoE, 802.1Q VLAN PPE fw4 flowtable (flow_offloading_hw)
Bridging, VLAN filtering, multicast snooping PPE switchdev
SQM shaping and queue classes PPE tc qdisc and flower offload, DCB
Wi-Fi data path of the SoC radios NSS nss-wifi-drv, ath11k
Routed and bridged flows with a Wi-Fi end NSS fw4 flowtable, bridge conntrack
Routed multicast to Wi-Fi NSS kernel multicast routing (MFC)
Routed flows over a cellular modem (raw-IP device) NSS fw4 flowtable

Pages

Branches

Branch Contents
ppe-nss The default. ppe-flow-offload plus nss-wifi-drv and the ath11k patches for the NSS Wi-Fi path.
ppe-flow-offload OpenWrt main plus the PPE flowtable, tc and switchdev offload (openwrt/openwrt#24806). No NSS.
nss-edma-rework Archived. The vendor NSS stack (qca-nss-drv, ECM, NSS qdiscs). Final state: tag archive/nss-edma-rework-final.

The only package taken from the nss-packages feed (branch edma-nss) is nss-firmware. Prebuilt images come from Qualcommax_NSS_Builder.

The pages for the archived vendor stack were removed. They remain in the wiki history.

Clone this wiki locally