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

RE: Important question about draft-ietf-ipsec-doi-tc-mib-07.txt



So if we do allow this, then why are we so hard on ourselves
when some labels are added in the sense that we then require 
a new MODULE-COMPLIANCE and to make sure that the old one
only lists the labels that existed originally?

Or would we accept the proposal below and then require that
the MODULE-COMPLIANCE (but here they only do TCs, so we
would have to keep an eye on it later) would only REQUIRE
the enumerated values?

Just thinking aloud here

Thanks,
Bert 

> -----Original Message-----
> From: C. M. Heard [mailto:heard@pobox.com]
> Sent: dinsdag 8 april 2003 0:18
> To: Mreview (E-mail)
> Subject: FW: Important question about 
> draft-ietf-ipsec-doi-tc-mib-07.txt
> 
> 
> MIB Doctors --
> 
> Here is one I had not encountered before:  folks who want to define
> enumerated INTEGER objects that are allowed to assume values that
> are not in the enumeration list.  Technically this is not legal (cf.
> RFC 2578 Section 7.1.1).  Practically, it does not seem that it
> should cause much harm, since enumerated INTEGERS can be extended by
> having more enumerations added.  In view of this, is the rule
> against assuming values other than the ones specifically enumerated
> just another crummy little rule that should not be enforced?  This
> would amount to treating enumerated INTEGER like ASN.1 does (i.e.,
> the enumerations are just distinguished values, but in no way
> constrain what values may be assumed).
> 
> Opinions?
> 
> //cmh
> 
> ---------- Forwarded message ----------
> Date: Mon, 07 Apr 2003 15:02:01 -0400
> From: John Shriver <jshriver+ietf@sockeye.com>
> To: C. M. Heard <heard@pobox.com>
> Cc: IPsec WG <ipsec@lists.tislabs.com>,
>      "Wijnen, Bert (Bert)" <bwijnen@lucent.com>
> Subject: Re: Important question about 
> draft-ietf-ipsec-doi-tc-mib-07.txt
> 
> C. M. Heard wrote:
> > On Sat, 5 Apr 2003, C. M. Heard wrote:
> > % The WG needs to be aware that (according to RFC 2578 
> Section 7.1.1)
> > % the only values allowed for objects defined with these enumerated
> > % INTEGER TCs are the named numbers that are actually present in the
> > % enumeration list.  Thus, managed objects defined with these TCs
> > % cannot represent values in the ranges that are reserved 
> for private
> > % use amongst cooperating systems.  If it is intended that objects
> > % defined using these TCs be able to represent arbitrary 
> values of the
> > % corresponding parameters, including the "private use" 
> values, then a
> > % SYNTAX value other than enumerated INTEGER will be required -- for
> > % instance, Unsigned32 with a subrange, as is used in the definition
> > % of IkePrf.  Of course, in that case there would be no need to have
> > % the IANA maintain these TCs:  they could be defined once, in a
> > % WG-maintained document, with the value list in a conventional
> > % assigned number registry.
> > 
> > On Mon, 7 Apr 2003, John Shriver replied:
> > 
> >>Let me be sure that I understand your intent.  Because RFC 
> 2578 Section
> >>7.1.1 says that the only legal values of an enumeration are 
> those in a
> >>list, and there may be numbers in the list from the 
> user-reserved space
> >>that may not be in the list, we should abandon any effort 
> to provide an
> >>enumeration for any of these number spaces in any MIB for IPsec?
> >>
> >>Instead, they should all be range-limited INTEGERS[?]
> > 
> > 
> > More probably, range-limited Unsigned32 (like IkePrf).  But 
> yes, that's
> > the idea, if the managed objects defined with these TCs are 
> supposed to
> > be able to represent all possible values of the 
> corresponding parameter.
> > 
> > 
> >>[A]nd there is no attempt at having software convert small
> >>positive integers into strings that might make sense to a human,
> >>and instead people have to look it up by hand?
> > 
> > 
> > An enumerated INTEGER TC does not do quite that much.  All 
> that can be
> > done with the parseable information in such a TC is to build a table
> > that converts the values in the enumeration list into the 
> corresponding
> > enumeration labels.  You don't get any of the descriptive 
> text that is
> > present in the ASN.1 comments.
> 
> As a user, I have found the enumeration labels much more 
> useful than a 
> raw number.  Few agents present the ASN.1 comments in a very 
> accessible 
> manner.  (Well, I never used any of the fancy $500,000 SNMP 
> management 
> systems.)
> 
> > 
> > To be weighed against this benefit is the cost to the IANA 
> of having to
> > maintain both a conventional registry and a MIB module for 
> the majority
> > of the IPsec-related assigned numbers.  My past experience 
> with stuff
> > that requires two (or more) versions of the truth to be manually
> > synchronized suggests to me that this cost will be rather 
> high.  Note
> > that some of the TCs (XyzExchangeType and XyzNotifyType) require
> > synchronized updates in more than two places.
> 
> I would hope that the IANA would never try and keep two files 
> synchronized.  As the I-D states, the itent was that the MIB would 
> become THE definitive document.  This is certainly what has happened 
> with the ifType MIB, although that was MIB-centric.
> 
> All programmers know that source-file synchronization is evil.
> 
> > 
> > 
> >>This strikes me as a disservice to the real customers, which are the
> >>users of any IPsec MIBs.  (RFC 2578 is not a customer.)  The entire
> >>purpose of this MIB was to eliminate those manual lookups.
> > 
> > 
> > In retrospect, it might have been better if the SMI had adopted the
> > ASN.1 rule that enumerations only specified distinguished 
> values, and
> > that the underlying type was allowed to have all INTEGER 
> values (well,
> > all in the range -2147483648..2147483647, since the SMI restricts
> > INTEGER to that range).  But that wasn't what was decided, and the
> > current rule is the one we have to live with.
> 
> I think that the current set of MIBs are not absolutely pure in 
> adherence to the standards.
> 
> > 
> > 
> >>I was thinking that a customer using these MIBs who had a 
> product using
> >>a proprietary value would simply EDIT their copy of this 
> MIB to include
> >>the offending value.  There's no "do not edit under penalty 
> of law" tag
> >>on the MIB.
> > 
> > 
> > Although not sanctioned by the SMI, a customer could indeed 
> perform such
> > edits.  However, they would have to be re-applied whenever 
> the "official"
> > version was updated with a new registered value, which is clearly
> > undesirable.  I think such edits should be discouraged.
> 
> So should private use numbers be discouraged.
> 
> > 
> > 
> >>Rather than abandon the enumerations, I would instead 
> propose to reserve
> >>one value in each and every enumeration, which would represent all
> >>values which are "undefined" within the enumeration.  The 
> numeric value
> >>of it would be 65536, which is out of the real protocol 
> range for all
> >>the numbers.
> >>
> >>Then MIB authors who need to reveal the user-reserved 
> values can have a
> >>second variable that reveals the raw INTEGER number.  (What 
> fun!  But
> >>I'm not writing that MIB.)
> > 
> > 
> > That will work, since all of the items that have "private 
> use" ranges
> > don't include 65536 as a legitimate value.  Again, however, 
> the question
> > must be asked whether the automatic generation of 
> integer-to-enum-label
> > tables is worth the cost of using two objects to represent 
> one value.
> 
> This was somewhat of a tongue-in-cheek suggestion.  I doubt that most 
> MIB authors would go to the effort.  We'd just lose the information. 
> (Or vendors would ignore the 65536, and put in the real value.)
> 
> > 
> > 
> >>Or, I can edit the MIB to give every enumeration a tag for every
> >>reserved value.  Like on IpsecDoiSecProtocolId, add 
> privateUse249(249),
> >>privateUse250(250), privateUse251(251), etc.  But I can 
> assure you that
> >>many of the management agents out there would crash in 
> flames if we do
> >>that.  In my experience, they are exceptionally fragile...
> > 
> > 
> > I agree that this would not be a good idea, especially for the ones
> > that have private use ranges of 61440-65535, 65001..65535, or
> > 32768..65535.
> > 
> > Frankly, I think that the benefits from the enum labels are 
> not worth
> > the costs in this application.  The costs include both the burden on
> > the IANA of having to maintain synchronized registries and the need
> > to have extra MIB objects to represent the "private use" values.  I
> > think it would be better to use subranged Unsigned32 TCs in a
> > WG-maintained MIB module, with the DESCRIPTION and REFERENCE clauses
> > of those TCs pointing to the authoritative sources for the number
> > assignments (namely the defining RFCs and the IANA registries).
> > However, my role in this matter strictly advisory, and the decision
> > is ultimately up to the IPsec WG (subject of course to IESG and IANA
> > approval).
> 
> Well, I started this project 4 years ago because I thought that the 
> enumeration values really would make IPsec MIBs easier to use.
> 
> We discussed the "standards fudge" issue of the non-enumerated values 
> back then, and people on the IPsec list weren't offended by 
> the problem. 
>   A common-sense standards bending didn't bother them.  I don't have 
> time to dig the archives...
> 
> > 
> > Regards,
> > 
> > Mike Heard
> 
> 
> 
> 
>