Subject: Re: Comments on v12 of iSCSI Specification

From: "Julian Satran" <[email-masked]>
Date: Sun, 5 May 2002 22:32:48 +0300

Thanks for tanking your time to do such a thorough review.

my comments in text -Thanks again - Julo

                      "BARRY,BOB                                                                                                                   
                      (HP-Roseville,ex1        To:       "[email-masked]'" <[email-masked]>                                                     
                      )"                       cc:                                                                                                 
                      <[email-masked]        Subject:  Comments on v12 of iSCSI Specification                                                    
                      Sent by:                                                                                                                     
                      [email-masked]                                                                                                            
                      .edu                                                                                                                         

                      05/03/2002 08:03                                                                                                             
                      PM                                                                                                                           
                      Please respond to                                                                                                            
                      "BARRY,BOB                                                                                                                   
                      (HP-Roseville,ex1                                                                                                            
                      )"                                                                                                                           

The following comments are submitted against the April 17, 2002,
draft-ietf-ips-iSCSI-12.txt.

Bob Barry
====================================================

General Comments
   1)        An acronym section would make it easier to read
             this document.  Acronyms such as SW for session
             wide, IO for initialize-only, and others are not
             immediately obvious.
+++ If you volunteer to do it, I will volunteer to review it and add it
with proper acknowledgements +++

   2)        A copyright notice be part of this document.

+++ There is one on the last page as customary for RFCs +++

   3)        In chapter 9, each PDU should have a complete
             description provided.  Yes, this means a duplication
             of the field descriptions, but having to search back
             in the document to find field meanings does not
             make sense.

+++ NO - it will add too much volume and no additional meaning +++

   4)        Each table should be numbered and titled.  Currently,
             there is no way to reference an individual table, accept
             a page number which may change over revisions.

+++ All references - are made with a tool that takes care of it.

   5)        Either "data is" or "data are" are considered correct
             for technical documentation, however, only one should
             be used in a document for consistency.  Examples:
               p 35: last paragraph, first line          "data is"
               p 36: third paragraph, first line         "data are"
               p 36: third paragraph, third line        "data are"
               p 36: seventh paragraph, fourth line  "data is"

+++ fixed +++

   6)        Word "since" used instead of "because".  "Since"
             implies a temporal relationship, "because" implies a
             cause-effect" relationship.  Some examples
               p 31: third paragraph from bottom, first line;
               p 37: last paragraph, second line;
               p 44: second paragraph, seventh line;
               p 47: last paragraph, third line
               p 108: second paragraph, second line
               p 111: first paragraph after bullet item, first line
+++ fixed +++              p 141: bullet item c) in upper list

   6)        The word "null" is used throughout this document to
             mean "zero", or "zero valued".  This needs to be
             clearly stated.
+++ I think that this is common in computing but I will see where I can add
something +++

Comments regarding draft contents
   1)        p 22: "iSCSI Initiator Node" and "iSCSI Target Node"
             are circular and provide no insight into what is being
             defined.
+++ what do you suggest? The notions hep us map iSCSI architecurally to
SCSI +++

   2)        p 31: second paragraph, third line: "from ExpCmdSN
             to MaxCmdSN" should be "from ExpCmdSN to
             MaxCmdSN inclusive"; or "in the closed interval
             [ ExpCmdSN . . MaxCmdSN ]"

+++ fixed +++

   3)        p 31: second paragraph, sixth line, how the
             parathesized example applies to the preceding
             sentence is not immediately obvous.
+++ wht do you suggest? +++

   4)        p 31: last paragraph, last 2 lines: use of the words
             "and" and "or" could be ambiguously interpreted.
+++ I reread it twice - and the parsing is obvious +++
   5)        p 34: second paragraph, line 3: "the TSIH is null".
             The word "null" should be replaced with "equal to
             zero".
+++ null is commonly used and its meaning is clear in the context. However,
I will replace it in this instance+++

   6)        p 36: third paragraph, third line: the sentence ends
             right in the middle; need to complete the thought.
+++ I can't locate it - context would help ++

   7)        p 37: second paragraph: "Unsolicited data MUST
             be sent on every connection in the same order in
             which commands are sent."  This sentence needs
             better wording to get the intended point.
+++ It is clear to me and my friends. If you have a suggestion please make
it explicit
Better is unbounded :-). +++

   8)        p 39: item c) in list: where are "displayable" and
             and "whitespace" characters defined?
+++ The common meanings are well understood that is why they appear in
requirements (i have removed the MUST from this part of the text the
normative text follows in the encoding part. Precise references are
stringprep, and mime. +++

   9)        p 50: item e), some of the references to "Node" should
             be references to "Entity".
+++ which ones ? +++

  10)        p 52: last paragraph, fifth bullet item: "3 null bytes".
             The word "null" should be replaced with "zero".
+++ that is the log of changes part +++

  11)        p 63: third paragraph of 4.1, last line: "(comma or
             null)" should be "(comma or zero byte)"
+++ OK +++
  12)        p 72: fourth paragraph, second line: does the phrase
             "MUST be sent after the parameters" mean later in
             the current request, or could they be sent in a later
             request.  The same comment can be applied on p 75,

paragaph 4.

+++ either - by omission +++

  13)        p 72: fifth paragraph, second line: "a null TSIH" should
             be "a zero-valued TSIH"
+++ OK +++

  14)        p 78: in the state table, it appears that exit from S8 is
             impossible.  Actually, this is explained on p 84.  An
             explanation of what is going on on p 78 would be helpful.
             The same can be said of the state table on p 80.
+++ It is just the internal activity and/or time that makess the transition
out of S8 not an even of interest
to iSCSI. Hard to show any of those in a crowded ASCII table or figure and
the text is clear. +++

  15)        p 118: section 9 - why are some bits marked as reserved
             and some marked as '0' or '1' in the PDU definitions.  If
             the bits marked as '0' or '1' in the PDUs will never change,
             then this needs to be stated.  In other words, there are
             not treated the same as reserved bits.

+++ ??? +++

  16)        p 122 and 123: why doesn't AHS-Specific data begin on
             a 4-byte boundary?  Doesn't this lead to an extra operation
             when using the AHSLength?

+++ 4 byte boundaries are somewhat artificial - no boundary is needed on
the wire. We introduced it when frame markers where introduced marker and
we use it only when strictly necessary +++

  17)        p 147: it should be explicitly stated that the O and U bits
are
             valid only of the S bit is 1.
+++ added it - although the statement about usage indicates affinity to
SCSI response +++

  18)        p 150: first paragraph, last line: the requirement should be a
             MUST, not a SHOULD; it is not obvious what an initiator
             should do if a transfer length of 0 is received.  If the
SHOULD
             requirement is maintained, then explain what is an initiator
to do
             with an R2T containing a zero transfer length.
+++ fixed +++

  19)        p 152: for code 1 -- "Close the connection" (if not the only
             connection) OR "Close the session" to close all connections --
             What must be sent for a single connection session?
+++ if you do not intend to close the session send "close connection" and
then you are free (within the llowed time) to login on a new connection. If
you close the session the session is gone. +++

  20)        p 155: second paragraph: the requirement of MUST with the
             current wording requires that one text request must be
             outstanding at any given time.  This requirement should be
             MAY, or the wording changed to "An initiator MUST have
             at most one outstanding Text Request on a connection at
             any given time."
+++ fixed +++
  21)        p 156 (and other areas): next to last paragraph beginning with
             "A target MAY reset its internal state".  What should it be
reset
             to, the original or default settings, the previous state prior
to
this
             sequence of text requests, or ...  A similar reference is made
             on p 159 in each of the last 2 paragraphs.  Doesn't it say
             somewhere in the spec something about a stateless exchange?
             If so, what state are you talking about?
+++ the current negotiation state - (related to the current ITT) I will
state that ++
  22)        p 162: section 9.12.4: in this section, the version of the
current
             draft is defined.  Shouldn't this info be in a more obvious
location
             in the draft?  How would someone reading this spec know to
             come to this section to find out this info?
+++ It is only for the login to state the version. I will add this to the
front matter +++
Formatting and wording issues
   1)        p 26: second paragraph, last line: is the phase 'an
             individual I/O device is called a "logical unit" LU'
             consistent with the definition of "CSSI device" earlier
             in the document.

+++ NO - for details see SAM This paragraph is meant as an level setting
for an overvie the SCSI Device is a formal element in SCSI lingo+++

   2)        p 27: first paragraph of 2.2, fourth line, "the request
             response mechanism" should be "the request-response

       mechanism".
+++ fixed +++
   3)        p 28: paragraph preceding section 2.2.2, last sentence,
             "For error recovery purposes, targets ... during recovery"
             contains some redundancy.  Remove the words "during
             recovery" from the end of the sentence.
+++ the statement stresses tha 2 connection may have to be supported ONLY
during recovery +++
   4)        p 34: third paragraph, third line: the phrase "later in
             this part" is used.  What is the "part" that is being
             referenced?
+++ section - fixed +++
   5)        p 35: second paragraph, third line: the use of the phrase
             "by default" implies a non-default behavior.  This phrase
             should be deleted.
+++ fixed +++
   6)        p 36: last paragraph, third line, does the phrase "these
             tags" refer to initiator tags or target tags?  The current
             wording could be ambiguous.
+++ fixed - target tags +++
   7)        p 39: item c) in list, fourth line: "would be identical except

             for their case" could be "are case sensitive".
+++ fixed removed also MUSTs as this part is a requirement description part
not an encoding norm +++
   8)        p 39: third paragraph from bottom, fourth line: "NIC or
             HBA card".  The word "card" is redundant.
+++ fixed +++
   9)        p 53: first paragraph after section 2.4.3, last line: "with a
             given session" should be "with the same session".
+++ fixed +++
  10)        p 54: last paragraph, first line: "via one iSCSI node" should
             be "via one iSCSI target node"
+++ fixed +++
  11)        p 66: last paragraph, fifth line: "key=value pair TargetName"
             What does this mean?
+++ I've made it TargetName key=value pair. Is this better? +++
  12)        p 82: for -T6 and -T7: the individual cases should be
             maintained in a table-like list, or at least separated by
             semi-colons.  -T15, T16 on page 83 has a nice table-
             like list.  Why not use this format for consistency.
+++ did i prompted by an earlier mail +++
  13)        p 97: after last paragraph: formatting (indentation) would
             assist in understanding.
                         - item a) additional blanks near end of first line
                         - between item a) and i), there is an extra '-'
                         - at end of ii), the "[OR]" should refer to a) or
b),
                                     however, the placement could indicate
                                     ii) or b).  This could lead to an
ambiguous
                                     interpretation.

+++ fixed (I think :-) +++
 14)         p 104: bullet item near top beginning with "- N.B. The
logout".
             Should this bullet item be here?

+++ fixed +++

  15)        p 108: first and third paragraphs, first line in each:
paragraph
             begins with "With this mechanism".  What do you mean?
             Yes, I know, but you need to say it. :-)
+++ fixed +++
  16)        p 108: third paragraph, line 4: the sentence ends in the
             middle: "received in clear"
+++ does not look this way to me - it says that without IPsec .... +++
  17)        p 118: section 9.2, first paragraph "may" should be
             capitalized, similarly in second paragraph, second line.

+++ fixed +++

  18)        p 119: first paragraph, last line "SHOULD be sent as 0" should
             be "SHOULD be set to zero".  Also, why is SHOULD used here
             instead of MUST?
+++ sent means on the wire and as the receiver must not check them we felt
SHOULD is enough +++

  19)        p 125: in SCSI Command PDU, very last field: "(DataSegment
             - Command Data + Data Digest (if any))" should be
             "(DataSegment or Command Data, Data Digest) (if any)"
+++ fixed ++

  20)        p 126: paragraph preceding 9.3.2: "Expected Data Transfer
             Lengths are" should be "Expected Data Transfer Length and
             Bidirectional Read Expected Data Transfer Length are"

+++ it said Lenths - but I made it explicit as you suggested ++++

  21)        p 144: last paragraph on page, line 5: "in this later case"
             should be "in this latter case".
+++ fixed - I will suggest we write the next RFC in Hebrew - at list
spelling is simpler :-) +++

  22)        p 153: last paragraph: "Data Segment" should be
             "DataSegment".
+++ fixed +++
  23)        p 155: last paragraph: the word "commands" should be
             replaced by "Text Requests"
+++ fixed +++
  24)        p 162: the list in the middle of the page: why was the number
             2 skipped in numbering the items in this list?
+++ just a coding choice - it is not a bullet number - but a code ++
  25)        p 164: next to last line: "All login requests within the login
             phase" should be "All login requests within a login phase".
+++ fixed +++
  26)        p 182: third paragraph, second line: should the "must" be
             capitalized?
+++ more of a SCSI requirement but I have capitalized it +++
  27)        p 184: last line: "Data Segment Length" should be
             "DataSegmentLength"
+++ fixed +++
  28)        p 188: the info below the table at the top of the page should
             be incorporated into the table.
+++  fixed +++
  29)        p 188: last paragraph, first line: "the target MUST answer"
             could be "the target MUST respond" (keeping with the
             language of the spec.
+++ fixed +++
  30)        p 193: section 11, this info would be nice in a table, and
             also in an acronym table.
+++ are you volunteering ? +++
  31)        p 198, 199, 200, 203, 203: what do
                         Result function is OR                     and
                         Result function is AND
             mean?
+++ means that the result an AND or OR boolean function of the offer and
what the responder would have to say +++
  32)        p 200: third paragraph, last line "MUST reject them with".
             What does "them" refer to?
+++ I've replaced them with unsolicited data +++
  33)        p 201: Third paragraph "This is a connection specific
             parameter".  This statement is redundant because the
             scope is CO.
+++ removed +++
  34)        p 201: last paragraph of section 11.14: what "two numbers"
             are being referenced?  Same question can be asked on
             p 202, second paragraph from top, and also in section
             11.16, second last paragraph.
+++ Great - this was from the time when selection was done by "observer"
not responder.
I have changed it to:

The responder MUST select a value that does not exceed the offered value.
++++

Simple issues

   1)        p 24: last paragraph, second line, "session ID that is
             tuple" should be session ID that is a tuple".
+++ fixed +++
   2)        p 25: definition of "SCSI Port Name", get rid of the
             word "basically".  Use of this adverb implies there
             are additional items that make up the name.
+++ fixed +++
   3)        p 25: definition of "TSIH", third line, change "the target
             is generating" to "the target generates".
+++ fixed +++
   4)        p 32: section 2.2.2.2, first paragraph, line 5: "32bit"
             should be "32-bit" (the '-' could be a blank).
+++ fixed +++
   5)        p 35: third paragraph, second line: "the status for a
             command" should be "the status for the command"
+++ fixed +++
   6)        p 55: last paragraph, need a blank line between paragraphs.
+++ fixed +++
   7)        p 56: third paragraph, last 2 lines (occurs twice): "at
             target" should be "at the target".
+++ fixed +++
   8)        p 56: third paragraph, second line: "Data-In PDU" should
             be "Data-In PDUs".
+++ fixed +++
   9)        p 57: last paragraph, third line: "status indicated
termination"
             should be "statue indicates termination".
+++ fixed +++
  10)        p 60: first paagraph after 2.5.3.4, fourth line: "the type is
             indicate in" should be "the type is indicated in"
+++ fixed +++
  11)        p 63: second paragraph, next to last line: "range is a a set"
             should be "range is a set".
+++ text changed +++
  12)        P 64: fifth paragraph, second line: "a single literal constant
             a Boolean value" should be "a single literal constand, a
             Boolean value".
+++ text changed +++
  13)        p 65: after first paragraph there is an extra blank line.

+++ text changed +++
  14)        p 68: paragraph preceding 4.3.1, second line: period '.'
             missing after "once during login".
+++ fixed +++
  15)        p 73: fourth paragraph, first line: "implicit logout
connection
             reinstatement is" should be "implicit logout connection,
             reinstatement is"
+++ fixed +++
  16)        p 74: first paragraph before 4.3.6, last line: there is some
             garbage at the end of the paragraph.
+++ fixed +++
  17)        p 82: for transition -T8, second line: "on a another
connection"
             should be "on another connection"
+++ fixed +++
  18)        p 93: First paragraph, fifth line: "assumed that at target"
             should be "assumed that at the targer"
+++ fixed +++
  19)        p 95: throughout the text, words like "Reject" is used in
             referring to a PDU type.  The problem is the use of the
             plural "Rejects"; this would be better written as "Reject's".
+++ fixed only 2 occurences! +++
  20)        p 96: first paragraph after 6.3.2, third line: "(section
9.15)in"
             should be "section 9.15) in".
+++ fixed +++
  21)        page 100: second paragraph after 6.9, second line: "errors
             can be only be" should be "errors can only be"
+++ fixed +++
  22)        p 104: third line on page: "not received for a response"
             should be "not received a response".
+++ fixed +++
  23)        p 105: bullet item b) near top of page, last line: "in
resource
             requirement" should be "in resource requirements".
+++ fixed +++
  24)        p 107: first paragraph, fourth line: "via a subnet distinctly"
             could be "via a SAN distinctly".
+++ fixed +++
  25)        p 107: first paragraph, line line 6: "such as SCSI, over IP
             networks requires" should be "such as SCSI over IP,
             requires"
+++ I've made it IP-networks to disambiguate +++
  26)        p 108: after paragraph 4, there is an extra blank line
+++ removed +++
  27)        p 108: sixth paragraph, fourth line: it looks like an extra
             <CR> was added at the end of this line.
+++ removed +++
  28)        p 113: first paragraph after 8.1.2, first line: it looks like
an
             extra <CR> was added at the end of this line.
+++ fixed +++
  29)        p 114: third paragraph, second line: it looks like an extra
             <CR> was added at the end of this line.
+++ fixed +++
  30)        p 115: first paragraph after 8.3, fourth line:
"acknowledgements
             etc.)" should be "acknowledgements, etc.)"
+++ fixed +++
  31)        p 122: section 9.2.1.7, first paragraph, second line:
"identify it"
             should be "identify the task".
+++ fixed +++
  32)        p 128: last line of page: "the b Bidirectional" should be
             "the Bidirectional".
+++ fixed +++
  33)        p 129: for bit 5 at the top, third line: "Transfer length"
should
             be "Transfer Length".
+++ fixed +++
  34)        p 129: for bit 6  at the top, third line: "bytes that expected
to
be"
             should be "bytes that were expected to be".
+++ fixed +++
  35)        p 130: third line from top of page, "sequence, before" should
be
             "sequence before"
+++ fixed +++
  36)        p 130: third line from bottom of page: use "greater than"
rather
             than "higher than".  "Higher" could imply some level of
             positioning
+++ fixed +++
  37)        p 134: the fields in the number list at the bottom of the page
             should be lined up.
+++ I will try to make clear that it is a list of codes and not a table
with fields +++
  38)        p 138: why is this page blank?
+++ fixed +++
  39)        p 145: second paragraph of 9.7.3, third line: "SNACK of,  type
"
             should be "SNACK of type".
+++ fixed +++
  40)        p 147: last paragraph: "and they values are as define in"
should
+++ fixed +++            be "and the values are as defined in"

  41)        p 151: PDU diagram, align the right side
+++ tool problem +++
  42)        p 154: PDU diagram, align the right side
+++ tool problem +++
  43)        p 156: first paragraph, first line: it looks like an extra
             <CR> was added at the end of this line.
+++ fixed +++
  44)        p 159: section 9.11.2, first line: "initial Text request"
should be
             "initial Text Request".  Similarly, in last paragraph, second
             line, "Text request" should be "Text Request".
+++ fixed +++
  45)        p 162: section 9.12.2, first paragraph, next to last line, it
             looks like an extra <CR> was added at the end of this line.
+++ fixed +++
  46)        p 164: section 9.12.6, first paragraph, fifth line: "to the
target,
             the associated" should be "to the target the associated"
+++ fixed +++
  47)        p 165: last paragraph: missing a blank line after line 3.
+++ fixed +++
  48)        p 165:last paragraph: "Keys in Chapter 10, only need" should
             be "Keys in Chapter 10 only need"
+++ fixed +++
  49)        p 167: section 9.13.3, fifth line: "andd" should be "and".
+++ fixed +++
  50)        p 169: for codes 0101 and 0201, remove the <CR> in the
             description fields.
+++ ???? +++
  51)        p 178: first 2 paragraphs: what do "its" refer to -- "its
flags"
+++ the two paragraphs read now:
The numbered-response(s) or R2T(s), requested by a SNACK, MUST be delivered
as exact replicas of the ones the initiator missed except for the fields
ExpCmdSN, MaxCmdSN and ExpDataSN which MUST carry the current values.

       The numbered Data-In PDUs, requested by a SNACK with a RunLength
       dif-ferent from 0, MUST be delivered as exact replicas of the ones
       the initiator missed except the fields ExpCmdSN and MaxCmdSN which
       MUST carry the current values.  Data-In PDUs requested with
       RunLength 0 (meaning all PDUs after this number) may be different
       from the ones originally sent, in order to reflect changes in
       MaxRecvPDULength.
       ++++
         52)                p 179: section 9.16.3, second paragraph, second
       line: "or
                  greater to BegRun" should be "or greater than BegRun"
       +++ fixed +++
         53)                p 181: code 0x04 in table, the explanation for
       this code is
                  missing a right paren at the end.
       +++ fixed +++
         54)                p 186: second paragraph, first line: "When a
       target send a
                  NOP-In" should be When a target sends a NOP-In".
       +++ fixed +++
         55)                p 193: bottom: position entire table on one
       page.
       +++ done +++
         56)                p 196: missing blank line between paragraphs at
       top of page.
       +++ fixed +++
         57)                p 199: first paragraph on top of page, it looks
       like an extra
                  <CR> was added in the middle.
       +++ fixed +++
         58)                p 201: section 11.14, second to last paragraph,
       second line:
                  "bytes in an Data-In" should be "bytes in a Data-In".
       Also,
                  the last phrase in this paragraph is not a sentence.
       +++ fixed +++
         59)                p 201: last line of page: "to the target,
       during the" should be
                  "to the target during the
       +++ fixed +++

---

From: "BARRY,BOB (HP-Roseville,ex1)" <[email-masked]>
Date: Mon, 13 May 2002 08:24:01 -0700

My comments are in line.

Bob Barry

> -----Original Message-----
> From: Julian Satran [mailto:[email-masked]]
> Sent: Sunday, May 05, 2002 12:33 PM
> To: BARRY,BOB (HP-Roseville,ex1)
> Cc: [email-masked]'; [email-masked]
> Subject: Re: Comments on v12 of iSCSI Specification
> 
> 
> 
An acronym section is attached.  This is the list of acronyms
that I found in v12 of the spec.  

A special thanks to Michael Fischer of Adaptec for the starting list.

> +++ All references - are made with a tool that takes care of it.

I am thinking about references to tables in the spec by developers/users.
It would help if the table had numbers or titles.
> +++ wht do you suggest? +++

I spoke with Mallikarjun about this and he has some ideas.

> +++ I can't locate it - context would help ++

Sorry, I meant second paragraph, third line: "is negotiated at login as the.
A target . . ."

>              not treated the same as reserved bits.

Some bits in the PDUs are explicitly defined to be '1' or '0'.  In the
wording, some fields are declared as reserved (or '.'), which must have a
value of '0'.  It is my understanding that the reserved bits could change in
the future, but that bits explicitly defined to be '0' or '1' cannot change.
Is this true?

If true, then why won't the defined bits change?