InfiniBand Test Specification: C14_018
InfiniBand Test Specification  1.0.38
Protected Member Functions | Private Member Functions | List of all members
C14_018

Inherits MadTest.

Protected Member Functions

boolean initialize () throws TestException
 

Private Member Functions

void C14_018_01 () throws TestException
 24.1.4.6.1 M_KEYVIOLATIONS COUNTER INCREMENTATION More...
 
void C14_018_02 () throws TestException
 

Detailed Description

24.1.4.6 V1C14-018 M_KEYVIOLATIONS COUNTER

Abstract: Check that PortInfo:M_KeyViolations counter properly counts whenever M_Key checking fails.

Coverage: v1c14-018

Topology Configuration: SimpleLink: Tester=MAD Tester; Width=1X, 2X, 4X, 8X, or 12X; Speed=SDR, DDR, QDR, FDR, EDR, HDR; DUT=Node.

DUT Qualifiers: None.

Notes:

  1. M_KEY_DUT is a 64-bit (8-byte) variable whose value is non-zero. This value is used in initializing the DUT PortInfo:M_Key.
  2. M_KEY_OTHER is a 64-bit (8-byte) variable whose value is non-zero and is not the same as M_KEY_DUT.
  3. SMP_DATA is a variable of type MadPacketSpec.

Test Procedure

◆ initialize()

boolean initialize ( ) throws TestException
protected

Initialization:

  1. DUT PortInfo:PortState = Initialize, Armed, or Active.

  2. DUT PortInfo:M_Key = M_KEY_DUT.

  3. DUT PortInfo:M_KeyProtectBits = 2 or 3

  4. DUT PortInfo:M_KeyViolations= 0x0000.

◆ C14_018_01()

void C14_018_01 ( ) throws TestException
private

24.1.4.6.1 M_KEYVIOLATIONS COUNTER INCREMENTATION

Initialization: see Initialization

Test Procedure:

  1. SendMad( SubnGet(NodeInfo) where MADHeader:M_Key=M_KEY_OTHER )

    • Remark: Should result in an M_Key check failure.

  2. VerifyNoReceiveMad( SubnGetResp(NodeInfo) ) // after appropriate timeout

  3. SendMad( SubnGet(PortInfo) where MADHeader:M_Key=M_KEY_DUT )

  4. SMP_DATA = ReceiveMad( SubnGetResp(PortInfo) )

  5. Verify SMP_DATA format:

    • PortInfo:M_KeyViolations == 1 // v1c14-018#01

  6. Reset MKey = 0; ProtectBits = 0 and MKeyViolations = 0"

◆ C14_018_02()

void C14_018_02 ( ) throws TestException
private

Initialization: see Initialization

Test Procedure:

  1. Repeat 50 times:

    1. SendMad( SubnGet(NodeInfo) where MADHeader:M_Key=M_KEY_OTHER )

      • Remark: Should result in an M_Key check failure.

    2. VerifyNoReceiveMad( SubnGetResp(NodeInfo) ) // after appropriate timeout

  2. SendMad( SubnGet(PortInfo) where MADHeader:M_Key=M_KEY_DUT )

  3. SMP_DATA = ReceiveMad( SubnGetResp(PortInfo) )

  4. Verify SMP_DATA format:

    • PortInfo:M_KeyViolations == 0xFFFF // v1c14-018#02

  5. Reset MKey = 0; ProtectBits = 0 and MKeyViolations = 0"


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