idnits 2.17.1 draft-ietf-ipfix-mib-variable-export-07.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- == There are 5 instances of lines with non-RFC6890-compliant IPv4 addresses in the document. If these are example addresses, they should be changed. -- The document has examples using IPv4 documentation addresses according to RFC6890, but does not use any IPv6 documentation addresses. Maybe there should be IPv6 examples, too? Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (October 26, 2014) is 3470 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) -- Possible downref: Non-RFC (?) normative reference: ref. 'BER' -- Possible downref: Non-RFC (?) normative reference: ref. 'IANA-IPFIX' -- Obsolete informational reference (is this intentional?): RFC 4960 (Obsoleted by RFC 9260) Summary: 0 errors (**), 0 flaws (~~), 2 warnings (==), 5 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 IPFIX Working Group P. Aitken, Ed. 3 Internet-Draft B. Claise 4 Intended status: Standards Track S. B S 5 Expires: April 29, 2015 C. McDowall 6 Cisco Systems, Inc. 7 J. Schoenwaelder 8 Jacobs University Bremen 9 October 26, 2014 11 Exporting MIB Variables using the IPFIX Protocol 12 draft-ietf-ipfix-mib-variable-export-07 14 Abstract 16 This document specifies a way to complement IPFIX Data Records with 17 Management Information Base (MIB) objects, avoiding the need to 18 define new IPFIX Information Elements for existing Management 19 Information Base objects that are already fully specified. 21 An IPFIX Options Template and method are specified, which are used to 22 export the extra information required to fully describe Simple 23 Network Management Protocol (SNMP) MIB objects in IPFIX. 25 Status of This Memo 27 This Internet-Draft is submitted in full conformance with the 28 provisions of BCP 78 and BCP 79. 30 Internet-Drafts are working documents of the Internet Engineering 31 Task Force (IETF). Note that other groups may also distribute 32 working documents as Internet-Drafts. The list of current Internet- 33 Drafts is at http://datatracker.ietf.org/drafts/current/. 35 Internet-Drafts are draft documents valid for a maximum of six months 36 and may be updated, replaced, or obsoleted by other documents at any 37 time. It is inappropriate to use Internet-Drafts as reference 38 material or to cite them other than as "work in progress." 40 This Internet-Draft will expire on April 29, 2015. 42 Copyright Notice 44 Copyright (c) 2014 IETF Trust and the persons identified as the 45 document authors. All rights reserved. 47 This document is subject to BCP 78 and the IETF Trust's Legal 48 Provisions Relating to IETF Documents 49 (http://trustee.ietf.org/license-info) in effect on the date of 50 publication of this document. Please review these documents 51 carefully, as they describe your rights and restrictions with respect 52 to this document. Code Components extracted from this document must 53 include Simplified BSD License text as described in Section 4.e of 54 the Trust Legal Provisions and are provided without warranty as 55 described in the Simplified BSD License. 57 Table of Contents 59 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 60 2. Motivation . . . . . . . . . . . . . . . . . . . . . . . . . 4 61 3. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 6 62 4. High Level Solution Overview . . . . . . . . . . . . . . . . 7 63 5. MIB Object Value Information Elements and the MIB Field 64 Options Template . . . . . . . . . . . . . . . . . . . . . . 8 65 5.1. MIB Field Options Architecture . . . . . . . . . . . . . 9 66 5.2. IPFIX and MIB Data Model . . . . . . . . . . . . . . . . 12 67 5.3. MIB Field Options - Specifications and Required Fields . 13 68 5.3.1. MIB Field Options Template . . . . . . . . . . . . . 14 69 5.3.2. MIB Type Options Template . . . . . . . . . . . . . . 14 70 5.4. MIB Field Options Template Formats . . . . . . . . . . . 15 71 5.4.1. Data Template containing a mibObject Field . . . . . 15 72 5.4.2. MIB Field Options Template . . . . . . . . . . . . . 16 73 5.4.3. MIB Field Options Data Records . . . . . . . . . . . 18 74 5.4.4. Options Template containing a mibObject Field . . . . 19 75 5.4.5. MIB Field Options Template with Semantics Fields . . 20 76 5.4.6. MIB Field Options Template with extra MIB Object 77 Details . . . . . . . . . . . . . . . . . . . . . . . 21 78 5.5. Use of field order in the MIB Field Option template . . . 23 79 5.6. Identifying the SNMP Context . . . . . . . . . . . . . . 24 80 5.7. Template Management . . . . . . . . . . . . . . . . . . . 25 81 5.7.1. Large Messages . . . . . . . . . . . . . . . . . . . 25 82 5.7.2. Template Withdrawal and Reuse . . . . . . . . . . . . 25 83 5.8. Exporting Conceptual Rows and Tables . . . . . . . . . . 26 84 5.8.1. Exporting Conceptual Rows - indexing . . . . . . . . 26 85 5.8.2. Exporting Conceptual Rows - mibObjectValueRow . . . . 27 86 5.8.3. Exporting Conceptual Rows - Augments . . . . . . . . 32 87 5.8.4. Exporting Conceptual Tables - mibObjectValueTable . . 33 88 5.8.5. Exporting Columnar Objects - using mibIndexIndicator 33 89 6. Example Use Cases . . . . . . . . . . . . . . . . . . . . . . 34 90 6.1. Non Columnar MIB Object: Established TCP Connections . . 34 91 6.2. Enterprise Specific MIB Object: Detailing CPU Load 92 History . . . . . . . . . . . . . . . . . . . . . . . . . 37 93 6.3. Exporting a Conceptual Row: The OSPF Neighbor Row . . . . 40 94 6.4. Exporting Augmented Conceptual Row: The IF-MIB id to name 95 mapping . . . . . . . . . . . . . . . . . . . . . . . . . 44 96 6.5. Exporting a Columnar Object: The ipIfStatsInForwDatagrams 49 97 6.6. Exporting a Columnar Object index by IEs: ifOutQLen . . . 52 98 6.7. Exporting With Multiple Contexts: The OSPF Neighbor Row 99 Revisited . . . . . . . . . . . . . . . . . . . . . . . . 56 100 7. Configuration Considerations . . . . . . . . . . . . . . . . 59 101 8. The Collecting Process's Side . . . . . . . . . . . . . . . . 59 102 9. Applicability . . . . . . . . . . . . . . . . . . . . . . . . 60 103 10. Security Considerations . . . . . . . . . . . . . . . . . . . 60 104 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 61 105 11.1. New IPFIX Semantics . . . . . . . . . . . . . . . . . . 61 106 11.1.1. SNMPtotalCounter . . . . . . . . . . . . . . . . . . 61 107 11.1.2. SNMPgauge . . . . . . . . . . . . . . . . . . . . . 61 108 11.2. New IPFIX Information Elements . . . . . . . . . . . . . 61 109 11.2.1. New MIB Value Information Elements . . . . . . . . . 62 110 11.2.2. New MIB Field Options Information Elements . . . . . 68 111 11.2.3. New MIB Type Information Elements . . . . . . . . . 71 112 12. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 73 113 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 73 114 13.1. Normative References . . . . . . . . . . . . . . . . . . 73 115 13.2. Informative References . . . . . . . . . . . . . . . . . 74 116 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 75 118 1. Introduction 120 There is growing interest in using IPFIX as a push mechanism for 121 exporting management information. Using a push protocol such as 122 IPFIX instead of a polling protocol like SNMP is especially 123 interesting in situations where large chunks of repetitive data need 124 to be exported periodically. 126 While initially targeted at different problems, there is a large 127 parallel between the information transported via IPFIX and SNMP. 128 Furthermore, certain Management Information Base (MIB) objects are 129 highly relevant to flows as they are understood today. For example, 130 in the IPFIX information model [IANA-IPFIX], Information Elements 131 coming from the SNMP world have already been specified, e.g., 132 ingressInterface and egressInterface both refer to the ifIndex 133 defined in [RFC2863]. 135 In particular the Management Information Base was designed as a 136 separate system of definitions. There are no dependencies between 137 the SMIv2 [RFC2578] and the SNMP protocol. This opens up the 138 possibility of exporting Objects defined via the MIB over other 139 protocols. 141 Rather than mapping existing MIB objects to IPFIX Information 142 Elements on a case by case basis, it would be advantageous to enable 143 the export of any existing or future MIB objects as part of an IPFIX 144 Data Record. This way, the duplication of data models [RFC3444], 145 both as SMIv2 MIB objects and IPFIX Information Elements, out of the 146 same information model [RFC3444] would be avoided. 148 Therefore the primary goals of this document are: 150 o to specify a way to complement IPFIX Data Records with Management 151 Information Base (MIB) objects; 153 o to avoid the need to define new IPFIX Information Elements for 154 existing Management Information Base objects that are already 155 fully specified; 157 o to allow the correlation of SNMP and IPFIX sourced data by 158 exporting them together; 160 o to allow SNMP push data from SNMP-only devices to be more easily 161 integrated into IPFIX based collection infrastructures. 163 2. Motivation 165 The intended scope of this work is the addition of MIB variable(s) to 166 IPFIX Information Elements in Data Records, in order to complement 167 the Records with useful and already standardized information. More 168 specifically, the case of an existing Template Record which needs to 169 be augmented with some MIB variables whose index was already present 170 in the Template Record as an IPFIX Information Element: typically, a 171 7-tuple Record containing the ingressInterface Information Element, 172 augmented by interface counters [RFC2863], which are indexed by the 173 respective ingressInterface values in the Data Records. 175 Many Data Records contain the ingressInterface and/or the 176 egressInterface Information Elements. These Information Elements 177 carry an ifIndex value, a MIB object defined in [RFC2863]. In order 178 to retrieve additional information about the identified interface, a 179 Collector could simply poll relevant objects from the device running 180 the Exporter via SNMP. However, that approach has several problems: 182 o It requires implementing a mediation function between two data 183 models, i.e., MIB objects and IPFIX Information Elements. 185 o Confirming the validity of simple mappings (e.g., ifIndex to 186 ifName) requires either checking on a regular basis that the 187 Exporter's network management system did not reload, or imposing 188 ifIndex persistence across an Exporter's reload. 190 o Synchronization problems occur since counters carried in Data 191 Records and counters carried in SNMP messages are retrieved from 192 the Exporter at different points in time and thus cannot be 193 correlated. In the best case, assuming very tight integration of 194 an IPFIX Collector with an SNMP polling engine, SNMP data is 195 retrieved shortly after Data Records have been received, which 196 implies a delay of the sum of the active or inactive timeouts (if 197 not null) plus the time to export the Data Record to the 198 Collector. If, however, the SNMP data is retrieved by a generic 199 Network Management Station (NMS) polling interface statistics, 200 then the time lag between IPFIX counters and SNMP counters can be 201 significantly higher. See [RFC5470] section 5.1.1. "Flow 202 Expiration" for details of active and inactive timeouts. 204 This document does not specify SNMP notifications, even if the 205 specifications in this document could potentially allow this. 207 Since IPFIX is a push mechanism, initiated from the Exporter with no 208 acknowledgment method, this specification does not provide the 209 ability to execute configuration changes. 211 The Distributed Management Expression MIB [RFC2982], which is a 212 mechanism to create new MIB variables based on the content of 213 existing ones, could also be advantageous in the context of this 214 specification. Indeed, newly created MIB objects (for example, the 215 link utilization MIB variable), created with the Distributed 216 Management Expression MIB [RFC2982] could nicely complement Data 217 Records. 219 Another advantage of exporting MIB objects via IPFIX is that IPFIX 220 would benefit from an extended series of types to be exported. The 221 simple and application-wide data types specified in SMIv2 [RFC2578], 222 along with new Textual Conventions, can be exported within IPFIX and 223 then decoded in the Collector. However, since a Textual Convention 224 can contain almost any name, this document does not extend the 225 existing informationElementDataType registry [IANA-IPFIX]. 227 The overall architectural model is depicted in Figure 1. The IPFIX 228 Exporter accesses the device's instrumentation, which follows the 229 specifications contained in MIB modules. Other management interfaces 230 such as NETCONF or the device's Command Line Interface (CLI) may 231 provide access to the same instrumentation. 233 +------+ +-------+ +.........+ +.....+ 234 | SNMP | | IPFIX | : NETCONF : : CLI : 235 +------+ +-------+ +.........+ +.....+ 236 | | | | 237 +--------------------------------------------+ 238 | Instrumentation (specified in MIB modules) | 239 +--------------------------------------------+ 241 Figure 1: Architectural Model 243 3. Terminology 245 IPFIX-specific terminology (Information Element, Template, Template 246 Record, Options Template Record, Template Set, Collector, Exporter, 247 Data Record, etc.) used in this document is defined in Section 2 of 248 [RFC7011]. As in [RFC7011], these IPFIX-specific terms have the 249 first letter of a word capitalized. 251 This document prefers the more generic term "Data Record" (as opposed 252 to "Flow Record") in relation to the export of MIB objects. 254 Object Identifier (MIB OID) 256 An Object Identifier value is an ordered list of non-negative 257 numbers. For the SMIv2, each number in the list is referred to as 258 a sub-identifier. There are at most 128 sub-identifiers in a 259 value, and each sub-identifier has a maximum value of 2^32 - 1 260 (4294967295 decimal). See [RFC2578] Section 3.5. 262 MIB Object Identifier Information Element 264 An IPFIX Information Element ("mibObjectIdentifier") which denotes 265 that a MIB Object Identifier (MIB OID) is exported in the 266 (Options) Data Record. See Section 11.2.2.1. 268 SMIv2 Terminology 270 The key words "MIB Module", "MIB Object", "INDEX", "AUGMENTS", 271 "textual convention", "columnar object", "conceptual row", and 272 "conceptual table" in this document are to be interpreted as 273 described in SMIv2 [RFC2578] 275 SMIv2 SYNTAX 277 The SYNTAX key words "INTEGER", "Integer32", "OCTET STRING", 278 "OBJECT IDENTIFIER", "BITS construct", "IpAddress", "Counter32", 279 "Gauge32", "TimeTicks", "Opaque", "Counter64", "Unsigned32", 280 "SEQUENCE", and "SEQUENCE OF" in this document are to be 281 interpreted as described in SMIv2 [RFC2578]. 283 SNMP Context Terminology 285 The key words "snmpEngineID", "contextEngineID", and "contextName" 286 in this document are to be interpreted as described in [RFC3411] 288 mibObjectValue Information Elements 290 Refers to any and all of the mibObjectValue Information Elements 291 generically. Any restriction or requirement in this document that 292 refers to mibObjectValue applies to the following Information 293 Elements defined in Section 11.2.1: mibObjectValueInteger, 294 mibObjectValueOctetString, mibObjectValueOID, 295 mibObjectValueIPAddress, mibObjectValueBITS, 296 mibObjectValueCounter, mibObjectValueGauge, 297 mibObjectValueTimeTicks, mibObjectValueUnsigned, 298 mibObjectValueTable, and mibObjectValueRow. 300 IE 302 Used as a shorthand for "Information Element" [RFC7011] in the 303 figures. 305 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 306 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 307 "OPTIONAL" in this document are to be interpreted as described in 308 [RFC2119]. 310 4. High Level Solution Overview 312 This document specifies a method for creating IPFIX Options Templates 313 that are used to export the extra data required to describe MIB 314 variables (see Section 5.1). 316 This allows IPFIX Templates to contain any combination of fields 317 defined by traditional IPFIX Information Element(s) and/or MIB Object 318 Identifier(s). The MIB Object Identifiers can reference either non 319 columnar or columnar MIB object(s). Enterprise-specific MIB Object 320 Identifiers are also supported. 322 This document also defines two standard IPFIX Options Templates (see 323 Section 5.3) that are used as part of the mechanism to export MIB 324 object meta data: 326 o MIB Field Options Template (Section 5.3.1) 327 o MIB Type Options Template (Section 5.3.2) 329 This document defines three classes of new IPFIX Information 330 Elements. These are used to export values from the MIB, export 331 required Object Identifier information, and optionally export type 332 data from a MIB Module: 334 o MIB Object Value Information Elements (Section 11.2.1) 336 o MIB Field Options Information Elements (Section 11.2.2) 338 o MIB Type Information Information Elements (Section 11.2.3) 340 Additionally, this document defines two new IPFIX semantics which are 341 required for the new Information Elements: 343 o SNMPtotalCounter (Section 11.1.1) 345 o SNMPgauge (Section 11.1.2) 347 One common type defined in the SMIv2 are conceptual rows and 348 conceptual tables. It is desirable that exporting a complete or 349 partial conceptual row is simple and efficient. This is accomplished 350 by using IPFIX Structured Data [RFC6313] to reduce repetition of 351 Object Identifier and indexing data. 353 To allow the use of individual columnar objects that make up a 354 conceptual row, a method is also specified to detail that a MIB 355 object is indexed by other fields in the same Data Flow. For an 356 individually indexed mibObjectValue the INDEX fields are sent as any 357 of the other fields in the same Record, and may be mibObjectValue 358 Information Element(s) or other existing Information Element(s). 360 Also, in some cases Exporters may not want (or be able) to export the 361 full information on how the MIB objects being exported are indexed. 362 This may be because the MIB object is being used purely as type 363 information or the Exporting Process may not have knowledge of the 364 indexing required. Therefore providing index information for 365 Columnar Objects is optional. 367 5. MIB Object Value Information Elements and the MIB Field Options 368 Template 370 This document defines new mibObjectValue Information Elements (in 371 Section 11.2.1). These are used to export MIB objects as part of 372 standard IPFIX Templates. The mibObjectValue Information Elements 373 contain the actual data values. 375 The Metering or Exporting Process may extract the data values for 376 mibObjectValue Information Elements from a Process that resides on 377 the same device or may capture or create the data required to match 378 the definition of the MIB object. In particular exporting a value of 379 a MIB object defined in a certain MIB does not imply that the SNMP 380 process on the device supports that MIB module. 382 The main issue that arises from exporting values of MIB objects in 383 IPFIX is that MIB Object Identifiers do not fit into the standard 384 IPFIX Template format [RFC7011], as this only provides a 16-bit 385 Information Element identifier. 387 The values of a MIB object could be exported using a MIB specific 388 Information Element without providing any Object Identifiers. 389 However, without exporting the actual MIB OID the full type of the 390 data would be unknown and every Field containing MIB object data 391 would appear identical. Without knowing which OID the contents of a 392 field map to, the data would be incomprehensible to a Collector. 394 For the values in the mibObjectValue Information Elements to be 395 understandable, more meta information about the mibObjectValue 396 Information Elements must be sent as part of the IPFIX export. The 397 required minimum to understand each field is the OID as defined in 398 Section 5.3.1. 400 One approach to this problem would be to extend the IPFIX standard to 401 allow extended field specifiers so metadata about fields can be 402 included in Data Templates. This would however require a new version 403 of the IPFIX standard which may not be backwards compatible. 404 However, future versions of IPFIX may export the required MIB 405 metadata as part of newer set versions. 407 This document defines a MIB Field Options Template to export the 408 extra meta information required for mibObjectValue Information 409 Elements. This is a standard IPFIX Options Template Set which 410 includes a minimum set of required fields (see Section 5.3.1) and may 411 include extra fields to provide more meta information about one of 412 the mibObjectValue Information Elements. 414 The MIB Field Options export is used to tell the Collecting process: 415 for the following (template, field) the MIB Object type definition 416 has this OID. 418 5.1. MIB Field Options Architecture 420 Four IPFIX Sets are used together to export a Flow which contains 421 mibObjectValue Information Elements. These are: 423 1. A Template Set which includes the mibObjectValue Information 424 Element. 426 The Template Set informs the Collector that a MIB object value 427 of length N will be exported. This Set may be also be an 428 Options Template Set. 430 2. A MIB Field Options Template Set 432 The MIB Field Options Template describes which metadata will 433 be sent for each mibObjectValue Information Element being 434 exported. 436 3. A MIB Field Options Data Set 438 The MIB Field Options Data Set includes the metadata for each 439 MIB object (i.e. the mibObjectIdentifier or mibSubIdentifier). 440 The metadata about the mibObjectValue Information Elements 441 only needs to be resent as per normal Template refreshes or 442 resends. 444 4. A Data Set. 446 The Data Set contains only the actual data extracted from the 447 MIB or described by the MIB. 449 Figure 2 shows the IPFIX Message structure for a MIB Field in a 450 Template Set. 452 +-------------------------------------------------------+ 453 | IPFIX Message Header | 454 +-------------------------------------------------------+ 455 | Template Set (A) | 456 +-------------------------------------------------------+ 457 | Options Template Set (B) (MIB Field Options Template) | 458 +-------------------------------------------------------+ 459 | Data Set (B) (MIB Field Options Data) | 460 +-------------------------------------------------------+ 461 | Data Set (A) | 462 +-------------------------------------------------------+ 464 Figure 2: IPFIX Message structure for a MIB Field in a Template Set 466 The MIB Field Options Template defines MIB Field Options Data 467 Records. The MIB Field Options Data Records annotate the Data 468 Template with mibObjectValue metadata. Together the Data Template 469 and MIB Field Options Data Records define the Data Records that will 470 be exported. 472 The Data Records (A) have a dependency on the two Templates and the 473 MIB Field Options Data Records. 475 More Data Sets that use the same mibObjectValue Information Element 476 can then be send in subsequent packets. 478 Figure 3 shows the relationships between the Sets discussed above. 480 +------------------------------+ 481 |MIB Field Options Template (B)| 482 +------------------------------+ 483 |(templateId, elementIndex) | 484 +------------------------------+ 485 | mibOID | 486 +------------------------------+ 487 | 488 | Defines 489 V 490 +------------------------+ +--------------------------+ 491 | Data Template (A) | |MIB Field Options Data (B)| 492 +------------------------+ +--------------------------+ 493 |Field 0 - regular IE | | | 494 +------------------------+ +--------------------------+ 495 |Field 1-mibObjectValue | <----------- | (X,1) = OID | 496 +------------------------+ Annotates +--------------------------+ 497 |Field 2-mibObjectValue | <----------- | (X,2) = OID | 498 +------------------------+ +--------------------------+ 499 | | 500 |------------------------------------/ 501 | 502 | Defines 503 | 504 V 505 +------------------------+ 506 | Data Records (A) | 507 |------------------------| 508 | Field 0 data | 509 +------------------------+ 510 | Field 1 data | 511 +------------------------+ 512 | Field 2 data | 513 +------------------------+ 515 Figure 3: Relationships between Sets 517 5.2. IPFIX and MIB Data Model 519 [RFC2578] species that the SYNTAX clause for a MIB object defines the 520 abstract data structure of an Object and what it must contain: 522 "The data structure must be one of the following: a base type, the 523 BITS construct, or a textual convention. (SEQUENCE OF and SEQUENCE 524 are also possible for conceptual tables, see section 7.1.12)." (From 525 [RFC2578] section 7.1). 527 For each of the SYNTAX clause options this document specifies exactly 528 which mibObjectValue Information Element to use. 530 If a MIB object to be exported is a Textual Convention, the 531 definition of the Textual Convention must be consulted and the SYNTAX 532 clause used to determine the correct base type. This may recurse if 533 the Textual Convention is defined in terms of another Textual 534 Convention but this should end at a base type. 536 If the SYNTAX clause contains a Textual Convention or Subtyping the 537 mibObjectSyntax Information Element SHOULD be used to export this 538 detail to the Collecting Process. 540 The Options for the SYNTAX are then mapped as follows: 542 +-----------------+---------------------+---------------------------+ 543 | RFC2578 Section | SYNTAX | mibObjectValue IE | 544 +-----------------+---------------------+---------------------------+ 545 | 7.1.1 | INTEGER/Integer32 | mibObjectValueInteger | 546 | 7.1.2 | OCTET STRING | mibObjectValueOctetString | 547 | 7.1.3 | OBJECT IDENTIFIER | mibObjectValueOID | 548 | 7.1.4 | The BITS construct | mibObjectValueBits | 549 | 7.1.5 | IpAddress | mibObjectValueIPAddress | 550 | 7.1.6 | Counter32 | mibObjectValueCounter | 551 | 7.1.7 | Gauge32 | mibObjectValueGauge | 552 | 7.1.8 | TimeTicks | mibObjectValueTimeTicks | 553 | 7.1.9 | Opaque | mibObjectValueOctetString | 554 | 7.1.10 | Counter64 | mibObjectValueCounter | 555 | 7.1.11 | Unsigned32 | mibObjectValueUnsigned | 556 | 7.1.12 | SEQUENCE | mibObjectValueRow | 557 | 7.1.12 | SEQUENCE OF | mibObjectValueTable | 558 +-----------------+---------------------+---------------------------+ 560 Table 1: SMIv2 SYNTAX to mibObjectValue types 562 Values are encoded as per the standard IPFIX encoding of Abstract 563 Data Types. The only new encoding references in this document is 564 that Object Identifiers (OID) will be encoded as per ASN.1/BER [BER] 565 in an octetArray. 567 The mibObjectValue and mibObjectIdentifier Information Elements are 568 standard IPFIX fields. Therefore the E bit of the mibObjectValue or 569 mibObjectIdentifier Information Elements is set to "0". 571 The MIB object being exported may be defined in an enterprise- 572 specific MIB module but the Information Elements defined in this 573 standard are still exported with the E bit set to "0". The OID 574 exported encodes that the MIB object was defined in a enterprise- 575 specific MIB Module. 577 5.3. MIB Field Options - Specifications and Required Fields 579 For each mibObjectValue Information Element that is defined in an 580 IPFIX Template, a MIB Field Options Data Record will be exported that 581 provides the required minimum information to define the MIB object 582 that is being exported (see Section 5.3.1). 584 The MIB Field Options Data Records are defined in a template referred 585 to in this document as a MIB Field Options Template with the format 586 specified in Section 5.4. 588 The MIB Field Options Template and MIB Field Options Data Records 589 MUST be exported in the same IPFIX Message as any Template that is 590 using a mibObjectValue Information Element. Note that this places an 591 implicit size constraint on the export. 593 This whole set of Templates and MIB Field Options Data Records MUST 594 all be exported prior to the corresponding Data Records which depend 595 upon them. i.e. the export order MUST be: 597 1. Data Template for mibObjectValue Information Elements 599 2. MIB Field Options Template 601 3. MIB Field Options Data Records 603 4. MIB Object Value Data Records 605 Note that the ID of an identical MIB Field Options Template which has 606 already been exported MAY be reused without exporting the Template 607 again. 609 5.3.1. MIB Field Options Template 611 Three fields are REQUIRED to unambiguously export a standalone 612 mibObjectValue Information Element with a MIB Field Options Template: 614 o (scope) templateId [IANA-IPFIX] 616 o (scope) informationElementIndex [IANA-IPFIX] 618 o mibObjectIdentifier (Section 11.2.2.1) or mibSubIdentifier 619 (Section 11.2.2.2) 621 These are the minimum fields required in a MIB Field Options Template 622 (see Section 5.4.2). 624 The mibObjectIdentifier is used to provide the OID for all 625 mibObjectValue Information Elements exported except for when when 626 Structured Data is being used to export a conceptual row (see 627 Section 5.8.2). 629 While the following are optional, they are nevertheless RECOMMENDED 630 in certain circumstances as described in the references sections: 632 o mibCaptureTimeSemantics (Section 11.2.2.4) (see Section 5.4.5) 634 o mibIndexIndicator (Section 11.2.2.3) (see Section 5.8.5) 636 o mibContextEngineID (Section 11.2.2.5) (see Section 5.6) 638 o mibContextName (Section 11.2.2.6) (see Section 5.6) 640 5.3.2. MIB Type Options Template 642 There are also fields that provide type information from a MIB object 643 definition that MAY be exported to a Collecting Process. 645 Type information is statically defined in a MIB module; it is not 646 expected to change. However, the additional information about the 647 MIB object may help a Collecting Process that does not have access to 648 the MIB module. 650 To export a MIB Type Options Template, the mibObjectIdentifier is 651 RECOMMENDED as a scope field so that it matches the MIB Field Options 652 Template. Any combination of the other MIB Type fields may be 653 included. 655 o (scope) mibObjectIdentifier (see Section 11.2.2.1) 656 o mibObjectName (see Section 11.2.3.1) 658 o mibObjectDescription (see Section 11.2.3.2) 660 o mibObjectSyntax (see Section 11.2.3.3) 662 o mibModuleName (see Section 11.2.3.4) 664 5.4. MIB Field Options Template Formats 666 5.4.1. Data Template containing a mibObject Field 668 The Template Record format of a Template that uses a mibObjectValue 669 Information Element is identical to the standard IPFIX format as 670 defined in [RFC7011], so a field using a mibObjectValue Information 671 Element is specified using standard IPFIX Field Specifiers as in 672 [RFC7011]. 674 The only extra requirement on a Template Record using mibObjectValue 675 Information Element is that it MUST export the required metadata 676 specified for EACH mibObjectValue Information Element (see 677 Section 5.3.1). 679 If Multiple MIB Field Options Data Records that refer to a 680 mibObjectValue are received the latest MUST be used. This matches 681 the expected behavior of IPFIX Templates. 683 There is a one to one mapping between each mibObjectValue Information 684 Element and a MIB Field Options Data Record. 686 A MIB Field Options Template and corresponding Data Record MUST be 687 exported to provide the minimum required metadata. 689 Figure 4 shows an IPFIX Template Set using a mibObjectValue 690 Information Element. 692 0 1 2 3 693 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 694 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 695 | Set ID = 2 | Length | 696 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 697 | Template ID | Field Count = 2 | 698 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 699 |0| IE = Existing IPFIX Field | Field Length | 700 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 701 |0| IE = | Field Length (MIB) | 702 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 704 Figure 4: IPFIX Template Set using mibObjectValue Information Element 706 Where: 708 710 One of the mibObjectValue IPFIX Information Elements that 711 denotes that a MIB object data (i.e, the value of a MIB object) 712 will be exported in the (Options) Template Record. 714 This could be any one of the mibObjectValue Information 715 Elements defined in Section 11.2.1: mibObjectValueInteger, 716 mibObjectValueOctetString, mibObjectValueOID, 717 mibObjectValueIPAddress, mibObjectValueBITS, 718 mibObjectValueCounter, mibObjectValueGauge, 719 mibObjectValueTimeTicks, mibObjectValueUnsigned, 720 mibObjectValueTable, and mibObjectValueRow. 722 When a mibObjectValue Information Element is used, the MIB 723 Object Identifier ("mibObjectIdentifier") MUST be exported via 724 a MIB Field Options or by other means. See Section 5.3.1. 726 Field Length (MIB) 728 The length of the encoded MIB object data in the corresponding 729 Data Records, in octets. The definition is as [RFC7011]. Note 730 that the Field Length can be expressed using reduced size 731 encoding per [RFC7011]. Note that the Field Length may be 732 encoded using variable-length encoding per [RFC7011]. 734 5.4.2. MIB Field Options Template 736 The MIB Field Options Template is a Standard Options Template which 737 defines the Fields that will be exported to provide enough metadata 738 about a mibObjectValue Information Element so that the Collector can 739 tie the data values in the mibObjectValue Information Element back to 740 the definition of the MIB object. 742 All MIB Field Options Templates contain the fields as specified in 743 Section 5.3.1. 745 Figure 5 shows the required fields to export a mibObjectIdentifier 746 for the MIB Field Options Template format. 748 0 1 2 3 749 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 750 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 751 | Set ID = 3 | Length | 752 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 753 | Template ID | Field Count = 3 | 754 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 755 | Scope Field Count = 2 |0| IE = templateId | 756 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 757 | Field Length = 2 |0| IE = informationElementIndex| 758 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 759 | Field Length = 2 |0| IE = mibObjectIdentifier | 760 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 761 | Field Length = 65535 | 762 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 764 Figure 5: MIB Field Options Template Format - Required Fields 766 Where: 768 templateId 770 The first scope field is an IPFIX Information Element which 771 denotes that a Template Identifier will be exported as part of 772 the MIB Field Options Data Record. This Template Identifier 773 paired with an index into that template, the 774 "informationElementIndex" field, uniquely references one 775 mibObjectValue Information Element being exported. 777 informationElementIndex 779 The second scope field is an IPFIX Information Element which 780 denotes a zero based index into the fields defined by a 781 Template. When paired with a "templateId" the Record uniquely 782 references one mibObjectValue Information Element being 783 exported. 785 mibObjectIdentifier 786 An IPFIX Information Element which denotes the a MIB Object 787 Identifier for the mibObjectValue Information Element exported 788 in the (Options) Template Record. 790 When a MIB Object Value Information Element is used, the MIB 791 Object Identifier MUST be specified in the MIB Field Options 792 Template Record or specified by other means. 794 The Object Identifier is encoded in the IPFIX data record in 795 ASN.1/BER [BER] format. 797 Variable-length encoding SHOULD be used with the 798 mibObjectIdentifier so that multiple different length MIB OIDs 799 can be exported efficiently. This will also allow reuse of the 800 MIB Field Options Template. 802 5.4.3. MIB Field Options Data Records 804 The MIB Field Options Data Records conform to the Template 805 Specification in the MIB Field Options Template. There may be 806 multiple MIB Field Options Data Records exported. 808 The Collecting Process MUST store all received MIB Field Options Data 809 information for the duration of each Transport Session, because the 810 Collecting Process will need to refer to the extra meta information 811 to fully decode each mibObjectValue Information Element. 813 Figure 6 shows the format of the exported MIB Field Options Data 814 Record detailing the metadata that will be exported to match the 815 Template in Figure 5. 817 0 1 2 3 818 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 819 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 820 | Set ID | Length = N | 821 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 822 | templateId | informationElementIndex | 823 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 824 | VLEN | mibObjectIdentifier ... | 825 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 826 | ... mibObjectIdentifier continued ... | 827 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 828 | templateId | informationElementIndex | 829 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 830 | VLEN | mibObjectIdentifier ... | 831 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 832 | ... mibObjectIdentifier continued ... | 833 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 835 Figure 6: Format of MIB Field Options Data Record 837 5.4.4. Options Template containing a mibObject Field 839 The Options Template Record format of a Template that uses a 840 mibObjectValue Information Element is identical to the standard 841 format as defined in [RFC7011]. The mibObjectValue Information 842 Element is specified using standard Field Specifiers as in [RFC7011]. 844 A mibObjectValue Information Element can be a Scope Field or a Non 845 Scope Option Field. 847 The only extra requirement on a Options Template Record using 848 mibObjectValue Information Element is that it MUST export the 849 required metadata specified in Section 5.3.1 for EACH mibObjectValue 850 Information Element. 852 An IPFIX Options Template Record MUST export a MIB Field Options 853 Template and Data Record to provide the minimum required metadata for 854 each mibObjectValue Information Element. 856 Figure 7 shows an IPFIX Options Template Set using a Non Scope 857 mibObjectValueInteger IE, while Figure 8 shows an IPFIX Options 858 Template Set using a Scope mibObjectValueInteger IE. 860 0 1 2 3 861 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 862 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 863 | Set ID = 3 | Length | 864 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 865 | Template ID | Field Count = 2 | 866 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 867 | Scope Field Count = 1 |0| IE = Existing IPFIX Field | 868 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 869 | Field Length |0| IE = mibObjectValueInteger | 870 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 871 | Field Length | 872 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 874 Figure 7: IPFIX Options Template Set using a Non Scope 875 mibObjectValueInteger Field 877 0 1 2 3 878 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 879 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 880 | Set ID = 3 | Length | 881 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 882 | Template ID | Field Count = 2 | 883 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 884 | Scope Field Count = 1 |0| IE = mibObjectValueInteger | 885 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 886 | Field Length |0| IE = Existing IPFIX Field | 887 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 888 | Field Length | 889 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 891 Figure 8: IPFIX Options Template Set using a Scope 892 mibObjectValueInteger Field 894 5.4.5. MIB Field Options Template with Semantics Fields 896 A MIB Field Options Template MAY specify that extra Information 897 Elements will be exported to record how the mibObjectValue was 898 collected. 900 Alternatively, one of the existing IPFIX observationTime* elements 901 [IANA-IPFIX] may be exported to specify exactly when the value was 902 collected. 904 Figure 9 shows the MIB Field Options Template for a non-columnar 905 Field with Semantic Data. 907 0 1 2 3 908 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 909 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 910 | Set ID = 3 | Length | 911 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 912 | Template ID | Field Count = 4 | 913 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 914 | Scope Field Count = 2 |0| IE = templateId | 915 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 916 | Field Length = 2 |0| IE = informationElementIndex| 917 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 918 | Field Length = 2 |0| IE = mibObjectIdentifier | 919 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 920 | Field Length = 65535 |0| IE = mibCaptureTimeSemantics| 921 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 922 | Field Length = 1 | 923 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 925 Figure 9: MIB Field Options Template for a non-indexed Field with 926 Semantic Data 928 Where: 930 mibCaptureTimeSemantics 932 The MIB Capture Time Semantics IPFIX Information Element, as 933 defined in Section 11.2.2.4. 935 It is RECOMMENDED to include this field when exporting a 936 mibObjectValue Information Element that specifies counters or 937 statistics, in particular for situations with long lived Flows. 939 5.4.6. MIB Field Options Template with extra MIB Object Details 941 The OID exported within the mibObjectIdentifier IPFIX Information 942 Element provides a OID reference to a MIB object type definition that 943 will fully describe the MIB object data being Exported. 945 However an Exported Process MAY decide to include some extra fields 946 to more fully describe the MIB Object that is being exported with a 947 mibObjectValue Information Element. 949 This can be helpful if the Collecting Process may not have access to 950 the MIB module. 952 The exporting process can either include the extra object details 953 fields as part of the MIB Field Options Template, or export a 954 separate Options Template and Data that maps MIB OIDs in 955 mibObjectIdentifier Fields to the object details. 957 If only a few fields are being exported then including extra type 958 data in the MIB Field Options export will be more efficient. 960 The MIB Field Options Template for a non-indexed Field with extra MIB 961 object details is shown in Figure 10. 963 0 1 2 3 964 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 965 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 966 | Set ID = 3 | Length | 967 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 968 | Template ID | Field Count = 7 | 969 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 970 | Scope Field Count = 2 |0| IE = templateId | 971 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 972 | Field Length = 2 |0| IE = informationElementIndex| 973 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 974 | Field Length = 2 |0| IE = mibObjectIdentifier | 975 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 976 | Field Length = 65535 |0| IE = mibObjectSyntax | 977 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 978 | Field Length = 65535 |0| IE = mibObjectName | 979 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 980 | Field Length = 65535 |0| IE = mibObjectDescription | 981 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 982 | Field Length = 65535 |0| IE = mibModuleName | 983 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 984 | Field Length = 65535 | 985 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 987 Figure 10: MIB Field Options Template for a non-indexed Field with 988 extra MIB object details 990 Where: 992 mibObjectSyntax 994 The MIB object syntax string as defined in Section 11.2.3.3. 996 Note that a separate mibObjectSyntax Information Element is 997 required (rather than extend the existing 998 informationElementDataType registry [IANA-IPFIX]) because the 999 SYNTAX clause could contain almost any name. 1001 mibObjectName 1002 The textual name a mibObjectIdentifier Object. 1004 mibObjectDescription 1006 The textual description for a mibObjectIdentifier. 1008 mibModuleName 1010 The textual name of the MIB which defines a MIB OID Object. 1012 The MIB details can be exported as an standard IPFIX Option export 1013 [RFC7011] as shown in Figure 11. This may be more efficient as the 1014 bulk of this data is text based and SHOULD be exported only once to 1015 the Collecting Process if there are many MIB objects being exported. 1016 This prevents this large textual data being included for every use of 1017 a mibObjectValue Information Element. 1019 0 1 2 3 1020 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 1021 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1022 | Set ID = 3 | Length | 1023 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1024 | Template ID | Field Count = 5 | 1025 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1026 | Scope Field Count = 1 |0| IE = mibObjectIdentifier | 1027 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1028 | Field Length = 65535 |0| IE = mibObjectSyntax | 1029 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1030 | Field Length = 65535 |0| IE = mibObjectName | 1031 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1032 | Field Length = 65535 |0| IE = mibObjectDescription | 1033 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1034 | Field Length = 65535 |0| IE = mibModuleName | 1035 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1036 | Field Length = 65535 | 1037 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1039 Figure 11: Alternative mibObjectIdentifier Option Export with object 1040 details 1042 5.5. Use of field order in the MIB Field Option template 1044 The MIB Field Options Template export makes use of the 1045 informationElementIndex [IANA-IPFIX] to specify which field in the 1046 template that the metadata relates to, which avoids any ordering 1047 constraints on the data template. The mibObjectValue Information 1048 Elements in a IPFIX export can be in any order in the export packet. 1050 However, fields used as an INDEX MUST be in the same order as 1051 specified in the INDEX clause of the conceptual row MIB object. 1053 The informationElementIndex specifies which Field in the Template 1054 extra information is being provided for. 1056 This is analogous to standard IPFIX Template Sets which also specify 1057 the order of the fields and provide their type and size. 1059 If the template changes such that the order is different then the MIB 1060 Field Options data MUST be resent to reflect the new ordering. A new 1061 Template ID MUST be used to reflect that the ordering has changed. 1062 Older MIB Field Options Data may refer to the incorrect field. 1064 A templateId [IANA-IPFIX] is only locally unique within a combination 1065 of a Observation Domain and Transport session. As such each MIB 1066 Field Options Data Record can only refer to templateIds within the 1067 same Observation Domain and session. 1069 5.6. Identifying the SNMP Context 1071 Each MIB OID is looked up in a specific context, usually the default 1072 context. If exporting a MIB OID value that isn't in the default 1073 context then the context MUST be identified by including the 1074 mibContextEngineID (see Section 11.2.2.5) and mibContextName (see 1075 Section 11.2.2.6) fields in the MIB Field Options Template and 1076 associated MIB Field Options Data Records, or be included in the same 1077 template as the mibFieldValue Field. 1079 This context data MUST be included for each field that is not in the 1080 default context. 1082 The context information MAY be exported as part of the Template that 1083 includes the mibObjectValue Information Element or the context 1084 information MAY be exported in the MIB Field Options Data Record that 1085 refers to the field. Context fields exported in the same Template 1086 MUST take precedence over those that refer to the template. Context 1087 fields MUST apply to all mibObjectValue Information Elements in the 1088 same template and there MUST NOT be duplicates of mibContextName or 1089 mibContextEngineID in a Template. 1091 So a MIB Field Options Template MAY specify no Context information, 1092 just the Context Engine ID or both the context engine and context 1093 name. This allows the exporter to export the bulk of data in the 1094 default context and only tag those required. 1096 Since the MIB Field Options Template applies for all the records of a 1097 Template using Context Fields in the MIB Field Options Data Template 1098 requires that each mibContextEngineID / mibContextName pair have its 1099 own Template. 1101 5.7. Template Management 1103 Templates are managed as per section 8 of [RFC7011] with the 1104 additional constraint that the MIB Field Options Template and MIB 1105 Field Options Data Records MUST be exported in the same IPFIX Message 1106 as any (Option) Template Record that uses a mibObjectValue 1107 Information Element. 1109 When exporting over an SCTP transport [RFC4960], the MIB Field 1110 Options Data Records MUST be exported reliably and in the same SCTP 1111 stream as their associated Templates per [RFC6526]. 1113 If a Template using a mibObjectValue Information Element is resent 1114 for any reason the Records it depends on MUST be sent as well. 1116 If a Template is replaced with a new (Option) Template then a new MIB 1117 Field Options Data Record MUST be sent with the replacement 1118 referencing the new Template ID. 1120 An Exporting Process SHOULD reuse MIB Field Options Template IDs when 1121 the Templates are identical. Each (Option) Template Record MUST 1122 still be accompanied by a copy of the MIB Field Options Template. 1124 5.7.1. Large Messages 1126 The requirement to export the MIB Field Options Template and MIB 1127 Field Options Data Records in the same IPFIX Message as any (Option) 1128 Template Record that uses a mibObjectValue Information Element may 1129 result in very large IPFIX Messages. 1131 In environments with restricted Message sizes, and only when a 1132 reliable SCTP transport is being used, the MIB Field Options 1133 Template, MIB Field Options Data, Data Template, and Data Records, 1134 MAY be exported in separate Messages in the same SCTP stream, 1135 provided that their order is maintained. 1137 5.7.2. Template Withdrawal and Reuse 1139 Data Records containing mibObjectValue Information Elements MUST NOT 1140 be exported if their corresponding Data Template or MIB Field Options 1141 Template has been withdrawn, since the MIB Field Options Template 1142 MUST be exported in the same IPFIX Message as the Data Template which 1143 it annotates. 1145 MIB Field Options Template IDs MUST NOT be reused while they are 1146 required by any existing Data Templates. 1148 5.8. Exporting Conceptual Rows and Tables 1150 There are three approaches for an IPFIX exporting process to export 1151 the values of columnar objects: 1153 1. Ignoring the indexing of Columnar Objects 1155 2. Exporting conceptual rows/table objects using structured data 1157 3. Exporting individual indexed Columnar Objects 1159 Firstly, a subordinate columnar object may be used purely use as a 1160 data type. In this case there is no index information or relation to 1161 a conceptual row object provided by the exporting process. 1163 Secondly, mibObjectValueRow or mibObjectValueTable can be used to 1164 export partial or complete conceptual rows using [RFC6313] structured 1165 data. 1167 Thirdly, in a mixed option/data IPFIX/MIB template, the 1168 mibObjectValue Information Element can have the values of the INDEX 1169 clause of the conceptual row provided by other fields in the record. 1170 In this case each mibObjectValue Information Element must specify 1171 which other field(s) in the template is providing the index 1172 information 1174 5.8.1. Exporting Conceptual Rows - indexing 1176 This document defines two forms of indexing that can be used for 1177 conceptual row MIB objects. 1179 Structured Data based indexing is used solely by the 1180 mibObjectValueRow Information Element. Each conceptual row of the 1181 MIB object corresponds to a single Data Record exported. The index 1182 fields defined in the INDEX clause of the MIB object MUST all be 1183 present the same order as the Scope fields. This allows a simple 1184 table export of a conceptual row MIB object without any extra fields 1185 required to indicate which fields make up the conceptual row INDEX. 1187 Field based indexing is used by giving each mibObjectValue 1188 Information Element a mibIndexIndicator to flag the required index 1189 fields. This allows complex indexing or mixing of existing IPFIX 1190 Information Element with MIB Fields with minimum overhead. It also 1191 allows multiple Columnar MIB objects from different conceptual rows 1192 be exported with complete indexing in one IPFIX Template. 1194 5.8.2. Exporting Conceptual Rows - mibObjectValueRow 1196 The simplest approach to exporting a complete or partial conceptual 1197 row object is done with the mibObjectValueRow Information Element. 1199 This is a Structured Data subTemplateList Information Element. The 1200 template specified MUST be an Options Template. It also MUST have 1201 the fields specified in the INDEX clause of the conceptual row object 1202 as the Scope fields for the Option Export. 1204 An overview of this architecture is given in Figure 12. This shows 1205 that the full MIB object type definition OID is exported for the 1206 mibObjectValueRow conceptual row field but that the individual 1207 columnar objects only require the subIdentifier to be exported. To 1208 make the diagram clearer the Templates for the MIB Field Options 1209 Templates are not shown. 1211 +---------------------------+ +------------------------+ 1212 | Data Template | | MIB Field Options Data | 1213 | | | | 1214 | mibObjectValueRow |<---| OID | 1215 +---------------------------+ +------------------------+ 1216 | 1217 | +-----------------------+ +------------------------+ 1218 | | Options Template | | MIB Field Options Data | 1219 | | | | | 1220 | | Scope mibObjectValue* |<---| subIdentifiers | 1221 | | mibObjectValue* |<---| subIdentifiers | 1222 | +-----------------------+ +------------------------+ 1223 | | 1224 V V 1225 +---------------------------+ 1226 | Data Flows | 1227 | | 1228 | subTemplateList | 1229 +---------------------------+ 1231 Figure 12: Architecture for Exporting Conceptual Rows with 1232 mibObjectValueRow 1234 The mibIndexIndicator is not required for each individual 1235 mibObjectValue Information Element as mibObjectValueRow provides a 1236 structure that includes the index details. 1238 When Structured Data based indexing is used all scope fields MUST be 1239 the INDEX Objects in the same order as defined in the INDEX clause of 1240 the conceptual row being exported. 1242 The Full OID for the conceptual row MIB object type definition being 1243 exported with the mibObjectValueRow Information Element MUST be 1244 exported. However the fields that are members of the conceptual row 1245 need not have the full OID of their MIB object type definition 1246 exported. Instead the mibSubIdentifier Information Element can be 1247 used to document which entry in the conceptual row the Field is. 1249 In this case the export flow will contain a complete or partial row 1250 from a table inside a single field of the record. 1252 There may be MIB objects that are specified in the INDEX of the 1253 conceptual row but not columnar objects of the same conceptual row, 1254 for these the Exporter MUST provide the full OID in a 1255 mibObjectIdentifier field. 1257 So for a conceptual row object with the OID "1.2.3.4.5.6" the OID of 1258 the type definitions for columnar objects "1.2.3.4.5.6.1" 1259 "1.2.3.4.5.6.2" can be exported with just a subIdentifier of "1" and 1260 "2" respectively. 1262 The mibObjectValue Information Elements exported using the 1263 mibObjectValueRow export MUST all either be Objects defined in the 1264 INDEX clause, Columnar Objects of the same conceptual row object or 1265 Columnar Objects that AUGMENT the same conceptual row. 1267 Figure 13 shows an IPFIX Template for a Structured Data export of a 1268 conceptual row, while Figure 14 shows an IPFIX Options Template for a 1269 complete conceptual row with five columns and two INDEX fields. 1270 Figure 15 shows the MIB Field Options Template for a conceptual row 1271 field. Figure 16 shows the MIB Field Options Template for the 1272 columns inside the conceptual row. Figure 17 shows the OID data for 1273 the conceptual row would be exported. 1275 0 1 2 3 1276 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 1277 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1278 | Set ID = 2 | Length | 1279 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1280 | Template ID = 300 | Field Count = 1 | 1281 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1282 |0| IE = mibObjectValueRow | Field Length | 1283 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1285 Figure 13: IPFIX Template for a Conceptual Row 1287 0 1 2 3 1288 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 1289 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1290 | Set ID = 3 | Length | 1291 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1292 | Template ID = 301 | Field Count = 5 | 1293 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1294 | Scope Field Count = 2 |0| IE = mibObjectValue INDEX1 | 1295 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1296 | Field Length |0| IE = mibObjectValue INDEX2 | 1297 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1298 | Field Length |0| IE = mibObjectValue COLUM3 | 1299 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1300 | Field Length |0| IE = mibObjectValue COLUM4 | 1301 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1302 | Field Length |0| IE = mibObjectValue COLUM5 | 1303 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1304 | Field Length | 1305 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1307 Figure 14: IPFIX Options Template for a mibObjectValueRow with 5 1308 columns and 2 INDEX fields 1310 0 1 2 3 1311 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 1312 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1313 | Set ID = 3 | Length | 1314 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1315 | Template ID = 302 | Field Count = 3 | 1316 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1317 | Scope Field Count = 2 |0| IE = templateId | 1318 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1319 | Field Length = 2 |0| IE = informationElementIndex| 1320 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1321 | Field Length = 2 |0| IE = mibObjectIdentifier | 1322 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1323 | Field Length = 65535 | 1324 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1326 Figure 15: MIB Field Options Template for a Conceptual Row Object 1328 Where: 1330 templateId 1332 The templateId for the MIB Option that will be exported. 1334 mibObjectIdentifier 1335 The MIB OID for the Conceptual Row that is being exported. 1337 0 1 2 3 1338 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 1339 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1340 | Set ID = 3 | Length | 1341 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1342 | Template ID = 303 | Field Count = 3 | 1343 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1344 | Scope Field Count = 2 |0| IE = templateId | 1345 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1346 | Field Length = 2 |0| IE = informationElementIndex| 1347 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1348 | Field Length = 2 |0| IE = mibSubIdentifier | 1349 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1350 | Field Length = 2 | 1351 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1353 Figure 16: MIB Field Options Template for Columnar Objects of a 1354 Conceptual Table 1356 Where: 1358 templateId 1360 The templateId used will be for the Template referred to in the 1361 subTemplateList of the mibObjectValueRow that will be exported. 1363 mibSubIdentifier 1365 The sub identifier that specifies the columnar object's ID 1366 within the conceptual row. 1368 0 1 2 3 1369 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 1370 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1371 | Set ID = 302 | Length = N | 1372 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1373 | templateId = 300 | informationElementIndex | 1374 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1375 | VLEN | mibObjectIdentifier ... | 1376 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1377 | ... mibObjectIdentifier continued ... | 1378 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1380 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1381 |Set ID=303 | Length = N | 1382 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1383 | templateId = 301 | informationElementIndex | 1384 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1385 | mibSubIdentifier | templateId = 301 | 1386 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1387 | informationElementIndex | mibSubIdentifier | 1388 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1389 | templateId = 301 | informationElementIndex | 1390 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1391 | mibSubIdentifier | templateId = 301 | 1392 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1393 | informationElementIndex | mibSubIdentifier | 1394 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1395 | templateId = 301 | informationElementIndex | 1396 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1397 | mibSubIdentifier | 1398 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1400 Figure 17: mibOption Data Record for the conceptual row 1402 Where: 1404 mibObjectIdentifier 1406 Will contain the OID for the conceptual row as a whole. 1408 mibSubIdentifier 1410 The mibSubIdentifier fields will contain the extra Sub 1411 Identifier that when added to the OID for the conceptual row 1412 give the full OID for the Object. 1414 5.8.3. Exporting Conceptual Rows - Augments 1416 SMIv2 defines conceptual rows as either having an INDEX clause or an 1417 AUGMENTS clause. Conceptual row definitions with an AUGMENTS clause 1418 extend an existing base conceptual row with an INDEX clause. It is 1419 not defined as possible in SMIv2 to AUGMENT a conceptual row that 1420 itself has an AUGMENTS clause. The base table and the augmentation 1421 have an identical INDEX. 1423 Since augmentations allow adding extra columns to existing tables it 1424 is beneficial to be able to support them easily in IPFIX exports of 1425 conceptual rows. 1427 The mibObjectValueRow OID MAY refer either to the base table with the 1428 INDEX clause, or to a conceptual row with an AUGMENTS clause. The 1429 subIdentifiers in any MIB Field Options Data Record MUST always refer 1430 to the OID exported for the mibObjectValueRow IE. 1432 If the mibObjectValueRow OID refers to a base table then any extra 1433 columns from conceptual rows with an AUGMENTS clause MUST have their 1434 full OID exported. 1436 If the mibObjectValueRow OID refers to a conceptual row that augments 1437 another conceptual row using the AUGMENTS clause then any MIB fields 1438 from the original table's INDEX or Columnar Objects MUST NOT use the 1439 mibSubIdentifier and MUST instead export the full OID in a 1440 mibObjectIdentifier. 1442 If the mibObjectValueRow refers to an AUGMENTS conceptual row the 1443 scope fields of the Template using in the subTemplateList MUST have 1444 the INDEX fields from the base table, in the same order as its scope. 1445 This is identical to the Scope field requirements for conceptual rows 1446 with an INDEX clause. 1448 This flexibility is provided so that the conceptual rows with the 1449 most columns can be exported using the more efficient 1450 mibSubIdentifier. For example exporting a complete set of 1451 augmentation columns would only require the full OIDs for the MIB 1452 objects in the INDEX. 1454 It is possible to export MIB object columns from multiple AUGMENTS 1455 conceptual rows. If this is done then the base table SHOULD be used 1456 as the main OID for the mibObjectValueRow. 1458 5.8.4. Exporting Conceptual Tables - mibObjectValueTable 1460 A list of mibObjectValueRow Information Element can be exported in 1461 the mibObjectValueTable Information Element (Section 11.2.1.10). 1462 This allows a set of conceptual rows corresponding to a conceptual 1463 table to be exported as a single field. This allows a complete set 1464 of rows to be used as a single entry with other information elements 1465 in a Template. 1467 The contents of a mibObjectValueTable MUST be mibObjectValueRow 1468 entries that all refer to the same MIB conceptual table. 1470 The complete OID for the conceptual table MUST be exported for any 1471 mibObjectValueTable Information Element. The complete OID for the 1472 contained mibObjectValueRow MUST also be exported. 1474 Each individual mibObjectValueRow includes in the 1475 mibObjectValueTable MUST follow the requirements in Section 5.8.2. 1477 5.8.5. Exporting Columnar Objects - using mibIndexIndicator 1479 The other option for indexing a Columnar Object that is part of a 1480 conceptual table is explicit indexing. In this case there may be non 1481 index fields in the scope of the option export or there may be 1482 columnar MIB objects from multiple conceptual rows being exported. 1483 In this case each mibObjectValue Information Element requires the 1484 mibIndexIndicator with the bits set for the fields that are used to 1485 index that individual columnar object. 1487 The index fields MUST be in the 'correct' order as defined in the 1488 conceptual row that each columnar object is a member of. 1490 If a mibObjectValue Information Element that is being indexed using 1491 mibIndexIndicator is being used as an Options Template scope field, 1492 then all fields used to index that field MUST also be scope fields. 1494 Figure 18 shows the MIB Field Options Template for an indexed MIB 1495 Columnar Object. 1497 0 1 2 3 1498 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 1499 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1500 | Set ID = 3 | Length | 1501 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1502 | Template ID | Field Count = 4 | 1503 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1504 | Scope Field Count = 2 |0| IE = templateId | 1505 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1506 | Field Length = 2 |0| IE = informationElementIndex| 1507 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1508 | Field Length = 2 |0| IE = mibIndexIndicator | 1509 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1510 | Field Length = 2 |0| IE = mibObjectIdentifier | 1511 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1512 | Field Length = 65535 | 1513 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1515 Figure 18: MIB Field Options Template for an indexed MIB Columnar 1516 Object 1518 Where: 1520 mibIndexIndicator 1522 The MIB Index Indicator IPFIX Information Element which marks 1523 which fields in the record will act as INDEX values for the 1524 exported MIB object. 1526 The index data for a mibObjectValue will be other fields 1527 contained in the same Data Record. The mibIndexIndicator marks 1528 the Fields whose value(s) should be added to the OID for the 1529 MIB object type definition exported in mibObjectIdentifier to 1530 get the OID for the instance of the MIB object. 1532 Elements used to index MIB objects MUST be exported in the same 1533 order as they are specified in the INDEX field of the 1534 conceptual table they belong to. 1536 6. Example Use Cases 1538 6.1. Non Columnar MIB Object: Established TCP Connections 1540 The number of established TCP connections of a remote network device 1541 could be monitored by configuring it to periodically export the 1542 number of established TCP connections to a centralized Collector. In 1543 this example, the Exporter would export an IPFIX Message every 30 1544 minutes that contained Data Records detailing the number of 1545 established TCP connections. 1547 The table of data that is to be exported looks like: 1549 +-------------------------+-----------------------+ 1550 | TIMESTAMP | ESTABLISHED TCP CONN. | 1551 +-------------------------+-----------------------+ 1552 | StartTime + 0 seconds | 10 | 1553 | StartTime + 60 seconds | 14 | 1554 | StartTime + 120 seconds | 19 | 1555 | StartTime + 180 seconds | 16 | 1556 | StartTime + 240 seconds | 23 | 1557 | StartTime + 300 seconds | 29 | 1558 +-------------------------+-----------------------+ 1560 Table 2: Established TCP Connections 1562 The Template Record for such a Data Record will detail two 1563 Information Elements: 1565 1. flowStartSeconds from [IANA-IPFIX], Information Element 150: The 1566 absolute timestamp of the first packet of this Flow. 1568 2. tcpCurrEstab from [RFC4022], Object ID "1.3.6.1.2.1.6.9": The 1569 number of TCP connections for which the current state is either 1570 ESTABLISHED or CLOSE-WAIT. 1572 Figure 19 shows the exported Template Set detailing the Template 1573 Record for exporting the number of established TCP connections. 1575 0 1 2 3 1576 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 1577 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1578 | Set ID = 2 | Length = 16 | 1579 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1580 | Template ID = 400 | Field Count = 2 | 1581 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1582 |0| IE = flowStartSeconds | Field Length = 4 | 1583 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1584 |0| IE = mibObjectValueGauge | Field Length = 4 | 1585 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1587 Figure 19: Example of tcpCurrEstab Template Set 1589 Figure 20 shows the exported MIB Field Options Template Set detailing 1590 the metadata that will be exported about the mibObjectValueGauge 1591 Information Element in Template 400 in Template Record. 1593 0 1 2 3 1594 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 1595 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1596 | Set ID = 3 | Length = 26 | 1597 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1598 | Template ID = 401 | Field Count = 3 | 1599 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1600 | Scope Field Count = 2 |0| IE = templateId | 1601 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1602 | Field Length = 2 |0| IE = informationElementIndex| 1603 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1604 | Field Length = 2 |0| IE = mibObjectIdentifier | 1605 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1606 | Field Length = 65535 | 1607 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1609 Figure 20: Example of tcpCurrEstab MIB Field Options Template Set 1611 Figure 21 shows the exported MIB Field Options Data Set detailing the 1612 metadata that will be exported about the mibObjectValueGauge 1613 Information Element in Template 400 in Template Record. 1615 The OID for the MIB object tcpCurrEstab from [RFC4022], Object ID 1616 "1.3.6.1.2.1.6.9", will be encoded in ASN.1/BER [BER] as 1617 '06072b060102010609' in the data record. This will take nine bytes. 1619 0 1 2 3 1620 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 1621 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1622 | Set ID = 401 | Length = 25 | 1623 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1624 | templateId = 400 | informationElementIndex = 1 | 1625 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1626 | VLEN=9 | mibObjectIdentifier | 1627 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1628 | ... mibObjectIdentifier = "1.3.6.1.2.1.6.9" | 1629 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1630 | ... MIB Object Identifier | 1631 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1633 Figure 21: Example of tcpCurrEstab MIB Field Options Data Set 1635 Figure 22 shows the start of the Data Set for exporting the number of 1636 established TCP connections (see Section 6.1). 1638 0 1 2 3 1639 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 1640 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1641 | Set ID = 400 | Length = 52 | 1642 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1643 | StartTime + 0 seconds | 1644 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1645 | 10 | 1646 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1647 | StartTime + 60 seconds | 1648 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1649 | 14 | 1650 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1651 | StartTime + 120 seconds | 1652 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1653 | 19 | 1654 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1655 | StartTime + 180 seconds | 1656 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1657 | 16 | 1658 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1659 | StartTime + 240 seconds | 1660 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1661 | 23 | 1662 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1663 | StartTime + 300 seconds | 1664 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1665 | 29 | 1666 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1668 Figure 22: Example of tcpCurrEstab Data Set 1670 6.2. Enterprise Specific MIB Object: Detailing CPU Load History 1672 For the sake of demonstrating a enterprise-specific MIB object from 1673 the CISCO-PROCESS_MIB ([CISCO-PROCESS-MIB]) is chosen. This example 1674 would be valid with any enterprise-specific MIB module. 1676 The CPU Usage of a remote network device with 1 CPU could be 1677 monitored by configuring it to periodically export CPU usage 1678 information, i.e. the cpmCPUTotal1minRev from the proprietary CISCO- 1679 PROCESS-MIB, Object ID "1.3.6.1.4.1.9.9.109.1.1.1.1.7", to a 1680 centralized Collector. 1682 Although the cpmCPUTotal1minRev MIB object is a columnar object in a 1683 conceptual row, while there is only 1 CPU no extra information is 1684 conveyed by providing the INDEX field. So in this case it is 1685 acceptable to not export the cpmCPUTotalIndex MIB object. If there 1686 were multiple CPUs it would be appropriate to include this the 1687 cpmCPUTotalIndex field and specify the relationship. 1689 In this example, the Exporter would export an IPFIX Message every 30 1690 minutes that contained Data Records detailing the CPU 1 minute busy 1691 average at 1 minute intervals. 1693 The table of data that is to be exported looks like: 1695 +-------------------------+---------------------+ 1696 | TIMESTAMP | CPU BUSY PERCENTAGE | 1697 +-------------------------+---------------------+ 1698 | StartTime + 0 seconds | 10% | 1699 | StartTime + 60 seconds | 14% | 1700 | StartTime + 120 seconds | 19% | 1701 | StartTime + 180 seconds | 16% | 1702 | StartTime + 240 seconds | 23% | 1703 | StartTime + 300 seconds | 29% | 1704 +-------------------------+---------------------+ 1706 Table 3: CPU Usage Data 1708 The Template Record for such a Data Record will detail two 1709 Information Elements: 1711 1. flowStartSeconds from [IANA-IPFIX], Information Element 150: The 1712 absolute timestamp of the first packet of this Flow. 1714 2. a mibObjectValueGauge for cpmCPUTotal1minRev, the overall CPU 1715 busy percentage in the last one-minute period 1717 Figure 23 shows the exported Template Set detailing the Template 1718 Record for exporting CPU Load (see Section 6.2). 1720 0 1 2 3 1721 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 1722 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1723 | Set ID = 2 | Length = 53 | 1724 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1725 | Template ID = 402 | Field Count = 2 | 1726 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1727 |0| IE = flowStartSeconds | Field Length = 4 | 1728 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1729 |0| IE = mibObjectValueGauge | Field Length = 1 | 1730 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1732 Figure 23: Example of CPU Load Template Set 1734 Figure 24 shows the exported Template Set detailing the MIB Field 1735 Options Template for exporting CPU Load (see Section 6.2). Note this 1736 is identical to the MIB Field Options Template given in Figure 20 so 1737 the same template could have been reused. 1739 0 1 2 3 1740 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1741 | Set ID = 3 | Length = 26 | 1742 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1743 | Template ID = 403 | Field Count = 3 | 1744 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1745 | Scope Field Count = 2 |0| IE = templateId | 1746 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1747 | Field Length = 2 |0| IE = informationElementIndex| 1748 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1749 | Field Length = 2 |0| IE = mibObjectIdentifier | 1750 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1751 | Field Length = 65535 | 1752 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1754 Figure 24: Example of CPU Load MIB Field Options Template Set 1756 Figure 25 shows the exported MIB Field Options Data Set detailing the 1757 metadata that will be exported about the mibObjectValueGauge 1758 Information Element in Template 402 in Template Record (see 1759 Section 6.2). 1761 The OID for the cpmCPUTotal1minRev has been encoded using ASN.1/BER 1762 to '060d2b0601040109096d0101010107' at 15 bytes long. 1764 0 1 2 3 1765 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 1766 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1767 | Set ID = 403 | Length = 40 | 1768 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1769 | templateId = 402 | informationElementIndex = 1 | 1770 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1771 | VLEN=15 | mibObjectIdentifier ... | 1772 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1773 | "1.3.6.1.4.1.9.9.109.1.1.1.1.7" ... | 1774 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1775 | 060d2b0601040109096d0101010107 ... | 1776 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1777 | ... | 1778 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1780 Figure 25: Example of CPULoad MIB Field Options Data Set 1782 Note that although cpmCPUTotal1minRev is 32 bits long, reduced size 1783 encoding [RFC7011] has been used to encoded it within a single octet. 1785 This example stresses that, even though the OID cpmCPUTotal1minRev is 1786 enterprise-specific, the E bit for the mibObjectValueGauge and 1787 mibObjectIdentifier is set to "0" since the "mibObjectValueGauge" and 1788 "mibObjectIdentifier" Information Element is not enterprise-specific. 1789 That this data is from an Enterprise MIB is included in the OID that 1790 includes an Enterprise ID. 1792 The corresponding Data Set does not add any value for this example, 1793 and is therefore not displayed. 1795 6.3. Exporting a Conceptual Row: The OSPF Neighbor Row 1797 Many conceptual tables are already defined in standard and 1798 proprietary MIBs. These can be exported with a minimum of overhead 1799 by using the mibObjectValueRow. This allows the Exporting Process to 1800 unambiguously define the INDEX for the entire conceptual row as the 1801 Scope fields of an Option Export. The use of a MIB Field Options 1802 Template with mibSubIdentifier being used means that each individual 1803 columnar object does not need to have its OID exported to the 1804 collector 1806 The ospfNbrTable defined in the OSPF MIB [RFC4750] consists of 1807 ospfNbrEntry, which has the OID "1.3.6.1.2.1.14.10.1". Each 1808 mibObjectValueRow data record will therefore correspond to an 1809 ospfNbrEntry. 1811 The following fields will be exported: 1813 +----------------------+------------+----------------------+--------+ 1814 | Object | ID | mibObjectValue | Length | 1815 | | | | in | 1816 | | | | bytes | 1817 +----------------------+------------+----------------------+--------+ 1818 | ospfNbrIpAddr | ospfNbrEnt | mibObjectValueIPAddr | 4 | 1819 | | ry 1 | ess | | 1820 | ospfNbrAddressLessIn | ospfNbrEnt | mibObjectValueIntege | 4 | 1821 | dex | ry 2 | r | | 1822 | ospfNbrRtrId | ospfNbrEnt | mibObjectValueIPAddr | 4 | 1823 | | ry 3 | ess | | 1824 | ospfNbrState | ospfNbrEnt | mibObjectValueIntege | 1 | 1825 | | ry 6 | r | | 1826 +----------------------+------------+----------------------+--------+ 1828 Table 4: OSPF Neighbor Entry Objects 1830 The OIDs that will be used to export this table are shown in Table 5. 1832 +-----------------------+----------------------+--------------------+ 1833 | Entity | Full OID | Exported as | 1834 +-----------------------+----------------------+--------------------+ 1835 | ospfNbrEntry | 1.3.6.1.2.1.14.10.1 | OID = 1.3.6.1.2.1. | 1836 | | | 14.10.1 | 1837 | ospfNbrIpAddr | 1.3.6.1.2.1.14.10.1. | subID = 1 | 1838 | | 1 | | 1839 | ospfNbrAddressLessInd | 1.3.6.1.2.1.14.10.1. | subID = 2 | 1840 | ex | 2 | | 1841 | ospfNbrRtrId | 1.3.6.1.2.1.14.10.1. | subID = 3 | 1842 | | 3 | | 1843 | ospfNbrState | 1.3.6.1.2.1.14.10.1. | subID = 6 | 1844 | | 6 | | 1845 +-----------------------+----------------------+--------------------+ 1847 Table 5: OSPF OIDs 1849 Figure 26 shows the Templates Exported to Support the 1850 mibObjectValueRow. Figure 27 shows the example OID Data for the 1851 conceptual row exported in mibObjectValueRow Figure 28 shows the 1852 example data export for a few neighbors in the table. 1854 0 1 2 3 1855 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 1856 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1857 | Set ID = 2 | Length = 12 | 1858 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1859 | Template ID = 500 | Field Count = 1 | 1860 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1861 |0| IE = mibObjectValueRow | Field Length = 16 | 1862 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1864 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1865 | Set ID = 3 | Length = 30 | 1866 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1867 | Template ID = 501 | Field Count = 4 | 1868 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1869 | Scope Field Count = 2 |0| IE = mibObjectValueIPAddress| 1870 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1871 | Field Length = 4 |0| IE = mibObjectValueInteger | 1872 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1873 | Field Length = 4 |0| IE = mibObjectValueIPAddress| 1874 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1875 | Field Length = 4 |0| IE = mibObjectValueInteger | 1876 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1877 | Field Length = 1 | 1878 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1880 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1881 | Set ID = 3 | 1882 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1883 | Length = 22 | Template ID = 502 | 1884 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1885 | Field Count = 3 | Scope Field Count = 2 | 1886 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1887 |0| IE = templateId | Field Length = 2 | 1888 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1889 |0| IE = informationElementIndex| Field Length = 2 | 1890 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1891 |0| IE = mibObjectIdentifier | Field Length = 65535 | 1892 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1894 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1895 | Set ID = 3 | Length = 22 | 1896 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1897 | Template ID = 503 | Field Count = 3 | 1898 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1899 | Scope Field Count = 2 |0| IE = templateId | 1900 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1901 | Field Length = 2 |0| IE = informationElementIndex| 1902 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1903 | Field Length = 2 |0| IE = mibSubIdentifier | 1904 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1905 | Field Length = 2 | 1906 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1908 Figure 26: Example of ospfNbrEntry Template and Options Template Sets 1909 0 1 2 3 1910 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 1911 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1912 | Set ID = 502 | Length = 20 | 1913 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1914 | templateId = 500 | informationElementIndex = 0 | 1915 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1916 | VLEN=10 | mibObjectIdentifier = "1.3.6.1.2.1.14.10.1" | 1917 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1918 | 06082B060102010E0A01 | 1919 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1920 | | Padding = 0 | 1921 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1923 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1924 | Set ID = 503 | Length = 28 | 1925 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1926 | templateId = 501 | informationElementIndex = 0 | 1927 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1928 | mibSubIdentifier = 1 | templateId = 501 | 1929 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1930 | informationElementIndex = 1 | mibSubIdentifier = 2 | 1931 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1932 | templateId = 501 | informationElementIndex = 2 | 1933 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1934 | mibSubIdentifier = 3 | templateId = 501 | 1935 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1936 | informationElementIndex = 3 | mibSubIdentifier = 6 | 1937 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1939 Figure 27: Example of ospfNbrEntry OID Data export 1941 0 1 2 3 1942 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 1943 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1944 | Set ID = 500 | Length = 52 | 1945 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1946 |Semantic=FF | Template ID = 501 | ... | 1947 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1948 | ospfNbrIpAddr = 192.0.2.1 | ... | 1949 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1950 | ospfNbrAddressLessIndex = 0 | ... | 1951 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1952 | ospfNbrRtrId = 1.1.1.1 |ospfNbrState=8 | 1953 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1954 |Semantic=FF | Template ID = 501 | ... | 1955 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1956 | ospfNbrIpAddr = 192.0.2.2 | ... | 1957 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1958 | ospfNbrAddressLessIndex = 0 | ... | 1959 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1960 | ospfNbrRtrId = 2.2.2.2 |ospfNbrState=8 | 1961 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1962 |Semantic=FF | Template ID = 501 | ... | 1963 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1964 | ospfNbrIpAddr = 192.0.2.3 | ... | 1965 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1966 | ospfNbrAddressLessIndex = 0 | ... | 1967 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1968 | ospfNbrRtrId = 3.3.3.3 |ospfNbrState=1 | 1969 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1971 Figure 28: Example of Data Export for ospfNbrEntry 1973 6.4. Exporting Augmented Conceptual Row: The IF-MIB id to name mapping 1975 The ifTable defined in the [RFC2863] is augmented by the 1976 ifXTable (defined in the same MIB module). 1978 The OID of the ifEntry is 1.3.6.1.2.1.2.2.1 while the OID of the 1979 augmenting ifXEntry is 1.3.6.1.2.1.31.1.1.1. 1981 This example demonstrates how columnar objects from the base 1982 conceptual row and the augmenting row can be exported in a single 1983 mibObjectValueRow Information Element. 1985 Table 6 shows the fields which will be exported. 1987 +---------+------------------+-------+-------------------+ 1988 | ifIndex | ifType | ifMTU | ifName | 1989 +---------+------------------+-------+-------------------+ 1990 | 1 | ethernetCsmacd:6 | 1500 | Ethernet 0/0 | 1991 | 2 | ethernetCsmacd:6 | 1500 | Ethernet 0/1 | 1992 | 3 | ethernetCsmacd:6 | 1500 | FastEthernet 1/0 | 1993 +---------+------------------+-------+-------------------+ 1995 Table 6: IF-MIB Data 1997 The OIDs that will be used to export this table are shown in Table 7. 1999 +---------+------------------------+--------------------------------+ 2000 | Entity | Full OID | Exported as | 2001 +---------+------------------------+--------------------------------+ 2002 | ifEntry | 1.3.6.1.2.1.2.2.1 | OID = 1.3.6.1.2.1.2.2.1 | 2003 | ifIndex | 1.3.6.1.2.1.2.2.1.1 | subID = 1 | 2004 | ifType | 1.3.6.1.2.1.2.2.1.3 | subID = 3 | 2005 | ifMTU | 1.3.6.1.2.1.2.2.1.4 | subID = 4 | 2006 | ifName | 1.3.6.1.2.1.31.1.1.1.1 | OID = 1.3.6.1.2.1.31.1.1.1.1 | 2007 +---------+------------------------+--------------------------------+ 2009 Table 7: IF-MIB OIDs 2011 Figure 29 shows the Templates Exported to Support the 2012 mibObjectValueRow Information Element. Figure 30 shows the example 2013 OID Data for the conceptual row exported in mibObjectValueRow to 2014 match Table 7. Figure 31 shows the example data export as per 2015 Table 6. 2017 0 1 2 3 2018 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 2019 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2020 | Set ID = 2 | Length = 12 | 2021 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2022 | Template ID = 600 | Field Count = 1 | 2023 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2024 |0| IE = mibObjectValueRow | Field Length = 24 | 2025 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2027 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2028 | Set ID = 3 | Length = 25 | 2029 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2030 | Template ID = 601 | Field Count = 4 | 2031 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2032 | Scope Field Count = 1 |0| IE = mibObjectValueInteger | 2033 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2034 | Field Length = 1 |0| IE = mibObjectValueInteger | 2035 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2036 | Field Length = 2 |0| IE = mibObjectValueInteger | 2037 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2038 | Field Length = 2 |0|IE =mibObjectValueOctetString| 2039 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2040 | Field Length = 16 | 2041 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2043 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2044 | Set ID = 3 | 2045 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2046 | Length = 22 | Template ID = 602 | 2047 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2048 | Field Count = 3 | Scope Field Count = 2 | 2049 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2050 |0| IE = templateId | Field Length = 2 | 2051 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2052 |0| IE = informationElementIndex| Field Length = 2 | 2053 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2054 |0| IE = mibObjectIdentifier | Field Length = 65535 | 2055 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2057 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2058 | Set ID = 3 | Length = 22 | 2059 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2060 | Template ID = 603 | Field Count = 3 | 2061 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2062 | Scope Field Count = 2 |0| IE = templateId | 2063 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2064 | Field Length = 2 |0| IE = informationElementIndex| 2065 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2066 | Field Length = 2 |0| IE = mibSubIdentifier | 2067 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2068 | Field Length = 2 | 2069 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2071 Figure 29: Example of Augmented ifEntry Template and Options Template 2072 Sets 2074 0 1 2 3 2075 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 2076 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2077 | Set ID = 602 | Length = 62 | 2078 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2079 | templateId = 600 | informationElementIndex = 0 | 2080 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2081 | VLEN=10 | mibObjectIdentifier ... | 2082 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2083 | ifEntry = 1.3.6.1.2.1.2.2.1 | 2084 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2085 | 06082B06010201020201 | Padding = 0 | 2086 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2087 | templateId = 601 | informationElementIndex = 3 | 2088 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2089 | VLEN=12 | mibObjectIdentifier ifName = "" | 2090 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2091 | ifName = 1.3.6.1.2.1.31.1.1.1.1 | 2092 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2093 | 060a2b060102011f01010101 | 2094 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2095 | | Padding = 0 | 2096 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2098 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2099 | Set ID = 603 | Length = 28 | 2100 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2101 | templateId = 601 | informationElementIndex = 0 | 2102 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2103 | mibSubIdentifier = 1 | templateId = 601 | 2104 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2105 | informationElementIndex = 1 | mibSubIdentifier = 3 | 2106 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2107 | templateId = 601 | informationElementIndex = 2 | 2108 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2109 | mibSubIdentifier = 4 | 2110 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2112 Figure 30: Example of Augmented ifEntry OID Data export 2114 0 1 2 3 2115 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 2116 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2117 | Set ID = 600 | Length = 76 | 2118 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2119 |Semantic=FF | Template ID = 601 | ifIndex = 1 | 2120 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2121 | ifType = 6 | ifMTU = 1500 | 2122 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2123 | ifName = Ethernet 0/0 | 2124 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2125 | ... | 2126 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2127 | ... | 2128 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2129 | ... | 2130 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2131 |Semantic=FF | Template ID = 601 | ifIndex = 2 | 2132 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2133 | ifType = 6 | ifMTU = 1500 | 2134 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2135 | ifName = Ethernet 0/1 | 2136 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2137 | ... | 2138 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2139 | ... | 2140 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2141 | ... | 2142 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2143 |Semantic=FF | Template ID = 601 | ifIndex = 3 | 2144 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2145 | ifType = 6 | ifMTU = 1500 | 2146 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2147 | ifName = FastEthernet 1/0 | 2148 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2149 | ... | 2150 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2151 | ... | 2152 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2153 | ... | 2154 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2156 Figure 31: Example of Data Export for Augmented ifEntry 2158 6.5. Exporting a Columnar Object: The ipIfStatsInForwDatagrams 2160 It may be that the full set of columnar objects that are supported by 2161 a conceptual row are not required to be exported. Rather than use 2162 the Structured Data method the mibIndexIndicator method can be used 2163 to provide the relation between fields. 2165 This example shows the MIB Objects that are part of the INDEX of the 2166 conceptual row being exported in the correct order and then being 2167 referred to by using mibIndexIndicator. 2169 This example shows the export of ipIfStatsInForwDatagrams from the 2170 IP-MIB [RFC4293]. ipIfStatsInForwDatagrams is a columnar object that 2171 is part of the conceptual table ipIfStatsTable. This is comprised of 2172 ipIfStatsEntry conceptual rows. 2174 The ipIfStatsTable conceptual table is indexed by the 2175 ipIfStatsIPVersion and ipIfStatsIfIndex. 2177 The Options Template Record for the example Data Record contains the 2178 following Information Elements: 2180 1. ipIfStatsIPVersion (1.3.6.1.2.1.4.31.3.1.1) (scope field) 2182 2. ipIfStatsIfIndex (1.3.6.1.2.1.4.31.3.1.2) (scope field) 2184 3. ipIfStatsInForwDatagrams (1.3.6.1.2.1.4.31.3.1.12) (non-scope 2185 field) 2187 Note ipIfStatsIfIndex has been reduce length encoded to 2 bytes in 2188 the following example. An exporting device with more interfaces 2189 would use the full length. 2191 Figure 32 shows the exported Options Template Set. 2193 0 1 2 3 2194 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 2195 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2196 | Set ID = 3 | Length = 22 | 2197 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2198 | Template ID = 701 | Field Count = 3 | 2199 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2200 | Scope Field Count = 2 |0|Scope 1=mibObjectValueInteger| 2201 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2202 | Scope Field 1 Length = 1 |0|Scope 2=mibObjectValueInteger| 2203 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2204 | Scope Field 1 Length = 2 |0| IE = mibObjectValueCounter | 2205 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2206 | Field Length = 4 | 2207 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2209 Figure 32: Example of an Options Template for an Indexed MIB Object 2210 with two indices. 2212 Figure 33 shows the exported MIB Field Options Template used to 2213 export the required mibObjectValue Information Element metadata. 2214 This example of the MIB Field Options Template includes the 2215 mibIndexIndicator to indicate that some of the other fields in the 2216 data records are indexes. 2218 0 1 2 3 2219 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 2220 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2221 | Set ID = 3 | Length = 34 | 2222 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2223 | Template ID = 702 | Field Count = 4 | 2224 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2225 | Scope Field Count = 2 |0| IE = templateId | 2226 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2227 | Field Length = 2 |0| IE = informationElementIndex| 2228 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2229 | Field Length = 2 |0| IE = mibIndexIndicator | 2230 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2231 | Field Length = 1 |0| IE = mibObjectIdentifier | 2232 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2233 | Field Length = 65535 | 2234 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2236 Figure 33: Example of an MIB Field Options Template for an Indexed 2237 MIB Object with two indices. 2239 Figure 34 shows the exported MIB Field Options Data used to export 2240 the required mibObjectValue Information Element metadata. Note that 2241 the first two Data Records have all their mibIndexIndicator bits set 2242 to 0. The third mibIndexIndicator has the value '11000000' to show 2243 that the first two fields in the record are the INDEX's for this 2244 columnar object. 2246 0 1 2 3 2247 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 2248 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2249 | Set ID = 702 | Length = 58 | 2250 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2251 | templateId = 701 | informationElementIndex = 0 | 2252 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2253 |Index 00000000 | VLEN = 12 | mibObjectIdentifier ... | 2254 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2255 | "1.3.6.1.2.1.4.31.3.1.1" ... | 2256 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2257 | 060A2B06010201041F030101 ... | 2258 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2259 | | templateId = 701 | 2260 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2261 | informationElementIndex = 1 |Index 00000000 | VLEN = 12 | 2262 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2263 | mibObjectIdentifier = "1.3.6.1.2.1.4.31.3.1.2" ... | 2264 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2265 | 060A2B06010201041F030102 ... | 2266 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2267 | ... | 2268 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2269 | templateId = 701 | informationElementIndex = 2 | 2270 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2271 | Index 11000000 | VLEN = 12 | mibObjectIdentifier ... | 2272 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2273 | "1.3.6.1.2.1.4.31.3.1.12" ... | 2274 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2275 | 060A2B06010201041F03010c ... | 2276 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2277 | | 2278 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2280 Figure 34: Example of an MIB Field Options Data Set for an Indexed 2281 MIB Object with two indices. 2283 Figure 35 shows the Data Records that export the values of the 3 2284 mibObjectValue Information Elements. 2286 0 1 2 3 2287 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 2288 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2289 | Set ID = 701 | Length = 18 | 2290 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2291 | ipVer = 1 | ifIndex = 10 | ... | 2292 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2293 | InForwDatagrams = 10000 | ipVer = 2 | 2294 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2295 | ifIndex = 10 | InForwDatagrams = 20000 | 2296 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2297 | ... | 2298 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2300 Figure 35: Example of an MIB Data Set for an Indexed MIB Object with 2301 two indices. 2303 6.6. Exporting a Columnar Object index by IEs: ifOutQLen 2305 If a PSAMP Packet Report [RFC5476] was generated on any dropped 2306 packets on an interface then it may be desirable to know if the send 2307 queue on the output interface was full. This could be done by 2308 exporting the size of the send queue (ifOutQLen) in the same Data 2309 Record as the PSAMP Packet Report. 2311 The exported data looks like: 2313 +-----------+-----------+--------+--------------+-------------------+ 2314 | SRC ADDR | DST ADDR | PAK | OUTPUT | OUTPUT Q. LEN | 2315 | | | LEN | INTERFACE | (ifOutQLen) | 2316 +-----------+-----------+--------+--------------+-------------------+ 2317 | 192.0.2.1 | 192.0.2.3 | 150 | Eth 1/0 (15) | 45 | 2318 | 192.0.2.4 | 192.0.2.9 | 350 | Eth 1/0 (15) | 45 | 2319 | 192.0.2.3 | 192.0.2.9 | 650 | Eth 1/0 (15) | 23 | 2320 | 192.0.2.4 | 192.0.2.6 | 350 | Eth 1/1 (16) | 0 | 2321 +-----------+-----------+--------+--------------+-------------------+ 2323 Table 8: Packet Report with Interface Output Queue Length (ifOutQLen) 2324 Data 2326 The ifOutQLen MIB object defined in the IF-MIB [RFC2863] provides the 2327 length of the output packet queue. This columnar object is part of 2328 the ifEntry conceptual row and indexed by the interface index 2329 (ifIndex). 2331 This relationship between the ifOutQLen field and the index field is 2332 exported using mibIndexIndicator in the MIB Field Options Template. 2333 The value of "00010000" flags the index fields concisely. 2335 The Template Record for the example Data Record contains the 2336 following Information Elements: 2338 1. sourceIPv4Address 2340 2. destinationIPv4Address 2342 3. totalLengthIPv4 2344 4. egressInterface 2346 5. ifOutQLen indexed by: egressInterface 2348 Figure 36 shows the exported Template Set detailing the Template for 2349 exporting a PSAMP Report with Interface Output Queue Length 2350 (ifOutQLen). Figure 37 and Figure 38 show the MIB Field Options 2351 Template and Data Record. 2353 0 1 2 3 2354 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 2355 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2356 | Set ID = 2 | Length = 63 | 2357 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2358 | Template ID = 703 | Field Count = 5 | 2359 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2360 |0| IE = sourceIPv4Address | Field Length = 4 | 2361 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2362 |0| IE = destinationIPv4Address | Field Length = 4 | 2363 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2364 |0| IE = totalLengthIPv4 | Field Length = 4 | 2365 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2366 |0| IE = egressInterface | Field Length = 4 | 2367 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2368 |0| IE = mibObjectValueGauge | Field Length = 4 | 2369 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2371 Figure 36: Example of Template for a PSAMP Report with ifOutQLen 2372 indexed by egressInterface 2374 0 1 2 3 2375 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 2376 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2377 | Set ID = 3 | Length = 34 | 2378 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2379 | Template ID = 704 | Field Count = 4 | 2380 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2381 | Scope Field Count = 2 |0| IE = templateId | 2382 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2383 | Field Length = 2 |0| IE = informationElementIndex| 2384 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2385 | Field Length = 2 |0| IE = mibIndexIndicator | 2386 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2387 | Field Length = 1 |0| IE = mibObjectIdentifier | 2388 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2389 | Field Length = 65535 | 2390 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2392 Figure 37: Example of MIB Field Options Template for a PSAMP Report 2393 with ifOutQLen indexed by egressInterface 2395 0 1 2 3 2396 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 2397 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2398 | Set ID = 704 | Length = 21 | 2399 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2400 | templateId = 703 | informationElementIndex = 4 | 2401 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2402 |Index 00010000 | VLEN = 11 | mibObjectIdentifier ... | 2403 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2404 | "1.3.6.1.2.1.2.2.1.21" ... | 2405 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2406 | 06092B0601020102020115 ... | 2407 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2408 | | 2409 +-+-+-+-+-+-+-+-+ 2411 Figure 38: Example of MIB Field Options Data Record for a PSAMP 2412 Report with ifOutQLen indexed by egressInterface 2414 The corresponding IPFIX Data Record is shown in Figure 39. For the 2415 sake of the example, the interface index of "Eth 1/0" is 15 and the 2416 interface index of "Eth 1/1" is 16. 2418 0 1 2 3 2419 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 2420 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2421 | Set ID = 703 | Length = 84 | 2422 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2423 | 192.0.2.1 | 2424 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2425 | 192.0.2.3 | 2426 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2427 | 150 | 2428 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2429 | 15 (Eth 1/0) | 2430 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2431 | 45 | 2432 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2433 | 192.0.2.4 | 2434 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2435 | 192.0.2.9 | 2436 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2437 | 350 | 2438 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2439 | 15 (Eth 1/0) | 2440 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2441 | 45 | 2442 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2443 | 192.0.2.3 | 2444 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2445 | 192.0.2.9 | 2446 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2447 | 650 | 2448 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2449 | 15 (Eth 1/0) | 2450 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2451 | 23 | 2452 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2453 | 192.0.2.4 | 2454 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2455 | 192.0.2.6 | 2456 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2457 | 350 | 2458 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2459 | 16 (Eth 1/1) | 2460 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2461 | 0 | 2462 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2464 Figure 39: Example of PSAMP Packet Report with ifOutQLen indexed by 2465 egressInterface 2467 6.7. Exporting With Multiple Contexts: The OSPF Neighbor Row Revisited 2469 If the Context used to export the MIB objects is the default one no 2470 extra context fields are required. This example demonstrates how to 2471 handle the case when the Context needs to be specified. It is based 2472 on the previous example Section 6.3. 2474 The OSPF details exported of the conceptual row in Section 6.3 would 2475 be suitable if there were only one OSPF process running at the 2476 Observation Point. If multiple OSPF processes are present then they 2477 can be differentiated by also exporting the mibContextEngineID and 2478 mibContextName. 2480 The following fields will be exported: 2482 +----------------------+------------+----------------------+--------+ 2483 | Object | ID | mibObjectValue | Length | 2484 | | | | in | 2485 | | | | bytes | 2486 +----------------------+------------+----------------------+--------+ 2487 | ospfNbrIpAddr | ospfNbrEnt | mibObjectValueIPAddr | 4 | 2488 | | ry 1 | ess | | 2489 | ospfNbrAddressLessIn | ospfNbrEnt | mibObjectValueIntege | 4 | 2490 | dex | ry 2 | r | | 2491 | ospfNbrRtrId | ospfNbrEnt | mibObjectValueIPAddr | 4 | 2492 | | ry 3 | ess | | 2493 | ospfNbrState | ospfNbrEnt | mibObjectValueIntege | 1 | 2494 | | ry 6 | r | | 2495 +----------------------+------------+----------------------+--------+ 2497 Table 9: OSPF Neighbor Entry Objects 2499 The example contextEngineID matches the example from [RFC3411] for 2500 Acme Networks: "'800002b804616263'H (enterprise 696, string 'abc')" 2502 Figure 40 shows the Templates Exported to Support a mibObjectValueRow 2503 that is defined within a context. Figure 41 shows the example OID 2504 Data for the conceptual row exported in mibObjectValueRow. These are 2505 unchanged from the previous example. Figure 42 shows the example 2506 data for 2 OSPF neighbors. Although these have identical INDEX/Scope 2507 values the context information indicates they come from different 2508 OSPF processes. 2510 0 1 2 3 2511 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 2512 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2513 | Set ID = 2 | Length = 20 | 2514 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2515 | Template ID = 800 | Field Count = 3 | 2516 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2517 |0| IE = mibContextEngineID | Field Length = 8 | 2518 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2519 |0| IE = mibContextName | Field Length = 4 | 2520 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2521 |0| IE = mibObjectValueRow | Field Length = 16 | 2522 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2524 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2525 | Set ID = 3 | Length = 30 | 2526 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2527 | Template ID = 801 | Field Count = 4 | 2528 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2529 | Scope Field Count = 2 |0| IE = mibObjectValueIPAddress| 2530 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2531 | Field Length = 4 |0| IE = mibObjectValueInteger | 2532 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2533 | Field Length = 4 |0| IE = mibObjectValueIPAddress| 2534 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2535 | Field Length = 4 |0| IE = mibObjectValueInteger | 2536 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2537 | Field Length = 1 | 2538 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2540 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2541 | Set ID = 3 | 2542 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2543 | Length = 22 | Template ID = 802 | 2544 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2545 | Field Count = 3 | Scope Field Count = 2 | 2546 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2547 |0| IE = templateId | Field Length = 2 | 2548 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2549 |0| IE = informationElementIndex| Field Length = 2 | 2550 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2551 |0| IE = mibObjectIdentifier | Field Length = 65535 | 2552 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2554 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2555 | Set ID = 3 | Length = 22 | 2556 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2557 | Template ID = 803 | Field Count = 3 | 2558 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2559 | Scope Field Count = 2 |0| IE = templateId | 2560 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2561 | Field Length = 2 |0| IE = informationElementIndex| 2562 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2563 | Field Length = 2 |0| IE = mibSubIdentifier | 2564 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2565 | Field Length = 2 | 2566 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2568 Figure 40: Example of ospfNbrEntry Template and Options Template Sets 2569 with Context 2571 0 1 2 3 2572 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 2573 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2574 | Set ID = 802 | Length = 38 | 2575 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2576 | templateId = 800 | informationElementIndex = 2 | 2577 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2578 | VLEN=22 | mibObjectIdentifier = "1.3.6.1.2.1.14.10.1" | 2579 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2580 | 060f2b8006800180028001800e800a8001 | 2581 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2582 | .... | 2583 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2584 | .... | 2585 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2586 | .... | 2587 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2588 | | Padding = 0 | 2589 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2591 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2592 | Set ID = 803 | Length = 28 | 2593 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2594 | templateId = 801 | informationElementIndex = 0 | 2595 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2596 | mibSubIdentifier = 1 | templateId = 801 | 2597 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2598 | informationElementIndex = 1 | mibSubIdentifier = 2 | 2599 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2600 | templateId = 801 | informationElementIndex = 2 | 2601 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2602 | mibSubIdentifier = 3 | templateId = 801 | 2603 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2604 | informationElementIndex = 3 | mibSubIdentifier = 6 | 2605 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2607 Figure 41: Example of ospfNbrEntry OID Data export with Context 2608 0 1 2 3 2609 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 2610 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2611 | Set ID = 800 | Length = 60 | 2612 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2613 | mibContextEngineID = 800002b804616263 | 2614 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2615 | ... mibContextEngineID | 2616 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2617 | mibContextName = con1 | 2618 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2619 |Semantic=FF | Template ID = 801 | ... | 2620 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2621 | ospfNbrIpAddr = 192.0.2.1 | ... | 2622 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2623 | ospfNbrAddressLessIndex = 0 | ... | 2624 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2625 | ospfNbrRtrId = 1.1.1.1 |ospfNbrState=8 | 2626 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2627 | mibContextEngineID = 800002b804616263 | 2628 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2629 | ... mibContextEngineID | 2630 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2631 | mibContextName = con2 | 2632 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2633 |Semantic=FF | Template ID = 801 | ... | 2634 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2635 | ospfNbrIpAddr = 192.0.2.1 | ... | 2636 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2637 | ospfNbrAddressLessIndex = 0 | ... | 2638 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2639 | ospfNbrRtrId = 2.2.2.2 |ospfNbrState=8 | 2640 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2642 Figure 42: Example of Data Export for ospfNbrEntry with Context 2644 7. Configuration Considerations 2646 When configuring a MIB OID for export, consideration should be given 2647 to whether the SNMP Context String should also be configurable. If a 2648 non-default Context String is used then it should be associated with 2649 the fields as per Section 5.6. 2651 8. The Collecting Process's Side 2653 The specifications in section 9 of [RFC7011] also apply to Collectors 2654 that implement this specification. In addition, the following 2655 specifications should be noted. 2657 A Collecting Process that implements this specification MUST store 2658 the data records containing the OID Object Type Definitions with the 2659 same retention policy as templates. 2661 A Collecting Process that implements this specification SHOULD have 2662 access to MIB modules in order to look up the received MIB Object 2663 Identifiers and find the full type definition and name of MIB OID 2664 fields used in received templates. 2666 It should be noted that since reduced size encoding MAY be used by 2667 the Exporting Process, the Collecting Process cannot assume a 2668 received size for a field is the maximum size it should expect for 2669 that field. 2671 If a Collecting Process receives a MIB Object Identifier that it 2672 cannot decode, it MAY log a warning. 2674 A Collecting Process MUST support the 3 options for handling columnar 2675 objects detailed in Section 5.8. 2677 9. Applicability 2679 Making available the many and varied items from MIB modules opens up 2680 a wide range of possible applications for the IPFIX protocol, some 2681 quite different from the usual flow information. 2683 Some monitoring applications periodically export an interface ID to 2684 interface name mapping using IPFIX Options Templates. This could be 2685 expanded to include the MIB object "ifInUcastPkts" of the IF-MIB 2686 [RFC2863] indexed using the ingressInterface Information Element. 2687 This would give the input statistics for each interface which can be 2688 compared to the flow information to ensure the sampling rate is 2689 expected. Or, if there is no sampling, to ensure that all the 2690 expected packets are being monitored. 2692 10. Security Considerations 2694 For this extension to the IPFIX protocol, the same security 2695 considerations as for the IPFIX protocol apply [RFC7011]. 2697 If the exporter is generating or capturing the field values itself, 2698 e.g. using the MIB objects only as an encoding or type mechanism, 2699 there are no extra security considerations beyond standard IPFIX. 2701 However if the exporter is a client of an SNMP engine on the same 2702 device it MUST abide by existing SNMP security rules. 2704 The access to particular MIB objects is controlled by the 2705 configuration of the IPFIX exporter. This is consistent with the way 2706 IPFIX controls access to other Information Elements in general. 2708 The configuration of an IPFIX Exporter determines which MIB objects 2709 are included in IPFIX Data Records sent to certain collectors. 2710 Network operators should take care that the only MIB objects which 2711 are included in IPFIX Data Records are ones which the receiving flow 2712 collector is allowed to receive. 2714 11. IANA Considerations 2716 11.1. New IPFIX Semantics 2718 New IPFIX semantics must be allocated in IANA's IPFIX registry 2719 [IANA-IPFIX] per section 6 of [RFC7012], as defined in the sub- 2720 sections below. 2722 11.1.1. SNMPtotalCounter 2724 An integral value reporting the value of a counter, identical to the 2725 Counter32 and Counter64 semantics in [RFC2578], as determined by the 2726 field length. 2728 This is similar to IPFIX's totalCounter semantic, except that total 2729 counters have an initial value of 0, while SNMP counters do not. 2731 11.1.2. SNMPgauge 2733 An integral value identical to the Gauge32 semantic in [RFC2578], and 2734 the Gauge64 semantic in [RFC2856], as determined by the field length. 2736 11.2. New IPFIX Information Elements 2738 The new Information Elements in Table 10 must be allocated in IANA's 2739 IPFIX registry [IANA-IPFIX], as defined in the sub-sections below. 2741 In each case the "Units" and "Range" are to be left blank, since 2742 these are not applicable. 2744 +-----------+---------------------------+ 2745 | ElementId | Name | 2746 +-----------+---------------------------+ 2747 | TBD1 | mibObjectValueInteger | 2748 | TBD2 | mibObjectValueOctetString | 2749 | TBD3 | mibObjectValueOID | 2750 | TBD4 | mibObjectValueBits | 2751 | TBD5 | mibObjectValueIPAddress | 2752 | TBD6 | mibObjectValueCounter | 2753 | TBD7 | mibObjectValueGauge | 2754 | TBD8 | mibObjectValueTimeTicks | 2755 | TBD9 | mibObjectValueUnsigned | 2756 | TBD10 | mibObjectValueTable | 2757 | TBD11 | mibObjectValueRow | 2758 | TBD12 | mibObjectIdentifier | 2759 | TBD13 | mibSubIdentifier | 2760 | TBD14 | mibIndexIndicator | 2761 | TBD15 | mibCaptureTimeSemantics | 2762 | TBD16 | mibContextEngineID | 2763 | TBD17 | mibContextName | 2764 | TBD18 | mibObjectName | 2765 | TBD19 | mibObjectDescription | 2766 | TBD20 | mibObjectSyntax | 2767 | TBD21 | mibModuleName | 2768 +-----------+---------------------------+ 2770 Table 10: New Information Elements 2772 11.2.1. New MIB Value Information Elements 2774 11.2.1.1. mibObjectValueInteger 2776 A new Information Element "mibObjectValueInteger" must be allocated 2777 in IANA's IPFIX registry [IANA-IPFIX], with the following definition: 2779 Description: An IPFIX Information Element which denotes that the 2780 integer value of a MIB object will be exported. The MIB Object 2781 Identifier ("mibObjectIdentifier") for this field MUST be exported 2782 in a MIB Field Option or via another means. This Information 2783 Element is used for MIB objects with the Base Syntax of Integer32 2784 and INTEGER with IPFIX Reduced Size Encoding used as required. 2785 The value is encoded as per the standard IPFIX Abstract Data Type 2786 of signed64. 2788 Abstract Data Type: signed64 2790 Data Type Semantics: identifier 2791 ElementId: TBD1 2793 Status: current 2795 Reference: [this document]. 2797 11.2.1.2. mibObjectValueOctetString 2799 A new Information Element "mibObjectValueOctetString" must be 2800 allocated in IANA's IPFIX registry [IANA-IPFIX], with the following 2801 definition: 2803 Description: An IPFIX Information Element which denotes that an 2804 Octet String or Opaque value of a MIB object will be exported. 2805 The MIB Object Identifier ("mibObjectIdentifier") for this field 2806 MUST be exported in a MIB Field Option or via another means. This 2807 Information Element is used for MIB objects with the Base Syntax 2808 of OCTET STRING and Opaque. The value is encoded as per the 2809 standard IPFIX Abstract Data Type of octetArray. 2811 Abstract Data Type: octetArray 2813 Data Type Semantics: default 2815 ElementId: TBD2 2817 Status: current 2819 Reference: [this document]. 2821 11.2.1.3. mibObjectValueOID 2823 A new Information Element "mibObjectValueOID" must be allocated in 2824 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 2826 Description: An IPFIX Information Element which denotes that an 2827 Object Identifier or OID value of a MIB object will be exported. 2828 The MIB Object Identifier ("mibObjectIdentifier") for this field 2829 MUST be exported in a MIB Field Option or via another means. This 2830 Information Element is used for MIB objects with the Base Syntax 2831 of OBJECT IDENTIFIER. Note - In this case the 2832 "mibObjectIdentifier" will define which MIB object is being 2833 exported while the value contained in this Information Element 2834 will be an OID as a value. The mibObjectValueOID Information 2835 Element is encoded as ASN.1/BER [BER] in an octetArray. 2837 Abstract Data Type: octetArray 2838 Data Type Semantics: default 2840 ElementId: TBD3 2842 Status: current 2844 Reference: [this document]. 2846 11.2.1.4. mibObjectValueBits 2848 A new Information Element "mibObjectValueBits" must be allocated in 2849 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 2851 Description: An IPFIX Information Element which denotes that a set 2852 of Enumerated flags or bits from a MIB object will be exported. 2853 The MIB Object Identifier ("mibObjectIdentifier") for this field 2854 MUST be exported in a MIB Field Option or via another means. This 2855 Information Element is used for MIB objects with the Base Syntax 2856 of BITS. The value is encoded as per the standard IPFIX Abstract 2857 Data Type of unsigned64. 2859 Abstract Data Type: unsigned64 2861 Data Type Semantics: flags 2863 ElementId: TBD4 2865 Status: current 2867 Reference: [this document]. 2869 11.2.1.5. mibObjectValueIPAddress 2871 A new Information Element "mibObjectValueIPAddress" must be allocated 2872 in IANA's IPFIX registry [IANA-IPFIX], with the following definition: 2874 Description: An IPFIX Information Element which denotes that the 2875 IPv4 Address of a MIB object will be exported. The MIB Object 2876 Identifier ("mibObjectIdentifier") for this field MUST be exported 2877 in a MIB Field Option or via another means. This Information 2878 Element is used for MIB objects with the Base Syntax of IPaddress. 2879 The value is encoded as per the standard IPFIX Abstract Data Type 2880 of ipv4Address. 2882 Abstract Data Type: ipv4Address 2884 Data Type Semantics: default 2885 ElementId: TBD5 2887 Status: current 2889 Reference: [this document]. 2891 11.2.1.6. mibObjectValueCounter 2893 A new Information Element "mibObjectValueCounter" must be allocated 2894 in IANA's IPFIX registry [IANA-IPFIX], with the following definition: 2896 Description: An IPFIX Information Element which denotes that the 2897 counter value of a MIB object will be exported. The MIB Object 2898 Identifier ("mibObjectIdentifier") for this field MUST be exported 2899 in a MIB Field Option or via another means. This Information 2900 Element is used for MIB objects with the Base Syntax of Counter32 2901 or Counter64 with IPFIX Reduced Size Encoding used as required. 2902 The value is encoded as per the standard IPFIX Abstract Data Type 2903 of unsigned64. 2905 Abstract Data Type: unsigned64 2907 Data Type Semantics: SNMPtotalCounter 2909 ElementId: TBD6 2911 Status: current 2913 Reference: [this document]. 2915 11.2.1.7. mibObjectValueGauge 2917 A new Information Element "mibObjectValueGauge" must be allocated in 2918 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 2920 Description: An IPFIX Information Element which denotes that the 2921 Gauge value of a MIB object will be exported. The MIB Object 2922 Identifier ("mibObjectIdentifier") for this field MUST be exported 2923 in a MIB Field Option or via another means. This Information 2924 Element is used for MIB objects with the Base Syntax of Gauge32. 2925 The value is encoded as per the standard IPFIX Abstract Data Type 2926 of unsigned64. This value will represent a non-negative integer, 2927 which may increase or decrease, but shall never exceed a maximum 2928 value, nor fall below a minimum value. 2930 Abstract Data Type: unsigned32 2932 Data Type Semantics: SNMPgauge 2933 ElementId: TBD7 2935 Status: current 2937 Reference: [this document]. 2939 11.2.1.8. mibObjectValueTimeTicks 2941 A new Information Element "mibObjectValueTimeTicks" must be allocated 2942 in IANA's IPFIX registry [IANA-IPFIX], with the following definition: 2944 Description: An IPFIX Information Element which denotes that the 2945 TimeTicks value of a MIB object will be exported. The MIB Object 2946 Identifier ("mibObjectIdentifier") for this field MUST be exported 2947 in a MIB Field Option or via another means. This Information 2948 Element is used for MIB objects with the Base Syntax of TimeTicks. 2949 The value is encoded as per the standard IPFIX Abstract Data Type 2950 of unsigned32. 2952 Abstract Data Type: unsigned32 2954 Data Type Semantics: default 2956 ElementId: TBD8 2958 Status: current 2960 Reference: [this document]. 2962 11.2.1.9. mibObjectValueUnsigned 2964 A new Information Element "mibObjectValueUnsigned" must be allocated 2965 in IANA's IPFIX registry [IANA-IPFIX], with the following definition: 2967 Description: An IPFIX Information Element which denotes that an 2968 unsigned integer value of a MIB object will be exported. The MIB 2969 Object Identifier ("mibObjectIdentifier") for this field MUST be 2970 exported in a MIB Field Option or via another means. This 2971 Information Element is used for MIB objects with the Base Syntax 2972 of unsigned64 with IPFIX Reduced Size Encoding used as required. 2973 The value is encoded as per the standard IPFIX Abstract Data Type 2974 of unsigned64. 2976 Abstract Data Type: unsigned64 2978 Data Type Semantics: identifier 2980 ElementId: TBD9 2981 Status: current 2983 Reference: [this document]. 2985 11.2.1.10. mibObjectValueTable 2987 A new Information Element "mibObjectValueTable" must be allocated in 2988 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 2990 Description: An IPFIX Information Element which denotes that a 2991 complete conceptual table will be exported. The MIB Object 2992 Identifier ("mibObjectIdentifier") for this field MUST be exported 2993 in a MIB Field Option or via another means. This Information 2994 Element is used for MIB objects with a SYNTAX of SEQUENCE OF. 2995 This is encoded as a basicList of "mibObjectValueRow"s. The Field 2996 ID for the basicList MUST be TBD11. The mibObjectValueRow MUST be 2997 of the same type/OID as specified in this MIB object's syntax. 2999 Abstract Data Type: basicList 3001 Data Type Semantics: list 3003 ElementId: TBD10 3005 Status: current 3007 Reference: [this document]. 3009 11.2.1.11. mibObjectValueRow 3011 A new Information Element "mibObjectValueRow" must be allocated in 3012 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3014 Description: An IPFIX Information Element which denotes that a row 3015 of a conceptual table as defined in a MIB will be exported. The 3016 MIB Object Identifier ("mibObjectIdentifier") for this field MUST 3017 be exported in a MIB Field Option or via another means. This 3018 Information Element is used for MIB objects with a SYNTAX of 3019 SEQUENCE. This is encoded as a subTemplateList of mibObjectValue 3020 Information Elements. The template specified in the 3021 subTemplateList MUST be an Options Template and MUST include all 3022 the Objects listed in the INDEX clause as Scope fields. 3024 Abstract Data Type: subTemplateList 3026 Data Type Semantics: list 3028 ElementId: TBD11 3029 Status: current 3031 Reference: [this document]. 3033 11.2.2. New MIB Field Options Information Elements 3035 11.2.2.1. mibObjectIdentifier 3037 A new Information Element "mibObjectIdentifier" must be allocated in 3038 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3040 Description: An IPFIX Information Element which denotes that a MIB 3041 Object Identifier (MIB OID) is exported in the (Options) Template 3042 Record. The mibObjectIdentifier Information Element contains the 3043 OID assigned to the MIB Object Type Definition encoded as ASN.1/ 3044 BER [BER] 3046 Abstract Data Type: octetArray 3048 Data Type Semantics: default 3050 ElementId: TBD12 3052 Status: current 3054 Reference: [this document]. 3056 11.2.2.2. mibSubIdentifier 3058 A new Information Element "mibSubIdentifier" must be allocated in 3059 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3061 Description: A non-negative sub-identifier. One Sub number from 3062 an Object Identifier (OID). 3064 Abstract Data Type: unsigned32 3066 Data Type Semantics: identifier 3068 ElementId: TBD13 3070 Status: current 3072 Reference: [this document]. 3074 11.2.2.3. mibIndexIndicator 3076 A new Information Element "mibIndexIndicator" must be allocated in 3077 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3079 Description: This set of bit fields is used for marking the 3080 Information Elements of a Data Record that serve as INDEX MIB 3081 objects for an indexed Columnar MIB object. Each bit represents 3082 an Information Element in the Data Record with the n-th bit 3083 representing the n-th Information Element. A bit set to value 1 3084 indicates that the corresponding Information Element is an index 3085 of the Columnar Object represented by the mibFieldValue. A bit 3086 set to value 0 indicates that this is not the case. 3088 If the Data Record contains more than 64 Information Elements, the 3089 corresponding Template SHOULD be designed such that all INDEX 3090 Fields are among the first 64 Information Elements, because the 3091 mibIndexIndicator only contains 64 bits. If the Data Record 3092 contains less than 64 Information Elements, then the extra bits in 3093 the mibIndexIndicator for which no corresponding Information 3094 Element exists MUST have the value 0, and must be disregarded by 3095 the Collector. This Information Element may be exported with 3096 IPFIX Reduced Size Encoding. 3098 Abstract Data Type: unsigned64 3100 Data Type Semantics: flags 3102 ElementId: TBD14 3104 Status: current 3106 Reference: [this document]. 3108 11.2.2.4. mibCaptureTimeSemantics 3110 A new Information Element "mibCaptureTimeSemantics" must be allocated 3111 in IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3113 Description: Indicates when in the lifetime of the flow the MIB 3114 value was retrieved from SNMP for a mibObjectIdentifier. This is 3115 used to indicate if the value exported was collected from the MIB 3116 closer to flow creation or flow export time and will refer to the 3117 Timestamp fields included in the same record. This field SHOULD 3118 be used when exporting a mibObjectValue that specifies counters or 3119 statistics. 3121 If the MIB value could be sampled by SNMP prior to the IPFIX 3122 Metering Process or Exporting Process retrieving the value (i.e. 3123 the data is already stale) and it's important to know the exact 3124 SNMP sampling time, then an additional observationTime* element 3125 should be paired with the OID using structured data. Similarly, 3126 if different mibCaptureTimeSemantics apply to different mibObject 3127 elements within the Data Record, then individual 3128 mibCaptureTimeSemantics should be paired with each OID using 3129 structured data. 3131 Values: 3133 0. undefined 3135 1. begin - The value for the MIB object is captured from the 3136 MIB when the Flow is first observed 3138 2. end - The value for the MIB object is captured from the MIB 3139 when the Flow ends 3141 3. export - The value for the MIB object is captured from the 3142 MIB at export time 3144 4. average - The value for the MIB object is an average of 3145 multiple captures from the MIB over the observed life of the 3146 Flow 3148 Abstract Data Type: unsigned8 3150 Data Type Semantics: identifier 3152 ElementId: TBD15 3154 Status: current 3156 Reference: [this document]. 3158 11.2.2.5. mibContextEngineID 3160 A new Information Element "mibContextEngineID" must be allocated in 3161 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3163 Description: A mibContextEngineID that specifies the SNMP engine 3164 ID for a MIB field being exported over IPFIX. Definition as per 3165 [RFC3411] section 3.3 3167 Abstract Data Type: octetArray 3168 Data Type Semantics: default 3170 ElementId: TBD16 3172 Status: current 3174 Reference: [this document]. 3176 11.2.2.6. mibContextName 3178 A new Information Element "mibContextName" must be allocated in 3179 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3181 Description: This Information Element denotes that a MIB Context 3182 Name is specified for a MIB field being exported over IPFIX. 3183 Reference [RFC3411] section 3.3 3185 Abstract Data Type: string 3187 Data Type Semantics: default 3189 ElementId: TBD17 3191 Status: current 3193 Reference: [this document]. 3195 11.2.3. New MIB Type Information Elements 3197 11.2.3.1. mibObjectName 3199 A new Information Element "mibObjectName" must be allocated in IANA's 3200 IPFIX registry [IANA-IPFIX], with the following definition: 3202 Description: The name (called a descriptor in [RFC2578]) of an 3203 object type definition. 3205 Abstract Data Type: string 3207 Data Type Semantics: default 3209 ElementId: TBD18 3211 Status: current 3213 Reference: [this document]. 3215 11.2.3.2. mibObjectDescription 3217 A new Information Element "mibObjectDescription" must be allocated in 3218 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3220 Description: The value of the DESCRIPTION clause of an MIB object 3221 type definition. 3223 Abstract Data Type: string 3225 Data Type Semantics: default 3227 ElementId: TBD19 3229 Status: current 3231 Reference: [this document]. 3233 11.2.3.3. mibObjectSyntax 3235 A new Information Element "mibObjectSyntax" must be allocated in 3236 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3238 Description: The value of the SYNTAX clause of an MIB object type 3239 definition, which may include a Textual Convention or Subtyping. 3240 See [RFC2578]. 3242 Abstract Data Type: string 3244 Data Type Semantics: default 3246 ElementId: TBD20 3248 Status: current 3250 Reference: [this document]. 3252 11.2.3.4. mibModuleName 3254 A new Information Element "mibModuleName" must be allocated in IANA's 3255 IPFIX registry [IANA-IPFIX], with the following definition: 3257 Description: The textual name of the MIB module that defines a MIB 3258 Object. 3260 Abstract Data Type: string 3262 Data Type Semantics: default 3263 ElementId: TBD21 3265 Status: current 3267 Reference: [this document]. 3269 12. Acknowledgements 3271 The authors would like to thank Andrew Johnson for his collaboration 3272 on the first version of the draft, and to thank Andrew Feren and 3273 Brian Trammell for their detailed reviews. 3275 13. References 3277 13.1. Normative References 3279 [BER] International Organization for Standardization, 3280 "Information processing systems - Open Systems 3281 Interconnection - Specification of Basic Encoding Rules 3282 for Abstract Syntax Notation One (ASN.1),International 3283 Organization for Standardization. International Standard 3284 8825, December 1987", . 3286 [IANA-IPFIX] 3287 IANA, "IPFIX Information Elements registry", 3288 . 3290 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 3291 Requirement Levels", BCP 14, RFC 2119, March 1997. 3293 [RFC2578] McCloghrie, K., Ed., Perkins, D., Ed., and J. 3294 Schoenwaelder, Ed., "Structure of Management Information 3295 Version 2 (SMIv2)", STD 58, RFC 2578, April 1999. 3297 [RFC2856] Bierman, A., McCloghrie, K., and R. Presuhn, "Textual 3298 Conventions for Additional High Capacity Data Types", RFC 3299 2856, June 2000. 3301 [RFC3411] Harrington, D., Presuhn, R., and B. Wijnen, "An 3302 Architecture for Describing Simple Network Management 3303 Protocol (SNMP) Management Frameworks", STD 62, RFC 3411, 3304 December 2002. 3306 [RFC4293] Routhier, S., "Management Information Base for the 3307 Internet Protocol (IP)", RFC 4293, April 2006. 3309 [RFC6526] Claise, B., Aitken, P., Johnson, A., and G. Muenz, "IP 3310 Flow Information Export (IPFIX) Per Stream Control 3311 Transmission Protocol (SCTP) Stream", RFC 6526, March 3312 2012. 3314 [RFC7011] Claise, B., Trammell, B., and P. Aitken, "Specification of 3315 the IP Flow Information Export (IPFIX) Protocol for the 3316 Exchange of Flow Information", STD 77, RFC 7011, September 3317 2013. 3319 [RFC7012] Claise, B. and B. Trammell, "Information Model for IP Flow 3320 Information Export (IPFIX)", RFC 7012, September 2013. 3322 13.2. Informative References 3324 [CISCO-PROCESS-MIB] 3325 Cisco Systems Inc., "CISCO-PROCESS-MIB.my: MIB for CPU and 3326 process statistics", . 3329 [RFC2863] McCloghrie, K. and F. Kastenholz, "The Interfaces Group 3330 MIB", RFC 2863, June 2000. 3332 [RFC2982] Kavasseri, R., "Distributed Management Expression MIB", 3333 RFC 2982, October 2000. 3335 [RFC3444] Pras, A. and J. Schoenwaelder, "On the Difference between 3336 Information Models and Data Models", RFC 3444, January 3337 2003. 3339 [RFC4022] Raghunarayan, R., "Management Information Base for the 3340 Transmission Control Protocol (TCP)", RFC 4022, March 3341 2005. 3343 [RFC4750] Joyal, D., Galecki, P., Giacalone, S., Coltun, R., and F. 3344 Baker, "OSPF Version 2 Management Information Base", RFC 3345 4750, December 2006. 3347 [RFC4960] Stewart, R., "Stream Control Transmission Protocol", RFC 3348 4960, September 2007. 3350 [RFC5470] Sadasivan, G., Brownlee, N., Claise, B., and J. Quittek, 3351 "Architecture for IP Flow Information Export", RFC 5470, 3352 March 2009. 3354 [RFC5476] Claise, B., Johnson, A., and J. Quittek, "Packet Sampling 3355 (PSAMP) Protocol Specifications", RFC 5476, March 2009. 3357 [RFC6313] Claise, B., Dhandapani, G., Aitken, P., and S. Yates, 3358 "Export of Structured Data in IP Flow Information Export 3359 (IPFIX)", RFC 6313, July 2011. 3361 Authors' Addresses 3363 Paul Aitken (editor) 3364 Cisco Systems, Inc. 3365 96 Commercial Quay 3366 Commercial Street 3367 Edinburgh EH6 6LX 3368 UK 3370 Phone: +44 131 561 3616 3371 Email: paitken@cisco.com 3373 Benoit Claise 3374 Cisco Systems, Inc. 3375 De Kleetlaan 6a b1 3376 Diegem 1813 3377 Belgium 3379 Phone: +32 2 704 5622 3380 Email: bclaise@cisco.com 3382 Srikar 3383 Cisco Systems, Inc. 3384 Mail Stop BGL13/3/, SEZ Unit, Cessna Business Park, Kadubeesanahalli 3385 Village Varthur Hobli, Sarjapur Marathalli Outer Ring Road 3386 Bangalore KARNATAKA 560 103 3387 IN 3389 Phone: +91 80 4426 3264 3390 Email: srikar@cisco.com 3392 Colin McDowall 3393 Cisco Systems, Inc. 3394 96 Commercial Quay 3395 Commercial Street 3396 Edinburgh EH6 6LX 3397 UK 3399 Phone: +44 131 561 3634 3400 Email: cmcdowal@cisco.com 3401 Juergen Schoenwaelder 3402 Jacobs University Bremen 3403 Campus Ring 1 3404 Bremen 28725 3405 Germany 3407 Phone: +49 421 200-3587 3408 Email: j.schoenwaelder@jacobs-university.de