Subject: Re: iSCSI: DLB's Comment on SCSI Port Names

From: "Jim Hafner" <[email-masked]>
Date: Mon, 8 Jul 2002 08:42:16 -0700

David,

You wrote: 

>[T.9] 2.4.2  SCSI Architecture Model
>
>  The SCSI Port Name is mandatory in iSCSI. When used in SCSI
>  parameter data, the SCSI port name MUST be encoded as:
>  - The iSCSI Name in UTF-8 format, followed by
>  - a comma separator (1 byte), followed by
>  - the ASCII character 'i' (for SCSI Initiator Port) or the 
>    ASCII character 't' (for SCSI Target Port), followed by
>  - a comma separator (1 byte), followed by
>  - zero to 3 null pad bytes so that the complete format is a
>    multiple of four bytes long, followed by
>  - the 6byte value of the ISID (for SCSI initiator port) or the
>    2byte value of the portal group tag (for SCSI target port) in 
>    network byte order (BigEndian).

> That's a peculiar format with padding nulls in the middle and
> a number concatenated after the padding - for example, it can't
> be passed in iSCSI login without format conversion.  How about
> converting the number to 4 or 12 bytes of hex (ASCII characters)
> and moving the padding to the end so the result is actually a
> string, and excluding the padding from the definition of the name?
> This will increase the maximum length of port names, but produce
> names that are easier to deal with.

Admittedly that's an odd format, however here was the reason for this 
layout.
1) it's not used directly in iSCSI "Text" strings; it's intended to be a 
description of how this information is packed into a byte array for 
representation in "SCSI parameter data" (as it says!) -- that is, it's 
NEVER "passed in iSCSI login" (in this form).
2) the padding after the string was to force the binary values of the ISID 
or PGT to be better word aligned and can be more easily extracted as a 
value direct from the byte array without conversion.

What do you think?

Jim Hafner

---

From: [email-masked]
Date: Mon, 8 Jul 2002 11:47:01 -0400

Jim,

My view of this is that either:
- The SCSI Port Name is never going to be used, in which case
	it shouldn't be designed to this level of detail. OR
- It's going to be used, and hence is worth designing in a fashion
	that is reasonable to use.
I think we're in the second category, and turning the ISID into
hex ASCII (well, UTF-8) so the SCSI port name is a string is
worth doing now to avoid problems when people actually try
to use it.  I would have no problems if someone wanted to
pad the string, but I'd make specifying the padding the
responsibility of the protocol/API/situation in which it
was used rather than incorporating the padding into the name.

Thanks,
--David

-----Original Message-----
From: Jim Hafner [mailto:[email-masked]]
Sent: Monday, July 08, 2002 11:42 AM
To: [email-masked]
Cc: [email-masked]
Subject: Re: iSCSI: DLB's Comment on SCSI Port Names

David, 

Admittedly that's an odd format, however here was the reason for this
layout. 
1) it's not used directly in iSCSI "Text" strings; it's intended to be a
description of how this information is packed into a byte array for
representation in "SCSI parameter data" (as it says!) -- that is, it's NEVER
"passed in iSCSI login" (in this form). 
2) the padding after the string was to force the binary values of the ISID
or PGT to be better word aligned and can be more easily extracted as a value
direct from the byte array without conversion. 

What do you think? 

Jim Hafner

---

From: "Jim Hafner" <[email-masked]>
Date: Mon, 8 Jul 2002 09:08:26 -0700

David,

I believe it will (may?) be used, so I agree we're in the second case. 
However, this format is the intended use in SCSI protocol stuff.  Two 
places where SCSI ports names are used now is in ALIAS, Access Controls 
and in third party reservations -- see caveat below, however)

I don't see a need in this context to define these as strings (that's not 
a SCSI way of thinking...). 

However, I think the issue comes down to a simple question:  are the ISID 
and TPGT values or numerical strings (Julian is calling them numerical 
strings, but I've always thought of them as values, in spite of the fact 
that there is no arithmetic done on them - there is precedent in SCSI for 
such thinking, so I'm not completely out in the woods here). 

If they are values, then I'd like to see them formatted for SCSI in "value 
form";  if they are strings, then any representation should be OK.

Does that at least get to the core of the issue?

Jim Hafner

CAVEAT: I don't think we'd use the iSCSI constructed port names in those 
contexts as device names are better suited for those purposes, but these 
are examples where specification of SCSI port name format is required. 

To:     Jim Hafner/Almaden/IBM@IBMUS
cc:     [email-masked] 
Subject:        RE: iSCSI: DLB's Comment on SCSI Port Names

Jim,

Thanks,
--David

-----Original Message-----
From: Jim Hafner [mailto:[email-masked]]
Sent: Monday, July 08, 2002 11:42 AM
To: [email-masked]
Cc: [email-masked]
Subject: Re: iSCSI: DLB's Comment on SCSI Port Names

David,

NEVER
value

What do you think?

Jim Hafner

---

From: "KRUEGER,MARJORIE (HP-Roseville,ex1)" <[email-masked]>
Date: Mon, 8 Jul 2002 18:22:44 -0700

Correction - 244 characters max node name would provide for a 255 max port
name = (244 char name + ",i," + "0x000000") (How did ISID get so big ;-)

If strings over 256 characters are a problem for some platforms, I'd be in
favor of reducing the max iSCSI node name to 249 characters so the maximum
SCSI port name would be 255 characters total (249 char name + ",i," +
"0x0000")

---

From: "KRUEGER,MARJORIE (HP-Roseville,ex1)" <[email-masked]>
Date: Wed, 10 Jul 2002 19:15:57 -0700

Julo,
I'm a bit confused as the issues list on your website does not have this as
issue 37, and all I see is issue 9 (where your comment appears to imply "no
change"?)
 
In any case, here's what I recommend:
 
In sec 1.1 Definitions change the following definitions to:
 
I_T Nexus:  the last sentence should be
 
The I_T nexus can be identified by the conjunction of the SCSI port names;
that is, the I_T nexus identifier is the tuple (iSCSI Initiator Name +
',i,'+ ISID, iSCSI Target Name + ',t,'+ Portal Group Tag).
 
SCSI Port Name: definition should be
 
A name made up as UTF-8 characters and includes the  iSCSI Name + ',i,' or
',t,' + ISID or Portal Group Tag
 
In sec 2.2.7, 1st paragraph, delete the comment in parenthesis starting with
"(for iSCSI,.." (or change it to point it to section 2.4.2, your choice).
 
In sec 2.4.2, change the text to:
 
  When used in SCSI parameter data, the SCSI port name MUST be encoded as:
      - The iSCSI Name in UTF-8 format, followed by
      - a comma separator (1 byte), followed by
      - the ASCII character 'i' (for SCSI Initiator Port) or the 
       ASCII character 't' (for SCSI Target Port), followed by 
      - a comma separator (1 byte), followed by
      - A string representation (<numerical-value>, see section 4.1 Text
Format)
       of the ISID (for SCSI initiator port) or the portal group tag (for
SCSI target port).
       SCSI port names have a maximum length of 255 bytes.
       The ASCII character 'i' or 't' is the label that identifies this port

       as either a SCSI Initiator Port or a SCSI Target Port.

The 255 max port name makes for a 237 max iSCSI node name (check my math Jim
:-) as the max character representation of an ISID is 15 characters for the
largest decimal representation (14 char for the largest hex), + 3 char
(",i,") + 237 = 255
 
The change in max node name causes changes to:
 
sec 2.2.6.1, paragraph 2, 
sec 2.2.6.2, 2nd p, 3rd bullet
 
I will see that a change is proposed to Annex A in whatever SAM doc is
currently under revision.
 
Thanks,
Marjorie Krueger
Networked Storage Architecture
Networked Storage Solutions Org.
Hewlett-Packard

-----Original Message-----
From: Julian Satran (Actcom) [mailto:[email-masked]]
Sent: Tuesday, July 09, 2002 6:44 AM
To: KRUEGER,MARJORIE (HP-Roseville,ex1); 'Jim Hafner'; [email-masked]
Cc: ips
Subject: Re: iSCSI: DLB's Comment on SCSI Port Names

Marjorie,
 
I'll list this as issue 37 and I think we can settle on 249 :-)
I would appreciate if you let me know what constants change (in 2.4.2?)
 
Julo

----- Original Message ----- 
From: KRUEGER,MARJORIE  <mailto:[email-masked]> (HP-Roseville,ex1) 
To: 'Jim Hafner' <mailto:[email-masked]>  ; [email-masked]
<mailto:[email-masked]>  
Cc: [email-masked] <mailto:[email-masked]>  
Sent: Tuesday, July 09, 2002 4:04 AM
Subject: RE: iSCSI: DLB's Comment on SCSI Port Names

I've just encountered this issue with regards to iSCSI port name encoding in
the SCSI MIB, and the currently specified port name encoding causes
inconvenience (at best).  IMO, it makes sense to be able to treat an iSCSI
name field, be it device name or port name, the same - as a string of
display characters, portions of which may contain ASCII-encoded numeric
values.
 
I don't really see that it makes a difference whether one views ISID and
TPGT as numeric strings or values, since as Jim says, there are no
calculations performed using these things, and they are basicly just "tags".
The issue for me is that the rest of the "SCSI port name" is a string and I
see no value in "encoding" the ISID or TPGT as a value for SCSI purposes, as
SCSI should have no need to use the ISID or TPGT values separately from the
entire port name.  And even if SCSI had such a need, it's a simple matter to
convert a numeric string representation to a value.
 
The downside of a string-encoding is the increased maximum size of the SCSI
port name.

Marjorie Krueger
Networked Storage Architecture
Networked Storage Solutions Org.
Hewlett-Packard

-----Original Message-----
From: Jim Hafner [mailto:[email-masked]]
Sent: Monday, July 08, 2002 9:08 AM
To: [email-masked]
Cc: [email-masked]
Subject: RE: iSCSI: DLB's Comment on SCSI Port Names

David, 

I believe it will (may?) be used, so I agree we're in the second case.
However, this format is the intended use in SCSI protocol stuff.  Two places
where SCSI ports names are used now is in ALIAS, Access Controls and in
third party reservations -- see caveat below, however) 

I don't see a need in this context to define these as strings (that's not a
SCSI way of thinking...).   

Jim Hafner

CAVEAT: I don't think we'd use the iSCSI constructed port names in those
contexts as device names are better suited for those purposes, but these are
examples where specification of SCSI port name format is required. 

Jim,

Thanks,
--David

-----Original Message-----
From: Jim Hafner [mailto:[email-masked]]
Sent: Monday, July 08, 2002 11:42 AM
To: [email-masked]
Cc: [email-masked]
Subject: Re: iSCSI: DLB's Comment on SCSI Port Names

David,

What do you think?

Jim Hafner

---

From: "Julian Satran" <[email-masked]>
Date: Fri, 12 Jul 2002 05:00:58 +0300

Marjorie,

Thanks for your complete and timely answer.

Regards,
Julo

"KRUEGER,MARJORIE (HP-Roseville,ex1)" <[email-masked]>
07/11/2002 05:15 AM
Please respond to "KRUEGER,MARJORIE (HP-Roseville,ex1)"

        To:     Julian Satran/Haifa/IBM@IBMIL
        cc:     ips <[email-masked]>
        Subject:        RE: iSCSI: DLB's Comment on SCSI Port Names

Julo,
I'm a bit confused as the issues list on your website does not have this 
as issue 37, and all I see is issue 9 (where your comment appears to imply 
"no change"?)

 

 
 
In sec 2.2.7, 1st paragraph, delete the comment in parenthesis starting 
with "(for iSCSI,.." (or change it to point it to section 2.4.2, your 
choice).

  When used in SCSI parameter data, the SCSI port name MUST be encoded as:
      - The iSCSI Name in UTF-8 format, followed by
      - a comma separator (1 byte), followed by
      - the ASCII character 'i' (for SCSI Initiator Port) or the 
       ASCII character 't' (for SCSI Target Port), followed by 
      - a comma separator (1 byte), followed by
      - A string representation (<numerical-value>, see section 4.1 Text 
Format)
       of the ISID (for SCSI initiator port) or the portal group tag (for 
SCSI target port).
       SCSI port names have a maximum length of 255 bytes.
       The ASCII character 'i' or 't' is the label that identifies this 
port 
       as either a SCSI Initiator Port or a SCSI Target Port.
The 255 max port name makes for a 237 max iSCSI node name (check my math 
Jim :-) as the max character representation of an ISID is 15 characters 
for the largest decimal representation (14 char for the largest hex), + 3 
char (",i,") + 237 = 255

 
 
Thanks,
Marjorie Krueger
-----Original Message-----
From: Julian Satran (Actcom) [mailto:[email-masked]]
Sent: Tuesday, July 09, 2002 6:44 AM
To: KRUEGER,MARJORIE (HP-Roseville,ex1); 'Jim Hafner'; [email-masked]
Cc: ips
Subject: Re: iSCSI: DLB's Comment on SCSI Port Names

Marjorie,

Julo
----- Original Message ----- 
From: KRUEGER,MARJORIE (HP-Roseville,ex1) 
To: 'Jim Hafner' ; [email-masked] 
Cc: [email-masked] 
Sent: Tuesday, July 09, 2002 4:04 AM
Subject: RE: iSCSI: DLB's Comment on SCSI Port Names

I've just encountered this issue with regards to iSCSI port name encoding 
in the SCSI MIB, and the currently specified port name encoding causes 
inconvenience (at best).  IMO, it makes sense to be able to treat an iSCSI 
name field, be it device name or port name, the same - as a string of 
display characters, portions of which may contain ASCII-encoded numeric 
values.
 
I don't really see that it makes a difference whether one views ISID and 
TPGT as numeric strings or values, since as Jim says, there are no 
calculations performed using these things, and they are basicly just 
"tags".  The issue for me is that the rest of the "SCSI port name" is a 
string and I see no value in "encoding" the ISID or TPGT as a value for 
SCSI purposes, as SCSI should have no need to use the ISID or TPGT values 
separately from the entire port name.  And even if SCSI had such a need, 
it's a simple matter to convert a numeric string representation to a 
value.
 
The downside of a string-encoding is the increased maximum size of the 
SCSI port name.

Marjorie Krueger
-----Original Message-----
From: Jim Hafner [mailto:[email-masked]]
Sent: Monday, July 08, 2002 9:08 AM
To: [email-masked]
Cc: [email-masked]
Subject: RE: iSCSI: DLB's Comment on SCSI Port Names

David, 

Jim Hafner

Jim,

Thanks,
--David

-----Original Message-----
From: Jim Hafner [mailto:[email-masked]]
Sent: Monday, July 08, 2002 11:42 AM
To: [email-masked]
Cc: [email-masked]
Subject: Re: iSCSI: DLB's Comment on SCSI Port Names

David,

What do you think?

Jim Hafner

---

From: "Julian Satran" <[email-masked]>
Date: Sun, 14 Jul 2002 05:01:46 +0300

Thanks again - I have restricted the encoding of ISID/TPGT to hex (they are
not both numerical :-))
Wouldn't it be better to restrict the name length to something more
"binary" like 223?

Julo
----- Forwarded by Julian Satran/Haifa/IBM on 07/14/2002 04:54 AM -----
                                                                                                                                           
                      Julian Satran                                                                                                        
                                               To:      "KRUEGER,MARJORIE (HP-Roseville,ex1)" <[email-masked]>                    
                      07/12/2002 04:40         cc:      ips <[email-masked]>, Julian Satran/Haifa/IBM@IBMIL                               
                      AM                       From:    Julian Satran/Haifa/IBM@Haifa/IBM@IBMIL                                            
                                               Subject: RE: iSCSI: DLB's Comment on SCSI Port Names(Document link: Julian Satran - Mail)   

                                                                                                                                           

Marjorie,

Regards,
Julo

                      "KRUEGER,MARJORIE                                                                                                     
                      (HP-Roseville,ex1        To:       Julian Satran/Haifa/IBM@IBMIL                                                      
                      )"                       cc:       ips <[email-masked]>                                                              
                      <marjorie_krueger        Subject:  RE: iSCSI: DLB's Comment on SCSI Port Names                                        
                      @hp.com>                                                                                                              
                                                                                                                                            
                      07/11/2002 05:15                                                                                                      
                      AM                                                                                                                    
                      Please respond to                                                                                                     
                      "KRUEGER,MARJORIE                                                                                                     
                      (HP-Roseville,ex1                                                                                                     
                      )"                                                                                                                    

Julo,

Jim :-) as the max character representation of an ISID is 15 characters for
the largest decimal representation (14 char for the largest hex), + 3 char
(",i,") + 237 = 255

Thanks,
Marjorie Krueger
 -----Original Message-----
 From: Julian Satran (Actcom) [mailto:[email-masked]]
 Sent: Tuesday, July 09, 2002 6:44 AM
 To: KRUEGER,MARJORIE (HP-Roseville,ex1); 'Jim Hafner'; [email-masked]
 Cc: ips
 Subject: Re: iSCSI: DLB's Comment on SCSI Port Names

 Marjorie,

 Julo
  ----- Original Message -----
  From: KRUEGER,MARJORIE (HP-Roseville,ex1)
  To: 'Jim Hafner' ; [email-masked]
  Cc: [email-masked]
  Sent: Tuesday, July 09, 2002 4:04 AM
  Subject: RE: iSCSI: DLB's Comment on SCSI Port Names

  I've just encountered this issue with regards to iSCSI port name encoding
  in the SCSI MIB, and the currently specified port name encoding causes
  inconvenience (at best).  IMO, it makes sense to be able to treat an
  iSCSI name field, be it device name or port name, the same - as a string
  of display characters, portions of which may contain ASCII-encoded
  numeric values.

  If strings over 256 characters are a problem for some platforms, I'd be
  in favor of reducing the max iSCSI node name to 249 characters so the
  maximum SCSI port name would be 255 characters total (249 char name +
  ",i," + "0x0000")

  Marjorie Krueger
  -----Original Message-----
  From: Jim Hafner [mailto:[email-masked]]
  Sent: Monday, July 08, 2002 9:08 AM
  To: [email-masked]
  Cc: [email-masked]
  Subject: RE: iSCSI: DLB's Comment on SCSI Port Names

  David,

  If they are values, then I'd like to see them formatted for SCSI in
  "value form";  if they are strings, then any representation should be OK.

  Jim Hafner

  Jim,

  Thanks,
  --David

  -----Original Message-----
  From: Jim Hafner [mailto:[email-masked]]
  Sent: Monday, July 08, 2002 11:42 AM
  To: [email-masked]
  Cc: [email-masked]
  Subject: Re: iSCSI: DLB's Comment on SCSI Port Names

  David,

  2) the padding after the string was to force the binary values of the
  ISID

  What do you think?

  Jim Hafner

---

From: "KRUEGER,MARJORIE (HP-Roseville,ex1)" <[email-masked]>
Date: Wed, 17 Jul 2002 19:10:42 -0700

Julo,
I see you've changed to 223 in the draft, serves me right for not responding
;-) I don't understand why you think it's desirable to limit the name length
to "something more binary"?  And how does 223 accomplish that?

Since the port and node names are strings, they are already a "binary
length" cause they are a multiple of bytes.  I suggest 255 as a max port
name length because many string implementations in different languages and
OSs can most easily deal with string constructs that are a max of 255 bytes
(256 with null terminator).  I'm thinking mostly of management applications,
since they are the entities that will most have to deal with names for the
purpose of assigning resources.

From the point of view of the drivers (which I presume are mostly written in
C) it doesn't really matter that what the name length is, so I see no value
in reducing the max node name to 223 for their benefit.

And why 223 anyway, since it's really 238 now that you've limited the
representation of the ISID to hex format.

> From: Julian Satran [mailto:[email-masked]]
> Sent: Saturday, July 13, 2002 7:02 PM
> To: [email-masked]
>                                                To:      
>                       07/12/2002 04:40         cc:      ips 
> <[email-masked]>, Julian Satran/Haifa/IBM@IBMIL              
>                  
>                       AM                       From:    
>                                                Subject: RE: 
> iSCSI: DLB's Comment on SCSI Port Names(Document link: Julian 
> Satran - Mail)   
>                                                               
>                                                               
>                
>                                                               
>                                                               
>                
>                                                               
>                                                               
>                
>                                                               
>                                                               
>                
>                                                               
>                                                               
>                
>                                                               
>                                                               
>                
> 
> 
> 
> Marjorie,
>

---

From: "Julian Satran" <[email-masked]>
Date: Thu, 18 Jul 2002 17:19:12 +0300

Marjorie,

I just wanted some spare in case some other syntactic sugar has to be 
added.
And 223 is 255-32 - In fact I wanted 224 :-)

Julo

07/18/2002 05:10 AM

        To:     Julian Satran/Haifa/IBM@IBMIL
        cc:     "Ips Reflector (E-mail)" <[email-masked]>
        Subject:        RE: iSCSI: DLB's Comment on SCSI Port Names

Julo,
I see you've changed to 223 in the draft, serves me right for not 
responding
;-) I don't understand why you think it's desirable to limit the name 
length
to "something more binary"?  And how does 223 accomplish that?

Since the port and node names are strings, they are already a "binary
length" cause they are a multiple of bytes.  I suggest 255 as a max port
name length because many string implementations in different languages and
OSs can most easily deal with string constructs that are a max of 255 
bytes
(256 with null terminator).  I'm thinking mostly of management 
applications,
since they are the entities that will most have to deal with names for the
purpose of assigning resources.

From the point of view of the drivers (which I presume are mostly written 
in
C) it doesn't really matter that what the name length is, so I see no 
value
in reducing the max node name to 223 for their benefit.