none
NDIS 6.5 Offload checksum failure RRS feed

  • Question

    1. Test Name : Offload Checksum
    2. Weworking on NDIS miniport driver for a 10G adapter which is causing an issue in receive path. Details mentioned as following.

      TCPRxChecksum Offload is enabled for the 10G adapter. OffloadChecksum HCK test is run which is throwing following errors.

      1)For non fragmentd packet: Tcp Module expected to get 30 packets, but only accepted 0;The miniport is expected to report 30 packets with correct checksum, but only gets 0;

      2)For fragmentd packet: Tcp Module expected to get 30 packets, but only accepted 0;Tcp module expects to receive 30 packets with no offload indications, but it gets 0

      I am doing the following in the miniport driver during the receive path of a packet.

      Driver is indicating the following status to NDIS.
      1)With in OOB data, fields inside NDIS_TCP_IP_CHECKSUM_NET_BUFFER_LIST_INFO  structure are filled appropriately.
      2)In NetBufferList status, NDIS_STATUS_SUCCESS is indicated always.
      We have checked that the packets , checksums are fine in the transmit and receive side. However, NDIS does not seem to accept that the packets have valid checksum and very puzzling.

      Inspite of doing this, HCK is throwing errors. What is that NDIS is expecting in the above two cases for the HCK to pass.

      Extraction of Offload checksum.htm below:

    0001 StartTime: 02:48:48.497
    Checksum offload - Test Tcp receive checksum offload with Ipv4 ( Tcp checksum recv offload: On/Tcp Option: Off/Ipv4 Option: Off). Packet count: 30; Packet header size: 54; Packet total size 784
    Duration: 00:00:00:01.700

    1879353300 StartTime: 02:48:50.197
    Verify Checksum Offload Capability for test case variation
    Duration: 00:00:00:00.00

    1686721318 StartTime: 02:48:50.197
    Prepare TestCase for NetBuffer Module Send/Recv Configuration
    Duration: 00:00:00:00.15

    10001 StartTime: 02:48:50.213
    Checksum offload - Test Tcp receive checksum offload with Ipv4 ( Tcp checksum recv offload: On/Tcp Option: Off/Ipv4 Option: Off). Packet count: 30; Packet header size: 54; Packet total size 1514
    CommunicationHelper::StartReceive 
    - Name:                   TestDeviceSimpleCommHelper
    - Type:                   SimpleCommunicationHelper
    - Traffic Manager Type:   NDT_SIMPLE_TRAFFIC_MGR
    - Receive Process Mech:   NDT_PROCESS_RECEIVE_AT_PASSIVE
    - Configured NetBufferModuleStack:
    - [1] NDT_STRESS_PAYLOAD_MODULE
    - [2] NDT_TCP_OFFLOAD_MODULE
    - [3] NDT_IPV4_HEADER_MODULE
    - [4] NDT_ETHERNET_MEDIA_HEADER_MODULE
    - STATUS:                 NDIS_STATUS_SUCCESS

    CommunicationHelper::StartSend 
    - Name:                   SuppDeviceSimpleCommHelper
    - Type:                   SimpleCommunicationHelper
    - Traffic Manager Type:   NDT_SIMPLE_TRAFFIC_MGR
    - Send Mechanism:         NDT_SEND_AT_PASSIVE
    - Send Complete Mech:     NDT_VERIFY_SEND_COMPLETE_AT_PASSIVE
    - NDIS Send Flags:        0
    - Send Latency (ms):      0
    - Preallocated NBL Count: 1
    - Configured NetBufferModuleStack:
    - [1] NDT_STRESS_PAYLOAD_MODULE
    - [2] NDT_TCP_OFFLOAD_MODULE
    - [3] NDT_IPV4_HEADER_MODULE
    - [4] NDT_ETHERNET_MEDIA_HEADER_MODULE
    - STATUS:                 NDIS_STATUS_SUCCESS

    EndPoint::WaitForSendsToComplete 
    - Name:           SuppDeviceSimpleCommHelper_EndPoint
    - Timeout (ms):   300000
     
    EndPoint::StopReceive 
    - Name:           TestDeviceSimpleCommHelper_EndPoint
    - Timeout (ms):   5000
     
    EndPoint::GetSendResults 
    - Name:   SuppDeviceSimpleCommHelper_EndPoint 
    EndPoint::GetReceiveResults 
    - Name:   TestDeviceSimpleCommHelper_EndPoint 
    EndPoint::GetSendResults 
    - Name:   SuppDeviceSimpleCommHelper_EndPoint 

    Test Tcp receive checksum offload with Ipv4
    Tcp Checksum Offload Enabled Tcp Option Ip Option StressPayload Test Conclusion StressPayload Test Explanation Tcp Send Packet Number Tcp Recv Packet Number Accepted Checksum Recv Offload Packet Number Tcp Offload Test Conclusion Tcp Offload Test Explanation
    Yes No No Passed N/A 30 30 0 Failed Tcp Module expected to get 30 packets, but only accepted 0;The miniport is expected to report 30 packets with correct checksum, but only gets 0;

    50019 Test case failed. For detailed information, please see the above log table 
    Possible failure reason 



    Thursday, April 23, 2015 6:13 PM