SORT BY:

LIST ORDER
THREAD
AUTHOR
SUBJECT


SEARCH

IPS HOME


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

    Re: iSCSI: current UNH Plugfest



    I agree with Dave. I think a wire protocol is stepping out of bounds in
    imposing this kind of restrictions on implementations. As long as an end
    to end ordering scheme exists and is mandatory to implement/use, I don't
    see why ordering within the initiator stack must be mandated ?
    
    - Santosh
    
    Dave Sheehy wrote:
    > 
    > > 3. Can commands be sent out of order on the same connection?
    > >
    > >    The behavior of targets is clearly specified in Section 2.2.2.3 on
    > >    page 25 of draft 8, which says:
    > >      "Except for the commands marked for immediate delivery the iSCSI
    > >      target layer MUST eliver the commands for execution in the order
    > >      specified by CmdSN."
    > >
    > >    Section 2.2.2.3 on page 26 of draft 8 also says:
    > >      "- CmdSN - the current command Sequence Number advanced by 1 on
    > >      each command shipped except for commands marked for immediate
    > >      delivery."
    > >    but the meaning of the term "shipped" is vague, and does not
    > > necessarily
    > >    require that the PDUs arrive on the other end of a TCP connection
    > >    in the same order that the CmdSN values were assigned to these PDUs.
    > >
    > >    Some initiators have been designed to send commands out of CmdSN
    > >    order on one connection.  Consider the situation where there is only
    > >    one connection and a high-level dispatcher creates a PDU for a SCSI
    > >    command that involves writing immediate data to the target.  This PDU
    > >    is enqueued to a lower-level layer which has to setup, start, and
    > >    wait-for a DMA operation to move the immediate data into an onboard
    > >    buffer before the PDU can be put onto the wire.  While this is
    > >    happening, the dispatcher creates another unrelated PDU for a SCSI
    > >    read command (for example), and when this PDU is passed to the
    > >    lower-level layer it can be sent immediately, ahead of the previous
    > >    write PDU and therefore out of order on this connection.
    > >
    > >    The standard clearly allows this to happen if the two PDUs were sent
    > >    on different connections, and seems to imply that this can also happen
    > >    when the two PDUs are sent on the same connection.
    > >
    > >    The suggestion is to put in the standard an explicit statement that
    > >    this is allowed or not allowed, as appropriate.
    > >
    > >    If this is allowed, such a statement would avoid the erroneous
    > >    assumption being made by some target implementers that within a single
    > >    connection, commands will arrive in order.
    > >
    > >    If this is not allowed, such a statement would avoid the erroneous
    > >    assumption being made by some initiator implementers that within a
    > >    single connection, commands can be put on the wire out of order.
    > >
    > > +++
    > >
    > > will add an explicit statement saying that this behaviour is forbidden.
    > > 2.2.2.1 will contain:
    > >
    > > On any given connection, the iSCSI initiator MUST send the commands in the
    > > order specified by CmdSN.
    > >
    > > +++
    > 
    > Why do you feel this behavior should be forbidden? Targets already have to
    > order commands across the session. I don't see why it's a problem to extend
    > that to the connection as well. I, for one, believe we should take a liberal
    > stance on this.
    > 
    > Dave Sheehy
    
    -- 
    ##################################
    Santosh Rao
    Software Design Engineer,
    HP-UX iSCSI Driver Team,
    Hewlett Packard, Cupertino.
    email : santoshr@cup.hp.com
    Phone : 408-447-3751
    ##################################
    


Home

Last updated: Fri Nov 02 21:17:32 2001
7542 messages in chronological order