SORT BY:

LIST ORDER
THREAD
AUTHOR
SUBJECT


SEARCH

IPS HOME


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

    Re: iSCSI: Feeling a little peckish?



    Ken, 
    
    Here's my take on the usage expectations (where a
    feature has implementation expectations, I commented below) - 
    
    > TARGET's perspective:
    > 
    > SNACK type            ERL=0                        ERL>0
    > ------------------------------------------------------------------
    > status                      optional                      mandatory*
    >                               (silently discard)
    
    Correct.  But I'd suggest that the target *not* silently discard the
    SNACK.  I propose that the Reject reason code be simply named
    as "SNACK Reject" (i.e. drop "Data-").  The reason code was specific
    about data because status SNACK support was mandatory way back,
    and I suspect the description simply remained that way even now.
    
    FYI, the only "silent" discard we had allowed in the past was on the
    "premature SNACKs" (look at changelog b/n rev6 to rev7), but we 
    then decided target should send back a reject even then (protocol error).
    
    > 
    > data/r2t                    optional                      mandatory
    >                               (reject,
    >                                reason=3)
    
    More good reason to rename the reason code description - since
    it could cover R2Ts as you point out, not just data.
    
    > 
    > data ACK                 optional                      optional
    >                               (target never 
    >                               sets the A bit)
    
    I would call the first column as "must-not" than "optional".
    
    > 
    > 
    > * Para 9.16.2 states that 'if the target supports recovery within connection, 
    > it MAY discard the SNACK after which it MUST issue an Asynchronous Message 
    > PDU with an iSCSI event that indicates "Request Logout"'.
    > 
    > Question: Is support for "recovery within connection" mandatory if the ERL 
    > has been negotiated to be > 0?
    
    Yes, look at section 6.13 - for the definition of "digest failure recovery".
    
    > 
    > 
    > To complete the picture,
    > 
    > INITIATOR's perspective:
    > 
    > SNACK type            ERL=0                        ERL>0
    > ------------------------------------------------------------------
    > status                      optional                      mandatory**
    >                                                                
    > data/r2t                   optional                       mandatory**
    > 
    > data ACK                optional                       mandatory
    >                             (can ignore the A bit)
    > 
    > 
    > ** As the SNACK is sent by the initiator, it is up to it to decide whether to 
    > do this, or to escalate recovery. Is this more of a SHOULD support than a 
    > MUST, or am I missing something?
    
    It is legally a "MUST-implement-MAY-use", if the initiator had promised ErrorRecoveryLevel > 0
    in the negotiation.  Despite the promise, initiator ofcourse has the option to resort to a 
    "bigger hammer" on *any* error.  So to summarize, targets may never really ascertain if
    the initiator really has the SNACK capability, that was implied by "ErrorRecoveryLevel=1".
    The negotiation of >0 really puts the onus on targets to meet the expectations.
    --
    Mallikarjun
    
    Mallikarjun Chadalapaka
    Networked Storage Architecture
    Network Storage Solutions
    Hewlett-Packard MS 5668 
    Roseville CA 95747
    cbm@rose.hp.com
    
    
    


Home

Last updated: Wed May 15 18:18:53 2002
10131 messages in chronological order