|
[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 |