Wireless Ethernet Dispatch (WED)
WED is a hardware acceleration feature available on MediaTek Filogic SoCs (e.g. MT7622, MT7986, MT7988). It is an extension of hardware flow offloading (HFO) that specifically targets wireless traffic, allowing the Packet Processing Engine (PPE) to handle packets directly to/from the WiFi chipset, significantly reducing CPU load and increasing throughput albeit with the loss of some QoS AQL on WiFi traffic. MediaTek refers to this part of the SoC as the Network Processing Unit (NPU).
Caveats and Limitations
- Version: requires OpenWrt 22.03 or later.
- Stability: considered stable, however flows are less traceable than software routing and it is a relatively new feature.
- Coexistence: can be used alone or with hardware flow offloading (HFO) for wired traffic.
- Incompatibility: since flows are offloading to the PPEs it cannot be used with QoS AQL (Airtime Queue Limits).
- Scope: only accelerates wireless traffic (not wired-to-wired) and is only supported on 5 GHz and 6 GHz radios.
- Topology: if you configure your device as a dumb AP, an additional package (
bridger) is required.
Enable WED
To enable WED, you must set a module parameter for the wireless driver and reboot the device.
OpenWrt 24.10 or newer (including snapshots)
- Edit
/etc/modules.confand append the following line:
options mt7915e wed_enable=Y
OpenWrt 22.03 or 23.05
- Edit
/etc/modules.d/mt7915eand append the following line:
mt7915e wed_enable=Y
Note: This change must be reapplied across a sysupgrade as this file is not included in the default backup tarball.
Dumb Access Point Configuration
If you configure your router as a Dumb AP, flow offloading requires flows to be tracked via NAT or routing. The bridger package uses BPF to track bridged streams for the PPE.
- Install the
bridgerpackage. - (Optional) Edit
/etc/config/bridgerto define specific devices or bridges to exclude from acceleration.
Note: Native kernel support may make the bridger package obsolete in the future via bridge-fastpath and related improvements.
Verification
Confirm Module Status
To verify that WED is running the kernel module will return Y (meaning yes):
# cat /sys/module/mt7915e/parameters/wed_enable Y
Query Offloaded Flows
To see which flows are currently being handled by the hardware (works for Router mode natively):
# cat /sys/kernel/debug/ppe0/bind
Note: On some devices this may be ppe1 or located at /sys/kernel/debug/mtk_ppe/bind.
Example output showing a bound (BND) flow:
01dd0 BND IPv4 5T orig=xxx:11068->10.1.10.241:33328 new=xxx:11068->10.1.10.241:33328 eth=xx:xx:xx:xx:xx:xx->xx:xx:xx:xx:xx:xx etype=0008 vlan=0,129 ib1=21403a8d ib2=007e0060
Notes on Output:
- This list shows all traffic accelerated by the PPE, including wired clients. To confirm WED is working, look for the IPs or MAC addresses of your wireless clients.
- If the file is empty, no flows are currently offloaded.
- On OpenWrt 22.03, WED will not work in bridged AP mode without the
bridgerpackage available in development snapshots.