Dedicated wiki page about Flow offloading

Recently I've bought router GL.iNet GL-AR750S and found it's performance with vanilla OpenWRT 24.10.0 is pretty low, in some cases 50 Mbits/sec with just WAN-to-LAN traffic.

Then after hours of reading our forum and documentation I found that enabling a Software flow offloading significantly increases throughput to about 800-900 Mbits/sec.

So I added this information into the wiki: gl-ar750s and ath79.

But I think there should be a dedicated page about the Flow offloading in our wiki, maybe as a subpage of Performance and logging. Can I just create a stub with information how to enable it?

Update 1: I've created a dedicated page: https://openwrt.org/docs/guide-user/perf_and_log/flow_offloading).

1 Like

ath79 does not support hardware offloading. What setting does is establish software offloading between leaf devices like physical ports or wifi devices just like hw offloading. That in turn prevents wifi roaming by keeping stale connection mappings. https://www.kernel.org/doc/html/v5.15/networking/nf_flowtable.html#limitations

Good work adding it for slow platform with gigabit ports or 5ghz wifis.

@brada4, could you please add this information to the page https://openwrt.org/docs/techref/targets/ath79 ?

No access

While ath79 patform does not support hardware offloading, starting from OpenWrt 24.10 you can also enable hardware offloading checkbox for additional reduction of software offload processing requirements and some additional speedup.
1 Like

Added.
Thank you, @brada4!

I think we can leave to users to connect the dots that freezes changing wifi band are co-related with additional speedup.

There is a PR https://lore.kernel.org/all/20250204195030.46765-1-ericwouds@gmail.com/

Im still behind adding pppoe to soft offloads...

Ok, I've created a dedicated page: https://openwrt.org/docs/guide-user/perf_and_log/flow_offloading .

Please help me to improve it!

If you don't have "write" access to the wiki, you van write your suggestions here in the forum thread.

List of fun facts

- Hardware offloading is supported on mt76 platforms starting from mt7621
- Neither flow forwarding offload is directly related to network adapter offload functions controlled by `ethtool -k/-K`
- Flow offloading applies to forwarded connections, including those to containers like lxc or podman, but not locally running webserver.
- Hardware offload bypasses QoS traffic controlls at high priority making former ineffective
- Hardware offload can handle very limited number of connections at once, e.g. 64, thus will not significantly help p2p, returning surplus connections to software offload pool
- Software offload typically increases forwarding bandwidth 2-3x over firewall filtering each packet, sometimes that relieves fully loaded CPU and improves overall latency/jitter.
1 Like

Slow pace ancient explanation
--- https://www.youtube.com/watch?v=2qnqILWhUuU

Probably needs a paragraph about mt76 WED enablement, i.e hw offloading for wifi and some honorary mention of qualcommax nss cloning offload drivers from oem firmwares.

1 Like

Nice job on adding to the knowledge base I thank you for your time and effort

I have a question about UCI and Cli section
https://openwrt.org/docs/guide-user/perf_and_log/flow_offloading#uci

When I use luci to change these values I can only choose one - either Hardware or Software flow offloading,

Is it recommended or even possible to use both at the same time without conflicts

I did try to use both and everything seems to work fine.

1 Like

In the past, you could pick both.

The thing is, for HW offload you enable both, hence the developers making it a single selector.

1 Like

Add to abbreviations

PPE - packet processing engine - kernel interface for hardware flow offload, monitored via `/sys/kernel/debug/ppe0/entries` special file

Last 2 points in "known issues" are approx same, i think the illustrative with roaming between bands is better to keep.

1 Like