Subject: [MIB-DOCTORS] Help with a compliance clause (draft-ietf-ipfix-psamp-mib-04 draft)

From: Benoit Claise <[email-masked]>
Date: Thu, 26 Apr 2012 00:40:18 +0200

Dear MIB-doctors,

Part of the IESG review, Adrian provided the following feedback on the 
draft-ietf-ipfix-psamp-mib-04 
<http://tools.ietf.org/html/draft-ietf-ipfix-psamp-mib-04> draft:

    I would have expected to see some discussion of
    psampSampUniProbProbability and the non-support of NaN and Infinity
    in the compliance clauses.
    Compliance statements often also show the set (minimum? maximum?) of values for objects that need to be supported.

Here is the object in question

    psampSampUniProbProbability OBJECT-TYPE
        SYNTAX      Float64TC
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "This object specifies the probability that a packet is
            sampled, expressed as a value between 0 and 1.  The
            probability is equal for every packet.  A value of 0 means
            no packet is sampled since the probability is 0. A value
            of 1 means all packets are sampled since the
            probability is 1. NaN (not a number) and infinity MUST NOT
            be used."
        REFERENCE
            "RFC5475, Section 5.2.2.1  <http://tools.ietf.org/html/rfc5475#section-5.2.2.1>  andRFC5477, Section 8.2  <http://tools.ietf.org/html/rfc5477#section-8.2>"
        ::= { psampSampUniProbParamSetEntry 2 }

...

    psampGroupSampUniProb OBJECT-GROUP
        OBJECTS {
                  psampSampUniProbAvail,
                  psampSampUniProbProbability
                }
        STATUS  current
        DESCRIPTION
            "These objects are needed if uniform probabilistic sampling
            is implemented."
        ::= { psampGroups 4 }

I browsed through RFC2580, and I'm not sure how to address this point.
Any help is appreciated. For example, an example in a MIB module.

Regards, Benoit.

---

From: "Randy Presuhn" <[email-masked]>
Date: Wed, 25 Apr 2012 19:13:16 -0700

Hi -

> From: "Benoit Claise" <[email-masked]>
> Cc: "Thomas Dietz" <[email-masked]>; "MIB Doctors (E-mail)" <[email-masked]>; "Adrian Farrel"
<[email-masked]>
> Sent: Wednesday, April 25, 2012 3:40 PM
> Subject: [MIB-DOCTORS] Help with a compliance clause(draft-ietf-ipfix-psamp-mib-04 draft)
>
> Dear MIB-doctors,
>
>     Compliance statements often also show the set (minimum? maximum?)
> of values for objects that need to be supported.

To quote RFC 6340:
   o  Since these textual conventions are defined in terms of the OCTET
      STRING type, the SMI's mechanisms for formally setting range
      constraints are not available.  MIB designers using these textual
      conventions will need to use DESCRIPTION clauses to spell out any
      applicable range constraints beyond those implied by the
      underlying IEEE types.

   o  Whenever these textual conventions are used in a MIB module, the
      associated DESCRIPTION clause will need to clearly specify whether
      denormalized numbers, NaNs ("not a number") or infinities are
      permitted, along with any special semantics associated with these
      cases.  This is especially important for writeable objects.

The problem in this particular case is that the SMI notation doesn't provide
a reasonable way to represent the 0.0 to 1.0 range in machine-processable
form.

Prohibing NaN and the Infinities also seems to be the correct thing to do here.
If permitted, what would they *mean* here?  Or, more directly, under what
circumstances could a non-broken implementation reasonably respond
with those values for this object?  Since it is not writable, I'm less concerned
about issues with denormalized numbers.

>             "RFC5475, Section 5.2.2.1  <http://tools.ietf.org/html/rfc5475#section-5.2.2.1>  andRFC5477, Section 8.2
<http://tools.ietf.org/html/rfc5477#section-8.2>"
> Any help is appreciated. For example, an example in a MIB module.

The OBJECT-GROUP also seems reasonable to me.  What problem do you
see there?

Randy

---

From: Juergen Schoenwaelder <[email-masked]>
Date: Thu, 26 Apr 2012 07:03:08 +0200

On Thu, Apr 26, 2012 at 12:40:18AM +0200, Benoit Claise wrote:
> Dear MIB-doctors,
> 
> Part of the IESG review, Adrian provided the following feedback on
> the draft-ietf-ipfix-psamp-mib-04

I think this should have never been a Float64TC. To represent a
probability between 0 and 1, pick a scale factor (e.g. 1000000000) and
an Unsigned32 number. This is easy to implement, less ambigious for
probabilities such as 0 and 1 and I assume the precision is good
enough as well, no? If not, use Unsigned64 and an even bigger scaling
factor and this is then surely more precise than the Float64TC will
ever be. (It seems this is the only usage of a float number in the
MIB.)

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1, 28759 Bremen, Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>

---

From: Benoit Claise <[email-masked]>
Date: Thu, 26 Apr 2012 11:26:40 +0200

Thanks Randy,

Let me copy Arian Farrel, who made the comment, so that he can follow up.

Regards, Benoit.
> Hi -
>
>> From: "Benoit Claise"<[email-masked]>
>> Cc: "Thomas Dietz"<[email-masked]>; "MIB Doctors (E-mail)"<[email-masked]>; "Adrian Farrel"
> <[email-masked]>
>>              "RFC5475, Section 5.2.2.1<http://tools.ietf.org/html/rfc5475#section-5.2.2.1>   andRFC5477, Section 8.2
> _______________________________________________
> MIB-DOCTORS mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/mib-doctors
>
>

---

From: "Adrian Farrel" <[email-masked]>
Date: Thu, 26 Apr 2012 11:03:23 +0100

Hi,

Note first that this was a Comment not a Discuss.

Note also that I am not an expert on Compliance Statements, hence the slight
vagueness in my Comment.

Looking at Compliance Statements I have known, it would appear that an OBJECT
clause under Compliances has a DESCRIPTION that often limits the scope of the
object.

Adrian

> -----Original Message-----
> From: Benoit Claise [mailto:[email-masked]]
> Sent: 26 April 2012 10:27
> To: Randy Presuhn
> Cc: MIB Doctors (E-mail); Adrian Farrel; Thomas Dietz
> Subject: Re: [MIB-DOCTORS] Help with a compliance clause(draft-ietf-ipfix-
> psamp-mib-04 draft)
> 
> Thanks Randy,
> 
> >> Cc: "Thomas Dietz"<[email-masked]>; "MIB Doctors (E-
> mail)"<[email-masked]>; "Adrian Farrel"
> > <[email-masked]>
> >>              "RFC5475, Section
5.2.2.1<http://tools.ietf.org/html/rfc5475#section-
> 5.2.2.1>   andRFC5477, Section 8.2

---

From: Thomas Dietz <[email-masked]>
Date: Thu, 26 Apr 2012 10:35:51 +0000

Dear Jürgen, all,

we had exactly that in some early versions of the draft. Then we had some
lengthy discussions what is the best way to encode the float64 value from
the info model (there it IS float64). If I remember correctly we voted for
some kind of float because we wanted to avoid conversion from the info model
to the MIB and vice versa. Finally, we found the Float64TC and re-used that
one.

As conclusion, if we accept the info model as primary source of information
(because this is what is transmitted on the wire by the IPFIX protocol) then
we keep precision and avoid conversion between formats when using Float64TC.

Best Regards,

Thomas

-- 
Thomas Dietz
NEC Europe Ltd., NEC Laboratories, Network Research Division, 69115
Heidelberg, Germany

NEC Europe Limited, Registered in England 2832014
Registered Office: NEC House, 1 Victoria Road, London W3 6BL

> From: Juergen Schoenwaelder [mailto:[email-masked]]
> Sent: Thursday, April 26, 2012 7:03 AM
> To: Benoit Claise
> Cc: Thomas Dietz; MIB Doctors (E-mail); Adrian Farrel
> Subject: Re: [MIB-DOCTORS] Help with a compliance clause (draft-ietf-
> ipfix-psamp-mib-04 draft)
> 
> >    Compliance statements often also show the set (minimum? maximum?) of
> values for objects that need to be supported.
> >
> >            "RFC5475, Section 5.2.2.1
> <http://tools.ietf.org/html/rfc5475#section-5.2.2.1>  andRFC5477, Section
> 8.2  <http://tools.ietf.org/html/rfc5477#section-8.2>"

---

From: Juergen Schoenwaelder <[email-masked]>
Date: Thu, 26 Apr 2012 12:55:44 +0200

> we keep precision and avoid conversion between formats when using Float64TC.

Dear Thomas,

thanks for the explanation. Perhaps the info model should not have used
floats... but luckily I do not have to implement this. ;-)

/js

---

From: "Randy Presuhn" <[email-masked]>
Date: Thu, 26 Apr 2012 09:36:57 -0700

Hi -

I'm with Juergen on this one.  Quoting that RFC again:

   o  Floating-point numbers are useful if the number space needs to
      cover a large dynamic range.  For number spaces with a limited
      range, fixed-point numbers can be more efficient and more precise.

   o  Floating-point numbers are typically the wrong answer for data
      that is truly decimal or can be handled adequately by re-thinking
      the units and representing the scaled numbers as integers.

But I do understand the desire to avoid conversions, and if the WG
has discussed the tradeoffs, I have no objections.

Randy

----- Original Message ----- 
> From: "Juergen Schoenwaelder" <[email-masked]>
> To: "Thomas Dietz" <[email-masked]>
> Cc: "Thomas Dietz" <[email-masked]>; "Adrian Farrel" <[email-masked]>; "MIB Doctors (E-mail)"
<[email-masked]>
> Sent: Thursday, April 26, 2012 3:55 AM
> Subject: Re: [MIB-DOCTORS] Help with a compliance clause (draft-ietf-ipfix-psamp-mib-04 draft)
>

Dear Thomas,

/js

---

From: "Randy Presuhn" <[email-masked]>
Date: Thu, 26 Apr 2012 09:48:11 -0700

Hi -

> From: "Adrian Farrel" <[email-masked]>
> To: "'Benoit Claise'" <[email-masked]>; "'Randy Presuhn'" <[email-masked]>
> Cc: "'MIB Doctors (E-mail)'" <[email-masked]>; "'Thomas Dietz'" <[email-masked]>
> Sent: Thursday, April 26, 2012 3:03 AM
> Subject: RE: [MIB-DOCTORS] Help with a compliance clause(draft-ietf-ipfix-psamp-mib-04 draft)
...
> clause under Compliances has a DESCRIPTION that often limits the scope of the

The normal case when this would be done is when an implementation
conforming to a particular MODULE-COMPLIANCE statement
only needs to support a subset of the values permitted by the
OBJECT-TYPE.  One would include the SYNTAX or
WRITE-SYNTAX components in the OBJECT clause only
when the set of values that a conformant implementation must
support is more limited than what the OBJECT-TYPE specifies.

Randy