mbox series

[v3,00/12] Additional Support for 802.11ah (S1G)

Message ID 20220906044812.7609-1-kieran.frewen@morsemicro.com
Headers show
Series Additional Support for 802.11ah (S1G) | expand

Message

Kieran Frewen Sept. 6, 2022, 4:48 a.m. UTC
This patchset builds on the work down by Thomas Pedersen to add further
support for 802.11ah in cfg80211 and mac80211. The ultimate goal is
to enable the successful starting of an AP on 802.11ah using 802.11ah
terms by implementing the various features that are required by the
AP. The features are split into their own commits, please see those
patches for more details.
The patchset has been tested on both real hardware (Morse Micro MM610x)
and mac80211_hwsim, in AP and STA modes. Basic regression testing was
performed on 802.11n with mac80211_hwsim by starting an AP and having a
STA interface connect to it.
802.11ah features/support missing:

Rate control integration
Regulatory database updates (only US regulatory information exists)
Optional 802.11ah (S1G) features such as RAW, TWT and AID grouping

Changelog

v3:
[PATCH 01/12]
        Added prototype definition and description for
	ieee80211_channel_to_freq_khz.
	Fixed issue introduced in v1 where center_freq_khz
	in handle_channel_custom() was uninitialised.
[PATCH 10/12]
        Fixed comment block style

v2:
[PATCH 01/12]
	Added validation to assignment of s1g_oper_class and class_idx.
	Changed align_to_end from u8 to bool.
	Added clarification of usage requirements for country code in
	s1g_oper_class struct.
	Changed cc field in s1g_oper_class struct from char * to cc[3].
	Moved initialised structs and arrays and from reg_s1g.h to reg_s1g.c.
	Moved reg_s1g_get_oper_class from reg_s1g.h to reg_s1g.c
	reg_s1g_get_oper_class now defaults to NULL if no natching
	s1g_oper_class is found.
[PATCH 04/12]
	NL80211_ATTR_SHORT_BEACON_PERIOD changed to NLA_U16.
[PATCH 07/12]
	Implemented ieee80211_ie_build_s1g_cap function to build S1G
	capability IE in place. Mimicing behaviour of
	ieee80211_ie_build_ht_cap.
[PATCH 08/12]
	Capatilisation of MCS in description of RATE_INFO_FLAGS_S1G_MCS.
	Re-ordered grouping of fields in rate_info struct to order by size.
[PATCH 09/12]
	Capatilisation of MCS in field naming of NL80211_RATE_INFO_S1G_MSS.
	Reordering of info->bw cases in switch to numberical order.

Kieran Frewen (12):
  cfg80211: regulatory: extend regulatory support for S1G
  mac80211: update TIM for S1G specification changes
  mac80211: S1G beacon/short beacon support
  nl80211: support setting S1G short beacon period
  nl80211: support advertising S1G capabilities
  mac80211: support ieee80211_ext format
  mac80211: S1G capabilities information element in probe request
  cfg80211: S1G rate flags
  nl80211: support advertising S1G rate information
  mac80211: support S1G rate encoding.
  cfg80211: support for calculating S1G bitrates
  mac80211_hwsim: support for S1G rate information

 drivers/net/wireless/mac80211_hwsim.c |  40 +++--
 include/net/cfg80211.h                |  26 ++-
 include/net/mac80211.h                |  33 +++-
 include/uapi/linux/nl80211.h          |  28 ++++
 net/mac80211/cfg.c                    |  43 +++--
 net/mac80211/ieee80211_i.h            |   2 +
 net/mac80211/rx.c                     |  32 +++-
 net/mac80211/sta_info.c               |   7 +
 net/mac80211/sta_info.h               |   7 +
 net/mac80211/tx.c                     |  27 ++-
 net/mac80211/util.c                   |  50 +++++-
 net/wireless/Makefile                 |   2 +-
 net/wireless/nl80211.c                |  37 +++++
 net/wireless/reg.c                    |  60 +++++--
 net/wireless/reg_s1g.c                | 231 ++++++++++++++++++++++++++
 net/wireless/reg_s1g.h                |  53 ++++++
 net/wireless/util.c                   | 148 ++++++++++++++++-
 17 files changed, 772 insertions(+), 54 deletions(-)
 create mode 100644 net/wireless/reg_s1g.c
 create mode 100644 net/wireless/reg_s1g.h


base-commit: 7dad3e39fde1eef97bc1a0b92e5d0f3500c9ed56

Comments

Johannes Berg Sept. 6, 2022, 9:51 a.m. UTC | #1
On Tue, 2022-09-06 at 16:48 +1200, Kieran Frewen wrote:
> 
> +warn:
> +	if (!rate->bw && !rate->mcs && !rate->nss)
> +		pr_debug("%s: rx status was not received yet!", __func__);

That part seems ... odd? Why not just warn?

johannes
Kieran Frewen Nov. 7, 2022, 8:09 p.m. UTC | #2
On Tue, Sep 6, 2022 at 4:48 PM Kieran Frewen
<kieran.frewen@morsemicro.com> wrote:
>
> This patchset builds on the work down by Thomas Pedersen to add further
> support for 802.11ah in cfg80211 and mac80211. The ultimate goal is
> to enable the successful starting of an AP on 802.11ah using 802.11ah
> terms by implementing the various features that are required by the
> AP. The features are split into their own commits, please see those
> patches for more details.
> The patchset has been tested on both real hardware (Morse Micro MM610x)
> and mac80211_hwsim, in AP and STA modes. Basic regression testing was
> performed on 802.11n with mac80211_hwsim by starting an AP and having a
> STA interface connect to it.
> 802.11ah features/support missing:
>
> Rate control integration
> Regulatory database updates (only US regulatory information exists)
> Optional 802.11ah (S1G) features such as RAW, TWT and AID grouping
>
> Changelog
>
> v3:
> [PATCH 01/12]
>         Added prototype definition and description for
>         ieee80211_channel_to_freq_khz.
>         Fixed issue introduced in v1 where center_freq_khz
>         in handle_channel_custom() was uninitialised.
> [PATCH 10/12]
>         Fixed comment block style
>
> v2:
> [PATCH 01/12]
>         Added validation to assignment of s1g_oper_class and class_idx.
>         Changed align_to_end from u8 to bool.
>         Added clarification of usage requirements for country code in
>         s1g_oper_class struct.
>         Changed cc field in s1g_oper_class struct from char * to cc[3].
>         Moved initialised structs and arrays and from reg_s1g.h to reg_s1g.c.
>         Moved reg_s1g_get_oper_class from reg_s1g.h to reg_s1g.c
>         reg_s1g_get_oper_class now defaults to NULL if no natching
>         s1g_oper_class is found.
> [PATCH 04/12]
>         NL80211_ATTR_SHORT_BEACON_PERIOD changed to NLA_U16.
> [PATCH 07/12]
>         Implemented ieee80211_ie_build_s1g_cap function to build S1G
>         capability IE in place. Mimicing behaviour of
>         ieee80211_ie_build_ht_cap.
> [PATCH 08/12]
>         Capatilisation of MCS in description of RATE_INFO_FLAGS_S1G_MCS.
>         Re-ordered grouping of fields in rate_info struct to order by size.
> [PATCH 09/12]
>         Capatilisation of MCS in field naming of NL80211_RATE_INFO_S1G_MSS.
>         Reordering of info->bw cases in switch to numberical order.
>
> Kieran Frewen (12):
>   cfg80211: regulatory: extend regulatory support for S1G
>   mac80211: update TIM for S1G specification changes
>   mac80211: S1G beacon/short beacon support
>   nl80211: support setting S1G short beacon period
>   nl80211: support advertising S1G capabilities
>   mac80211: support ieee80211_ext format
>   mac80211: S1G capabilities information element in probe request
>   cfg80211: S1G rate flags
>   nl80211: support advertising S1G rate information
>   mac80211: support S1G rate encoding.
>   cfg80211: support for calculating S1G bitrates
>   mac80211_hwsim: support for S1G rate information
>
>  drivers/net/wireless/mac80211_hwsim.c |  40 +++--
>  include/net/cfg80211.h                |  26 ++-
>  include/net/mac80211.h                |  33 +++-
>  include/uapi/linux/nl80211.h          |  28 ++++
>  net/mac80211/cfg.c                    |  43 +++--
>  net/mac80211/ieee80211_i.h            |   2 +
>  net/mac80211/rx.c                     |  32 +++-
>  net/mac80211/sta_info.c               |   7 +
>  net/mac80211/sta_info.h               |   7 +
>  net/mac80211/tx.c                     |  27 ++-
>  net/mac80211/util.c                   |  50 +++++-
>  net/wireless/Makefile                 |   2 +-
>  net/wireless/nl80211.c                |  37 +++++
>  net/wireless/reg.c                    |  60 +++++--
>  net/wireless/reg_s1g.c                | 231 ++++++++++++++++++++++++++
>  net/wireless/reg_s1g.h                |  53 ++++++
>  net/wireless/util.c                   | 148 ++++++++++++++++-
>  17 files changed, 772 insertions(+), 54 deletions(-)
>  create mode 100644 net/wireless/reg_s1g.c
>  create mode 100644 net/wireless/reg_s1g.h
>
>
> base-commit: 7dad3e39fde1eef97bc1a0b92e5d0f3500c9ed56
> --
> 2.34.1
>

Quick update on this changeset, I have handed off some of the
continued development of this patchset. Additionally we decided it was
best to split up the patches in this changeset as much as possible to
individually addressable changes. You may have seen a new patch appear
as a result of this.

Thanks, Kieran