WiFiCx Wi-Fi 7 功能需求
WiFiCx 支援Wi-Fi 7功能,提供更快的連線速度、較低的延遲,以及改善的安全性。 WiFiCx 可讓具有漫遊差異的多連結作業 (MLO)利用多個同時通道到Wi-Fi存取點 (AP),以及使用 GCMP-256 加密的 WPA3-SAE 驗證和機會式無線加密 (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 時新增下列驗證加密組:
- 在 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 會剖析 Multi-Link 和 RNR IE 的指標 IE。 如果有的話,它會將AP標示為支援MLO。
多重連結連線設定
Windows 會在OID_WDI_TASK_CONNECT工作中提供設定,指出驅動程式是否可以使用 MLO 進行連線。 此設定是由 WDI_TLV_CONNECTION_SETTINGS 中的 Mlo 連線 ionSupported 旗標來表示。 當 Mlo 連線 ionSupported 為 true 時,驅動程式只能使用OID_WDI_TASK_CONNECT和OID_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_SUITE 和 WDI_TLV_CIPHER_ALGORITHM TLV 中指定。 驅動程式稍後會在關聯要求中使用這些值。
在 NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED 指示中,驅動程序應該:
- 將 BSSID (WDI_TLV_BSSID) 設定為 AP 的連結 MAC 位址。
- 將 LocalMloLinkBssId (WDI_TLV_MLO_LINK_BSSID) 設定為本機連結 MAC 位址。
連接 MLO 時,請在驗證畫面中包含適當的 Multi-Link IE。。
關聯
當 Windows 傳送OID_WDI_TASK_CONNECT和OID_WDI_TASK_ROAM工作時,如果 AP 支援與WDI_TLV_CONNECT_PARAMETERS TLV WDI_TLV_RSNA_AKM_CIPHER_SUITE中列出的 AKM 進行多重連結連線,驅動程式應該只使用 Wi-Fi 7 MLO 連線至 AP。
驅動程式會在連接 MLO 時,在關聯框架中包含適當的 Multi-Link IE。。 在關聯完成時,Windows 會在NDIS_STATUS_WDI_INDICATION_ASSOCIATION_RESULT指示中檢查關聯要求/回應框架中的多重連結 ES,以判斷是否在連線中使用 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中提供下列每個連結的資訊:
- 鏈接標識碼
- 連線 帶/通道
- 收到的訊號強度指標 (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驗證框架
下列類型和 TLV 已針對 OID_WDI_SET_SAE_AUTH_PARAMS 命令重新命名:
- 已將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列舉中的WDI_SAE_REQUEST_TYPE_CONFIRM_PARAMS。
- 將WDI_TLV_SAE_COMMIT_REQUEST重新命名為 WDI_TLV_SAE_COMMIT_PARAMS。 此 TLV 可用來傳送認可要求和認可響應畫面。
- 將WDI_TLV_SAE_CONFIRM_REQUEST重新命名為 WDI_TLV_SAE_CONFIRM_PARAMS。 此 TLV 可用來傳送 confirm-request 和 confirm-response 畫面。
指出SAE驗證框架
下列類型和 TLV 已針對NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED指示重新命名:
- 已將WDI_SAE_INDICATION_COMMIT_RESPONSE重新命名為WDI_SAE_INDICATION_TYPE列舉中的WDI_SAE_INDICATION_COMMIT_FRAME。
- 將WDI_SAE_INDICATION_CONFIRM_RESPONSE重新命名為WDI_SAE_INDICATION_TYPE列舉中的WDI_SAE_INDICATION_CONFIRM_FRAME。
- 將WDI_TLV_SAE_COMMIT_RESPONSE重新命名為 WDI_TLV_SAE_COMMIT_FRAME。
- 將WDI_TLV_SAE_CONFIRM_RESPONSE重新命名為 WDI_TLV_SAE_CONFIRM_FRAME。
在呼叫 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 會使用群組 19 更新的 OWE 資訊,將OID_WDI_SET_OWE_DH_IE OID 傳送至驅動程式。 驅動程式應針對下一個關聯要求使用更新的 OWE 資訊。
注意:若要讓OS正確處理DOT11_FRAME_STATUS_UNSUPPORTED_FINITE_CYCLIC_GROUP錯誤,驅動程式也必須將NDIS_STATUS_WDI_INDICATION_ASSOCIATION_RESULT指示中的WDI狀態設定為WDI_ASSOC_STATUS_ASSOC_FAILED_BY_PEER。