SORT BY:

LIST ORDER
THREAD
AUTHOR
SUBJECT


SEARCH

IPS HOME


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

    Re: iSCSI: CmdSN during the Login phase



    The issue of the leading connection goes beyon numbering. The leading
    connection login has to end (successfully) before any other login (if any)
    can start. Obviously CmdSN starts from the leading login.
    
    The text for CmdSN in Login now reads:
    
    1.1.1     CmdSN
    
       CmdSN is either the initial command sequence number of a session (for
       the first Login of a session - the "leading" login) or the command
       sequence number in the command stream.
    
    
     All logins after the leading one can proceed in parallel.
    
     To achieve this "serialization" TSID is specified as valid only with the
     Login response with F bit on.
    
     The F-Bit text in the response reads:
    
    1.1.1     F (Final) bit
    
       Final bit is set to one in the Final Login Response. A Final bit of 0
       indicates a "partial" response, which means "more negotiation needed".
    
       A login response with a F bit set to 1 MUST NOT contain key=value pairs
       that may require additional answers from the initiator.
    
     And the TSID:
    
    1.1.1     TSID
    
       The TSID is an initiator identifying tag set by the target.  It MUST be
       valid only if the login is accepted and the F bit is 1
    
    
     Julo
    
    "Scott M. Ferris" <sferris@acm.org> on 17-07-2001 01:26:13
    
    Please respond to "Scott M. Ferris" <sferris@acm.org>
    
    To:   ips@ece.cmu.edu
    cc:
    Subject:  iSCSI: CmdSN during the Login phase
    
    
    
    
      At what point during the Login Phase of a leading connection (null
    TSID) does a session exist?
    
      Section 2.10.7 describing CmdSN for the Login PDU indicates that
    when TSID is null, CmdSN indicates the starting Command Sequence
    number for this session.
    
      For interoperability, it is important to define precisely when a
    session exists, so that all initiators and targets agree on when
    CmdSNs are significant, and do not reject or ignore PDUs due to
    differing assumptions of how the CmdSN numbering should be done during
    the Login Phase.
    
    Some of the possible choices for session start are:
    
    1) a session starts before the initiator sends anything, and the Login
       PDU is the first PDU of a session.
    
    2) a session starts when the initiator receives a (possibly partial)
       Login Response with an accept status class and a non-zero TSID, and
       the next PDU sent by the initiator is the first PDU of the session,
       which uses the same CmdSN as the Login PDU.
    
    3) a session starts when the initiator receives a Final Login
       Response, and the next PDU sent by the initiator is the first PDU
       of the session, which uses the same CmdSN as the Login PDU.
    
      After searching through draft 6, I was unable to find anything that
    clearly indicated which if any of the above possibilities was correct,
    or, if more than one is possible, how the initiator and target are
    supposed to determine what CmdSN numbering scheme the other side is
    using for the Login Phase.
    
      The UNH draft-6 initiator appears to use choice #1.  The Cisco
    draft-6 initiator and target use choice #2.  This can cause the UNH
    initiator to hang when trying to login to the Cisco target, since the
    initiator may send a Text PDU with CmdSN 2, while the target is
    waiting for a PDU with CmdSN 1.
    
      Section 1.2.2.2 states that "Status numbering starts after
    Login. During login, there is always only one outstanding command per
    connection and status numbering is not strictly needed but may be used
    as a sanity check."
    
      A similar argument could be made that CmdSN is not needed during the
    Login Phase, suggesting choice #3 may be the simplest.
    
      I also think section 1.2.2.2 is problematic, as it appears to
    contradict itself by saying that status numbering is not used during
    login, and then follows up saying status numbering may be used during
    login.
    
    --
    Scott M. Ferris,
    sferris@acm.org
    
    
    
    


Home

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