|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: Login interoperability versus efficiencyHoward, Comments in text - Julo "Cunningham, Howard" <Howard.Cunningham@spirentcom.com> Sent by: owner-ips@ece.cmu.edu 05-11-01 17:19 Please respond to "Cunningham, Howard" To: ips@ece.cmu.edu cc: Subject: Login interoperability versus efficiency I know that this is probably too late but I am concerned that some of iSCSI source code that I have seen indicates some development centers may not be considering all of the possible complexities of the session and connection establishment. Since I am a test equipment vendor, I have been silently waiting as the login process has settled and hoping it would converge on a solution with assured interoperability. It seems that efficiency (minimize the number of PDU exchanges) has been preferred to simplicity. Let me ask a question to higlight my concern: Assume I am an Initiator who would like to get to full-feature phase as quickly as possible but I am willing authenticate. So I issue: I-> Login (CSG=0, NSG=3,T=1) InitiatorName=iqn.1999-07.com.os.hostif.77 TargetName=iqn.1999-07.com.acme.diskarray.sn.88 AuthMethod=SRP,none SessionType=normal FMarker=send,no ImmediateData=yes,no InitiatR2T=yes,no As I read the draft I believe this is a valid PDU. It is not clear to me: 1. Can the operational parameters be negotiated by the target along with the AuthMethod=SRP? ++++ Operational parameters can't be negotiated together with authentication This sequence will result in the session being dropped. +++ T->Login (CSG=0, NSG=1,T=0) AuthMethd=SRP FMarker=receive ImmediateData=no InitialR2T=no 2. Does the target 'defer' the operational parameters until after authentication (so that they are not 'revealed' to an unauthenticated party? 3. Does the target ignore or reject the initiator operational parameters? 4. Is this implementation dependent? +++ It was the group's will that parameters be segregated in stages. ++++ Just as authentication messages are rigid in nature (e.g., Intiator MUST send TargetAuth=yes along with SRP-U and not later with SRP_M - why not make two kinds of SRP - unidirectional, bidirectional?), why not make the entire login process more structured? At one time there were four possible values to CSG and NSG (I believe) and I would support a return to them with a more structured process. What I propose is: 1. Stage 0 =Identication stage - Intiator and target identify each other, decide type of session and what kind of authentication 1=Authentication stage - Initiator and target authenticate each other (optional) 2=Operational stage - Initiator and target explicitly agree on operational parameters 3=FullFeature stage +++ There are 3 distinct stages - and consesus on them was reached +++ 2. The first login request PDU (CSG=0) for any connection (new session or add-on) from the Initiator can only contain ONLY: InitiatorName {no default}, AuthMethod {no default}, SessionType (default normal), TargetName {if SessionType=normal, no default} Arguably not sending a TargetName could imply a discovery session. These keys can ONLY be in this first PDU. 3. The first login response PDU from the target can only contain: AuthMethod=... with NSG=1 OR "login accepted" with NSG=2 OR "login rejected" 4. After the Initiator and Target have agreed to the authentication method if any, they exchange stage 1 authentication PDUs as appropriate and then transition to stage 2. 5. In Stage 2, the Initiator and Target negotiate operational parameters using ONLY TextOut PDUs and then transition to stage 3. I could live with using Login PDUs here instead of TextOut since the CSG has changed. 6. TextOut PDUs in stage 3 could be used ONLY to query operational parameters (which I think could be eliminated entirely). 7. With the more rigid process, the CSG and NSG are not really needed in the PDUs. So for the 'simple' no authentication Discovery session, there would be 1 login PDU exchange the Initiator TextOut PDU (MaxRcvPDULength=..., SendTargets=...) the Target TextOut replies 1 logout PDU exchange For the 'simple' no authentication Normal session, there would be 1 login PDU exchange the Initiator TextOut PDU with negotiated operational parameters the Target TextOut reply negotiation results ----- full feature ------------- 1 logout PDU exchange In this case, there is a mandatory, 'possibly extra' TextOut exchange to get to full-feature phase. I would argue that this is not significant for performance. Structure can be used to make things simpler and ease interoperability. Regards... ++++ I suggest you reread section 5 +++ Howard Cunningham, Senior MTS Spirent Communications 900 Main Campus Drive, Suite 201 Raleigh, NC 27606 Voice: +1 (919) 829-6332 Fax: +1 (919) 829-6400 Email: howard.cunningham@spirentcom.com
Home Last updated: Mon Nov 05 16:17:36 2001 7562 messages in chronological order |