|
InfiniBand Test Specification
1.0.38
|
Inherits C09_027.
Public Member Functions | |
| C09_027_05 () | |
| boolean | execute () throws TestException |
Protected Member Functions | |
| boolean | initialize () throws TestException |
| BigInteger | sendFetch (final long psn) throws TestException |
| void | sendReadRequests (final long psn) throws TestException |
9.5.0.1 V1C09-027 RELIABLE SERVICE TRANSACTION ORDERING
Abstract: This test verifies the ordering rules for Reliable Service requests from an HCA.
Coverage: v1c09-027
Topology Configuration: SimpleLink: Tester=Transport Tester; Width=1X, 4X, or 12X; DUT=xCA DUT Qualifiers: All HCAs must support RDMA operations in addition to Send and Receive functionality. Atomic operations are optional. However, if the HCA supports Atomic operations, it must fully support all of the related compliance items. Notes: For reliable services on an HCA, all acknowledge packets shall be strongly ordered, e.g. all previous RDMA Read responses and all Atomic responses shall be injected into the fabric before subsequent RDMA Send, RDMA Write responses, RDMA Read responses and Atomic operation responses. The first five parts of this test send a series of RDMA Read requests followed by an RDMA Send Only, and RDMA Write Only or an Atomic request to verify that the responses are returned in strict order. The final parts begin with Atomic operations which are then followed by other types to ensure ordering. The test implementer may choose to verify that the Atomic operations are performed correctly. However, the essence of this test is to verify that all acknowledge packets are strongly ordered, i.e. to verify the expected PSN.
| C09_027_05 | ( | ) |
9.5.0.1.5 V1C09-027 RC Atomic CompSwap after RDMA Read
Assertions: V1c09-027#05
Notes:
Developer: Llolsten Kaonga
| boolean execute | ( | ) | throws TestException |
Test Procedure:
Register memory region for receiving remote packets
Post one receive request for each expected packet from DUT
Transmit Atomic Fetch Add Packet with AckReq set in order to retrieve the original data for use in CMPSWAP
Transmit 1 RDMA Read Request WQE from TT at size (5 * PMTU). The response message from DUT will contain 5 packets.
Transmit Atomic Compare and Swap Packet
Wait for RDMA Read data, RDMA Read data Only, RDMA Write Only ACK
Receive first packet
For COUNTER = 2; COUNTER < 5; COUNTER++
END Loop
Receive next packet
Receive next packet
Receive next packet
Transmit another RC_FETCHADD request packet with AckReq set in order to retrieve the updated data for verification
see Send Fetch/Add for retrieving remote data
CloseRcChannel( CC )
|
protectedinherited |
Initialization:
OpenRcChannel( CC ) // (reliable connection)
|
protectedinherited |
Send Fetch/Add for retrieving remote data
Receive Atomic FetchAdd ACK packet
|
protectedinherited |
Send Read Requests
Transmit 1 RDMA Read Request WQE from TT at size (5 * PMTU). The response message from DUT will contain 5 packets.
Transmit RDMA Read Request Packet
Transmit a second RDMA Read Request Packet of size PMTU