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

Re: Uniform Probabilistic Sampling in PSAMP-PROTO



Juergen Quittek wrote:
Hi Andrew,

--On 08.12.2005 16:53 Uhr +0000 Andrew Johnson wrote:

Benoit Claise wrote:
[SNIP]

Initially we wanted to model the probability in [PSAMP-PROTO] with a
float, which is allowed by [IPFIX-PROTO].
However, we've got the issue that SMIv2 doesn't support floats.


Although the floating point type is not a base type in SMI there are
a couple of proposals about how to send them.  This extract is from
the comp.protocols.snmp SNMP FAQ:

  http://www.faqs.org/faqs/snmp-faq/part2/
  ===============================================================
  2.40.04
  SUBJECT: Floating Point Numbers in SMI?

  You cannot add new base types to the SMI.

  For now, the easiest way to have floating point numbers
  in SNMP MIBs is to use the base type OCTET STRING and
  encode the value in ASCII.

  This is not the most elegant approach. However, it will work
  between your agent and your management application and it will
  be compliant to the SNMP SMI and protocol specifications.

  David Perkins
  ===============================================================

Apparently this method is implemented in the NET-SNMP agent and
manager.
  (http://ops.ietf.org/lists/mreview/mreview.2004/msg00083.html)

Whether we use the above suggested method or define a new way of
using unsigned32 the application will have to have some way of
converting that number before it can be used.


This would be Solution 4.
I still prefer Solution 1 or Solution 2.

What to do now?

_Solution 1: _
We export the probability with a float, and we approximate this value
with the MIB variable.

_Solution 2: _
We export the probability with an unsigned32, exactly the same content
as the MIB variable psampSampUniProbProbability

_Solution 3: _
We export the probability with two values N, M.
This means 2 inter-dependent I.E.s and 2 MIB variables instead of one.
    I don't like it too much

I'm clearly in favor of solution 1. It's not right that we would limit
IPFIX because of the limitations of SMIv2
Feedback?

Side question: if we go for the float solution, should we have a
float64? This would give us more precision
Note: not yet defined in [IPFIX-PROTO].


FYI:
The 32-bit float has 24 bits of precision, i.e. roughly +/-0.000006%.


It is 23 bits we are using. Precision would be    roughly +/-0.00001%

I think you are correct.  IEEE 764 assumes a top bit of 1 but although
this generates a 24-bit number we only have 23 bits of precission, as
you say.

This precision remains constant as the size of the number varies as the
exponent shifts the mantissa to where the bits have the most accuracy.
This is why I prefer using the float as a solution.


The Unsigned as Benoit suggests it would have     roughly +/-0.0000001%

The precision scales according to the size of the fraction you are
representing, so for the common small numbers it is quite precise but for
the smaller the fraction the less accurate the method is. For example, for
a 1 in 3 billion sampler the closest we can represent is 1 in 2^32, which
is almost 50% off.


Regards,

Andrew


The 64-bit float has 53 bits of precision, i.e. roughly +/-0.00000000000001%
regards


Thanks,

   Juergen

Andrew

--
to unsubscribe send a message to psamp-request@ops.ietf.org with
the word 'unsubscribe' in a single line as the message text body.
archive: <http://ops.ietf.org/lists/psamp/>

--
to unsubscribe send a message to psamp-request@ops.ietf.org with
the word 'unsubscribe' in a single line as the message text body.
archive: <http://ops.ietf.org/lists/psamp/>