InfiniBand Test Specification  1.0.38
Public Member Functions | Protected Member Functions | List of all members
C09_142_01

Inherits TransportTest.

Public Member Functions

 C09_142_01 ()
 
boolean execute () throws TestException
 

Protected Member Functions

boolean initialize () throws TestException
 

Detailed Description

9.7.6.1.3 V1C09-142 Outstanding Request Timeout

Abstract: This test verifies that a DUT correctly utilizes the retry counter.

Coverage: v1c09-142, v1c09-143

Topology Configuration: SimpleLink: Tester=Transport Tester; Width=1X, 4X, or 12X; DUT=xCA

DUT Qualifiers:Must not support Automatic Path Migration.

Notes: None

Test Case Description

◆ C09_142_01()

9.7.6.1.3.4 V1C09-142 Outstanding Request Timeout

Assertions: V1c09-142#01, v1c09-143#01

Notes:

  • The DUT (as requester) will post a RC RDMA Read request but will not complete until the TT (as responder) returns an ACK covering all the request packets transmitted for that message. The TT will silently drop the RDMA Read request message.
  • Variable CC as structure of type ChannelContext_t
  • Variable READWQE as structure of type RcReadDut_t
  • Variables PACKET_IN, PACKET_OUT as structure of type PacketType_t
  • Variable COMPLETE as structure of type PollDut_t
  • Variable N of type Integer for loops

Developer: Llolsten Kaonga

Test Procedure

◆ initialize()

boolean initialize ( ) throws TestException
protected

Initialization:

  1. OpenRcChannel( CC ) // (reliable connection)

  2. Set QP Retry Count = 2. Setting it to the default (0) will result in a QP completion which we want to avoid.

  3. Set ACK Timeout to 18 (1.07 sec)

◆ execute()

boolean execute ( ) throws TestException

Test Procedure:

  1. Register memory region for receiving remote packets

  2. Post one receive request for each expected packet from DUT *RemarkThere is only one packet in this case

  3. Set the retry count to a non-zero value.

  4. Get the timeout value, T_tr, from the DUT

  5. Transmit 1 RC READ WQE from DUT at size (PMTU).

    • READWQE.MsgSize = CC.PMTU
    • READWQE.Count = 1
    • READWQE.R_KEY = 0x12345 // User specified R-Key
    • READWQE.VA = 0x999000 // User specified VA
    • PostRcRdmaWr( CC, READWQE )

  6. While retry count is not zero...

    1. Receive all expected packets

    2. Verify all packets were received and were valid

    3. Verify each message contained a single Read Request packet

    4. Silently drop the received packet – do not transmit a response to the DUT

    5. Sleep for about T_tr = 1.07 seconds

    6. Check the receive QP for a retry – there should hopefully be an RDMA Read request

    7. Verify that the retry count has been decremented

  7. End while retry count is not zero

  8. Verify that the DUT retried the RDMA Read request retry count times

  9. Verify that the DUT throws the IBV_WC_RETRY_EXEC_ERR (12) error

  10. Poll for completion of read request on DUT's send queue

  11. Verify exactly 1 work completion was dequeued from the send queue

  12. Verify that the status of the work completion indicates expected error status

  13. CloseRcChannel( CC )

    • Remark: Flush unacknowledged WQE.


The documentation for this class was generated from the following file: