Subject: iSCSI: Case-sensitivity in iSCSI names

From: Mark Bakke <[email-masked]>
Date: Tue, 17 Jul 2001 15:28:52 -0500

We are attempting to wrap up all of the issues surrounding
the creation and comparison of iSCSI initiator and target
names.  One of these is whether the names are case-sensitive.

The last naming & discovery draft stated that the names are
case-insensitive; this was to allow better transcribability
in cases where names were communicated outside the automated
discovery processes.

This comes at some expense, particularly since these names
are defined to allow UTF-8 encoding of international character
sets.  Initiators and targets would have to include code to
compare these sets.

To simplify implementation and interoperability, it has been
recommended that we make iSCSI names case-sensitive instead.

I am fine with doing this, and I think that we could even
get some of the usability back by adding these rules:

- iSCSI names MUST be case-sensitive, and compared strictly
  byte-for-byte.

- iSCSI names SHOULD be generated in a case-insensitive
  manner.

I'm not sure how to properly word the latter, but the intent
is that someone generating the names would not produce both:

  iqn.9.com.cisco.myiscsithing

and

  iqn.9.com.cisco.MyIscsiThing

since a user would be likely to confuse these.  Again, it doesn't
affect the protocol itself, just its usability.

Any thoughts?  Will it hurt anyone's plans if iSCSI names were
case-sensitive?

-- 
Mark A. Bakke
Cisco Systems
[email-masked]
763.398.1054

---

From: "Jim Hafner" <[email-masked]>
Date: Tue, 17 Jul 2001 05:00:57 +0100

Mark,

Though we (NDT) had originally thought that having the names
case-insensitive (because many names would be derived from IPnames, which
are case insensitive), perhaps your suggestion is the simplest solution
(both for implementation and specifictation).

In short, I have no objections to making the name case-sensitive for all
the reasons you mentioned.

Jim Hafner

Mark Bakke <[email-masked]>@ece.cmu.edu on 07/17/2001 09:28:52 PM

Sent by:  [email-masked]

To:   IPS <[email-masked]>
cc:
Subject:  iSCSI: Case-sensitivity in iSCSI names

and

--
Mark A. Bakke
Cisco Systems
[email-masked]
763.398.1054

---

From: "John Hufferd" <[email-masked]>
Date: Tue, 17 Jul 2001 22:53:56 -0700

Mark,
You are talking about things that are entered by administrators.  They will
have a lot of finger checks.  I do not see why we would like to encourage
admin problems by making these things Case Sensitive.  Imagine, one
administrator trying to tell another over the phone, what the name should
be used.

I would vote for Case insensitive names.

.
.
.
John L. Hufferd
Senior Technical Staff Member (STSM)
IBM/SSG San Jose Ca
Main Office (408) 256-0403, Tie: 276-0403,  eFax: (408) 904-4688
Home Office (408) 997-6136
Internet address: [email-masked]

Mark Bakke <[email-masked]>@ece.cmu.edu on 07/17/2001 01:28:52 PM

and

--
Mark A. Bakke
Cisco Systems
[email-masked]
763.398.1054

---

From: "John Hufferd" <[email-masked]>
Date: Thu, 19 Jul 2001 00:40:50 -0700

I can live with this.

.
.
.
John L. Hufferd

Mark Bakke <[email-masked]>@cisco.com on 07/18/2001 02:18:23 PM

Sent by:  [email-masked]

To:   Julian Satran/Haifa/IBM@IBMIL
cc:   John Hufferd/San Jose/IBM@IBMUS, "IPS <ips"
Subject:  Re: iSCSI: Case-sensitivity in iSCSI names

Here are the new rules:

- iSCSI names are case-sensitive.
- iSCSI names are UTF-8 encoded.
- iSCSI names are compared byte-for-byte; there is no need
  to translate them to upper or lower case.

The above will keep iSCSI implementations simpler.

Now, from the user side, we don't want to see conflicts like

  iqn.0.com.acme.foo42

and

  iqn.0.com.acme.Foo42

The above are technically not the same name to an iSCSI
implementation.

However, it would not be in anyone's best interest for
acme.com to assign two names that are identical if they
were both translated to lower case.

So we need a few MUSTs, or at least SHOULDs, to make this
easier on anyone having to type these in:

- An iSCSI name MUST NOT be generated such that if converted
  to lower case, it conflicts with any other iSCSI name
  converted to lower case.

- iSCSI names SHOULD be generated to use lower case of their
  appropriate character set.

- An iSCSI implementation MAY accept an iSCSI name that, if
  converted to lower case, matches another iSCSI name that it
  recognized.

The third rule depends on the first being implemented, and
gives implementations the flexibility to do case-insensitive
comparisons if they so choose.

What do you think?

Mark

Julian Satran wrote:
>
> John,
>
> Case insesitive is bad for I18N
>
> Julo
>
> "John Hufferd" <[email-masked]> on 18-07-2001 08:53:56
>
> Please respond to "John Hufferd" <[email-masked]>
>
> To:   Mark Bakke <[email-masked]>
> cc:   IPS <[email-masked]>
> Subject:  Re: iSCSI: Case-sensitivity in iSCSI names
>
> Mark,

--
Mark A. Bakke
Cisco Systems
[email-masked]
763.398.1054

---

From: Mark Bakke <[email-masked]>
Date: Tue, 24 Jul 2001 14:27:16 -0500

Bob-

Very useful comments.  I had not seen the idn-nameprep draft, and
am somewhat surprised that I missed it when I was looking for this
stuff before.  I just read through nameprep-05, and it looks like
the sort of thing that I had in mind by recommending that names
be generated in lower case of whatever character set was being used.

Anyway, if this is to be used for domain names, we ought to use it,
too.  Any idea when it will be an RFC?

More comments below.

--
Mark

Robert Snively wrote:
> 
> I am concerned about this approach for two reasons.
> 
> 1)  Name server programs do not allow case insensitivity.
> 
> If I understand correctly from my admittedly incomplete experience
> in this area, the names must be entered through an appropriate
> application.  Different systems and applications allowed to enter
> such names may actually create different encodings for each character
> that is represented. As one example, three separate encodings are
> identified in draft-duerst-i18n-norm-04.txt for the character
> LATIN CAPITAL LETTER A WITH RING ABOVE.  Thus, what you typed
> into the system would not be able to be found in a "case-sensitive"
> international environment unless the original name happened to be
> made by a program that used the same encoding, even though the
> characters look identical.  The solution being proposed is that
> all names go through a "NAMEPREP" process described in
> draft-ietf-idn-nameprep-05.txt.  That process maps all
> permitted code points to a normalized code point, including
> forcing the names to be case insensitive.  That is (again if
> I understand it correctly), the character "B" will be mapped to
> the character "b" before it is ever used by a name service program.
> Thus, we are fooling ourselves if we expect a B to be differentiated
> from a b by any compliant name server.

I was hoping that nobody would generate both "B" and "b" anyway, but
the definition in NAMEPREP is much better.

> 2)  Name registration will become painful (and perhaps expensive)
> 
> If I understand correctly how domain names are registered, they
> are presently registered by the case-insensitive character
> string.  If I make the name of a SCSI device case sensitive, it
> implies that a name must now be registered in all its case sensitive
> variations.  Thus a company like Cisco must register a minimum
> of three variations of the name, Cisco, CISCO, and cisco to be
> reasonably assured of correct resolution to the domain.  This
> strikes me as a significant complication of the registration
> process.

OK

> Assuming I have understood this environment correctly, I see two
> possible solutions to these problems.
> 
> 1)  My original thought was to make the names using manufacturer
>     established invariant binary values, using an appropriate
>     World-Wide-Name like the EUI-64.  Those have the benefit
>     of being internationalized to all countries that use
>     binary or hexadecimal numbers.  They have the inconvenience
>     of requiring an installation process that maps them to
>     a locally assigned user-friendly name, but those installation
>     processes would normally be automated anyway.  The user-friendly
>     name would probably be the domain name of the local network
>     modified by appropriate locally assigned variables.
> 
>     This is in some sense like the Ethernet MAC names which are
>     world-wide unique invariant formats that are mapped to
>     convenient IP addresses and domain names.

This is allowed in iSCSI names by using the "eui" format, for
those who can use EUI-64.

> 2)  Since my original thought has long ago been discarded by

This wasn't thrown out; it is still there, and fully supported.  It
just didn't meet everyone's requirements.  I would expect different
types of products to use EUI-64 than the other mechanisms.

>     the naming committee, then I think we must at least require
>     that the names be unique within the context of the NAMEPREP
>     character mappings, which include not only case insensitivity,
>     but the mapping of many specialized characters to normalized
>     characters.  This context also requires the prohibition of
>     certain characters.
> 
>     This is equivalent to rewording Mark's stated rule:
> 
>         - iSCSI names SHOULD be generated in a
>         case-insensitive manner.
> 
>     to say instead:
> 
>         - iSCSI names SHALL be generated using the normalized characters
>         that would be generated by processing through NAMEPREP.

I really like this; it is a much stronger statement, and NAMEPREP can
remove some of the ambiguity of "case-insensitive manner".

>     This has the advantage of allowing direct comparison,
>     but requires some thought during the generation of the names.
> 
> It seems to me that these are the only two approaches that do not
> require the installation of the NAMEPREP pre-processing in the
> compare function.

The thing I really like about this is that anyone comparing iSCSI
names does not have to worry about any of this stuff; a byte-compare
is all that's needed.  Anyone generating the names only needs to
put in NAMEPREP if the names are based on a source that might need
to be mapped.  Anyone building user interfaces for this stuff has
the option to put in NAMEPREP to make things easier for their users,
but can decide this on their own.

> References that I found useful in this include:
> 
>         draft-duerst-i18n-norm-04.txt
>         draft-ietf-idn-idne-02.txt
>         draft-ietf-idn-nameprep-05.txt
>         draft-skwan-utf8-dns-06.txt

Anyway, thanks for the reference.

--
Mark

> Bob Snively                        e-mail:    [email-masked]
> Brocade Communications Systems     phone:  408 487 8135
> 1745 Technology Drive
> San Jose, CA 95110

> -----Original Message-----
> From: Mark Bakke [mailto:[email-masked]]
> Sent: Tuesday, July 17, 2001 1:29 PM
> To: IPS

-- 
Mark A. Bakke
Cisco Systems
[email-masked]
763.398.1054

---

From: "Jim Hafner" <[email-masked]>
Date: Tue, 24 Jul 2001 14:24:06 -0700

Mark and Bob,

This looks like exactly what we want.  In short, whatever rules should be
applied to domain names should be applied to iSCSI names.  This seems to be
a very clean way to express that principle.

Thanks Bob!

Jim Hafner

Mark Bakke <[email-masked]>@ece.cmu.edu on 07-24-2001 12:27:16 PM

To:   Robert Snively <[email-masked]>
cc:   IPS <[email-masked]>
Subject:  Re: iSCSI: Case-sensitivity in iSCSI names

Bob-

More comments below.

--
Mark

OK

--
Mark

--
Mark A. Bakke
Cisco Systems
[email-masked]
763.398.1054

---

From: "ERICKSON,SHAWN (HP-Roseville,ex1)" <[email-masked]>
Date: Tue, 24 Jul 2001 19:26:47 -0700

Have room for one more on that wagon..? Sounds like a good way to go.

-------------------------------------------------------
 Shawn Carl Erickson           (805) 883-4319 [Telnet]
 Hewlett Packard Company         OV NSSO Joint Venture
  Storage Resource Management R&D Lab (Santa Barbara)
-------------------------------------------------------
            <http://ecardfile.com/id/shawnce>
-------------------------------------------------------

> From: John Hufferd [mailto:[email-masked]]
> Sent: Tuesday, July 24, 2001 3:34 PM
> To: Jim Hafner
> Cc: [email-masked]
> I want to jump on this bandwagon too.  This seems to be 
> exactly the right
> approach.
> 
> .
> .
> .
> John L. Hufferd
> Jim Hafner/Almaden/IBM@[email-masked] on 07/24/2001 02:24:06 PM
> 
> To:   [email-masked]