Re: [IPFIX] IPFIX observationPointId uniqueness

Andrew Feren <[email protected]>
Newsgroups gmane.ietf.ipfix
Message-ID <CD79A0F5.14D8D%[email protected]>
Hi Paul, Gerhard,

I can't speak for other collectors, but I don't see a problem with
increasing the length of observationPointId.

I never saw any upside to doing anything other than respecting the length
in a template when that length in the template differs from the nominal
type size of the IE.  For reduced size encoding this is a specified
behavior disallowing increased size encoding seemed like extra work with
no return.

Also I think Gerhard made a good case for increasing the size being a
better option than the original proposal.  I didn't have an problem with
the original proposal, but after considering Gerhard's arguments I think
increasing the length of observationPointId is less likely to have any
negative consequences.

-Andrew


On 3/28/13 5:52 AM, "Paul Aitken" <[email protected]> wrote:

>Gerhard,
>
>This question needs input from collector experts on this list.
>
>P.
>
>
>On 27/03/13 20:54, Gerhard Muenz wrote:
>> Paul,
>>
>> I do not see any problem with 64bit OP ID.
>>
>> I think, we had a similar motivation for having 64bit selector
>> IDs/selection sequence IDs.
>>
>> Will it confuse existing collectors? (hopefully not)
>>
>> Regards,
>> Gerhard
>>
>>
>> On 26.03.2013 13:20, Paul Aitken wrote:
>>> Gerhard,
>>>
>>> My problem is mapping multiple discrete 32-bit number spaces into a
>>> single 32-bit Observation Point ID.
>>>
>>> Keeping track of the mapping could be impossibly expensive: in the
>>>worst
>>> case, 2^32 IDs x { (8-bit source type) + (32-bit source ID) + (32-bit
>>> OPID) } = 36G of memory :-(
>>>
>>> This suggests that the number space should be carved, so source 1 uses
>>> OP IDs 0 - 999, source 2 uses OP IDs 1,000 - 1,999 etc. However I can't
>>> do that because there are only 32-bits in the destination (OP ID)
>>>number
>>> space. Each of the source number spaces is also 32-bits; I can't know
>>> whether they'll be linearly allocated or sparsely populated (eg, by a
>>> hashing algorithm), so I can't impose that certain bits (eg the topmost
>>> bits) be used for the carving.
>>>
>>> A 64-bit OP ID would really help me.
>>>
>>> Thanks,
>>> P.
>>>
>>>
>>> On 13/03/13 21:42, Gerhard Muenz wrote:
>>>>
>>>> Paul,
>>>>
>>>> I always thought of OPID, ODID, MPID, EPID etc. as being abstract
>>>> identifiers. If an implementation can map them directly to
>>>> implementation-specific internal parameters, that's fine. If not, a
>>>> mapping needs to be provided by the device. That's the same for other
>>>> data models.
>>>>
>>>> For example, you would also need to assign ipfixObservationPointIndex
>>>> for each OP if you implement IPFIX-MIB. You could use the same value
>>>> for the OPID IE.
>>>>
>>>> If there is no other solution than map 32 bit directly into OPID, I
>>>> would prefer changing OPID to unsigned64.
>>>>
>>>> Regards,
>>>> Gerhard
>>>>
>>>>
>>>> On 13.03.2013 11:26, Paul Aitken wrote:
>>>>> Gerhard,
>>>>>
>>>>> We are monitoring traffic in multiple places - at the ingress and
>>>>> egress
>>>>> interfaces, at processes, in ACLs, in policies.
>>>>>
>>>>> Each of these has a unique 32-bit ID (ie, there may be up to N x
>>>>> 32-bit
>>>>> IDs).
>>>>>
>>>>> However, these IDs are in unique number spaces. eg, the interface ID
>>>>> could happen to be the same as the process ID or the same as the
>>>>> policy
>>>>> ID. So it's not possible to say what the ID represents without
>>>>>knowing
>>>>> the type.
>>>>>
>>>>> You would meet this issue if you monitor interfaces and also want to
>>>>> report PSAMP stats for each selection process. Somehow you need to
>>>>> report distinct IDs for the interfaces versus the processes.
>>>>>
>>>>> Several possibilities come to mind:
>>>>>
>>>>> 1. use multiple different IEs, one per observation point type, with
>>>>> multiple templates. This is not ideal, because we have to request new
>>>>> IEs for each new observation point type, and store / export multiple
>>>>> templates. ie, it adds a layer of unnecessary complexity rather than
>>>>> rather than simplifying the export.
>>>>>
>>>>> 2. implement a conversion function, mapping the N x 32-bit IDs into
>>>>> the
>>>>> 1 x 32-bit observationDomainID space. Obviously only a limited
>>>>> number of
>>>>> conversions (1/N) are possible, and there'll be a trade-off between
>>>>> the
>>>>> table size and lookup time.
>>>>>
>>>>> 3. associate an observationPointType with each observationPointID,
>>>>>and
>>>>> not require any conversion at all. Each internal ID is mapped 1:1
>>>>>with
>>>>> an observationPointId, with uniqueness being determined by the
>>>>> associated observationPointType. This is the simplest and cleanest
>>>>> solution.
>>>>>
>>>>>
>>>>> So to answer your questions directly:
>>>>>
>>>>> - Do you really need OPID for your purpose? Have you thought about
>>>>> using
>>>>> IEs like ingressPhysicalInterface or ingressInterface? Or, if these
>>>>> IEs
>>>>> are not appropriate, about defining new IEs?
>>>>>
>>>>>        - per (1) above, this makes for an unnecessarily complex
>>>>> solution.
>>>>>
>>>>>
>>>>> - If you need to use OPIDs and if you want to avoid any mapping, have
>>>>> you thought about assigning the different sources (interface cards,
>>>>> VLANs) to different ODs?
>>>>>
>>>>>        - they are all within a single OD.
>>>>>        - Example use case: report packet counts as traffic progresses
>>>>> through selection and filtering within the router. The report will be
>>>>> exported in a single message with a single OD in the header.
>>>>>            It's not possible to export a single cohesive report using
>>>>> multiple ODs.
>>>>>
>>>>> P.
>>>>>
>>>>>
>>>>>
>>>>> On 15/02/13 09:25, Gerhard Muenz wrote:
>>>>>>
>>>>>> Benoit, Paul,
>>>>>>
>>>>>> Like Benoit, I do not have a good feeling about this proposal. On
>>>>>>the
>>>>>> other hand, I have not found any RFC that really requires the use of
>>>>>> OPIDs. Even RFC5476 leaves it open whether the OP is identified by
>>>>>> OPID or any other IE. Therefore, I have been silent until now.
>>>>>>
>>>>>> IPFIX-CONFIG assumes that the OPID is assigned by the IPFIX device,
>>>>>> i.e. it is not a configuration parameter. I think that we agree
>>>>>>here.
>>>>>>
>>>>>> Up to now, the IPFIX RFCs do not impose any restriction on the OPID
>>>>>> except for the uniqueness per OD. This means that various
>>>>>> implementations are possible right now:
>>>>>> 1) OPID is equal to an internal identifier (e.g. internal interface
>>>>>> number) or a non-IPFIX MIB index (e.g. ifIndex, entPhysicalIndex).
>>>>>> 2) OPID is equal to the IPFIX-MIB index ipfixObservationPointIndex
>>>>>> 3) OPID is unrelated to any other index, the IPFIX device provides
>>>>>> the
>>>>>> internal mapping
>>>>>>
>>>>>> If IPFIX-MIB is supported by the device, the natural choice for me
>>>>>> would be 2). This would allow easy mapping of MIB entries and IPFIX
>>>>>> export.
>>>>>>
>>>>>> As Paul points out, 1) only works as long as the internal
>>>>>>identifiers
>>>>>> are unique per OD.
>>>>>>
>>>>>> My questions to Paul are:
>>>>>> - Do you really need OPID for your purpose? Have you thought about
>>>>>> using IEs like ingressPhysicalInterface or ingressInterface? Or, if
>>>>>> these IEs are not appropriate, about defining new IEs?
>>>>>> - If you need to use OPIDs and if you want to avoid any mapping,
>>>>>>have
>>>>>> you thought about assigning the different sources (interface cards,
>>>>>> VLANs) to different ODs?
>>>>>>
>>>>>> Regards,
>>>>>> Gerhard
>>>>>>
>>>>>>
>>>>>> On 15.02.2013 01:23, Benoit Claise wrote:
>>>>>>> Paul,
>>>>>>>
>>>>>>> At first glance, it looks reasonable.
>>>>>>> But what would be the consequence on the Selection Sequence Report
>>>>>>> Interpretation(see
>>>>>>> http://tools.ietf.org/html/rfc5476#section-6.5.1). If
>>>>>>> we use the observationPointId and it's not unique, then we need to
>>>>>>> include the observationPointType?
>>>>>>> Note that the sentence "It is RECOMMENDED that this identifier is
>>>>>>> also
>>>>>>> unique per IPFIX Device." was inserted specifically for this.
>>>>>>>
>>>>>>> Regards, Benot
>>>>>>>> Dear IPFIX experts,
>>>>>>>>
>>>>>>>> IPFIX observationPointId (#138) is defined as:
>>>>>>>>
>>>>>>>>            An identifier of an Observation Point that is unique
>>>>>>>>per
>>>>>>>>            Observation Domain.  It is RECOMMENDED that this
>>>>>>>> identifier is
>>>>>>>>            also unique per IPFIX Device.  Typically, this
>>>>>>>> Information
>>>>>>>>            Element is used for limiting the scope of other
>>>>>>>> Information
>>>>>>>>            Elements.
>>>>>>>>
>>>>>>>> We now also have observationPointType (#277), defined as:
>>>>>>>>
>>>>>>>>             Type of observation point. Values assigned to date
>>>>>>>>are:
>>>>>>>>
>>>>>>>>             1. Physical port
>>>>>>>>             2. Port channel
>>>>>>>>             3. Vlan.
>>>>>>>>
>>>>>>>>
>>>>>>>> Could we relax the uniqueness requirements of observationPointId
>>>>>>>> when
>>>>>>>> an observationPointType is also exported, such that the {
>>>>>>>> observationPointType, observationPointId } pair must be unique,
>>>>>>>> though
>>>>>>>> not the observationPointId itself.
>>>>>>>>
>>>>>>>> The reason being that observation points of different types
>>>>>>>>already
>>>>>>>> have IDs, though these are not unique. eg, we have interface 1,
>>>>>>>> 2, 3,
>>>>>>>> ...; vlan 1, 2, 3, ...; port 1, 2, 3, ...
>>>>>>>>
>>>>>>>> So an extra mediation layer is required to convert values from
>>>>>>>> each of
>>>>>>>> these number spaces into unique IDs in the observationPointId
>>>>>>>> number
>>>>>>>> space - which becomes harder as we add more places that
>>>>>>>> observations
>>>>>>>> can be made, ie more observationPointTypes.
>>>>>>>>
>>>>>>>> Whereas prefixing with the observationPointType achieves the
>>>>>>>> required
>>>>>>>> uniqueness in a faster, simpler, and more reliable way.
>>>>>>>>
>>>>>>>> To achieve this, I'd propose the following definition change:
>>>>>>>>
>>>>>>>>            An identifier of an Observation Point that is unique
>>>>>>>>per
>>>>>>>>            Observation Domain and per observationPointType, if
>>>>>>>> specified.
>>>>>>>>            It is RECOMMENDED that this identifier is
>>>>>>>>            also unique per IPFIX Device.  Typically, this
>>>>>>>> Information
>>>>>>>>            Element is used for limiting the scope of other
>>>>>>>> Information
>>>>>>>>            Elements.
>>>>>>>>
>>>>>>>> For backwards compatibility, we could define
>>>>>>>> observationPointType = 0
>>>>>>>> to be "unspecified".
>>>>>>>>
>>>>>>>> Thanks,
>>>>>>>> P.
>>>>>>>>
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> IPFIX mailing list
>>>>>>>> [email protected]
>>>>>>>> https://www.ietf.org/mailman/listinfo/ipfix
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> IPFIX mailing list
>>>>>>> [email protected]
>>>>>>> https://www.ietf.org/mailman/listinfo/ipfix
>>>>>>>
>>>>>
>>>
>
>_______________________________________________
>IPFIX mailing list
>[email protected]
>https://www.ietf.org/mailman/listinfo/ipfix


_______________________________________________
IPFIX mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/ipfix
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.