SORT BY:

LIST ORDER
THREAD
AUTHOR
SUBJECT


SEARCH

IPS HOME


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

    RE: iSCSI: Decimal encoding - why 64 bits ?



    Replying to a couple of messages on this topic.
    
    --- Use of decimal for binary items
    
    > There was NEVER a discussion about forbidding decimal for binary items.
    
    Ok, that's why it's now under discussion in WG Last Call.
    
    > It would be counterproductive to forbid them as they are so widely
    > used in programming.
    
    The request to forbid them seems to have evolved into a request to
    more carefully classify binary items into those that can ordinarily
    be expected to fit in 64 bits (decimal format ok) and those that will
    generally not fit (decimal format not ok, even if a particular value
    fits).  This is consistent with our restriction of base-64 to large
    binary items.  As Pat Thaler wrote:
    
    > 4.1
    > binary-value includes regular-binary-value and large-binary-value.
    > regular-binary-value is for strings less than 64 bits and allows decimal
    > encoding. (It says less than 64 and decimal encoded binary strings are
    > always in bytes so the largest decimal encoded binary would be 56 bits.)
    > 
    > 10.4 SRP: N,g,s,A,B,M and H(A | M | K) are binary-values
    > 10.5 CHAP: C and R are binary-values
    
    The only ones of these that should routinely fit in 64 bits are SRP's
    g (usually a small integer, even though it's mathematically a member of
    a very large binary field - I think Paul Koning missed the fact that
    generators tend to be single-digit numbers) and s (doesn't need to be
    a large number to get the job done).  If any of the others happen to
    fit in 64 bits, that's a hint that something may be wrong with security
    (e.g., CHAP's C and R should be 128 bits - if either has 64 bits of
    leading zeroes, something's probably wrong).  On this basis, I'm
    inclined to agree with Pat that:
    
    > Normally, the values defined as binary-values for SRP and CHAP would be
    > 64 bits or longer anyway, but someone could send short keys and encode
    > them in decimal according to the current draft. This should be eliminated.
    
    I would make an exception to allow decimal for SRP's g and possibly SRP's
    s for the sort of convenience reason that Julian gave above ("widely
    used in programming").
    
    I'd recommend this change to large-binary-value with the exception of
    SRP's g and possibly SRP's s as the way forward.
    
    --- 64 vs. 32 bits
    
    > I went back to the mailing list - and there was a clear consensus to keep
    > it to 64 bits (my original proposal was unlimited and  I suggested rhen
    128
    > to alleviate concerns about conversion difficulty for unlimited numbers).
    
    That matches what I recall from mailing list discussion, 32 bits was not
    considered at the time.
    
    > The issue was raised without checking the libraries:
    
    [... snip ...]
    
    > I don't know about Windmills - but I assume that most modern development
    > environments are supporting 64bit integers.
    
    I suspect the response to this is that not everyone is using a "modern
    development environment" ... ;-)
    
    > Are we going to take for granted any assertion made on the list?
    
    Yes and no.  When someone working on an implementation reports that some
    aspect of the protocol spec is causing difficulty, we should at least
    believe that the person is in fact having some difficulty.  Whether we
    should accept arbitrary proposals to remove difficulty is a different
    question (iSCSI is not a simple protocol - some things are going to
    be difficult/tricky to implement - TANSTAAFL*).
    
    On this particular issue, I don't see support for or the need to reduce
    the upper limit on size of numbers that can be encoded in decimal from
    64 bits to 32 bits, but the US holiday is starting to get in the way
    of list discussion.  What this would mean for implementers is that the
    string decoding logic must be able to handle decimal representations of
    integers that fit in 64 bits, but an implementation may restrict the
    allowed ranges of the values (negotiated for keys) to fit in 32 bits.
    This roughly matches what Mark Bakke described:
    
    > For what it's worth, none of the numeric values for iSCSI that
    > can be retrieved or set via the MIB require more than 32 bits
    > (other than counters, but I doubt we would ever send a counter
    > during negotiation :-).  The allowable ranges just didn't need
    > more than that.
    > 
    > Anyway, I haven't seen a need to provide support for 64-bit
    > values in our implementation yet, since none of the numeric
    > keys can have values that high.
    
    Allowing decimal values to go up to 64 bits in size strikes me
    as a reasonable "future-proofing" measure - in 20/20 hindsight, I
    would think that the SNMP folks wish they'd put 64 bit support into
    SMIv1/SNMPv1 even if there had been little use for it at the time.
    
    So, this change (64 to 32 bits) does not need to be made now, but I
    will be watching the mailing list early next week just in case some
    people who care about this have already signed off for the US holiday
    and have additional input to contribute.
    
    Thanks,
    --David
    
    p.s. * TANSTAAFL = There Ain't No Such Thing As A Free Lunch
    ---------------------------------------------------
    David L. Black, Senior Technologist
    EMC Corporation, 42 South St., Hopkinton, MA  01748
    +1 (508) 249-6449            FAX: +1 (508) 497-8018
    black_david@emc.com       Mobile: +1 (978) 394-7754
    ---------------------------------------------------
    


Home

Last updated: Wed Jul 03 20:18:51 2002
11111 messages in chronological order