SORT BY:

LIST ORDER
THREAD
AUTHOR
SUBJECT


SEARCH

IPS HOME


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

    Re: iSCSI: too much recovery?



    Santosh Rao writes:
    >StatSN needs to be on a per-connection basis. If StatSNs were on a per-session
    >basis, consider the following problem :
    >
    >- StatSN 1 is sent out on connection 1
    >- StatSN 2 is sent out on connection 2
    >
    >Since these 2 status' are sent on different connections, StatSN 2 could arrive
    >prior to StatSN 1. The initiator detects a hole in StatSN (StatSN 1 is missing)
    >and issues a Status SACK to request StatSN 1, whereas StatSN 1 is still on its
    >way to the initiator.
    >
    >Also, StatSN per connection avoids sharing StatSN state across connections [and
    >thereby, NICs].
    
    Oh, that's what the SACK pdu is for :-).
    
    Seriously, I'm wanting to understand why the target is retaining
    the state necessary to support the SACK pdu.  Because, it seems
    that the complexity that follows is large (for example, what about
    the potential for task tag collision?).
    
    Unless I'm missing something, the problem StatSN solves is a
    lost/corrupt iSCSI header.  Since this is in the context of a
    TCP "reliable" byte stream, it happens when a TCP cksum fails to
    see corruption that an iSCSI CRC/digest does see.  Assuming that
    the greater part of a iSCSI/TCP stream is data, this will happen
    mostly to data packets (which presumably are covered by a separate
    iSCSI data CRC).
    
    If that thinking holds, then it seems important to answer the
    question, what is the frequency of an iSCSI header digest/CRC
    failure?  From this comes, is this event sufficiently rare that
    initiator recovery and retry is acceptable?  Although some of my
    earlier questions presume the answer, I don't know the answer.
    
    -Jon
    


Home

Last updated: Tue Sep 04 01:05:17 2001
6315 messages in chronological order