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。

若要支持将 AKM 24 或 AKM 8 与 GCMP-256 密码配合使用的 SAE 连接,驱动程序必须在调用 WifiDeviceSetStationCapabilities 时添加以下身份验证密码对:

  • UnicastAlgorithmsListDOT11_AUTH_ALGO_WPA3_SAE + DOT11_CIPHER_ALGO_GCMP_256
  • MulticastMgmtAlgorithmsList 中: DOT11_AUTH_ALGO_WPA3_SAE + DOT11_CIPHER_ALGO_GCMP_256

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

  • UnicastAlgorithmsListDOT11_AUTH_ALGO_OWE + DOT11_CIPHER_ALGO_GCMP_256

帧 MAC 地址

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

对于数据帧,包括四次握手和 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 标志表示。 当 MloConnectionSupportedtrue时,驱动程序只能使用WDI_TLV_RSNA_AKM_CIPHER_SUITEOID_WDI_TASK_CONNECTOID_WDI_TASK_ROAM请求中指定的 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 TLVWDI_TLV_RSNA_AKM_CIPHER_SUITE中列出的 AKM 进行多链接连接,驱动程序应仅使用 Wi-Fi 7 MLO 连接到 AP。

驱动程序在连接 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 中的 BSSIDWDI_TLV_BSSID) 设置为 AP 的链接 MAC 地址。 NDIS_STATUS_WDI_INDICATION_ASSOCIATION_RESULT中应只有 AssociationResultsContainer 条目的一个实例。
  • 将 WDI_TLV_ASSOCIATION_RESULT 中的 LocalLinkBssIdWDI_TLV_MLO_LINK_BSSID) 设置为本地链接 MAC 地址。

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

四次握手

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 中为每个链接提供以下信息:

  • 链接 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 指示时,应将 AP 的 MLD MAC 地址设定为 WDI_TLV_DISASSOCIATION_INDICATION_PARAMETERS 中的 MAC 地址。

SAE 身份验证更改

发送 SAE 身份验证帧

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

  • 已将WDI_SAE_REQUEST_TYPE_COMMIT_REQUEST重命名为WDI_SAE_REQUEST_TYPE枚举中的WDI_SAE_REQUEST_TYPE_COMMIT_PARAMS
  • 已将 WDI_SAE_REQUEST_TYPE_CONFIRM_REQUEST 重命名为 WDI_SAE_REQUEST_TYPE_CONFIRM_PARAMSWDI_SAE_REQUEST_TYPE 枚举中。
  • 已将WDI_TLV_SAE_COMMIT_REQUEST重命名为 WDI_TLV_SAE_COMMIT_PARAMS。 此 TLV 用于发送提交请求和提交响应帧。
  • 已将WDI_TLV_SAE_CONFIRM_REQUEST重命名为 WDI_TLV_SAE_CONFIRM_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)而未能完成关联请求,操作系统会回退到使用组 19 进行关联。

最初,OS 在 OID_WDI_TASK_CONNECT 中将 OWE 的 DH 参数设置为组 20。 如果 AP 由于不支持的组错误而无法完成关联请求,则 OS 会向驱动程序发送 OID_WDI_SET_OWE_DH_IE OID,其中包含组 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