WDI 接收操作和卸载

这些main操作卸载类别是可配置的。

  • MSDU 级别的接收操作
  • 帧转发 (转发决策和执行)
  • 协议/任务卸载

下面是 RX 操作和卸载的列表。

函数 说明 所有权 备注

解密

使用为发送方指定的安全类型和安全密钥解密帧内容。

目标

在主机实现的 FIPS 模式下,解密是在主机软件中完成的。 绕过目标的解密。

A-MPDU deaggregation

将 RX A-MPDU 分解为单个 MPDU。

目标

A-MSDU 取消聚合

将 RX A-MSDU 分解为单个 MSDU。

目标/TAL

每个 RX MSDU 都放置在单独的缓冲区中。

MSDU 安全性解包和解除 MIC

对于涉及 MSDU 级别 MIC 的安全类型,请验证收到的 MIC。 解封安全标头和页脚。

目标/TAL

操作系统会根据需要执行对策。

Rx decap

将非初始 A-MSDU 子帧标头替换为 802.11 标头,并根据需要使用初始 A-MSDU 子帧中的 802.11 标头字段。

目标/TAL

在 A-MSDU 取消聚合期间,A-MSDU 的非初始 MSDU 需要将其 802.3 标头替换为泛型 802.11 标头。 WDI 始终需要 802.11 标头。

Rx 重新排序逻辑

对于每个 RX MPDU,确定它进入 Rx 重新排序数组的哪个槽。 确定何时存在一系列按顺序帧。 确定何时释放挂起的帧,即使其前面的帧尚未到达。

目标/TAL

Rx 放弃逻辑

确定需要丢弃哪些 Rx 帧:

  1. 如果它与任何接收数据包筛选器都不匹配。
  2. 如果帧已加密,在以下的情况下放弃:
    • 密码密钥无法解密数据包。
    • 数据包有效负载无法成功解密。
    • 数据包有效负载未通过 MIC 验证。
    • 数据包未通过为密码算法定义的重播机制, (请参阅 Rx PN/重播检查) 。
    • 隐私豁免是针对数据包的以太网类型定义的,该类型指定 WDI_EXEMPT_ ALWAYS 操作。
  3. 如果帧未加密,请在以下的情况下放弃:
    • 密码密钥可用于解密数据包,并为数据包的 Ethertype 定义隐私豁免,该类型指定 WDI_EXEMPT_ON_ KEY_UNAVAILABLE 操作。
    • dot11ExcludeUnencrypted MIB 设置为 true。

Target/TAL 做出所有放弃决策。

Rx PN/重播检查

确认每个 MPDU 都有一个不同于先前的PN 的数据包编号。

这是必需且始终启用的卸载,但与重新排序队列关联的流除外,并且重新排序队列管理不会完全卸载到目标。

Chatter 卸载

避免为每个可延迟的“噪音”Rx 帧中断主机。 相反,对 Rx 干扰帧进行分组,并使用单个中断来传递所有此类帧。

目标

碎片整理

将 802.11 片段重新组合到其原始 MSDU 中。

目标/TAL

Rx 重新排序队列

存储无序的 Rx MPTU,直到流中缺少的先前 MPTU 到达。

目标/TAL

Rx 放弃执行

根据目标上运行的 Rx 放弃逻辑标记的规范放弃 Rx 帧。

目标/TAL

更高级别的协议 (任务) 卸载

校验和

校验和:如果需要,可在启动时卸载。

校验和:目标在启动期间将其校验和卸载功能作为设备上限的一部分传递给 WDI。 有关功能的信息,请参阅 NDIS_TCP_IP_ CHECKSUM_OFFLOAD

Host-Implemented FIPS 模式下的接收操作

在此模式下,目标可能使用 802.11 标头或 802.3 标头指示收到的帧。 不得在指示之前解密帧。

如果放弃逻辑卸载到目标,则如果收到的帧满足以下任一条件,则必须将接收的帧标记为放弃。

  • 具有错误 CRC 的帧。
  • 重复帧。
  • 与配置的数据包筛选器不匹配的帧。

对于已成功接收或被端口丢弃的数据包,目标必须递增相应的 MAC 和 PHY 统计信息。

此外,如果卸载,目标必须执行放弃执行。

在主机实现的 FIPS 模式下运行时,目标不应从 RX 路径上的 802.11 标头中去除 QoS 标志。 目标应在不修改 QoS 标头的情况下指示帧。

对于分段数据包,当主机执行碎片整理过程时,LE 报告的 FIPS 模式的有效负载类型始终 WDI_FRAME_MSDU_FRAGMENT 。 但是,在非 FIPS 模式下,当 Target/TAL 执行碎片整理时,应 WDI_FRAME_MSDU 报告的有效负载类型。

NDIS_TCP_IP_CHECKSUM_OFFLOAD

WDI 数据传输

WDI_EXEMPTION_ACTION_TYPE

WDI_FRAME_PAYLOAD_TYPE