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

Inherits MadTest.

Public Member Functions

 C14_024_06_CA_02 ()
 
boolean execute () throws TestException
 

Protected Member Functions

boolean initialize () throws TestException
 

Detailed Description

24.1.5.4.2 PORTINFO FOR XCA AND ROUTER ONLY - PART 2

24.1.5.4 V1C14-024.1.1 SUBNET MANAGEMENT ATTRIBUTE - PORTINFO

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

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

Topology Configuration: SimpleLink: Tester=MAD Tester; Width=1X, 4X, 8X, or 12X; Speed=SDR, DDR, or QDR; DUT=xCA or Router.

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_CA_02()

24.1.5.4.2 PORTINFO FOR XCA AND ROUTER ONLY - PART 2

Assertions: v1c13-024#01 (cont), v1c14-024.1.1#06.01, v1sc14-024.1.1#06.02, v1c14- 024.1.1#06.03, v1c14-024.1.1#06.04, v1c14-024.1.1#06.05, v1c14- 024.1.1#06.06, v1c14-024.2.1#02, v1c14-027#01, v1c14-030#01

Notes:

  1. Execute this test for xCA devices and router ONLY.
  2. This TD refers only to the test cases in which AttributeModifier is 0 or equal to the port whose receiving the SMP. // v1c14-024.1.1#06.05, v1c14-024.1.1#06.06
  3. This TD tests the RW and RO fields .
  4. Repeat all steps with Attribute Modifier from 0 to NUM_PORTS and equal to the port which the MAD is sent to (apart from 0). Repeat for all legal ports of the xCAs or routers ( 1 to number of ports as noted in NodeInfo:NumPorts).
  5. Variable PORT_INFO_DATA and PORT_INFO_DATA1 as structures of Port- Info Attribute which contains all fields as Integers.
  6. Variable SMP_DATA of type MadPacketSpec <p.

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

Test 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: Test RO fields of PortInfo - Initialize all values as default and test all RO fields for not changing.
    • PORT_INFO_DATA1.CapabilityMask =!(PORT_INFO_DATA.Capability-Mask)
    • PORT_INFO_DATA1.DiagCode =!(PORT_INFO_DATA.DiagCode)
    • PORT_INFO_DATA1.LocalPortNum =!(PORT_INFO_DATA.LocalPortNum)
    • PORT_INFO_DATA1.LinkWidthSupported =!(PORT_INFO_DATA.Link-WidthSupported)
    • PORT_INFO_DATA1.LinkWidthActive =!(PORT_INFO_DATA.Link-WidthActive)
    • PORT_INFO_DATA1.LinkSpeedSupported =!(PORT_INFO_DATA.Link-SpeedSupported)
    • PORT_INFO_DATA1.LinkSpeedActive =!(PORT_INFO_DATA.Link-SpeedActive)
    • PORT_INFO_DATA1.VLCap =!(PORT_INFO_DATA.VLCap)
    • PORT_INFO_DATA1.InitType =!(PORT_INFO_DATA.InitType)
    • PORT_INFO_DATA1.VLArbitrationHighCap=!(PORT_INFO_DATA.VLArbitrationHighCap)
    • PORT_INFO_DATA1.VLArbitrationLowCap=!(PORT_INFO_DATA.VLArbitrationLowCap)
    • PORT_INFO_DATA1.MTUCap =!(PORT_INFO_DATA.MTUCap)
    • PORT_INFO_DATA1.GuidCap =!(PORT_INFO_DATA.GuidCap)
    • PORT_INFO_DATA1.RespTimeValue =!(PORT_INFO_DATA.RespTimeValue)
    • PORT_INFO_DATA1.MaxCreditHint =!(PORT_INFO_DATA.Max-CreditHint)
    • PORT_INFO_DATA1.LinkRoundTripLatency=!(PORT_INFO_DATA.LinkRoundTripLatency)

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

  5. SMP_DATA = ReceiveMad (SubnGetResp(PortInfo))

  6. Verify SMP_DATA format: // v1c14-024.1.1#06.01, v1c14-024.1.1#06.03,v1c14-024.1.1#06.05,v1c14-024.1.1#06.06

    • MADHeader:AttributeID == PortInfo
    • MADHeader:AttributeModifier == as specified
    • MADHeader:Status.Code == 0. // v1c13-024#01 (cont)
    • SMP_DATA:MADHeader:SMPData == PORT_INFO_DATA // v1c14-024.1.1#06.03, v1c14-027#01, v1c14-030#01
    • Remark: Trying to set RO fields will result in not changing them and previous values will remain as they were.

  7. PORT_INFO_DATA1 = PORT_INFO_DATA

  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-024.1.1#06.05, v1c14-024.1.1#06.06

    • MADHeader:AttributeID == PortInfo
    • MADHeader:AttributeModifier == as specified
    • MADHeader:Status.Code == 0. // v1c13-024#01 (cont)
    • SMP_DATA:MADHeader:SMPData == PORT_INFO_DATA1 // v1c14-024.1.1#06.04, v1c14-027#01, v1c14-030#01
    • Remark: If PORT_INFO_DATA1.PortState equals 1 (setting it to Down state) it is valid for a device to respond with SMP_DATA:MADHeader:SMPData. PortState equals 2 (Initialize state) or 1 (Down State). // v1c14-024.2.1#02

  11. PORT_INFO_DATA1 = PORT_INFO_DATA

    • Remark: Change PortPhysicalState (RW field) of PORT_INFO_DATA1 to legal values which are not special case unless no such value available and then leave the value as it was - this check is done separately since it might effect other fields..
    • PORT_INFO_DATA1.PortPhysicalState = any valid value which is not 0, 3 or current PORT_INFO_DATA.PortPhysicalState

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

    • Remark: Test RW fields of PortInfo. Initialize all values as default and test all RW fields for changing correctly.

  13. SMP_DATA = ReceiveMad (SubnGetResp(PortInfo))

  14. Verify SMP_DATA format: // v1c14-024.1.1#06.01, v1c14-024.1.1#06.04, v1c14-024.1.1#06.05, v1c14-024.1.1#06.06

    • MADHeader:AttributeID == PortInfo
    • ADHeader:AttributeModifier == as specified
    • MADHeader:Status.Code == 0. // v1c13-024#01 (cont)
    • SMP_DATA:MADHeader:SMPData.PortPhysicalState == 5 // v1c14- 024.1.1#06.04, v1c14-027#01, v1c14-030#01
    • Remark: Should be trained back to LinkUp state since we did not go to Disable state.

  15. Reset the DUT


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