InfiniBand Test Specification
1.0.38
|
Inherits C14_016_Base.
Public Member Functions | |
C14_016_Set () | |
boolean | execute () throws TestException |
Protected Member Functions | |
boolean | initialize () throws TestException |
14.1.4.3 V1C14-016 M_KEY CHECKING FOR SUBNSET()
Abstract: Check that M_Key checking is correctly performed for different values of PortInfo:M_KeyProtectBits when PortInfo:M_Key is non-zero and the request is SubnSet().
Coverage: v1c14-016, v1c14-026, v1c14-029
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.
Notes: A timeout should occur based on the rules of Volume 1 Section 13.4.6.2 Timers and Timeouts.
C14_016_Set | ( | ) |
14.1.4.3.1 ALGORITHM Assertions: v1c14-016#01.02, v1c14-016#02.02, v1c14-016#03.02, v1c14-016#04.02, v1c14-026#01, v1c14-029#02.01, v1c14-029#02.02 Notes:
|
protected |
Initialization:
DUT PortInfo:PortState = Initialize, Armed, or Active.
DUT PortInfo:M_Key = M_KEY_DUT.
DUT PortInfo:M_KeyProtectBits = 0, 1, 2, or 3.
boolean execute | ( | ) | throws TestException |
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=M_KEY_DUT, MADHeader:SMPData=SMP_DATA.PortInfo )
SMP_DATA = ReceiveMad( SubnGetResp(PortInfo) ) // v1c14-029#02.01
Verify( SMP_DATA.PortInfo is the same as the modified value in Step 3 ) v1c14-026#01
SendMad( SubnSet(PortInfo) where MADHeader:M_Key=M_KEY_OTHER, MADHeader:SMPData=SMP_DATA.PortInfo )
VerifyNoReceiveMad( SubnGetResp(PortInfo) ) // after appropriate timeout // v1c14-016#01.02, v1c14-016#02.02, v1c14-016#03.02, v1c14-016#04.02, v1c14-029#02.02
Remark: Should not receive a SubnGetResp(PortInfo) because M_Key checking should have failed. 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)) where Mad_MKEY = M_KEY_DUT
SMP_DATA = ReceiveMad()
Verify MKeyViolatoins > 0
Reset MKey = 0; ProtectBits = 0 and MKeyViolations = 0"