[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Is unconstrained INTEGER illegal in SMIv2?
At 02:09 PM 1/7/2003 -0800, C. M. Heard wrote:
>Hello,
>
>Apologies to those of you who also monitor the snmpv3 list. The question
>came up ober there whether the following requirement of the coexistence
>document (currently <draft-ietf-snmpv3-coex-v2-02.txt>) is actually
>justified by the language in RFC 2576:
>
>(3) For any object with an integer-valued SYNTAX clause, in which the
> corresponding INTEGER does not have a range restriction (i.e., the
> INTEGER has neither a defined set of named-number enumerations nor
> an assignment of lower- and upper-bounds on its value), the object
> MUST have the value of its SYNTAX clause changed to Integer32, or
> have an appropriate range specified.
>
>I made the assertion that the MUSTs in that paragraph are unjustified
>because as far as I could tell the words that are actually written in
>RFC 2578 do not, in fact, ban the unconstrained INTEGER syntac. Here's
>my reasoning:
I agree with you that the coex document should not make this change.
I'm trying to avoid my usual rant mode here, but I find SMIv2 data
type rules to be mostly CLRs with little real benefit. They most
serve to confuse MIB writers and give MIB reviewers more nits to
ding.
Andy
>On Tue, 7 Jan 2003, C. M. Heard wrote:
>> On Tue, 7 Jan 2003, David T. Perkins wrote:
>> > Mike, did you make this claim....
>> > >> .... there is nothing illegal
>> > >> about an INTEGER with no subrange or enumerations; in fact it's
>> > >> completely equivalent to Integer32 with no subrange.
>> >
>> > Would you show me where the INTEGER without a sub-range (or enumerations)
>> > is legal?
>>
>> Well, here is the relevant text from RFC 2578, Section 7.1.1:
>>
>> The Integer32 type represents integer-valued information between
>> -2^31 and 2^31-1 inclusive (-2147483648 to 2147483647 decimal). This
>> type is indistinguishable from the INTEGER type. Both the INTEGER
>> and Integer32 types may be sub-typed to be more constrained than the
>> Integer32 type.
>>
>> The INTEGER type (but not the Integer32 type) may also be used to
>> represent integer-valued information as named-number enumerations.
>> In this case, only those named-numbers so enumerated may be present
>> as a value. Note that although it is recommended that enumerated
>> values start at 1 and be numbered contiguously, any valid value for
>> Integer32 is allowed for an enumerated value and, further, enumerated
>> values needn't be contiguously assigned.
>>
>> The first paragraph says that the Integer32 and INTEGER types are
>> indistinguishable, so I would expect that INTEGER could be used
>> wherever Integer32 could be used, unless a subsequent provision of
>> the specification said otherwise. The second paragraph indeed makes
>> such an exception, which is that one is allowed to use enumerations
>> with INTEGER but not Integer32. But I could find is no language in
>> RFC 2578 that prohibits using an unconstrained INTEGER. On that basis
>> I concluded that it's legal.
>>
>> Now, can you explain to me why that reading is wrong?
>
>I'd like to hear the opinions of the MIB Doctors and the reasons for them.
>
>I'll note in passing that the language in RFC 1442 did seem to disallow
>unconstrained INTEGER, but in going to RFC 1902 the language was changed
>to substantally the form it has above (RFC 2578 added the language
>clarifying that Integer32 is not allowed for enumerated integers).
>
>If indeed unconstrained INTEGER is banned in SMIv2 then the fact should
>be spelled out the MIB review guidelines doc, because it's not clear
>from reading RFC 2578.
>
>//cmh