Hi Benoit,

Thanks a lot for taking the discussion to the list and providing your thoughts.
Current I couldn't see a perfect solution of this problem. Please see my reply 
inline with [Yao].

Regards,
Yao  





From: [email protected] <[email protected]>  
To: [email protected] <[email protected]>;  
Cc: [email protected] <[email protected]>;[email protected] <[email protected]>;Brian 
Trammell <[email protected]>;
Date:  2025年11月15日 20:17  
Subject: [OPSAWG]Semantic of one IPFIX IE depends on the semantic of another 
IPFIX IE (draft-liu-opsawg-ipfix-muti-layer)  

_______________________________________________
OPSAWG mailing list -- [email protected]
To unsubscribe send an email to [email protected]
Dear authors,
 
I would to add more information on draft-liu-opsawg-ipfix-muti-layer  
during the OPSAWG meeting, presented at the last IETF meeting.
 
In your proposal, the semantic of one IPFIX Information Element (e.g,  
the destIPv6address) relies on the content of another IE(e.g,  
encapLayerTop, encapLayer2).
 
We've been trying to avoid this in IPFIX. One reason: an Exporter might  
decide to include the variable length IPFIX IE  
<https://datatracker.ietf.org/doc/html/rfc7011#section-7>s at the end of  
the Template Record. However, this implicit rule was never specified in  
the IPFIX specifications but stems from this "the Information Elements  
in the Template Records is not guaranteed" sentence in RFC7011.
 
The only rules regarding the IPFIX IE order mentioned in RFC 7011 are
1.
 
    Multiple Scope Fields MAY be present in the Options Template Record,
    in which case the composite scope is the combination of the scopes.
    For example, if the two scopes are meteringProcessId and templateId,
    the combined scope is this Template for this Metering Process.  If a
    different order of Scope Fields would result in a Record having a
    different semantic meaning, then the order of Scope Fields MUST be
    preserved by the Exporting Process.
 
2.
    If an Information Element is required more than once in a Template,
    the different occurrences of this Information Element SHOULD follow
    the logical order of their treatments by the Metering Process.
 
Btw, do you see the difference between MUST for a Scope field and SHOULD  
for a normal IPFIX IE?
 
This is a known problem for IPFIX.
Already in MPLS, we had to define multiple IPFIX IEs in IANA  
<https://www.iana.org/assignments/ipfix/ipfix.xhtml> for that exact reason
 
 
This is not ideal but that's the way it is.
Even that MPLS-like solution is not ideal from a data interpretation  
point of view, as the networking context might be different from each  
exporter and each exporter only knows about itself. Practically, the  
encapLayer2 on different exporters might not produce the same results.

[Yao] Yes, encapLayer2 on different exporters might not produce the same 
results, the encapLayer2 is the layer2 information on each exportor locally.


So the problem statement in your draft is a very valid one, as discussed  
on the microphone in IETF 124.
 
Not to sure what to do from here. Possible tracks:
- we keep the solution in your draft; and we might have more of such  
drafts, with a need for multiple different IEs which would require  
another IPFIX similar to encapLayerTop, encapLayer2, etc

[Yao] Yes, following the solution of our draft, if one day there're packets 
with four or five or more encapsulation layers in the network and people wants 
to export the packet header information of each layer, the encapLayer4, 
encapLayer5 are needed.

- have a generic solution draft with topIPFIXIE, secondIPFIXIE, etc.

[Yao] Do you mean defining new IEs such as 
topSourceIPv6Address,secondSourceIPv6Address, thirdSourceIPv6Address...? It's a 
generic solution, but there're many fields in the packet header, so a large 
amount of new IEs needs to be defined for each field of each layer. 


- impose the structure data RFC 6313 (I am not sure many collector  
supports this RFC)

[Yao] From my understanding, the structure 
data(basicList/subTemplateList/subTemplateMultiList) in RFC6313 is more 
suitable for the data with a fixed structure. In the multi-layer encapsulation 
scenario, there're different data collection requirements, which leads to many 
different data structures, e.g, outer DA& inner SA, outer SA&inner DA, outer DA 
& inner SRH, and etc. I'm still trying to figure out how to use RFC6313 to 
fulfill the multi-layer encapsulation collection requirement. 

- update 7011 with this change:

[Yao] Just updating RFC7011 can only fulfill the requirements of collecting the 
same fields from both the outer and inner packet headers(Req-a in the drart), 
but Req-b/c/d still can't be fulfilled, e.g, for a packet with three IPv6 
headers encapsulated, the monitor only wants to collect the information of the 
innermost IPv6 header. 


    OLD:
 
        If an Information Element is required more than once in a Template,
        the different occurrences of this Information Element SHOULD follow
        the logical order of their treatments by the Metering Process.
 
 
    NEW:
 
        If an Information Element is required more than once in a Template,
        the different occurrences of this Information Element MUST follow
        the logical order of their treatments by the Metering Process.
 
    OLD:
    the Information Elements in the Template Records is not guaranteed
 
    NEW:
    the Information Elements in the Template Records is guaranteed
 
[Yao] About the order of the IEs in the Template, 
https://datatracker.ietf.org/doc/html/rfc6313#section-2.2 says that "some 
encoding optimizations are based on the permutation of Information Element 
order". So I'm not sure whether  7011 can be updated to say that the order of 
the IEs in the Template Records is guaranteed if there're implementations that 
don't guarantee the order . But if solutions similar to our draft are used, 
maybe just to specify in the solution draft that the order of the IEs in the 
Template Records MUST be guaranteed when encapLayerTop/encapLayer2/encapLayer3  
are used can make the solution work. 


Between the pragmatic solution (your draft), the perfect-but-not-widely  
implemented solution (RFC6313), the  
hopefully-very-quick-but-we-know-a-bis-RFC-is-never-quick solution  
(update RFC7101), let's discuss.
 
Copying the IPFIX mailing for discussion.
 
Regards, Benoit
_______________________________________________
OPSAWG mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to