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

Inherits MadTest.

Public Member Functions

 C14_024_09_SW ()
 
boolean execute () throws TestException
 

Protected Member Functions

boolean initialize () throws TestException
 

Detailed Description

24.1.5.19.1 VLARBITRATIONTABLE FOR SWITCH ONLY

24.1.5.19 V1C14-024.1.1 SUBNET MANAGEMENT ATTRIBUTE - VLARBITRATIONTABLE

Abstract: This test performs checks of VLArbitrationTable 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.
  2. SMP_DATA and SMP_DATA_UPDATE are variables of type MadPacketSpec.

Test Case Description

◆ C14_024_09_SW()

24.1.5.19.1 VLARBITRATIONTABLE FOR SWITCH ONLY

Assertions: v1c13-024#01 (cont), v1c13-024#07, v1c14-024.1.1#09.01, v1c14-024.1.1#09.02, v1c14-024.1.1#09.03, v1c14-024.1.1#09.04

Notes: Execute this test for Switch only (including Switch Management Port), the tested ports should support more then one data VL.

  1. SMP_DATA & SMP_DATA1 are variables of type MadPacketSpec.
  2. 32 variables VL_ARBITRATION_BLOCK of type Integer.
  3. VL_ARBITRATION_HIGH_CAP & VL_ARBITRATION_LOW_CAP are variables of type Integer.
  4. initialPortToTest is variable of type Integer.
  5. VL_CAP is variable of type Integer.
  6. PORT_NUM is variable of type Integer.

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.

◆ execute()

boolean execute ( ) throws TestException

Test Procedure:

  1. SendMad (SubnGet(NodeInfo))

  2. NUM_PORTS = ReceiveMad (SubnGetResp(NodeInfo):NumPorts)

  3. SendMad (SubnGet(SwitchInfo))

  4. If (ReceiveMad (SubnGetResp(SwitchInfo):EnhancedPort0) == 1)

  5. Else

  6. End If

  7. Tester procedure steps 8 to 68 should be repeated for all legal ports of the switch initialPortToTest to PORT_NUM.

  8. SendMad (SubnGet(PortInfo))
  9. SMP_DATA = ReceiveMad (SubnGetResp(PortInfo))
  10. VL_CAP = SMP_DATA.PortInfo:VLCap
  11. VL_ARBITRATION_HIGH_CAP =SMP_DATA.PortInfo:VLArbitrationHighCap.
  12. VL_ARBITRATION_LOW_CAP = SMP_DATA.PortInfo:VLArbitrationLowCap.
  13. Verify correctness of expression 1 <= VL_CAP < 6 // v1c14-024.1.1#09.01, v1c14-024.1.1#09.02
    • Remark If only one Data VL supported there should be a notice of that because supporting this attribute is optional in that case.
  14. Repeating Tester Procedure Steps 14-26 for Table Part values in the range 0-65535
  15. SendMad(SetNumberField(SubnGet(SMI_Attribute.VLarbitrationTable), Attribute Modifier = PortAttrMod | (TablePart << 16)
  16. SendMad ( SubnSet(VLArbitrationTable where MADHeader:AttributeModifier[7:0] = according to the port currently handled where MADHeader:AttributeModifier[15:8] = 0 , where MADHeader:AttributeModifier[31:16] = Tablepart, where All VL_ARBITRATION_BLOCKs with random VLs and weights))
  17. SMP_DATA = ReceiveMad (SubnGetResp(VLArbitrationTable))
  18. Verify SMP_DATA format:

    • MADHeader:AttributeID == VLArbitrationTable
    • MADHeader:AttributeModifier[7:0] - equal to the one we sent
    • MADHeader:AttributeModifier[15:8] == 0
    • MADHeader:AttributeModifier[31:16] - equal to the one we sent • MADHeader:Status.Code == 7 // v1c13-024#07

  19. SendMad(SubnSet(VLArbTable)) where Attr_Mod = legal TablePart value of 1 and a PortNum of 255

  20. ReceiveMad(SubnGetResp(VLArbTable))

  21. Verify SMP Data format:

    • MADHeader:AttributeID == VLArbitrationTable
    • MADHeader:AttributeModifier - equal to the one we sent
    • MADHeader:MAD_STATUS == 7

  22. SendMad(SubnGet(VLArbTable))

  23. ReceiveMad(SubnGetResp(VLArbTable))

  24. Verify SMP Data format:

    • MADHeader:AttributeID == VLArbitrationTable
    • MADHeader:AttributeModifier - equal to the one we sent
    • MADHeader:MAD_STATUS == 3 or 7

  25. SendMad(SubnSet(VLArbTable)) where Attr_Mod = a legal TablePart value of 1 and PortNum

  26. ReceiveMad(SubnGetResp(VLArbTable))

  27. Verify SMP Data format:

    • MADHeader:AttributeID == VLArbitrationTable
    • MADHeader:AttributeModifier - equal to the one we sent
    • MADHeader:MAD_STATUS == 0

  28. SendMad(SubnGet(VLArbTable))

  29. ReceiveMad(SubnGetResp(VLArbTable))

  30. Verify SMP Data format:

    • MADHeader:AttributeID == VLArbitrationTable
    • MADHeader:AttributeModifier - equal to the one we sent
    • MADHeader:MAD_STATUS == 0 (if VL_ARBITRATION_HIGH_CAP <= 32) or 7 (VL_ARBITRATION_HIGH_CAP > 32)


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