Using OpenWrt for tramsmission parameters tracking

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?

Regards

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

1 Like

evs, Thank you for your detailed answer.

This is research project.

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.

I don't have experience in writing drivers.

Regards