Reducing multiplexing latencies still further in wifi

Might give that a try at some point. I've seen a lot of people trying a lot of things...
I've been also trying to find optimal settings for the wifi cards, there's always a lot of setting there, and occasionally they seem to influence things. Of course, different cards, different sets of commands...

Best speeds on my C7's has never been above 280mbit or so, with other client adapters, though I have seen people say they have gotten in the 400mbit's.

On the latency side, I used to see down in the single digits on the 2.4ghz radio (ath9k) but not currently. Haven't tried to investigate yet if that's local hardware differences, or something changed in recent OWT versions.

OTGH, on 5ghz and ath10k, I used to see latency in the 30's, so its nice to see it down to 14-15ms on the download...

Update: I would like to "graduate" to some real tests... maybe with a little handholding I could. Kinda been holding back thinking I need to get enough pieces together to have separate test servers and clients off from my router, etc, but maybe with my more powerful x86 box, I could do something useful as is... and learn stuff along the way.

433 at MCS indicates single stream connection with 80MHz, maybe the laptop only has a single antenna, or the spatial arrangement is such that multi stream does not work. So you ether try 160 MHz (only recommended if all sides can do this and you

only have few other APs in your WiFi surround).

Sorry, have been busy for a few days.

Hmm.. have never seen 160mhz show up as a choice on C7/A7's... Don't think I'd want to use it, in a home, city neighborhood situation like I am. Would be like using 40mhz on 2.4ghz.

The desktop, has a TP-Link T4U USB adapter. Think the T4U is a 2x2 radio... The desktop and T4U is where I currently have been seeing the 200mbit thruput on 433.3mb/S rate. This is currently about 20-25' away and thru a wall or two.

The two overall issues of note with me are, an apparently higher latency than your stunning Waveform example, and my apparent (but elusive) 200mbit to 150mbit thruput difference between the two routers on different OWT versions. Assuming that wasn't outside influence.

I would like to get into some better testing. Any suggestions for a Linux distro easily managed on a thumb drive, to alternate boot my Win PC's?

Ubuntu should be good enough for some testing, and you can run it from a stick. Or something small like Puppy Linux? It might be worth a try if you have the time.

Heh, heard abt Puppy 5yrs ago, thereabouts... Looks good, assuming it can provide all the drivers needed on whatever HW I end up putting together.

Have to see if a small, thumbdrive Flent testbench disk is in my future...

Care to rattle off a list ofwhich things I need to gather together?

Sure thing.

  • flent
  • netserver
  • irtt
  • iperf3
  • iperf2

I'm still out here... having a lot of Real Life issues soaking up my time, as well as my first try at a thumbdrive test bench setup got stalled by unknown issues on the install. I'll be back on this sometime soon...

It's all good, mate. RealLife (TM) is keeping me busy lately, too.

Well, Real Life (TM) is fighting pretty hard, still, but I have actually carved out the time to get a working Puppy Linux thumbdrive! And even figure out what all is missing to enable me to dowload, Flent! (apt? no apt to start with?? And, a few other issues...)

Lo and behold... After diggng up all the other things I also needed to be there, I was able to do my first Flent runs, from my router to the server! Yay! Then, I realize, I don't seem to have a way/remember after all these decades, how to save/send/mail them out of the thumbdrive OS, which promptly forgets everything you did, upon removal. Was too skeerd to try to mount my Win laptop's disks, for fear of screwing up the world. Sigh. I'd expect the thumbdrive OS to at least be able to be a bit non-volitile and save some files.

Ah well, but it's a start. Will give it more time soon. Maybe I'll try another distribution. I did see some odd drops, doing a basic test PC -eth to router eth -to cable modem- to netperfwest server, test.
I did some tests thru the wifi AP's, as well. That did NOT duplicate what I seemed to be seeing over my PC and using the Waveform test, that my C7's were seeing an extra 20ms of latency on the ath9k radios, vs the ath10k ones. Disturbing if true, and why I want to get to a better test setup, so it has a good possibility of reporting decent data.

For Dave: Once I get things going, for a wider range of test data, I will fire up a 486sx-25, with a pair of 3com 3C509 network cards (you know, the good ones) and a 28.8k modem, running I'm not sure which version of LRP on a 1.68mb floppy... Now, THERE's a ROUTER!!! :wink:

More later....

1 Like

@dtaht just saw your mailing list post... A couple of weeks ago I made an attempt to make those CoDeL parameters in mac80211 configurable (patches are made for openwrt-22.03 branch, don't apply on master):

I didn't rip out if (thr && thr < STA_SLOW_THRESHOLD * sta->local->num_sta) { so when that condition matches it still falls back to those 50/300. When looking at that code I concluded that this condition would rarely hit. I probably misunderstood the code. However, looking at the per-STA AQM stats, all my stations seem to be using 20/100.

Anyway, if people think being able to change those CoDeL parameters is useful, let me know, and I'll modify the patches so that the values configured via iw are always used and we don't fall back to 50/300. And make a version that applies on master.

Also, I quickly hacked up a dashboard that shows the per-STA AQM stats in a browser:

Disclaimer: ugly code and probably better ways to make these parameters configurable, but it's what I came up with at the time

4 Likes sets up the default interval to 10. Maybe that was meant to be 100?

+	hw->wiphy-> = 5;
+	hw->wiphy->cparams.interval = 10;

The interval should be around 60-70ms for most modern networks.
I regularly run the target at 8ms on good wifi networks. Regrettably, few are good, and there seem to be other problems deep in the mt76 stack that are totally unrelated to codel causing jitter today (that I am totally stumped on)

this is so broken: if (thr && thr < STA_SLOW_THRESHOLD * sta->local->num_sta)

num->sta is the number of stations associated with the network, not active.

been trying to rip this out for years.

setting the interval to 10 is only sane if all your traffic is local to your own network.

thank you for the laugh.

(my wifi story started with that, here:

I would rather like to ressurect that floppy, and that build, and that hardware, to put into a museum somewhere.

1 Like

I saw your mail to the wireless mailing list, where you explained this in more detail:

as far as I can see, you still require people to test this? - I personally would, but I have yet to compile OpenWRT from source. Am more of a user than a programmer, so I am not sure, if I would manage to do it personally. Just sharing this here, for anybody who is not yet aware :slight_smile:


I keep hoping @nbd will just slam that patch in mainline openwrt and see if anyone notices.


Thanks a lot! This is really handy for tuning and testing. I also like the dashboard.

I've updated your patches for master:

(note that I did rip out the STA_SLOW_THRESHOLD and changed the defaults to 5ms/50ms)

Also, nl80211.h in master mac80211 has a different number attributes compared to the one included in iw-5.19, which caused weird behavior trying to change parameters (target would change interval, and interval would try to change ECM, etc.), so I copied the one from mac80211.

Thanks again!


Thank you for making progress here!

1 Like

Is there any chance you can get this upstream? I can help a little, net-next window opens in a week or so, I do not know what schedule iw is on...

@stintel as this is your work, are you willing to take this upstream or shall I give it a shot? I can help with testing and preparing the patch if you like. I guess we'll have to put back in the STA_SLOW_THRESHOLD back in, and set the defaults back to 20/100.

1 Like