Page MenuHomeFreeBSD

iwx: rewrite iwx_rs_update() to be VHT aware, refactor it a bit
ClosedPublic

Authored by adrian on Sun, Sep 28, 3:26 AM.
Referenced Files
Unknown Object (File)
Wed, Oct 22, 2:15 PM
Unknown Object (File)
Sun, Oct 19, 6:47 AM
Unknown Object (File)
Sat, Oct 11, 2:58 PM
Unknown Object (File)
Sat, Oct 11, 2:58 PM
Unknown Object (File)
Sat, Oct 11, 2:58 PM
Unknown Object (File)
Sat, Oct 11, 6:34 AM
Unknown Object (File)
Thu, Oct 9, 4:25 PM
Unknown Object (File)
Mon, Sep 29, 11:19 PM
Subscribers

Details

Summary

The current iwx_rs_update() code doesn't handle setting VHT rates
at all.

So:

  • write a routine - iwx_rs_update_node_txrate() - which will update the given node txrate info with the given notification
  • .. which is based on the print_ratenflags() logic and decoding
  • migrate iwx_rs_update() to use this routine, only on the STA BSS node.

This only handles decoding the version 2 rate_n_flags format response -
same as print_ratenflags() - so print if someone somehow sees a version
1 response.

It's shown a few things that deserve some later follow-up work:

  • I really should have net80211 APIs that operate on the txrate struct itself, not on the ieee80211_node, but I'll use what I have. Changing it later is easy.
  • the current net80211 txrate API doesn't include channel width, LDPC/STBC and such. I didn't need it for the earlier tx rate representation migration, but it would be nice to add it. (The reason is that those choices are currently made in the drivers using rate control, rather than the rate control module, which is again what the older code did as well.)

    This means that the displayed rate isn't EXACTLY what the NIC has chosen - eg the NIC could quite happily decide to transmit a 20MHz or 40MHz frame to an 80MHz STA if that actually works out better. So just add TODOs for those.

Locally tested:

  • AX210, STA mode

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

thj added a subscriber: thj.

This seems ok to me, if it doesn't smoke and you can still do vht then its a good step forward

This revision is now accepted and ready to land.Tue, Sep 30, 10:11 AM
bz added inline comments.
sys/dev/iwx/if_iwx.c
7420

We call them vaps in native context, not vdevs, just saying.