summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc8038.txt
diff options
context:
space:
mode:
authorThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
committerThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
commit4bfd864f10b68b71482b35c818559068ef8d5797 (patch)
treee3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc8038.txt
parentea76e11061bda059ae9f9ad130a9895cc85607db (diff)
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc8038.txt')
-rw-r--r--doc/rfc/rfc8038.txt4763
1 files changed, 4763 insertions, 0 deletions
diff --git a/doc/rfc/rfc8038.txt b/doc/rfc/rfc8038.txt
new file mode 100644
index 0000000..8d5b9d2
--- /dev/null
+++ b/doc/rfc/rfc8038.txt
@@ -0,0 +1,4763 @@
+
+
+
+
+
+
+Internet Engineering Task Force (IETF) P. Aitken, Ed.
+Request for Comments: 8038 Brocade
+Category: Standards Track B. Claise
+ISSN: 2070-1721 Cisco Systems, Inc.
+ S. B S
+ Mojo Networks, Inc.
+ C. McDowall
+ Brocade
+ J. Schoenwaelder
+ Jacobs University Bremen
+ May 2017
+
+
+ Exporting MIB Variables
+ Using the IP Flow Information Export (IPFIX) Protocol
+
+Abstract
+
+ This document specifies a way to complement IP Flow Information
+ Export (IPFIX) Data Records with Management Information Base (MIB)
+ objects, avoiding the need to define new IPFIX Information Elements
+ for existing MIB objects that are already fully specified.
+
+ Two IPFIX Options Templates, as well as a method for creating IPFIX
+ Options Templates that are used to export the extra data required to
+ fully describe Simple Network Management Protocol (SNMP) MIB objects
+ in IPFIX, are specified herein.
+
+Status of This Memo
+
+ This is an Internet Standards Track document.
+
+ This document is a product of the Internet Engineering Task Force
+ (IETF). It represents the consensus of the IETF community. It has
+ received public review and has been approved for publication by the
+ Internet Engineering Steering Group (IESG). Further information on
+ Internet Standards is available in Section 2 of RFC 7841.
+
+ Information about the current status of this document, any errata,
+ and how to provide feedback on it may be obtained at
+ http://www.rfc-editor.org/info/rfc8038.
+
+
+
+
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 1]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+Copyright Notice
+
+ Copyright (c) 2017 IETF Trust and the persons identified as the
+ document authors. All rights reserved.
+
+ This document is subject to BCP 78 and the IETF Trust's Legal
+ Provisions Relating to IETF Documents
+ (http://trustee.ietf.org/license-info) in effect on the date of
+ publication of this document. Please review these documents
+ carefully, as they describe your rights and restrictions with respect
+ to this document. Code Components extracted from this document must
+ include Simplified BSD License text as described in Section 4.e of
+ the Trust Legal Provisions and are provided without warranty as
+ described in the Simplified BSD License.
+
+Table of Contents
+
+ 1. Introduction ....................................................4
+ 2. Motivation ......................................................5
+ 3. Terminology .....................................................7
+ 4. High-Level Solution Overview ....................................8
+ 5. MIB Object Value Information Elements and the MIB Field
+ Options Template ...............................................10
+ 5.1. MIB Field Options Architecture ............................11
+ 5.2. IPFIX and MIB Data Model ..................................13
+ 5.3. MIB Field Options - Specifications and Required Fields ....15
+ 5.3.1. MIB Field Options Template .........................16
+ 5.3.2. MIB Type Options Template ..........................16
+ 5.4. MIB Field Options Template Formats ........................17
+ 5.4.1. Data Template Containing a mibObjectValue Field ....17
+ 5.4.2. MIB Field Options Template .........................19
+ 5.4.3. MIB Field Options Data Records .....................20
+ 5.4.4. Options Template Containing a
+ mibObjectValue Field ...............................21
+ 5.4.5. MIB Field Options Template with Semantics Fields ...23
+ 5.4.6. MIB Field Options Template with Extra MIB
+ Object Details .....................................24
+ 5.5. Use of Field Order in the MIB Field Options Template ......27
+ 5.6. Identifying the SNMP Context ..............................27
+ 5.7. Template Management .......................................28
+ 5.7.1. Large Messages .....................................28
+ 5.7.2. Template Withdrawal and Reuse ......................29
+
+
+
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 2]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ 5.8. Exporting Conceptual Rows and Tables ......................29
+ 5.8.1. Exporting Conceptual Rows - Indexing ...............30
+ 5.8.2. Exporting Conceptual Rows - mibObjectValueRow ......30
+ 5.8.3. Exporting Conceptual Rows - AUGMENTS ...............36
+ 5.8.4. Exporting Conceptual Tables - mibObjectValueTable ..37
+ 5.8.5. Exporting Columnar Objects: Using
+ mibIndexIndicator ..................................38
+ 6. Example Use Cases ..............................................39
+ 6.1. Non-columnar MIB Object: Established TCP Connections ......39
+ 6.2. Enterprise-Specific MIB Object: Detailing CPU Load
+ History ...................................................42
+ 6.3. Exporting a Conceptual Row: The OSPF Neighbor Row .........45
+ 6.4. Exporting Augmented Conceptual Row: Mapping IF-MIB
+ ID to Name ................................................49
+ 6.5. Exporting a Columnar Object: ipIfStatsInForwDatagrams .....55
+ 6.6. Exporting a Columnar Object Indexed by Information
+ Elements: ifOutQLen .......................................58
+ 6.7. Exporting with Multiple Contexts: The OSPF
+ Neighbor Row Revisited ....................................62
+ 7. Configuration Considerations ...................................65
+ 8. The Collecting Process's Side ..................................66
+ 9. Applicability ..................................................66
+ 10. Security Considerations .......................................67
+ 11. IANA Considerations ...........................................68
+ 11.1. New IPFIX Semantics ......................................68
+ 11.1.1. snmpCounter .......................................68
+ 11.1.2. snmpGauge .........................................68
+ 11.2. New IPFIX Information Elements ...........................69
+ 11.2.1. New MIB Object Value Information Elements .........69
+ 11.2.2. New MIB Field Options Information Elements ........75
+ 11.2.3. New MIB Type Information Elements .................79
+ 12. References ....................................................81
+ 12.1. Normative References .....................................81
+ 12.2. Informative References ...................................82
+ Acknowledgments ...................................................84
+ Authors' Addresses ................................................84
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 3]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+1. Introduction
+
+ There is growing interest in using IP Flow Information Export (IPFIX)
+ as a push mechanism for exporting management information. Using a
+ push protocol such as IPFIX instead of a polling protocol like SNMP
+ is especially interesting in situations where large chunks of
+ repetitive data need to be exported periodically.
+
+ While initially targeted at different problems, there is a large
+ parallel between the information transported via IPFIX and SNMP.
+ Furthermore, certain Management Information Base (MIB) objects are
+ highly relevant to Flows as they are understood today. For example,
+ in the IPFIX Information Model [IANA-IPFIX], Information Elements
+ coming from the SNMP world have already been specified, e.g.,
+ ingressInterface and egressInterface both refer to the ifIndex object
+ as defined in [RFC2863].
+
+ In particular, the Management Information Base was designed as a
+ separate system of definitions; this opens up the possibility of
+ exporting objects defined via the MIB over other protocols.
+
+ Rather than mapping existing MIB objects to IPFIX Information
+ Elements on a case-by-case basis, it would be advantageous to enable
+ the export of any existing or future MIB objects as part of an IPFIX
+ Data Record. This way, the duplication of Data Models [RFC3444],
+ both as SMIv2 MIB objects and IPFIX Information Elements, out of the
+ same Information Model [RFC3444] would be avoided.
+
+ Therefore, the primary goals of this document are:
+
+ o to specify a way to complement IPFIX Data Records with MIB
+ objects;
+
+ o to avoid the need to define new IPFIX Information Elements for
+ existing MIB objects that are already fully specified;
+
+ o to allow the correlation of SNMP and IPFIX sourced data by
+ exporting them together; and
+
+ o to allow SNMP push data from SNMP-only devices to be more easily
+ integrated into IPFIX-based collection infrastructures.
+
+
+
+
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 4]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+2. Motivation
+
+ The intended scope of this work is the addition of MIB variable(s) to
+ IPFIX Information Elements in Data Records, in order to complement
+ the Data Records with useful and already-standardized information.
+ Special consideration is given to the case of an existing
+ Template Record that needs to be augmented with some MIB variables
+ whose index is already present in the Template Record as an IPFIX
+ Information Element -- for example, a 7-tuple Data Record containing
+ the ingressInterface Information Element, which needs to be augmented
+ by interface counters [RFC2863] that are indexed by the respective
+ ingressInterface values already contained in the Data Records. See
+ Section 3 for terminology definitions.
+
+ Many Data Records contain the ingressInterface and/or the
+ egressInterface Information Elements. These Information Elements
+ carry an ifIndex value, a MIB object defined in [RFC2863]. In order
+ to retrieve additional information about the identified interface, a
+ Collector could simply poll relevant objects from the device running
+ the Exporter via SNMP. However, that approach has several problems:
+
+ o It requires implementing a mediation function between two Data
+ Models, i.e., MIB objects and IPFIX Information Elements.
+
+ o Confirming the validity of simple mappings (e.g., ifIndex to
+ ifName) requires either checking on a regular basis that the
+ Exporter's network management system did not reload or imposing
+ ifIndex persistence across an Exporter's reload.
+
+ o Synchronization problems occur because counters carried in
+ Data Records and counters carried in SNMP messages are retrieved
+ from the Exporter at different points in time and thus cannot be
+ correlated. In the best case, assuming very tight integration of
+ an IPFIX Collector with an SNMP polling engine, SNMP data is
+ retrieved shortly after Data Records have been received, which
+ implies a delay of the sum of the active or idle timeouts (if not
+ null) plus the time to export the Data Record to the Collector.
+ If, however, the SNMP data is retrieved by a generic Network
+ Management Station (NMS) polling interface statistics, then the
+ time lag between IPFIX counters and SNMP counters can be
+ significantly higher. See [RFC5102] for details regarding active
+ and idle timeouts.
+
+ This document does not specify how to carry SNMP notifications in
+ IPFIX, even if the specifications in this document could potentially
+ allow this.
+
+
+
+
+
+Aitken, et al. Standards Track [Page 5]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ Since IPFIX is a push mechanism, initiated from the Exporter with no
+ acknowledgment method, this specification does not provide the
+ ability to execute configuration changes.
+
+ The Distributed Management Expression MIB [RFC2982], which is a
+ mechanism to create new MIB variables based on the content of
+ existing ones, could also be advantageous in the context of this
+ specification. Indeed, newly created MIB objects (for example, the
+ link utilization MIB variable), created with the Distributed
+ Management Expression MIB [RFC2982], could nicely complement
+ Data Records.
+
+ Another advantage of exporting MIB objects via IPFIX is that IPFIX
+ would benefit from an extended series of types to be exported. The
+ simple and application-wide data types specified in SMIv2 [RFC2578],
+ along with new textual conventions, can be exported within IPFIX and
+ then decoded in the Collector. However, since a textual convention
+ can contain almost any name, this document does not extend the
+ existing "IPFIX Information Elements" subregistry [IANA-IPFIX] that
+ contains informationElementDataType.
+
+ The overall architectural model is depicted in Figure 1. The IPFIX
+ Exporter accesses the device's instrumentation, which follows the
+ specifications contained in MIB modules. Other management
+ interfaces, such as the Network Configuration Protocol (NETCONF) or
+ the device's Command Line Interface (CLI), may provide access to the
+ same instrumentation.
+
+ +------+ +-------+ +.........+ +.....+
+ | SNMP | | IPFIX | : NETCONF : : CLI :
+ +------+ +-------+ +.........+ +.....+
+ | | | |
+ +--------------------------------------------+
+ | Instrumentation (specified in MIB modules) |
+ +--------------------------------------------+
+
+ Figure 1: Architectural Model
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 6]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+3. Terminology
+
+ IPFIX-specific terminology (Information Element, Template,
+ Template Record, Options Template Record, Template Set, Collector,
+ Exporter, Data Record, Transport Session, Exporting Process,
+ Collecting Process, etc.) used in this document is defined in
+ Section 2 of [RFC7011]. As in [RFC7011], these IPFIX-specific terms
+ have the first letter of a word capitalized.
+
+ This document prefers the more generic term "Data Record" (as opposed
+ to "Flow Record") in relation to the export of MIB objects.
+
+ Object Identifier (MIB OID)
+
+ An Object Identifier value is an ordered list of non-negative
+ numbers. For SMIv2, each number in the list is referred to as a
+ sub-identifier. There are at most 128 sub-identifiers in a value,
+ and each sub-identifier has a maximum value of 2^32 - 1
+ (4294967295 decimal). See [RFC2578], Section 3.5.
+
+ MIB Object Identifier Information Element
+
+ An IPFIX Information Element ("mibObjectIdentifier") that denotes
+ that a MIB Object Identifier (MIB OID) is exported in the
+ (Options) Data Record. See Section 11.2.2.1.
+
+ SMIv2 Terminology
+
+ The key words "MIB module", "MIB object", "INDEX", "AUGMENTS",
+ "textual convention", "columnar object", "conceptual row", and
+ "conceptual table" in this document are to be interpreted as
+ described in SMIv2 [RFC2578].
+
+ SMIv2 SYNTAX
+
+ The SYNTAX key words "INTEGER", "Integer32", "OCTET STRING",
+ "OBJECT IDENTIFIER", "BITS", "IpAddress", "Counter32", "Gauge32",
+ "TimeTicks", "Opaque", "Counter64", "Unsigned32", "SEQUENCE", and
+ "SEQUENCE OF" in this document are to be interpreted as described
+ in SMIv2 [RFC2578].
+
+ SNMP Context Terminology
+
+ The key words "snmpEngineID", "contextEngineID", and "contextName"
+ in this document are to be interpreted as described in [RFC3411].
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 7]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ mibObjectValue Information Elements
+
+ "mibObjectValue Information Elements" refers to any and all of the
+ mibObjectValue Information Elements generically. Any restriction
+ or requirement in this document that refers to "mibObjectValue"
+ applies to the following Information Elements as defined in
+ Section 11.2.1: mibObjectValueInteger, mibObjectValueOctetString,
+ mibObjectValueOID, mibObjectValueBits, mibObjectValueIPAddress,
+ mibObjectValueCounter, mibObjectValueGauge,
+ mibObjectValueTimeTicks, mibObjectValueUnsigned,
+ mibObjectValueTable, and mibObjectValueRow.
+
+ Abstract Data Type
+
+ Abstract Data Types for IPFIX are defined in Section 3.1 of
+ [RFC7012]. This specification uses the Abstract Data Types
+ "unsigned8", "unsigned32", "unsigned64", "signed32", "octetArray",
+ "string", "ipv4Address", and "subTemplateList".
+
+ IE
+
+ Used as shorthand for "Information Element" [RFC7011] in the
+ figures.
+
+ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
+ "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
+ "OPTIONAL" in this document are to be interpreted as described in
+ [RFC2119].
+
+4. High-Level Solution Overview
+
+ This document specifies a method for creating IPFIX Options Templates
+ that are used to export the extra data required to describe MIB
+ variables (see Section 5.1).
+
+ This allows IPFIX Templates to contain any combination of fields
+ defined by traditional IPFIX Information Element(s) and/or MIB Object
+ Identifier(s). The MIB Object Identifiers can reference either
+ non-columnar or columnar MIB object(s). Enterprise-specific MIB
+ Object Identifiers are also supported.
+
+ This document also defines two standard IPFIX Options Templates (see
+ Section 5.3) that are used as part of the mechanism to export MIB
+ object metadata:
+
+ o MIB Field Options Template (Section 5.3.1)
+
+ o MIB Type Options Template (Section 5.3.2)
+
+
+
+Aitken, et al. Standards Track [Page 8]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ This document defines three classes of new IPFIX Information
+ Elements. These are used to export values from the MIB, export
+ required Object Identifier information, and optionally export type
+ data from a MIB module:
+
+ o MIB Object Value Information Elements (Section 11.2.1)
+
+ o MIB Field Options Information Elements (Section 11.2.2)
+
+ o MIB Type Information Elements (Section 11.2.3)
+
+ Additionally, this document defines two new IPFIX semantics that are
+ required for the new Information Elements:
+
+ o snmpCounter (Section 11.1.1)
+
+ o snmpGauge (Section 11.1.2)
+
+ Two common types defined in SMIv2 are conceptual rows and conceptual
+ tables. It is desirable that exporting a complete or partial
+ conceptual row be simple and efficient. This is accomplished by
+ using IPFIX Structured Data [RFC6313] to reduce repetition of Object
+ Identifier and indexing data.
+
+ To allow the use of individual columnar objects that make up a
+ conceptual row, a method is also specified to explain that a MIB
+ object is indexed by other fields in the same Data Flow. For an
+ individually indexed mibObjectValue, the index fields are sent in the
+ same way as any of the other fields in the same Data Record and may
+ be mibObjectValue Information Element(s) or other existing
+ Information Element(s).
+
+ Also, in some cases Exporters may not want (or be able) to export the
+ full information on how the MIB objects being exported are indexed.
+ This may be because the MIB object is being used purely as type
+ information or the Exporting Process may not have knowledge of the
+ indexing required. Therefore, providing index information for
+ columnar objects is optional.
+
+
+
+
+
+
+
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 9]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+5. MIB Object Value Information Elements and the MIB Field Options
+ Template
+
+ This document defines new mibObjectValue Information Elements (in
+ Section 11.2.1). These are used to export MIB objects as part of
+ standard IPFIX Templates. The mibObjectValue Information Elements
+ contain the actual data values.
+
+ The Metering Process or Exporting Process may extract the data values
+ for mibObjectValue Information Elements from a Process that resides
+ on the same device or may capture or create the data required to
+ match the definition of the MIB object. In particular, exporting a
+ value of a MIB object defined in a certain MIB module does not imply
+ that the SNMP process on the device supports that MIB module.
+
+ The main issue that arises from exporting values of MIB objects in
+ IPFIX is that MIB Object Identifiers do not fit into the standard
+ IPFIX Template format [RFC7011], as this only provides a 16-bit
+ Information Element identifier.
+
+ The values of a MIB object could be exported using a MIB-specific
+ Information Element, without providing any Object Identifiers.
+ However, without exporting the actual MIB OID, the full type of the
+ data would be unknown, and every field containing MIB object data
+ would appear identical. Without knowing which OID the contents of a
+ field map to, the data would be incomprehensible to a Collector.
+
+ For the values in the mibObjectValue Information Elements to be
+ understandable, more meta-information about the mibObjectValue
+ Information Elements must be sent as part of the IPFIX export. The
+ required minimum information to understand each field that is being
+ exported is provided in Section 5.3.1.
+
+ One approach to this problem would be to extend the IPFIX standard to
+ allow extended Field Specifiers so that metadata about fields can be
+ included in Data Templates. This would, however, require a new
+ version of the IPFIX standard that may not be backward compatible.
+ However, future versions of IPFIX may export the required MIB
+ metadata as part of newly defined IPFIX Set versions.
+
+ This document defines a MIB Field Options Template to export the
+ extra meta-information required for mibObjectValue Information
+ Elements. This is a standard IPFIX Options Template Set that
+ includes a minimum set of required fields (see Section 5.3.1) and may
+ include extra fields to provide more meta-information about one of
+ the mibObjectValue Information Elements.
+
+
+
+
+
+Aitken, et al. Standards Track [Page 10]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ The MIB Field Options export tells the Collecting Process the OID for
+ the MIB object type definition for the following (Template, field).
+
+5.1. MIB Field Options Architecture
+
+ Four IPFIX Sets are used together to export a Flow that contains
+ mibObjectValue Information Elements. These are:
+
+ 1. A Template Set that includes the mibObjectValue Information
+ Element.
+
+ The Template Set informs the Collector that a MIB object value
+ of length N will be exported. This Set may also be an Options
+ Template Set.
+
+ 2. A MIB Field Options Template Set.
+
+ The MIB Field Options Template describes which metadata will
+ be sent for each mibObjectValue Information Element being
+ exported.
+
+ 3. A MIB Field Options Data Set.
+
+ The MIB Field Options Data Set includes the metadata for each
+ MIB object (i.e., the mibObjectIdentifier or
+ mibSubIdentifier). The metadata about the mibObjectValue
+ Information Elements only needs to be resent as per normal
+ Template refreshes or resends.
+
+ 4. A Data Set.
+
+ The Data Set contains only the actual data extracted from the
+ MIB or described by the MIB module.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 11]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ Figure 2 shows the IPFIX Message structure for a MIB field in a
+ Template Set.
+
+ +-------------------------------------------------------+
+ | IPFIX Message Header |
+ +-------------------------------------------------------+
+ | Template Set (A) |
+ +-------------------------------------------------------+
+ | Options Template Set (B) (MIB Field Options Template) |
+ +-------------------------------------------------------+
+ | Data Set (B) (MIB Field Options Data) |
+ +-------------------------------------------------------+
+ | Data Set (A) |
+ +-------------------------------------------------------+
+
+ Figure 2: IPFIX Message Structure for a MIB Field in a Template Set
+
+ The MIB Field Options Template defines MIB Field Options
+ Data Records. The MIB Field Options Data Records annotate the Data
+ Template with mibObjectValue metadata. Together, the Data Template
+ and MIB Field Options Data Records define the Data Records that will
+ be exported.
+
+ The Data Records (A) have a dependency on the two Templates and the
+ MIB Field Options Data Records.
+
+ More Data Sets that use the same mibObjectValue Information Element
+ can then be sent in subsequent packets.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 12]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ Figure 3 shows the relationships between the Sets discussed above.
+
+ +------------------------------+
+ |MIB Field Options Template (B)|
+ +------------------------------+
+ |(templateId, elementIndex) |
+ +------------------------------+
+ | mibOID |
+ +------------------------------+
+ |
+ | Defines
+ V
+ +------------------------+ +--------------------------+
+ | Data Template (A) | |MIB Field Options Data (B)|
+ +------------------------+ +--------------------------+
+ |Field 0 - regular IE | | |
+ +------------------------+ +--------------------------+
+ |Field 1-mibObjectValue | <----------- | (X,1) = OID |
+ +------------------------+ Annotates +--------------------------+
+ |Field 2-mibObjectValue | <----------- | (X,2) = OID |
+ +------------------------+ +--------------------------+
+ | |
+ |------------------------------------/
+ |
+ | Defines
+ |
+ V
+ +------------------------+
+ | Data Records (A) |
+ |------------------------|
+ | Field 0 data |
+ +------------------------+
+ | Field 1 data |
+ +------------------------+
+ | Field 2 data |
+ +------------------------+
+
+ Figure 3: Relationships between Sets
+
+5.2. IPFIX and MIB Data Model
+
+ [RFC2578], Section 7.1 specifies that the SYNTAX clause for a MIB
+ object defines the abstract data structure of an object and what it
+ must contain:
+
+ "The data structure must be one of the following: a base type, BITS,
+ or a textual convention. (SEQUENCE OF and SEQUENCE are also possible
+ for conceptual tables, see section 7.1.12)."
+
+
+
+Aitken, et al. Standards Track [Page 13]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ For each of the SYNTAX clause options, this document specifies
+ exactly which mibObjectValue Information Element to use.
+
+ If a MIB object to be exported is a textual convention, the
+ definition of the textual convention must be consulted and the SYNTAX
+ clause used to determine the correct base type. This may recurse if
+ the textual convention is defined in terms of another textual
+ convention, but this should end at a base type.
+
+ If the SYNTAX clause contains a textual convention or sub-typing
+ (e.g., integerSubType, octetStringSubType) [RFC2578], the
+ mibObjectSyntax Information Element SHOULD be used to export this
+ detail to the Collecting Process.
+
+ The options for the SYNTAX clause are then mapped as follows:
+
+ +-------------+-------------------+---------------------------------+
+ | Section in | SYNTAX | mibObjectValue Information |
+ | RFC 2578 | | Element |
+ +-------------+-------------------+---------------------------------+
+ | 7.1.1 | INTEGER/Integer32 | mibObjectValueInteger |
+ | 7.1.2 | OCTET STRING | mibObjectValueOctetString |
+ | 7.1.3 | OBJECT IDENTIFIER | mibObjectValueOID |
+ | 7.1.4 | BITS | mibObjectValueBits |
+ | 7.1.5 | IpAddress | mibObjectValueIPAddress |
+ | 7.1.6 | Counter32 | mibObjectValueCounter |
+ | 7.1.7 | Gauge32 | mibObjectValueGauge |
+ | 7.1.8 | TimeTicks | mibObjectValueTimeTicks |
+ | 7.1.9 | Opaque | mibObjectValueOctetString |
+ | 7.1.10 | Counter64 | mibObjectValueCounter |
+ | 7.1.11 | Unsigned32 | mibObjectValueUnsigned |
+ | 7.1.12 | SEQUENCE | mibObjectValueRow |
+ | 7.1.12 | SEQUENCE OF | mibObjectValueTable |
+ +-------------+-------------------+---------------------------------+
+
+ Table 1: SMIv2 SYNTAX to mibObjectValue Types
+
+ Values are encoded as per the standard IPFIX encoding of Abstract
+ Data Types. The only new encoding reference in this document is that
+ Object Identifiers (OIDs) will be encoded as per ASN.1/BER [X.690] in
+ an octetArray.
+
+ The mibObjectValue and mibObjectIdentifier Information Elements are
+ standard IPFIX fields. Therefore, the E bit of the mibObjectValue or
+ mibObjectIdentifier Information Elements is set to 0.
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 14]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ The MIB object being exported may be defined in an enterprise-
+ specific MIB module, but the Information Elements defined in this
+ standard are still exported with the E bit set to 0. The OID being
+ exported indicates that the MIB object was defined in an
+ enterprise-specific MIB module.
+
+5.3. MIB Field Options - Specifications and Required Fields
+
+ For each mibObjectValue Information Element that is defined in an
+ IPFIX Template, a MIB Field Options Data Record will be exported that
+ provides the required minimum information to define the MIB object
+ that is being exported (see Section 5.3.1).
+
+ The MIB Field Options Data Records are defined in a Template referred
+ to in this document as a MIB Field Options Template with the format
+ specified in Section 5.4.
+
+ The MIB Field Options Template and MIB Field Options Data Records
+ MUST be exported in the same IPFIX Message as any Template that is
+ using a mibObjectValue Information Element. Note that this places an
+ implicit size constraint on the export.
+
+ This whole set of Templates and MIB Field Options Data Records MUST
+ all be exported prior to the corresponding Data Records that depend
+ upon them. That is, the export order MUST be:
+
+ 1. Data Template for mibObjectValue Information Elements (Set ID 2)
+
+ 2. MIB Field Options Template (Set ID 3)
+
+ 3. MIB Field Options Data Records (Set ID >= 256)
+
+ 4. MIB Object Value Data Records (Set ID >= 256)
+
+ Note that the ID of an identical MIB Field Options Template that has
+ already been exported MAY be reused without exporting the Template
+ again.
+
+ IPFIX Set IDs are defined in Section 3.3.2 of [RFC7011]. A value of
+ 2 indicates a Template Set, a value of 3 indicates an Options
+ Template Set, and values 256 and above indicate Data Sets.
+
+
+
+
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 15]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+5.3.1. MIB Field Options Template
+
+ Three fields are REQUIRED to unambiguously export a standalone
+ mibObjectValue Information Element with a MIB Field Options Template:
+
+ o (scope) templateId [IANA-IPFIX]
+
+ o (scope) informationElementIndex [IANA-IPFIX]
+
+ o mibObjectIdentifier (Section 11.2.2.1) or mibSubIdentifier
+ (Section 11.2.2.2)
+
+ These are the minimum fields required in a MIB Field Options Template
+ (see Section 5.4.2).
+
+ The mibObjectIdentifier is used to provide the OID for all
+ mibObjectValue Information Elements exported, except when IPFIX
+ Structured Data [RFC6313] is being used to export a conceptual row
+ (see Section 5.8.2).
+
+ While the following are optional, they are nevertheless RECOMMENDED
+ in certain circumstances, as described in the referenced sections:
+
+ o mibCaptureTimeSemantics
+ (discussed in Section 5.4.5; Information Element defined in
+ Section 11.2.2.4)
+
+ o mibIndexIndicator
+ (discussed in Section 5.8.5; Information Element defined in
+ Section 11.2.2.3)
+
+ o mibContextEngineID
+ (discussed in Section 5.6; Information Element defined in
+ Section 11.2.2.5)
+
+ o mibContextName
+ (discussed in Section 5.6; Information Element defined in
+ Section 11.2.2.6)
+
+5.3.2. MIB Type Options Template
+
+ There are also fields that provide type information from a MIB object
+ definition that MAY be exported to a Collecting Process.
+
+ Type information is statically defined in a MIB module; it is not
+ expected to change. However, the additional information about the
+ MIB object may help a Collecting Process that does not have access to
+ the MIB module.
+
+
+
+Aitken, et al. Standards Track [Page 16]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ To export a MIB Type Options Template, the mibObjectIdentifier is
+ RECOMMENDED as a Scope Field so that it matches the MIB Field Options
+ Template. Any combination of the other MIB Type fields may be
+ included.
+
+ o (scope) mibObjectIdentifier (see Section 11.2.2.1)
+
+ o mibObjectName (see Section 11.2.3.1)
+
+ o mibObjectDescription (see Section 11.2.3.2)
+
+ o mibObjectSyntax (see Section 11.2.3.3)
+
+ o mibModuleName (see Section 11.2.3.4)
+
+5.4. MIB Field Options Template Formats
+
+5.4.1. Data Template Containing a mibObjectValue Field
+
+ The Template Record format of a Template that uses a mibObjectValue
+ Information Element is identical to the standard IPFIX format as
+ defined in [RFC7011], so a field using a mibObjectValue Information
+ Element is specified using standard IPFIX Field Specifiers per
+ [RFC7011].
+
+ The only extra requirement on a Template Record using one or more
+ mibObjectValue Information Elements is that it MUST export the
+ required metadata specified in Section 5.3.1 for EACH mibObjectValue
+ Information Element.
+
+ If multiple MIB Field Options Data Records that refer to a
+ mibObjectValue are received, the latest MUST be used. This matches
+ the expected behavior of IPFIX Templates.
+
+ There is a one-to-one mapping between each mibObjectValue Information
+ Element and a MIB Field Options Data Record.
+
+ A MIB Field Options Template and corresponding Data Record MUST be
+ exported to provide the minimum required metadata.
+
+
+
+
+
+
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 17]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ Figure 4 shows an IPFIX Template Set using a mibObjectValue
+ Information Element.
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Set ID = 2 | Length = 16 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Template ID | Field Count = 2 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |0| IE = Existing IPFIX Field | Field Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |0| IE = <mibObjectValue> | Field Length (MIB) |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 4: IPFIX Template Set Using mibObjectValue Information Element
+
+ Where:
+
+ <mibObjectValue>
+
+ One of the mibObjectValue IPFIX Information Elements that
+ denotes that MIB object data (i.e., the value of a MIB object)
+ will be exported in the (Options) Data Record.
+
+ This could be any one of the mibObjectValue Information
+ Elements defined in Section 11.2.1: mibObjectValueInteger,
+ mibObjectValueOctetString, mibObjectValueOID,
+ mibObjectValueBits, mibObjectValueIPAddress,
+ mibObjectValueCounter, mibObjectValueGauge,
+ mibObjectValueTimeTicks, mibObjectValueUnsigned,
+ mibObjectValueTable, and mibObjectValueRow.
+
+ When a mibObjectValue Information Element is used, the MIB
+ Object Identifier ("mibObjectIdentifier") MUST be exported via
+ a MIB Field Options Template and MIB Field Options Data Record.
+ See Section 5.3.1.
+
+ Field Length (MIB)
+
+ The length of the encoded MIB object data in the corresponding
+ Data Records, in octets. See [RFC7011] for a detailed
+ definition. Note that the Field Length can be expressed using
+ reduced-size encoding per [RFC7011]. Note that the Field
+ Length may be encoded using variable-length encoding per
+ [RFC7011].
+
+
+
+
+
+Aitken, et al. Standards Track [Page 18]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+5.4.2. MIB Field Options Template
+
+ The MIB Field Options Template is a standard Options Template that
+ defines the fields that will be exported to provide enough metadata
+ about a mibObjectValue Information Element so that the Collector can
+ tie the data values in the mibObjectValue Information Element back to
+ the definition of the MIB object.
+
+ All MIB Field Options Templates contain the fields specified in
+ Section 5.3.1.
+
+ Figure 5 shows the required fields to export a mibObjectIdentifier
+ for the MIB Field Options Template format.
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Set ID = 3 | Length = 22 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Template ID | Field Count = 3 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Scope Field Count = 2 |0| IE = templateId |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 2 |0| IE = informationElementIndex|
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 2 |0| IE = mibObjectIdentifier |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 65535 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 5: MIB Field Options Template Format - Required Fields
+
+ Where:
+
+ templateId
+
+ The first Scope Field is an IPFIX Information Element that
+ denotes that a Template Identifier will be exported as part of
+ the MIB Field Options Data Record. This Template Identifier,
+ paired with an index into that Template (the
+ "informationElementIndex" field), uniquely references one
+ mibObjectValue Information Element being exported.
+
+
+
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 19]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ informationElementIndex
+
+ The second Scope Field is an IPFIX Information Element that
+ denotes a zero-based index into the fields defined by a
+ Template. When paired with a "templateId", this uniquely
+ references one mibObjectValue Information Element being
+ exported.
+
+ mibObjectIdentifier
+
+ An IPFIX Information Element that denotes the MIB Object
+ Identifier for the mibObjectValue Information Element exported
+ in the (Options) Template Record.
+
+ When a MIB Object Value Information Element is used, the MIB
+ Object Identifier MUST be specified in the MIB Field Options
+ Template Record or specified by other means.
+
+ The Object Identifier is encoded in the IPFIX Data Record in
+ ASN.1/BER [X.690] format.
+
+ Variable-length encoding SHOULD be used with the
+ mibObjectIdentifier so that multiple MIB OIDs of different
+ lengths can be exported efficiently. This will also allow
+ reuse of the MIB Field Options Template.
+
+ Variable-length encoding is indicated by the Field Length value
+ of 65535, per Sections 3.2 and 7 of [RFC7011]. The RECOMMENDED
+ use of variable-length encoding for mibObjectIdentifier fields
+ is indicated in subsequent figures by placing 65535 in the
+ relevant length fields.
+
+5.4.3. MIB Field Options Data Records
+
+ The MIB Field Options Data Records conform to the Template
+ Specification in the MIB Field Options Template. There may be
+ multiple MIB Field Options Data Records exported.
+
+ The Collecting Process MUST store all received MIB Field Options Data
+ information for the duration of each Transport Session, because the
+ Collecting Process will need to refer to the extra meta-information
+ to fully decode each mibObjectValue Information Element.
+
+
+
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 20]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ Figure 6 shows the format of the exported MIB Field Options
+ Data Record, detailing the metadata that will be exported to match
+ the Template in Figure 5.
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Set ID | Length = N |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | templateId | informationElementIndex |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | VLEN | mibObjectIdentifier ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ... mibObjectIdentifier (continued) ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | templateId | informationElementIndex |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | VLEN | mibObjectIdentifier ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ... mibObjectIdentifier (continued) ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 6: Format of MIB Field Options Data Record
+
+ VLEN contains the variable length of the mibObjectIdentifier per
+ Section 7 of [RFC7011].
+
+5.4.4. Options Template Containing a mibObjectValue Field
+
+ The Options Template Record format of a Template that uses a
+ mibObjectValue Information Element is identical to the standard
+ format as defined in [RFC7011]. The mibObjectValue Information
+ Element is specified using standard Field Specifiers per [RFC7011].
+
+ A mibObjectValue Information Element can be either a Scope Field or a
+ non-Scope Field in an Options Template Record.
+
+ The only extra requirement on an Options Template Record using one or
+ more mibObjectValue Information Elements is that it MUST export the
+ required metadata specified in Section 5.3.1 for EACH mibObjectValue
+ Information Element.
+
+ An IPFIX Options Template Record MUST export a MIB Field Options
+ Template and Data Record to provide the minimum required metadata for
+ each mibObjectValue Information Element.
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 21]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ Figure 7 shows an IPFIX Options Template Set using an existing IPFIX
+ field as a Scope Field and with a mibObjectValueInteger Information
+ Element as a non-Scope Field, while Figure 8 shows an IPFIX Options
+ Template Set using a mibObjectValueInteger Information Element as a
+ Scope Field with an existing IPFIX field as a non-Scope Field.
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Set ID = 3 | Length = 18 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Template ID | Field Count = 2 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Scope Field Count = 1 |0| IE = Existing IPFIX Field |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length |0| IE = mibObjectValueInteger |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 7: IPFIX Options Template Set Using a Non-Scope
+ mibObjectValueInteger Field
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Set ID = 3 | Length = 18 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Template ID | Field Count = 2 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Scope Field Count = 1 |0| IE = mibObjectValueInteger |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length |0| IE = Existing IPFIX Field |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 8: IPFIX Options Template Set Using a Scope
+ mibObjectValueInteger Field
+
+
+
+
+
+
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 22]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+5.4.5. MIB Field Options Template with Semantics Fields
+
+ A MIB Field Options Template MAY specify that extra Information
+ Elements will be exported to record how the mibObjectValue was
+ collected.
+
+ Alternatively, one of the existing IPFIX observationTime* elements
+ [IANA-IPFIX] may be exported to specify exactly when the value was
+ collected.
+
+ Figure 9 shows the MIB Field Options Template for a non-columnar
+ field with Semantic Data.
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Set ID = 3 | Length = 26 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Template ID | Field Count = 4 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Scope Field Count = 2 |0| IE = templateId |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 2 |0| IE = informationElementIndex|
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 2 |0| IE = mibObjectIdentifier |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 65535 |0| IE = mibCaptureTimeSemantics|
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 1 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 9: MIB Field Options Template for a Non-columnar Field
+ with Semantic Data
+
+ Where:
+
+ mibObjectIdentifier
+
+ Note the use of variable-length encoding for this field.
+
+ mibCaptureTimeSemantics
+
+ The MIB Capture Time Semantics IPFIX Information Element, as
+ defined in Section 11.2.2.4.
+
+ It is RECOMMENDED to include this field when exporting a
+ mibObjectValue Information Element that specifies counters or
+ statistics, particularly for situations with long-lived Flows.
+
+
+
+Aitken, et al. Standards Track [Page 23]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+5.4.6. MIB Field Options Template with Extra MIB Object Details
+
+ The OID exported within the mibObjectIdentifier IPFIX Information
+ Element provides an OID reference to a MIB object type definition
+ that will fully describe the MIB object data being exported.
+
+ However, an Exporting Process MAY decide to include some extra fields
+ to more fully describe the MIB object that is being exported with a
+ mibObjectValue Information Element.
+
+ This can be helpful if the Collecting Process may not have access to
+ the MIB module.
+
+ The Exporting Process can either include the fields with extra object
+ details as part of the MIB Field Options Template or export a
+ separate Options Template and a Data Record that maps MIB OIDs in
+ mibObjectIdentifier fields to the object details.
+
+ If only a few fields are being exported, then including extra type
+ data in the MIB Field Options export will be more efficient.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 24]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ The MIB Field Options Template for a non-columnar field with extra
+ MIB object details is shown in Figure 10.
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Set ID = 3 | Length = 38 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Template ID | Field Count = 7 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Scope Field Count = 2 |0| IE = templateId |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 2 |0| IE = informationElementIndex|
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 2 |0| IE = mibObjectIdentifier |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 65535 |0| IE = mibObjectSyntax |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 65535 |0| IE = mibObjectName |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 65535 |0| IE = mibObjectDescription |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 65535 |0| IE = mibModuleName |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 65535 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 10: MIB Field Options Template for a Non-columnar Field
+ with Extra MIB Object Details
+
+ Where:
+
+ mibObjectSyntax
+
+ The MIB object syntax string as defined in Section 11.2.3.3.
+
+ Note that a separate mibObjectSyntax Information Element is
+ required (rather than extend the existing "IPFIX Information
+ Elements" subregistry [IANA-IPFIX] that contains
+ informationElementDataType) because the SYNTAX clause could
+ contain almost any name.
+
+ mibObjectName
+
+ The textual name of a mibObjectIdentifier object.
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 25]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ mibObjectDescription
+
+ The textual description for a mibObjectIdentifier.
+
+ mibModuleName
+
+ The textual name of the MIB module that defines a MIB object.
+
+ Note the use of variable-length encoding for the
+ mibObjectIdentifier, mibObjectSyntax, mibObjectName,
+ mibObjectDescription, and mibModuleName, since these are all
+ string fields.
+
+ The MIB details can be exported in Data Records specified using a
+ regular IPFIX Options Template Record [RFC7011], as shown in
+ Figure 11. This may be more efficient, as the bulk of this data is
+ text based and SHOULD be exported only once to the Collecting Process
+ if there are many MIB objects being exported. This prevents this
+ large textual data from being included for every use of a
+ mibObjectValue Information Element.
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Set ID = 3 | Length = 30 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Template ID | Field Count = 5 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Scope Field Count = 1 |0| IE = mibObjectIdentifier |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 65535 |0| IE = mibObjectSyntax |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 65535 |0| IE = mibObjectName |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 65535 |0| IE = mibObjectDescription |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 65535 |0| IE = mibModuleName |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 65535 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 11: Alternative mibObjectIdentifier Options Template Set
+ with Object Details
+
+
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 26]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+5.5. Use of Field Order in the MIB Field Options Template
+
+ The MIB Field Options Template export makes use of the
+ informationElementIndex [IANA-IPFIX] to specify which field in the
+ Template the metadata relates to; this avoids any ordering
+ constraints on the Data Template. The mibObjectValue Information
+ Elements in an IPFIX export can be in any order in the export packet.
+ However, fields used as an INDEX MUST be in the same order as the
+ order specified in the INDEX clause of the conceptual row MIB object.
+
+ The informationElementIndex specifies which field in the Template
+ extra information is being provided for.
+
+ This is analogous to standard IPFIX Template Sets, which also specify
+ the order of the fields and provide their type and size.
+
+ If the Template changes such that the order is different, then the
+ MIB Field Options Data MUST be resent to reflect the new ordering. A
+ new Template ID MUST be used to reflect that the ordering has
+ changed. Older MIB Field Options Data may refer to the incorrect
+ field.
+
+ A templateId [IANA-IPFIX] is only locally unique within a combination
+ of an Observation Domain and Transport Session. As such, each MIB
+ Field Options Data Record can only refer to templateIds within the
+ same Observation Domain and session.
+
+5.6. Identifying the SNMP Context
+
+ Each MIB OID is looked up in a specific context, usually the default
+ context. If exporting a MIB OID value that isn't in the default
+ context, then the context MUST be identified by including the
+ mibContextEngineID (see Section 11.2.2.5) and mibContextName (see
+ Section 11.2.2.6) fields in the MIB Field Options Template and
+ associated MIB Field Options Data Records, or be included in the same
+ Template as the mibObjectValue field.
+
+ This context data MUST be included for each field that is not in the
+ default context.
+
+ The context information MAY be exported as part of the Template that
+ includes the mibObjectValue Information Element, or the context
+ information MAY be exported in the MIB Field Options Data Record that
+ refers to the field. Context fields exported in the same Template
+ MUST take precedence over those that refer to the Template. Context
+ fields MUST apply to all mibObjectValue Information Elements in the
+ same Template, and there MUST NOT be duplicates of mibContextName or
+ mibContextEngineID in a Template.
+
+
+
+Aitken, et al. Standards Track [Page 27]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ So, a MIB Field Options Template MAY specify no context information,
+ just the context engine ID or both the context engine and context
+ name. This allows the Exporter to export the bulk of data in the
+ default context and only tag those items that are required.
+
+ Since the MIB Field Options Template applies for all the Data Records
+ of a Template, using context fields in the MIB Field Options Data
+ Template requires that each mibContextEngineID / mibContextName pair
+ have its own Template.
+
+5.7. Template Management
+
+ Templates are managed as per Section 8 of [RFC7011], with the
+ additional constraint that the MIB Field Options Template and MIB
+ Field Options Data Records MUST be exported in the same IPFIX Message
+ as any (Options) Template Record that uses a mibObjectValue
+ Information Element.
+
+ When exporting over a Stream Control Transmission Protocol (SCTP)
+ transport [RFC4960], the MIB Field Options Data Records MUST be
+ exported reliably and in the same SCTP stream as their associated
+ Templates per [RFC6526].
+
+ If a Template using a mibObjectValue Information Element is resent
+ for any reason, the Data Records it depends on MUST be sent as well.
+
+ If a Template is replaced with a new (Options) Template, then a new
+ MIB Field Options Data Record MUST be sent with the replacement
+ referencing the new Template ID.
+
+ An Exporting Process SHOULD reuse MIB Field Options Template IDs when
+ the Templates are identical. Each (Options) Template Record MUST
+ still be accompanied by a copy of the MIB Field Options Template.
+
+5.7.1. Large Messages
+
+ The requirement to export the MIB Field Options Template and MIB
+ Field Options Data Records in the same IPFIX Message as any (Options)
+ Template Record that uses a mibObjectValue Information Element may
+ result in very large IPFIX Messages.
+
+ In environments with restricted Message sizes, and only when a
+ reliable SCTP transport is being used, the MIB Field Options
+ Template, MIB Field Options Data, Data Template, and Data Records MAY
+ be exported in separate Messages in the same SCTP stream, provided
+ that their order is maintained.
+
+
+
+
+
+Aitken, et al. Standards Track [Page 28]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+5.7.2. Template Withdrawal and Reuse
+
+ Data Records containing mibObjectValue Information Elements MUST NOT
+ be exported if their corresponding Data Template or MIB Field Options
+ Template has been withdrawn, since the MIB Field Options Template
+ MUST be exported in the same IPFIX Message as the Data Template that
+ it annotates, except as allowed by the caveat mentioned in
+ Section 5.7.1.
+
+ MIB Field Options Template IDs MUST NOT be reused while they are
+ required by any existing Data Templates.
+
+5.8. Exporting Conceptual Rows and Tables
+
+ There are three approaches for an IPFIX Exporting Process to export
+ the values of columnar objects:
+
+ 1. Ignoring the indexing of columnar objects
+
+ 2. Exporting conceptual rows / table objects using IPFIX Structured
+ Data [RFC6313]
+
+ 3. Exporting individual indexed columnar objects
+
+ Firstly, a subordinate columnar object may be used purely as a data
+ type. In this case, there is no index information or relation to a
+ conceptual row object provided by the Exporting Process.
+
+ Secondly, mibObjectValueRow or mibObjectValueTable can be used to
+ export partial or complete conceptual rows, using IPFIX Structured
+ Data [RFC6313].
+
+ Thirdly, in a mixed option/data IPFIX/MIB Template, the
+ mibObjectValue Information Element can have the values of the INDEX
+ clause of the conceptual row provided by other fields in the
+ Data Record. In this case, each mibObjectValue Information Element
+ must specify which other field(s) in the Template is providing the
+ index information.
+
+
+
+
+
+
+
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 29]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+5.8.1. Exporting Conceptual Rows - Indexing
+
+ This document defines two forms of indexing that can be used for
+ conceptual row MIB objects:
+
+ Indexing based on IPFIX Structured Data [RFC6313] is used solely by
+ the mibObjectValueRow Information Element. Each conceptual row of
+ the MIB object corresponds to a single Data Record exported. The
+ index fields defined in the INDEX clause of the MIB object MUST all
+ be present in the same order as the Scope Fields. This allows a
+ simple table export of a conceptual row MIB object without any extra
+ fields required to indicate which fields make up the conceptual row
+ INDEX.
+
+ Field-based indexing is used by giving each mibObjectValue
+ Information Element a mibIndexIndicator to flag the required index
+ fields. This allows complex indexing or mixing of existing IPFIX
+ Information Elements with MIB fields, with minimum overhead. It also
+ allows multiple columnar MIB objects from different conceptual rows
+ to be exported with complete indexing in one IPFIX Template.
+
+5.8.2. Exporting Conceptual Rows - mibObjectValueRow
+
+ The simplest approach to exporting a complete or partial conceptual
+ row object is done with the mibObjectValueRow Information Element.
+
+ This is an IPFIX Structured Data subTemplateList Information Element
+ as detailed in [RFC6313]. The Template specified MUST be an Options
+ Template. It also MUST have the fields specified in the INDEX clause
+ of the conceptual row object as the Scope Fields in the MIB Field
+ Options Template and Data Set.
+
+ An overview of this architecture is given in Figure 12. This shows
+ that the full MIB object type definition OID is exported for the
+ mibObjectValueRow conceptual row field but that the individual
+ columnar objects only require the sub-identifier to be exported. To
+ make the diagram clearer, the Templates for the MIB Field Options
+ Templates are not shown.
+
+
+
+
+
+
+
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 30]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ +---------------------------+ +------------------------+
+ | Data Template | | MIB Field Options Data |
+ | | | |
+ | mibObjectValueRow |<---| OID |
+ +---------------------------+ +------------------------+
+ |
+ | +-----------------------+ +------------------------+
+ | | Options Template | | MIB Field Options Data |
+ | | | | |
+ | | Scope mibObjectValue* |<---| mibSubIdentifier |
+ | | mibObjectValue* |<---| mibSubIdentifier |
+ | +-----------------------+ +------------------------+
+ | |
+ V V
+ +---------------------------+
+ | Data Flows |
+ | |
+ | subTemplateList (1 entry) |
+ +---------------------------+
+
+ Figure 12: Architecture for Exporting Conceptual Rows
+ with mibObjectValueRow
+
+ The mibIndexIndicator is not required for each individual
+ mibObjectValue Information Element, as mibObjectValueRow provides a
+ structure that includes the index details.
+
+ When indexing based on IPFIX Structured Data [RFC6313] is used, all
+ Scope Fields MUST be the INDEX objects in the same order as defined
+ in the INDEX clause of the conceptual row being exported.
+
+ Each conceptual table MIB object has two related OIDs. There is an
+ OID that refers to the table with the syntax of SEQUENCE OF and an
+ OID that refers to each entry or conceptual row with the syntax of
+ SEQUENCE. The OID for the SEQUENCE of a conceptual row MUST be
+ exported.
+
+ For example, in the IF-MIB [RFC2863], the OID for ifEntry should be
+ exported rather than the OID for ifTable. The OID for the table (in
+ this case, ifTable) can be derived by removing one sub-identifier
+ from the ifEntry OID.
+
+ The full OID for the conceptual row MIB object type definition being
+ exported with the mibObjectValueRow Information Element MUST be
+ exported. However, the fields that are members of the conceptual row
+ need not have the full OID of their MIB object type definition
+ exported. Instead, the mibSubIdentifier Information Element can be
+ used to document which entry in the conceptual row the field is.
+
+
+
+Aitken, et al. Standards Track [Page 31]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ In this case, the exported Flow will contain a single complete or
+ partial row from a table inside a single field of the Data Record.
+
+ There may be MIB objects that are specified in the INDEX of the
+ conceptual row but not columnar objects of the same conceptual row;
+ for these, the Exporter MUST provide the full OID in a
+ mibObjectIdentifier field.
+
+ So, for a conceptual row object with the OID "1.2.3.4.5.6" the OID of
+ the type definitions for columnar objects "1.2.3.4.5.6.1"
+ "1.2.3.4.5.6.2" can be exported with just a mibSubIdentifier of "1"
+ and "2", respectively.
+
+ The mibObjectValue Information Elements exported using the
+ mibObjectValueRow export MUST all either be objects defined in the
+ INDEX clause, columnar objects of the same conceptual row object, or
+ columnar objects that augment the same conceptual row.
+
+ The IPFIX Structured Data [RFC6313] subTemplateList format requires
+ the Structured Data Type Semantics to be specified. Unless there is
+ a more appropriate option in the "IPFIX Structured Data Types
+ Semantics" subregistry [IANA-IPFIX], the "undefined" Structured Data
+ Type Semantics can be used.
+
+ Figure 13 shows an IPFIX Template for an IPFIX Structured Data
+ [RFC6313] export of a conceptual row, while Figure 14 shows an IPFIX
+ Options Template for a complete conceptual row with five columns and
+ two index fields. Figure 15 shows the MIB Field Options Template for
+ a conceptual row field. Figure 16 shows the MIB Field Options
+ Template for the columns inside the conceptual row. Figure 17 shows
+ the OID Data for the conceptual row that will be exported.
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Set ID = 2 | Length = 12 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Template ID = 300 | Field Count = 1 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |0| IE = mibObjectValueRow | Field Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 13: IPFIX Template for a Conceptual Row
+
+
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 32]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Set ID = 3 | Length = 30 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Template ID = 301 | Field Count = 5 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Scope Field Count = 2 |0| IE = mibObjectValue INDEX1 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length |0| IE = mibObjectValue INDEX2 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length |0| IE = mibObjectValue COLUMN3 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length |0| IE = mibObjectValue COLUMN4 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length |0| IE = mibObjectValue COLUMN5 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 14: IPFIX Options Template for a mibObjectValueRow
+ with Five Columns and Two Index Fields
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Set ID = 3 | Length = 22 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Template ID = 302 | Field Count = 3 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Scope Field Count = 2 |0| IE = templateId |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 2 |0| IE = informationElementIndex|
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 2 |0| IE = mibObjectIdentifier |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 65535 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 15: MIB Field Options Template for a Conceptual Row Object
+
+
+
+
+
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 33]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ Where:
+
+ templateId
+
+ The templateId for the MIB option that will be exported.
+
+ mibObjectIdentifier
+
+ The MIB OID for the conceptual row that is being exported.
+ Note the use of variable-length encoding for this field.
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Set ID = 3 | Length = 22 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Template ID = 303 | Field Count = 3 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Scope Field Count = 2 |0| IE = templateId |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 2 |0| IE = informationElementIndex|
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 2 |0| IE = mibSubIdentifier |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 2 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 16: MIB Field Options Template for Columnar Objects
+ of a Conceptual Table
+
+ Where:
+
+ templateId
+
+ The templateId used will be for the Template referred to in the
+ subTemplateList of the mibObjectValueRow that will be exported.
+
+ mibSubIdentifier
+
+ The sub-identifier that specifies the columnar object's ID
+ within the conceptual row.
+
+
+
+
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 34]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Set ID = 302 | Length = N |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Template ID = 300 | informationElementIndex |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | VLEN | mibObjectIdentifier ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ... mibObjectIdentifier (continued) ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Set ID = 303 | Length = N |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | templateId = 301 | informationElementIndex |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | mibSubIdentifier | templateId = 301 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | informationElementIndex | mibSubIdentifier |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | templateId = 301 | informationElementIndex |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | mibSubIdentifier | templateId = 301 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | informationElementIndex | mibSubIdentifier |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | templateId = 301 | informationElementIndex |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | mibSubIdentifier |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 17: mibOption Data Record for the Conceptual Row
+
+ Where:
+
+ mibObjectIdentifier
+
+ Will contain the OID for the conceptual row as a whole.
+
+ mibSubIdentifier
+
+ The mibSubIdentifier fields will contain the extra
+ sub-identifier that, when added to the OID for the conceptual
+ row, gives the full OID for the object.
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 35]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+5.8.3. Exporting Conceptual Rows - AUGMENTS
+
+ SMIv2 defines conceptual rows as having either an INDEX clause or an
+ AUGMENTS clause. Conceptual row definitions with an AUGMENTS clause
+ extend an existing base conceptual row with an INDEX clause. It is
+ not possible in SMIv2 to augment a conceptual row that itself has an
+ AUGMENTS clause. The base table and the augmentation have an
+ identical INDEX.
+
+ Since augmentations allow adding extra columns to existing tables, it
+ is beneficial to be able to support them easily in IPFIX exports of
+ conceptual rows.
+
+ The mibObjectValueRow OID MAY refer to either the base table with the
+ INDEX clause or a conceptual row with an AUGMENTS clause. The
+ mibSubIdentifier in any MIB Field Options Data Record MUST always
+ refer to the OID exported for the mibObjectValueRow Information
+ Element.
+
+ If the mibObjectValueRow OID refers to a base table, then any extra
+ columns from conceptual rows with an AUGMENTS clause MUST have their
+ full OID exported.
+
+ If the mibObjectValueRow OID refers to a conceptual row that augments
+ another conceptual row using the AUGMENTS clause, then any MIB fields
+ from the original table's INDEX or columnar objects MUST NOT use the
+ mibSubIdentifier and MUST instead export the full OID in a
+ mibObjectIdentifier.
+
+ If the mibObjectValueRow refers to an augmenting conceptual row, the
+ Scope Fields of the Template used in the subTemplateList MUST have
+ the index fields from the base table, in the same order as its scope.
+ This is identical to the Scope Field requirements for conceptual rows
+ with an INDEX clause.
+
+ This flexibility is provided so that the conceptual rows with the
+ most columns can be exported using the more efficient
+ mibSubIdentifier. For example, exporting a complete set of
+ augmentation columns would only require the full OIDs for the MIB
+ objects in the INDEX.
+
+ It is possible to export MIB object columns from multiple augmenting
+ conceptual rows. If this is done, then the base table SHOULD be used
+ as the main OID for the mibObjectValueRow.
+
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 36]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+5.8.4. Exporting Conceptual Tables - mibObjectValueTable
+
+ Multiple rows of a conceptual table can be exported in the
+ mibObjectValueTable Information Element (Section 11.2.1.10). This
+ allows a set of conceptual rows corresponding to a conceptual table
+ to be exported as a single field. Therefore, a complete set of rows
+ can be exported as a single field with other Information Elements in
+ a Template. In this fashion, several complete conceptual tables
+ could be exported in one packet.
+
+ As also specified for mibObjectValueRow (Section 5.8.2), the more
+ specific (i.e., full) OID of the SEQUENCE entity MUST be exported.
+
+ The format of mibObjectValueTable is identical to mibObjectValueRow,
+ except that the length of the subTemplateList may be zero or more
+ entries.
+
+ All the other, i.e., non-length, requirements for mibObjectValueRow
+ in Section 5.8.2 apply to mibObjectValueTable.
+
+ An overview of this architecture is given in Figure 18. This
+ architecture is similar to the architecture shown in Figure 12.
+
+ +---------------------------+ +------------------------+
+ | Data Template | | MIB Field Options Data |
+ | | | |
+ | mibObjectValueTable |<---| OID |
+ +---------------------------+ +------------------------+
+ |
+ | +-----------------------+ +------------------------+
+ | | Options Template | | MIB Field Options Data |
+ | | | | |
+ | | Scope mibObjectValue* |<---| mibSubIdentifier |
+ | | mibObjectValue* |<---| mibSubIdentifier |
+ | +-----------------------+ +------------------------+
+ | |
+ V V
+ +-----------------------------+
+ | Data Flows |
+ | |
+ | subTemplateList (n entries) |
+ | row 1 |
+ | ... |
+ | row n |
+ +-----------------------------+
+
+ Figure 18: Architecture for Exporting Conceptual Tables
+ with mibObjectValueTable
+
+
+
+Aitken, et al. Standards Track [Page 37]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+5.8.5. Exporting Columnar Objects: Using mibIndexIndicator
+
+ The other option for indexing a columnar object that is part of a
+ conceptual table is explicit indexing. In this case, the Options
+ Template Set scope may contain either non-index fields or columnar
+ MIB objects from multiple conceptual rows being exported. In this
+ case, each mibObjectValue Information Element requires the
+ mibIndexIndicator with the bits set for the fields that are used to
+ index that individual columnar object.
+
+ The index fields MUST be in the "correct" order as defined in the
+ conceptual row that each columnar object is a member of.
+
+ If a mibObjectValue Information Element that is being indexed using
+ mibIndexIndicator is being used as an Options Template Scope Field,
+ then all fields used to index that field MUST also be Scope Fields.
+
+ Figure 19 shows the MIB Field Options Template for an indexed MIB
+ columnar object.
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Set ID = 3 | Length = 26 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Template ID | Field Count = 4 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Scope Field Count = 2 |0| IE = templateId |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 2 |0| IE = informationElementIndex|
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 2 |0| IE = mibIndexIndicator |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 2 |0| IE = mibObjectIdentifier |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 65535 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 19: MIB Field Options Template for an Indexed
+ MIB Columnar Object
+
+
+
+
+
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 38]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ Where:
+
+ mibIndexIndicator
+
+ The MIB Index Indicator IPFIX Information Element that marks
+ which fields in the Data Record will act as INDEX values for
+ the exported MIB object.
+
+ The index data for a mibObjectValue will be other fields
+ contained in the same Data Record. The mibIndexIndicator marks
+ the fields whose value(s) should be added to the OID for the
+ MIB object type definition exported in mibObjectIdentifier to
+ get the OID for the instance of the MIB object.
+
+ Elements used to index MIB objects MUST be exported in the same
+ order as they are specified in the index field of the
+ conceptual table they belong to.
+
+ mibObjectIdentifier
+
+ Note the use of variable-length encoding for this field.
+
+6. Example Use Cases
+
+6.1. Non-columnar MIB Object: Established TCP Connections
+
+ The number of established TCP connections of a remote network device
+ could be monitored by configuring it to periodically export the
+ number of established TCP connections to a centralized Collector. In
+ this example, the Exporter would export an IPFIX Message every
+ 30 minutes that contained Data Records detailing the number of
+ established TCP connections.
+
+ The table of data that is to be exported looks like:
+
+ +-------------------------+-----------------------+
+ | TIMESTAMP | ESTABLISHED TCP CONN. |
+ +-------------------------+-----------------------+
+ | StartTime + 0 seconds | 10 |
+ | StartTime + 60 seconds | 14 |
+ | StartTime + 120 seconds | 19 |
+ | StartTime + 180 seconds | 16 |
+ | StartTime + 240 seconds | 23 |
+ | StartTime + 300 seconds | 29 |
+ +-------------------------+-----------------------+
+
+ Table 2: Established TCP Connections
+
+
+
+
+Aitken, et al. Standards Track [Page 39]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ The Template Record for such a Data Record will provide details for
+ the following two Information Elements:
+
+ 1. flowStartSeconds from [IANA-IPFIX], Information Element 150: The
+ absolute timestamp of the first packet of this Flow.
+
+ 2. tcpCurrEstab from [RFC4022], Object ID "1.3.6.1.2.1.6.9": The
+ number of TCP connections for which the current state is either
+ ESTABLISHED or CLOSE-WAIT.
+
+ Figure 20 shows the exported Template Set detailing the
+ Template Record for exporting the number of established TCP
+ connections.
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Set ID = 2 | Length = 16 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Template ID = 400 | Field Count = 2 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |0| IE = flowStartSeconds | Field Length = 4 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |0| IE = mibObjectValueGauge | Field Length = 4 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 20: Example of tcpCurrEstab Template Set
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 40]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ Figure 21 shows the exported MIB Field Options Template Set detailing
+ the metadata that will be exported about the mibObjectValueGauge
+ Information Element in Template 400 in Template Record.
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Set ID = 3 | Length = 22 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Template ID = 401 | Field Count = 3 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Scope Field Count = 2 |0| IE = templateId |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 2 |0| IE = informationElementIndex|
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 2 |0| IE = mibObjectIdentifier |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 65535 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 21: Example of tcpCurrEstab MIB Field Options Template Set
+
+ Figure 22 shows the exported MIB Field Options Data Set detailing the
+ metadata that will be exported about the mibObjectValueGauge
+ Information Element in Template 400 in Template Record.
+
+ The OID for the MIB object tcpCurrEstab from [RFC4022], Object ID
+ "1.3.6.1.2.1.6.9", will be encoded in ASN.1/BER [X.690] as
+ "06072B060102010609" in the Data Record, which takes 9 octets.
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Set ID = 401 | Length = 18 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Template ID = 400 | informationElementIndex = 1 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | VLEN = 9 | mibObjectIdentifier ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ... mibObjectIdentifier = "1.3.6.1.2.1.6.9" ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ... 06072B060102010609 ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 22: Example of tcpCurrEstab MIB Field Options Data Set
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 41]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ Figure 23 shows the start of the Data Set for exporting the number of
+ established TCP connections (see Section 6.1).
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Set ID = 400 | Length = 52 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | StartTime + 0 seconds |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | 10 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | StartTime + 60 seconds |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | 14 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | StartTime + 120 seconds |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | 19 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | StartTime + 180 seconds |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | 16 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | StartTime + 240 seconds |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | 23 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | StartTime + 300 seconds |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | 29 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 23: Example of tcpCurrEstab Data Set
+
+6.2. Enterprise-Specific MIB Object: Detailing CPU Load History
+
+ For the sake of demonstration, an enterprise-specific MIB object from
+ the CISCO-PROCESS-MIB [CISCO-PROCESS-MIB] is chosen. This example
+ would be valid with any enterprise-specific MIB module.
+
+ The CPU usage of a remote network device with one CPU could be
+ monitored by configuring it to periodically export CPU usage
+ information, i.e., the cpmCPUTotal1minRev from the proprietary
+ CISCO-PROCESS-MIB, Object ID "1.3.6.1.4.1.9.9.109.1.1.1.1.7", to a
+ centralized Collector.
+
+
+
+
+
+Aitken, et al. Standards Track [Page 42]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ Although the cpmCPUTotal1minRev MIB object is a columnar object in a
+ conceptual row, if there is only one CPU no extra information is
+ conveyed by providing the index field. So, in this case, it is
+ acceptable to not export the cpmCPUTotalIndex MIB object. If there
+ were multiple CPUs, it would be appropriate to include the
+ cpmCPUTotalIndex field and specify the relationship.
+
+ In this example, the Exporter would export an IPFIX Message every
+ 30 minutes that contained Data Records detailing the CPU 1-minute
+ busy average at 1-minute intervals.
+
+ The table of data that is to be exported looks like:
+
+ +-------------------------+---------------------+
+ | TIMESTAMP | CPU BUSY PERCENTAGE |
+ +-------------------------+---------------------+
+ | StartTime + 0 seconds | 10% |
+ | StartTime + 60 seconds | 14% |
+ | StartTime + 120 seconds | 19% |
+ | StartTime + 180 seconds | 16% |
+ | StartTime + 240 seconds | 23% |
+ | StartTime + 300 seconds | 29% |
+ +-------------------------+---------------------+
+
+ Table 3: CPU Usage Data
+
+ The Template Record for such a Data Record will provide details for
+ the following two Information Elements:
+
+ 1. flowStartSeconds from [IANA-IPFIX], Information Element 150: The
+ absolute timestamp of the first packet of this Flow.
+
+ 2. A mibObjectValueGauge for cpmCPUTotal1minRev, the overall CPU
+ busy percentage in the last 1-minute period.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 43]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ Figure 24 shows the exported Template Set detailing the
+ Template Record for exporting CPU Load (see Section 6.2).
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Set ID = 2 | Length = 16 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Template ID = 402 | Field Count = 2 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |0| IE = flowStartSeconds | Field Length = 4 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |0| IE = mibObjectValueGauge | Field Length = 1 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 24: Example of CPU Load Template Set
+
+ Figure 25 shows the exported Template Set detailing the MIB Field
+ Options Template for exporting CPU Load (see Section 6.2). Note:
+ This is identical to the MIB Field Options Template given in
+ Figure 21, so the same Template could have been reused.
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Set ID = 3 | Length = 22 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Template ID = 403 | Field Count = 3 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Scope Field Count = 2 |0| IE = templateId |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 2 |0| IE = informationElementIndex|
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 2 |0| IE = mibObjectIdentifier |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 65535 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 25: Example of CPU Load MIB Field Options Template Set
+
+ Figure 26 shows the exported MIB Field Options Data Set detailing the
+ metadata that will be exported about the mibObjectValueGauge
+ Information Element in Template 402 in Template Record (see
+ Section 6.2).
+
+ The OID for the cpmCPUTotal1minRev has been encoded using ASN.1/BER
+ to "060D2B0601040109096D0101010107" at 15 octets long.
+
+
+
+
+Aitken, et al. Standards Track [Page 44]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Set ID = 403 | Length = 24 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Template ID = 402 | informationElementIndex = 1 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | VLEN = 15 | mibObjectIdentifier ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | "1.3.6.1.4.1.9.9.109.1.1.1.1.7" ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | 060D2B0601040109096D0101010107 ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 26: Example of CPU Load MIB Field Options Data Set
+
+ Note that although cpmCPUTotal1minRev is 32 bits long, reduced-size
+ encoding [RFC7011] has been used to encode it within a single octet.
+ The encoding size was specified by setting the length for the
+ mibObjectValueGauge field to 1 octet in the main Data Template; see
+ Figure 24.
+
+ This example stresses that, even though the OID cpmCPUTotal1minRev is
+ enterprise-specific, the E bit for the mibObjectValueGauge and
+ mibObjectIdentifier is set to 0, because the mibObjectValueGauge and
+ mibObjectIdentifier Information Elements are not enterprise-specific.
+ That this data is from an Enterprise MIB is included in the OID that
+ includes an Enterprise ID.
+
+ The corresponding Data Set does not add any value for this example
+ and is therefore not displayed.
+
+6.3. Exporting a Conceptual Row: The OSPF Neighbor Row
+
+ Many conceptual tables are already defined in standard and
+ proprietary MIBs. These can be exported with a minimum of overhead
+ by using the mibObjectValueRow. This allows the Exporting Process to
+ unambiguously define the INDEX for the entire conceptual row as the
+ Scope Fields of an Options Template Set. The use of a MIB Field
+ Options Template with mibSubIdentifier being used means that each
+ individual columnar object does not need to have its OID exported to
+ the Collector.
+
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 45]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ The ospfNbrTable, defined in the OSPF MIB [RFC4750], consists of
+ ospfNbrEntry, which has the OID "1.3.6.1.2.1.14.10.1". Each
+ mibObjectValueRow Data Record will therefore correspond to an
+ ospfNbrEntry.
+
+ The following fields will be exported:
+
+ +------------------+----------------+-------------------------+-----+
+ | Object | ID | mibObjectValue | Len |
+ +------------------+----------------+-------------------------+-----+
+ | ospfNbrIpAddr | ospfNbrEntry 1 | mibObjectValueIPAddress | 4 |
+ | ospfNbrAddress- | ospfNbrEntry 2 | mibObjectValueInteger | 4 |
+ | -LessIndex | | | |
+ | ospfNbrRtrId | ospfNbrEntry 3 | mibObjectValueIPAddress | 4 |
+ | ospfNbrState | ospfNbrEntry 6 | mibObjectValueInteger | 1 |
+ +------------------+----------------+-------------------------+-----+
+
+ Table 4: OSPF Neighbor Entry Objects
+
+ The OIDs that will be used to export this table are shown in Table 5.
+
+ +------------------+-----------------------+---------------------+
+ | Entity | Full OID | Exported as |
+ +------------------+-----------------------+---------------------+
+ | ospfNbrEntry | 1.3.6.1.2.1.14.10.1 | 1.3.6.1.2.1.14.10.1 |
+ | ospfNbrIpAddr | 1.3.6.1.2.1.14.10.1.1 | 1 |
+ | ospfNbrAddress- | 1.3.6.1.2.1.14.10.1.2 | 2 |
+ | -LessIndex | | |
+ | ospfNbrRtrId | 1.3.6.1.2.1.14.10.1.3 | 3 |
+ | ospfNbrState | 1.3.6.1.2.1.14.10.1.6 | 6 |
+ +------------------+-----------------------+---------------------+
+
+ Table 5: OSPF OIDs
+
+ Figure 27 shows the Templates exported to support the
+ mibObjectValueRow. Figure 28 shows the example OID Data for the
+ conceptual row exported in mibObjectValueRow. Figure 29 shows the
+ example data export for a few neighbors in the table; Figure 29 also
+ shows a Data Record formatted as per IPFIX Structured Data [RFC6313]
+ and using the "undefined" (= 0xFF) semantic from the "IPFIX
+ Structured Data Types Semantics" subregistry [IANA-IPFIX]. Note that
+ the OID for ospfNbrEntry has been encoded using ASN.1/BER to
+ "06082B060102010E0A01" at 10 octets long.
+
+
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 46]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Set ID = 2 | Length = 12 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Template ID = 500 | Field Count = 1 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |0| IE = mibObjectValueRow | Field Length = 16 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Set ID = 3 | Length = 26 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Template ID = 501 | Field Count = 4 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Scope Field Count = 2 |0| IE = mibObjectValueIPAddress|
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 4 |0| IE = mibObjectValueInteger |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 4 |0| IE = mibObjectValueIPAddress|
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 4 |0| IE = mibObjectValueInteger |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 1 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Set ID = 3 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Length = 22 | Template ID = 502 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Count = 3 | Scope Field Count = 2 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |0| IE = templateId | Field Length = 2 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |0| IE = informationElementIndex| Field Length = 2 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |0| IE = mibObjectIdentifier | Field Length = 65535 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+
+
+
+
+
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 47]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Set ID = 3 | Length = 22 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Template ID = 503 | Field Count = 3 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Scope Field Count = 2 |0| IE = templateId |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 2 |0| IE = informationElementIndex|
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 2 |0| IE = mibSubIdentifier |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 2 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 27: Example of ospfNbrEntry Template and Options Template Sets
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Set ID = 502 | Length = 20 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Template ID = 500 | informationElementIndex = 0 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | VLEN = 10 | mibObjectIdentifier = "1.3.6.1.2.1.14.10.1" |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | 06082B060102010E0A01 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | | Padding = 0 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Set ID = 503 | Length = 28 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | templateId = 501 | informationElementIndex = 0 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | mibSubIdentifier = 1 | templateId = 501 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | informationElementIndex = 1 | mibSubIdentifier = 2 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | templateId = 501 | informationElementIndex = 2 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | mibSubIdentifier = 3 | templateId = 501 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | informationElementIndex = 3 | mibSubIdentifier = 6 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 28: Example of ospfNbrEntry OID Data Export
+
+
+
+
+Aitken, et al. Standards Track [Page 48]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Set ID = 500 | Length = 52 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |Semantic=0xFF | Template ID = 501 | ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ospfNbrIpAddr = 192.0.2.1 | ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ospfNbrAddressLessIndex = 0 | ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ospfNbrRtrId = 1.1.1.1 |ospfNbrState=8 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |Semantic=0xFF | Template ID = 501 | ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ospfNbrIpAddr = 192.0.2.2 | ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ospfNbrAddressLessIndex = 0 | ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ospfNbrRtrId = 2.2.2.2 |ospfNbrState=8 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |Semantic=0xFF | Template ID = 501 | ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ospfNbrIpAddr = 192.0.2.3 | ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ospfNbrAddressLessIndex = 0 | ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ospfNbrRtrId = 3.3.3.3 |ospfNbrState=1 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 29: Example of Data Export for ospfNbrEntry
+
+6.4. Exporting Augmented Conceptual Row: Mapping IF-MIB ID to Name
+
+ The ifTable, defined in the IF-MIB [RFC2863], is augmented by the
+ ifXTable (defined in the same MIB module).
+
+ The OID of the ifEntry is 1.3.6.1.2.1.2.2.1, which is encoded using
+ ASN.1/BER to "06082B06010201020201" at 10 octets long, while the OID
+ of the augmenting ifXEntry is 1.3.6.1.2.1.31.1.1.1, which is encoded
+ using ASN.1/BER to "060A2B060102011F01010101" at 12 octets long.
+
+ This example demonstrates how columnar objects from the base
+ conceptual row and the augmenting row can be exported in a single
+ mibObjectValueRow Information Element.
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 49]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ Table 6 shows the fields that will be exported.
+
+ +---------+------------------+-------+-------------------+
+ | ifIndex | ifType | ifMtu | ifName |
+ +---------+------------------+-------+-------------------+
+ | 1 | ethernetCsmacd:6 | 1500 | Ethernet 10 |
+ | 2 | ethernetCsmacd:6 | 1500 | Ethernet 20 |
+ | 3 | ethernetCsmacd:6 | 1500 | FastEthernet 30 |
+ +---------+------------------+-------+-------------------+
+
+ Table 6: IF-MIB Data
+
+ The OIDs that will be used to export this table are shown in Table 7.
+
+ +---------+------------------------+--------------------------------+
+ | Entity | Full OID | Exported as |
+ +---------+------------------------+--------------------------------+
+ | ifEntry | 1.3.6.1.2.1.2.2.1 | OID = 1.3.6.1.2.1.2.2.1 |
+ | ifIndex | 1.3.6.1.2.1.2.2.1.1 | subID = 1 |
+ | ifType | 1.3.6.1.2.1.2.2.1.3 | subID = 3 |
+ | ifMtu | 1.3.6.1.2.1.2.2.1.4 | subID = 4 |
+ | ifName | 1.3.6.1.2.1.31.1.1.1.1 | OID = 1.3.6.1.2.1.31.1.1.1.1 |
+ +---------+------------------------+--------------------------------+
+
+ Table 7: IF-MIB OIDs
+
+ Figure 30 shows the Templates exported to support the
+ mibObjectValueRow Information Element. Figure 31 shows the example
+ OID Data for the conceptual row exported in mibObjectValueRow to
+ match Table 7. Figure 32 shows the example data export as per
+ Table 6.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 50]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Set ID = 2 | Length = 12 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Template ID = 600 | Field Count = 1 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |0| IE = mibObjectValueRow | Field Length = 24 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Set ID = 3 | Length = 26 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Template ID = 601 | Field Count = 4 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Scope Field Count = 1 |0| IE = mibObjectValueInteger |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 1 |0| IE = mibObjectValueInteger |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 2 |0| IE = mibObjectValueInteger |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 2 |0|IE =mibObjectValueOctetString|
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 65535 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Set ID = 3 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Length = 22 | Template ID = 602 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Count = 3 | Scope Field Count = 2 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |0| IE = templateId | Field Length = 2 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |0| IE = informationElementIndex| Field Length = 2 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |0| IE = mibObjectIdentifier | Field Length = 65535 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+
+
+
+
+
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 51]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Set ID = 3 | Length = 22 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Template ID = 603 | Field Count = 3 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Scope Field Count = 2 |0| IE = templateId |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 2 |0| IE = informationElementIndex|
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 2 |0| IE = mibSubIdentifier |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 2 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 30: Example of Augmented ifEntry Template and
+ Options Template Sets
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 52]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Set ID = 602 | Length = 40 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Template ID = 600 | informationElementIndex = 0 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | VLEN = 10 | mibObjectIdentifier ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ifEntry = 1.3.6.1.2.1.2.2.1 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | 06082B06010201020201 | Padding = 0 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | templateId = 601 | informationElementIndex = 3 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | VLEN = 12 | mibObjectIdentifier ifName ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ifName = 1.3.6.1.2.1.31.1.1.1.1 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | 060A2B060102011F01010101 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | | Padding = 0 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Set ID = 603 | Length = 22 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | templateId = 601 | informationElementIndex = 0 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | mibSubIdentifier = 1 | templateId = 601 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | informationElementIndex = 1 | mibSubIdentifier = 3 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | templateId = 601 | informationElementIndex = 2 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | mibSubIdentifier = 4 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 31: Example of Augmented ifEntry OID Data Export
+
+
+
+
+
+
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 53]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Set ID = 600 | Length = 68 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |Semantic=0xFF | Template ID = 601 | ifIndex = 1 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ifType = 6 | ifMtu = 1500 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Length = 11 | ifName = Ethernet 10 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |Semantic=0xFF | Template ID = 601 | ifIndex = 2 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ifType = 6 | ifMtu = 1500 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Length = 11 | ifName = Ethernet 20 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |Semantic=0xFF | Template ID = 601 | ifIndex = 3 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ifType = 6 | ifMtu = 1500 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Length = 15 | ifName = FastEthernet 30 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 32: Example of Data Export for Augmented ifEntry
+
+
+
+
+
+
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 54]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+6.5. Exporting a Columnar Object: ipIfStatsInForwDatagrams
+
+ It may be that the full set of columnar objects that are supported by
+ a conceptual row are not required to be exported. Rather than use
+ the IPFIX Structured Data [RFC6313] method, the mibIndexIndicator
+ method can be used to provide the relationship between fields.
+
+ This example shows the MIB objects that are part of the INDEX of the
+ conceptual row being exported in the correct order and then being
+ referred to by using mibIndexIndicator.
+
+ This example shows the export of ipIfStatsInForwDatagrams from the
+ IP-MIB [RFC4293]. ipIfStatsInForwDatagrams is a columnar object that
+ is part of the ipIfStatsTable conceptual table. This is comprised of
+ ipIfStatsEntry conceptual rows.
+
+ The ipIfStatsTable conceptual table is indexed by ipIfStatsIPVersion
+ and ipIfStatsIfIndex.
+
+ The Options Template Record for the example Data Record contains the
+ following Information Elements:
+
+ 1. ipIfStatsIPVersion (1.3.6.1.2.1.4.31.3.1.1) (Scope Field)
+ (encoded using ASN.1/BER to "060A2B06010201041F030101" at
+ 12 octets long)
+
+ 2. ipIfStatsIfIndex (1.3.6.1.2.1.4.31.3.1.2) (Scope Field)
+ (encoded using ASN.1/BER to "060A2B06010201041F030102" at
+ 12 octets long)
+
+ 3. ipIfStatsInForwDatagrams (1.3.6.1.2.1.4.31.3.1.12) (non-Scope
+ Field)
+ (encoded using ASN.1/BER to "060A2B06010201041F03010C" at
+ 12 octets long)
+
+ Note that ipIfStatsIfIndex has been reduced-size encoded to 2 octets
+ in the following example. An exporting device with more interfaces
+ would use the full length.
+
+
+
+
+
+
+
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 55]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ Figure 33 shows the exported Options Template Set.
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Set ID = 3 | Length = 22 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Template ID = 701 | Field Count = 3 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Scope Field Count = 2 |0|Scope 1=mibObjectValueInteger|
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Scope Field 1 Length = 1 |0|Scope 2=mibObjectValueInteger|
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Scope Field 1 Length = 2 |0| IE = mibObjectValueCounter |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 4 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 33: Example of an Options Template for an Indexed MIB Object
+ with Two Index Objects
+
+ Figure 34 shows the exported MIB Field Options Template used to
+ export the required mibObjectValue Information Element metadata.
+ This example of the MIB Field Options Template includes the
+ mibIndexIndicator to indicate that some of the other fields in the
+ Data Records are index objects.
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Set ID = 3 | Length = 26 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Template ID = 702 | Field Count = 4 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Scope Field Count = 2 |0| IE = templateId |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 2 |0| IE = informationElementIndex|
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 2 |0| IE = mibIndexIndicator |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 1 |0| IE = mibObjectIdentifier |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 65535 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 34: Example of a MIB Field Options Template for an Indexed
+ MIB Object with Two Index Objects
+
+
+
+
+Aitken, et al. Standards Track [Page 56]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ Figure 35 shows the exported MIB Field Options Data used to export
+ the required mibObjectValue Information Element metadata. Note that
+ the first two Data Records have all their mibIndexIndicator bits set
+ to 0. The third mibIndexIndicator has the value "00000011" to show
+ that the first two fields in the Data Record are the INDEXes for this
+ columnar object.
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Set ID = 702 | Length = 58 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Template ID = 701 | informationElementIndex = 0 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |Index 00000000 | VLEN = 12 | mibObjectIdentifier ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | "1.3.6.1.2.1.4.31.3.1.1" ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | 060A2B06010201041F030101 ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | | templateId = 701 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | informationElementIndex = 1 |Index 00000000 | VLEN = 12 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | mibObjectIdentifier = "1.3.6.1.2.1.4.31.3.1.2" ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | 060A2B06010201041F030102 ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | templateId = 701 | informationElementIndex = 2 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Index 00000011 | VLEN = 12 | mibObjectIdentifier ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | "1.3.6.1.2.1.4.31.3.1.12" ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | 060A2B06010201041F03010C ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 35: Example of a MIB Field Options Data Set for an Indexed
+ MIB Object with Two Index Objects
+
+
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 57]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ Figure 36 shows the Data Records that export the values of the three
+ mibObjectValue Information Elements.
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Set ID = 701 | Length = 18 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ipVer = 1 | ifIndex = 10 | ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | InForwDatagrams = 10000 | ipVer = 2 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ifIndex = 10 | InForwDatagrams = 20000 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 36: Example of a MIB Data Set for an Indexed MIB Object
+ with Two Index Objects
+
+6.6. Exporting a Columnar Object Indexed by Information Elements:
+ ifOutQLen
+
+ If a Packet Sampling (PSAMP) Packet Report [RFC5476] was generated on
+ any dropped packets on an interface, then it may be desirable to know
+ if the send queue on the output interface was full. This could be
+ done by exporting the size of the send queue (ifOutQLen) in the same
+ Data Record as the PSAMP Packet Report.
+
+ The exported data looks like:
+
+ +-----------+-----------+---------+--------------+------------------+
+ | SRC ADDR | DST ADDR | PKT LEN | OUTPUT | OUTPUT QUEUE LEN |
+ | | | | INTERFACE | (ifOutQLen) |
+ +-----------+-----------+---------+--------------+------------------+
+ | 192.0.2.1 | 192.0.2.3 | 150 | Eth 1/0 (15) | 45 |
+ | 192.0.2.4 | 192.0.2.9 | 350 | Eth 1/0 (15) | 45 |
+ | 192.0.2.3 | 192.0.2.9 | 650 | Eth 1/0 (15) | 23 |
+ | 192.0.2.4 | 192.0.2.6 | 350 | Eth 1/1 (16) | 0 |
+ +-----------+-----------+---------+--------------+------------------+
+
+ Table 8: Packet Report with Interface Output Queue Length
+ (ifOutQLen) Data
+
+ The ifOutQLen MIB object, defined in the IF-MIB [RFC2863], provides
+ the length of the output packet queue. This columnar object is part
+ of the ifEntry conceptual row and indexed by the interface index
+ (ifIndex).
+
+
+
+Aitken, et al. Standards Track [Page 58]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ This relationship between the ifOutQLen field and the index field is
+ exported using mibIndexIndicator in the MIB Field Options Template.
+ The value of "00001000" flags the index fields concisely.
+
+ The Template Record for the example Data Record contains the
+ following Information Elements:
+
+ 1. sourceIPv4Address
+
+ 2. destinationIPv4Address
+
+ 3. totalLengthIPv4
+
+ 4. egressInterface
+
+ 5. ifOutQLen (indexed by egressInterface)
+
+ Figure 37 shows the exported Template Set detailing the Template for
+ exporting a PSAMP Report with ifOutQLen. Figures 38 and 39 show the
+ MIB Field Options Template and Data Record.
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Set ID = 2 | Length = 28 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Template ID = 703 | Field Count = 5 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |0| IE = sourceIPv4Address | Field Length = 4 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |0| IE = destinationIPv4Address | Field Length = 4 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |0| IE = totalLengthIPv4 | Field Length = 4 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |0| IE = egressInterface | Field Length = 4 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |0| IE = mibObjectValueGauge | Field Length = 4 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 37: Example of Template for a PSAMP Report with ifOutQLen
+ Indexed by egressInterface
+
+
+
+
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 59]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Set ID = 3 | Length = 26 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Template ID = 704 | Field Count = 4 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Scope Field Count = 2 |0| IE = templateId |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 2 |0| IE = informationElementIndex|
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 2 |0| IE = mibIndexIndicator |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 1 |0| IE = mibObjectIdentifier |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 65535 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 38: Example of MIB Field Options Template for a PSAMP Report
+ with ifOutQLen Indexed by egressInterface
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Set ID = 704 | Length = 21 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Template ID = 703 | informationElementIndex = 4 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |Index 00001000 | VLEN = 11 | mibObjectIdentifier ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | "1.3.6.1.2.1.2.2.1.21" ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | 06092B0601020102020115 ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | |
+ +-+-+-+-+-+-+-+-+
+
+ Figure 39: Example of MIB Field Options Data Record for a PSAMP
+ Report with ifOutQLen Indexed by egressInterface
+
+ The corresponding IPFIX Data Record is shown in Figure 40. For the
+ sake of the example, the interface index of "Eth 1/0" is 15 and the
+ interface index of "Eth 1/1" is 16.
+
+
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 60]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Set ID = 703 | Length = 84 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | 192.0.2.1 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | 192.0.2.3 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | 150 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | 15 (Eth 1/0) |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | 45 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | 192.0.2.4 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | 192.0.2.9 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | 350 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | 15 (Eth 1/0) |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | 45 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | 192.0.2.3 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | 192.0.2.9 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | 650 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | 15 (Eth 1/0) |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | 23 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | 192.0.2.4 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | 192.0.2.6 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | 350 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | 16 (Eth 1/1) |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | 0 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 40: Example of PSAMP Packet Report with ifOutQLen
+ Indexed by egressInterface
+
+
+
+Aitken, et al. Standards Track [Page 61]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+6.7. Exporting with Multiple Contexts: The OSPF Neighbor Row Revisited
+
+ If the context used to export the MIB objects is the default one, no
+ extra context fields are required. This example demonstrates how to
+ handle the case when the context needs to be specified. It is based
+ on the previous example (Section 6.3).
+
+ The OSPF details of the conceptual row that was exported per
+ Section 6.3 would be suitable if there were only one OSPF process
+ running at the Observation Point. If multiple OSPF processes are
+ present, then they can be differentiated by also exporting the
+ mibContextEngineID and mibContextName.
+
+ The following fields will be exported:
+
+ +------------------+----------------+-------------------------+-----+
+ | Object | ID | mibObjectValue | Len |
+ +------------------+----------------+-------------------------+-----+
+ | ospfNbrIpAddr | ospfNbrEntry 1 | mibObjectValueIPAddress | 4 |
+ | ospfNbrAddress- | ospfNbrEntry 2 | mibObjectValueInteger | 4 |
+ | -LessIndex | | | |
+ | ospfNbrRtrId | ospfNbrEntry 3 | mibObjectValueIPAddress | 4 |
+ | ospfNbrState | ospfNbrEntry 6 | mibObjectValueInteger | 1 |
+ +------------------+----------------+-------------------------+-----+
+
+ Table 9: OSPF Neighbor Entry Objects
+
+ The example contextEngineID matches the example from [RFC3411] for
+ Acme Networks: "'800002B804616263'H (enterprise 696, string "abc")".
+
+ Figure 41 shows the Templates exported to support a mibObjectValueRow
+ that is defined within a context. Figure 42 shows the example OID
+ Data for the conceptual row exported in mibObjectValueRow. These are
+ unchanged from the previous example (Section 6.3). Figure 43 shows
+ the example data for two OSPF neighbors. Although these have
+ identical INDEX/scope values, the context information indicates that
+ they come from different OSPF processes. Note that the OID for
+ ospfNbrEntry has been encoded using ASN.1/BER to
+ "06082B060102010E0A01" at 10 octets long.
+
+
+
+
+
+
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 62]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Set ID = 2 | Length = 20 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Template ID = 800 | Field Count = 3 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |0| IE = mibContextEngineID | Field Length = 8 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |0| IE = mibContextName | Field Length = 4 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |0| IE = mibObjectValueRow | Field Length = 16 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Set ID = 3 | Length = 26 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Template ID = 801 | Field Count = 4 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Scope Field Count = 2 |0| IE = mibObjectValueIPAddress|
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 4 |0| IE = mibObjectValueInteger |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 4 |0| IE = mibObjectValueIPAddress|
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 4 |0| IE = mibObjectValueInteger |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 1 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Set ID = 3 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Length = 22 | Template ID = 802 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Count = 3 | Scope Field Count = 2 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |0| IE = templateId | Field Length = 2 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |0| IE = informationElementIndex| Field Length = 2 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |0| IE = mibObjectIdentifier | Field Length = 65535 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 63]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Set ID = 3 | Length = 22 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Template ID = 803 | Field Count = 3 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Scope Field Count = 2 |0| IE = templateId |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 2 |0| IE = informationElementIndex|
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 2 |0| IE = mibSubIdentifier |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Field Length = 2 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 41: Example of ospfNbrEntry Template and Options Template Sets
+ with Context
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Set ID = 802 | Length = 20 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Template ID = 800 | informationElementIndex = 2 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | VLEN = 10 | mibObjectIdentifier = "1.3.6.1.2.1.14.10.1" |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | 06082B060102010E0A01 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | | Padding = 0 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Set ID = 803 | Length = 28 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | templateId = 801 | informationElementIndex = 0 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | mibSubIdentifier = 1 | templateId = 801 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | informationElementIndex = 1 | mibSubIdentifier = 2 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | templateId = 801 | informationElementIndex = 2 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | mibSubIdentifier = 3 | templateId = 801 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | informationElementIndex = 3 | mibSubIdentifier = 6 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 42: Example of ospfNbrEntry OID Data Export with Context
+
+
+
+Aitken, et al. Standards Track [Page 64]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Set ID = 800 | Length = 60 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | mibContextEngineID = 800002B804616263 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ... mibContextEngineID |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | mibContextName = con1 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |Semantic=0xFF | Template ID = 801 | ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ospfNbrIpAddr = 192.0.2.1 | ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ospfNbrAddressLessIndex = 0 | ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ospfNbrRtrId = 1.1.1.1 |ospfNbrState=8 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | mibContextEngineID = 800002B804616263 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ... mibContextEngineID |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | mibContextName = con2 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |Semantic=0xFF | Template ID = 801 | ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ospfNbrIpAddr = 192.0.2.2 | ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ospfNbrAddressLessIndex = 0 | ... |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ospfNbrRtrId = 2.2.2.2 |ospfNbrState=8 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 43: Example of Data Export for ospfNbrEntry with Context
+
+7. Configuration Considerations
+
+ When configuring a MIB OID for export, consideration should be given
+ to whether the SNMP context should also be configurable. If a
+ non-default context is used, then it should be associated with the
+ fields as per Section 5.6.
+
+
+
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 65]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+8. The Collecting Process's Side
+
+ The specifications in Section 9 of [RFC7011] also apply to Collectors
+ that implement this specification. In addition, the following
+ specifications should be noted:
+
+ o A Collecting Process that implements this specification MUST store
+ the Data Records containing the OID object type definitions with
+ the same retention policy as Templates.
+
+ o A Collecting Process that implements this specification SHOULD
+ have access to MIB modules in order to look up the received MIB
+ Object Identifiers and find the full type definition and name of
+ MIB OID fields used in received Templates.
+
+ o It should be noted that, because reduced-size encoding MAY be used
+ by the Exporting Process, the Collecting Process cannot assume
+ that a received size for a field is the maximum size it should
+ expect for that field.
+
+ o If a Collecting Process receives a MIB Object Identifier that it
+ cannot decode, it MAY log a warning.
+
+ o A Collecting Process MUST support the three options for handling
+ columnar objects detailed in Section 5.8.
+
+9. Applicability
+
+ Making available the many and varied items from MIB modules opens up
+ a wide range of possible applications for the IPFIX protocol, some
+ quite different from the usual Flow information.
+
+ Some monitoring applications periodically export a mapping of
+ interface ID to interface name using IPFIX Options Templates. This
+ could be expanded to include the ifInUcastPkts MIB object as defined
+ in the IF-MIB [RFC2863], indexed using the ingressInterface
+ Information Element. This would provide the input statistics for
+ each interface; these statistics can be compared to the Flow
+ information to ensure that the sampling rate is as expected, or, in
+ the absence of sampling, to ensure that all expected packets are
+ being monitored.
+
+
+
+
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 66]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+10. Security Considerations
+
+ For this extension to the IPFIX protocol, the same security
+ considerations as those for the IPFIX protocol apply [RFC7011].
+
+ If the Exporter is generating or capturing the field values itself,
+ e.g., using the MIB objects only as an encoding or type mechanism,
+ there are no extra security considerations beyond standard IPFIX.
+
+ However, if the Exporter is implemented as an SNMP manager accessing
+ an SNMP agent, it MUST authenticate itself to the SNMP agent
+ [RFC3414] [RFC5591] [RFC5592] [RFC6353], and the SNMP agent MUST
+ enforce SNMP access control rules [RFC3415] as required by the SNMP
+ architecture [RFC3411].
+
+ Access to particular MIB objects is controlled by the configuration
+ of the IPFIX Exporter. This is consistent with the way IPFIX
+ controls access to other Information Elements in general.
+
+ The configuration of an IPFIX Exporter determines which MIB objects
+ are included in IPFIX Data Records sent to certain Collectors.
+ Network operators should take care that the only MIB objects that are
+ included in IPFIX Data Records are objects that the receiving
+ Collector is allowed to receive. Note that multiple users may have
+ access to the data from the Collector.
+
+ When exporting MIB objects that may be considered sensitive or
+ vulnerable in some network environments (as mentioned in the Security
+ Considerations section of the RFC containing the MIB module), the
+ Exporter should consider using anonymization techniques per [RFC6235]
+ if the information is anonymizable. Consumers of exported data
+ should therefore be able to handle the kinds of data modifications
+ that are described in [RFC6235].
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 67]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+11. IANA Considerations
+
+11.1. New IPFIX Semantics
+
+ New IPFIX semantics have been allocated in IANA's IPFIX registry
+ [IANA-IPFIX] per Section 6 of [RFC7012], as defined in the
+ subsections below.
+
+11.1.1. snmpCounter
+
+ An integral value reporting the value of a counter, identical to the
+ Counter32 and Counter64 semantics in [RFC2578], as determined by the
+ Field Length.
+
+ This is similar to IPFIX's totalCounter semantic, except that total
+ counters have an initial value of 0 but SNMP counters do not.
+
+ IANA has assigned value 7 to snmpCounter.
+
+11.1.2. snmpGauge
+
+ An integral value identical to the Gauge32 semantic in [RFC2578] and
+ the Gauge64 semantic in [RFC2856], as determined by the Field Length.
+
+ IANA has assigned value 8 to snmpGauge.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 68]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+11.2. New IPFIX Information Elements
+
+ The new Information Elements in Table 10 have been allocated in
+ IANA's IPFIX registry [IANA-IPFIX], as defined in the subsections
+ below.
+
+ In each case, the "Units" and "Range" have been left blank, since
+ these are not applicable.
+
+ +-----------+---------------------------+
+ | ElementId | Name |
+ +-----------+---------------------------+
+ | 434 | mibObjectValueInteger |
+ | 435 | mibObjectValueOctetString |
+ | 436 | mibObjectValueOID |
+ | 437 | mibObjectValueBits |
+ | 438 | mibObjectValueIPAddress |
+ | 439 | mibObjectValueCounter |
+ | 440 | mibObjectValueGauge |
+ | 441 | mibObjectValueTimeTicks |
+ | 442 | mibObjectValueUnsigned |
+ | 443 | mibObjectValueTable |
+ | 444 | mibObjectValueRow |
+ | 445 | mibObjectIdentifier |
+ | 446 | mibSubIdentifier |
+ | 447 | mibIndexIndicator |
+ | 448 | mibCaptureTimeSemantics |
+ | 449 | mibContextEngineID |
+ | 450 | mibContextName |
+ | 451 | mibObjectName |
+ | 452 | mibObjectDescription |
+ | 453 | mibObjectSyntax |
+ | 454 | mibModuleName |
+ +-----------+---------------------------+
+
+ Table 10: New Information Elements
+
+11.2.1. New MIB Object Value Information Elements
+
+11.2.1.1. mibObjectValueInteger
+
+ A new Information Element "mibObjectValueInteger" has been allocated
+ in IANA's IPFIX registry [IANA-IPFIX], with the following definition:
+
+ Description: An IPFIX Information Element that denotes that the
+ integer value of a MIB object will be exported. The MIB Object
+ Identifier ("mibObjectIdentifier") for this field MUST be exported
+ in a MIB Field Option or via another means. This Information
+
+
+
+Aitken, et al. Standards Track [Page 69]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ Element is used for MIB objects with the Base syntax of Integer32
+ and INTEGER with IPFIX reduced-size encoding used as required.
+ The value is encoded as per the standard IPFIX Abstract Data Type
+ of signed32.
+
+ Abstract Data Type: signed32
+
+ Data Type Semantics: quantity
+
+ ElementId: 434
+
+ Status: current
+
+ Reference: RFC 8038
+
+11.2.1.2. mibObjectValueOctetString
+
+ A new Information Element "mibObjectValueOctetString" has been
+ allocated in IANA's IPFIX registry [IANA-IPFIX], with the following
+ definition:
+
+ Description: An IPFIX Information Element that denotes that an
+ Octet String or Opaque value of a MIB object will be exported.
+ The MIB Object Identifier ("mibObjectIdentifier") for this field
+ MUST be exported in a MIB Field Option or via another means. This
+ Information Element is used for MIB objects with the Base syntax
+ of OCTET STRING and Opaque. The value is encoded as per the
+ standard IPFIX Abstract Data Type of octetArray.
+
+ Abstract Data Type: octetArray
+
+ Data Type Semantics: default
+
+ ElementId: 435
+
+ Status: current
+
+ Reference: RFC 8038
+
+11.2.1.3. mibObjectValueOID
+
+ A new Information Element "mibObjectValueOID" has been allocated in
+ IANA's IPFIX registry [IANA-IPFIX], with the following definition:
+
+ Description: An IPFIX Information Element that denotes that an
+ Object Identifier or OID value of a MIB object will be exported.
+ The MIB Object Identifier ("mibObjectIdentifier") for this field
+ MUST be exported in a MIB Field Option or via another means. This
+
+
+
+Aitken, et al. Standards Track [Page 70]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ Information Element is used for MIB objects with the Base syntax
+ of OBJECT IDENTIFIER. Note: In this case, the
+ "mibObjectIdentifier" defines which MIB object is being exported,
+ and the "mibObjectValueOID" field will contain the OID value of
+ that MIB object. The mibObjectValueOID Information Element is
+ encoded as ASN.1/BER [X.690] in an octetArray.
+
+ Abstract Data Type: octetArray
+
+ Data Type Semantics: default
+
+ ElementId: 436
+
+ Status: current
+
+ Reference: RFC 8038
+
+11.2.1.4. mibObjectValueBits
+
+ A new Information Element "mibObjectValueBits" has been allocated in
+ IANA's IPFIX registry [IANA-IPFIX], with the following definition:
+
+ Description: An IPFIX Information Element that denotes that a set
+ of Enumerated flags or bits from a MIB object will be exported.
+ The MIB Object Identifier ("mibObjectIdentifier") for this field
+ MUST be exported in a MIB Field Option or via another means. This
+ Information Element is used for MIB objects with the Base syntax
+ of BITS. The flags or bits are encoded as per the standard IPFIX
+ Abstract Data Type of octetArray, with sufficient length to
+ accommodate the required number of bits. If the number of bits is
+ not an integer multiple of octets, then the most significant bits
+ at the end of the octetArray MUST be set to 0.
+
+ Abstract Data Type: octetArray
+
+ Data Type Semantics: flags
+
+ ElementId: 437
+
+ Status: current
+
+ Reference: RFC 8038
+
+
+
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 71]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+11.2.1.5. mibObjectValueIPAddress
+
+ A new Information Element "mibObjectValueIPAddress" has been
+ allocated in IANA's IPFIX registry [IANA-IPFIX], with the following
+ definition:
+
+ Description: An IPFIX Information Element that denotes that the
+ IPv4 address value of a MIB object will be exported. The MIB
+ Object Identifier ("mibObjectIdentifier") for this field MUST be
+ exported in a MIB Field Option or via another means. This
+ Information Element is used for MIB objects with the Base syntax
+ of IpAddress. The value is encoded as per the standard IPFIX
+ Abstract Data Type of ipv4Address.
+
+ Abstract Data Type: ipv4Address
+
+ Data Type Semantics: default
+
+ ElementId: 438
+
+ Status: current
+
+ Reference: RFC 8038
+
+11.2.1.6. mibObjectValueCounter
+
+ A new Information Element "mibObjectValueCounter" has been allocated
+ in IANA's IPFIX registry [IANA-IPFIX], with the following definition:
+
+ Description: An IPFIX Information Element that denotes that the
+ counter value of a MIB object will be exported. The MIB Object
+ Identifier ("mibObjectIdentifier") for this field MUST be exported
+ in a MIB Field Option or via another means. This Information
+ Element is used for MIB objects with the Base syntax of Counter32
+ or Counter64 with IPFIX reduced-size encoding used as required.
+ The value is encoded as per the standard IPFIX Abstract Data Type
+ of unsigned64.
+
+ Abstract Data Type: unsigned64
+
+ Data Type Semantics: snmpCounter
+
+ ElementId: 439
+
+ Status: current
+
+ Reference: RFC 8038
+
+
+
+
+Aitken, et al. Standards Track [Page 72]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+11.2.1.7. mibObjectValueGauge
+
+ A new Information Element "mibObjectValueGauge" has been allocated in
+ IANA's IPFIX registry [IANA-IPFIX], with the following definition:
+
+ Description: An IPFIX Information Element that denotes that the
+ Gauge value of a MIB object will be exported. The MIB Object
+ Identifier ("mibObjectIdentifier") for this field MUST be exported
+ in a MIB Field Option or via another means. This Information
+ Element is used for MIB objects with the Base syntax of Gauge32.
+ The value is encoded as per the standard IPFIX Abstract Data Type
+ of unsigned32. This value represents a non-negative integer that
+ may increase or decrease but that shall never exceed a maximum
+ value or fall below a minimum value.
+
+ Abstract Data Type: unsigned32
+
+ Data Type Semantics: snmpGauge
+
+ ElementId: 440
+
+ Status: current
+
+ Reference: RFC 8038
+
+11.2.1.8. mibObjectValueTimeTicks
+
+ A new Information Element "mibObjectValueTimeTicks" has been
+ allocated in IANA's IPFIX registry [IANA-IPFIX], with the following
+ definition:
+
+ Description: An IPFIX Information Element that denotes that the
+ TimeTicks value of a MIB object will be exported. The MIB Object
+ Identifier ("mibObjectIdentifier") for this field MUST be exported
+ in a MIB Field Option or via another means. This Information
+ Element is used for MIB objects with the Base syntax of TimeTicks.
+ The value is encoded as per the standard IPFIX Abstract Data Type
+ of unsigned32.
+
+ Abstract Data Type: unsigned32
+
+ Data Type Semantics: quantity
+
+ ElementId: 441
+
+ Status: current
+
+ Reference: RFC 8038
+
+
+
+Aitken, et al. Standards Track [Page 73]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+11.2.1.9. mibObjectValueUnsigned
+
+ A new Information Element "mibObjectValueUnsigned" has been allocated
+ in IANA's IPFIX registry [IANA-IPFIX], with the following definition:
+
+ Description: An IPFIX Information Element that denotes that an
+ unsigned integer value of a MIB object will be exported. The MIB
+ Object Identifier ("mibObjectIdentifier") for this field MUST be
+ exported in a MIB Field Option or via another means. This
+ Information Element is used for MIB objects with the Base syntax
+ of unsigned32 with IPFIX reduced-size encoding used as required.
+ The value is encoded as per the standard IPFIX Abstract Data Type
+ of unsigned32.
+
+ Abstract Data Type: unsigned32
+
+ Data Type Semantics: quantity
+
+ ElementId: 442
+
+ Status: current
+
+ Reference: RFC 8038
+
+11.2.1.10. mibObjectValueTable
+
+ A new Information Element "mibObjectValueTable" has been allocated in
+ IANA's IPFIX registry [IANA-IPFIX], with the following definition:
+
+ Description: An IPFIX Information Element that denotes that a
+ complete or partial conceptual table will be exported. The MIB
+ Object Identifier ("mibObjectIdentifier") for this field MUST be
+ exported in a MIB Field Option or via another means. This
+ Information Element is used for MIB objects with a syntax of
+ SEQUENCE OF. This is encoded as a subTemplateList of
+ mibObjectValue Information Elements. The Template specified in
+ the subTemplateList MUST be an Options Template and MUST include
+ all the objects listed in the INDEX clause as Scope Fields.
+
+ Abstract Data Type: subTemplateList
+
+ Data Type Semantics: list
+
+ ElementId: 443
+
+ Status: current
+
+ Reference: RFC 8038
+
+
+
+Aitken, et al. Standards Track [Page 74]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+11.2.1.11. mibObjectValueRow
+
+ A new Information Element "mibObjectValueRow" has been allocated in
+ IANA's IPFIX registry [IANA-IPFIX], with the following definition:
+
+ Description: An IPFIX Information Element that denotes that a
+ single row of a conceptual table will be exported. The MIB Object
+ Identifier ("mibObjectIdentifier") for this field MUST be exported
+ in a MIB Field Option or via another means. This Information
+ Element is used for MIB objects with a syntax of SEQUENCE. This
+ is encoded as a subTemplateList of mibObjectValue Information
+ Elements. The subTemplateList exported MUST contain exactly one
+ row (i.e., one instance of the subTemplate). The Template
+ specified in the subTemplateList MUST be an Options Template and
+ MUST include all the objects listed in the INDEX clause as Scope
+ Fields.
+
+ Abstract Data Type: subTemplateList
+
+ Data Type Semantics: list
+
+ ElementId: 444
+
+ Status: current
+
+ Reference: RFC 8038
+
+11.2.2. New MIB Field Options Information Elements
+
+11.2.2.1. mibObjectIdentifier
+
+ A new Information Element "mibObjectIdentifier" has been allocated in
+ IANA's IPFIX registry [IANA-IPFIX], with the following definition:
+
+ Description: An IPFIX Information Element that denotes that a MIB
+ Object Identifier (MIB OID) is exported in the (Options)
+ Template Record. The mibObjectIdentifier Information Element
+ contains the OID assigned to the MIB object type definition
+ encoded as ASN.1/BER [X.690].
+
+ Abstract Data Type: octetArray
+
+ Data Type Semantics: default
+
+ ElementId: 445
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 75]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ Status: current
+
+ Reference: RFC 8038
+
+11.2.2.2. mibSubIdentifier
+
+ A new Information Element "mibSubIdentifier" has been allocated in
+ IANA's IPFIX registry [IANA-IPFIX], with the following definition:
+
+ Description: A non-negative sub-identifier of an Object Identifier
+ (OID).
+
+ Abstract Data Type: unsigned32
+
+ Data Type Semantics: identifier
+
+ ElementId: 446
+
+ Status: current
+
+ Reference: RFC 8038
+
+11.2.2.3. mibIndexIndicator
+
+ A new Information Element "mibIndexIndicator" has been allocated in
+ IANA's IPFIX registry [IANA-IPFIX], with the following definition:
+
+ Description: A set of bit fields that is used for marking the
+ Information Elements of a Data Record that serve as INDEX MIB
+ objects for an indexed columnar MIB object. Each bit represents
+ an Information Element in the Data Record, with the n-th least
+ significant bit representing the n-th Information Element. A bit
+ set to 1 indicates that the corresponding Information Element is
+ an index of the columnar object represented by the mibObjectValue.
+ A bit set to 0 indicates that this is not the case.
+
+ If the Data Record contains more than 64 Information Elements, the
+ corresponding Template SHOULD be designed such that all index
+ fields are among the first 64 Information Elements, because the
+ mibIndexIndicator only contains 64 bits. If the Data Record
+ contains less than 64 Information Elements, then the extra bits in
+ the mibIndexIndicator for which no corresponding Information
+ Element exists MUST have the value 0 and must be disregarded by
+ the Collector. This Information Element may be exported with
+ IPFIX reduced-size encoding.
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 76]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ Abstract Data Type: unsigned64
+
+ Data Type Semantics: flags
+
+ ElementId: 447
+
+ Status: current
+
+ Reference: RFC 8038
+
+11.2.2.4. mibCaptureTimeSemantics
+
+ A new Information Element "mibCaptureTimeSemantics" has been
+ allocated in IANA's IPFIX registry [IANA-IPFIX], with the following
+ definition:
+
+ Description: Indicates when in the lifetime of the Flow the MIB
+ value was retrieved from the MIB for a mibObjectIdentifier. This
+ is used to indicate if the value exported was collected from the
+ MIB closer to Flow creation or Flow export time and refers to the
+ Timestamp fields included in the same Data Record. This field
+ SHOULD be used when exporting a mibObjectValue that specifies
+ counters or statistics.
+
+ If the MIB value was sampled by SNMP prior to the IPFIX Metering
+ Process or Exporting Process retrieving the value (i.e., the data
+ is already stale) and it is important to know the exact sampling
+ time, then an additional observationTime* element should be paired
+ with the OID using IPFIX Structured Data [RFC6313]. Similarly, if
+ different MIB capture times apply to different mibObjectValue
+ elements within the Data Record, then individual
+ mibCaptureTimeSemantics Information Elements should be paired with
+ each OID using IPFIX Structured Data.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 77]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ Values:
+
+ 0 undefined
+
+ 1 begin - The value for the MIB object is captured from the
+ MIB when the Flow is first observed
+
+ 2 end - The value for the MIB object is captured from the MIB
+ when the Flow ends
+
+ 3 export - The value for the MIB object is captured from the
+ MIB at export time
+
+ 4 average - The value for the MIB object is an average of
+ multiple captures from the MIB over the observed life of
+ the Flow
+
+ Abstract Data Type: unsigned8
+
+ Data Type Semantics: identifier
+
+ ElementId: 448
+
+ Status: current
+
+ Reference: RFC 8038
+
+11.2.2.5. mibContextEngineID
+
+ A new Information Element "mibContextEngineID" has been allocated in
+ IANA's IPFIX registry [IANA-IPFIX], with the following definition:
+
+ Description: A mibContextEngineID that specifies the SNMP
+ engine ID for a MIB field being exported over IPFIX. Definition
+ as per [RFC3411], Section 3.3.
+
+ Abstract Data Type: octetArray
+
+ Data Type Semantics: default
+
+ ElementId: 449
+
+ Status: current
+
+ Reference: RFC 8038
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 78]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+11.2.2.6. mibContextName
+
+ A new Information Element "mibContextName" has been allocated in
+ IANA's IPFIX registry [IANA-IPFIX], with the following definition:
+
+ Description: An Information Element that denotes that a MIB
+ context name is specified for a MIB field being exported over
+ IPFIX. Reference [RFC3411], Section 3.3.
+
+ Abstract Data Type: string
+
+ Data Type Semantics: default
+
+ ElementId: 450
+
+ Status: current
+
+ Reference: RFC 8038
+
+11.2.3. New MIB Type Information Elements
+
+11.2.3.1. mibObjectName
+
+ A new Information Element "mibObjectName" has been allocated in
+ IANA's IPFIX registry [IANA-IPFIX], with the following definition:
+
+ Description: The name (called a descriptor in [RFC2578]) of an
+ object type definition.
+
+ Abstract Data Type: string
+
+ Data Type Semantics: default
+
+ ElementId: 451
+
+ Status: current
+
+ Reference: RFC 8038
+
+
+
+
+
+
+
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 79]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+11.2.3.2. mibObjectDescription
+
+ A new Information Element "mibObjectDescription" has been allocated
+ in IANA's IPFIX registry [IANA-IPFIX], with the following definition:
+
+ Description: The value of the DESCRIPTION clause of a MIB object
+ type definition.
+
+ Abstract Data Type: string
+
+ Data Type Semantics: default
+
+ ElementId: 452
+
+ Status: current
+
+ Reference: RFC 8038
+
+11.2.3.3. mibObjectSyntax
+
+ A new Information Element "mibObjectSyntax" has been allocated in
+ IANA's IPFIX registry [IANA-IPFIX], with the following definition:
+
+ Description: The value of the SYNTAX clause of a MIB object type
+ definition, which may include a textual convention or sub-typing.
+ See [RFC2578].
+
+ Abstract Data Type: string
+
+ Data Type Semantics: default
+
+ ElementId: 453
+
+ Status: current
+
+ Reference: RFC 8038
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 80]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+11.2.3.4. mibModuleName
+
+ A new Information Element "mibModuleName" has been allocated in
+ IANA's IPFIX registry [IANA-IPFIX], with the following definition:
+
+ Description: The textual name of the MIB module that defines a MIB
+ object.
+
+ Abstract Data Type: string
+
+ Data Type Semantics: default
+
+ ElementId: 454
+
+ Status: current
+
+ Reference: RFC 8038
+
+12. References
+
+12.1. Normative References
+
+ [IANA-IPFIX]
+ IANA, "IP Flow Information Export (IPFIX) Entities",
+ <http://www.iana.org/assignments/ipfix/>.
+
+ [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
+ Requirement Levels", BCP 14, RFC 2119,
+ DOI 10.17487/RFC2119, March 1997,
+ <http://www.rfc-editor.org/info/rfc2119>.
+
+ [RFC2578] McCloghrie, K., Ed., Perkins, D., Ed., and J.
+ Schoenwaelder, Ed., "Structure of Management Information
+ Version 2 (SMIv2)", STD 58, RFC 2578,
+ DOI 10.17487/RFC2578, April 1999,
+ <http://www.rfc-editor.org/info/rfc2578>.
+
+ [RFC2856] Bierman, A., McCloghrie, K., and R. Presuhn, "Textual
+ Conventions for Additional High Capacity Data Types",
+ RFC 2856, DOI 10.17487/RFC2856, June 2000,
+ <http://www.rfc-editor.org/info/rfc2856>.
+
+ [RFC3411] Harrington, D., Presuhn, R., and B. Wijnen, "An
+ Architecture for Describing Simple Network Management
+ Protocol (SNMP) Management Frameworks", STD 62, RFC 3411,
+ DOI 10.17487/RFC3411, December 2002,
+ <http://www.rfc-editor.org/info/rfc3411>.
+
+
+
+
+Aitken, et al. Standards Track [Page 81]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ [RFC6526] Claise, B., Aitken, P., Johnson, A., and G. Muenz,
+ "IP Flow Information Export (IPFIX) Per Stream Control
+ Transmission Protocol (SCTP) Stream", RFC 6526,
+ DOI 10.17487/RFC6526, March 2012,
+ <http://www.rfc-editor.org/info/rfc6526>.
+
+ [RFC7011] Claise, B., Ed., Trammell, B., Ed., and P. Aitken,
+ "Specification of the IP Flow Information Export (IPFIX)
+ Protocol for the Exchange of Flow Information", STD 77,
+ RFC 7011, DOI 10.17487/RFC7011, September 2013,
+ <http://www.rfc-editor.org/info/rfc7011>.
+
+ [RFC7012] Claise, B., Ed., and B. Trammell, Ed., "Information Model
+ for IP Flow Information Export (IPFIX)", RFC 7012,
+ DOI 10.17487/RFC7012, September 2013,
+ <http://www.rfc-editor.org/info/rfc7012>.
+
+ [X.690] International Telecommunication Union, "Information
+ Technology - ASN.1 encoding rules: Specification of Basic
+ Encoding Rules (BER), Canonical Encoding Rules (CER) and
+ Distinguished Encoding Rules (DER)", ITU-T Recommendation
+ X.690, ISO/IEC 8825-1, August 2015,
+ <https://www.itu.int/rec/T-REC-X.690>.
+
+12.2. Informative References
+
+ [CISCO-PROCESS-MIB]
+ Cisco Systems Inc., "CISCO-PROCESS-MIB.my: MIB for CPU and
+ process statistics", <ftp://ftp.cisco.com/pub/mibs/v2/
+ CISCO-PROCESS-MIB.my>.
+
+ [RFC2863] McCloghrie, K. and F. Kastenholz, "The Interfaces Group
+ MIB", RFC 2863, DOI 10.17487/RFC2863, June 2000,
+ <http://www.rfc-editor.org/info/rfc2863>.
+
+ [RFC2982] Kavasseri, R., Ed., "Distributed Management Expression
+ MIB", RFC 2982, DOI 10.17487/RFC2982, October 2000,
+ <http://www.rfc-editor.org/info/rfc2982>.
+
+ [RFC3414] Blumenthal, U. and B. Wijnen, "User-based Security Model
+ (USM) for version 3 of the Simple Network Management
+ Protocol (SNMPv3)", STD 62, RFC 3414,
+ DOI 10.17487/RFC3414, December 2002,
+ <http://www.rfc-editor.org/info/rfc3414>.
+
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 82]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ [RFC3415] Wijnen, B., Presuhn, R., and K. McCloghrie, "View-based
+ Access Control Model (VACM) for the Simple Network
+ Management Protocol (SNMP)", STD 62, RFC 3415,
+ DOI 10.17487/RFC3415, December 2002,
+ <http://www.rfc-editor.org/info/rfc3415>.
+
+ [RFC3444] Pras, A. and J. Schoenwaelder, "On the Difference between
+ Information Models and Data Models", RFC 3444,
+ DOI 10.17487/RFC3444, January 2003,
+ <http://www.rfc-editor.org/info/rfc3444>.
+
+ [RFC4022] Raghunarayan, R., Ed., "Management Information Base for
+ the Transmission Control Protocol (TCP)", RFC 4022,
+ DOI 10.17487/RFC4022, March 2005,
+ <http://www.rfc-editor.org/info/rfc4022>.
+
+ [RFC4293] Routhier, S., Ed., "Management Information Base for the
+ Internet Protocol (IP)", RFC 4293, DOI 10.17487/RFC4293,
+ April 2006, <http://www.rfc-editor.org/info/rfc4293>.
+
+ [RFC4750] Joyal, D., Ed., Galecki, P., Ed., Giacalone, S., Ed.,
+ Coltun, R., and F. Baker, "OSPF Version 2 Management
+ Information Base", RFC 4750, DOI 10.17487/RFC4750,
+ December 2006, <http://www.rfc-editor.org/info/rfc4750>.
+
+ [RFC4960] Stewart, R., Ed., "Stream Control Transmission Protocol",
+ RFC 4960, DOI 10.17487/RFC4960, September 2007,
+ <http://www.rfc-editor.org/info/rfc4960>.
+
+ [RFC5102] Quittek, J., Bryant, S., Claise, B., Aitken, P., and J.
+ Meyer, "Information Model for IP Flow Information Export",
+ RFC 5102, DOI 10.17487/RFC5102, January 2008,
+ <http://www.rfc-editor.org/info/rfc5102>.
+
+ [RFC5476] Claise, B., Ed., Johnson, A., and J. Quittek, "Packet
+ Sampling (PSAMP) Protocol Specifications", RFC 5476,
+ DOI 10.17487/RFC5476, March 2009,
+ <http://www.rfc-editor.org/info/rfc5476>.
+
+ [RFC5591] Harrington, D. and W. Hardaker, "Transport Security Model
+ for the Simple Network Management Protocol (SNMP)",
+ STD 78, RFC 5591, DOI 10.17487/RFC5591, June 2009,
+ <http://www.rfc-editor.org/info/rfc5591>.
+
+ [RFC5592] Harrington, D., Salowey, J., and W. Hardaker, "Secure
+ Shell Transport Model for the Simple Network Management
+ Protocol (SNMP)", RFC 5592, DOI 10.17487/RFC5592,
+ June 2009, <http://www.rfc-editor.org/info/rfc5592>.
+
+
+
+Aitken, et al. Standards Track [Page 83]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ [RFC6235] Boschi, E. and B. Trammell, "IP Flow Anonymization
+ Support", RFC 6235, DOI 10.17487/RFC6235, May 2011,
+ <http://www.rfc-editor.org/info/rfc6235>.
+
+ [RFC6313] Claise, B., Dhandapani, G., Aitken, P., and S. Yates,
+ "Export of Structured Data in IP Flow Information Export
+ (IPFIX)", RFC 6313, DOI 10.17487/RFC6313, July 2011,
+ <http://www.rfc-editor.org/info/rfc6313>.
+
+ [RFC6353] Hardaker, W., "Transport Layer Security (TLS) Transport
+ Model for the Simple Network Management Protocol (SNMP)",
+ STD 78, RFC 6353, DOI 10.17487/RFC6353, July 2011,
+ <http://www.rfc-editor.org/info/rfc6353>.
+
+Acknowledgments
+
+ The authors would like to thank Andrew Johnson for his collaboration
+ on the first draft version of this document, and to thank Andrew
+ Feren and Brian Trammell for their detailed reviews.
+
+ Juergen Schoenwaelder was partly funded by Flamingo, a Network of
+ Excellence project (ICT-318488) supported by the European Commission
+ under its Seventh Framework Programme.
+
+Authors' Addresses
+
+ Paul Aitken (editor)
+ Brocade Communications Systems, Inc.
+ 19a Canning Street, Level 3
+ Edinburgh, Scotland EH3 8EG
+ United Kingdom
+
+ Phone: +44 203 005 0731
+ Email: paitken@brocade.com
+
+
+ Benoit Claise
+ Cisco Systems, Inc.
+ De Kleetlaan 6a b1
+ Diegem 1813
+ Belgium
+
+ Phone: +32 2 704 5622
+ Email: bclaise@cisco.com
+
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 84]
+
+RFC 8038 Exporting MIB Variables with IPFIX May 2017
+
+
+ Srikar B S
+ Mojo Networks, Inc.
+ S. No. 7, Pinnac House II
+ Kothrud, Pune 411038
+ India
+
+ Phone: +91 94 4847 6672
+ Email: srikarbs@gmail.com
+
+
+ Colin McDowall
+ Brocade Communications Systems, Inc.
+ 19a Canning Street, Level 3
+ Edinburgh, Scotland EH3 8EG
+ United Kingdom
+
+ Phone: +44 203 005 0687
+ Email: cmcdowal@brocade.com
+
+
+ Juergen Schoenwaelder
+ Jacobs University Bremen
+ Campus Ring 1
+ Bremen 28725
+ Germany
+
+ Phone: +49 421 200 3587
+ Email: j.schoenwaelder@jacobs-university.de
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Aitken, et al. Standards Track [Page 85]
+