InfiniBand Test Specification
1.0.38
|
14.1.4 MANAGEMENT KEY More...
Inherits MadTest.
Protected Member Functions | |
boolean | initialize () throws TestException |
Private Member Functions | |
void | NoMKEYSubNGet () throws TestException |
void | NoMKEYSubnSet () throws TestException |
void | NoMKEYSubnTrap () |
14.1.4 MANAGEMENT KEY
14.1.4.1 V1C14-015 NO M_KEY CHECKING
Abstract: Check that M_Key checking is not performed when PortInfo:M_Key is zero at a receiving port.
Coverage: v1c14-015, v1c14-025, v1c14-028
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: None.
14.1.4.1.1 NO M_KEY CHECKING FOR SUBNGET()
14.1.4.1.2 NO M_KEY CHECKING FOR SUBNSET()
14.1.4.1.3 NO M_KEY CHECKING FOR SUBNTRAPREPRESS()
|
protected |
Initialization:
DUT PortInfo:PortState = Initialize, Armed, or Active.
DUT PortInfo:M_KeyProtectBits = 2 or 3 (most restrictive level of M_Key checking).
DUT PortInfo:M_Key = 0.
|
private |
14.1.4.1.1 NO M_KEY CHECKING FOR SUBNGET()
Assertions: v1c14-015#01, v1c14-028#01
Initialization:
Test Procedure:
SendMad( SubnGet(NodeInfo) where MADHeader:M_Key=non-zero value )
ReceiveMad( SubnGetResp(NodeInfo) ) // v1c14-015#01, v1c14-028#01
Remark: If the SubnGetResp() is not received (e.g., a timeout occurs based on the rules of Volume 1 Section 13.4.6.2 Timers and Timeouts), the failure may have occurred due to an erroneous M_Key check failure. Options for identifying M_Key check failures include Trap 256 (if it is implemented) or the PortInfo:M_KeyViolations counter for the DUT (which should be examined before and after the previous step).
SendMad(SubnGet(SMI_Attribute.PortInfo))
SMP_DATA = ReceiveMad()
Verify IB_PORT_MKEY_VIOL == 0
|
private |
14.1.4.1.2 NO M_KEY CHECKING FOR SUBNSET()
Assertions: v1c14-015#02, v1c14-025#01, v1c14-028#02
Notes:
Initialization:
Test Procedure:
SendMad( SubnGet(PortInfo) )
SMP_DATA = ReceiveMad( SubnGetResp(PortInfo) )
Modify a Read-Write component of SMP_DATA.PortInfo with a valid value.
SendMad( SubnSet(PortInfo) where MADHeader:M_Key=non-zero value, MADHeader:SMPData=SMP_DATA.PortInfo )
SMP_DATA = ReceiveMad( SubnGetResp(PortInfo) ) // v1c14-015#02, v1c14-028#02
Remark: If the SubnGetResp() is not received (e.g., a timeout occurs based on the rules of Volume 1 Section 13.4.6.2 Timers and Timeouts), the failure may have occurred due to an erroneous M_Key check failure. Options for identifying M_Key check failures include Trap 256 (if it is implemented) or the PortInfo:M_KeyViolations counter for the DUT (which should be examined before and after the previous step).
Verify( SMP_DATA.PortInfo is the same as the modified value in Step 3 ) //v1c14-025#01
SendMad(SubnGet(SMI_Attribute.PortInfo))
SMP_DATA = ReceiveMad()
Verify IB_PORT_MKEY_VIOL == 0
Restore original LID on the DUT.
|
private |
14.1.4.1.3 NO M_KEY CHECKING FOR SUBNTRAPREPRESS() Assertions: v1c14-015#03
DUT Qualifiers: Trap.
Notes:
Tester Procedure:
VerifyNoReceiveMad( SubnTrap(Notice) ) // after appropriate timeout v1c14-015#03
Remark: No M_Key check failure should occur when the SubnTrapRe- press() is received by the DUT. Options for identifying M_Key check failures include Trap 256 (if it is implemented) or the PortInfo:M_KeyViolations counter for the DUT (which should be examined before and after the previous step).
Test Agent Procedure: