AP发现------MLO能力的识别与标记
在扫描阶段,驱动程序负责将原始的信标(Beacon)和探测响应(Probe Response)帧内容传递给Windows。Windows操作系统会解析这些帧中包含的多链路元素(Multi-Link Element)以及精简邻居报告(RNR,Reduced Neighbor Report)信息元素(IE)。若检测到AP宣告了MLO能力(例如通过Multi-Link Element中携带的MLD MAC地址和链路配置),Windows会将该AP标记为"支持MLO",并在后续连接决策中将其作为MLO候选。
驱动程序在此过程中无需额外处理,但必须确保原始帧的完整性和正确性,不得过滤或篡改任何IE。尤其在6GHz频段,RNR IE对于发现共置的2.4/5GHz AP至关重要,驱动程序应确保这些信息被正确传递至上层。
多链路连接设置------MLO的启用与约束
当用户或系统策略触发连接请求时,Windows会通过OID_WDI_TASK_CONNECT任务下达连接参数。该任务的WDI_TLV_CONNECTION_SETTINGS结构中包含一个关键标志------MloConnectionSupported。该标志指示驱动程序是否可以将此连接作为MLO连接来建立。
若MloConnectionSupported为TRUE,驱动程序应优先尝试使用MLO方式连接至目标AP。但必须遵守以下约束:驱动程序只能使用WDI_TLV_RSNA_AKM_CIPHER_SUITE中指定的AKM和密码对进行连接,不得协商其他未列出的套件。唯一的例外情况是身份验证或密码套件不属于RSNA IE(Robust Security Network Information Element)范畴(例如,某些供应商特定的预认证机制),此时可以灵活处理。
对于基于SAE(Simultaneous Authentication of Equals)的连接,Windows会在SAE提交请求(Commit Request)阶段就携带AKM和密码信息,告知驱动程序在后续关联请求中应使用的安全套件。这种提前协商机制避免了多次往返交换能力信息,加速了连接建立过程。
身份验证流程------SAE与MLO的融合
在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传递。驱动程序在稍后构建关联请求帧时必须使用这些值,确保与AP协商一致。
当驱动程序需要向操作系统请求SAE身份验证参数时(通过NDIS_STATUS_WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED指示),必须正确填充以下字段:
-
BSSID(通过WDI_TLV_BSSID):设置为目标AP的链路MAC地址(即该特定链路的BSSID)。
-
LocalMloLinkBssId(通过WDI_TLV_MLO_LINK_BSSID):设置为本地对应的链路MAC地址,以便AP能够识别该链路属于同一个MLD。
此外,当连接MLO时,驱动程序在构造和发送身份验证帧时,必须包含适当的多链路IE(Multi-Link IE),其中应列出参与该MLO会话的所有链路的BSSID和操作参数。缺失或错误的Multi-Link IE会导致AP拒绝认证。