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

Re: Gauge32 as an INDEX (was: Index values of zero)



On Fri, 3 Jan 2003, Keith McCloghrie wrote:
> As for 0, I think "a good reason MUST be specified" is bogus; where
> must it be specified ?  and who decides whether it's good or not ??
> If someone does use 0, they presumably have a reason which they think
> is a good reason, and if they specify it in private, then they have
> complied with this rule.  Thus, all the rule really means is that the
> index value of 0 shouldn't be used arbitrarily, which I think is
> already better expressed in the SMI as:
>                                                ...  The use of zero as
>    a value for an integer-valued index object should be avoided, except
>    in special cases.
> 
> If there's anything lacking in that sentence from the SMI, it's that
> there are two types of special cases:
> 
> 1. when 0 is semantically meaningful (e.g., a temperature of 0, or
>    an IP-address of 0.0.0.0)
> 2. when 0 has a special meaning (e.g., InterfaceIndexOrZero).

I've attempted to incorporate that wisdom into the guidelines document.
Here is that attempt:

   - For integer-valued objects that appear in an INDEX clause or for
     integer-valued TCs that are to be used in an index column:

     - Unsigned32 with a range that excludes zero is RECOMMENDED for
       most index objects.  It is acceptable to include zero in the
       range when it is semantically significant or when it is used as
       the index value for a unique row with special properties.

     - Integer32 or INTEGER with a non-negative range is acceptable.
       Again, zero SHOULD be excluded from the range except when it is
       semantically significant or when it is used as the index value
       for a unique row with special properties.

     - Use of Gauge32 is appropriate for index objects that have gauge
       semantics.

Let me know if you think that this is still broken or in need of
further work.

//cmh