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

Inherits MadTest.

Public Member Functions

 C14_024_05 ()
 
boolean execute () throws TestException
 

Protected Member Functions

boolean initialize () throws TestException
 

Detailed Description

24.1.5.3 V1C14-024.1.1 SUBNET MANAGEMENT ATTRIBUTE - GUIDINFO

Abstract: This test performs checks of GUIDInfo attribute and components. Included are tests for both Read-Only (RO) and Read-Write (RW) attribute components.

Coverage: v1c13-024,v1c14-024.1.1, v1c14-027, v1c14-030

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:

  1. Additional checking of method/attribute combinations is performed in tests for v1c14-003.

Test Case Description

◆ C14_024_05()

24.1.5.3.1 GUIDINFO Assertions: v1c13-024#01 (cont), v1c13-024#07, v1c14-024.1.1#05.01, v1c14- 024.1.1#05.02, v1c14-024.1.1#05.03, v1c14-027#01, v1c14-030#01

Notes:

  1. The test is executed only for CA, Router and switch management port ( Base or Enhanced ) since GUIDInfo is not valid for switch external ports.
  2. Variable RO_GUIDINFO_ELEMENT of type Integer , holds Port GUIDInfo first element which is read only element.
  3. Variable DUT_GUID_CAP of type Integer , holds Port:PortInfo:GUIDCap field .
  4. Variable DUT_NODE_PORT_GUID of type Integer , holds NodeInfo:Port- GUID field.
  5. SMP_DATA, SMP_DATA_1 are variables of type MadPacketSpec

Test Procedure

◆ initialize()

boolean initialize ( ) throws TestException
protected

Initialization:

  1. PortInfo:PortState is Initialized, Armed or Active for both MADTester and DUT.

◆ execute()

boolean execute ( ) throws TestException

Test Procedure:

  1. SendMad (SubnGet(PortInfo))

  2. DUT_GUID_CAP = ReceiveMad (SubnGetResp(PortInfo:GUIDCap)) v1c14-024.1.1#05.01

  3. SendMad (SubnGet(NodeInfo))

  4. SMP_DATA = ReceiveMad ( SubnGetResp(NodeInfo))

  5. DUT_NODE_PORT_GUID = SMP_DATA:PortGUID // v1c14-001#01

  6. SendMad (SubnGet(GUIDInfo where MADHeader:AttributeModifier = 0x0))

  7. SMP_DATA = ReceiveMad ( SubnGetResp(GUIDInfo) ) // v1c14-030#01

  8. RO_GUIDINFO_ELEMENT = SMP_DATA.GUIDInfo[63:0]

  9. Verify SMP_DATA format: // v1c14-024.1.1#05.02

    • MADHeader:AttributeID == GUIDInfo // v1c14-024.1.1#05.01
    • MADHeader:AttributeModifier == 0x0
    • RO_GUIDINFO_ELEMENT == DUT_NODE_PORT_GUID

  10. Tester Procedure steps 11 to 29 should be repeated for all Attribute Modifier values within the range of : 0 to 31.

    1. SendMad (SubnGet(GUIDInfo where MADHeader:AttributeModifier as specified))

    2. SMP_DATA = ReceiveMad ( SubnGetResp(GUIDInfo)) // v1c14-030#01, v1c14-024.1.1#05.02

    3. SMP_DATA_1.GUIDInfo = (NOT SMP_DATA.GUIDInfo)

    4. SendMad (SubnSet(GUIDInfo where MADHeader:AttributeModifier as specified, where GUIDInfo = SMP_DATA_1.GUIDInfo))

    5. SMP_DATA = ReceiveMad ( SubnGetResp(GUIDInfo))

    6. Verify SMP_DATA format: // v1c14-024.1.1#05.03

      • MADHeader:AttributeID == GUIDInfo // v1c14-024.1.1#05.01
      • MADHeader:AttributeModifier == as specified
      • MADHeader::MadStatus == 0 if success, 7 if invalid attribute modifier

    7. If ATTR_MOD is less than the number of GUID entries

      1. If ATTR_MOD == 0

      2. Else

      3. End If

      4. Verify all GUIDs in this block will contain the value sent in the SUbnSet above

    8. When ATTR_MOD points to the block that has the end of the table, then entries above the GUIDCap must be read back as 0. Entries below the GUIDCap will contain the value sent in the SubnSet

    9. SendMad (SubnGet(GUIDInfo where MADHeader:AttributeModifier as specified))

    10. SMP_DATA = ReceiveMad ( SubnGetResp(GUIDInfo) ) // v1c14-030#01

    11. Verify SMP_DATA format: // v1c14-024.1.1#05.02

      • MADHeader:AttributeID == GUIDInfo // v1c14-024.1.1#05.01
      • MADHeader:AttributeModifier == as specified

    12. When ATTR_MOD is greater than the number of entries supported (as indicated by GUIDCap), then we are beyond the GUIDInfo table and all entries are read back as zero

    13. Verify MADHeader::MadStatus == 7

    14. When ATTR_MOD is less than the number of GUID entries, then all GUIDs in this block will contain the value sent in the SUbnSet above

    15. Verify MADHeader::MadStatus == 0

    16. If Attribute Modifier == 0 MADHeader:MADData bits 63:0 of GUIDInfo must equal RO_GUIDINFO_ELEMENT // v1c14-027#01

    17. When ATTR_MOD points to the block that has the end of the table, then entries above the GUIDCap must be read back as 0. Entries below the GUIDCap will contain the value sent in the SubnSet

    18. Verify MADHeader::MadStatus == 0


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