InfiniBand Test Specification  1.0.38
Public Member Functions | Private Member Functions | List of all members
C14_023

Inherits MadTest.

Public Member Functions

boolean nvramNotUsed () throws TestException
 

Private Member Functions

boolean nvramUsed () throws TestException
 

Detailed Description

24.1.4.7 V1C14-023 M_KEY COMPONENTS IN NVRAM

NOTE: this test is in 2 parts, with and w/o nvram. w/o is implemented, need to first query portinfo to see if nvram is being used, then execute the appropriate test (that is what agilent does)

Abstract: Check that PortInfo:M_Key, PortInfo:M_KeyProtectBits, and Port-

Info:M_KeyLeasePeriod are properly initialized either from NVRAM (if used) or with default values. Also check that these PortInfo components are modified with a single SubnSet(PortInfo).

Coverage: v1c13-024,v1c14-022, v1c14-023

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

DUT Qualifiers: See Algorithm, depends on whether NVRAM initializes M_Key Components.

Notes: 1. SMP_DATA is a variable of type MadPacketSpec.

Test Procedure

◆ nvramNotUsed()

boolean nvramNotUsed ( ) throws TestException

14.1.4.7.1 M_KEY COMPONENT INITIALIZATION WHEN NVRAM IS NOT USED

Assertions: v1c14-023#01, v1c14-022#01

DUT Qualifiers: NVRAM not used

Notes:

  1. NVRAM not used for initializing PortInfo:M_Key, PortInfo:M_KeyProtectBits, and PortInfo:M_KeyLeasePeriod.

Initialization:

  1. DUT PortInfo:PortState = Initialize, Armed, or Active for both MADTester and DUT.

  2. Bring port state to active.

Test Procedure:

  1. SendDirectedRoutMad( SubnGet(PortInfo) )

  2. SMP_DATA = ReceiveMad( SubnGetResp(PortInfo) )

  3. Verify SMP_DATA format:

    • PortInfo:M_Key == 0 // v1c14-023#01
    • PortInfo:M_KeyProtectBits == 0 // v1c14-023#01
    • PortInfo:M_KeyLeasePeriod == 0 // v1c14-023#01
    • PortInfo:CapabilityMask:IsMKeyNVRAM == 0

  4. SendMad( SubnSet(PortInfo, where PortInfo:M_Key, PortInfo:M_KeyProtectBits, and Port-Info:M_KeyLeasePeriod are non-zero ) )

  5. SMP_DATA = ReceiveMad( SubnGetResp(PortInfo) )

  6. Verify SMP_DATA format:

    • PortInfo:M_Key, PortInfo:M_KeyProtectBits, and Port-Info:M_KeyLeasePeriod are non-zero and have the same values specified in Step 6. // v1c14-022#01

  7. Verify SMP_DATA format:

    • PortInfo:IB_MAD_STATUS_F == 0
    • PortInfo:M_Key == MKey specified
    • PortInfo:M_KeyProtectBits == 1
    • PortInfo:M_KeyLeasePeriod == 0x1234

  8. Power on or reset DUT.

  9. Wait for DUT PortInfo:PortState = Initialize.

  10. SendDirectedRoutMad( SubnGet(PortInfo) )

  11. SMP_DATA = ReceiveMad( SubnGetResp(PortInfo) )

  12. Verify SMP_DATA format:

    • PortInfo:M_Key == 0 // v1c14-023#01
    • PortInfo:M_KeyProtectBits == 0 // v1c14-023#01
    • PortInfo:M_KeyLeasePeriod == 0 // v1c14-023#01

  13. Reset M_Key values back to there original values

◆ nvramUsed()

boolean nvramUsed ( ) throws TestException
private

14.1.4.7.2 M_KEY COMPONENT INITIALIZATION WHEN NVRAM IS USED

Assertions: v1c13-024#01 (cont), v1c14-023#02, v1c14-022#01

DUT Qualifiers: NVRAM used

Notes:

  1. NVRAM is used for initializing DUT PortInfo:M_Key.
  2. NVRAM_MKEY is a variable whose value is the DUT PortInfo:M_Key value stored in NVRAM.
  3. NVRAM_MKEY_PROTECTBITS is a variable whose value is the DUT PortInfo:M_KeyProtectBits value stored in NVRAM.
  4. NVRAM_MKEY_LEASEPERIOD is a variable whose value is the DUT PortInfo:M_KeyLeasePeriod value stored in NVRAM.

Initialization:

  1. DUT PortInfo:PortState = Initialize, Armed, or Active for both MADTester and DUT.

Test Procedure:

  1. SendDirectedRouteMad( SubnGet(PortInfo) whereMADHeader:M_Key=NVRAM_MKEY )

  2. SMP_DATA = ReceiveMad( SubnGetResp(PortInfo) )

  3. VerifyMad( SMP_DATA, MADHeader:Status == 0 ) // v1c13-024#01 (cont)

  4. SendMad( SubnSet(PortInfo, where PortInfo:M_Key, PortInfo:M_KeyProtectBits, and PortInfo:M_KeyLeasePeriod are non-zero) where MAD- Header:M_Key=NVRAM_MKEY )

  5. SMP_DATA = ReceiveMad( SubnGetResp(PortInfo) )

  6. Verify SMP_DATA format:

    • PortInfo:M_Key, PortInfo:M_KeyProtectBits, and PortInfo:M_KeyLeasePeriod are non-zero and have the same values specified in Step 6. // v1c14-022#01
    • PortInfo:CapabilityMask:IsMKeyNVRAM == 1

  7. NVRAM_MKEY = SMP_DATA.PortInfo:M_Key

  8. NVRAM_MKEY_PROTECTBITS = SMP_Data.PortInfo:M_KeyProtectBits

  9. NVRAM_MKEY_LEASEPERIOD = SMP_Data.PortInfo:M_KeyLeasePeriod

  10. Power on or reset DUT.

  11. Wait for DUT PortInfo:PortState = Initialize.

  12. SendDirectedRouteMad( SubnGet(PortInfo) where MADHeader:M_Key=NVRAM_MKEY )

  13. SMP_DATA = ReceiveMad( SubnGetResp(PortInfo) )

  14. Verify SMP_DATA format:

    • PortInfo:M_Key == NVRAM_MKEY // v1c14-023#02
    • PortInfo:M_KeyProtectBits == NVRAM_MKEY_PROTECTBITS //v1c14-023#02
    • PortInfo:M_KeyLeasePeriod == NVRAM_MKEY_LEASEPERIOD //v1c14-023#02

  15. Reset M_Key values back to there original values


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