|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: iSCSI Change - New NOP-Out/In textJulian, Two comments (1) Sec 1.1.1 should state that the initiator task tag is also valid when the initiator sends a NOP-Out on its own. The word "only" below is misleading (and perhaps misplaced) > 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. (2) does "as much as possible" imply zero is value (i.e. duplicate nothing?) > duplicating the data that was provided in the NOP-Out > (if any) as much as possible. -Sandeep Julian Satran wrote: > > 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 |