Share via


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

Associated requirements

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

See the device hardware requirements.

Platforms

Windows 8 (x64) Windows Server 2012 (x64) Windows 8.1 x64 Windows Server 2012 R2

Expected run time

~120 minutes

Categories

Certification Functional

Type

Automated

 

Running the test

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

Troubleshooting

For troubleshooting information, see Troubleshooting LAN Testing.

More information

Parameters

Parameter Description

queryTestDeviceID

The ID of the test device.

Example: //Devnode/DeviceID

SupportDeviceGuid0

The support device GUID.

ClientMessageDeviceGuid

The client message device GUID.

ServerMessageDeviceGuid

The server message device GUID.

 

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.

 

 

 

Send comments about this topic to Microsoft