LAN 测试先决条件

本部分介绍在使用 Windows Hardware Lab Kit (Windows HLK) 测试网络适配器之前应满足的 LAN(以太网)测试先决条件。

注意

此内容适用于独立的网络适配器和集成的网络设备。

文档术语

设备角色 接口别名

测试计算机、测试目标 (DUT)

不需要名称,HKL 作业会自动选择名称

测试计算机、消息设备

MessageDevice

支持计算机、支持设备

SupportDevice0

支持计算机、消息设备

MessageDevice

LWF 驱动程序

NDIS 轻型筛选器驱动程序

计算机拓扑

下图显示了建议采用的计算机拓扑。 建议不要使用与此不同的拓扑,因为可能需要对其执行额外的操作才能使测试正确运行。

LAN 计算机拓扑

这是适用于所有 LAN 设备(包括支持 QoS 和烟囱的设备)的拓扑。

用于网络适配器测试的计算机拓扑

最近开发的标题中以“[网络适配器]”或“[测试名称]”为前缀的 HLK 测试是单台计算机测试,并且该计算机上需要 3 个网络适配器。 接口别名如下所示:

  1. TestDevice:受测网络设备
  2. SupportDevice0:需要额外的支持网卡,与 TestDevice 背靠背连接
  3. MessageDevice:用于与 HLK 控制器通信

下图显示了建议采用的拓扑:

lan_machine_topology_NetworkAdapter 测试

测试连接

通常首选背靠背连接,因为通过它可以避免交换机干扰测试(VLAN 错误配置、流控制数据包等)

对于网络交换机可能会影响结果的测试,需要使用背靠背连接。 此类测试包括:

  • QoS (又名DCB) (优先级流控制、LLDP/DCBX 互操作、ETS (,因为某些交换机可能会去除 802.1p 标记)

  • Tx 流控制

  • 发送带有 802.1q 标记的测试(VlanSendRecv、VMQ、1c_priority,可能还存在其他测试)

反向通道/公司网络

建议反向通道交换机所在的网络与测试计算机用于与 HLK 控制器进行通信的网络相同。 建议此网络启用 DHCP。

计算机要求

计算机要求通常取决于测试目标支持的功能。 客户端 SKU 的认证需要 2 个处理核心,而服务器 SKU 的认证需要 4 个处理核心。

注意

“核心”一词是指物理处理核心(而非虚拟或超线程核心)。 如果设备支持以下高级功能,相应的可能会提高最低系统要求。

  • LAN 唤醒:系统必须支持电源管理 (S3)

  • RSS:最多 4 个物理核心或设备支持的默认 RSS 队列数

    • 示例:如果 1G NIC 支持 2 个队列,则所需核心数为 4

    • 示例:如果 10G NIC 支持 8 个队列,则所需核心数为 8

  • 服务器/QoS:系统必须能够达到最大链接速率 90% 的饱和

  • QoS:存储目标以最大链接速率的 20% 写入

注意

如果在整个测试过程中频繁发生发送/接收数据包丢失的问题,则不太可能是选择性挂起的问题。

注意

要认证产品可在服务器上使用,测试计算机必须支持四个处理器且具有至少 1 GB RAM。 测试设备和驱动程序的再平衡、D3 状态和多处理器组功能需要这些系统功能。 不需要使用实际具有超过 64 个处理器的计算机来测试设备。 此外,在测试之前,用于设备或驱动器测试的服务器系统必须已安装服务器核心。 有关详细信息,请参阅 Windows Server 安装选项

如果使用测试计算机池来测试设备,则池中至少一台计算机必须包含四个处理器且具有至少 1 GB RAM。 此外,该计算机必须包含要测试的设备和驱动程序。 如果驱动程序在池中的所有计算机上都相同,则系统会创建一个计划,以针对所有测试计算机运行。

对于不包含要测试的驱动程序的测试(例如硬盘驱动器测试),Windows HLK 计划程序会将用于验证设备和驱动程序的再平衡、D3 状态和多处理器组功能的测试限制为在默认测试计算机上运行。 必须手动将这台计算机配置为具有多个处理器组。 默认计算机是列表中的第一台测试计算机。 测试人员必须确保列表中的第一台测试计算机满足最低硬件要求。

注意

测试物理设备及其关联的驱动程序以进行服务器认证或签名时,不得使用任意形式的虚拟化,但半虚拟化驱动程序(如 WHCP 策略和进程文档所定义)除外。 所有虚拟化产品都不支持需要通过与多处理器组、设备电源管理、设备 PCI 功能相关的测试及其他测试的基础功能。

注意

  多处理器组设置。必须为用于认证的 Windows Server 2008 R2 及更高版本设备驱动程序的 Hardware Lab Kit 测试设置处理器组大小的值。 这可通过使用 /set 选项在提升的命令提示符窗口中运行 bcdedit 来完成。

用于添加组设置和重启的命令如下所示:

bcdedit.exe /set groupsize 2
bcdedit.exe /set groupaware on
shutdown.exe -r -t 0 -f

用于删除组设置和重启的命令如下所示:

bcdedit.exe /deletevalue groupsize
bcdedit.exe /deletevalue groupaware
shutdown.exe -r -t 0 -f

注意

代码完整性设置

必须先使用服务器管理器启用 Windows Server 2016 的基于虚拟化的安全性 (VBS) 功能。

启用该功能后,必须创建并设置以下注册表项:

HKLM\System\CurrentControlSet\Control\DeviceGuard
HypervisorEnforcedCodeIntegrity:REG_DWORD
0 or 1 (disabled, enabled)

计算机配置

某些测试需要测试作业不会/不能自动处理的唯一配置。 以下列表概述了哪些测试需要唯一配置。

QosStorageInterop

DUT 计算机上的测试目标必须使用 iSCSI 或 SMB 连接到基于网络的存储。 测试计算机拓扑使得测试网络背靠背,这意味着支持计算机也必须用作存储目标。 这意味着必须在 SUT 上配置软件 iSCSI 目标,或者必须共享 SMB 共享。DUT 计算机必须将存储目标映射到驱动器号,并且用户必须确保此连接流经测试网络而非反向通道网络。 配置完成后,必须在计划时间向此作业输入另外两个参数:

  • 驱动器号

  • 存储模式(iSCSI 或 ND [网络直接])

选择性挂起

NDIS 选择性挂起功能可能会对测试结果产生负面影响。 许多网络认证测试都假定设备处于开机状态和随时可用状态。 因此,许多测试可能会快速发送或接收流量,并期望所有数据包都能正确发送或接收。 如果设备处于低功耗状态(选择性挂起),可能需要一段时间才能恢复,这可能会导致在恢复期间发生数据包丢失。

如果满足以下条件,Microsoft 建议(对于 NDIS 驱动程序)将 *SelectiveSuspend 配置为禁用或(对于 NetAdapterCx 2.2+ 驱动程序)将 *IdleRestriction 配置为启用(备注:请勿更改默认值,仅更改运行认证测试时的可操作值):

  • 客户具有能够选择性挂起的设备

  • 发送/接收测试遇到数据包丢失的问题

  • 发送/接收测试数据包丢失的问题仅出现在给定测试的第一个变体中

或者,可以在微型端口的设备管理器属性“电源管理”选项卡中取消选中“允许计算机关闭此设备以节省电源”。

HW QOS 测试

“HW QoS*”测试要求 SR-IOV 处于活动状态,并具有可用的 VF vPort。 在某些硬件上,需要为网络适配器安装 Hyper-V 才能启用 SR-IOV 并播发 VF vPort 可用性。 因此,建议在运行“HW QoS”测试之前安装 Hyper-V。

网络设备选择更改概述

对于 LAN 设备测试,不再使用 UI 选择消息适配器和支持适配器,系统会根据网络拓扑自动进行检测。 如果因网络拓扑与推荐的拓扑不同导致自动检测失败,则需在测试和支持计算机上重命名设备,然后再运行测试。 重命名是指设备的“ifAlias”,可从“网络连接”窗口和其他位置看到。

如果需要重命名,支持计算机上的支持设备需要重命名为“SupportDevice0”。 测试计算机和支持计算机上的消息设备需要重命名为“MessageDevice”。

“网络连接”对话框

自动选择设备条件

测试和支持计算机必须设置为与图 4 相同的配置,并且需要断开或禁用所有未参与测试的以太网设备/端口。 测试作业使用以下条件查找消息设备:已连接链接、已启用、TCP 绑定、使用 DHCP 分配的 IP 地址的以太网设备。 如果未找到使用 DHCP 分配地址的适配器,则检测将包括使用静态 IP 地址的适配器。 消息适配器通常连接到 HLK 控制器和常规公司网络。 找到消息设备后,作业将在剩余的适配器中搜索支持设备(已连接链路并启用的以太网设备)。

背靠背连接

在 HLK 中运行 LAN 测试

有关设置控制器和客户端计算机的信息,请参阅 HLK 帮助。本文档仅介绍 HLK 中 LAN 内容的执行。

设置控制器和客户端计算机后,请按照以下步骤运行 LAN 测试:

  1. 在 HLK Studio 中创建项目。

  2. 创建新的计算机池,将设置完成的客户端计算机添加到新创建的池中,并将计算机状态标记为就绪。

  3. 确保测试计算机和支持计算机按照上面“设备选择标条件”部分中的说明进行连接。

  4. 在 HLK Studio 的“选择”选项卡中,仅选择要测试的设备/驱动程序(例如设备管理器或软件设备)。

  5. 选择 HLK Studio“测试”选项卡列表中显示的作业。

  6. 单击“运行选定测试”,选择运行测试的支持计算机,然后单击“确定”。

运行筛选器徽标测试

使用以下步骤运行轻型筛选器 (LWF) 徽标测试:

  1. 设置/配置 DTM 服务器和 DTM 客户端计算机。 “筛选器徽标”测试只需要一台客户端计算机。

  2. 在客户端计算机上安装 LWF 驱动程序。

  3. 重新启动客户端计算机。

  4. 从 DTM 服务器将安装了 LWF 的客户端添加到新的计算机池中,并将计算机状态更改为“就绪”。

  5. 在 HLK Studio 中,在它的“项目”选项卡下创建一个新项目。

  6. 在 HLK Studio 的“选择”选项卡中,从下拉列表中选择在前面步骤中创建的计算机池。

  7. 单击“软件设备”,然后选择要测试的已安装完成的 LWF 驱动程序。

    LWF 徽标测试

  8. 运行“测试”选项卡中列出的所有针对 LWF 驱动程序的测试(“NDISTest 6.5 - LWF 徽标测试”检查所有 LWF 要求)。

NDISTest 6.5 - LWF 徽标测试

此测试以 LWF 为目标是通过确保筛选器能够处理大于微型端口的 MTU 大小的数据包来实现的。

还会运行筛选器压力测试,旨在对 NDIS 筛选器驱动程序的数据路径和 PNP 路径施加压力。  该测试将限制测试虚拟微型端口的接收描述符,以便在接收资源标志出现时会提供大量接收指示。  然后,测试以多线程方式执行以下操作:

  • 从支持微型端口定向到测试微型端口的压力流量。

  • 从测试微型端口定向到支持微型端口的压力流量

  • 停止/启动测试微型端口(将触发暂停和随后的重新启动操作)。

  • 指示媒体断开/连接的测试适配器。

  • 测试适配器重置。

    最后,将在测试/支持适配器之间测试基本的发送和接收连接。

NdkPerfLogoTests

此测试确保可以在 DUT 和支持计算机之间发送和接收 RDMA 流量。 此测试要求为 RDMA 流量启用 DUT 和支持计算机上的网络接口。

测试在 DUT 和支持计算机上执行 NdkPerfCmd.exe。 这将加载驱动程序 ndkperf.sys,它会调用 NDK API 将 RDMA 流量从 DUT 发送到支持计算机。

参数:

参数 说明

ClientIf

在 DUT 上启用 RDMA 的 NIC 的接口 ID。 使用 Get-NetAdapter 获取 ID

ClientAddr

在 DUT 上启用 RDMA 的 NIC 的 IP 地址。 使用 ipconfig 或 Get-NetIpAddress 获取 IP 地址

SupportIf

支持计算机上启用 RDMA 的 NIC 的接口 ID。 使用 Get-NetAdapter 获取 ID

SupportAddr

支持计算机上启用 RDMA 的 NIC 的 IP 地址。 使用 ipconfig 或 Get-NetIpAddress 获取 IP 地址

调查失败提示:

  • 确保两个 NIC 都启用了 RDMA (Get-NetAdapterRdma)

  • 确保在发送 RDMA 流量时 RDMA 活动性能计数器在递增

  • 尝试在 DUT/支持计算机上手动运行 NdkPerfCmd.exe。 如果失败,则可能是参数或网络驱动程序的 NDK API 实现存在问题。

Device.Network 测试