WiFiCx Wi-Fi 7 功能要求

WiFiCx 支持 Wi-Fi 7 功能,提供更快的连接速度、更低的延迟和更高的安全性。 WiFiCx 通过漫游区分启用多链路操作 (MLO),可利用多个同时通道连接到 Wi-Fi 接入点 (AP),并增强了 WPA3-SAE 身份验证和采用 GCMP-256 密码的机会无线加密 (OWE) 的功能。

本文概述了支持这些功能所需的驱动程序更改。

Wi-Fi 7 功能检测

驱动程序必须支持 WDI 版本 2.0.12 进行 Wi-Fi 7 连接设置。

若要指示对 Wi-Fi MLO 连接的支持,驱动程序必须在 WIFI_STATION_CAPABILITIES 结构中设置以下功能:

  • MLOAddressesList 中的条目数必须与 MaxMLOLinksSupported 匹配,这指示驱动程序是否能够设置 MLO 链接。
  • AkmsList 中的条目数必须与 NumAkmsSupported 匹配。 此列表应包括驱动程序支持的所有 AKM 套件,如果 OS 预计将支持具有 384 位 PMK 的 SAE,则必须包含 AKM 24。

若要支持使用带有GCMP-256 密码的 AKM 24 或 AKM 8 的 SAE 连接,驱动程序必须在调用 WifiDeviceSetStationCapabilities 时添加以下自动密码对:

  • UnicastAlgorithmsList 中:DOT11_AUTH_ALGO_WPA3_SAE + DOT11_CIPHER_ALGO_GCMP_256
  • MulticastMgmtAlgorithmsList 中:DOT11_AUTH_ALGO_WPA3_SAE + DOT11_CIPHER_ALGO_GCMP_256

若要支持 GCMP-256 密码的 OWE 连接,驱动程序必须在调用 WifiDeviceSetStationCapabilities 时添加以下自动密码对:

  • UnicastAlgorithmsList 中:DOT11_AUTH_ALGO_OWE + DOT11_CIPHER_ALGO_GCMP_256

帧 MAC 地址

当驱动程序指示管理帧时,请使用链路 MAC 地址。 对于数据帧(包括 4 向握手和 802.1x 身份验证帧)使用 MLD MAC 地址。

对于数据帧,包括 4 向握手和 802.1x 身份验证帧,MAC 地址是 MLD Mac 地址。

当 Windows 使用随机 MAC 地址时,它会在发送 OID_WDI_TASK_DOT11_RESET 任务时在 WDI_TLV_CONFIGURED_MLO_LINK_MAC_ADDRESS 中提供一组随机地址。

AP 发现

Windows 分析多链路和 RNR IDE 的信标 IE。 如果存在,它将 AP 标记为支持 MLO。

Windows 在 OID_WDI_TASK_CONNECT 任务中提供了一个设置,该设置指示驱动程序是否可以使用 MLO 进行连接。 此设置由 WDI_TLV_CONNECTION_SETTINGS 中的 MloConnectionSupported 表示。 当 MloConnectionSupported true 时,驱动程序只能使用由 OID_WDI_TASK_CONNECOID_WDI_TASK_ROAM 请求中 WDI_TLV_RSNA_AKM_CIPHER_SUITE 指定的 AKM 和密码对。 唯一的例外是验证/密码不是 RSNA IE 的一部分。

对于基于 SAE 的连接,Windows 在 SAE 提交请求中设置 AKM 和密码,这告知驱动程序在关联请求中稍后使用哪个 AKM 和密码。

身份验证

对于使用 Wi-Fi 7 MLO 的 SAE 身份验证,Windows 在调用 OID_WDI_SET_SAE_AUTH_PARAMS 时,在 WDI_TLV_SAE_COMMIT_PARAMS 中设置 AKM 和密码。 这些值在 WDI_TLV_RSNA_AKM_SUITEWDI_TLV_CIPHER_ALGORITHM TLV 中指定。 驱动程序稍后在关联请求中使用这些值。

NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED 指示中,驱动程序应:

连接 MLO 时,在验证帧中包含适当的多链路 IE。

关联

当 Windows 发送OID_WDI_TASK_CONNECTOID_WDI_TASK_ROAM任务时,如果 AP 支持与 WDI_TLV_CONNECT_PARAMETERS TLV 中 WDI_TLV_RSNA_AKM_CIPHER_SUITE 中列出的 AKM 的多链路连接,驱动程序应仅使用 Wi-Fi 7 MLO 连接到 IP。

驱动程序在连接 MLO 时在关联帧中包含适当的多链路 IE。 在关联完成时,Windows 检查 NDIS_STATUS_WDI_INDICATION_ASSOCIATION_RESULT 指示中关联请求/响应帧中的多链路 IE,以确定 MLO 是否在连接中使用。

Windows 要求驱动程序在指示 NDIS_STATUS_WDI_INDICATION_ASSOCIATION_RESULT 时指示 WDI_TLV_ASSOCIATION_RESULT 中的关联请求和响应帧。

若要使用 Wi-Fi 7 MLO 进行关联,驱动程序必须在 NDIS_STATUS_WDI_INDICATION_ASSOCIATION_RESULT 中设置以下值:

  • WDI_TLV_ASSOCIATION_RESULT 中的 BSSID (WDI_TLV_BSSID) 设置为 AP 的链路 MAC 地址。 NDIS_STATUS_WDI_INDICATION_ASSOCIATION_RESULT 中应只有 AssociationResultsContainer 条目的一个实例。
  • 将 WDI_TLV_ASSOCIATION_RESULT 中的 LocalLinkBssId (WDI_TLV_MLO_LINK_BSSID) 设置为本地链路 MAC 地址。

注意:如果未设置 LocalLinkBssId ,则 Windows 无法使用 MLO 进行连接。

4 向握手

Windows 在 4 向握手中支持 GCMP-256。 它还更新了 WDI 接口,以在设置 GTK/IGTK/BIGTK 密钥时提供链接信息。

为 MLO 连接设置组密钥 (GTK/IGTK/BIGTK) 时,Windows 将使用一组元素调用 OID_WDI_SET_ADD_CIPHER_KEYS 命令,每个密钥都添加一个。

NDIS_STATUS_WDI_INDICATION_LINK_STATE_CHANGE 指示现在提供 WDI_TLV_LINK_INFO 中每个链接的以下信息:

  • Link ID
  • 连接频段/频道
  • 接收信号强度指示器 (RSSI)
  • 当前带宽
  • 当前 Tx MCS
  • 当前 Rx MCS

对于 MLO 连接,链接状态指示提供每个链接的信息。 对于非 MLO 连接,它提供单个链接的信息。

解除关联

驱动程序仅在取消关联所有链接时发送 NDIS_STATUS_WDI_INDICATION_DISASSOCIATION 指示。 如果驱动程序在新链接上连接或与当前连接的链接断开连接,驱动程序只会发送 NDIS_STATUS_WDI_INDICATION_LINK_STATE_CHANGE 通知来更新当前关联的链接集。

当驱动程序发送 NDIS_STATUS_WDI_INDICATION_DISASSOCIATION 指示时,它应将 WDI_TLV_DISASSOCIATION_INDICATION_PARAMETERS 中的 MAC 地址设置为 AP 的 MLD MAC 地址。

SAE 身份验证更改

发送 SAE 身份验证帧

已为 OID_WDI_SET_SAE_AUTH_PARAMS 命令重命名以下类型和 TLV:

指示 SAE 身份验证帧

已针对 NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED 指示重命名以下类型和 TLV:

在调用 WDI_SET_SAE_AUTH_PARAMS 时,OS 提供 AKM 和密码作为驱动程序在发送关联请求时将使用的可选参数。 AKM/密码组合将在 SAE 交换期间确定。

OWE 连接

对于 OWE 连接,Windows 会检查 AP 是否支持 GCMP-256 密码。 如果受支持,Windows 最初尝试使用组 20 进行关联。 如果 AP 因错误 DOT11_FRAME_STATUS_UNSUPPORTED_FINITE_CYCLIC_GROUP (77) 而导致关联请求失败,OS 会回退到使用组 19 进行关联。

最初,OS 在 OID_WDI_TASK_CONNECT 中将 OWE 的 DH 参数设置为组 20。 如果 AP 因不支持的组错误导致关联请求失败,OS 会将 OID_WDI_SET_OWE_DH_IEOID 发送到驱动程序,其中包含组 19 的已更新 OWE 信息。 驱动程序应将更新的 OWE 信息用于下一个关联请求。

注意:若要使 OS 正确处理DOT11_FRAME_STATUS_UNSUPPORTED_FINITE_CYCLIC_GROUP错误,驱动程序还必须在 NDIS_STATUS_WDI_INDICATION_ASSOCIATION_RESULT 指示中将 WDI 状态设置为 WDI_ASSOC_STATUS_ASSOC_FAILED_BY_PEER