Page MenuHomeFreeBSD

net80211: fix ff_approx_txtime() to handle VHT rates
ClosedPublic

Authored by adrian on Apr 10 2025, 8:38 PM.
Referenced Files
F175462369: D49766.diff
Sun, Oct 11, 1:12 AM
F175444284: D49766.diff
Sat, Oct 10, 10:05 PM
Unknown Object (File)
Fri, Oct 9, 4:33 PM
Unknown Object (File)
Thu, Oct 1, 9:30 PM
Unknown Object (File)
Thu, Oct 1, 9:01 PM
Unknown Object (File)
Thu, Oct 1, 11:02 AM
Unknown Object (File)
Wed, Sep 30, 12:59 AM
Unknown Object (File)
Fri, Sep 25, 11:32 PM

Details

Summary

The fast frames / A-MSDU aggregation code is calculating whether to
aggregate frames based on transmit time, which requires a frame length
calculation. Unfortunately this is another place where VHT rates
started showing up but weren't being handled.

This only shows up if IEEE80211_SUPPORT_SUPERG is enabled, which
isn't enabled by default (which means there's also no net80211
software driven A-MSDU assembly.)

So:

  • Fetch the rate type
  • Handle HT, LEGACY, VHT and UNDEFINED
  • default UNDEFINED to 4ms, which should avoid the FF/A-MSDU aggregation
  • default VHT to 1ms, to allow SOME possible A-MSDU aggregation where possible.

There needs to be a bit more work done on HT/VHT for doing A-MSDU
with and without A-MPDU running, as that drastically changes the
math.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 63436
Build 60320: arc lint + arc unit