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

Inherits MadTest.

Public Member Functions

 C14_024_06_SW_07 ()
 
boolean execute () throws TestException
 

Protected Member Functions

boolean initialize () throws TestException
 

Detailed Description

24.1.5.17.7 PORTINFO FOR SWITCH ONLY - PART 7

24.1.5.17 V1C14-024.1.1 SUBNET MANAGEMENT ATTRIBUTE - PORTINFO FOR SWITCH ONLY

Abstract: This test performs checks of PortInfo attribute and components for the Switch only. 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=Switch.

DUT Qualifiers: None, unless specified in algorithm section.

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

Test Case Description

◆ C14_024_06_SW_07()

24.1.5.17.7 PORTINFO FOR SWITCH ONLY - PART 7

Assertions: v1c13-024#01, v1c14-024.1.1#06.01, v1c14-024.1.1#06.02, v1c14-024.1.1#06.04, v1c14-024.1.1#06.09, v1c14-030#01

Notes:

  1. This part of the test is taken for Switch External ports Only.
  2. This TD tests the RW fields which had special operation with specific values (legal values).
  3. Repeat all steps with Attribute Modifier larger than 0 ( Attribute Modifier should not be equal to 0 ) and smaller than/equal to number of device ports ( as noted in NodeInfo:NumPorts).
  4. Variable PORT_INFO_DATA and PORT_INFO_DATA1 as Structures of PortInfo Attribute structure which contains all fields as Integers.
  5. Variable SMP_DATA of type MadPacketSpec

Developer: Kevin King

Test Procedure

◆ initialize()

boolean initialize ( ) throws TestException
protected

Initialization:

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

  2. DUT PortInfo:M_Key = 0 on all ports.
  3. DUT PortInfo:M_KeyProtectBits = 0 on all ports.

◆ execute()

boolean execute ( ) throws TestException

Tester Procedure:

  1. SendMad (SubnGet(PortInfo))

  2. PORT_INFO_DATA = ReceiveMad (SubnGetResp(PortInfo):MADHeader:MADData)\// v1c14-024.1.1#06.02, v1c14-030#01

  3. PORT_INFO_DATA1 = PORT_INFO_DATA

    • Remark: Change RW fields of PORT_INFO_DATA1 which have special cases in PortInfo.
    • PORT_INFO_DATA1.LinkWidthEnabled = 0
    • PORT_INFO_DATA1.PortState = 0
    • PORT_INFO_DATA1.PortPhysicalState = 0
    • PORT_INFO_DATA1.LinkDownDefaultState = 0
    • PORT_INFO_DATA1.LinkSpeedEnabled = 0
    • PORT_INFO_DATA1.OperationalVLs = 0

  4. SendMad (SubnSet(PortInfo where MADHeader:AttributeModifier = as specified, where MADHeader:MADData = PORT_INFO_DATA1))

    • Remark: Test RW fields of PortInfo - Previous values should not be changed.

  5. SMP_DATA = ReceiveMad (SubnGetResp(PortInfo))

  6. Verify SMP_DATA format: \// v1c14-024.1.1#06.01, v1c14-024.1.1#06.04, v1c14-030#01

    • MADHeader:AttributeID == PortInfo
    • MADHeader:AttributeModifier == as specified
    • MADHeader:Status.Code == 0. \// v1c13-024#01
    • SMP_DATA:MADHeader:SMPData == PORT_INFO_DATA \// v1c14-024.1.1#06.04

  7. PORT_INFO_DATA1 = PORT_INFO_DATA

    • Remark: Change RW fields of PORT_INFO_DATA1 which have special cases in PortInfo.
    • PORT_INFO_DATA1.LinkWidthEnabled = 255
    • PORT_INFO_DATA1.LinkSpeedEnabled = 15
    • Remark: These values in these specific fields should be returned with the Supported values of the same items.

  8. SendMad (SubnSet(PortInfo where MADHeader:AttributeModifier = as specified, where MADHeader:MADData = PORT_INFO_DATA1))

  9. SMP_DATA = ReceiveMad (SubnGetResp(PortInfo))

  10. Verify SMP_DATA format: \// v1c14-024.1.1#06.01, v1c14-024.1.1#06.04, v1c14-030#01

    • MADHeader:AttributeID == PortInfo
    • MADHeader:AttributeModifier == as specified
    • MADHeader:Status.Code == 0. \// v1c13-024#01 (cont)
    • SMP_DATA:MADHeader:SMPData.LinkWidthEnabled == SMP_DATA:MADHeader:SMPData.LinkWidthSupported \// v1c14-024.1.1#06.04
    • SMP_DATA:MADHeader:SMPData.LinkSpeedEnabled == SMP_DATA:MADHeader:SMPData.LinkSpeedSupported \// v1c14-024.1.1#06.04

  11. Reset all values to there initial values as they where in PORT_INFO_DATA

  12. PORT_INFO_DATA1 = PORT_INFO_DATA

    • Remark: Change RW fields of PORT_INFO_DATA1 which have special cases in PortInfo - testing Physical link to Disable state - this action might result with DUT response or without it - both ways are legal.
    • PORT_INFO_DATA1.PortPhysicalState = 3

  13. SendMad (SubnSet(PortInfo where MADHeader:AttributeModifier = as specified, where MADHeader:MADData = PORT_INFO_DATA1))

    Remark: Ignore response to the MAD if was sent by the DUT , connect to another port on the Switch and since all M_Key checks are disabled it is passable to get the tested port state.

  14. Connect to anther port on the Node.

  15. SendMad (SubnGet(PortInfo where MADHeader:AttributeModifier = this test local port )

  16. SMP_DATA = ReceiveMad (SubnGetResp(PortInfo))

    • Verify SMP_DATA:MADHeader:SMPData.PortPhysicalState == 3.

  17. SendMad (SubnSet(PortInfo where MADHeader:AttributeModifier = this test local port , where MADHeader:MADData.PortPhysicalState = 1 or 2)

    Remark: Change Port Physical state to polling or sleeping shall result in changing the Physical state of the port.

  18. SMP_DATA = ReceiveMad (SubnGetResp(PortInfo))

    • Verify SMP_DATA:MADHeader:SMPData.Status.Code == 0 \// v1c13-024#01

  19. SendMad (SubnGet(PortInfo where MADHeader:AttributeModifier = this test local port )

  20. SMP_DATA = ReceiveMad (SubnGetResp(PortInfo))

    • Verify SMP_DATA:MADHeader:SMPData.PortPhysicalState != 3. \// v1c14-024.1.1#06.09


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