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

RE: guidelines sec. 4.6.1.2 and discontinuity indicator



On Fri, 7 Feb 2003, Wijnen, Bert (Bert) wrote:
> > [ C. M. Heard wrote: ]
> > On Wed, 5 Feb 2003, Wijnen, Bert (Bert) wrote:
> > 
> > Let's go back and recall what RFC 2578 Section 7.6.1 actually says:
> > 
> >    Counters have no defined "initial" value, and thus, a single value of
> >    a Counter has (in general) no information content.  Discontinuities
> >    in the monotonically increasing value normally occur at re-
> >    initialization of the management system, and at other times as
> >    specified in the description of an object-type using this ASN.1 type.
> >    If such other times can occur, for example, the creation of an object
> >    instance at times other than re-initialization, then a corresponding
> >    object should be defined, with an appropriate SYNTAX clause, to
--------------^^^^^^
> >    indicate the last discontinuity.  Examples of appropriate SYNTAX
> >    clause include:  TimeStamp (a textual convention defined in [3]),
> >    DateAndTime (another textual convention from [3]) or TimeTicks.
> >
> So if a Counter32/64 does not specify a specific dsicontinuity timer,
> then my interpretation (and I know we discussed this several time
> in SNMPv3 WG several years back) is that if such a counter DOES 
> experience a discontinuity, then the only way to indicate it (and
> one MUST indicate it I think) is to reset sysUpTime.
------^^^^

I think that conclusion would be wrong.  First point:  an agent that
resets sysUpTime to indicate a simple counter discontinuity, rather
than a managament subsystem re-initialization, would be in flagrant
violation of the well-defined semantics of that object.  Its
description clause, which has been unchanged since RFC 1213, says:

               "The time (in hundredths of a second) since the
               network management portion of the system was last
               re-initialized."

Second point:  as you see from the text I pointed to, I don't agree
that this is a MUST.  The language in RFC 2578 doesn't support that.

It would be hard for me to justify saying in the guidelines doc that
this is a MUST.  From a practical perspective, it probably does not
matter, because it _is_ a SHOULD and MIB doctors (I think) will flag
violations of such SHOULDs and get authors to correct them.

> And so if you have many of these counters in an agent, then a single
> one can cause a manager to have to re-poll a lot of Counters and
> consider them as having experienced a discontinuity.

As I said, I hope nobody resets sysUpTime just to indicate counter
discontinuities.  I can't see any justification for that behaviour.

> > I didn't even think of sysUpTime as a discontinuity indicator, since
> > it all it tells you is if the management system is re-initialized.
> > A discontinuity indicator is supposed to tell you about those "other"
> > times that such things can happen.  The object that immediately
> > comes into my mind when this is is mentioned is IF-MIB's
> > ifCounterDiscontinuityTime.
>  
> Correct. That was specifcally added based on the reasoning above (or
> at least so is my recollection/understanding).
> 
> > Would it suffice to cite it as an example, like this:
> >
> >    - It is OK to use Counter32/64 for counters that can reset  themselves
> >      on unusual/irregular events (e.g., counters maintained on a line
> >      card may be reset when the line card is reset), and it is not
> >      illegal if their value after the reset happens to be zero (i.e., it
> >      does not have to be non-zero).  So, "counters that can reset to
> >      zero" is not automatically wrong for Counter32/64.  However, if it
> >      is possible for such resets to occur, then a discontinuity
> >      indicator object like IF-MIB's ifCounterDiscontinuityTime [RFC2863]
> >      SHOULD be provided to indicate when the last such reset occurred.
> > 
> > This is a good exemple to cite since it is often imported into other
> > MIBs (see, e.g., RFC 3289).
> 
> I suppose (but I do not know for sure) that most (if not all) counters
> can actually reset or get discontinuities at times. If it is a
> subagent, the subagent may crash/restart. If it is on a card or
> in a device driver, some hickup may occur there... you never know.
> 
> So that is why I think that all counters need a ptr to an object
> that indicates the time at wich (a possible) discontinuitty 
> occured. 

Agreed.  And that's what it says to do.

> > I don't mind re-working this some more, but I we're spending a lot of
> > text on a fairly small part of the subject, and (like everyone else
> > here) I don't want the document to get bloated.
> > 
> > So, is this proposal OK, or do I need to do more work on it?
> > 
> I think I would make the issue on a ptr to a discontinuity timer
> a separate topic. And decouple it from the reset to zero topic.
> Using IFMIB as an example is fine.

Ok, I will give it another try tomorrow.

//cmh