mbox series

[00/21,SRU,OEM-OSP1-B] iwlwifi: mvm: support HE context cmd API change

Message ID 20190924075947.33954-1-vicamo.yang@canonical.com
Headers show
Series iwlwifi: mvm: support HE context cmd API change | expand

Message

You-Sheng Yang Sept. 24, 2019, 7:59 a.m. UTC
BugLink: https://bugs.launchpad.net/bugs/1845138

[Impact]
When trying to associate with an 802.11ax Wi-Fi AP on platforms with
Intel AX1650s/AX1650i, iwlwifi gives a firmware error about command in
SYN CMD STA_HE_CTXT_CMD and hardware resets.

[Fix]
AX1650s/AX1650i firmware expects passed command struct to include
multiple bssid support when associating with 802.11ax APs, and the
implementation has been landed to v5.2 as:

  commit d14ae796f849: iwlwifi: mvm: support HE context cmd API change

This commit, along with its prerequisites in kernel mac80211/cfg80211
framework are neccesary to complete 802.11ax AP associations.

[Test Case]
Tested on AX1650s/AX1650i, as well as 9462/9560, to associate with
AX/N/AC/BG open/wpa AP.

[Regression Risk]
Medium. These patches introduces new features to mac80211/cfg80211
framework but are only enabled when IEEE80211_HW_SUPPORTS_MULTI_BSSID
and/or IEEE80211_HW_SUPPORTS_ONLY_HE_MULTI_BSSID are set. There is also
refactoring to information element access for cfg80211.

For the firmware part, this should only be enabled when firmware blobs
has explicitly declared IWL_UCODE_TLV_API_MBSSID_HE capability. And when
this capability is set, like fw for AX1650s/AX1650i, changes here are
necessary to make an association to 802.11ax Wi-Fi AP successfully.

Johannes Berg (6):
  cfg80211: add and use strongly typed element iteration macros
  mac80211: use element iteration macro in parsing
  cfg80211: add various struct element finding helpers
  nl80211: use for_each_element() in validate_ie_attr()
  cfg80211: use for_each_element() for multi-bssid parsing
  cfg80211: add missing kernel-doc for multi-BSSID fields

Jouni Malinen (1):
  mac80211_hwsim: Declare support for Multi-BSSID

Peng Xu (1):
  cfg80211: Parsing of Multiple BSSID information in scanning

Sara Sharon (13):
  mac80211: pass bssids to elements parsing function
  mac80211: move the bss update from elements to an helper
  cfg80211: Properly track transmitting and non-transmitting BSS
  cfg80211: Move Multiple BSS info to struct cfg80211_bss to be visible
  cfg80211: parse multi-bssid only if HW supports it
  cfg80211: make BSSID generation function inline
  cfg80211: save multi-bssid properties
  mac80211: support multi-bssid
  mac80211: indicate support for multiple BSSID
  cfg80211: fix the IE inheritance of extension IEs
  cfg80211: fix memory leak of new_ie
  iwlwifi: mvm: support multiple BSSID
  iwlwifi: mvm: support HE context cmd API change

 .../net/wireless/intel/iwlwifi/fw/api/mac.h   |  77 ++-
 drivers/net/wireless/intel/iwlwifi/fw/file.h  |   3 +
 .../net/wireless/intel/iwlwifi/mvm/mac80211.c |  22 +-
 drivers/net/wireless/mac80211_hwsim.c         |   1 +
 include/linux/ieee80211.h                     |  92 ++-
 include/net/cfg80211.h                        | 179 +++++-
 include/net/mac80211.h                        |  22 +
 net/mac80211/debugfs.c                        |   4 +-
 net/mac80211/ibss.c                           |   8 +-
 net/mac80211/ieee80211_i.h                    |  20 +-
 net/mac80211/main.c                           |  13 +-
 net/mac80211/mesh.c                           |  10 +-
 net/mac80211/mesh_hwmp.c                      |   3 +-
 net/mac80211/mesh_plink.c                     |   4 +-
 net/mac80211/mlme.c                           | 185 ++++--
 net/mac80211/scan.c                           | 160 +++--
 net/mac80211/tdls.c                           |   6 +-
 net/mac80211/util.c                           | 133 +++-
 net/wireless/core.h                           |  13 +-
 net/wireless/nl80211.c                        |  28 +-
 net/wireless/scan.c                           | 595 ++++++++++++++++--
 net/wireless/util.c                           |   6 +-
 22 files changed, 1314 insertions(+), 270 deletions(-)

Comments

Sultan Alsawaf Sept. 25, 2019, 3:45 p.m. UTC | #1
On Tue, Sep 24, 2019 at 03:59:26PM +0800, You-Sheng Yang wrote:
> BugLink: https://bugs.launchpad.net/bugs/1845138
> 
> [Impact]
> When trying to associate with an 802.11ax Wi-Fi AP on platforms with
> Intel AX1650s/AX1650i, iwlwifi gives a firmware error about command in
> SYN CMD STA_HE_CTXT_CMD and hardware resets.
> 
> [Fix]
> AX1650s/AX1650i firmware expects passed command struct to include
> multiple bssid support when associating with 802.11ax APs, and the
> implementation has been landed to v5.2 as:
> 
>   commit d14ae796f849: iwlwifi: mvm: support HE context cmd API change
> 
> This commit, along with its prerequisites in kernel mac80211/cfg80211
> framework are neccesary to complete 802.11ax AP associations.
> 
> [Test Case]
> Tested on AX1650s/AX1650i, as well as 9462/9560, to associate with
> AX/N/AC/BG open/wpa AP.
> 
> [Regression Risk]
> Medium. These patches introduces new features to mac80211/cfg80211
> framework but are only enabled when IEEE80211_HW_SUPPORTS_MULTI_BSSID
> and/or IEEE80211_HW_SUPPORTS_ONLY_HE_MULTI_BSSID are set. There is also
> refactoring to information element access for cfg80211.
> 
> For the firmware part, this should only be enabled when firmware blobs
> has explicitly declared IWL_UCODE_TLV_API_MBSSID_HE capability. And when
> this capability is set, like fw for AX1650s/AX1650i, changes here are
> necessary to make an association to 802.11ax Wi-Fi AP successfully.
> 
> Johannes Berg (6):
>   cfg80211: add and use strongly typed element iteration macros
>   mac80211: use element iteration macro in parsing
>   cfg80211: add various struct element finding helpers
>   nl80211: use for_each_element() in validate_ie_attr()
>   cfg80211: use for_each_element() for multi-bssid parsing
>   cfg80211: add missing kernel-doc for multi-BSSID fields
> 
> Jouni Malinen (1):
>   mac80211_hwsim: Declare support for Multi-BSSID
> 
> Peng Xu (1):
>   cfg80211: Parsing of Multiple BSSID information in scanning
> 
> Sara Sharon (13):
>   mac80211: pass bssids to elements parsing function
>   mac80211: move the bss update from elements to an helper
>   cfg80211: Properly track transmitting and non-transmitting BSS
>   cfg80211: Move Multiple BSS info to struct cfg80211_bss to be visible
>   cfg80211: parse multi-bssid only if HW supports it
>   cfg80211: make BSSID generation function inline
>   cfg80211: save multi-bssid properties
>   mac80211: support multi-bssid
>   mac80211: indicate support for multiple BSSID
>   cfg80211: fix the IE inheritance of extension IEs
>   cfg80211: fix memory leak of new_ie
>   iwlwifi: mvm: support multiple BSSID
>   iwlwifi: mvm: support HE context cmd API change
> 
>  .../net/wireless/intel/iwlwifi/fw/api/mac.h   |  77 ++-
>  drivers/net/wireless/intel/iwlwifi/fw/file.h  |   3 +
>  .../net/wireless/intel/iwlwifi/mvm/mac80211.c |  22 +-
>  drivers/net/wireless/mac80211_hwsim.c         |   1 +
>  include/linux/ieee80211.h                     |  92 ++-
>  include/net/cfg80211.h                        | 179 +++++-
>  include/net/mac80211.h                        |  22 +
>  net/mac80211/debugfs.c                        |   4 +-
>  net/mac80211/ibss.c                           |   8 +-
>  net/mac80211/ieee80211_i.h                    |  20 +-
>  net/mac80211/main.c                           |  13 +-
>  net/mac80211/mesh.c                           |  10 +-
>  net/mac80211/mesh_hwmp.c                      |   3 +-
>  net/mac80211/mesh_plink.c                     |   4 +-
>  net/mac80211/mlme.c                           | 185 ++++--
>  net/mac80211/scan.c                           | 160 +++--
>  net/mac80211/tdls.c                           |   6 +-
>  net/mac80211/util.c                           | 133 +++-
>  net/wireless/core.h                           |  13 +-
>  net/wireless/nl80211.c                        |  28 +-
>  net/wireless/scan.c                           | 595 ++++++++++++++++--
>  net/wireless/util.c                           |   6 +-
>  22 files changed, 1314 insertions(+), 270 deletions(-)
> 
> -- 
> 2.23.0
> 
> 
> -- 
> kernel-team mailing list
> kernel-team@lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/kernel-team

Acked-by: Sultan Alsawaf <sultan.alsawaf@canonical.com>
Timo Aaltonen Oct. 2, 2019, 2:56 p.m. UTC | #2
On 24.9.2019 10.59, You-Sheng Yang wrote:
> BugLink: https://bugs.launchpad.net/bugs/1845138
> 
> [Impact]
> When trying to associate with an 802.11ax Wi-Fi AP on platforms with
> Intel AX1650s/AX1650i, iwlwifi gives a firmware error about command in
> SYN CMD STA_HE_CTXT_CMD and hardware resets.

applied to osp1 oem-next, thanks