mbox series

[00/22] add initial S1G support

Message ID 20200827223304.16155-1-thomas@adapt-ip.com (mailing list archive)
Headers show
Series add initial S1G support | expand

Message

Thomas Pedersen Aug. 27, 2020, 10:32 p.m. UTC
This is the initial 802.11ah (S1G) patchset which adds support for:

- defining the S1G 900MHz bands in a custom regulatory database
- setting and receiving S1G beacons (sending short beacons will be
  supported in a future patch)
- configuring S1G capabilities in Association Request (setting
  capabilities along with NL80211_CMD_SET_STATION will be added later).
- scanning on S1G bands
- handling S1G Association Response format
- correctly encoding Listen Interval for S1G
- associating in mac80211
- S1G in mac80211_hwsim

Rate control is still TBD, this patchset simply lops off the rate
control hooks for S1G so eg. missing sband->bitrates and S1G Basic Rate
set can't do too much damage.

Note the mac80211_hwsim S1G support introduces a regression in a few
hostap hwsim tests. This is because when processing the reported bands,
hostap assumes freq < 4000 is 11b, and the actual 11b/g band is
overwritten by the S1G band info. Though it does count as a userspace
regression, I'm not sure there is much to do about it besides apply a
small patch to hostapd which treats freq < 2000 as an unknown band.

After the hostap workaround (https://p.ibsgaard.io/raw/xaweyacunu),
these patches continue to pass the hwsim tests as well as HEAD.

Thomas Pedersen (22):
  nl80211: advertise supported channel width in S1G
  cfg80211: regulatory: pass min. bandwidth to regulatory rule extractor
  cfg80211: regulatory: handle S1G channels
  nl80211: correctly validate S1G beacon head
  nl80211: support setting S1G channels
  {cfg,mac}80211: get correct default channel width for S1G
  mac80211: s1g: choose scanning width based on frequency
  nl80211: support S1G capabilities
  mac80211: support S1G STA capabilities
  cfg80211: convert S1G beacon to scan results
  cfg80211: parse S1G Operation element for BSS channel
  mac80211: convert S1G beacon to scan results
  cfg80211: handle Association Response from S1G STA
  mac80211: encode listen interval for S1G
  mac80211: don't calculate duration for S1G
  mac80211: handle S1G low rates
  mac80211: avoid rate init for S1G band
  mac80211: receive and process S1G beacons
  mac80211: support S1G association
  nl80211: include frequency offset in survey info
  mac80211_hwsim: indicate support for S1G
  mac80211_hwsim: fix TSF timestamp write to S1G beacon

 drivers/net/wireless/ath/regd.c               |   2 +-
 .../broadcom/brcm80211/brcmsmac/channel.c     |   3 +-
 drivers/net/wireless/mac80211_hwsim.c         |  93 +++++++-
 drivers/net/wireless/realtek/rtlwifi/regd.c   |   7 +-
 include/linux/ieee80211.h                     |  82 ++++++-
 include/net/cfg80211.h                        |  31 ++-
 include/net/mac80211.h                        |   3 +
 include/uapi/linux/nl80211.h                  |  26 +++
 net/mac80211/cfg.c                            |   2 +
 net/mac80211/chan.c                           |   9 +-
 net/mac80211/ibss.c                           |   3 +-
 net/mac80211/ieee80211_i.h                    |  20 ++
 net/mac80211/iface.c                          |   5 +
 net/mac80211/mlme.c                           | 184 +++++++++++++---
 net/mac80211/rate.c                           |  39 +++-
 net/mac80211/rx.c                             |  87 ++++----
 net/mac80211/scan.c                           |  37 +++-
 net/mac80211/tx.c                             |   4 +
 net/mac80211/util.c                           | 207 +++++++++++++++++-
 net/wireless/chan.c                           | 140 +++++++-----
 net/wireless/mlme.c                           |  20 ++
 net/wireless/nl80211.c                        |  56 ++++-
 net/wireless/reg.c                            |  74 +++++--
 net/wireless/scan.c                           |  80 +++++--
 net/wireless/util.c                           |  32 +++
 25 files changed, 1046 insertions(+), 200 deletions(-)