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

Inherits TransportTest.

Inherited by C09_027_01, C09_027_02, C09_027_03, C09_027_04, C09_027_05, C09_027_06, C09_027_07, C09_027_08, C09_027_09, C09_027_10, C09_027_11, C09_027_12, and C09_027_13.

Protected Member Functions

TsonTestInfo setupTestInfo () throws TestException
 
boolean initialize () throws TestException
 
BigInteger sendFetch (final long psn) throws TestException
 
void sendReadRequests (final long psn) throws TestException
 

Detailed Description

9.5.0.1 V1C09-027 RELIABLE SERVICE TRANSACTION ORDERING

This is a base class for C09_027 tests.

Test Procedure

◆ setupTestInfo()

TsonTestInfo setupTestInfo ( ) throws TestException
protected
  1. Set QP ACK timeout = 0 (infinite)

◆ initialize()

boolean initialize ( ) throws TestException
protected

Initialization:

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

◆ sendFetch()

BigInteger sendFetch ( final long  psn) throws TestException
protected

Send Fetch/Add for retrieving remote data

  • PACKET_OUT.HeaderMask = LOCAL | FETCH_ADD
  • PACKET_OUT.BTH_OpCode = ATOMIC_FETCH_ADD
  • CC.TT_TxReqPSN = Mod( CC.Start_PSN, 2^24)
  • PACKET_OUT.BTH_AckReq = 1
  • PACKET_OUT.Atomic_vaddr = DUT buffer address
  • PACKET_OUT.Atomic_rkey = DUT rkey
  • PACKET_OUT.Atomic_SWAP_ADD = 0
  • TransportTxPacket( CC, PACKET_OUT )

Receive Atomic FetchAdd ACK packet

  • PACKET_IN.BTH_OpCode = RC_ATOMIC_ACK
  • CC.TT_RxReqPSN = Mod( CC.Start_PSN, 2^24)
  • PACKET_IN.AETH_Syndrome = ACK
  • TransportRxPacket( CC, PACKET_IN)
  • Verify ( PACKET_IN.AETH_Syndrome & ACK_MASK == ACK )
  • COMPARE = PACKET_IN.AtomicAck_ETH_OrigRemDt

◆ sendReadRequests()

void sendReadRequests ( final long  psn) throws TestException
protected

Send Read Requests

  1. Transmit 1 RDMA Read Request WQE from TT at size (5 * PMTU). The response message from DUT will contain 5 packets.

  2. Transmit RDMA Read Request Packet

    • PACKET_OUT.HeaderMask = LOCAL | RDMA_READ_REQ
    • PACKET_OUT.BTH_OpCode = RDMA_READ_REQ
    • CC.TT_TxReqPSN = Mod( CC.Start_PSN + 0, 2^24)
    • PACKET_OUT.BTH_AckReq = 1
    • PACKET_OUT.RETH_vaddr = DUT buffer address
    • PACKET_OUT.RETH_rkey = DUT rkey
    • PACKET_OUT.RETH_dmaLength = PMTU * 5
    • TransportTxPacket( CC, PACKET_OUT )

  3. Transmit a second RDMA Read Request Packet of size PMTU

    • PACKET_OUT.HeaderMask = LOCAL | RDMA_READ_REQ
    • PACKET_OUT.BTH_OpCode = RDMA_READ_REQ
    • CC.TT_TxReqPSN = Mod( CC.Start_PSN + 5, 2^24)
    • PACKET_OUT.BTH_AckReq = 1
    • PACKET_OUT.RETH_vaddr = DUT buffer address
    • PACKET_OUT.RETH_rkey = DUT rkey
    • PACKET_OUT.RETH_dmaLength = PMTU * 1
    • TransportTxPacket( CC, PACKET_OUT )


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