SORT BY:

LIST ORDER
THREAD
AUTHOR
SUBJECT


SEARCH

IPS HOME


    [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

    Re: iSCSI Change - New NOP-Out/In text



    
    Julian,
    
    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