Re: [MIB-DOCTORS] comments on draft-ietf-manet-report-mib-04

"Cole, Robert G CIV USARMY CERDEC (US)" <[email protected]> Tue, 21 Apr 2015 12:43:17 +0000
Newsgroups gmane.ietf.disman,gmane.ietf.manet
Message-ID <B9468E58D6A0A84AAD66FE4E694BEABB8504C480@ucolhpkt.easf.csd.disa.mil>
Hi Benoit,

This review of the report MIB was not intended to be the MIB Doctor's revie=
w.  The module has not reached WG last call.

Instead, I wanted someone with DISMAN knowledge to review the structure of =
the MIB to ensure its design leverages (correctly) the
Capabilities from the DISMAN MIB Modules and provides the desired functiona=
lity.   Further, the WG has not put a lot of eyes on the module development=
 and we have gone through a lot of major revisions to get to this point whe=
re we are using existing DISMAN capabilities.

I will clean up the MIB (based upon Randy's detailed comments) and ensure i=
t passes a MIB compiler in the next revision.

Thanks, Bob

US Army CERDEC
QUEST Program, S&TCD
APG, MD

(c) 443.910.4420
(o) 443.395.8744
[email protected]

> -----Original Message-----
> From: MIB-DOCTORS [mailto:[email protected]] On Behalf Of Beno=
it Claise
> Sent: Tuesday, April 21, 2015 4:08 AM
> To: Randy Presuhn; [email protected]
> Cc: [email protected]; [email protected]
> Subject: Re: [MIB-DOCTORS] comments on draft-ietf-manet-report-mib-04
>=20
> Thanks Randy for your time.
>=20
> draft-ietf-manet-report-mib authors,
> What really concerns me is Randy's comment: "It's pretty obvious that thi=
s module has not seen a MIB compiler recently."
> This is inappropriate to ask for a MIB doctor review for a MIB module tha=
t doesn't even compile.
>=20
> Regards, Benoit
> > Hi -
> >
> > I was asked to take a look at draft-ietf-manet-report-mib-04.
> > This is *not* a full MIB doctor review; in my opinion some fundamental
> > issues need to be resolved before a detailed review (either from a MIB
> > doctor or disman perspective) would be worthwhile.
> >
> > These are mostly just top-level issues that absolutely need to be
> > resolved.  I fear that even though the questions aren't terribly
> > difficult, the fixes may result in significant document churn.  There
> > are also some odds and ends that jumped out that should be fixed
> > before bothering with a serious review. I didn't go into a lot of
> > detail because the sheer number of problems would make any such
> > attempt seem like a DoS attack.  The categories here are:
> >    (1) data type difficulties
> >    (2) time stamping
> >    (3) access control
> >    (4) odds and ends
> >    (5) questions of power
> >
> > Data Type Difficulties
> >
> >    Location: Abstract and elswhere
> >
> >    Example of Current text:
> >      In particular, it describes objects for configuring autonomous rep=
ort
> >      generation on any device that supports MIBs containing objects tha=
t
> >      resolve to type Integer32 (i.e., Integer32, Counter, Gauge, or
> >      TimeTicks). to be used for performance monitoring.
> >
> >    Problems:
> > 	- typographical nit: misplaced "." after ")"
> >          - technical: "Counter" is not an SMIv2 type.  I assume
> >                       "Counter32" is intended.  If inclusion of
> >                       Counter64 is also intended, there are other probl=
ems.
> >          - technical: "Gauge" is not an SMIv2 type.  I assume
> >                       "Gauge32" is intended.
> > 	- technical:  the range of type Integer32 (defined in RFC 2578)
> >                        does not cover the entire ranges of type Counter=
32,
> >                        Gauge32, or TimeTicks, as defined in RFC 3416.
> >                        The SMI type *Unsigned32* does cover the same ra=
nges.
> > 	- technical: the use of "resolve" is questionable, since all
> >                       of the data types mentioned have distinct ASN.1
> >                       tags.  (RFC 3416 section 3)
> >
> >    It gets worse.  The definitions for reportSampledCurrentMeasurementV=
alue
> >    and reportSampledHistoricalReportsValue limit their ranges to
> >    1 to 2,147,483,647.  This means that samples of Counter32, Gauge32,
> >    and TimeTicks with values of 0 or anything in the range from
> >    2,147,483,647 to 4,294,967,295 cannot be represented.
> >
> >    The reportSampledCurrentMeasurementStatus and the
> >    reportSampledHistoricalMeasurementStatus OBJECT-TYPEs appear
> >    to be an attempt to address this problem, and would *almost*
> >    work if the MeasurementValue were of type Unsigned32, and
> >    if its range were not constrained.  However, if the module
> >    functioned as though sampled data, regardless of type, were
> >    "cast" to Unsigned32, then the valuePositive(2) and valueNegative(3)
> >    aren't really needed, since the signedness of the sampled values
> >    can be recovered from reportSampledStudyOid.
> >
> >
> > Time Stamping
> >    There are a bunch of concerns related to time stamping.
> >
> >    - several OBJECT-TYPE definitions have impossible syntaxes.
> >      "sysUptime" is not a syntax.  It should not be IMPORTed.
> >      For reportSampledCurrentMeasurementTime and for
> >      reportSampledHistoricalMeasurementTime you intend to
> >      use a syntax of "TimeStamp"
> >
> >    - HOWEVER, there is a health warning attached to the
> >      TimeStamp textual convention in RFC 2579, and it applies
> >      here.  Firstly, it applies because the set of values
> >      permitted for reportSampledStudySamplingInterval means
> >      it is possible to construct a single report in which
> >      the sample times are ambiguous.  More significantly,
> >      for historical reports, especially for "archival" purposes,
> >      the sample times are almost certainly ambiguous.  Consequently,
> >      I think there needs to be a re-think of whether this is
> >      the correct data type for the intended use.
> >
> >    - Many counter objects have "discontinuity indicators" other
> >      than sysUpTime. This module does not provide a straightforward
> >      way to cope with these.  See RFC 2981 (search for "discontinuity")
> >      to see one approach.
> >
> >    - reportSampledStudySamplingInterval may be modified during a
> >      report.  This means that conventional algorithms for detecting
> >      sysUpTime discontinuities within a report may not work.
> >
> > Access Control
> >    There are a couple of ways in which access control considerations
> >    might affect the design of this module.  The presence of
> >    reportSampledStudyOwner suggests that someone was thinking about
> >    this, but some changes are needed to make things work.
> >
> >      (1) reportSampledControlEntry should have an INDEX of
> >          { reportSampledStudyOwner, reportSampledStudyIndex }
> >          This is necessary if you want to be able to limit access
> >          to specific studies to specific users in a reasonable way,
> >          and to prevent collisions between users during the creation
> >          of studies.
> >
> >      (2) Likewise, reportSampledCurrentReportsStatusEntry should
> >          also have an INDEX of
> >          { reportSampledStudyOwner, reportSampledStudyIndex },
> >          reportSampledCurrentReportsEntry should have
> >          { reportSampledStudyIndex, reportSampledCurrentMeasurementInde=
x }
> >          reportSampledHistoricalReportsEntry should have
> >          { reportSampledStudyOwner, reportSampledStudyIndex,
> >            reportSampledHistoricalReportIndex,
> >            reportSampledHistoricalMeasurementIndex }
> >
> >      (3) A consequence is that (for example) reportSampledStudyIndex
> >          only needs to be unique for a given owner, and not among
> >          all studies.
> >
> >    Note that reportSampledDataCollectionFailure suffers from the
> >    "who's buried in Grant's Tomb" problem, and can be simplified.
> >
> >    A second way in which access control matters here is that the
> >    sampling process should not circumvent access control.  I strongly
> >    urge putting in explicit language about this.  I'd suggest the follo=
wing
> >    as a starting point for discussion:
> >
> >       Security for local access effectively requires recording appropri=
ate
> >       security credentials of the creator of a reportSampledControlEntr=
y
> >       and using those to access the local objects.  These security
> >       credentials are parameters necessary as inputs to isAccessAllowed
> >       from the Architecture for Describing SNMP Management Frameworks.
> >       The system MUST (conceptually) use isAccessAllowed at the time of
> >       each access (not just creation of the reportSampledControlEntry)
> >       to ensure that it does not permit unauthorized access.
> >
> >       When using VACM, the security administrator SHOULD ensure that
> >       access permitted to the collected data and notifications (that is=
,
> >       access to reportSampledCurrentReportsStatusTable.*.<user>,
> >       reportSampledCurrentReportsTable.*.<user>, and
> >       reportSampledHistoricalReportsTable.*.<user>) is
> >       limited to the <user>'s appropriate VACM group.
> >
> > Odds and ends:
> >    It's pretty obvious that this module has not seen a MIB compiler
> >    recently.  In addition to the syntactic problem, there are some
> >    glaring stylistic issues that, if fixed now, will make an eventual
> >    MIB doctor review go a lot smoother.
> >
> >     (1) Use of data types.  Every single use of Integer32 in this
> >         module is arguably incorrect.  Unsigned32 would be a better
> >         choice, since these are all sub-typed to exclude negative
> >         values.
> >
> >    (2) Use of data types.  reportSampledStudySamplingInterval
> >        seems like it should make use of RFC 2579 TimeInterval, perhaps
> >        constrained to be at least 10.
> >
> >    (3) Use of UNITS.  Though it's a little unusual (but not unheard-of)
> >        to use UNITS with non-counter types, a value of "count" in,
> >        for example, reportSampledStudyMaximumNumberOfHistoricalReports,
> >        is really not helpful.  In that particular case, "reports"
> >        would make more sense.
> >
> >    (4) Attention to error cases: there are a bunch of error situations
> >        that should be given a little attention.  What happens when
> >        there's no longer enough memory to keep accumulating studies?
> >        What happens when the object instance referred to by
> >        reportSampledStudyOid is the wrong data type?
> >
> >    (5) The use of non-volatile storage doesn't seem to have been
> >        completely thought through.  It doesn't make sense to me, for
> >        example, to have the control entries in backing storage, but
> >        not the "archival" historical data.  Likewise, if a control
> >        entry is restored from non-volatile upon reboot, does that
> >        cause a new report to be started or does it pick up where
> >        it left off on a existing report?
> >
> >    (6) Notification throttling.
> >
> > Questions of Power
> >    I think the decision to limit the module to local access is reasonab=
le
> >    given the intended applicability.  I do think, however, there should
> >    be a clear explanation of the rationale behind limiting its function=
ality
> >    to the current SNMP context, unlike RFC 1981.
> >
> >    I think it would be helpful to at least suggest how it is envisioned
> >    that future "statistical" functions alluded to in the text would wor=
k
> >    with this MIB module -   are they expected to be extensions of this
> >    module or completely new ones?
> >
> >    I honestly have some difficulty seeing what good this module would
> >    do; perhaps the WG has discussed concrete use cases, but don't be
> >    surpised if a future reviewer raises questions on this point.
> >
> > Randy
> >
> > _______________________________________________
> > MIB-DOCTORS mailing list
> > [email protected]
> > https://www.ietf.org/mailman/listinfo/mib-doctors
> > .
> >
>=20
> _______________________________________________
> MIB-DOCTORS mailing list
> [email protected]
> https://www.ietf.org/mailman/listinfo/mib-doctors