SORT BY:

LIST ORDER
THREAD
AUTHOR
SUBJECT


SEARCH

IPS HOME


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

    RE: iSCSI: DLB's Comment on SCSI Port Names



    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:hafner@almaden.ibm.com]
    Sent: Monday, July 08, 2002 11:42 AM
    To: Black_David@emc.com
    Cc: ips@ece.cmu.edu
    Subject: Re: iSCSI: DLB's Comment on SCSI Port Names
    
    
    
    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
    


Home

Last updated: Mon Jul 08 12:18:42 2002
11178 messages in chronological order