|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] iSCSI Change - New NOP-Out/In text
Here is the new NOP-Out/In text (2.12 & 2.13):
1.1 NOP-Out
Byte / 0 | 1 | 2 | 3 |
/ | | | |
|7 6 5 4 3 2 1 0|7 6 5 4 3 2 1 0|7 6 5 4 3 2 1 0|7 6 5 4 3 2 1 0|
+---------------+---------------+---------------+---------------+
0|X|I| 0x00 |1| Reserved (0) |
+---------------+---------------+---------------+---------------+
4| Reserved (0) | DataSegmentLength |
+---------------+---------------+---------------+---------------+
8| LUN or Reserved (0) |
+ +
12| |
+---------------+---------------+---------------+---------------+
16| Initiator Task Tag or Reserved (0xffffffff) |
+---------------+---------------+---------------+---------------+
20| Target Transfer Tag or Reserved (0xffffffff) |
+---------------+---------------+---------------+---------------+
24| CmdSN |
+---------------+---------------+---------------+---------------+
28| ExpStatSN |
+---------------+---------------+---------------+---------------+
32/ Reserved (0) /
+/ /
+---------------+---------------+---------------+---------------+
48| Digests if any... |
+---------------+---------------+---------------+---------------+
/ DataSegment - Ping Data (optional) /
+/ /
+---------------+---------------+---------------+---------------+
The NOP-Out with the Initiator Task Tag set to valid value (not the
reserved 0xffffffff) acts as a "ping command".
This form of the NOP-Out can be used to verify that a connection is
still active and all its components are operational. This command MAY
use in-order delivery or immediate delivery. The NOP-Out may be useful
in the case where an initiator has been waiting a long time for the
response to some command, and the initiator suspects that there is some
problem with the connection. When a target receives the NOP-Out with a
valid Initiator Task Tag, it should respond with a Nop-In Response,
duplicating the data that was provided in the NOP-Out (if any) as much
as possible. If the initiator does not receive the NOP-In within some
time (determined by the initiator), or if the data returned by the
NOP-In is different from the data that was in the NOP-Out, the initiator
may conclude that there is a problem with the connection. The initiator
then closes the connection and may try to establish a new connection.
A NOP-Out should also be used to confirm a changed ExpStatSN if there is
no other PDU to carry it for a long time.
The NOP-Out can be sent by an initiator because of a NOP-In with the
Target Transfer Tag set to a valid value (not the reserved 0xffffffff).
In this case the NOP-Out Target Transfer Tag must contain a copy of
NOP-In Target Task Tag.
1.1.1 Initiator Task Tag
An initiator assigned identifier for the operation.
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.
If the Initiator Task Tag does not contain a valid value, the CmdSN
field contains as usual the next CmdSN but CmdSN is not advanced and the
I bit must be set to 1.
1.1.2 Target Transfer Tag
A target assigned identifier for the operation.
The NOP-Out MUST have the Target Transfer Tag set only if it is issued
in response to a NOP-In with a valid Target Transfer Tag, in which case
it copies the Target Transfer Tag from the NOP-In PDU.
When the Target Transfer Tag is set, the LUN field MUST be also copied
from the NOP-In.
1.1.3 Ping Data
Ping data is reflected in the NOP-In Response. Note that the length of
the reflected data is limited to 4096 bytes and the initiator should
avoid sending more than 4096 bytes. The length of ping data is indicated
by the Data Segment Length. 0 is a valid value for the Data Segment
Length - and indicates the absence of ping data.
1.2 NOP-In
Byte / 0 | 1 | 2 | 3 |
/ | | | |
|7 6 5 4 3 2 1 0|7 6 5 4 3 2 1 0|7 6 5 4 3 2 1 0|7 6 5 4 3 2 1 0|
+---------------+---------------+---------------+---------------+
0|1|1| 0x20 |1| Reserved (0) |
+---------------+---------------+---------------+---------------+
4| Reserved (0) | DataSegmentLength |
+---------------+---------------+---------------+---------------+
8| LUN or Reserved (0) |
+ +
12| |
+---------------+---------------+---------------+---------------+
16| Initiator Task Tag or Reserved (0xffffffff) |
+---------------+---------------+---------------+---------------+
20| Target Transfer Tag or Reserved (0xffffffff) |
+---------------+---------------+---------------+---------------+
24| StatSN |
+---------------+---------------+---------------+---------------+
28| ExpCmdSN |
+---------------+---------------+---------------+---------------+
32| MaxCmdSN |
+---------------+---------------+---------------+---------------+
36/ Reserved (0) /
+/ /
+---------------+---------------+---------------+---------------+
48| Digests if any... |
+---------------+---------------+---------------+---------------+
/ DataSegment - Return Ping Data /
+/ /
+---------------+---------------+---------------+---------------+
When a target receives the NOP-Out with a valid Initiator Task Tag (not
the reserved value 0xffffffff), it MUST respond with a NOP-In with the
same Initiator Task Tag that was provided in the NOP-Out Command. It
SHOULD also duplicate up to first 4096 bytes of the initiator provided
Ping Data. For such a response, the Target Transfer Tag MUST be
0xffffffff.
1.2.1 Target Transfer Tag
A target assigned identifier for the operation.
A target may issue a NOP-In on its own to test the connection and the
state of the initiator. If the target wants to test the initiator, it
sets the Target Task Tag to a valid value (not the reserved 0xffffffff)
in order to ask for an answer from the initiator. In this case the
Initiator Task Tag MUST be 0xffffffff and the LUN field MUST contain a
valid LUN. If the target wants only to test the connection, both tags
MUST hold the reserved value 0xffffffff and the LUN field is reserved.
A target may also issue a NOP-In on its own to carry a changed ExpCmdSN
and/or MaxCmdSN if there is no other PDU to carry them for a long time.
Whenever the NOP-In is not issued in response to a NOP-Out the StatSN
field will contain as usual the next StatSN but StatSN for this
connection is not advanced.
1.2.2 LUN
A LUN MUST be set to a correct value when the Target Transfer Tag is
valid (not the reserved value 0xffffffff).
Home Last updated: Tue Sep 04 01:04:00 2001 6315 messages in chronological order |