InfiniBand Test Specification
1.0.38
|
Inherits C14_016_Base.
Protected Member Functions | |
boolean | initialize () throws TestException |
Private Member Functions | |
void | TestProtectBits0 () throws TestException |
void | TestProtectBits1 () throws TestException |
void | TestProtectBits2or3 () throws TestException |
void | PerformInitialSteps () throws TestException |
PerformInitialSteps More... | |
14.1.4.2 V1C14-016 M_KEY CHECKING FOR SUBNGET()
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 SubnGet().
Coverage: v1c14-016, 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:
14.1.4.2.1 M_KEY CHECKING FOR SUBNGET() WHEN PORTINFO:M_KEYPROTECTBITS = 0
14.1.4.2.2 M_KEY CHECKING FOR SUBNGET() WHEN PORTINFO:M_KEYPROTECTBITS = 1
14.1.4.2.3 M_KEY CHECKING FOR SUBNGET() WHEN PORTINFO:M_KEYPROTECTBITS = 2 OR 3
|
protected |
Initialization:
DUT PortInfo:PortState = Initialize, Armed, or Active.
DUT PortInfo:M_Key = M_KEY_DUT.
DUT PortInfo:M_KeyProtectBits = <as specified>.
|
private |
14.1.4.2.1 M_KEY CHECKING FOR SUBNGET() WHEN PORTINFO:M_KEYPROTECTBITS = 0 Assertions: v1c14-016#01.01, v1c14-029#01.01
Initialization: see Initialization
Test Procedure:
See PerformInitialSteps for steps 1-4
SMP_DATA = ReceiveMad( SubnGetResp(PortInfo) ) // v1c14-016#01.01, v1c14-029#01.01
Remark: Test succeeds when M_Key supplied in SubnGet() is not the same as the DUT PortInfo:M_Key.
Verify SMP_DATA format:
Reset MKey = 0; ProtectBits = 0 and MKeyViolations = 0"
|
private |
14.1.4.2.2 M_KEY CHECKING FOR SUBNGET() WHEN PORTINFO:M_KEYPROTECTBITS = 1 Assertions: v1c14-016#02.01, v1c14-029#01.01
Initialization: see Initialization
Test Procedure:
See PerformInitialSteps for steps 1-4
SMP_DATA = ReceiveMad( SubnGetResp(PortInfo) ) // v1c14-016#02.01, v1c14-029#01.01
Remark: Test succeeds when M_Key supplied in SubnGet() is not the same as the DUT PortInfo:M_Key, but value of returned PortInfo:M_Key is 0.
Remark: Test succeeds when M_Key supplied in SubnGet() is not the same as the DUT PortInfo:M_Key, but value of returned PortInfo:M_Key is 0.
Verify SMP_DATA format:
Reset MKey = 0; ProtectBits = 0 and MKeyViolations = 0"
|
private |
14.1.4.2.3 M_KEY CHECKING FOR SUBNGET() WHEN PORTINFO:M_KEYPROTECTBITS = 2 OR 3
Assertions: v1c14-016#03.01, v1c14-016#04.01, v1c14-029#01.01, v1c14-029#01.02
Notes:
Initialization: see Initialization
Test Procedure:
See PerformInitialSteps for steps 1-4
VerifyNoReceiveMad( SubnGetResp( PortInfo) ) // after approp. timeout // v1c14-016#03.01, v1c14-016#04.01, v1c14-029#01.02
Remark: Should not receive a SubnGetResp(PortInfo) because M_Key checking should have failed. Options for identifying M_Key check failures in- clude 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(SetNumberField(SubnGet(SMI_Attribute.PortInfo)) with MAD_M_KEY = M_KEY_DUT
SMP_DATA = ReceiveMad()
Verify IB_PORT_MKEY_VIOL == 1
Reset MKey = 0; ProtectBits = 0 and MKeyViolations = 0"
|
private |
PerformInitialSteps
SendMad( SubnGet(PortInfo) where MADHeader:M_Key=M_KEY_DUT )
SMP_DATA = ReceiveMad( SubnGetResp(PortInfo) ) // v1c14-016#01.01, v1c14-029#01.01
Remark: Test succeeds when M_Key supplied in SubnGet() is the same as the DUT PortInfo:M_Key.
Verify SMP_DATA format:
SendMad( SubnGet(PortInfo) where MADHeader:M_Key=M_KEY_OTHER )