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

Inherits MadTest.

Public Member Functions

 C14_024_06_CA_05 ()
 
boolean execute () throws TestException
 

Protected Member Functions

boolean initialize () throws TestException
 

Detailed Description

24.1.5.4.5 PORTINFO FOR XCA AND ROUTER ONLY - PART 5

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

24.1.5.4.5 PORTINFO FOR XCA AND ROUTER ONLY - PART 5

Assertions: v1c13-024#01 (cont), v1c14-024.1.1#06.01, v1c14-024.1.1#06.02, v1c14-024.1.1#06.07, v1c14-024.1.1#06.08, v1c14-027#01, v1c14-028#01, v1c14-028#02, v1c14-030#01

Notes:

  1. Execute this test for xCA devices and routers ONLY. // v1c14-024.1.1#06.01
  2. This TD refers only to the test cases in which AttributeModifier is not- equal to the port whose receiving the SMP.
  3. This TD verifies that when AttributeModifier is different from the receiver port the PortInfo attribute performed as RO if M_Key check passed.
  4. This test is NA for devices that declare only 1 port ( due to the need for 2 ports at least).
  5. Repeat all steps with Attribute Modifier as all legal ports and differ from the port which the MAD is sent to. Repeat for all legal ports of the xCAs or routers ( 1 to number of ports as noted in NodeInfo:NumPorts).
  6. Variable PORT_INFO_DATA and PORT_INFO_DATA1 as structures of PortInfo Attribute structure which contains all fields as Integers.
  7. SMP_DATA as variable 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

Test Procedure:

  1. SendMad (SubnGet(PortInfo))

  2. PORT_INFO_DATA = ReceiveMad (SubnGetResp(PortInfo):MAD- Header: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 in order to verify that they are treated as RO.
    • PORT_INFO_DATA1.M_Key = !(PORT_INFO_DATA.M_Key)
    • PORT_INFO_DATA1.GIDPrefix = !(PORT_INFO_DATA.GIDPrefix)
    • PORT_INFO_DATA1.LID = !(PORT_INFO_DATA.LID)
    • PORT_INFO_DATA1.MasterSMLID = !(PORT_INFO_DATA.Mas- terSMLID)
    • PORT_INFO_DATA1.M_KeyLeasePeriod = !(PORT_INFO_DATA.M_KeyLeasePeriod)
    • PORT_INFO_DATA1.LinkWidthEnabled = any valid value which is not 0, 255 or PORT_INFO_DATA.LinkWidthEnabled
    • Remark: If there is no option to change this value to legal value then send it with the current value.
    • PORT_INFO_DATA1.PortState = any legal transition from PORT_INFO_DATA.PortState which is not 0.
    • Remark: If there is no option to change this value to legal value then send it with the current value.
    • PORT_INFO_DATA1.PortPhysicalState = any valid value which is not 0, 3 or PORT_INFO_DATA.PortPhysicalState
    • PORT_INFO_DATA1.LinkDownDefaultState = any valid value which is not 0 or PORT_INFO_DATA.LinkDownDefaultState
    • PORT_INFO_DATA1.M_KeyProtectBits = !(PORT_INFO_DATA.M_KeyProtectBits)
    • PORT_INFO_DATA1.LMC = !(PORT_INFO_DATA.LMC)
    • PORT_INFO_DATA1.LinkSpeedEnabled = any valid value which is not 0,15 or PORT_INFO_DATA.LinkSpeedEnabled
    • Remark: If there is no option to change this value to legal value then send it with the current value.
    • PORT_INFO_DATA1.NeighborMTU = any valid value which is not PORT_INFO_DATA.NeighborMTU
    • Remark: If there is no option to change this value to legal value then send it with the current value.
    • PORT_INFO_DATA1.MasterSMSL = !(PORT_INFO_DATA.Mas- terSMSL)
    • PORT_INFO_DATA1.VLHighLimit = !(PORT_INFO_DATA.VLHighLimit)
    • PORT_INFO_DATA1.HOQLife = !(PORT_INFO_DATA.HOQLife)
    • Remark: HOQLife is relevant only for routers in this TD.
    • PORT_INFO_DATA1.OperationalVLs = any valid value which is not 0 or PORT_INFO_DATA.OperationalVLs0x00' Actual: '0x07'
    • Remark: If there is no option to change this value to legal value then send it with the current value.
    • PORT_INFO_DATA1.M_KeyViolations = !(PORT_INFO_DATA.M_KeyViolations)
    • PORT_INFO_DATA1.P_KeyViolations = !(PORT_INFO_DATA.P_KeyViolations)
    • PORT_INFO_DATA1.Q_KeyViolations = !(PORT_INFO_DATA.Q_KeyViolations)
    • If (PORT_INFO_DATA.CapabilityMask.IsClientReregistrationSupported == 0) Then
    • PORT_INFO_DATA1.ClientReregister = !(PORT_INFO_DATA.ClientReregister)
    • End If
    • PORT_INFO_DATA1.SubnetTimeOut = !(PORT_INFO_DATA.Subnet- TimeOut)
    • PORT_INFO_DATA1.LocalPhyErrors = !(PORT_INFO_DATA.LocalPhy- Errors)
    • PORT_INFO_DATA1.OverrunErrors = !(PORT_INFO_DATA.OverrunEr- rors)

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

    • Remark: Configure to legal port and send to port other than specified in the AttributeModifier. In xCAs and routers if Attribute Modifier contains number of port different than the one we entered through, the PortInfo attribute would perform M_Key check and treat the attribute as RO.

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

  6. Verify SMP_DATA format: // v1c14-024.1.1#06.01, v1c14-024.1.1#06.07, v1c14-024.1.1#06.08, v1c14-027#01

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

  7. SendMad (SubnGet(PortInfo where MADHeader:AttributeModifier = as specified))

    • Remark: Configure to legal port and send to port other than specified in the AttributeModifier. In xCAs and routers if Attribute Modifier contains number of port different than the one we entered through the PortInfo attribute would perform M_Key check and treat SubnGet normally.

  8. SMP_DATA = ReceiveMad (SubnGetResp(PortInfo)) // v1c14-028#01

  9. Verify SMP_DATA format: // v1c14-024.1.1#06.01, v1c14-024.1.1#06.02, v1c14-027#01

    • MADHeader:AttributeID == PortInfo
    • MADHeader:AttributeModifier == as specified
    • MADHeader:Status.Code == 0 // v1c13-024#01 (cont)
    • SMP_DATA:MADHeader:SMPData == PORT_INFO_DATA


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