Page MenuHomeFreeBSD

[iwn] Flip over to use VAP flags rather than ic flags for things
ClosedPublic

Authored by adrian on Mar 22 2021, 4:53 PM.
Tags
None
Referenced Files
F105778212: D29379.diff
Fri, Dec 20, 1:44 PM
Unknown Object (File)
Tue, Dec 10, 4:27 PM
Unknown Object (File)
Thu, Nov 21, 4:20 PM
Unknown Object (File)
Thu, Nov 21, 1:08 PM
Unknown Object (File)
Nov 17 2024, 9:45 AM
Unknown Object (File)
Nov 11 2024, 6:14 AM
Unknown Object (File)
Nov 11 2024, 4:04 AM
Unknown Object (File)
Oct 30 2024, 12:13 AM
Subscribers

Details

Summary

net80211 changed a while back to support per-VAP config for things
rather than it being global. This is to support firmware NICs that
support per-VAP flags and configuration where the firmware will figure
out how to combine them.

However, it introduced a fun timing issue - those changes used to happen
to the shared ic state before newstate() was called, but now they're
also tasks and they can happen /after/.

This isn't a problem for ath(4), but it exposed some interesting
timing and config bugs here. Notably, I saw short slot NOT being
configured in 5GHz mode during some associations, so 5GHz stuff
would hang or behave poorly. Other times the follow-up auth has
the right config, so it didn't hang.

So for now, just flip this over to using the per-VAP flags which
are correct when newstate() is called. net80211 should also have
those flags synch'ed to the global ic state before newstate() runs
and that can come in a subsequent commit.

Whilst here also fix plcp to be consistently logged as a hex value.

Test Plan
  • iwn(4) Intel 6205, STA mode, both 2GHz and 5GHz

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 37993
Build 34882: arc lint + arc unit

Event Timeline

Scrolling through it looks okay; delayed tasks are not the answer to all questions in the universe it seems ... but that is indeed a story for another day.

This revision is now accepted and ready to land.Mar 23 2021, 9:52 PM