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 |
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. |