SORT BY:

LIST ORDER
THREAD
AUTHOR
SUBJECT


SEARCH

IPS HOME


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

    Re: iSCSI: plugfest4 issues



    "Robert D. Russell" wrote:
    > 
    > 
    > 3. Section 9.13.3 states:
    >    "For a new session, the target MUST generate a non-zero TSIH and
    >    return it in the Login Final-Response (see Section 4.3 Login Phase).
    >    In all other cases, this field should be set to the TSIH provided
    >    by the initiator in the Login Request."
    > 
    >    The phrase "in all other cases" is ambiguous.  Some companies are
    >    interpreting it to mean "sessions other than a new session", while
    >    others are interpreting it to mean "Login Responses other than
    >    the Login Final-Response in a new session".
    > 
    >    So what is the intent?  On a new session, clearly the target MUST
    >    return the non-zero TSIH in the Login Final-Response, but can it
    >    also return a non-zero TSIH in the first, second, ... Login Partial
    >    Responses that precede the Login Final-Response?
    
    The intent is that for a new session the initiator MUST set
    the TSIH to the reserved value of 0, during login. During login
    the target will copy TSIH from the request to the response,
    effectively setting it to 0.
    
    On the last login response (the one which completes the switch
    to FFP, I<-T), the target will set TSIH to a valid non-reserved
    value (which it generated whenever).
    From that point on the initiator should always set TSIH
    to that value. (FFP, connection reinstatement, etc.)
    
    Though not explicit, compiling everything mentioning TSIH
    in the draft, evident this becomes.
    
    > 4. There has been some misunderstanding with the phrase "not advanced".
    >    For example, in section 9.8.2 StatSN it says:  "The StatSN field will
    >    contain the next StatSN.  The StatSN for this connection is not
    >    advanced."
    > 
    >    In spite of the presence of the word "next", some implementations are
    >    interpreting this to mean that this PDU will always contain the same
    >    value for StatSN as was sent in the previous response.  Perhaps it
    >    would help if the words "after this PDU is sent" were added to the
    >    last sentence quoted above so that it would read: "The StatSN for
    >    this connection is not advanced after this PDU is sent."
    
    Actually the above two sentences are correct and in harmony.
    
    Anything SN in the draft, at any point in time, contains the
    next value to be assigned. This is the intent, as counting starts
    from 0 and setting xxxxSN = 0, works out as intended. This is also
    deduced from looking at the equation which gives the queue size.
    
    So particulartly for 9.8.2 (R2T) since no status is reported
    one does (w.l.g.) packet->statsn = conn->statsn;
    but when status is reported (w.l.g) MOV_AND_INC_SN(packet->statsn, conn->statsn),
    which does an assignment (packet->statsn = conn->statsn) and increments
    conn->statsn (over the reserved value of course) somewhat atomically.
    
    The only difference is incrementing _after_ assignment, assignment
    always being first.
    
    Similarly for I->T, when I=0 and I=1, regarding cmdsn, etc.
     
    >    section 9.19.2: "However, when the Initiator Task Tag is set to
    >    0xffffffff,  StatSN for the connection is not advanced after this
    >    PDU is sent."
    
    Which makes sense, since if ITT = the reserved value, then
    the Target is initiating the Nop sequence and it is NOT
    reporting status.
    
    -- 
    Luben
    


Home

Last updated: Thu Aug 01 04:19:15 2002
11507 messages in chronological order