Page MenuHomeFreeBSD

net80211: add IEEE80211_IOC_DEVCAPS2, include versioned responses
Needs ReviewPublic

Authored by adrian on Fri, Apr 26, 5:11 AM.
Referenced Files
Unknown Object (File)
Sun, May 5, 1:15 PM
Unknown Object (File)
Fri, May 3, 1:52 AM
Unknown Object (File)
Thu, May 2, 11:32 AM
Unknown Object (File)
Sun, Apr 28, 11:05 PM
Unknown Object (File)
Fri, Apr 26, 9:25 PM
Unknown Object (File)
Fri, Apr 26, 9:24 PM
Unknown Object (File)
Fri, Apr 26, 9:24 PM
Unknown Object (File)
Fri, Apr 26, 7:45 PM

Details

Reviewers
None
Group Reviewers
wireless
Summary
  • Handle an ioctl req with i_val == IEEE80211_DEVCAPS_VERSION_1 as a versioned response (version 1.)
  • Version 1 includes a bunch of new fields and (hopefully!) later 802.11 support (11ax, 11be, 11bn) so we don't have to add them later.
  • It also includes 64 bit fields rather than 32 bit fields, primarily as we're about to run out of devcap bitfields and it's about time we expanded it to 64 bits.

This should be both forwards and backwards compatible:

  • older wpa_supplicant w/ newer net80211 will always request IEEE80211_IOC_DEVCAPS w/ i_val == 0, so it'll return the existing API.
  • newer wpa_supplicant w/ older net80211 will request IEEE80211_IOC_DEVCAPS2 w/ i_val > 0, fail the ioctl, and can fall back to the original ioctl.

Diff Detail

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

Event Timeline

emaste added inline comments.
sys/net80211/ieee80211_ioctl.c
1156–1158

Is the intent that we'd remove this "eventually"? E.g. if in 15.x we're normally using DEVCAPS2 we could probably remove this once 14.x goes past EOL.

sys/net80211/ieee80211_ioctl.h
572

We should avoid "new" since it will quickly become "current" and then "old" :)

It's a little confusing that this is devcaps2 / version 1 though so I'm not sure of great terminology.