public final class NOPOutParser extends InitiatorMessageParser
This class parses a NOP-Out message defined in the iSCSI Standard (RFC3720).
A NOP-Out may be used by an initiator as a "ping request" to verify that a connection/session is still active and all its components are operational. The NOP-In response is the "ping echo".
A NOP-Out is also sent by an initiator in response to a NOP-In.
A NOP-Out may also be used to confirm a changed ExpStatSN if another PDU will not be available
for a long time.
Upon receipt of a NOP-In with the Target Transfer Tag set to a valid value (not the reserved
0xffffffff), the initiator MUST respond with a NOP-Out. In this case, the NOP-Out Target
Transfer Tag MUST contain a copy of the NOP-In Target Transfer Tag.
These fields have these specific meanings:
Initiator Task Tag:
The NOP-Out MUST have the Initiator Task Tag set to a valid value only if a response in the form of NOP-In is requested (i.e., the NOP-Out is used as a ping request). Otherwise, the Initiator Task Tag MUST be set to0xffffffff.When a target receives the NOP-Out with a valid Initiator Task Tag, it MUST respond with a Nop-In Response (see Section 10.19 NOP-In).
If the Initiator Task Tag contains
0xffffffff, theI bitMUST be set to1and theCmdSNis not advanced after this PDU is sent.Ping Data
Ping data are reflected in the NOP-In Response. The length of the reflected data are limited toMaxRecvDataSegmentLength. The length of ping data are indicated by theDataSegmentLength.0is a valid value for theDataSegmentLengthand indicates the absence of ping data.
| Modifier and Type | Field and Description |
|---|---|
protected int |
targetTransferTag
The TargetTransferTag.
|
commandSequenceNumber, expectedStatusSequenceNumberlogicalUnitNumber, protocolDataUnit| Constructor and Description |
|---|
NOPOutParser(ProtocolDataUnit initProtocolDataUnit)
Default constructor, creates a new, empty
NOPOutParser object. |
| Modifier and Type | Method and Description |
|---|---|
protected void |
checkIntegrity()
This method checks, if all parsed fields are valid.
|
void |
clear()
This method sets all settings to their initial values.
|
protected void |
deserializeBytes1to3(int line)
Parse the bytes
1 till 3 in the Basic Header
Segment. |
protected void |
deserializeBytes20to23(int line)
Parse the bytes
20 till 23 in the Basic Header
Segment. |
DataSegmentFactory.DataSegmentFormat |
getDataSegmentFormat()
If this method returns
true, hen it indicates that the data
segment data is interpreted as binary data. |
int |
getTargetTransferTag()
A target assigned identifier for the operation.
|
protected int |
serializeBytes20to23()
Serializes the bytes
20 till 23 in the Basic
Header Segment. |
String |
toString()
This method concatenate all the fields of a derived parser to allow an
easy generation of debug informations.
|
deserializeBytes24to27, deserializeBytes28to31, deserializeBytes32to35, deserializeBytes36to39, deserializeBytes40to43, deserializeBytes44to47, getCommandSequenceNumber, getExpectedStatusSequenceNumber, getShortInfo, incrementSequenceNumber, serializeBytes1to3, serializeBytes24to27, serializeBytes28to31, serializeBytes32to35, serializeBytes36to39, serializeBytes40to43, serializeBytes44to47, setCommandSequenceNumber, setExpectedStatusSequenceNumbercanContainAdditionalHeaderSegments, canHaveDigests, deserializeBytes12to15, deserializeBytes8to11, getLogicalUnitNumber, serializeBytes12to15, serializeBytes8to11, setLogicalUnitNumberpublic NOPOutParser(ProtocolDataUnit initProtocolDataUnit)
NOPOutParser object.initProtocolDataUnit - The reference ProtocolDataUnit instance, which
contains this NOPOutParser subclass object.public final int getTargetTransferTag()
The NOP-Out MUST only have the Target Transfer Tag set if it is issued in response to a NOP-In with a
valid Target Transfer Tag. In this case, it copies the Target Transfer Tag from the NOP-In PDU.
Otherwise, the Target Transfer Tag MUST be set to 0xffffffff.
When the Target Transfer Tag is set to a value other than 0xffffffff, the LUN field MUST
also be copied from the NOP-In.
public final String toString()
toString in class InitiatorMessageParserpublic final DataSegmentFactory.DataSegmentFormat getDataSegmentFormat()
true, hen it indicates that the data
segment data is interpreted as binary data. Else the data segment data
must be interpreted as Text Format.getDataSegmentFormat in class AbstractMessageParserDataSegmentFactory.DataSegmentFormatpublic final void clear()
clear in class InitiatorMessageParserprotected final void deserializeBytes1to3(int line)
throws InternetSCSIException
1 till 3 in the Basic Header
Segment.deserializeBytes1to3 in class InitiatorMessageParserline - The actual lineInternetSCSIException - If any violation of the iSCSI-Standard emerge.protected final void deserializeBytes20to23(int line)
throws InternetSCSIException
20 till 23 in the Basic Header
Segment.deserializeBytes20to23 in class InitiatorMessageParserline - The actual lineInternetSCSIException - If any violation of the iSCSI-Standard emerge.protected final void checkIntegrity()
throws InternetSCSIException
checkIntegrity in class AbstractMessageParserInternetSCSIException - If the integrity is violated.protected final int serializeBytes20to23()
20 till 23 in the Basic
Header Segment.serializeBytes20to23 in class InitiatorMessageParserCopyright © 2013 University of Konstanz, Distributed Systems Group. All Rights Reserved.