[PATCH v8 0/2] wifi: mwifiex: add code to support host mlme

David Lin posted 2 patches 1 year, 12 months ago
There is a newer version of this series
.../net/wireless/marvell/mwifiex/cfg80211.c   | 394 +++++++++++++++++-
drivers/net/wireless/marvell/mwifiex/cmdevt.c |  27 ++
drivers/net/wireless/marvell/mwifiex/decl.h   |  22 +
drivers/net/wireless/marvell/mwifiex/fw.h     |  54 +++
drivers/net/wireless/marvell/mwifiex/init.c   |   6 +
drivers/net/wireless/marvell/mwifiex/ioctl.h  |   5 +
drivers/net/wireless/marvell/mwifiex/join.c   |  66 ++-
drivers/net/wireless/marvell/mwifiex/main.c   |  54 +++
drivers/net/wireless/marvell/mwifiex/main.h   |  17 +
drivers/net/wireless/marvell/mwifiex/scan.c   |   6 +
drivers/net/wireless/marvell/mwifiex/sdio.c   |  13 +
drivers/net/wireless/marvell/mwifiex/sdio.h   |   2 +
.../wireless/marvell/mwifiex/sta_cmdresp.c    |   2 +
.../net/wireless/marvell/mwifiex/sta_event.c  |  36 +-
.../net/wireless/marvell/mwifiex/sta_ioctl.c  |   3 +-
drivers/net/wireless/marvell/mwifiex/sta_tx.c |   9 +-
.../net/wireless/marvell/mwifiex/uap_cmd.c    | 171 ++++++++
drivers/net/wireless/marvell/mwifiex/util.c   | 104 +++++
18 files changed, 974 insertions(+), 17 deletions(-)
[PATCH v8 0/2] wifi: mwifiex: add code to support host mlme
Posted by David Lin 1 year, 12 months ago
This series add host based MLME support to the mwifiex driver, this
enables WPA3 support in both client and AP mode.
To enable WPA3, a firmware with corresponding V2 Key API support is
required.
The feature is currently only enabled on NXP IW416 (SD8978), and it
was internally validated by the NXP QA team. Other NXP Wi-Fi chips
supported in current mwifiex are not affected by this change.

v8:
   - Separate 6/12 from patch v7.
     As it's a bug fix not part of host MLME feature.
   - Rearrnage MLME feature into 2 patches:
     a. Add host based MLME support for STA mode.
     b. Add host based MLME support for AP mode.

v7:
   - Fix regression: Downlink throughput degraded by 70% in AP mode.
   - Fix issue: On STAUT, kernel Oops occurs when there is no association
     response from AP.
   - Fix issue: On STAUT, if AP leaves abruptly and deauth is missing,
     STA can't connect to AP anymore.
   - Fix regression: STA can't connect to AP when host_mlme is disabled
     (impact all chips).
   - Address reviewer comments.

v6:
   - Correct mailing sequence.

v5:
   - Add host base MLME support to enable WPA3 functionalities for both
     STA and AP mode.
   - This feature (WPA3) required a firmware with corresponding Key API V2
     support.
   - QA validation and regression have been covered for IW416.
   - This feature (WPA3) is currently enabled and verified only for IW416.
   - Changelogs since patch V4:
     a. Add WPA3 support for AP mode.
     b. Bug fix: In WPA3 STA mode, deice gets disconnected from AP
        when group rekey occurs.
     c. Bug fix: STAUT doesn't send WMM IE in association request when
        associate to a WMM-AP.

v4:
   - Refine code segment per review comment.
   - Add API to check firmware encryption key command version when
     host_mlme is enabled.

v3:
   - Cleanup commit message.

v2:
   - Fix checkpatch error (pwe[1] -> pwe[0]).
   - Move module parameter 'host_mlme' to mwifiex_sdio_device structure.
     Default only enable for IW416.
   - Disable advertising NL80211_FEATURE_SAE if host_mlme is not enabled.

David Lin (2):
  wifi: mwifiex: add host mlme for client mode
  wifi: mwifiex: add host mlme for AP mode

 .../net/wireless/marvell/mwifiex/cfg80211.c   | 394 +++++++++++++++++-
 drivers/net/wireless/marvell/mwifiex/cmdevt.c |  27 ++
 drivers/net/wireless/marvell/mwifiex/decl.h   |  22 +
 drivers/net/wireless/marvell/mwifiex/fw.h     |  54 +++
 drivers/net/wireless/marvell/mwifiex/init.c   |   6 +
 drivers/net/wireless/marvell/mwifiex/ioctl.h  |   5 +
 drivers/net/wireless/marvell/mwifiex/join.c   |  66 ++-
 drivers/net/wireless/marvell/mwifiex/main.c   |  54 +++
 drivers/net/wireless/marvell/mwifiex/main.h   |  17 +
 drivers/net/wireless/marvell/mwifiex/scan.c   |   6 +
 drivers/net/wireless/marvell/mwifiex/sdio.c   |  13 +
 drivers/net/wireless/marvell/mwifiex/sdio.h   |   2 +
 .../wireless/marvell/mwifiex/sta_cmdresp.c    |   2 +
 .../net/wireless/marvell/mwifiex/sta_event.c  |  36 +-
 .../net/wireless/marvell/mwifiex/sta_ioctl.c  |   3 +-
 drivers/net/wireless/marvell/mwifiex/sta_tx.c |   9 +-
 .../net/wireless/marvell/mwifiex/uap_cmd.c    | 171 ++++++++
 drivers/net/wireless/marvell/mwifiex/util.c   | 104 +++++
 18 files changed, 974 insertions(+), 17 deletions(-)


base-commit: 783004b6dbda2cfe9a552a4cc9c1d168a2068f6c
-- 
2.25.1
Re: [PATCH v8 0/2] wifi: mwifiex: add code to support host mlme
Posted by Francesco Dolcini 1 year, 9 months ago
On Fri, Dec 22, 2023 at 11:21:21AM +0800, David Lin wrote:
> This series add host based MLME support to the mwifiex driver, this
> enables WPA3 support in both client and AP mode.
> To enable WPA3, a firmware with corresponding V2 Key API support is
> required.
> The feature is currently only enabled on NXP IW416 (SD8978), and it
> was internally validated by the NXP QA team. Other NXP Wi-Fi chips
> supported in current mwifiex are not affected by this change.

I did test this series with 88W8997, using SDIO interface, 16.68.1.p197
firmware. Host MLME is disabled in this specific combination, I just
wanted to verify that no obvious regression was introduced, and I was
not able to see any difference in behavior nor in performances.

Tested-by: Francesco Dolcini <francesco.dolcini@toradex.com> # 88W8997-SD

Francesco
Re: [PATCH v8 0/2] wifi: mwifiex: add code to support host mlme
Posted by Rafael Beims 1 year, 11 months ago
On 22/12/2023 00:21, David Lin wrote:

> This series add host based MLME support to the mwifiex driver, this
> enables WPA3 support in both client and AP mode.
> To enable WPA3, a firmware with corresponding V2 Key API support is
> required.
> The feature is currently only enabled on NXP IW416 (SD8978), and it
> was internally validated by the NXP QA team. Other NXP Wi-Fi chips
> supported in current mwifiex are not affected by this change.
>
> v8:
>     - Separate 6/12 from patch v7.
>       As it's a bug fix not part of host MLME feature.
>     - Rearrnage MLME feature into 2 patches:
>       a. Add host based MLME support for STA mode.
>       b. Add host based MLME support for AP mode.
>
> v7:
>     - Fix regression: Downlink throughput degraded by 70% in AP mode.
>     - Fix issue: On STAUT, kernel Oops occurs when there is no association
>       response from AP.
>     - Fix issue: On STAUT, if AP leaves abruptly and deauth is missing,
>       STA can't connect to AP anymore.
>     - Fix regression: STA can't connect to AP when host_mlme is disabled
>       (impact all chips).
>     - Address reviewer comments.
>
> v6:
>     - Correct mailing sequence.
>
> v5:
>     - Add host base MLME support to enable WPA3 functionalities for both
>       STA and AP mode.
>     - This feature (WPA3) required a firmware with corresponding Key API V2
>       support.
>     - QA validation and regression have been covered for IW416.
>     - This feature (WPA3) is currently enabled and verified only for IW416.
>     - Changelogs since patch V4:
>       a. Add WPA3 support for AP mode.
>       b. Bug fix: In WPA3 STA mode, deice gets disconnected from AP
>          when group rekey occurs.
>       c. Bug fix: STAUT doesn't send WMM IE in association request when
>          associate to a WMM-AP.
>
> v4:
>     - Refine code segment per review comment.
>     - Add API to check firmware encryption key command version when
>       host_mlme is enabled.
>
> v3:
>     - Cleanup commit message.
>
> v2:
>     - Fix checkpatch error (pwe[1] -> pwe[0]).
>     - Move module parameter 'host_mlme' to mwifiex_sdio_device structure.
>       Default only enable for IW416.
>     - Disable advertising NL80211_FEATURE_SAE if host_mlme is not enabled.
>
> David Lin (2):
>    wifi: mwifiex: add host mlme for client mode
>    wifi: mwifiex: add host mlme for AP mode
>
>   .../net/wireless/marvell/mwifiex/cfg80211.c   | 394 +++++++++++++++++-
>   drivers/net/wireless/marvell/mwifiex/cmdevt.c |  27 ++
>   drivers/net/wireless/marvell/mwifiex/decl.h   |  22 +
>   drivers/net/wireless/marvell/mwifiex/fw.h     |  54 +++
>   drivers/net/wireless/marvell/mwifiex/init.c   |   6 +
>   drivers/net/wireless/marvell/mwifiex/ioctl.h  |   5 +
>   drivers/net/wireless/marvell/mwifiex/join.c   |  66 ++-
>   drivers/net/wireless/marvell/mwifiex/main.c   |  54 +++
>   drivers/net/wireless/marvell/mwifiex/main.h   |  17 +
>   drivers/net/wireless/marvell/mwifiex/scan.c   |   6 +
>   drivers/net/wireless/marvell/mwifiex/sdio.c   |  13 +
>   drivers/net/wireless/marvell/mwifiex/sdio.h   |   2 +
>   .../wireless/marvell/mwifiex/sta_cmdresp.c    |   2 +
>   .../net/wireless/marvell/mwifiex/sta_event.c  |  36 +-
>   .../net/wireless/marvell/mwifiex/sta_ioctl.c  |   3 +-
>   drivers/net/wireless/marvell/mwifiex/sta_tx.c |   9 +-
>   .../net/wireless/marvell/mwifiex/uap_cmd.c    | 171 ++++++++
>   drivers/net/wireless/marvell/mwifiex/util.c   | 104 +++++
>   18 files changed, 974 insertions(+), 17 deletions(-)
>
>
> base-commit: 783004b6dbda2cfe9a552a4cc9c1d168a2068f6c

I applied the two commits of this series on top of v6.7 but 
unfortunately the AP is failing to start with the patches. I get this 
output from "hostapd -d" (running on a Verdin AM62 with IW416):

nl80211: kernel reports: Match already configured
nl80211: Register frame command failed (type=176): ret=-114 (Operation 
already in progress)
nl80211: Register frame match - hexdump(len=0): [NULL]

If I run the same hostapd on v6.7 without the patches, the AP is started 
with no issues.


Is there anything else that should be done in order to test this?


Rafael