SORT BY:

LIST ORDER
THREAD
AUTHOR
SUBJECT


SEARCH

IPS HOME


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

    Re: iSCSI: definition of TSID (2.11.4 of draft 07)



    Jim,
    
    >Now, B has done its job of enforcing no repeated
    >ISID *to the same portal group* but A may be confused when a messages comes
    >from B with SSID=(1,1).
    
    I assume A knows the iSCSI target portal group for each SSID -
    so has a means of distinction without crossing layers into TCP.
    
    But, I see it's simpler to keep it this way.  I am perfectly okay
    with this.  Thanks for the explanation.
    
    >I have no objection to adding a sentence that defines
    >the nexus identifier as the conjunction of the two SCSI portnames and
    >observe that by this definition and the ISID RULE, two nexus with the same
    >identifier should never occur.
    
    Thanks, that is a reasonable way of suggesting a means of enforcement.
    
    Regards.
    --
    Mallikarjun 
    
    
    Mallikarjun Chadalapaka
    Networked Storage Architecture
    Network Storage Solutions Organization
    MS 5668	Hewlett-Packard, Roseville.
    cbm@rose.hp.com
    
    
    >Mallikarjun,
    >
    >Comments in line.
    >
    >Jim Hafner
    >
    >
    >"Mallikarjun C." <cbm@rose.hp.com>@ece.cmu.edu on 08/30/2001 09:57:09 pm
    >
    >Please respond to cbm@rose.hp.com
    >
    >Sent by:  owner-ips@ece.cmu.edu
    >
    >
    >To:   ips@ece.cmu.edu
    >cc:
    >Subject:  Re: iSCSI: definition of TSID (2.11.4 of draft 07)
    >
    >
    >
    >Jim,
    >
    >Sorry, I was travelling, so couldn't get back sooner.  Let me say first
    >off that I am not disagreeing with you, only suggesting more explicit
    >wording.
    >
    >I see that the text you sent offline does contain "assumption A" stated
    >explicitly - thanks.  I believe that's necessary since one could very
    >well
    >attach new connections to an existing SSID when its uniqueness is
    >maintained
    >between just the target portal group and the initiator.
    >
    >I am still though missing the rationale for mandating uniqueness of SSID
    >between the target (across all portals) and initiator.  I assume target
    >knows the portal group based on which IP address the login arrives on -
    >eventhough not explicitly carried in the payload.
    >
    ><JLH>
    >Are you saying that iSCSI *doesn't* need to ensure uniquess of SSID between
    >a single iSCSI initiator and single iSCSI target?  Is that because of
    >"locality" within the portal group?  Curious!   I had asked a number of
    >months ago what the value of the SSID was in the first place!  I had
    >thought that it was to parallel the S_ID, D_ID of FC, but the answer I got
    >was "NO", it's just to give each end an inband handle for a session
    >context.  I took that to imply some uniqueness.  Then I leveraged that for
    >the model.
    >
    >But I think there might be problems (for one end or the other) if SSIDs are
    >not unique.  Suppose initiator A opens one session (ISID=1) to target B on
    >Portal Group X and gets TSID=1.  Then A opens session (ISID=1) to B on TG Y
    >and again gets TSID=1.  Now, B has done its job of enforcing no repeated
    >ISID *to the same portal group* but A may be confused when a messages comes
    >from B with SSID=(1,1).  Unless it *also* tracks the TCP connection as part
    >of the "session context", it can't tell to what session the message
    >belongs.  [Note that in this example, B didn't 'partition' TSIDs between
    >its portal groups -- this is what enabled the duplicate SSID to be
    >created.]
    >
    >In short, it is possible for A to "live with" multiple independent sessions
    >with the same SSID, but it crosses layering (it requires non-iSCSI protocol
    >handles).  In a nut shell, I think we should require this SSID uniqueness.
    ></JLH>
    >
    >Coming to my harping on the nexus identifier, there are two reasons -
    > -  It seems to provide a nice rationale for the above issue (refer
    >    to my previous mail at the bottom on how).  Please set me straight
    >    if I am totally ignoring something I shouldn't.
    > -  You stated that iSCSI is the first transport which opens the
    >    possibility of "parallel nexus" and so iSCSI mandates implementations
    >    not to allow it - but appears to stop short of specifying an
    >    identifier/means to enforce this mandatory requirement.  May be
    >    it's just me who is troubled by this...
    ><JLH>
    >Well, yes, we haven't specified *directly* an identifier/means for
    >enforcing no parallel nexus.  We have specified the ISID RULE.  Remember
    >that I said that the nexus is a "relationship" (not an identifier) between
    >two specific SCSI ports; the ISID RULE prevents two independent such
    >relationships.  We don't have an explicit (SCSI) nexus identifier mechanism
    >for checking, but we have an explicit iSCSI identifier mechanism for
    >checking!.  But, if you prevent the relationship from coming into
    >existence, then you get no matching nexus identifiers (regardless of how
    >that might be reasonably defined) for free.
    >
    >Is this another one of those places where we're not explicit enough in the
    >text?  :-{)
    >
    >To ease your mind, I have no objection to adding a sentence that defines
    >the nexus identifier as the conjunction of the two SCSI portnames and
    >observe that by this definition and the ISID RULE, two nexus with the same
    >identifier should never occur.
    >Does that cover it?
    ></JLH>
    >
    >
    >
    >
    >Regards.
    >--
    >Mallikarjun
    >
    >Mallikarjun Chadalapaka
    >Networked Storage Architecture
    >Network Storage Solutions Organization
    >MS 5668 Hewlett-Packard, Roseville.
    >cbm@rose.hp.com
    >
    >
    >Jim Hafner wrote:
    >>
    >> Mallikarjun,
    >>
    >> There are two assumptions that go into the model and requirements (as I
    >see
    >> it).  One is currently implicit in draft-07 and is an iSCSI issue, the
    >> other is a bit more explicit and is a SCSI issue with iSCSI implications.
    >> These are
    >>
    >> A) (Uniqueness of SIDs) Between a given iSCSI Initiator Node and iSCSI
    >> Target Node there can be only one session with a given SID.  [This is
    >> implied by the language that says that a login attempt that uses an
    >> existing SID=ISID||TSID is an attempt to *add* a connection to the
    >existing
    >> session. (This is the response I got from Julian when I suggested making
    >> this explicit.)
    >>
    >> B) (No parallel I_T nexus) Between a given SCSI Initiator Port and SCSI
    >> Target Port there can be only one nexus.  [With the definition of SCSI
    >> Initiator Port as the endpoint of a session identified by iSCSI Initiator
    >> Name + ISID, and with the definition of the SCSI Target Port as the
    >target
    >> portal group identified by the iSCSI Target Name + portal group tag, we
    >get
    >> the ISID RULE as stated (or intended) in the draft.]
    >>
    >> The minimalist requirement is to meet the these two rules (assumptions).
    >>
    >> There is a typo in the text you quote.  It should read "The TSID name
    >space
    >> of the iSCSI Target should be partitioned among the target portal
    >groups".
    >> But as we've discussed this really less of a requirement than it is a
    >> desirable "note to implementers" (and I'm going to propose that this sort
    >> of text move to that section).
    >>
    >> In what you say below, the "no parallel nexus" (assumption B) is enforced
    >> by the ISID RULE.  Assumption A (uniquely identified sessions) is
    >enforced
    >> if the target does the right thing when selecting a TSID *to pair with*
    >an
    >> ISID.  My text for the definition of TSID simply says that the target
    >> should find a new TSID that enforces Assumption A (no more and no less).
    >> All the stuff about partitioning name space belongs in "notes to
    >> implementers".  So, between my proposed definition of TSID and the ISID
    >> RULE, both assumptions are satisfied and the model works.  No finer
    >> restrictions are required *by the model*.
    >>
    >> Note that in all this description, we haven't had to provide a formal
    >> definition of "nexus identifier".
    >> The reason is two fold.  First, independent of what we might use to
    >> identify them, the I_T nexus is defined as a relationship between a SCSI
    >> Initiator Port and a SCSI Target Port.  Assumption B says we can't have
    >two
    >> such relationships active at one time.  As I've noted above, the ISID
    >RULE
    >> enforces that.  Second, the nexus identifier doesn't get used in SAM-2
    >> explicitly anyway and in SAM-3 it will probably be "up to the transport
    >to
    >> define AND relative to the viewpoint of the initiator or target".  That
    >> last part means that the nexus identifier may not need a globally unique
    >> value, but may depend on whose end of the nexus you're looking from.
    >E.g.,
    >> the target side need only track the "relative target port" and need not
    >> care about the external address/name/identifier of that port when
    >defining
    >> its value for the nexus identifier.  In short, the nexus identifier issue
    >> is tangential (and we can safely skip it formally).
    >>
    >> Jim Hafner
    >>
    >> [P.S. See also the proposed rewrite of the relevant draft sections in the
    >> stuff I sent you off-line, as well, and see if that doesn't help
    >clarify.]
    >>
    >> "Mallikarjun C." <cbm@rose.hp.com>@ece.cmu.edu on 08/28/2001 06:20:16 pm
    >>
    >> Please respond to cbm@rose.hp.com
    >>
    >> Sent by:  owner-ips@ece.cmu.edu
    >>
    >> To:   ips@ece.cmu.edu
    >> cc:
    >> Subject:  RE: iSCSI: definition of TSID (2.11.4 of draft 07)
    >>
    >> Jim,
    >>
    >> Thanks for the explanation.
    >>
    >> >The model says that the *combination of ISID || TSID* has to be unique
    >> >between a given initiator and a given target.
    >>
    >> Actually, I do not find this formulation stated anywhere
    >> in rev07.
    >>
    >> The closest about TSID assignment policy is this sentence
    >> in section 1.5.3: "The TSID name space of the iSCSI Initiator
    >> should be partitioned among the target portal groups."
    >> My earlier comments were based on this quote.
    >>
    >> More importantly, let me try to understand the reasoning
    >> behind this formulation.  The only reason that I could come
    >> up with is to preclude a "parallel nexus".  In our previous
    >> conversation, we identified two types of nexus ids for this
    >> enforcement - a)InitiatorName-ISID-TargetName-TargetPortalGroupTag
    >> b)SSID-InitiatorName-TargetName.  By choosing the stated
    >> formulation (in conjunction with the ISID RULE), are you
    >> attempting to ensure that a parallel nexus cannot be created
    >> if one goes with either definition?
    >>
    >> Thanks.
    >> --
    >> Mallikarjun
    >>
    >> Mallikarjun Chadalapaka
    >> Networked Storage Architecture
    >> Network Storage Solutions Organization
    >> MS 5668   Hewlett-Packard, Roseville.
    >> cbm@rose.hp.com
    >>
    >> >Mallikarjun,
    >> >
    >> >What you suggest is *more* than is required for uniqueness!  Again,
    >that's
    >> >an implementation choice that goes beyond the model.
    >> >
    >> >The model says that the *combination of ISID || TSID* has to be unique
    >> >between a given initiator and a given target.
    >> >When you say " If there are multiple sessions with an initiator, each
    >> would
    >> >anyway be assigned a different TSID"  you are assuming that the TSID
    >alone
    >> >provide the uniqueness (between a pair).   It can, but it's more than is
    >> >necessary.
    >> >
    >> >In short, you're still selecting an implementation.   Here's two other
    >> >implementations.  Suppose I have exactly one Target Portal Group.  Then
    >I
    >> >can meet the uniqueness requirements by (a) enforcing the ISID RULE and
    >> (b)
    >> >using TSID=1 *for every session*!  This one is "minimalist" with respect
    >> to
    >> >the model.  (Because there is only one portal group, I can leverage the
    >> >uniqueness of the ISID to meet the general uniqueness rule -- it's very
    >> >different if I have more portal groups (see note below)) The
    >"maximalist"
    >> >implementation with respect to the model is (a) enforce the ISID RULE
    >and
    >> >(b') use a unique TSID for each session I have regardless of initiator
    >> >name!
    >> >
    >> >The spec should say what is required to implement the model.  In my
    >mind,
    >> >that's the rule that says the combination of ISID and TSID (the SID)
    >must
    >> >be unique between a pair (initiator and target).   And that's all I'm
    >> >asking for in the definition of TSID.
    >> >
    >> >Jim Hafner
    >> >
    >> >Note: If I had more than one portal group, I might legitimately see the
    >> >same ISID (from the same initiator) come in to each portal group.  In
    >that
    >> >case, I need to use a different TSID for each such occurrence.  If I
    >say,
    >> >for example, that each portal group always uses it's portal group tag as
    >> >it's TSID (not required, just a choice), then I get uniqueness of SID's
    >> >again.  This is again, a minimalist implementation with respect to the
    >> >model.   This also gives an example of why the TSID namespace "should"
    >be
    >> >partitioned between the portal groups, so they can always be sure that
    >> they
    >> >won't accidentally create an SID that is the same as an existing one.
    >As
    >> >long as the "half" of the SID one portal group generates is different
    >from
    >> >the half generated by another portal group, there will be no chance of
    >> >collision.  [This is delegation of naming authority!!!]  The same
    >> principle
    >> >holds on the initiator side in how it generates ISIDs.
    >> >
    >> >Are we getting closer?
    >> >
    >> >"Mallikarjun C." <cbm@rose.hp.com>@ece.cmu.edu on 08/28/2001 04:10:24 pm
    >> >
    >> >Please respond to cbm@rose.hp.com
    >> >
    >> >Sent by:  owner-ips@ece.cmu.edu
    >> >
    >> >
    >> >To:   Jim Hafner/Almaden/IBM@IBMUS
    >> >cc:   ips@ece.cmu.edu
    >> >Subject:  RE: iSCSI: definition of TSID (2.11.4 of draft 07)
    >> >
    >> >
    >> >
    >> >Jim,
    >> >
    >> >I see your point about the current wording possibly suggesting
    >> >an implementation option.
    >> >
    >> >Can I suggest the following text:
    >> >
    >> >  The TSID is a target-assigned tag which together with the
    >InitiatorName
    >> >  uniquely identifies the session within the target.
    >> >
    >> >It appears to me that it's all that's required for uniqueness, I
    >> >don't think we need to mention ISID here.  If there are multiple
    >> >sessions with an initiator, each would anyway be assigned a different
    >> >TSID.  What am I missing?
    >> >--
    >> >Mallikarjun
    >> >
    >> >
    >> >Mallikarjun Chadalapaka
    >> >Networked Storage Architecture
    >> >Network Storage Solutions Organization
    >> >MS 5668   Hewlett-Packard, Roseville.
    >> >cbm@rose.hp.com
    >> >
    >> >
    >> >>Marj,
    >> >>
    >> >>Comments in line (as usual...).  But for the person of few words, I'd
    >> >agree
    >> >>with just this text (your first sentence only):
    >> >>
    >> >>"The TSID is the target assigned tag for a session with a specific
    >named
    >> >>initiator
    >> >>that, together with the ISID uniquely identifies a session with that
    >> >>initiator."
    >> >>
    >> >>(I moved the word "name" around because the session is with the
    >initiator
    >> >>not with the name.)
    >> >>
    >> >>Jim Hafner
    >> >>
    >> >>
    >> >>"KRUEGER,MARJORIE (HP-Roseville,ex1)" <marjorie_krueger@hp.com>
    >> >@ece.cmu.edu
    >> >>on 08/28/2001 02:46:45 pm
    >> >>
    >> >>Sent by:  owner-ips@ece.cmu.edu
    >> >>
    >> >>
    >> >>To:   ips@ece.cmu.edu
    >> >>cc:
    >> >>Subject:  RE: iSCSI: definition of TSID (2.11.4 of draft 07)
    >> >>
    >> >>
    >> >>
    >> >>I'm curious why you've phrased it this way.  I think of it more like;
    >> >>
    >> >>"The TSID is the target assigned tag for a session with a specific
    >> >>initiator
    >> >>name that, together with the ISID uniquely identifies a session with
    >that
    >> >>initiator.
    >> >><JLH>
    >> >>I don't really see the subtle difference between this text and mine, so
    >I
    >> >>guess I don't have any problem with it.  At least it doesn't bind the
    >> >>definition to anything SCSI'ish.
    >> >></JLH>
    >> >>
    >> >>However, the target MUST enforce uniqueness of the SSID for a given I_T
    >> >>combination (in order for login and recovery rules to make sense).
    >> >><JLH>
    >> >>I think I see what you're getting at here, but I don't think the words
    >> >>capture it (it looks like an incorrect use of "I_T nexus" (a SCSI
    >thing).
    >> >>Do you mean:
    >> >>
    >> >>  "However, the target MUST enforce the uniqueness of the SSID [aside:
    >> >>isn't this 'SID'?] for sessions with a given initiator."
    >> >>
    >> >>If so, I can go with this text, but I think this is stated in other
    >> places
    >> >>and need not be here.  But I won't argue if it is also here.
    >> >></JLH>
    >> >>
    >> >>The TSID MAY be a unique tag for a session with a specific initiator
    >> >name."
    >> >><JLH>
    >> >>I don't think this belongs at all.  It is an implementation statement
    >and
    >> >>so outside the scope.  It's a true statement, but I don't think it
    >should
    >> >>be made explicit (especially in this part of the document -- I'd have
    >> less
    >> >>problem with this in the "Notes to Implementers" but even then it is
    >> >>suggesting a prefered(?) implementation).
    >> >></JLH>
    >> >>
    >> >>I know the last "rule" is more for convenience than to follow the
    >> >"modeling
    >> >>rules" (but that's the most straight forward way to implement TSID
    >> >>assignment?).  From the target viewpoint, it must first set the context
    >> of
    >> >>the initiator name, secondly the ISID.
    >> >><JLH>
    >> >>First, it's not necessarily the most straightforward way. It could
    >> >generate
    >> >>a unique TSID for every session regardless of initiator name.  That
    >gives
    >> >>it a twobyte pointer to the session context.  That's a lot more
    >efficient
    >> >>(perhaps) than having to also have an initiator name in that "pointer".
    >> >>So, if you go with your implementation, you have to index on the
    >> >name+TSID,
    >> >>and that's too big, so you need an indirect pointer to the context and
    >at
    >> >>that point it doesn't really matter what the TSID is relative to other
    >> >>TSIDs; you can use the name + joint SID=ISID||TSID as your index (it's
    >> >only
    >> >>2 bytes more out of a possible 258!).
    >> >>
    >> >>So, I argue for no statement about implementation options, leave that
    >to
    >> >>the clever programmers!
    >> >></JLH>
    >> >>
    >> >>Marjorie Krueger
    >> >>Networked Storage Architecture
    >> >>Networked Storage Solutions Org.
    >> >>Hewlett-Packard
    >> >>tel: +1 916 785 2656
    >> >>fax: +1 916 785 0391
    >> >>email: marjorie_krueger@hp.com
    >> >>
    >> >>> -----Original Message-----
    >> >>> From: Jim Hafner [mailto:hafner@almaden.ibm.com]
    >> >>> Sent: Tuesday, August 28, 2001 12:59 PM
    >> >>> To: ips@ece.cmu.edu
    >> >>> Subject: iSCSI: definition of TSID (2.11.4 of draft 07)
    >> >>>
    >> >>>
    >> >>> Folks,
    >> >>>
    >> >>> The following text defines TSID in referenced document (and with the
    >> >>> changes proposed by Mallikarjun):
    >> >>>
    >> >>> "The TSID is a tag that identifies the SCSI initiator port.
    >> >>> TSID is set by
    >> >>> the target.  It MUST be valid only in the final response."
    >> >>>
    >> >>> I'm trying to figure out what the TSID has to do with the
    >> >>> SCSI initiator
    >> >>> port.  As I understand it, they are completely unrelated (at an
    >> >>> architecture level).  In implementation may choose to use the
    >> >>> TSID as a
    >> >>> pointer to the session in a unique way across all sessions in
    >> >>> the target or
    >> >>> in a unique way across all sessions with a given named iSCSI
    >> >>> initiator or
    >> >>> it can do any number of other things.  It is, in my opinion,
    >> >>> unrelated to
    >> >>> the SCSI initiator port.
    >> >>>
    >> >>> I would propose the following alternative text:
    >> >>>
    >> >>> "The TSID is a tag set by the target that, together with the ISID,
    >> >>> identifies a unique session with the initiator."
    >> >>>
    >> >>> Comments?
    >> >>>
    >> >>> Jim Hafner
    >> >>>
    >> >>
    >> >>
    >> >>
    >> >>
    >> >
    >> >
    >> >
    >> >
    >> >
    >> >
    >
    >
    >
    
    
    


Home

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