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

14.1.4 MANAGEMENT KEY More...

Inherits MadTest.

Protected Member Functions

boolean initialize () throws TestException
 

Private Member Functions

void NoMKEYSubNGet () throws TestException
 
void NoMKEYSubnSet () throws TestException
 
void NoMKEYSubnTrap ()
 

Detailed Description

14.1.4 MANAGEMENT KEY

14.1.4.1 V1C14-015 NO M_KEY CHECKING

Abstract: Check that M_Key checking is not performed when PortInfo:M_Key is zero at a receiving port.

Coverage: v1c14-015, v1c14-025, v1c14-028

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, unless specified in algorithm section.

Notes: None.

14.1.4.1.1 NO M_KEY CHECKING FOR SUBNGET()

14.1.4.1.2 NO M_KEY CHECKING FOR SUBNSET()

14.1.4.1.3 NO M_KEY CHECKING FOR SUBNTRAPREPRESS()

Test Procedure

◆ initialize()

boolean initialize ( ) throws TestException
protected

Initialization:

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

  2. DUT PortInfo:M_KeyProtectBits = 2 or 3 (most restrictive level of M_Key checking).

  3. DUT PortInfo:M_Key = 0.

◆ NoMKEYSubNGet()

void NoMKEYSubNGet ( ) throws TestException
private

14.1.4.1.1 NO M_KEY CHECKING FOR SUBNGET()

Assertions: v1c14-015#01, v1c14-028#01

Initialization:

Test Procedure:

  1. SendMad( SubnGet(NodeInfo) where MADHeader:M_Key=non-zero value )

  2. ReceiveMad( SubnGetResp(NodeInfo) ) // v1c14-015#01, v1c14-028#01

    Remark: If the SubnGetResp() is not received (e.g., a timeout occurs based on the rules of Volume 1 Section 13.4.6.2 Timers and Timeouts), the failure may have occurred due to an erroneous M_Key check failure. Options for identifying M_Key check failures include Trap 256 (if it is implemented) or the PortInfo:M_KeyViolations counter for the DUT (which should be examined before and after the previous step).

  3. SendMad(SubnGet(SMI_Attribute.PortInfo))

  4. SMP_DATA = ReceiveMad()

  5. Verify IB_PORT_MKEY_VIOL == 0

◆ NoMKEYSubnSet()

void NoMKEYSubnSet ( ) throws TestException
private

14.1.4.1.2 NO M_KEY CHECKING FOR SUBNSET()

Assertions: v1c14-015#02, v1c14-025#01, v1c14-028#02

Notes:

  1. SMP_DATA is a variable of type MadPacketSpec.

Initialization:

Test Procedure:

  1. SendMad( SubnGet(PortInfo) )

  2. SMP_DATA = ReceiveMad( SubnGetResp(PortInfo) )

  3. Modify a Read-Write component of SMP_DATA.PortInfo with a valid value.

  4. SendMad( SubnSet(PortInfo) where MADHeader:M_Key=non-zero value, MADHeader:SMPData=SMP_DATA.PortInfo )

  5. SMP_DATA = ReceiveMad( SubnGetResp(PortInfo) ) // v1c14-015#02, v1c14-028#02

    Remark: If the SubnGetResp() is not received (e.g., a timeout occurs based on the rules of Volume 1 Section 13.4.6.2 Timers and Timeouts), the failure may have occurred due to an erroneous M_Key check failure. Options for identifying M_Key check failures include Trap 256 (if it is implemented) or the PortInfo:M_KeyViolations counter for the DUT (which should be examined before and after the previous step).

  6. Verify( SMP_DATA.PortInfo is the same as the modified value in Step 3 ) //v1c14-025#01

  7. SendMad(SubnGet(SMI_Attribute.PortInfo))

  8. SMP_DATA = ReceiveMad()

  9. Verify IB_PORT_MKEY_VIOL == 0

  10. Restore original LID on the DUT.

◆ NoMKEYSubnTrap()

void NoMKEYSubnTrap ( )
private

14.1.4.1.3 NO M_KEY CHECKING FOR SUBNTRAPREPRESS() Assertions: v1c14-015#03

DUT Qualifiers: Trap.

Notes:

  1. SMP_DATA is a variable of type MadPacketSpec.
  2. SMP_DATA_DUT is a variable of type MadPacketSpec.
  3. TRANS_ID is a 64-bit MAD TransactionID value.

Tester Procedure:

  1. SMP_DATA = ReceiveMad( SubnTrap(Notice) )
  2. SendMad( SubnTrapRepress(Notice) where MADHeader:M_Key=non-zero value, MADHeader:TransactionID=SMP_Data.MADHeader:TransactionID, MADHeader:SMPData=SMP_DATA.Notice )
  3. VerifyNoReceiveMad( SubnTrap(Notice) ) // after appropriate timeout v1c14-015#03

    Remark: No M_Key check failure should occur when the SubnTrapRe- press() is received by the DUT. Options for identifying M_Key check failures include Trap 256 (if it is implemented) or the PortInfo:M_KeyViolations counter for the DUT (which should be examined before and after the previous step).

Test Agent Procedure:

  1. SendMad( SubnTrap(Notice) where MADHeader:TransactionID = TRANS_ID )
  2. SMP_DATA_DUT = ReceiveMad ( SubnTrapRepress(Notice) )
  3. Verify ( SMP_DATA_DUT, MADHeader:TransactionID==TRANS_ID )

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