NDISTest 6.0 - [2 Machine] - 2c_Mini6RSSSendRecv (Multi-Group Win8+)

This test validates the miniport driver's receive side scaling (RSS) implementation. It tests that when RSS is enabled, the miniport does not drop packets, indicates them in order, and (when appropriate) puts them on the correct processor. It also tests disabling RSS.

This test uses an indirection table which contains a number of processors equal to the greater of either the number of hardware queues the miniport supports or the number of processors on the system.

There are two main iterations in this test:

  • A single support adapter instance sending packets to the RSS miniport driver.

  • Multiple senders sending packets to the RSS miniport driver.

Both OID_GEN_RECEIVE_SCALE_PARAMETERS (RSS) and OID_GEN_RECEIVE_HASH (Hash only) are tested. RSS is tried first. If RSS is not supported, the test falls back to doing hash only. If RSS is supported, the test also attempts hash only. A failure will occur if the miniport driver does not support either hash or RSS and it reported capabilities.

Disabling and enabling RSS and hashing are tested three ways:

  • Setting the NDIS_RSS_PARAM_FLAG_DISABLE_RSS flag

  • Setting the standardized RSS registry key to disabled (0)

  • Setting the HashFunction to 0

When disabled by using a registry key, we expect no capabilities to be reported, sets to fail, and no RSS or hashing to be done.

The test sends different packet types:

  • IPv4 + TCP packets with no options

  • IPv4 packets with no options and no TCP header

  • IPv4 + TCP packets with fixed length IP options

  • IPv4 packets with fixed length IP options and no TCP header

  • Pv4 + TCP packets with variable length IP options

  • IPv4 packets with variable length IP options and no TCP header

  • First fragment of IPv4 + TCP packets with no options

  • Middle fragment of IPv4 + TCP packets with no options

  • Last fragment of IPv4 + TCP packets with no options

  • IPv4 + TCP packets changing ports and addresses

  • Raw NDISTest packets (no IP or TCP)

  • IPv6 + TCP packets with no options

  • IPv6 packets with no options & no TCP header

  • IPv6 + TCP packets with fixed length IP padding

  • IPv6 packets with fixed length IP padding and no TCP header

  • First fragment of IPv6 + TCP packets with no additional options

  • Middle fragment of IPv6 + TCP packets with no additional options

  • Last fragment of IPv6 + TCP packets with no additional options

  • IPv6 packets with route type 0 header and TCP header

  • IPv6 packets with a route type 2 header and TCP header

  • IPv6 packets with a route type 2 header and no TCP header

  • IPv6 packets with home address header and TCP header

  • IPv6 packets with home address header and no TCP header

  • IPv6 packets with home address and route type 2 header and TCP header

  • IPv6 packets with home address and a route type 2 header and no TCP header

Test details

   
Specifications
  • Device.Network.LAN.RSS.RSS
  • Device.Network.LAN.RSS.SetHashFunctionTypeAndValue
  • Device.Network.LAN.RSS.SupportIndirectionTablesSizes
  • Device.Network.LAN.RSS.SupportToeplitzHashFunction
  • Device.Network.LAN.RSS.SupportUpdatesToRSSInfo
Platforms
  • Windows 10, client editions (x64)
  • Windows Server 2016 (x64)
Supported Releases
  • Windows 10
  • Windows 10, version 1511
  • Windows 10, version 1607
  • Windows 10, version 1703
  • Windows 10, version 1709
  • Windows 10, version 1803
  • Windows 10, version 1809
  • Windows 10, version 1903
  • Next update to Windows 10
Expected run time (in minutes) 120
Category Development
Timeout (in minutes) 7200
Requires reboot false
Requires special configuration false
Type automatic

 

Additional documentation

Tests in this feature area might have additional documentation, including prerequisites, setup, and troubleshooting information, that can be found in the following topic(s):

Running the test

Before you run the test, complete the test setup as described in the test requirements: LAN Testing Prerequisites.

Troubleshooting

For generic troubleshooting of HLK test failures, see Troubleshooting Windows HLK Test Failures.

For troubleshooting information, see Troubleshooting LAN Testing.

More information

Command syntax

Command Description

[WTTRunWorkingDir]\ndistest\bin\ndtest.exe /logo /auto /server /support:[SupportDeviceGuid0] /msg:[ServerMessageDeviceGuid]

Runs the NDIS test server.

[WTTRunWorkingDir]\ndistest\bin\ndtest.exe /auto /client /dvi /u /target:Miniport /tc:[queryTestDeviceID] /support:[SupportDeviceGuid0] /msg:[ClientMessageDeviceGuid] /script:{2c_Mini6RSSSendRecv.wsf}

Runs the NDIS test client.

 

Parameters

Parameter name Parameter description
queryTestDeviceID
SupportDeviceGuid0
ClientMessageDeviceGuid
ServerMessageDeviceGuid
TestScript comma separated list of test jobs to run
sleep.vbs