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

Inherits MadTest.

Public Member Functions

 C14_024_10_03 ()
 
boolean execute () throws TestException
 

Protected Member Functions

boolean initialize () throws TestException
 

Detailed Description

24.1.5.13.3 LINEAR FORWARDING TABLE TEST FOR SUPPORTED ATTRIBUTE AND INVALID SWITCH PORTS

24.1.5.13 V1C14-024.1.1 SUBNET MANAGEMENT ATTRIBUTE - LINEARFORWARDINGTABLE

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

Coverage: v1c13-024, v1c14-024.1.1

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:

  1. Additional checking of method/attribute combinations is performed in tests for v1c14-003.
  2. This TD should be executed for switches only since the attribute is not applicable to xCAs and routers

Test Case Description

◆ C14_024_10_03()

24.1.5.13.3 LINEAR FORWARDING TABLE TEST FOR SUPPORTED ATTRIBUTE AND INVALID SWITCH PORTS

NOTE: TCL has this as C14-024#10.02 which does not match TD

Assertions: v1c13-024#01, v1c14-024.1.1#10.01, v1c14-024.1.1#10.02, v1c14-024.1.1#10.03, v1c14-024.1.1#10.04, v1c14-024.1.1#10.05, v1c14-024.1.1#10.06

Notes:

  1. Variable DUT_FDB_LIN_CAP of type integer
  2. Variable DUT_FDB_RANDOM_CAP of type integer
  3. Variable DUT_FDB_LIN_TOP of type integer
  4. Variable DUT_PORT_NUM of type integer
  5. SMP_DATA is variable of type MadPacketSpec
  6. LinearFDB first entry is invalid and shall be ignored while testing (LID 0 is not supported)

Developer: Llolsten Kaonga

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. SMP_DATA = ReceiveMad (SubnGetResp(SwitchInfo))

  5. DUT_FDB_LIN_CAP = SMP_DATA:LinearFDBCap

  6. DUT_FDB_RANDOM_CAP = SMP_DATA:RandomFDBCap

  7. DUT_FDB_LIN_TOP = SMP_DATA:LinearFDBTop

  8. Verify (DUT_FDB_LIN_CAP != 0) // v1c14-024.1.1#10.01

    • Remark: Linear forwarding Table supported by this switch.

  9. Verify DUT_FDB_RANDOM_CAP == 0. // v1c14-024.1.1#10.02

    • Remark: If Linear forwarding Table is supported by the switch Random forwarding Table must not be supported by the same switch.

  10. Verify DUT_FDB_LIN_CAP > DUT_FDB_LIN_TOP // v1c14-024.1.1#10.05

    • Remark: Switch might declare supporting less than device functionality.

  11. Repeat steps 12 through 29 for all LinearForwardingTable attribute supported values (0 to (DUT_FDB_LIN_TOP / 64)).// v1c14-024.1.1#10.05
  12. SendMad( SubnGet(LinearForwardingTable) where AttributeModifier = as specified [attrMod])
  13. SMP_DATA = ReceiveMad(SubnGetResp(LinearForwardingTable)) // Assertion v1c14-024#10.03
  14. SMP_DATA_1 = (NOT SMP_DATA) and invalid ports numbers
    • Remark: Changing the content of all the PortBlockElements in order to test SubnSet functionality , set all port block elements of LinearForwardingTable to be invalid ports of the switch.
  15. SendMad (SubnSet(LinearForwardingTable where MADHeader:AttributeModifier as specified, where MADHeader:MADData = SMP_DATA_1)).
  16. SMP_DATA = ReceiveMad(SubnGetResp(LinearForwardingTable))
  17. Verify SMP_DATA format: // v1c14-024.1.1#10.03, v1c14-024.1.1#10.04
    • MADHeader:AttributeID == LinearForwardingTable
    • MADHeader:AttributeModifier == as specified
    • MADHeader:Status.code == 0 // v1c13-024#01
    • Remark: DUT_FDB_LIN_TOP refers to max LID supported and the content of the AttributeModifier refers to number of 64 LIDs Blocks.
  18. If (MADHeader:AttributeModifier == DUT_FDB_LIN_TOP / 64) then ...
    • Remark: Remark: If AttributeModifier is equal to (DUT_FDB_LIN_TOP / 64) it implies that not all the LIDs in this 64 LIDs block might be supported by the device - and they be handled differently then others.
    • If the LID in the block is supported , means (LID MODULO 64) <= (DUT_FDB_LIN_TOP MODULO 64), then MADHeader:MADData.LID == 0xff to indicate that an invalid port number was used.// v1c14-024.1.1#10.06
    • Else the LID in the block is not supported , means (LID MODULO 64) > (DUT_FDB_LIN_TOP MODULO 64), then MADHeader:MADData.LID should be read back as Zero. // v1c14-024.1.1#10.05
  19. Else if (MADHeader:AttributeModifier < EndOfTable / 64) then ...
    • Verify that TesterLID PortNum is set to LocalPort
    • Verify that the port number for the DUT's LID is set to Mgmt Port 0
  20. MADHeader:MADData all returned data in MAD should be read back as 0xff.// v1c14-024.1.1#10.06
    • Remark: If invalid port number is written into an entry that entry should be read back as 0xff to indicate that an invalid port number was used.
  21. Endif
  22. SMP_DATA_1 = (NOT SMP_DATA) and valid ports numbers.
  23. SendMad (SubnSet(LinearForwardingTable)) where Attribute Modifier = as specified
    • Remark: Set all port block elements of LinearForwardingTable to be valid ports of the switch.
    • Remark: Done in-order to be sure that switch functionality was not damaged due to the invalid entry which was written before to the LinearForwardingTableBlock.
  24. SMP_DATA = ReceiveMad( SubnGetResp(LinearForwardingTable))
  25. Verify SMP Data format: // v1c14-024.1.1#10.03, v1c14-024.1.1#10.04
    • MADHeader:AttributeID == LinearForwardingTable
    • MADHeader:AttributeModifier == as specified
    • MADHeader:Status.code == 0 // v1c13-024#01
    • Remark: DUT_FDB_LIN_TOP refers to max LID supported and the content of the AttributeModifier refers to number of 64 LIDs Blocks.
  26. If (MADHeader:AttributeModifier == (DUT_FDB_LIN_TOP / 64)) Then
    • Remark: If AttributeModifier is equal to (DUT_FDB_LIN_TOP / 64) it implies that not all the LIDs in this 64 LIDs block might be supported by the device - and they be handled differently then others.
    • If the LID in the block is supported , means (LID MODULO 64) <= (DUT_FDB_LIN_TOP MODULO 64), then MADHeader:MADData.LID should not be read back as 0xff since all entries are valid.
    • Else the LID in the block is not supported , means (LID MODULO 64) > (DUT_FDB_LIN_TOP MODULO 64), then MADHeader:MADData.LID should be read back as Zero. // v1c14-024.1.1#10.05
  27. Else
  28. MADHeader:MADData all returned data in Mad should not be read back as 0xff since all entries are valid.
  29. Endif


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