Subject: Re: iSCSI - decimal coded binary strings - a proposed resolution

From: Paul Koning <[email-masked]>
Date: Fri, 12 Jul 2002 16:49:30 -0400

Sorry, I meant to reply earlier.

>>>>> "Julian" == Julian Satran <[email-masked]> writes:

 >> 2. On the other hand, for numbers, the proposed rule says
 >> that you can encode the value in decimal whenever the value
 >> happens to be less than 2**64.  If 5 minutes later that same
 >> parameter happens to have a value 2**64 or greater, then you
 >> cannot encode that particular value in decimal.  So the
 >> encoding rule here is tied to the value, not the parameter; a
 >> given parameter sometimes permits decimal and sometimes not.

 >> That's what I meant: it is extra complexity to have an
 >> encoding rule for a variable that isn't the same for all
 >> possible values of the variable.

 Julian> +++ that is only an issue for the encoder - and encoding is
 Julian> not an issue for any of the encoding methods - you send
 Julian> starting (supposedly) from an internal value of defined
 Julian> length and may use whatever is fit but we may tight the rule
 Julian> to allowed values not actual values.  Is that acceptable?
 Julian> +++

No, the issue is in the decoder.

If I have a bignum parameter, I have to be prepared to get a decimal
encoding coming in.  I'd have to feed that to atoi() (or its 64-bit
equivalent), take the resulting 64-bit value and supply the high order
0 bits to store it into my bigger-than-64-bits variable.

That's extra work for no purpose.

       paul

---

From: "Julian Satran" <[email-masked]>
Date: Mon, 15 Jul 2002 01:37:55 +0300

thanks - julo

"Randy Jennings" <[email-masked]>
07/10/2002 08:02 PM
Please respond to "Randy Jennings"

        To:     Julian Satran/Haifa/IBM@IBMIL, "Paul Koning" <[email-masked]>
        cc:     "ips" <[email-masked]>
        Subject:        RE: iSCSI - decimal coded binary strings - a proposed resolution

> >  Julian> decimal-constant: an unsigned decimal number - the digit 0 or
> >  Julian> a string of 1 or more digits starting with a non-zero digit.
> >  Julian> Decimal-constants are used to encode numerical values or
> >  Julian> binary strings. Decimal constants can be used to encode
> >  Julian> binary strings only if the stringlength is explicitly
> >  Julian> speci-fied. There is no implicit length for decimal
> >  Julian> strings. This encoding MUST NOT used for numerical values
> >  Julian> equal or greater than 2**64 or binary strings that could be
> >  Julian> longer than 64 bits.

Here is the problem:
Do you mean (parentheses added):

This encoding MUST NOT used for (numerical values equal or greater than
2**64) or (binary strings that could be longer than 64 bits).

or:

This encoding MUST NOT used for (numerical values equal or greater than
2**64 or binary strings) that could be longer than 64 bits.

The first is admittedly the more logical choice, but it is not the only
choice.  I originally read it as the second and wondered what Paul's issue
was.

This is the editorial clarity issue that David Black is talking about.  I
remember having this issue with spec 11 when I was primarily learning the
spec. However, as I care more about decoding the info instead of writing a
protocol state machine, I did not make note of these problems.  I 
apologize
for not going over spec 12-(15?) closely.  These issues may have been
addressed by other editorial comments, but when adding text, it should be
carefully scrutinized as well.

With a 'for' in front of binary strings, the sentence can only be
interpreted one way.  From your following email is the wording intended.

Sincerely,
Randy
Data Transit

---

From: "Julian Satran" <[email-masked]>
Date: Tue, 16 Jul 2002 01:22:06 +0300

----- Forwarded by Julian Satran/Haifa/IBM on 07/16/2002 01:16 AM -----

Paul Koning <[email-masked]>
07/15/2002 04:53 PM
Please respond to Paul Koning

        To:     Julian Satran/Haifa/IBM@IBMIL
        cc: 
        Subject:        Re: iSCSI - decimal coded binary strings - a proposed resolution

>>>>> "Julian" == Julian Satran <[email-masked]> writes:

 Julian> Paul, I was asking if it would acceptable to say the maximum
 Julian> acceptable value (allowed value) will be limiting element
 Julian> (not the actual).

Oops.  I misread your message, my apologies.

Yes, that would be great.  Thanks!

     paul