Dear OpenWrt experts,
For my research I want to track the Wi-Fi parameters, such as throughput, latency, MCS, beamforming info, with/without presence of external network.
What do you think about feasibility and complexity of real time tracking of such parameters using openWrt?
And what about online adjustment of some transmission parameters, for instance maximum number of AMDPU?
Is this out of interest/personal project or a research project, for example for telecommunications at a university?
Doing it for WLAN might be hard as we're talking wide channel widths but what sort of equipment do you have available? Brute force method when analysing a channel one could use many monitor mode AP's. It would be expensive to get a wide enough bandwidth real time spectrum analyser.
What's your programming/embedded linux experience? Logging simple data should be fine. My guess is other stuff might require understanding/writing wireless driver code?
I think openwrt or something where you have source available is a good place to start. (Of which openwrt is a good example). I've seen custom code in a research project using qualcomm drivers being spruiked at a university in my country. But mt76 looks like it'd be a good match too.
I haven't delved into what sort of debug info you could possibly get if you attempted to instrument the driver.
mt76 looks like it has mpdu support. One would need tot do more reading.
mt76 looks like it has beamforming support too. One would have to do more reading.
iw isn't a stable interface but as an example per station is attached at the end.
You could instrumentt the drivver similarly, tot get some base metrics in time domain. Other stuff like latency and throughput would be on your layer 2/3 testing application. Or after the fact with another system monitoring whwat's actually happening over the air. One could start with iperf or something else that already existst. But especially if we're talking repeatable measurements with other networks etc, You'd need predictability which may be some custom code and a pristine RF environment.
Other thing to look at could be compile the wirelress drivers in debug mode and see what linux will give you there. Maybe would require reading some kernel documentation. ath9k debugfs at least doesn't look like it gives you much more visibility to what you're after.
iw wl0-ap1 station dump
Station <random> (on wl0-ap1)
inactive time: 80 ms
rx bytes: 5683195
rx packets: 34861
tx bytes: 67595391
tx packets: 58518
tx retries: 3550
tx failed: 3
rx drop misc: 8
signal: -44 [-48, -51, -49, -49] dBm
signal avg: -39 [-43, -47, -44, -46] dBm
tx bitrate: 144.4 MBit/s MCS 15 short GI
tx duration: 13548225 us
rx bitrate: 144.4 MBit/s MCS 15 short GI
rx duration: 4048423 us
airtime weight: 256
expected throughput: 112.243Mbps
authorized: yes
authenticated: yes
associated: yes
preamble: short
WMM/WME: yes
MFP: no
TDLS peer: no
DTIM period: 2
beacon interval:100
short preamble: yes
short slot time:yes
connected time: 4172 seconds
associated at [boottime]: 174057.854s
associated at: 1727822326907 ms
current time: 1727826498140 ms
Majority of approaches I saw used monitor mode on third device to capture the packets and extract the information needed. But I want to explore another ways.
I will check the network on particular band, so bandwidth is not a problem.