SORT BY:

LIST ORDER
THREAD
AUTHOR
SUBJECT


SEARCH

IPS HOME


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

    Re: ISCSI: flow control



    At 02:28 AM 9/20/00 -0700, Matt Wakeley wrote:
    >Well, David thinks there's consensus on flow control, but I just wanted to
    >make sure some issues are clear:
    >
    >
    > > (1) An iSCSI session containing a single TCP connection
    > >         should not be required to use the currently specified
    > >         iSCSI command reference numbers and sliding window
    > >         mechanism because TCP will deliver commands in order.
    > >
    >
    >The iSCSI spec originally implemented command reference numbers to "order"
    >commands that are delivered across multiple TCP connections.  The sliding
    >window was added so that if a tcp connection dies, the remaining tcp
    >connections don't flood the target with (now potentially) out of order
    >commands.
    >
    >It's true that an iSCSI session containing a single TCP connection, or an
    >iSCSI session containing a multiple TCP connections but using the
    >"asynchronous" model does not require command re-ordering or the sliding
    >window.  Only the "synchronous" model with multiple TCP connections requires
    >both.
    >
    >However, some have wanted to use the sliding window to solve a different
    >problem.  They want to enable the target to advertise to the initiator how
    >many commands the target is able to receive.  This apparently is not specified
    >in SAM-2, and SAM-2 deals with overflowing the command queue in an ugly way -
    >throw the commands away and enter an error state.
    >
    >The question here is whether iSCSI should attempt to solve the command queue
    >overflow problem, or allow T10 to deal with it.  Other protocols (fibre
    >channel) already deal with it in the "ugly" fashion - perhaps so should
    >iSCSI.  What we need consensus on is whether or not iSCSI is going to deal
    >with this.
    
    The "ugly" mechanism is undesirable for a variety of reasons including fast 
    convergence / recovery upon data loss.  A credit system is simple to 
    implement and provides a way to bound this problem and the implementation 
    complexity (whether in software or hardware or if operating across a set of 
    adapters).   With a single connection implementation, this is trivial to 
    accommodate and future multi-port or multi-adapter solutions can take 
    advantage of it as you note with minimal effort.  Given this does not 
    really impact a single connection solution, what compelling reason is there 
    for removing its definition / requirement within the spec at this point?
    
    Note: I believe there are also other advantages to always having this 
    present beyond the stated problem.
    
    Mike
    
    


Home

Last updated: Tue Sep 04 01:07:10 2001
6315 messages in chronological order