Subject: [ipfix-protocol] PROTO-12: Do we need the IETF exclusive template flowset format? + PROTO-15 Remove Reserved field

From: Benoit Claise <[email-masked]>
Date: Wed, 16 Jun 2004 14:26:04 +0200

Dear all,

 From the IPFIX protocol specification draft, we can read:

    PROTO-12: Do we need the IETF exclusive template flowset format?
           suggested solution:
           - reserve flowset ID 0 & 1 for compatibility with NFv9
           - try to make flowset ID 2 & 3 definition fully compatible with
             NFv9
           - add note that if you implement ID 2/3 correctly, you can also
       process ID 0/1.

 From the Seoul meeting minutes:

    - Vendor specific information:
     [Juergen] There was a comment on the mailing list. FlowSet ID 2 and
    3 might
     only be needed, and not 0 and 1 which were defined to be NetFlow
    compliant.
     Should be OK if FlowSet ID 0 and 1 are reserved for NetFlow, as the
    packet
     header already has a different version number (10) instead of the
    one which
     is used by NetFlow (9).

The proposal is the following:
- remove section 8.3.1 IETF Exclusive Template FlowSet Format
- remove section 8.5.1 IETF Exclusive Options Template FlowSet Format
- remove the notion of the Vendor Specific (option) template: only keep 
(option) template

As a consequence of working on the packet format, I solved the issue 
PROTO-15

   PROTO-15: Remove Reserved 2 octets in Vendor specific option 
   template flowset and add padding at the end 

Any feedback before I apply the change?
See the attached file.

Regards, Benoit.

   IPFIX working group                                                  
   Internet Draft                               EDITORS:      B. Claise
   draft-ietf-ipfix-protocol-04.txt                       Cisco Systems 
   Expires: July 2004                                      Mark Fullmer 
                                                                 OARnet 
                                                            Paul Calato 
                                                    Riverstone Networks 
                                                         Reinaldo Penno 
                                                        Nortel Networks 
                                                           January 2003 
    
  .
  .
  .
            
 8.3 
     Template FlowSet Format 
    
   One of the essential elements in the IPFIX format is the Template 
   FlowSet. Templates greatly enhance the flexibility of the Flow 
   Record format because they allow the Collecting Process to process 
   Flow Records without necessarily knowing the interpretation of all 
   the data in the Flow Record. A Template FlowSet MAY exclusively 
   contain IETF defined Field Types. A Template FlowSet MAY contain 
   Vendor Specified Information Elements from multiple vendors.  
    
   The format of the Template FlowSet is shown in Figure D.  
    
       0                   1                   2                   3  
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1  
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
      |       FlowSet ID = 2          |          Length               |  
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
      |       Template ID 1           |         Field Count           |  
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
      |        Field Type 1           |         Field Length 1        |  
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
      |                    Enterprise Number  1.1                     |  
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
      |        Field Type 2           |         Field Length 2        |  
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
      |             ...               |              ...              |  
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
      |        Field Type N           |         Field Length N        |  
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   
      |                    Enterprise Number  1.N                     | 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
      |       Template ID 2           |         Field Count           |  
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
      |        Field Type 1           |         Field Length 1        |  
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
      |        Field Type 2           |         Field Length 2        |  
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
      |                    Enterprise Number  2.2                     | 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
      |             ...               |              ...              |  
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
      |        Field Type M           |         Field Length M        |  
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
      |                    Enterprise Number  2.M                     | 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
    
      Figure D: Template Flowset  
    
   The Template FlowSet Field Definitions are as follows: 
    
     FlowSet ID 
           FlowSet ID value of 2 is reserved for the Template FlowSet 
    
     Length 
           Total length of this FlowSet. Because an individual Template 
           FlowSet MAY contain multiple Template Records, the Length 
           value MUST be used to determine the position of the next 
           FlowSet record, which could be any type of FlowSet. Length 
           is the sum of the lengths of the FlowSet ID, the Length 
           itself, and all Template Records within this FlowSet. 
            
     Template ID 
           Each of the newly generated Template Records is given a 
           unique Template ID. This uniqueness is local to the 
           Observation Domain that generated the Template ID.      
           Template IDs 0-255 are reserved for Template FlowSets, 
           Options FlowSets, and other reserved FlowSets yet to be 
           created. Template IDs of Data FlowSets are numbered from 256 
           to 65535. 
 
     Field Count 
           Number of fields in this Template Record. Because a Template 
           FlowSet usually contains multiple Template Records, this 
           field allows the Collecting Process to determine the end of 
           the current Template Record and the start of the next. 
  
     Field Type 
           A numeric value that represents the type of the field. Refer 
           to [IPFIX-INFO].        
 
     Field Length 
           The length of the corresponding Field Type, in bytes. Refer 
           to [IPFIX-INFO]. 
            
      Enterprise Number  
           IANA enterprise number [PEN] of the authority defining the  
           field type in this template record. 
      
   The FlowSet ID value of 0 is reserved for backwards compatibility of 
   the Template FlowSet: the Template specified in this document is a 
   superset of the Template specified in [NETFLOW9]. The Template 
   specified in this document that would contain only IETF defined 
   Field Types would be equivalent to the Template specification in 
   [NETFLOW9], with the only exception that the FlowSet ID value is 0. 
 
 .
 .
 .
    
 8.5 
     Options Template FlowSet Format 
    
   The Options Template Record (and its corresponding Options Data 
   Record) is used to supply information about the Metering Process  
   configuration or Metering Process specific data, rather than 
   supplying information about IP Flows. 
   For example, the Options Template FlowSet can report the sample rate 
   of a specific interface, if sampling is supported, along with the 
   sampling method used.  

 8.5.1   Options Template FlowSet Format 
    
   A Options Template MAY exclusively contain IETF defined Field Types. 
   A Options Template MAY contain Vendor Specified Information Elements 
   from multiple vendors.  
    
   The format of the Options Template FlowSet is shown in Figure E.  
    
       0                   1                   2                   3  
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1  
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
      |       FlowSet ID = 3          |          Length               |  
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
      |         Template ID           |      Option Scope Length      |  
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
      |        Option Length          |      Scope 1 Field Type       |  
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
      |     Scope 1 Field Length      |               ...             |  
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
      |             ...               |      Scope N Field Type       |  
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
      |     Scope N Field Length      |            Scope N...         |  
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
      |    ... Enterprise Number      |      Option 1 Field Type      |       
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
      |    Option 1 Field Length      |           Option 1 ...        |  
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
      |     ...Enterprise Number      |              ...              |  
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
      |             ...               |       Option N Field Type     |  
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
      |     Option N Field Length     |            Padding            |  
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+  
    
      Figure E: Option Template FlowSet  

   The Options Template FlowSet Field Definitions are as follows: 
    
   FlowSet ID = 1 
           A FlowSet ID value of 3 is reserved for the Options 
           Template. 
    
   Length 
           Total length of this FlowSet. Each Options Template FlowSet 
           MAY contain multiple Options Template Records. Thus, the 
           Length value MUST be used to determine the position of the 
           next FlowSet record, which could be either a Template 
           FlowSet or Data FlowSet.                
           Length is the sum total of lengths of FlowSet ID, the Length 
           itself, and all Options Template Records within this FlowSet 
           Template ID. 
    
   Template ID 
           Template ID of this Options Template. This value is greater 
           than 255. 
     
   Option Scope Length 
           The length in bytes of any Scope fields definition contained 
           in the Options Template Record (The use of "Scope" is 
           described below).  
    
   Option Length 
           The length (in bytes) of any options field definitions 
           contained in this Options Template Record. 
    
   Scope 1 Field Type 
           The relevant portion of the Exporting Process/Metering 
           Process to which the Options Data Record refers. 
           Currently defined values are:  
               1 System   
               2 Interface  
               3 Line Card  
               4 Cache  
               5 Template         
           For example, the Metering Process can be implemented on a 
           per-interface basis, so if the Options Template Record were 
           reporting on how the Metering Process is configured, the 
           Scope for the report would be 2 (interface). The associated 
           interface ID would then be carried in the associated Options 
           Data FlowSet. The Scope can be limited further by listing 
           multiple scopes that all must match at the same time. Note 
           that the Scope fields always precede the Option fields. 
    
   Scope 1 Field Length 
           The length (in bytes) of the Scope field, as it would appear 
           in an Options Data Record. 
            
   Scope N Enterprise Number  
         IANA enterprise number [PEN] of the authority defining  
         Scope N. 
    
   Option 1 Field Type 
           A numeric value that represents the type of field that would 
           appear in the Options Template Record. Refer to [IPFIX-
           INFO]. 
    
   Option 1 Field Length 
           The length (in bytes) of the Option Field. 
            
    Option N Enterprise Number  
      IANA enterprise number [PEN] of the authority defining the  
      Option N field type. 
    
   Padding 
           The Exporting Process SHOULD insert some padding bytes so 
           that the subsequent FlowSet starts at a 4-byte aligned 
           boundary. It is important to note that the Length field 
           includes the padding bits. 
 
   The FlowSet ID value of 1 is reserved for backwards compatibility of 
   the Option Template FlowSet: the Option Template specified in this 
   document is a superset of the Option Template specified in 
   [NETFLOW9]. The Option Template specified in this document that 
   would contain only IETF defined Field Types would be equivalent to 
   the Option Template specification in [NETFLOW9], with the only 
   exception that the FlowSet ID value is 1. 

 8.5.2   Options Data Record Format 
    
 .
 .
 .

---

From: Benoit Claise <[email-masked]>
Date: Thu, 17 Jun 2004 21:43:00 +0200

Dear all,

I just realized that one more modification is needed, as a consequence 
of the PROTO-15.
In section 8.5.1 Options Template FlowSet Format, the Length definition 
must be changed from:

   Length

To:
   Length
          Total length of this FlowSet,_ including the padding bytes, if 
any. _
          Each Options Template FlowSet MAY contain multiple Options 
Template Records. Thus, the
           Length value MUST be used to determine the position of the
           next FlowSet record, which could be either a Template
           FlowSet or Data FlowSet. 

Regards, Benoit.

>      [Juergen] There was a comment on the mailing list. FlowSet ID 2
>     and 3 might
>      Should be OK if FlowSet ID 0 and 1 are reserved for NetFlow, as
>     the packet
> - remove the notion of the Vendor Specific (option) template: only 
> keep (option) template
>
>------------------------------------------------------------------------
>
>
>
>   IPFIX working group