LAN 测试先决条件
本部分介绍在使用 Windows Hardware Lab Kit (Windows HLK) 测试网络适配器之前应满足的 LAN(以太网)测试先决条件。
注意
此内容适用于独立的网络适配器和集成的网络设备。
文档术语
设备角色 | 接口别名 |
---|---|
测试计算机、测试目标 (DUT) |
不需要名称,HKL 作业会自动选择名称 |
测试计算机、消息设备 |
MessageDevice |
支持计算机、支持设备 |
SupportDevice0 |
支持计算机、消息设备 |
MessageDevice |
LWF 驱动程序 |
NDIS 轻型筛选器驱动程序 |
计算机拓扑
下图显示了建议采用的计算机拓扑。 建议不要使用与此不同的拓扑,因为可能需要对其执行额外的操作才能使测试正确运行。
这是适用于所有 LAN 设备(包括支持 QoS 和烟囱的设备)的拓扑。
用于网络适配器测试的计算机拓扑
最近开发的标题中以“[网络适配器]”或“[测试名称]”为前缀的 HLK 测试是单台计算机测试,并且该计算机上需要 3 个网络适配器。 接口别名如下所示:
- TestDevice:受测网络设备。
- SupportDevice0:需要额外的支持网卡,与 TestDevice 背靠背连接
- MessageDevice:用于与 HLK 控制器通信。
下图显示了建议采用的拓扑:
测试连接
通常首选背靠背连接,因为通过它可以避免交换机干扰测试(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 测试:
在 HLK Studio 中创建项目。
创建新的计算机池,将设置完成的客户端计算机添加到新创建的池中,并将计算机状态标记为就绪。
确保测试计算机和支持计算机按照上面“设备选择标条件”部分中的说明进行连接。
在 HLK Studio 的“选择”选项卡中,仅选择要测试的设备/驱动程序(例如设备管理器或软件设备)。
选择 HLK Studio“测试”选项卡列表中显示的作业。
单击“运行选定测试”,选择运行测试的支持计算机,然后单击“确定”。
运行筛选器徽标测试
使用以下步骤运行轻型筛选器 (LWF) 徽标测试:
设置/配置 DTM 服务器和 DTM 客户端计算机。 “筛选器徽标”测试只需要一台客户端计算机。
在客户端计算机上安装 LWF 驱动程序。
重新启动客户端计算机。
从 DTM 服务器将安装了 LWF 的客户端添加到新的计算机池中,并将计算机状态更改为“就绪”。
在 HLK Studio 中,在它的“项目”选项卡下创建一个新项目。
在 HLK Studio 的“选择”选项卡中,从下拉列表中选择在前面步骤中创建的计算机池。
单击“软件设备”,然后选择要测试的已安装完成的 LWF 驱动程序。
运行“测试”选项卡中列出的所有针对 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 实现存在问题。