|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] iSCSI Change - New NOP-Out/In textHere 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 |