InfiniBand Test Specification
1.0.38
|
Inherits C09_027.
Public Member Functions | |
C09_027_08 () | |
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_08 | ( | ) |
9.5.0.1.8 V1C09-027 RC Atomic FetchAdd after Atomic FetchAdd
Assertions: V1c09-027#08
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 5 Atomic FetchADD Packets
For COUNTER = 1 to 5
End For Loop
Receive each RC_ATOMIC_ACK and verify the PSN and the original remote data
For COUNTER = 1 to 5
End For Loop
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