windows网络适配器驱动开发-WiFiCx Wi-Fi 7 功能要求(三)

关联请求与响应------MLO连接的正式建立

关联阶段是MLO连接真正落地的环节。当Windows发送OID_WDI_TASK_CONNECT或OID_WDI_TASK_ROAM任务时,驱动程序必须判断目标AP是否支持与WDI_TLV_CONNECT_PARAMETERS TLV中列出的AKM进行多链路连接。若支持且MloConnectionSupported标志为TRUE,驱动程序应使用Wi-Fi 7 MLO方式连接该AP;否则,应退回到传统单链路连接。

在关联帧处理方面,驱动程序必须在关联请求帧中嵌入适当的多链路IE,声明本地设备支持的所有链路及其能力(包括信道、带宽、MAC地址等)。在关联完成时,Windows会检查NDIS_STATUS_WDI_INDICATION_ASSOCIATION_RESULT指示中携带的关联请求和响应帧中的多链路IE,以确认该连接是否实际使用了MLO。因此,驱动程序必须在此指示中提供完整的关联请求帧和响应帧(通过WDI_TLV_ASSOCIATION_RESULT中的相关字段),不得截断或修改。

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

  • 将WDI_TLV_ASSOCIATION_RESULT中的BSSID(WDI_TLV_BSSID)设置为AP的链路MAC地址(即关联响应中该链路的BSSID)。

  • 将WDI_TLV_ASSOCIATION_RESULT中的LocalLinkBssId(WDI_TLV_MLO_LINK_BSSID)设置为本地对应的链路MAC地址。

注意:如果驱动程序未设置LocalLinkBssId字段,Windows将无法识别该连接为MLO连接,从而导致后续的多链路管理和负载均衡策略失效。因此,该字段的填充是强制性的。

四次握手与密钥管理------GCMP-256与链路感知

Wi-Fi 7强制要求支持GCMP-256加密协议,该协议提供256位加密强度,远超传统的CCMP-128。在四步握手(4-way Handshake)过程中,驱动程序需正确处理GCMP-256相关的密钥派生和安装流程。

Windows在设置组密钥(GTK/IGTK/BIGTK)时,会调用OID_WDI_SET_ADD_CIPHER_KEYS命令,并传递一个密钥元素数组。对于MLO连接,每个密钥元素现在必须包含对应的链路ID(Link ID),以指示该密钥适用于哪条具体链路。驱动程序需根据链路ID将密钥安装到正确的硬件路径中,并确保每条链路使用独立的密钥材料(尽管它们派生自相同的PMK)。

此外,驱动程序应确保在四次握手中正确使用MLD MAC地址(如前文所述),并在EAPOL帧中携带多链路元素(如果AP要求)。任何链路ID或地址的错配都可能导致握手失败或数据解密错误。

链路状态指示------细粒度的链路信息上报

在MLO模式下,连接由多条链路组成,每条链路可能有独立的信号质量、信道和速率。为此,NDIS_STATUS_WDI_INDICATION_LINK_STATE_CHANGE指示已进行了扩展,现在每个链路的状态都通过WDI_TLV_LINK_INFO结构单独上报。该TLV中包含以下信息:

  • 链路ID(Link ID):唯一标识该链路的整数值。

  • 连接频段和信道号:标识该链路当前工作的频段(2.4/5/6 GHz)及具体信道。

  • 接收信号强度指示器(RSSI):以dBm为单位,反映当前链路的信号强度。

  • 当前带宽:如20/40/80/160/320 MHz。

  • 当前发射MCS(Tx MCS)和接收MCS(Rx MCS):标识当前使用的调制与编码策略等级。

对于MLO连接,驱动程序应为每条活跃链路分别发送链路状态指示。对于非MLO连接(传统单链路),则仅需提供一个链路的默认信息。此细粒度的状态数据使操作系统能够智能地进行流量分发(例如,将时延敏感业务调度到RSSI最优的链路上),同时为用户提供更精确的网络诊断信息。

相关推荐
小白白3612 小时前
Pixelorama怎么用?像素画绘制和动画制作入门
windows
156082072194 小时前
飞腾D2000接入外部时钟HYM8563芯片调试
驱动开发·嵌入式硬件·mcu
脚踏实地皮皮晨7 小时前
003003001_Grid控件
开发语言·windows·算法·c#·visual studio
ziguo11227 小时前
Windows API MessageBox 函数详解
c语言·c++·windows·visualstudio
sukalot8 小时前
windows网络适配器驱动开发-WiFiCx Wi-Fi 7 功能要求(二)
windows·驱动开发
山河不见老10 小时前
【Cursor 、Qoder安装问题】Cursor 、Qoder安装卡在“正在准备安装”问题排查及解决
人工智能·windows·编辑器
智者知已应修善业11 小时前
【用D触发器组成000-001-010-011-100】2025-6-7
驱动开发·经验分享·笔记·硬件架构·硬件工程
编程圈子11 小时前
电机驱动开发学习22. 霍尔电角度标定(自动/手动标定与Flash固化)
驱动开发·学习
love530love11 小时前
Windows 原生编译 SGLang(2/8):三铁证判定可行 + --no-deps 外科手术式安装
windows·sglang