SORT BY:

LIST ORDER
THREAD
AUTHOR
SUBJECT


SEARCH

IPS HOME


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

    Section 4.1 clarifications



    I have some observations on Section 4.1 of Draft 12.
    
    (1)  The set of valid characters for values does not include the '/' and '='
    characters, both of which are specified by RFC 2045 for use in base-64
    encoding.  Because base-64 encoding is allowed for binary items with the
    "0b" prefix, I believe '/' and '=' should be added to the list of valid
    characters for values.
    
    (2)  Because '+' and '-' are valid characters for values, I suggest that it
    be made explicit whether or not signed binary items are allowed.  For what
    it's worth, I've been assuming that all binary items are unsigned and signs
    are not valid characters in said items.
    
    (3)  In Section 4.1 and elsewhere throughout the spec, the term "value" is
    sometimes used to refer to everything to the right of the '=' delimiter and
    sometimes used to refer to an individual item in a list or range.  Since
    "key=value" seems to be an entrenched usage in which "value" means
    "everything to the right of the leftmost instance of the '=' delimiter,"
    perhaps the other terms should be redefined in order to preserve this
    meaning of "value."  I suggest that the following definitions (or some other
    set of definitions--I don't care which one!) be applied CONSISTENTLY
    throughout the spec:
    
        literal string:    string described by regular expression
                           "[][a-zA-Z0-9 .-+@_:]*"
    
        Boolean constant:  Boolean constant described by regular expression
                           "Yes|No" (was called "Boolean value")
    
        decimal constant:  unsigned decimal constant described by regular
                           expression "[0-9]+"
    
        hex constant:      unsigned hexadecimal constant described by regular
                           expression "0[xX][0-9a-zA-Z]+"
    
        base-64 constant:  unsigned base-64 constant described by regular
                           expression "0b[A-Za-z0-9+/=]+"
    
        binary item:       decimal constant, hex constant, or base-64 constant
    
        literal list:      one or more literal strings separated by commas
    
        numeric range:     two binary items separated by a tilde
    
        value:             literal string, Boolean constant, binary item,
                           literal list, or a numeric range (under this
                           definition of "value," the delimiters ',' and '~'
                           must be added to the list of valid characters,
                           along with '/' and '=')
    
    I realize that this is starting to look like the beginning of a proper BNF
    description of valid iSCSI text-mode strings, which is something I cannot
    believe hasn't been done yet, but which I don't have time to attempt now.
    If anyone blessed with abundant spare time would like to pick up this ball
    and run with it, the spec would be much the better for it . . . ;-)
    
    Michael
    
    --
    Michael J. Krueger              mailto:michael.krueger@windriver.com
    Wind River Networks                         http://www.windriver.com
    500 Wind River Way                               phone: 510-749-2130
    Alameda, CA  94501                                 fax: 510-749-2010
    


Home

Last updated: Thu Apr 25 14:18:25 2002
9781 messages in chronological order