idnits 2.17.1 draft-ietf-ipfix-mib-variable-export-08.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 (December 31, 2014) is 3403 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 Brocade 4 Intended status: Standards Track B. Claise 5 Expires: July 4, 2015 S. B S 6 C. McDowall 7 Cisco Systems, Inc. 8 J. Schoenwaelder 9 Jacobs University Bremen 10 December 31, 2014 12 Exporting MIB Variables using the IPFIX Protocol 13 draft-ietf-ipfix-mib-variable-export-08 15 Abstract 17 This document specifies a way to complement IPFIX Data Records with 18 Management Information Base (MIB) objects, avoiding the need to 19 define new IPFIX Information Elements for existing Management 20 Information Base objects that are already fully specified. 22 An IPFIX Options Template and method are specified, which are used to 23 export the extra information required to fully describe Simple 24 Network Management Protocol (SNMP) MIB objects in IPFIX. 26 Status of This Memo 28 This Internet-Draft is submitted in full conformance with the 29 provisions of BCP 78 and BCP 79. 31 Internet-Drafts are working documents of the Internet Engineering 32 Task Force (IETF). Note that other groups may also distribute 33 working documents as Internet-Drafts. The list of current Internet- 34 Drafts is at http://datatracker.ietf.org/drafts/current/. 36 Internet-Drafts are draft documents valid for a maximum of six months 37 and may be updated, replaced, or obsoleted by other documents at any 38 time. It is inappropriate to use Internet-Drafts as reference 39 material or to cite them other than as "work in progress." 41 This Internet-Draft will expire on July 4, 2015. 43 Copyright Notice 45 Copyright (c) 2014 IETF Trust and the persons identified as the 46 document authors. All rights reserved. 48 This document is subject to BCP 78 and the IETF Trust's Legal 49 Provisions Relating to IETF Documents 50 (http://trustee.ietf.org/license-info) in effect on the date of 51 publication of this document. Please review these documents 52 carefully, as they describe your rights and restrictions with respect 53 to this document. Code Components extracted from this document must 54 include Simplified BSD License text as described in Section 4.e of 55 the Trust Legal Provisions and are provided without warranty as 56 described in the Simplified BSD License. 58 Table of Contents 60 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 61 2. Motivation . . . . . . . . . . . . . . . . . . . . . . . . . 4 62 3. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 6 63 4. High Level Solution Overview . . . . . . . . . . . . . . . . 7 64 5. MIB Object Value Information Elements and the MIB Field 65 Options Template . . . . . . . . . . . . . . . . . . . . . . 8 66 5.1. MIB Field Options Architecture . . . . . . . . . . . . . 9 67 5.2. IPFIX and MIB Data Model . . . . . . . . . . . . . . . . 12 68 5.3. MIB Field Options - Specifications and Required Fields . 13 69 5.3.1. MIB Field Options Template . . . . . . . . . . . . . 14 70 5.3.2. MIB Type Options Template . . . . . . . . . . . . . . 14 71 5.4. MIB Field Options Template Formats . . . . . . . . . . . 15 72 5.4.1. Data Template containing a mibObject Field . . . . . 15 73 5.4.2. MIB Field Options Template . . . . . . . . . . . . . 16 74 5.4.3. MIB Field Options Data Records . . . . . . . . . . . 18 75 5.4.4. Options Template containing a mibObject Field . . . . 19 76 5.4.5. MIB Field Options Template with Semantics Fields . . 20 77 5.4.6. MIB Field Options Template with extra MIB Object 78 Details . . . . . . . . . . . . . . . . . . . . . . . 21 79 5.5. Use of field order in the MIB Field Option template . . . 23 80 5.6. Identifying the SNMP Context . . . . . . . . . . . . . . 24 81 5.7. Template Management . . . . . . . . . . . . . . . . . . . 25 82 5.7.1. Large Messages . . . . . . . . . . . . . . . . . . . 25 83 5.7.2. Template Withdrawal and Reuse . . . . . . . . . . . . 25 84 5.8. Exporting Conceptual Rows and Tables . . . . . . . . . . 26 85 5.8.1. Exporting Conceptual Rows - indexing . . . . . . . . 26 86 5.8.2. Exporting Conceptual Rows - mibObjectValueRow . . . . 27 87 5.8.3. Exporting Conceptual Rows - Augments . . . . . . . . 32 88 5.8.4. Exporting Conceptual Tables - mibObjectValueTable . . 33 89 5.8.5. Exporting Columnar Objects - using mibIndexIndicator 33 90 6. Example Use Cases . . . . . . . . . . . . . . . . . . . . . . 34 91 6.1. Non Columnar MIB Object: Established TCP Connections . . 34 92 6.2. Enterprise Specific MIB Object: Detailing CPU Load 93 History . . . . . . . . . . . . . . . . . . . . . . . . . 37 94 6.3. Exporting a Conceptual Row: The OSPF Neighbor Row . . . . 40 95 6.4. Exporting Augmented Conceptual Row: The IF-MIB id to name 96 mapping . . . . . . . . . . . . . . . . . . . . . . . . . 44 97 6.5. Exporting a Columnar Object: The ipIfStatsInForwDatagrams 49 98 6.6. Exporting a Columnar Object indexed by IEs: ifOutQLen . . 52 99 6.7. Exporting With Multiple Contexts: The OSPF Neighbor Row 100 Revisited . . . . . . . . . . . . . . . . . . . . . . . . 56 101 7. Configuration Considerations . . . . . . . . . . . . . . . . 59 102 8. The Collecting Process's Side . . . . . . . . . . . . . . . . 59 103 9. Applicability . . . . . . . . . . . . . . . . . . . . . . . . 60 104 10. Security Considerations . . . . . . . . . . . . . . . . . . . 60 105 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 61 106 11.1. New IPFIX Semantics . . . . . . . . . . . . . . . . . . 61 107 11.1.1. snmpCounter . . . . . . . . . . . . . . . . . . . . 61 108 11.1.2. snmpGauge . . . . . . . . . . . . . . . . . . . . . 61 109 11.2. New IPFIX Information Elements . . . . . . . . . . . . . 61 110 11.2.1. New MIB Value Information Elements . . . . . . . . . 62 111 11.2.2. New MIB Field Options Information Elements . . . . . 68 112 11.2.3. New MIB Type Information Elements . . . . . . . . . 71 113 12. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 73 114 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 73 115 13.1. Normative References . . . . . . . . . . . . . . . . . . 73 116 13.2. Informative References . . . . . . . . . . . . . . . . . 74 117 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 75 119 1. Introduction 121 There is growing interest in using IPFIX as a push mechanism for 122 exporting management information. Using a push protocol such as 123 IPFIX instead of a polling protocol like SNMP is especially 124 interesting in situations where large chunks of repetitive data need 125 to be exported periodically. 127 While initially targeted at different problems, there is a large 128 parallel between the information transported via IPFIX and SNMP. 129 Furthermore, certain Management Information Base (MIB) objects are 130 highly relevant to flows as they are understood today. For example, 131 in the IPFIX information model [IANA-IPFIX], Information Elements 132 coming from the SNMP world have already been specified, e.g., 133 ingressInterface and egressInterface both refer to the ifIndex 134 defined in [RFC2863]. 136 In particular the Management Information Base was designed as a 137 separate system of definitions which opens up the possibility of 138 exporting Objects defined via the MIB over other protocols. 140 Rather than mapping existing MIB objects to IPFIX Information 141 Elements on a case by case basis, it would be advantageous to enable 142 the export of any existing or future MIB objects as part of an IPFIX 143 Data Record. This way, the duplication of data models [RFC3444], 144 both as SMIv2 MIB objects and IPFIX Information Elements, out of the 145 same information model [RFC3444] would be avoided. 147 Therefore the primary goals of this document are: 149 o to specify a way to complement IPFIX Data Records with Management 150 Information Base (MIB) objects; 152 o to avoid the need to define new IPFIX Information Elements for 153 existing Management Information Base objects that are already 154 fully specified; 156 o to allow the correlation of SNMP and IPFIX sourced data by 157 exporting them together; 159 o to allow SNMP push data from SNMP-only devices to be more easily 160 integrated into IPFIX based collection infrastructures. 162 2. Motivation 164 The intended scope of this work is the addition of MIB variable(s) to 165 IPFIX Information Elements in Data Records, in order to complement 166 the Records with useful and already standardized information. 167 Special consideration is given to the case of an existing Template 168 Record which needs to be augmented with some MIB variables whose 169 index is already present in the Template Record as an IPFIX 170 Information Element. For example a 7-tuple Record containing the 171 ingressInterface Information Element, which needs to be augmented by 172 interface counters [RFC2863] which are indexed by the respective 173 ingressInterface values which are already contained in the Data 174 Records. 176 Many Data Records contain the ingressInterface and/or the 177 egressInterface Information Elements. These Information Elements 178 carry an ifIndex value, a MIB object defined in [RFC2863]. In order 179 to retrieve additional information about the identified interface, a 180 Collector could simply poll relevant objects from the device running 181 the Exporter via SNMP. However, that approach has several problems: 183 o It requires implementing a mediation function between two data 184 models, i.e., MIB objects and IPFIX Information Elements. 186 o Confirming the validity of simple mappings (e.g., ifIndex to 187 ifName) requires either checking on a regular basis that the 188 Exporter's network management system did not reload, or imposing 189 ifIndex persistence across an Exporter's reload. 191 o Synchronization problems occur since counters carried in Data 192 Records and counters carried in SNMP messages are retrieved from 193 the Exporter at different points in time and thus cannot be 194 correlated. In the best case, assuming very tight integration of 195 an IPFIX Collector with an SNMP polling engine, SNMP data is 196 retrieved shortly after Data Records have been received, which 197 implies a delay of the sum of the active or inactive timeouts (if 198 not null) plus the time to export the Data Record to the 199 Collector. If, however, the SNMP data is retrieved by a generic 200 Network Management Station (NMS) polling interface statistics, 201 then the time lag between IPFIX counters and SNMP counters can be 202 significantly higher. See [RFC5470] section 5.1.1. "Flow 203 Expiration" for details of active and inactive timeouts. 205 This document does not specify how to carry SNMP notifications in 206 IPFIX, even if the specifications in this document could potentially 207 allow this. 209 Since IPFIX is a push mechanism, initiated from the Exporter with no 210 acknowledgment method, this specification does not provide the 211 ability to execute configuration changes. 213 The Distributed Management Expression MIB [RFC2982], which is a 214 mechanism to create new MIB variables based on the content of 215 existing ones, could also be advantageous in the context of this 216 specification. Indeed, newly created MIB objects (for example, the 217 link utilization MIB variable), created with the Distributed 218 Management Expression MIB [RFC2982] could nicely complement Data 219 Records. 221 Another advantage of exporting MIB objects via IPFIX is that IPFIX 222 would benefit from an extended series of types to be exported. The 223 simple and application-wide data types specified in SMIv2 [RFC2578], 224 along with new Textual Conventions, can be exported within IPFIX and 225 then decoded in the Collector. However, since a Textual Convention 226 can contain almost any name, this document does not extend the 227 existing informationElementDataType registry [IANA-IPFIX]. 229 The overall architectural model is depicted in Figure 1. The IPFIX 230 Exporter accesses the device's instrumentation, which follows the 231 specifications contained in MIB modules. Other management interfaces 232 such as NETCONF or the device's Command Line Interface (CLI) may 233 provide access to the same instrumentation. 235 +------+ +-------+ +.........+ +.....+ 236 | SNMP | | IPFIX | : NETCONF : : CLI : 237 +------+ +-------+ +.........+ +.....+ 238 | | | | 239 +--------------------------------------------+ 240 | Instrumentation (specified in MIB modules) | 241 +--------------------------------------------+ 243 Figure 1: Architectural Model 245 3. Terminology 247 IPFIX-specific terminology (Information Element, Template, Template 248 Record, Options Template Record, Template Set, Collector, Exporter, 249 Data Record, etc.) used in this document is defined in Section 2 of 250 [RFC7011]. As in [RFC7011], these IPFIX-specific terms have the 251 first letter of a word capitalized. 253 This document prefers the more generic term "Data Record" (as opposed 254 to "Flow Record") in relation to the export of MIB objects. 256 Object Identifier (MIB OID) 258 An Object Identifier value is an ordered list of non-negative 259 numbers. For the SMIv2, each number in the list is referred to as 260 a sub-identifier. There are at most 128 sub-identifiers in a 261 value, and each sub-identifier has a maximum value of 2^32 - 1 262 (4294967295 decimal). See [RFC2578] Section 3.5. 264 MIB Object Identifier Information Element 266 An IPFIX Information Element ("mibObjectIdentifier") which denotes 267 that a MIB Object Identifier (MIB OID) is exported in the 268 (Options) Data Record. See Section 11.2.2.1. 270 SMIv2 Terminology 272 The key words "MIB Module", "MIB Object", "INDEX", "AUGMENTS", 273 "textual convention", "columnar object", "conceptual row", and 274 "conceptual table" in this document are to be interpreted as 275 described in SMIv2 [RFC2578] 277 SMIv2 SYNTAX 279 The SYNTAX key words "INTEGER", "Integer32", "OCTET STRING", 280 "OBJECT IDENTIFIER", "BITS construct", "IpAddress", "Counter32", 281 "Gauge32", "TimeTicks", "Opaque", "Counter64", "Unsigned32", 282 "SEQUENCE", and "SEQUENCE OF" in this document are to be 283 interpreted as described in SMIv2 [RFC2578]. 285 SNMP Context Terminology 287 The key words "snmpEngineID", "contextEngineID", and "contextName" 288 in this document are to be interpreted as described in [RFC3411] 290 mibObjectValue Information Elements 292 Refers to any and all of the mibObjectValue Information Elements 293 generically. Any restriction or requirement in this document that 294 refers to mibObjectValue applies to the following Information 295 Elements defined in Section 11.2.1: mibObjectValueInteger, 296 mibObjectValueOctetString, mibObjectValueOID, 297 mibObjectValueIPAddress, mibObjectValueBITS, 298 mibObjectValueCounter, mibObjectValueGauge, 299 mibObjectValueTimeTicks, mibObjectValueUnsigned, 300 mibObjectValueTable, and mibObjectValueRow. 302 IE 304 Used as a shorthand for "Information Element" [RFC7011] in the 305 figures. 307 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 308 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 309 "OPTIONAL" in this document are to be interpreted as described in 310 [RFC2119]. 312 4. High Level Solution Overview 314 This document specifies a method for creating IPFIX Options Templates 315 that are used to export the extra data required to describe MIB 316 variables (see Section 5.1). 318 This allows IPFIX Templates to contain any combination of fields 319 defined by traditional IPFIX Information Element(s) and/or MIB Object 320 Identifier(s). The MIB Object Identifiers can reference either non 321 columnar or columnar MIB object(s). Enterprise-specific MIB Object 322 Identifiers are also supported. 324 This document also defines two standard IPFIX Options Templates (see 325 Section 5.3) that are used as part of the mechanism to export MIB 326 object meta data: 328 o MIB Field Options Template (Section 5.3.1) 329 o MIB Type Options Template (Section 5.3.2) 331 This document defines three classes of new IPFIX Information 332 Elements. These are used to export values from the MIB, export 333 required Object Identifier information, and optionally export type 334 data from a MIB Module: 336 o MIB Object Value Information Elements (Section 11.2.1) 338 o MIB Field Options Information Elements (Section 11.2.2) 340 o MIB Type Information Information Elements (Section 11.2.3) 342 Additionally, this document defines two new IPFIX semantics which are 343 required for the new Information Elements: 345 o snmpCounter (Section 11.1.1) 347 o snmpGauge (Section 11.1.2) 349 One common type defined in the SMIv2 are conceptual rows and 350 conceptual tables. It is desirable that exporting a complete or 351 partial conceptual row is simple and efficient. This is accomplished 352 by using IPFIX Structured Data [RFC6313] to reduce repetition of 353 Object Identifier and indexing data. 355 To allow the use of individual columnar objects that make up a 356 conceptual row, a method is also specified to detail that a MIB 357 object is indexed by other fields in the same Data Flow. For an 358 individually indexed mibObjectValue the INDEX fields are sent as any 359 of the other fields in the same Record, and may be mibObjectValue 360 Information Element(s) or other existing Information Element(s). 362 Also, in some cases Exporters may not want (or be able) to export the 363 full information on how the MIB objects being exported are indexed. 364 This may be because the MIB object is being used purely as type 365 information or the Exporting Process may not have knowledge of the 366 indexing required. Therefore providing index information for 367 Columnar Objects is optional. 369 5. MIB Object Value Information Elements and the MIB Field Options 370 Template 372 This document defines new mibObjectValue Information Elements (in 373 Section 11.2.1). These are used to export MIB objects as part of 374 standard IPFIX Templates. The mibObjectValue Information Elements 375 contain the actual data values. 377 The Metering or Exporting Process may extract the data values for 378 mibObjectValue Information Elements from a Process that resides on 379 the same device or may capture or create the data required to match 380 the definition of the MIB object. In particular exporting a value of 381 a MIB object defined in a certain MIB module does not imply that the 382 SNMP process on the device supports that MIB module. 384 The main issue that arises from exporting values of MIB objects in 385 IPFIX is that MIB Object Identifiers do not fit into the standard 386 IPFIX Template format [RFC7011], as this only provides a 16-bit 387 Information Element identifier. 389 The values of a MIB object could be exported using a MIB specific 390 Information Element without providing any Object Identifiers. 391 However, without exporting the actual MIB OID the full type of the 392 data would be unknown and every Field containing MIB object data 393 would appear identical. Without knowing which OID the contents of a 394 field map to, the data would be incomprehensible to a Collector. 396 For the values in the mibObjectValue Information Elements to be 397 understandable, more meta information about the mibObjectValue 398 Information Elements must be sent as part of the IPFIX export. The 399 required minimum to understand each field is the OID as defined in 400 Section 5.3.1. 402 One approach to this problem would be to extend the IPFIX standard to 403 allow extended field specifiers so metadata about fields can be 404 included in Data Templates. This would however require a new version 405 of the IPFIX standard which may not be backwards compatible. 406 However, future versions of IPFIX may export the required MIB 407 metadata as part of newer set versions. 409 This document defines a MIB Field Options Template to export the 410 extra meta information required for mibObjectValue Information 411 Elements. This is a standard IPFIX Options Template Set which 412 includes a minimum set of required fields (see Section 5.3.1) and may 413 include extra fields to provide more meta information about one of 414 the mibObjectValue Information Elements. 416 The MIB Field Options export is used to tell the Collecting process: 417 for the following (template, field) the MIB Object type definition 418 has this OID. 420 5.1. MIB Field Options Architecture 422 Four IPFIX Sets are used together to export a Flow which contains 423 mibObjectValue Information Elements. These are: 425 1. A Template Set which includes the mibObjectValue Information 426 Element. 428 The Template Set informs the Collector that a MIB object value 429 of length N will be exported. This Set may also be an Options 430 Template Set. 432 2. A MIB Field Options Template Set 434 The MIB Field Options Template describes which metadata will 435 be sent for each mibObjectValue Information Element being 436 exported. 438 3. A MIB Field Options Data Set 440 The MIB Field Options Data Set includes the metadata for each 441 MIB object (i.e. the mibObjectIdentifier or mibSubIdentifier). 442 The metadata about the mibObjectValue Information Elements 443 only needs to be resent as per normal Template refreshes or 444 resends. 446 4. A Data Set. 448 The Data Set contains only the actual data extracted from the 449 MIB or described by the MIB module. 451 Figure 2 shows the IPFIX Message structure for a MIB Field in a 452 Template Set. 454 +-------------------------------------------------------+ 455 | IPFIX Message Header | 456 +-------------------------------------------------------+ 457 | Template Set (A) | 458 +-------------------------------------------------------+ 459 | Options Template Set (B) (MIB Field Options Template) | 460 +-------------------------------------------------------+ 461 | Data Set (B) (MIB Field Options Data) | 462 +-------------------------------------------------------+ 463 | Data Set (A) | 464 +-------------------------------------------------------+ 466 Figure 2: IPFIX Message structure for a MIB Field in a Template Set 468 The MIB Field Options Template defines MIB Field Options Data 469 Records. The MIB Field Options Data Records annotate the Data 470 Template with mibObjectValue metadata. Together the Data Template 471 and MIB Field Options Data Records define the Data Records that will 472 be exported. 474 The Data Records (A) have a dependency on the two Templates and the 475 MIB Field Options Data Records. 477 More Data Sets that use the same mibObjectValue Information Element 478 can then be send in subsequent packets. 480 Figure 3 shows the relationships between the Sets discussed above. 482 +------------------------------+ 483 |MIB Field Options Template (B)| 484 +------------------------------+ 485 |(templateId, elementIndex) | 486 +------------------------------+ 487 | mibOID | 488 +------------------------------+ 489 | 490 | Defines 491 V 492 +------------------------+ +--------------------------+ 493 | Data Template (A) | |MIB Field Options Data (B)| 494 +------------------------+ +--------------------------+ 495 |Field 0 - regular IE | | | 496 +------------------------+ +--------------------------+ 497 |Field 1-mibObjectValue | <----------- | (X,1) = OID | 498 +------------------------+ Annotates +--------------------------+ 499 |Field 2-mibObjectValue | <----------- | (X,2) = OID | 500 +------------------------+ +--------------------------+ 501 | | 502 |------------------------------------/ 503 | 504 | Defines 505 | 506 V 507 +------------------------+ 508 | Data Records (A) | 509 |------------------------| 510 | Field 0 data | 511 +------------------------+ 512 | Field 1 data | 513 +------------------------+ 514 | Field 2 data | 515 +------------------------+ 517 Figure 3: Relationships between Sets 519 5.2. IPFIX and MIB Data Model 521 [RFC2578] species that the SYNTAX clause for a MIB object defines the 522 abstract data structure of an Object and what it must contain: 524 "The data structure must be one of the following: a base type, the 525 BITS construct, or a textual convention. (SEQUENCE OF and SEQUENCE 526 are also possible for conceptual tables, see section 7.1.12)." (From 527 [RFC2578] section 7.1). 529 For each of the SYNTAX clause options this document specifies exactly 530 which mibObjectValue Information Element to use. 532 If a MIB object to be exported is a Textual Convention, the 533 definition of the Textual Convention must be consulted and the SYNTAX 534 clause used to determine the correct base type. This may recurse if 535 the Textual Convention is defined in terms of another Textual 536 Convention but this should end at a base type. 538 If the SYNTAX clause contains a Textual Convention or Subtyping the 539 mibObjectSyntax Information Element SHOULD be used to export this 540 detail to the Collecting Process. 542 The Options for the SYNTAX are then mapped as follows: 544 +-----------------+---------------------+---------------------------+ 545 | RFC2578 Section | SYNTAX | mibObjectValue IE | 546 +-----------------+---------------------+---------------------------+ 547 | 7.1.1 | INTEGER/Integer32 | mibObjectValueInteger | 548 | 7.1.2 | OCTET STRING | mibObjectValueOctetString | 549 | 7.1.3 | OBJECT IDENTIFIER | mibObjectValueOID | 550 | 7.1.4 | The BITS construct | mibObjectValueBits | 551 | 7.1.5 | IpAddress | mibObjectValueIPAddress | 552 | 7.1.6 | Counter32 | mibObjectValueCounter | 553 | 7.1.7 | Gauge32 | mibObjectValueGauge | 554 | 7.1.8 | TimeTicks | mibObjectValueTimeTicks | 555 | 7.1.9 | Opaque | mibObjectValueOctetString | 556 | 7.1.10 | Counter64 | mibObjectValueCounter | 557 | 7.1.11 | Unsigned32 | mibObjectValueUnsigned | 558 | 7.1.12 | SEQUENCE | mibObjectValueRow | 559 | 7.1.12 | SEQUENCE OF | mibObjectValueTable | 560 +-----------------+---------------------+---------------------------+ 562 Table 1: SMIv2 SYNTAX to mibObjectValue types 564 Values are encoded as per the standard IPFIX encoding of Abstract 565 Data Types. The only new encoding references in this document is 566 that Object Identifiers (OID) will be encoded as per ASN.1/BER [BER] 567 in an octetArray. 569 The mibObjectValue and mibObjectIdentifier Information Elements are 570 standard IPFIX fields. Therefore the E bit of the mibObjectValue or 571 mibObjectIdentifier Information Elements is set to "0". 573 The MIB object being exported may be defined in an enterprise- 574 specific MIB module but the Information Elements defined in this 575 standard are still exported with the E bit set to "0". The OID 576 exported encodes that the MIB object was defined in a enterprise- 577 specific MIB Module. 579 5.3. MIB Field Options - Specifications and Required Fields 581 For each mibObjectValue Information Element that is defined in an 582 IPFIX Template, a MIB Field Options Data Record will be exported that 583 provides the required minimum information to define the MIB object 584 that is being exported (see Section 5.3.1). 586 The MIB Field Options Data Records are defined in a template referred 587 to in this document as a MIB Field Options Template with the format 588 specified in Section 5.4. 590 The MIB Field Options Template and MIB Field Options Data Records 591 MUST be exported in the same IPFIX Message as any Template that is 592 using a mibObjectValue Information Element. Note that this places an 593 implicit size constraint on the export. 595 This whole set of Templates and MIB Field Options Data Records MUST 596 all be exported prior to the corresponding Data Records which depend 597 upon them. i.e. the export order MUST be: 599 1. Data Template for mibObjectValue Information Elements 601 2. MIB Field Options Template 603 3. MIB Field Options Data Records 605 4. MIB Object Value Data Records 607 Note that the ID of an identical MIB Field Options Template which has 608 already been exported MAY be reused without exporting the Template 609 again. 611 5.3.1. MIB Field Options Template 613 Three fields are REQUIRED to unambiguously export a standalone 614 mibObjectValue Information Element with a MIB Field Options Template: 616 o (scope) templateId [IANA-IPFIX] 618 o (scope) informationElementIndex [IANA-IPFIX] 620 o mibObjectIdentifier (Section 11.2.2.1) or mibSubIdentifier 621 (Section 11.2.2.2) 623 These are the minimum fields required in a MIB Field Options Template 624 (see Section 5.4.2). 626 The mibObjectIdentifier is used to provide the OID for all 627 mibObjectValue Information Elements exported except for when 628 Structured Data is being used to export a conceptual row (see 629 Section 5.8.2). 631 While the following are optional, they are nevertheless RECOMMENDED 632 in certain circumstances as described in the referenced sections: 634 o mibCaptureTimeSemantics 635 (discussed in Section 5.4.5; IE defined in Section 11.2.2.4) 637 o mibIndexIndicator 638 (discussed in Section 5.8.5; IE defined in Section 11.2.2.3) 640 o mibContextEngineID 641 (discussed in Section 5.6; IE defined in Section 11.2.2.5) 643 o mibContextName 644 (discussed in Section 5.6; IE defined in Section 11.2.2.6) 646 5.3.2. MIB Type Options Template 648 There are also fields that provide type information from a MIB object 649 definition that MAY be exported to a Collecting Process. 651 Type information is statically defined in a MIB module; it is not 652 expected to change. However, the additional information about the 653 MIB object may help a Collecting Process that does not have access to 654 the MIB module. 656 To export a MIB Type Options Template, the mibObjectIdentifier is 657 RECOMMENDED as a Scope Field so that it matches the MIB Field Options 658 Template. Any combination of the other MIB Type fields may be 659 included. 661 o (scope) mibObjectIdentifier (see Section 11.2.2.1) 663 o mibObjectName (see Section 11.2.3.1) 665 o mibObjectDescription (see Section 11.2.3.2) 667 o mibObjectSyntax (see Section 11.2.3.3) 669 o mibModuleName (see Section 11.2.3.4) 671 5.4. MIB Field Options Template Formats 673 5.4.1. Data Template containing a mibObject Field 675 The Template Record format of a Template that uses a mibObjectValue 676 Information Element is identical to the standard IPFIX format as 677 defined in [RFC7011], so a field using a mibObjectValue Information 678 Element is specified using standard IPFIX Field Specifiers as in 679 [RFC7011]. 681 The only extra requirement on a Template Record using mibObjectValue 682 Information Element is that it MUST export the required metadata 683 specified for EACH mibObjectValue Information Element (see 684 Section 5.3.1). 686 If Multiple MIB Field Options Data Records that refer to a 687 mibObjectValue are received the latest MUST be used. This matches 688 the expected behavior of IPFIX Templates. 690 There is a one to one mapping between each mibObjectValue Information 691 Element and a MIB Field Options Data Record. 693 A MIB Field Options Template and corresponding Data Record MUST be 694 exported to provide the minimum required metadata. 696 Figure 4 shows an IPFIX Template Set using a mibObjectValue 697 Information Element. 699 0 1 2 3 700 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 701 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 702 | Set ID = 2 | Length = 16 | 703 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 704 | Template ID | Field Count = 2 | 705 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 706 |0| IE = Existing IPFIX Field | Field Length | 707 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 708 |0| IE = | Field Length (MIB) | 709 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 711 Figure 4: IPFIX Template Set using mibObjectValue Information Element 713 Where: 715 717 One of the mibObjectValue IPFIX Information Elements that 718 denotes that a MIB object data (i.e, the value of a MIB object) 719 will be exported in the (Options) Template Record. 721 This could be any one of the mibObjectValue Information 722 Elements defined in Section 11.2.1: mibObjectValueInteger, 723 mibObjectValueOctetString, mibObjectValueOID, 724 mibObjectValueIPAddress, mibObjectValueBITS, 725 mibObjectValueCounter, mibObjectValueGauge, 726 mibObjectValueTimeTicks, mibObjectValueUnsigned, 727 mibObjectValueTable, and mibObjectValueRow. 729 When a mibObjectValue Information Element is used, the MIB 730 Object Identifier ("mibObjectIdentifier") MUST be exported via 731 a MIB Field Options or by other means. See Section 5.3.1. 733 Field Length (MIB) 735 The length of the encoded MIB object data in the corresponding 736 Data Records, in octets. The definition is as [RFC7011]. Note 737 that the Field Length can be expressed using reduced size 738 encoding per [RFC7011]. Note that the Field Length may be 739 encoded using variable-length encoding per [RFC7011]. 741 5.4.2. MIB Field Options Template 743 The MIB Field Options Template is a Standard Options Template which 744 defines the Fields that will be exported to provide enough metadata 745 about a mibObjectValue Information Element so that the Collector can 746 tie the data values in the mibObjectValue Information Element back to 747 the definition of the MIB object. 749 All MIB Field Options Templates contain the fields as specified in 750 Section 5.3.1. 752 Figure 5 shows the required fields to export a mibObjectIdentifier 753 for the MIB Field Options Template format. 755 0 1 2 3 756 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 757 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 758 | Set ID = 3 | Length = 22 | 759 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 760 | Template ID | Field Count = 3 | 761 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 762 | Scope Field Count = 2 |0| IE = templateId | 763 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 764 | Field Length = 2 |0| IE = informationElementIndex| 765 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 766 | Field Length = 2 |0| IE = mibObjectIdentifier | 767 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 768 | Field Length = 65535 | 769 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 771 Figure 5: MIB Field Options Template Format - Required Fields 773 Where: 775 templateId 777 The first Scope Field is an IPFIX Information Element which 778 denotes that a Template Identifier will be exported as part of 779 the MIB Field Options Data Record. This Template Identifier 780 paired with an index into that template, the 781 "informationElementIndex" field, uniquely references one 782 mibObjectValue Information Element being exported. 784 informationElementIndex 786 The second Scope Field is an IPFIX Information Element which 787 denotes a zero based index into the fields defined by a 788 Template. When paired with a "templateId" the Record uniquely 789 references one mibObjectValue Information Element being 790 exported. 792 mibObjectIdentifier 793 An IPFIX Information Element which denotes the a MIB Object 794 Identifier for the mibObjectValue Information Element exported 795 in the (Options) Template Record. 797 When a MIB Object Value Information Element is used, the MIB 798 Object Identifier MUST be specified in the MIB Field Options 799 Template Record or specified by other means. 801 The Object Identifier is encoded in the IPFIX data record in 802 ASN.1/BER [BER] format. 804 Variable-length encoding SHOULD be used with the 805 mibObjectIdentifier so that multiple different length MIB OIDs 806 can be exported efficiently. This will also allow reuse of the 807 MIB Field Options Template. 809 5.4.3. MIB Field Options Data Records 811 The MIB Field Options Data Records conform to the Template 812 Specification in the MIB Field Options Template. There may be 813 multiple MIB Field Options Data Records exported. 815 The Collecting Process MUST store all received MIB Field Options Data 816 information for the duration of each Transport Session, because the 817 Collecting Process will need to refer to the extra meta information 818 to fully decode each mibObjectValue Information Element. 820 Figure 6 shows the format of the exported MIB Field Options Data 821 Record detailing the metadata that will be exported to match the 822 Template in Figure 5. 824 0 1 2 3 825 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 826 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 827 | Set ID | Length = N | 828 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 829 | templateId | informationElementIndex | 830 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 831 | VLEN | mibObjectIdentifier ... | 832 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 833 | ... mibObjectIdentifier continued ... | 834 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 835 | templateId | informationElementIndex | 836 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 837 | VLEN | mibObjectIdentifier ... | 838 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 839 | ... mibObjectIdentifier continued ... | 840 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 842 Figure 6: Format of MIB Field Options Data Record 844 5.4.4. Options Template containing a mibObject Field 846 The Options Template Record format of a Template that uses a 847 mibObjectValue Information Element is identical to the standard 848 format as defined in [RFC7011]. The mibObjectValue Information 849 Element is specified using standard Field Specifiers as in [RFC7011]. 851 A mibObjectValue Information Element can be either a Scope Field or a 852 non-Scope Field in an Options Template Record. 854 The only extra requirement on a Options Template Record using 855 mibObjectValue Information Element is that it MUST export the 856 required metadata specified in Section 5.3.1 for EACH mibObjectValue 857 Information Element. 859 An IPFIX Options Template Record MUST export a MIB Field Options 860 Template and Data Record to provide the minimum required metadata for 861 each mibObjectValue Information Element. 863 Figure 7 shows an IPFIX Options Template Set using an existing IPFIX 864 Field as a Scope Field and with a mibObjectValueInteger IE as a non- 865 Scope Field, while Figure 8 shows an IPFIX Options Template Set using 866 a mibObjectValueInteger IE as a Scope Field with an existing IPFIX 867 Field as a non-Scope Field. 869 0 1 2 3 870 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 871 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 872 | Set ID = 3 | Length = 18 | 873 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 874 | Template ID | Field Count = 2 | 875 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 876 | Scope Field Count = 1 |0| IE = Existing IPFIX Field | 877 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 878 | Field Length |0| IE = mibObjectValueInteger | 879 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 880 | Field Length | 881 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 883 Figure 7: IPFIX Options Template Set using a Non Scope 884 mibObjectValueInteger Field 886 0 1 2 3 887 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 888 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 889 | Set ID = 3 | Length = 18 | 890 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 891 | Template ID | Field Count = 2 | 892 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 893 | Scope Field Count = 1 |0| IE = mibObjectValueInteger | 894 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 895 | Field Length |0| IE = Existing IPFIX Field | 896 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 897 | Field Length | 898 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 900 Figure 8: IPFIX Options Template Set using a Scope 901 mibObjectValueInteger Field 903 5.4.5. MIB Field Options Template with Semantics Fields 905 A MIB Field Options Template MAY specify that extra Information 906 Elements will be exported to record how the mibObjectValue was 907 collected. 909 Alternatively, one of the existing IPFIX observationTime* elements 910 [IANA-IPFIX] may be exported to specify exactly when the value was 911 collected. 913 Figure 9 shows the MIB Field Options Template for a non-columnar 914 Field with Semantic Data. 916 0 1 2 3 917 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 918 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 919 | Set ID = 3 | Length = 26 | 920 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 921 | Template ID | Field Count = 4 | 922 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 923 | Scope Field Count = 2 |0| IE = templateId | 924 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 925 | Field Length = 2 |0| IE = informationElementIndex| 926 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 927 | Field Length = 2 |0| IE = mibObjectIdentifier | 928 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 929 | Field Length = 65535 |0| IE = mibCaptureTimeSemantics| 930 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 931 | Field Length = 1 | 932 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 934 Figure 9: MIB Field Options Template for a non-indexed Field with 935 Semantic Data 937 Where: 939 mibCaptureTimeSemantics 941 The MIB Capture Time Semantics IPFIX Information Element, as 942 defined in Section 11.2.2.4. 944 It is RECOMMENDED to include this field when exporting a 945 mibObjectValue Information Element that specifies counters or 946 statistics, in particular for situations with long lived Flows. 948 5.4.6. MIB Field Options Template with extra MIB Object Details 950 The OID exported within the mibObjectIdentifier IPFIX Information 951 Element provides a OID reference to a MIB object type definition that 952 will fully describe the MIB object data being Exported. 954 However an Exported Process MAY decide to include some extra fields 955 to more fully describe the MIB Object that is being exported with a 956 mibObjectValue Information Element. 958 This can be helpful if the Collecting Process may not have access to 959 the MIB module. 961 The exporting process can either include the extra object details 962 fields as part of the MIB Field Options Template, or export a 963 separate Options Template and Data that maps MIB OIDs in 964 mibObjectIdentifier Fields to the object details. 966 If only a few fields are being exported then including extra type 967 data in the MIB Field Options export will be more efficient. 969 The MIB Field Options Template for a non-indexed Field with extra MIB 970 object details is shown in Figure 10. 972 0 1 2 3 973 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 974 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 975 | Set ID = 3 | Length = 38 | 976 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 977 | Template ID | Field Count = 7 | 978 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 979 | Scope Field Count = 2 |0| IE = templateId | 980 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 981 | Field Length = 2 |0| IE = informationElementIndex| 982 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 983 | Field Length = 2 |0| IE = mibObjectIdentifier | 984 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 985 | Field Length = 65535 |0| IE = mibObjectSyntax | 986 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 987 | Field Length = 65535 |0| IE = mibObjectName | 988 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 989 | Field Length = 65535 |0| IE = mibObjectDescription | 990 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 991 | Field Length = 65535 |0| IE = mibModuleName | 992 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 993 | Field Length = 65535 | 994 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 996 Figure 10: MIB Field Options Template for a non-indexed Field with 997 extra MIB object details 999 Where: 1001 mibObjectSyntax 1003 The MIB object syntax string as defined in Section 11.2.3.3. 1005 Note that a separate mibObjectSyntax Information Element is 1006 required (rather than extend the existing 1007 informationElementDataType registry [IANA-IPFIX]) because the 1008 SYNTAX clause could contain almost any name. 1010 mibObjectName 1011 The textual name a mibObjectIdentifier Object. 1013 mibObjectDescription 1015 The textual description for a mibObjectIdentifier. 1017 mibModuleName 1019 The textual name of the MIB module that defines a MIB Object. 1021 The MIB details can be exported as an standard IPFIX Option export 1022 [RFC7011] as shown in Figure 11. This may be more efficient as the 1023 bulk of this data is text based and SHOULD be exported only once to 1024 the Collecting Process if there are many MIB objects being exported. 1025 This prevents this large textual data being included for every use of 1026 a mibObjectValue Information Element. 1028 0 1 2 3 1029 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 1030 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1031 | Set ID = 3 | Length = 30 | 1032 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1033 | Template ID | Field Count = 5 | 1034 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1035 | Scope Field Count = 1 |0| IE = mibObjectIdentifier | 1036 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1037 | Field Length = 65535 |0| IE = mibObjectSyntax | 1038 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1039 | Field Length = 65535 |0| IE = mibObjectName | 1040 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1041 | Field Length = 65535 |0| IE = mibObjectDescription | 1042 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1043 | Field Length = 65535 |0| IE = mibModuleName | 1044 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1045 | Field Length = 65535 | 1046 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1048 Figure 11: Alternative mibObjectIdentifier Option Export with object 1049 details 1051 5.5. Use of field order in the MIB Field Option template 1053 The MIB Field Options Template export makes use of the 1054 informationElementIndex [IANA-IPFIX] to specify which field in the 1055 template that the metadata relates to, which avoids any ordering 1056 constraints on the data template. The mibObjectValue Information 1057 Elements in a IPFIX export can be in any order in the export packet. 1059 However, fields used as an INDEX MUST be in the same order as 1060 specified in the INDEX clause of the conceptual row MIB object. 1062 The informationElementIndex specifies which Field in the Template 1063 extra information is being provided for. 1065 This is analogous to standard IPFIX Template Sets which also specify 1066 the order of the fields and provide their type and size. 1068 If the template changes such that the order is different then the MIB 1069 Field Options data MUST be resent to reflect the new ordering. A new 1070 Template ID MUST be used to reflect that the ordering has changed. 1071 Older MIB Field Options Data may refer to the incorrect field. 1073 A templateId [IANA-IPFIX] is only locally unique within a combination 1074 of a Observation Domain and Transport session. As such each MIB 1075 Field Options Data Record can only refer to templateIds within the 1076 same Observation Domain and session. 1078 5.6. Identifying the SNMP Context 1080 Each MIB OID is looked up in a specific context, usually the default 1081 context. If exporting a MIB OID value that isn't in the default 1082 context then the context MUST be identified by including the 1083 mibContextEngineID (see Section 11.2.2.5) and mibContextName (see 1084 Section 11.2.2.6) fields in the MIB Field Options Template and 1085 associated MIB Field Options Data Records, or be included in the same 1086 template as the mibFieldValue Field. 1088 This context data MUST be included for each field that is not in the 1089 default context. 1091 The context information MAY be exported as part of the Template that 1092 includes the mibObjectValue Information Element or the context 1093 information MAY be exported in the MIB Field Options Data Record that 1094 refers to the field. Context fields exported in the same Template 1095 MUST take precedence over those that refer to the template. Context 1096 fields MUST apply to all mibObjectValue Information Elements in the 1097 same template and there MUST NOT be duplicates of mibContextName or 1098 mibContextEngineID in a Template. 1100 So a MIB Field Options Template MAY specify no Context information, 1101 just the Context Engine ID or both the context engine and context 1102 name. This allows the exporter to export the bulk of data in the 1103 default context and only tag those required. 1105 Since the MIB Field Options Template applies for all the records of a 1106 Template using Context Fields in the MIB Field Options Data Template 1107 requires that each mibContextEngineID / mibContextName pair have its 1108 own Template. 1110 5.7. Template Management 1112 Templates are managed as per section 8 of [RFC7011] with the 1113 additional constraint that the MIB Field Options Template and MIB 1114 Field Options Data Records MUST be exported in the same IPFIX Message 1115 as any (Option) Template Record that uses a mibObjectValue 1116 Information Element. 1118 When exporting over an SCTP transport [RFC4960], the MIB Field 1119 Options Data Records MUST be exported reliably and in the same SCTP 1120 stream as their associated Templates per [RFC6526]. 1122 If a Template using a mibObjectValue Information Element is resent 1123 for any reason the Records it depends on MUST be sent as well. 1125 If a Template is replaced with a new (Option) Template then a new MIB 1126 Field Options Data Record MUST be sent with the replacement 1127 referencing the new Template ID. 1129 An Exporting Process SHOULD reuse MIB Field Options Template IDs when 1130 the Templates are identical. Each (Option) Template Record MUST 1131 still be accompanied by a copy of the MIB Field Options Template. 1133 5.7.1. Large Messages 1135 The requirement to export the MIB Field Options Template and MIB 1136 Field Options Data Records in the same IPFIX Message as any (Option) 1137 Template Record that uses a mibObjectValue Information Element may 1138 result in very large IPFIX Messages. 1140 In environments with restricted Message sizes, and only when a 1141 reliable SCTP transport is being used, the MIB Field Options 1142 Template, MIB Field Options Data, Data Template, and Data Records, 1143 MAY be exported in separate Messages in the same SCTP stream, 1144 provided that their order is maintained. 1146 5.7.2. Template Withdrawal and Reuse 1148 Data Records containing mibObjectValue Information Elements MUST NOT 1149 be exported if their corresponding Data Template or MIB Field Options 1150 Template has been withdrawn, since the MIB Field Options Template 1151 MUST be exported in the same IPFIX Message as the Data Template which 1152 it annotates. 1154 MIB Field Options Template IDs MUST NOT be reused while they are 1155 required by any existing Data Templates. 1157 5.8. Exporting Conceptual Rows and Tables 1159 There are three approaches for an IPFIX exporting process to export 1160 the values of columnar objects: 1162 1. Ignoring the indexing of Columnar Objects 1164 2. Exporting conceptual rows/table objects using structured data 1166 3. Exporting individual indexed Columnar Objects 1168 Firstly, a subordinate columnar object may be used purely use as a 1169 data type. In this case there is no index information or relation to 1170 a conceptual row object provided by the exporting process. 1172 Secondly, mibObjectValueRow or mibObjectValueTable can be used to 1173 export partial or complete conceptual rows using [RFC6313] structured 1174 data. 1176 Thirdly, in a mixed option/data IPFIX/MIB template, the 1177 mibObjectValue Information Element can have the values of the INDEX 1178 clause of the conceptual row provided by other fields in the record. 1179 In this case each mibObjectValue Information Element must specify 1180 which other field(s) in the template is providing the index 1181 information 1183 5.8.1. Exporting Conceptual Rows - indexing 1185 This document defines two forms of indexing that can be used for 1186 conceptual row MIB objects. 1188 Structured Data based indexing is used solely by the 1189 mibObjectValueRow Information Element. Each conceptual row of the 1190 MIB object corresponds to a single Data Record exported. The index 1191 fields defined in the INDEX clause of the MIB object MUST all be 1192 present in the same order as the Scope Fields. This allows a simple 1193 table export of a conceptual row MIB object without any extra fields 1194 required to indicate which fields make up the conceptual row INDEX. 1196 Field based indexing is used by giving each mibObjectValue 1197 Information Element a mibIndexIndicator to flag the required index 1198 fields. This allows complex indexing or mixing of existing IPFIX 1199 Information Element with MIB Fields with minimum overhead. It also 1200 allows multiple Columnar MIB objects from different conceptual rows 1201 be exported with complete indexing in one IPFIX Template. 1203 5.8.2. Exporting Conceptual Rows - mibObjectValueRow 1205 The simplest approach to exporting a complete or partial conceptual 1206 row object is done with the mibObjectValueRow Information Element. 1208 This is a Structured Data subTemplateList Information Element. The 1209 template specified MUST be an Options Template. It also MUST have 1210 the fields specified in the INDEX clause of the conceptual row object 1211 as the Scope Fields for the Option Export. 1213 An overview of this architecture is given in Figure 12. This shows 1214 that the full MIB object type definition OID is exported for the 1215 mibObjectValueRow conceptual row field but that the individual 1216 columnar objects only require the subIdentifier to be exported. To 1217 make the diagram clearer the Templates for the MIB Field Options 1218 Templates are not shown. 1220 +---------------------------+ +------------------------+ 1221 | Data Template | | MIB Field Options Data | 1222 | | | | 1223 | mibObjectValueRow |<---| OID | 1224 +---------------------------+ +------------------------+ 1225 | 1226 | +-----------------------+ +------------------------+ 1227 | | Options Template | | MIB Field Options Data | 1228 | | | | | 1229 | | Scope mibObjectValue* |<---| subIdentifiers | 1230 | | mibObjectValue* |<---| subIdentifiers | 1231 | +-----------------------+ +------------------------+ 1232 | | 1233 V V 1234 +---------------------------+ 1235 | Data Flows | 1236 | | 1237 | subTemplateList | 1238 +---------------------------+ 1240 Figure 12: Architecture for Exporting Conceptual Rows with 1241 mibObjectValueRow 1243 The mibIndexIndicator is not required for each individual 1244 mibObjectValue Information Element as mibObjectValueRow provides a 1245 structure that includes the index details. 1247 When Structured Data based indexing is used all Scope Fields MUST be 1248 the INDEX Objects in the same order as defined in the INDEX clause of 1249 the conceptual row being exported. 1251 The Full OID for the conceptual row MIB object type definition being 1252 exported with the mibObjectValueRow Information Element MUST be 1253 exported. However the fields that are members of the conceptual row 1254 need not have the full OID of their MIB object type definition 1255 exported. Instead the mibSubIdentifier Information Element can be 1256 used to document which entry in the conceptual row the Field is. 1258 In this case the export flow will contain a complete or partial row 1259 from a table inside a single field of the record. 1261 There may be MIB objects that are specified in the INDEX of the 1262 conceptual row but not columnar objects of the same conceptual row, 1263 for these the Exporter MUST provide the full OID in a 1264 mibObjectIdentifier field. 1266 So for a conceptual row object with the OID "1.2.3.4.5.6" the OID of 1267 the type definitions for columnar objects "1.2.3.4.5.6.1" 1268 "1.2.3.4.5.6.2" can be exported with just a subIdentifier of "1" and 1269 "2" respectively. 1271 The mibObjectValue Information Elements exported using the 1272 mibObjectValueRow export MUST all either be Objects defined in the 1273 INDEX clause, Columnar Objects of the same conceptual row object or 1274 Columnar Objects that AUGMENT the same conceptual row. 1276 Figure 13 shows an IPFIX Template for a Structured Data export of a 1277 conceptual row, while Figure 14 shows an IPFIX Options Template for a 1278 complete conceptual row with five columns and two INDEX fields. 1279 Figure 15 shows the MIB Field Options Template for a conceptual row 1280 field. Figure 16 shows the MIB Field Options Template for the 1281 columns inside the conceptual row. Figure 17 shows the OID data for 1282 the conceptual row would be exported. 1284 0 1 2 3 1285 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 1286 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1287 | Set ID = 2 | Length = 12 | 1288 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1289 | Template ID = 300 | Field Count = 1 | 1290 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1291 |0| IE = mibObjectValueRow | Field Length | 1292 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1294 Figure 13: IPFIX Template for a Conceptual Row 1296 0 1 2 3 1297 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 1298 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1299 | Set ID = 3 | Length = 30 | 1300 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1301 | Template ID = 301 | Field Count = 5 | 1302 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1303 | Scope Field Count = 2 |0| IE = mibObjectValue INDEX1 | 1304 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1305 | Field Length |0| IE = mibObjectValue INDEX2 | 1306 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1307 | Field Length |0| IE = mibObjectValue COLUM3 | 1308 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1309 | Field Length |0| IE = mibObjectValue COLUM4 | 1310 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1311 | Field Length |0| IE = mibObjectValue COLUM5 | 1312 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1313 | Field Length | 1314 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1316 Figure 14: IPFIX Options Template for a mibObjectValueRow with 5 1317 columns and 2 INDEX fields 1319 0 1 2 3 1320 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 1321 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1322 | Set ID = 3 | Length = 22 | 1323 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1324 | Template ID = 302 | Field Count = 3 | 1325 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1326 | Scope Field Count = 2 |0| IE = templateId | 1327 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1328 | Field Length = 2 |0| IE = informationElementIndex| 1329 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1330 | Field Length = 2 |0| IE = mibObjectIdentifier | 1331 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1332 | Field Length = 65535 | 1333 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1335 Figure 15: MIB Field Options Template for a Conceptual Row Object 1337 Where: 1339 templateId 1341 The templateId for the MIB Option that will be exported. 1343 mibObjectIdentifier 1344 The MIB OID for the Conceptual Row that is being exported. 1346 0 1 2 3 1347 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 1348 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1349 | Set ID = 3 | Length = 22 | 1350 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1351 | Template ID = 303 | Field Count = 3 | 1352 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1353 | Scope Field Count = 2 |0| IE = templateId | 1354 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1355 | Field Length = 2 |0| IE = informationElementIndex| 1356 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1357 | Field Length = 2 |0| IE = mibSubIdentifier | 1358 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1359 | Field Length = 2 | 1360 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1362 Figure 16: MIB Field Options Template for Columnar Objects of a 1363 Conceptual Table 1365 Where: 1367 templateId 1369 The templateId used will be for the Template referred to in the 1370 subTemplateList of the mibObjectValueRow that will be exported. 1372 mibSubIdentifier 1374 The sub identifier that specifies the columnar object's ID 1375 within the conceptual row. 1377 0 1 2 3 1378 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 1379 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1380 | Set ID = 302 | Length = N | 1381 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1382 | templateId = 300 | informationElementIndex | 1383 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1384 | VLEN | mibObjectIdentifier ... | 1385 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1386 | ... mibObjectIdentifier continued ... | 1387 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1389 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1390 | Set ID = 303 | Length = N | 1391 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1392 | templateId = 301 | informationElementIndex | 1393 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1394 | mibSubIdentifier | templateId = 301 | 1395 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1396 | informationElementIndex | mibSubIdentifier | 1397 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1398 | templateId = 301 | informationElementIndex | 1399 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1400 | mibSubIdentifier | templateId = 301 | 1401 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1402 | informationElementIndex | mibSubIdentifier | 1403 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1404 | templateId = 301 | informationElementIndex | 1405 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1406 | mibSubIdentifier | 1407 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1409 Figure 17: mibOption Data Record for the conceptual row 1411 Where: 1413 mibObjectIdentifier 1415 Will contain the OID for the conceptual row as a whole. 1417 mibSubIdentifier 1419 The mibSubIdentifier fields will contain the extra Sub 1420 Identifier that when added to the OID for the conceptual row 1421 give the full OID for the Object. 1423 5.8.3. Exporting Conceptual Rows - Augments 1425 SMIv2 defines conceptual rows as either having an INDEX clause or an 1426 AUGMENTS clause. Conceptual row definitions with an AUGMENTS clause 1427 extend an existing base conceptual row with an INDEX clause. It is 1428 not possible in SMIv2 to AUGMENT a conceptual row that itself has an 1429 AUGMENTS clause. The base table and the augmentation have an 1430 identical INDEX. 1432 Since augmentations allow adding extra columns to existing tables it 1433 is beneficial to be able to support them easily in IPFIX exports of 1434 conceptual rows. 1436 The mibObjectValueRow OID MAY refer either to the base table with the 1437 INDEX clause, or to a conceptual row with an AUGMENTS clause. The 1438 subIdentifiers in any MIB Field Options Data Record MUST always refer 1439 to the OID exported for the mibObjectValueRow IE. 1441 If the mibObjectValueRow OID refers to a base table then any extra 1442 columns from conceptual rows with an AUGMENTS clause MUST have their 1443 full OID exported. 1445 If the mibObjectValueRow OID refers to a conceptual row that augments 1446 another conceptual row using the AUGMENTS clause then any MIB fields 1447 from the original table's INDEX or Columnar Objects MUST NOT use the 1448 mibSubIdentifier and MUST instead export the full OID in a 1449 mibObjectIdentifier. 1451 If the mibObjectValueRow refers to an AUGMENTS conceptual row the 1452 Scope Fields of the Template using in the subTemplateList MUST have 1453 the INDEX fields from the base table, in the same order as its scope. 1454 This is identical to the Scope Field requirements for conceptual rows 1455 with an INDEX clause. 1457 This flexibility is provided so that the conceptual rows with the 1458 most columns can be exported using the more efficient 1459 mibSubIdentifier. For example exporting a complete set of 1460 augmentation columns would only require the full OIDs for the MIB 1461 objects in the INDEX. 1463 It is possible to export MIB object columns from multiple AUGMENTS 1464 conceptual rows. If this is done then the base table SHOULD be used 1465 as the main OID for the mibObjectValueRow. 1467 5.8.4. Exporting Conceptual Tables - mibObjectValueTable 1469 A list of mibObjectValueRow Information Element can be exported in 1470 the mibObjectValueTable Information Element (Section 11.2.1.10). 1471 This allows a set of conceptual rows corresponding to a conceptual 1472 table to be exported as a single field. This allows a complete set 1473 of rows to be used as a single entry with other information elements 1474 in a Template. 1476 The contents of a mibObjectValueTable MUST be mibObjectValueRow 1477 entries that all refer to the same MIB conceptual table. 1479 The complete OID for the conceptual table MUST be exported for any 1480 mibObjectValueTable Information Element. The complete OID for the 1481 contained mibObjectValueRow MUST also be exported. 1483 Each individual mibObjectValueRow includes in the 1484 mibObjectValueTable MUST follow the requirements in Section 5.8.2. 1486 5.8.5. Exporting Columnar Objects - using mibIndexIndicator 1488 The other option for indexing a Columnar Object that is part of a 1489 conceptual table is explicit indexing. In this case there may be non 1490 index fields in the scope of the option export or there may be 1491 columnar MIB objects from multiple conceptual rows being exported. 1492 In this case each mibObjectValue Information Element requires the 1493 mibIndexIndicator with the bits set for the fields that are used to 1494 index that individual columnar object. 1496 The index fields MUST be in the 'correct' order as defined in the 1497 conceptual row that each columnar object is a member of. 1499 If a mibObjectValue Information Element that is being indexed using 1500 mibIndexIndicator is being used as an Options Template Scope Field, 1501 then all fields used to index that field MUST also be Scope Fields. 1503 Figure 18 shows the MIB Field Options Template for an indexed MIB 1504 Columnar Object. 1506 0 1 2 3 1507 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 1508 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1509 | Set ID = 3 | Length = 26 | 1510 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1511 | Template ID | Field Count = 4 | 1512 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1513 | Scope Field Count = 2 |0| IE = templateId | 1514 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1515 | Field Length = 2 |0| IE = informationElementIndex| 1516 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1517 | Field Length = 2 |0| IE = mibIndexIndicator | 1518 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1519 | Field Length = 2 |0| IE = mibObjectIdentifier | 1520 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1521 | Field Length = 65535 | 1522 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1524 Figure 18: MIB Field Options Template for an indexed MIB Columnar 1525 Object 1527 Where: 1529 mibIndexIndicator 1531 The MIB Index Indicator IPFIX Information Element which marks 1532 which fields in the record will act as INDEX values for the 1533 exported MIB object. 1535 The index data for a mibObjectValue will be other fields 1536 contained in the same Data Record. The mibIndexIndicator marks 1537 the Fields whose value(s) should be added to the OID for the 1538 MIB object type definition exported in mibObjectIdentifier to 1539 get the OID for the instance of the MIB object. 1541 Elements used to index MIB objects MUST be exported in the same 1542 order as they are specified in the INDEX field of the 1543 conceptual table they belong to. 1545 6. Example Use Cases 1547 6.1. Non Columnar MIB Object: Established TCP Connections 1549 The number of established TCP connections of a remote network device 1550 could be monitored by configuring it to periodically export the 1551 number of established TCP connections to a centralized Collector. In 1552 this example, the Exporter would export an IPFIX Message every 30 1553 minutes that contained Data Records detailing the number of 1554 established TCP connections. 1556 The table of data that is to be exported looks like: 1558 +-------------------------+-----------------------+ 1559 | TIMESTAMP | ESTABLISHED TCP CONN. | 1560 +-------------------------+-----------------------+ 1561 | StartTime + 0 seconds | 10 | 1562 | StartTime + 60 seconds | 14 | 1563 | StartTime + 120 seconds | 19 | 1564 | StartTime + 180 seconds | 16 | 1565 | StartTime + 240 seconds | 23 | 1566 | StartTime + 300 seconds | 29 | 1567 +-------------------------+-----------------------+ 1569 Table 2: Established TCP Connections 1571 The Template Record for such a Data Record will detail two 1572 Information Elements: 1574 1. flowStartSeconds from [IANA-IPFIX], Information Element 150: The 1575 absolute timestamp of the first packet of this Flow. 1577 2. tcpCurrEstab from [RFC4022], Object ID "1.3.6.1.2.1.6.9": The 1578 number of TCP connections for which the current state is either 1579 ESTABLISHED or CLOSE-WAIT. 1581 Figure 19 shows the exported Template Set detailing the Template 1582 Record for exporting the number of established TCP connections. 1584 0 1 2 3 1585 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 1586 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1587 | Set ID = 2 | Length = 16 | 1588 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1589 | Template ID = 400 | Field Count = 2 | 1590 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1591 |0| IE = flowStartSeconds | Field Length = 4 | 1592 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1593 |0| IE = mibObjectValueGauge | Field Length = 4 | 1594 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1596 Figure 19: Example of tcpCurrEstab Template Set 1598 Figure 20 shows the exported MIB Field Options Template Set detailing 1599 the metadata that will be exported about the mibObjectValueGauge 1600 Information Element in Template 400 in Template Record. 1602 0 1 2 3 1603 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 1604 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1605 | Set ID = 3 | Length = 22 | 1606 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1607 | Template ID = 401 | Field Count = 3 | 1608 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1609 | Scope Field Count = 2 |0| IE = templateId | 1610 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1611 | Field Length = 2 |0| IE = informationElementIndex| 1612 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1613 | Field Length = 2 |0| IE = mibObjectIdentifier | 1614 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1615 | Field Length = 65535 | 1616 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1618 Figure 20: Example of tcpCurrEstab MIB Field Options Template Set 1620 Figure 21 shows the exported MIB Field Options Data Set detailing the 1621 metadata that will be exported about the mibObjectValueGauge 1622 Information Element in Template 400 in Template Record. 1624 The OID for the MIB object tcpCurrEstab from [RFC4022], Object ID 1625 "1.3.6.1.2.1.6.9", will be encoded in ASN.1/BER [BER] as 1626 '06072b060102010609' in the data record, which takes nine octets. 1628 0 1 2 3 1629 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 1630 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1631 | Set ID = 401 | Length = 18 | 1632 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1633 | templateId = 400 | informationElementIndex = 1 | 1634 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1635 | VLEN=9 | mibObjectIdentifier ... | 1636 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1637 | ... mibObjectIdentifier = "1.3.6.1.2.1.6.9" ... | 1638 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1639 | ... 06072b060102010609 ... | 1640 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1642 Figure 21: Example of tcpCurrEstab MIB Field Options Data Set 1644 Figure 22 shows the start of the Data Set for exporting the number of 1645 established TCP connections (see Section 6.1). 1647 0 1 2 3 1648 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 1649 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1650 | Set ID = 400 | Length = 52 | 1651 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1652 | StartTime + 0 seconds | 1653 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1654 | 10 | 1655 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1656 | StartTime + 60 seconds | 1657 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1658 | 14 | 1659 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1660 | StartTime + 120 seconds | 1661 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1662 | 19 | 1663 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1664 | StartTime + 180 seconds | 1665 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1666 | 16 | 1667 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1668 | StartTime + 240 seconds | 1669 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1670 | 23 | 1671 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1672 | StartTime + 300 seconds | 1673 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1674 | 29 | 1675 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1677 Figure 22: Example of tcpCurrEstab Data Set 1679 6.2. Enterprise Specific MIB Object: Detailing CPU Load History 1681 For the sake of demonstrating a enterprise-specific MIB object from 1682 the CISCO-PROCESS-MIB ([CISCO-PROCESS-MIB]) is chosen. This example 1683 would be valid with any enterprise-specific MIB module. 1685 The CPU Usage of a remote network device with 1 CPU could be 1686 monitored by configuring it to periodically export CPU usage 1687 information, i.e. the cpmCPUTotal1minRev from the proprietary CISCO- 1688 PROCESS-MIB, Object ID "1.3.6.1.4.1.9.9.109.1.1.1.1.7", to a 1689 centralized Collector. 1691 Although the cpmCPUTotal1minRev MIB object is a columnar object in a 1692 conceptual row, while there is only 1 CPU no extra information is 1693 conveyed by providing the INDEX field. So in this case it is 1694 acceptable to not export the cpmCPUTotalIndex MIB object. If there 1695 were multiple CPUs it would be appropriate to include this the 1696 cpmCPUTotalIndex field and specify the relationship. 1698 In this example, the Exporter would export an IPFIX Message every 30 1699 minutes that contained Data Records detailing the CPU 1 minute busy 1700 average at 1 minute intervals. 1702 The table of data that is to be exported looks like: 1704 +-------------------------+---------------------+ 1705 | TIMESTAMP | CPU BUSY PERCENTAGE | 1706 +-------------------------+---------------------+ 1707 | StartTime + 0 seconds | 10% | 1708 | StartTime + 60 seconds | 14% | 1709 | StartTime + 120 seconds | 19% | 1710 | StartTime + 180 seconds | 16% | 1711 | StartTime + 240 seconds | 23% | 1712 | StartTime + 300 seconds | 29% | 1713 +-------------------------+---------------------+ 1715 Table 3: CPU Usage Data 1717 The Template Record for such a Data Record will detail two 1718 Information Elements: 1720 1. flowStartSeconds from [IANA-IPFIX], Information Element 150: The 1721 absolute timestamp of the first packet of this Flow. 1723 2. a mibObjectValueGauge for cpmCPUTotal1minRev, the overall CPU 1724 busy percentage in the last one-minute period 1726 Figure 23 shows the exported Template Set detailing the Template 1727 Record for exporting CPU Load (see Section 6.2). 1729 0 1 2 3 1730 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 1731 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1732 | Set ID = 2 | Length = 16 | 1733 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1734 | Template ID = 402 | Field Count = 2 | 1735 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1736 |0| IE = flowStartSeconds | Field Length = 4 | 1737 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1738 |0| IE = mibObjectValueGauge | Field Length = 1 | 1739 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1741 Figure 23: Example of CPU Load Template Set 1743 Figure 24 shows the exported Template Set detailing the MIB Field 1744 Options Template for exporting CPU Load (see Section 6.2). Note this 1745 is identical to the MIB Field Options Template given in Figure 20 so 1746 the same template could have been reused. 1748 0 1 2 3 1749 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1750 | Set ID = 3 | Length = 22 | 1751 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1752 | Template ID = 403 | Field Count = 3 | 1753 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1754 | Scope Field Count = 2 |0| IE = templateId | 1755 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1756 | Field Length = 2 |0| IE = informationElementIndex| 1757 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1758 | Field Length = 2 |0| IE = mibObjectIdentifier | 1759 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1760 | Field Length = 65535 | 1761 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1763 Figure 24: Example of CPU Load MIB Field Options Template Set 1765 Figure 25 shows the exported MIB Field Options Data Set detailing the 1766 metadata that will be exported about the mibObjectValueGauge 1767 Information Element in Template 402 in Template Record (see 1768 Section 6.2). 1770 The OID for the cpmCPUTotal1minRev has been encoded using ASN.1/BER 1771 to '060d2b0601040109096d0101010107' at 15 octets long. 1773 0 1 2 3 1774 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 1775 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1776 | Set ID = 403 | Length = 24 | 1777 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1778 | templateId = 402 | informationElementIndex = 1 | 1779 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1780 | VLEN=15 | mibObjectIdentifier ... | 1781 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1782 | "1.3.6.1.4.1.9.9.109.1.1.1.1.7" ... | 1783 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1784 | 060d2b0601040109096d0101010107 ... | 1785 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1786 | ... | 1787 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1789 Figure 25: Example of CPULoad MIB Field Options Data Set 1791 Note that although cpmCPUTotal1minRev is 32 bits long, reduced size 1792 encoding [RFC7011] has been used to encoded it within a single octet. 1794 This example stresses that, even though the OID cpmCPUTotal1minRev is 1795 enterprise-specific, the E bit for the mibObjectValueGauge and 1796 mibObjectIdentifier is set to "0" since the "mibObjectValueGauge" and 1797 "mibObjectIdentifier" Information Element is not enterprise-specific. 1798 That this data is from an Enterprise MIB is included in the OID that 1799 includes an Enterprise ID. 1801 The corresponding Data Set does not add any value for this example, 1802 and is therefore not displayed. 1804 6.3. Exporting a Conceptual Row: The OSPF Neighbor Row 1806 Many conceptual tables are already defined in standard and 1807 proprietary MIBs. These can be exported with a minimum of overhead 1808 by using the mibObjectValueRow. This allows the Exporting Process to 1809 unambiguously define the INDEX for the entire conceptual row as the 1810 Scope Fields of an Option Export. The use of a MIB Field Options 1811 Template with mibSubIdentifier being used means that each individual 1812 columnar object does not need to have its OID exported to the 1813 collector 1815 The ospfNbrTable defined in the OSPF MIB [RFC4750] consists of 1816 ospfNbrEntry, which has the OID "1.3.6.1.2.1.14.10.1". Each 1817 mibObjectValueRow data record will therefore correspond to an 1818 ospfNbrEntry. 1820 The following fields will be exported: 1822 +----------------------+------------+----------------------+--------+ 1823 | Object | ID | mibObjectValue | Length | 1824 | | | | in | 1825 | | | | octets | 1826 +----------------------+------------+----------------------+--------+ 1827 | ospfNbrIpAddr | ospfNbrEnt | mibObjectValueIPAddr | 4 | 1828 | | ry 1 | ess | | 1829 | ospfNbrAddressLessIn | ospfNbrEnt | mibObjectValueIntege | 4 | 1830 | dex | ry 2 | r | | 1831 | ospfNbrRtrId | ospfNbrEnt | mibObjectValueIPAddr | 4 | 1832 | | ry 3 | ess | | 1833 | ospfNbrState | ospfNbrEnt | mibObjectValueIntege | 1 | 1834 | | ry 6 | r | | 1835 +----------------------+------------+----------------------+--------+ 1837 Table 4: OSPF Neighbor Entry Objects 1839 The OIDs that will be used to export this table are shown in Table 5. 1841 +-----------------------+----------------------+--------------------+ 1842 | Entity | Full OID | Exported as | 1843 +-----------------------+----------------------+--------------------+ 1844 | ospfNbrEntry | 1.3.6.1.2.1.14.10.1 | OID = 1.3.6.1.2.1. | 1845 | | | 14.10.1 | 1846 | ospfNbrIpAddr | 1.3.6.1.2.1.14.10.1. | subID = 1 | 1847 | | 1 | | 1848 | ospfNbrAddressLessInd | 1.3.6.1.2.1.14.10.1. | subID = 2 | 1849 | ex | 2 | | 1850 | ospfNbrRtrId | 1.3.6.1.2.1.14.10.1. | subID = 3 | 1851 | | 3 | | 1852 | ospfNbrState | 1.3.6.1.2.1.14.10.1. | subID = 6 | 1853 | | 6 | | 1854 +-----------------------+----------------------+--------------------+ 1856 Table 5: OSPF OIDs 1858 Figure 26 shows the Templates Exported to Support the 1859 mibObjectValueRow. Figure 27 shows the example OID Data for the 1860 conceptual row exported in mibObjectValueRow Figure 28 shows the 1861 example data export for a few neighbors in the table. Note that the 1862 OID for ospfNbrEntry has been encoded using ASN.1/BER to 1863 '06082B060102010E0A01' at 10 octets long. 1865 0 1 2 3 1866 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 1867 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1868 | Set ID = 2 | Length = 12 | 1869 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1870 | Template ID = 500 | Field Count = 1 | 1871 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1872 |0| IE = mibObjectValueRow | Field Length = 16 | 1873 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1875 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1876 | Set ID = 3 | Length = 26 | 1877 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1878 | Template ID = 501 | Field Count = 4 | 1879 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1880 | Scope Field Count = 2 |0| IE = mibObjectValueIPAddress| 1881 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1882 | Field Length = 4 |0| IE = mibObjectValueInteger | 1883 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1884 | Field Length = 4 |0| IE = mibObjectValueIPAddress| 1885 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1886 | Field Length = 4 |0| IE = mibObjectValueInteger | 1887 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1888 | Field Length = 1 | 1889 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1891 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1892 | Set ID = 3 | 1893 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1894 | Length = 22 | Template ID = 502 | 1895 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1896 | Field Count = 3 | Scope Field Count = 2 | 1897 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1898 |0| IE = templateId | Field Length = 2 | 1899 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1900 |0| IE = informationElementIndex| Field Length = 2 | 1901 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1902 |0| IE = mibObjectIdentifier | Field Length = 65535 | 1903 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1905 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1906 | Set ID = 3 | Length = 22 | 1907 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1908 | Template ID = 503 | Field Count = 3 | 1909 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1910 | Scope Field Count = 2 |0| IE = templateId | 1911 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1912 | Field Length = 2 |0| IE = informationElementIndex| 1913 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1914 | Field Length = 2 |0| IE = mibSubIdentifier | 1915 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1916 | Field Length = 2 | 1917 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1919 Figure 26: Example of ospfNbrEntry Template and Options Template Sets 1920 0 1 2 3 1921 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 1922 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1923 | Set ID = 502 | Length = 20 | 1924 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1925 | templateId = 500 | informationElementIndex = 0 | 1926 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1927 | VLEN=10 | mibObjectIdentifier = "1.3.6.1.2.1.14.10.1" | 1928 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1929 | 06082B060102010E0A01 | 1930 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1931 | | Padding = 0 | 1932 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1934 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1935 | Set ID = 503 | Length = 28 | 1936 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1937 | templateId = 501 | informationElementIndex = 0 | 1938 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1939 | mibSubIdentifier = 1 | templateId = 501 | 1940 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1941 | informationElementIndex = 1 | mibSubIdentifier = 2 | 1942 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1943 | templateId = 501 | informationElementIndex = 2 | 1944 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1945 | mibSubIdentifier = 3 | templateId = 501 | 1946 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1947 | informationElementIndex = 3 | mibSubIdentifier = 6 | 1948 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1950 Figure 27: Example of ospfNbrEntry OID Data export 1952 0 1 2 3 1953 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 1954 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1955 | Set ID = 500 | Length = 52 | 1956 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1957 |Semantic=FF | Template ID = 501 | ... | 1958 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1959 | ospfNbrIpAddr = 192.0.2.1 | ... | 1960 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1961 | ospfNbrAddressLessIndex = 0 | ... | 1962 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1963 | ospfNbrRtrId = 1.1.1.1 |ospfNbrState=8 | 1964 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1965 |Semantic=FF | Template ID = 501 | ... | 1966 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1967 | ospfNbrIpAddr = 192.0.2.2 | ... | 1968 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1969 | ospfNbrAddressLessIndex = 0 | ... | 1970 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1971 | ospfNbrRtrId = 2.2.2.2 |ospfNbrState=8 | 1972 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1973 |Semantic=FF | Template ID = 501 | ... | 1974 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1975 | ospfNbrIpAddr = 192.0.2.3 | ... | 1976 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1977 | ospfNbrAddressLessIndex = 0 | ... | 1978 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1979 | ospfNbrRtrId = 3.3.3.3 |ospfNbrState=1 | 1980 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1982 Figure 28: Example of Data Export for ospfNbrEntry 1984 6.4. Exporting Augmented Conceptual Row: The IF-MIB id to name mapping 1986 The ifTable defined in the [RFC2863] is augmented by the 1987 ifXTable (defined in the same MIB module). 1989 The OID of the ifEntry is 1.3.6.1.2.1.2.2.1 which is encoded using 1990 ASN.1/BER to '06082B06010201020201' at 10 octets long, while the OID 1991 of the augmenting ifXEntry is 1.3.6.1.2.1.31.1.1.1 which is encoded 1992 using ASN.1/BER to '060a2b060102011f01010101' at 12 octets long. 1994 This example demonstrates how columnar objects from the base 1995 conceptual row and the augmenting row can be exported in a single 1996 mibObjectValueRow Information Element. 1998 Table 6 shows the fields which will be exported. 2000 +---------+------------------+-------+-------------------+ 2001 | ifIndex | ifType | ifMtu | ifName | 2002 +---------+------------------+-------+-------------------+ 2003 | 1 | ethernetCsmacd:6 | 1500 | Ethernet 0/0 | 2004 | 2 | ethernetCsmacd:6 | 1500 | Ethernet 0/1 | 2005 | 3 | ethernetCsmacd:6 | 1500 | FastEthernet 1/0 | 2006 +---------+------------------+-------+-------------------+ 2008 Table 6: IF-MIB Data 2010 The OIDs that will be used to export this table are shown in Table 7. 2012 +---------+------------------------+--------------------------------+ 2013 | Entity | Full OID | Exported as | 2014 +---------+------------------------+--------------------------------+ 2015 | ifEntry | 1.3.6.1.2.1.2.2.1 | OID = 1.3.6.1.2.1.2.2.1 | 2016 | ifIndex | 1.3.6.1.2.1.2.2.1.1 | subID = 1 | 2017 | ifType | 1.3.6.1.2.1.2.2.1.3 | subID = 3 | 2018 | ifMtu | 1.3.6.1.2.1.2.2.1.4 | subID = 4 | 2019 | ifName | 1.3.6.1.2.1.31.1.1.1.1 | OID = 1.3.6.1.2.1.31.1.1.1.1 | 2020 +---------+------------------------+--------------------------------+ 2022 Table 7: IF-MIB OIDs 2024 Figure 29 shows the Templates Exported to Support the 2025 mibObjectValueRow Information Element. Figure 30 shows the example 2026 OID Data for the conceptual row exported in mibObjectValueRow to 2027 match Table 7. Figure 31 shows the example data export as per 2028 Table 6. 2030 0 1 2 3 2031 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 2032 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2033 | Set ID = 2 | Length = 12 | 2034 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2035 | Template ID = 600 | Field Count = 1 | 2036 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2037 |0| IE = mibObjectValueRow | Field Length = 24 | 2038 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2040 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2041 | Set ID = 3 | Length = 26 | 2042 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2043 | Template ID = 601 | Field Count = 4 | 2044 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2045 | Scope Field Count = 1 |0| IE = mibObjectValueInteger | 2046 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2047 | Field Length = 1 |0| IE = mibObjectValueInteger | 2048 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2049 | Field Length = 2 |0| IE = mibObjectValueInteger | 2050 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2051 | Field Length = 2 |0|IE =mibObjectValueOctetString| 2052 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2053 | Field Length = 16 | 2054 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2056 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2057 | Set ID = 3 | 2058 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2059 | Length = 22 | Template ID = 602 | 2060 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2061 | Field Count = 3 | Scope Field Count = 2 | 2062 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2063 |0| IE = templateId | Field Length = 2 | 2064 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2065 |0| IE = informationElementIndex| Field Length = 2 | 2066 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2067 |0| IE = mibObjectIdentifier | Field Length = 65535 | 2068 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2070 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2071 | Set ID = 3 | Length = 22 | 2072 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2073 | Template ID = 603 | Field Count = 3 | 2074 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2075 | Scope Field Count = 2 |0| IE = templateId | 2076 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2077 | Field Length = 2 |0| IE = informationElementIndex| 2078 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2079 | Field Length = 2 |0| IE = mibSubIdentifier | 2080 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2081 | Field Length = 2 | 2082 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2084 Figure 29: Example of Augmented ifEntry Template and Options Template 2085 Sets 2087 0 1 2 3 2088 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 2089 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2090 | Set ID = 602 | Length = 40 | 2091 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2092 | templateId = 600 | informationElementIndex = 0 | 2093 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2094 | VLEN=10 | mibObjectIdentifier ... | 2095 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2096 | ifEntry = 1.3.6.1.2.1.2.2.1 | 2097 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2098 | 06082B06010201020201 | Padding = 0 | 2099 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2100 | templateId = 601 | informationElementIndex = 3 | 2101 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2102 | VLEN=12 | mibObjectIdentifier ifName ... | 2103 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2104 | ifName = 1.3.6.1.2.1.31.1.1.1.1 | 2105 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2106 | 060a2b060102011f01010101 | 2107 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2108 | | Padding = 0 | 2109 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2111 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2112 | Set ID = 603 | Length = 22 | 2113 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2114 | templateId = 601 | informationElementIndex = 0 | 2115 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2116 | mibSubIdentifier = 1 | templateId = 601 | 2117 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2118 | informationElementIndex = 1 | mibSubIdentifier = 3 | 2119 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2120 | templateId = 601 | informationElementIndex = 2 | 2121 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2122 | mibSubIdentifier = 4 | 2123 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2125 Figure 30: Example of Augmented ifEntry OID Data export 2127 0 1 2 3 2128 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 2129 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2130 | Set ID = 600 | Length = 76 | 2131 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2132 |Semantic=FF | Template ID = 601 | ifIndex = 1 | 2133 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2134 | ifType = 6 | ifMtu = 1500 | 2135 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2136 | ifName = Ethernet 0/0 | 2137 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2138 | ... | 2139 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2140 | ... | 2141 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2142 | ... | 2143 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2144 |Semantic=FF | Template ID = 601 | ifIndex = 2 | 2145 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2146 | ifType = 6 | ifMtu = 1500 | 2147 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2148 | ifName = Ethernet 0/1 | 2149 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2150 | ... | 2151 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2152 | ... | 2153 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2154 | ... | 2155 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2156 |Semantic=FF | Template ID = 601 | ifIndex = 3 | 2157 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2158 | ifType = 6 | ifMtu = 1500 | 2159 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2160 | ifName = FastEthernet 1/0 | 2161 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2162 | ... | 2163 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2164 | ... | 2165 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2166 | ... | 2167 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2169 Figure 31: Example of Data Export for Augmented ifEntry 2171 6.5. Exporting a Columnar Object: The ipIfStatsInForwDatagrams 2173 It may be that the full set of columnar objects that are supported by 2174 a conceptual row are not required to be exported. Rather than use 2175 the Structured Data method the mibIndexIndicator method can be used 2176 to provide the relation between fields. 2178 This example shows the MIB Objects that are part of the INDEX of the 2179 conceptual row being exported in the correct order and then being 2180 referred to by using mibIndexIndicator. 2182 This example shows the export of ipIfStatsInForwDatagrams from the 2183 IP-MIB [RFC4293]. ipIfStatsInForwDatagrams is a columnar object that 2184 is part of the conceptual table ipIfStatsTable. This is comprised of 2185 ipIfStatsEntry conceptual rows. 2187 The ipIfStatsTable conceptual table is indexed by the 2188 ipIfStatsIPVersion and ipIfStatsIfIndex. 2190 The Options Template Record for the example Data Record contains the 2191 following Information Elements: 2193 1. ipIfStatsIPVersion (1.3.6.1.2.1.4.31.3.1.1) (Scope Field) 2194 (encoded using ASN.1/BER to '060A2B06010201041F030101' at 12 2195 octets long) 2197 2. ipIfStatsIfIndex (1.3.6.1.2.1.4.31.3.1.2) (Scope Field) 2198 (encoded using ASN.1/BER to '060A2B06010201041F030102' at 12 2199 octets long) 2201 3. ipIfStatsInForwDatagrams (1.3.6.1.2.1.4.31.3.1.12) (non-Scope 2202 Field) 2203 (encoded using ASN.1/BER to '060A2B06010201041F03010c' at 12 2204 octets long) 2206 Note ipIfStatsIfIndex has been reduce length encoded to 2 octets in 2207 the following example. An exporting device with more interfaces 2208 would use the full length. 2210 Figure 32 shows the exported Options Template Set. 2212 0 1 2 3 2213 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 2214 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2215 | Set ID = 3 | Length = 22 | 2216 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2217 | Template ID = 701 | Field Count = 3 | 2218 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2219 | Scope Field Count = 2 |0|Scope 1=mibObjectValueInteger| 2220 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2221 | Scope Field 1 Length = 1 |0|Scope 2=mibObjectValueInteger| 2222 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2223 | Scope Field 1 Length = 2 |0| IE = mibObjectValueCounter | 2224 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2225 | Field Length = 4 | 2226 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2228 Figure 32: Example of an Options Template for an Indexed MIB Object 2229 with two indices. 2231 Figure 33 shows the exported MIB Field Options Template used to 2232 export the required mibObjectValue Information Element metadata. 2233 This example of the MIB Field Options Template includes the 2234 mibIndexIndicator to indicate that some of the other fields in the 2235 data records are indexes. 2237 0 1 2 3 2238 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 2239 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2240 | Set ID = 3 | Length = 26 | 2241 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2242 | Template ID = 702 | Field Count = 4 | 2243 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2244 | Scope Field Count = 2 |0| IE = templateId | 2245 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2246 | Field Length = 2 |0| IE = informationElementIndex| 2247 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2248 | Field Length = 2 |0| IE = mibIndexIndicator | 2249 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2250 | Field Length = 1 |0| IE = mibObjectIdentifier | 2251 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2252 | Field Length = 65535 | 2253 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2255 Figure 33: Example of an MIB Field Options Template for an Indexed 2256 MIB Object with two indices. 2258 Figure 34 shows the exported MIB Field Options Data used to export 2259 the required mibObjectValue Information Element metadata. Note that 2260 the first two Data Records have all their mibIndexIndicator bits set 2261 to 0. The third mibIndexIndicator has the value '11000000' to show 2262 that the first two fields in the record are the INDEX's for this 2263 columnar object. 2265 0 1 2 3 2266 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 2267 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2268 | Set ID = 702 | Length = 58 | 2269 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2270 | templateId = 701 | informationElementIndex = 0 | 2271 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2272 |Index 00000000 | VLEN = 12 | mibObjectIdentifier ... | 2273 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2274 | "1.3.6.1.2.1.4.31.3.1.1" ... | 2275 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2276 | 060A2B06010201041F030101 ... | 2277 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2278 | | templateId = 701 | 2279 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2280 | informationElementIndex = 1 |Index 00000000 | VLEN = 12 | 2281 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2282 | mibObjectIdentifier = "1.3.6.1.2.1.4.31.3.1.2" ... | 2283 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2284 | 060A2B06010201041F030102 ... | 2285 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2286 | ... | 2287 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2288 | templateId = 701 | informationElementIndex = 2 | 2289 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2290 | Index 11000000 | VLEN = 12 | mibObjectIdentifier ... | 2291 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2292 | "1.3.6.1.2.1.4.31.3.1.12" ... | 2293 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2294 | 060A2B06010201041F03010c ... | 2295 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2296 | | 2297 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2299 Figure 34: Example of an MIB Field Options Data Set for an Indexed 2300 MIB Object with two indices. 2302 Figure 35 shows the Data Records that export the values of the 3 2303 mibObjectValue Information Elements. 2305 0 1 2 3 2306 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 2307 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2308 | Set ID = 701 | Length = 18 | 2309 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2310 | ipVer = 1 | ifIndex = 10 | ... | 2311 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2312 | InForwDatagrams = 10000 | ipVer = 2 | 2313 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2314 | ifIndex = 10 | InForwDatagrams = 20000 | 2315 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2316 | ... | 2317 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2319 Figure 35: Example of an MIB Data Set for an Indexed MIB Object with 2320 two indices. 2322 6.6. Exporting a Columnar Object indexed by IEs: ifOutQLen 2324 If a PSAMP Packet Report [RFC5476] was generated on any dropped 2325 packets on an interface then it may be desirable to know if the send 2326 queue on the output interface was full. This could be done by 2327 exporting the size of the send queue (ifOutQLen) in the same Data 2328 Record as the PSAMP Packet Report. 2330 The exported data looks like: 2332 +-----------+-----------+--------+--------------+-------------------+ 2333 | SRC ADDR | DST ADDR | PAK | OUTPUT | OUTPUT Q. LEN | 2334 | | | LEN | INTERFACE | (ifOutQLen) | 2335 +-----------+-----------+--------+--------------+-------------------+ 2336 | 192.0.2.1 | 192.0.2.3 | 150 | Eth 1/0 (15) | 45 | 2337 | 192.0.2.4 | 192.0.2.9 | 350 | Eth 1/0 (15) | 45 | 2338 | 192.0.2.3 | 192.0.2.9 | 650 | Eth 1/0 (15) | 23 | 2339 | 192.0.2.4 | 192.0.2.6 | 350 | Eth 1/1 (16) | 0 | 2340 +-----------+-----------+--------+--------------+-------------------+ 2342 Table 8: Packet Report with Interface Output Queue Length (ifOutQLen) 2343 Data 2345 The ifOutQLen MIB object defined in the IF-MIB [RFC2863] provides the 2346 length of the output packet queue. This columnar object is part of 2347 the ifEntry conceptual row and indexed by the interface index 2348 (ifIndex). 2350 This relationship between the ifOutQLen field and the index field is 2351 exported using mibIndexIndicator in the MIB Field Options Template. 2352 The value of "00010000" flags the index fields concisely. 2354 The Template Record for the example Data Record contains the 2355 following Information Elements: 2357 1. sourceIPv4Address 2359 2. destinationIPv4Address 2361 3. totalLengthIPv4 2363 4. egressInterface 2365 5. ifOutQLen indexed by: egressInterface 2367 Figure 36 shows the exported Template Set detailing the Template for 2368 exporting a PSAMP Report with Interface Output Queue Length 2369 (ifOutQLen). Figure 37 and Figure 38 show the MIB Field Options 2370 Template and Data Record. 2372 0 1 2 3 2373 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 2374 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2375 | Set ID = 2 | Length = 28 | 2376 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2377 | Template ID = 703 | Field Count = 5 | 2378 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2379 |0| IE = sourceIPv4Address | Field Length = 4 | 2380 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2381 |0| IE = destinationIPv4Address | Field Length = 4 | 2382 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2383 |0| IE = totalLengthIPv4 | Field Length = 4 | 2384 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2385 |0| IE = egressInterface | Field Length = 4 | 2386 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2387 |0| IE = mibObjectValueGauge | Field Length = 4 | 2388 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2390 Figure 36: Example of Template for a PSAMP Report with ifOutQLen 2391 indexed by egressInterface 2393 0 1 2 3 2394 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 2395 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2396 | Set ID = 3 | Length = 26 | 2397 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2398 | Template ID = 704 | Field Count = 4 | 2399 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2400 | Scope Field Count = 2 |0| IE = templateId | 2401 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2402 | Field Length = 2 |0| IE = informationElementIndex| 2403 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2404 | Field Length = 2 |0| IE = mibIndexIndicator | 2405 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2406 | Field Length = 1 |0| IE = mibObjectIdentifier | 2407 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2408 | Field Length = 65535 | 2409 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2411 Figure 37: Example of MIB Field Options Template for a PSAMP Report 2412 with ifOutQLen indexed by egressInterface 2414 0 1 2 3 2415 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 2416 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2417 | Set ID = 704 | Length = 21 | 2418 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2419 | templateId = 703 | informationElementIndex = 4 | 2420 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2421 |Index 00010000 | VLEN = 11 | mibObjectIdentifier ... | 2422 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2423 | "1.3.6.1.2.1.2.2.1.21" ... | 2424 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2425 | 06092B0601020102020115 ... | 2426 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2427 | | 2428 +-+-+-+-+-+-+-+-+ 2430 Figure 38: Example of MIB Field Options Data Record for a PSAMP 2431 Report with ifOutQLen indexed by egressInterface 2433 The corresponding IPFIX Data Record is shown in Figure 39. For the 2434 sake of the example, the interface index of "Eth 1/0" is 15 and the 2435 interface index of "Eth 1/1" is 16. 2437 0 1 2 3 2438 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 2439 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2440 | Set ID = 703 | Length = 84 | 2441 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2442 | 192.0.2.1 | 2443 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2444 | 192.0.2.3 | 2445 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2446 | 150 | 2447 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2448 | 15 (Eth 1/0) | 2449 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2450 | 45 | 2451 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2452 | 192.0.2.4 | 2453 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2454 | 192.0.2.9 | 2455 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2456 | 350 | 2457 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2458 | 15 (Eth 1/0) | 2459 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2460 | 45 | 2461 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2462 | 192.0.2.3 | 2463 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2464 | 192.0.2.9 | 2465 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2466 | 650 | 2467 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2468 | 15 (Eth 1/0) | 2469 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2470 | 23 | 2471 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2472 | 192.0.2.4 | 2473 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2474 | 192.0.2.6 | 2475 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2476 | 350 | 2477 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2478 | 16 (Eth 1/1) | 2479 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2480 | 0 | 2481 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2483 Figure 39: Example of PSAMP Packet Report with ifOutQLen indexed by 2484 egressInterface 2486 6.7. Exporting With Multiple Contexts: The OSPF Neighbor Row Revisited 2488 If the Context used to export the MIB objects is the default one no 2489 extra context fields are required. This example demonstrates how to 2490 handle the case when the Context needs to be specified. It is based 2491 on the previous example Section 6.3. 2493 The OSPF details exported of the conceptual row in Section 6.3 would 2494 be suitable if there were only one OSPF process running at the 2495 Observation Point. If multiple OSPF processes are present then they 2496 can be differentiated by also exporting the mibContextEngineID and 2497 mibContextName. 2499 The following fields will be exported: 2501 +----------------------+------------+----------------------+--------+ 2502 | Object | ID | mibObjectValue | Length | 2503 | | | | in | 2504 | | | | octets | 2505 +----------------------+------------+----------------------+--------+ 2506 | ospfNbrIpAddr | ospfNbrEnt | mibObjectValueIPAddr | 4 | 2507 | | ry 1 | ess | | 2508 | ospfNbrAddressLessIn | ospfNbrEnt | mibObjectValueIntege | 4 | 2509 | dex | ry 2 | r | | 2510 | ospfNbrRtrId | ospfNbrEnt | mibObjectValueIPAddr | 4 | 2511 | | ry 3 | ess | | 2512 | ospfNbrState | ospfNbrEnt | mibObjectValueIntege | 1 | 2513 | | ry 6 | r | | 2514 +----------------------+------------+----------------------+--------+ 2516 Table 9: OSPF Neighbor Entry Objects 2518 The example contextEngineID matches the example from [RFC3411] for 2519 Acme Networks: "'800002b804616263'H (enterprise 696, string 'abc')" 2521 Figure 40 shows the Templates Exported to support a mibObjectValueRow 2522 that is defined within a context. Figure 41 shows the example OID 2523 Data for the conceptual row exported in mibObjectValueRow. These are 2524 unchanged from the previous example. Figure 42 shows the example 2525 data for 2 OSPF neighbors. Although these have identical INDEX/scope 2526 values the context information indicates they come from different 2527 OSPF processes. Note that the OID for ospfNbrEntry has been encoded 2528 using ASN.1/BER to '06082B060102010E0A01' at 10 octets long. 2530 0 1 2 3 2531 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 2532 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2533 | Set ID = 2 | Length = 20 | 2534 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2535 | Template ID = 800 | Field Count = 3 | 2536 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2537 |0| IE = mibContextEngineID | Field Length = 8 | 2538 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2539 |0| IE = mibContextName | Field Length = 4 | 2540 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2541 |0| IE = mibObjectValueRow | Field Length = 16 | 2542 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2544 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2545 | Set ID = 3 | Length = 26 | 2546 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2547 | Template ID = 801 | Field Count = 4 | 2548 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2549 | Scope Field Count = 2 |0| IE = mibObjectValueIPAddress| 2550 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2551 | Field Length = 4 |0| IE = mibObjectValueInteger | 2552 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2553 | Field Length = 4 |0| IE = mibObjectValueIPAddress| 2554 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2555 | Field Length = 4 |0| IE = mibObjectValueInteger | 2556 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2557 | Field Length = 1 | 2558 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2560 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2561 | Set ID = 3 | 2562 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2563 | Length = 22 | Template ID = 802 | 2564 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2565 | Field Count = 3 | Scope Field Count = 2 | 2566 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2567 |0| IE = templateId | Field Length = 2 | 2568 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2569 |0| IE = informationElementIndex| Field Length = 2 | 2570 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2571 |0| IE = mibObjectIdentifier | Field Length = 65535 | 2572 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2574 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2575 | Set ID = 3 | Length = 22 | 2576 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2577 | Template ID = 803 | Field Count = 3 | 2578 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2579 | Scope Field Count = 2 |0| IE = templateId | 2580 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2581 | Field Length = 2 |0| IE = informationElementIndex| 2582 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2583 | Field Length = 2 |0| IE = mibSubIdentifier | 2584 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2585 | Field Length = 2 | 2586 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2588 Figure 40: Example of ospfNbrEntry Template and Options Template Sets 2589 with Context 2591 0 1 2 3 2592 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 2593 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2594 | Set ID = 802 | Length = 20 | 2595 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2596 | templateId = 800 | informationElementIndex = 2 | 2597 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2598 | VLEN=10 | mibObjectIdentifier = "1.3.6.1.2.1.14.10.1" | 2599 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2600 | 06082B060102010E0A01 | 2601 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2602 | | Padding = 0 | 2603 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2605 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2606 | Set ID = 803 | Length = 28 | 2607 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2608 | templateId = 801 | informationElementIndex = 0 | 2609 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2610 | mibSubIdentifier = 1 | templateId = 801 | 2611 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2612 | informationElementIndex = 1 | mibSubIdentifier = 2 | 2613 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2614 | templateId = 801 | informationElementIndex = 2 | 2615 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2616 | mibSubIdentifier = 3 | templateId = 801 | 2617 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2618 | informationElementIndex = 3 | mibSubIdentifier = 6 | 2619 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2621 Figure 41: Example of ospfNbrEntry OID Data export with Context 2622 0 1 2 3 2623 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 2624 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2625 | Set ID = 800 | Length = 60 | 2626 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2627 | mibContextEngineID = 800002b804616263 | 2628 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2629 | ... mibContextEngineID | 2630 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2631 | mibContextName = con1 | 2632 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2633 |Semantic=FF | Template ID = 801 | ... | 2634 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2635 | ospfNbrIpAddr = 192.0.2.1 | ... | 2636 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2637 | ospfNbrAddressLessIndex = 0 | ... | 2638 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2639 | ospfNbrRtrId = 1.1.1.1 |ospfNbrState=8 | 2640 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2641 | mibContextEngineID = 800002b804616263 | 2642 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2643 | ... mibContextEngineID | 2644 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2645 | mibContextName = con2 | 2646 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2647 |Semantic=FF | Template ID = 801 | ... | 2648 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2649 | ospfNbrIpAddr = 192.0.2.1 | ... | 2650 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2651 | ospfNbrAddressLessIndex = 0 | ... | 2652 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2653 | ospfNbrRtrId = 2.2.2.2 |ospfNbrState=8 | 2654 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2656 Figure 42: Example of Data Export for ospfNbrEntry with Context 2658 7. Configuration Considerations 2660 When configuring a MIB OID for export, consideration should be given 2661 to whether the SNMP Context String should also be configurable. If a 2662 non-default Context String is used then it should be associated with 2663 the fields as per Section 5.6. 2665 8. The Collecting Process's Side 2667 The specifications in section 9 of [RFC7011] also apply to Collectors 2668 that implement this specification. In addition, the following 2669 specifications should be noted. 2671 A Collecting Process that implements this specification MUST store 2672 the data records containing the OID Object Type Definitions with the 2673 same retention policy as templates. 2675 A Collecting Process that implements this specification SHOULD have 2676 access to MIB modules in order to look up the received MIB Object 2677 Identifiers and find the full type definition and name of MIB OID 2678 fields used in received templates. 2680 It should be noted that since reduced size encoding MAY be used by 2681 the Exporting Process, the Collecting Process cannot assume a 2682 received size for a field is the maximum size it should expect for 2683 that field. 2685 If a Collecting Process receives a MIB Object Identifier that it 2686 cannot decode, it MAY log a warning. 2688 A Collecting Process MUST support the 3 options for handling columnar 2689 objects detailed in Section 5.8. 2691 9. Applicability 2693 Making available the many and varied items from MIB modules opens up 2694 a wide range of possible applications for the IPFIX protocol, some 2695 quite different from the usual flow information. 2697 Some monitoring applications periodically export an interface ID to 2698 interface name mapping using IPFIX Options Templates. This could be 2699 expanded to include the MIB object "ifInUcastPkts" of the IF-MIB 2700 [RFC2863] indexed using the ingressInterface Information Element. 2701 This would give the input statistics for each interface which can be 2702 compared to the flow information to ensure the sampling rate is 2703 expected. Or, if there is no sampling, to ensure that all the 2704 expected packets are being monitored. 2706 10. Security Considerations 2708 For this extension to the IPFIX protocol, the same security 2709 considerations as for the IPFIX protocol apply [RFC7011]. 2711 If the exporter is generating or capturing the field values itself, 2712 e.g. using the MIB objects only as an encoding or type mechanism, 2713 there are no extra security considerations beyond standard IPFIX. 2715 However if the exporter is a client of an SNMP engine on the same 2716 device it MUST abide by existing SNMP security rules. 2718 The access to particular MIB objects is controlled by the 2719 configuration of the IPFIX exporter. This is consistent with the way 2720 IPFIX controls access to other Information Elements in general. 2722 The configuration of an IPFIX Exporter determines which MIB objects 2723 are included in IPFIX Data Records sent to certain collectors. 2724 Network operators should take care that the only MIB objects which 2725 are included in IPFIX Data Records are ones which the receiving flow 2726 collector is allowed to receive. 2728 11. IANA Considerations 2730 11.1. New IPFIX Semantics 2732 New IPFIX semantics must be allocated in IANA's IPFIX registry 2733 [IANA-IPFIX] per section 6 of [RFC7012], as defined in the sub- 2734 sections below. 2736 11.1.1. snmpCounter 2738 An integral value reporting the value of a counter, identical to the 2739 Counter32 and Counter64 semantics in [RFC2578], as determined by the 2740 field length. 2742 This is similar to IPFIX's totalCounter semantic, except that total 2743 counters have an initial value of 0, while SNMP counters do not. 2745 11.1.2. snmpGauge 2747 An integral value identical to the Gauge32 semantic in [RFC2578], and 2748 the Gauge64 semantic in [RFC2856], as determined by the field length. 2750 11.2. New IPFIX Information Elements 2752 The new Information Elements in Table 10 must be allocated in IANA's 2753 IPFIX registry [IANA-IPFIX], as defined in the sub-sections below. 2755 In each case the "Units" and "Range" are to be left blank, since 2756 these are not applicable. 2758 +-----------+---------------------------+ 2759 | ElementId | Name | 2760 +-----------+---------------------------+ 2761 | TBD1 | mibObjectValueInteger | 2762 | TBD2 | mibObjectValueOctetString | 2763 | TBD3 | mibObjectValueOID | 2764 | TBD4 | mibObjectValueBits | 2765 | TBD5 | mibObjectValueIPAddress | 2766 | TBD6 | mibObjectValueCounter | 2767 | TBD7 | mibObjectValueGauge | 2768 | TBD8 | mibObjectValueTimeTicks | 2769 | TBD9 | mibObjectValueUnsigned | 2770 | TBD10 | mibObjectValueTable | 2771 | TBD11 | mibObjectValueRow | 2772 | TBD12 | mibObjectIdentifier | 2773 | TBD13 | mibSubIdentifier | 2774 | TBD14 | mibIndexIndicator | 2775 | TBD15 | mibCaptureTimeSemantics | 2776 | TBD16 | mibContextEngineID | 2777 | TBD17 | mibContextName | 2778 | TBD18 | mibObjectName | 2779 | TBD19 | mibObjectDescription | 2780 | TBD20 | mibObjectSyntax | 2781 | TBD21 | mibModuleName | 2782 +-----------+---------------------------+ 2784 Table 10: New Information Elements 2786 11.2.1. New MIB Value Information Elements 2788 11.2.1.1. mibObjectValueInteger 2790 A new Information Element "mibObjectValueInteger" must be allocated 2791 in IANA's IPFIX registry [IANA-IPFIX], with the following definition: 2793 Description: An IPFIX Information Element which denotes that the 2794 integer value of a MIB object will be exported. The MIB Object 2795 Identifier ("mibObjectIdentifier") for this field MUST be exported 2796 in a MIB Field Option or via another means. This Information 2797 Element is used for MIB objects with the Base Syntax of Integer32 2798 and INTEGER with IPFIX Reduced Size Encoding used as required. 2799 The value is encoded as per the standard IPFIX Abstract Data Type 2800 of signed64. 2802 Abstract Data Type: signed64 2804 Data Type Semantics: identifier 2805 ElementId: TBD1 2807 Status: current 2809 Reference: [this document]. 2811 11.2.1.2. mibObjectValueOctetString 2813 A new Information Element "mibObjectValueOctetString" must be 2814 allocated in IANA's IPFIX registry [IANA-IPFIX], with the following 2815 definition: 2817 Description: An IPFIX Information Element which denotes that an 2818 Octet String or Opaque value of a MIB object will be exported. 2819 The MIB Object Identifier ("mibObjectIdentifier") for this field 2820 MUST be exported in a MIB Field Option or via another means. This 2821 Information Element is used for MIB objects with the Base Syntax 2822 of OCTET STRING and Opaque. The value is encoded as per the 2823 standard IPFIX Abstract Data Type of octetArray. 2825 Abstract Data Type: octetArray 2827 Data Type Semantics: default 2829 ElementId: TBD2 2831 Status: current 2833 Reference: [this document]. 2835 11.2.1.3. mibObjectValueOID 2837 A new Information Element "mibObjectValueOID" must be allocated in 2838 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 2840 Description: An IPFIX Information Element which denotes that an 2841 Object Identifier or OID value of a MIB object will be exported. 2842 The MIB Object Identifier ("mibObjectIdentifier") for this field 2843 MUST be exported in a MIB Field Option or via another means. This 2844 Information Element is used for MIB objects with the Base Syntax 2845 of OBJECT IDENTIFIER. Note - In this case the 2846 "mibObjectIdentifier" will define which MIB object is being 2847 exported while the value contained in this Information Element 2848 will be an OID as a value. The mibObjectValueOID Information 2849 Element is encoded as ASN.1/BER [BER] in an octetArray. 2851 Abstract Data Type: octetArray 2852 Data Type Semantics: default 2854 ElementId: TBD3 2856 Status: current 2858 Reference: [this document]. 2860 11.2.1.4. mibObjectValueBits 2862 A new Information Element "mibObjectValueBits" must be allocated in 2863 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 2865 Description: An IPFIX Information Element which denotes that a set 2866 of Enumerated flags or bits from a MIB object will be exported. 2867 The MIB Object Identifier ("mibObjectIdentifier") for this field 2868 MUST be exported in a MIB Field Option or via another means. This 2869 Information Element is used for MIB objects with the Base Syntax 2870 of BITS. The flags or bits are encoded as per the standard IPFIX 2871 Abstract Data Type of octetArray, with sufficient length to 2872 accomodate the required number of bits. If the number of bits is 2873 not an integer multiple of octets then the most significant bits 2874 at end of the octetArray MUST be set to zero. 2876 Abstract Data Type: octetArray 2878 Data Type Semantics: flags 2880 ElementId: TBD4 2882 Status: current 2884 Reference: [this document]. 2886 11.2.1.5. mibObjectValueIPAddress 2888 A new Information Element "mibObjectValueIPAddress" must be allocated 2889 in IANA's IPFIX registry [IANA-IPFIX], with the following definition: 2891 Description: An IPFIX Information Element which denotes that the 2892 IPv4 Address of a MIB object will be exported. The MIB Object 2893 Identifier ("mibObjectIdentifier") for this field MUST be exported 2894 in a MIB Field Option or via another means. This Information 2895 Element is used for MIB objects with the Base Syntax of IPaddress. 2896 The value is encoded as per the standard IPFIX Abstract Data Type 2897 of ipv4Address. 2899 Abstract Data Type: ipv4Address 2900 Data Type Semantics: default 2902 ElementId: TBD5 2904 Status: current 2906 Reference: [this document]. 2908 11.2.1.6. mibObjectValueCounter 2910 A new Information Element "mibObjectValueCounter" must be allocated 2911 in IANA's IPFIX registry [IANA-IPFIX], with the following definition: 2913 Description: An IPFIX Information Element which denotes that the 2914 counter value of a MIB object will be exported. The MIB Object 2915 Identifier ("mibObjectIdentifier") for this field MUST be exported 2916 in a MIB Field Option or via another means. This Information 2917 Element is used for MIB objects with the Base Syntax of Counter32 2918 or Counter64 with IPFIX Reduced Size Encoding used as required. 2919 The value is encoded as per the standard IPFIX Abstract Data Type 2920 of unsigned64. 2922 Abstract Data Type: unsigned64 2924 Data Type Semantics: snmpCounter 2926 ElementId: TBD6 2928 Status: current 2930 Reference: [this document]. 2932 11.2.1.7. mibObjectValueGauge 2934 A new Information Element "mibObjectValueGauge" must be allocated in 2935 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 2937 Description: An IPFIX Information Element which denotes that the 2938 Gauge value of a MIB object will be exported. The MIB Object 2939 Identifier ("mibObjectIdentifier") for this field MUST be exported 2940 in a MIB Field Option or via another means. This Information 2941 Element is used for MIB objects with the Base Syntax of Gauge32. 2942 The value is encoded as per the standard IPFIX Abstract Data Type 2943 of unsigned64. This value will represent a non-negative integer, 2944 which may increase or decrease, but shall never exceed a maximum 2945 value, nor fall below a minimum value. 2947 Abstract Data Type: unsigned32 2948 Data Type Semantics: snmpGauge 2950 ElementId: TBD7 2952 Status: current 2954 Reference: [this document]. 2956 11.2.1.8. mibObjectValueTimeTicks 2958 A new Information Element "mibObjectValueTimeTicks" must be allocated 2959 in IANA's IPFIX registry [IANA-IPFIX], with the following definition: 2961 Description: An IPFIX Information Element which denotes that the 2962 TimeTicks value of a MIB object will be exported. The MIB Object 2963 Identifier ("mibObjectIdentifier") for this field MUST be exported 2964 in a MIB Field Option or via another means. This Information 2965 Element is used for MIB objects with the Base Syntax of TimeTicks. 2966 The value is encoded as per the standard IPFIX Abstract Data Type 2967 of unsigned32. 2969 Abstract Data Type: unsigned32 2971 Data Type Semantics: default 2973 ElementId: TBD8 2975 Status: current 2977 Reference: [this document]. 2979 11.2.1.9. mibObjectValueUnsigned 2981 A new Information Element "mibObjectValueUnsigned" must be allocated 2982 in IANA's IPFIX registry [IANA-IPFIX], with the following definition: 2984 Description: An IPFIX Information Element which denotes that an 2985 unsigned integer value of a MIB object will be exported. The MIB 2986 Object Identifier ("mibObjectIdentifier") for this field MUST be 2987 exported in a MIB Field Option or via another means. This 2988 Information Element is used for MIB objects with the Base Syntax 2989 of unsigned64 with IPFIX Reduced Size Encoding used as required. 2990 The value is encoded as per the standard IPFIX Abstract Data Type 2991 of unsigned64. 2993 Abstract Data Type: unsigned64 2995 Data Type Semantics: identifier 2996 ElementId: TBD9 2998 Status: current 3000 Reference: [this document]. 3002 11.2.1.10. mibObjectValueTable 3004 A new Information Element "mibObjectValueTable" must be allocated in 3005 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3007 Description: An IPFIX Information Element which denotes that a 3008 complete conceptual table will be exported. The MIB Object 3009 Identifier ("mibObjectIdentifier") for this field MUST be exported 3010 in a MIB Field Option or via another means. This Information 3011 Element is used for MIB objects with a SYNTAX of SEQUENCE OF. 3012 This is encoded as a basicList of "mibObjectValueRow"s. The Field 3013 ID for the basicList MUST be TBD11. The mibObjectValueRow MUST be 3014 of the same type/OID as specified in this MIB object's syntax. 3016 Abstract Data Type: basicList 3018 Data Type Semantics: list 3020 ElementId: TBD10 3022 Status: current 3024 Reference: [this document]. 3026 11.2.1.11. mibObjectValueRow 3028 A new Information Element "mibObjectValueRow" must be allocated in 3029 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3031 Description: An IPFIX Information Element which denotes that a row 3032 of a conceptual table will be exported. The MIB Object Identifier 3033 ("mibObjectIdentifier") for this field MUST be exported in a MIB 3034 Field Option or via another means. This Information Element is 3035 used for MIB objects with a SYNTAX of SEQUENCE. This is encoded 3036 as a subTemplateList of mibObjectValue Information Elements. The 3037 template specified in the subTemplateList MUST be an Options 3038 Template and MUST include all the Objects listed in the INDEX 3039 clause as Scope Fields. 3041 Abstract Data Type: subTemplateList 3043 Data Type Semantics: list 3044 ElementId: TBD11 3046 Status: current 3048 Reference: [this document]. 3050 11.2.2. New MIB Field Options Information Elements 3052 11.2.2.1. mibObjectIdentifier 3054 A new Information Element "mibObjectIdentifier" must be allocated in 3055 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3057 Description: An IPFIX Information Element which denotes that a MIB 3058 Object Identifier (MIB OID) is exported in the (Options) Template 3059 Record. The mibObjectIdentifier Information Element contains the 3060 OID assigned to the MIB Object Type Definition encoded as ASN.1/ 3061 BER [BER] 3063 Abstract Data Type: octetArray 3065 Data Type Semantics: default 3067 ElementId: TBD12 3069 Status: current 3071 Reference: [this document]. 3073 11.2.2.2. mibSubIdentifier 3075 A new Information Element "mibSubIdentifier" must be allocated in 3076 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3078 Description: A non-negative sub-identifier of an Object Identifier 3079 (OID). 3081 Abstract Data Type: unsigned32 3083 Data Type Semantics: identifier 3085 ElementId: TBD13 3087 Status: current 3089 Reference: [this document]. 3091 11.2.2.3. mibIndexIndicator 3093 A new Information Element "mibIndexIndicator" must be allocated in 3094 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3096 Description: This set of bit fields is used for marking the 3097 Information Elements of a Data Record that serve as INDEX MIB 3098 objects for an indexed Columnar MIB object. Each bit represents 3099 an Information Element in the Data Record with the n-th bit 3100 representing the n-th Information Element. A bit set to value 1 3101 indicates that the corresponding Information Element is an index 3102 of the Columnar Object represented by the mibFieldValue. A bit 3103 set to value 0 indicates that this is not the case. 3105 If the Data Record contains more than 64 Information Elements, the 3106 corresponding Template SHOULD be designed such that all INDEX 3107 Fields are among the first 64 Information Elements, because the 3108 mibIndexIndicator only contains 64 bits. If the Data Record 3109 contains less than 64 Information Elements, then the extra bits in 3110 the mibIndexIndicator for which no corresponding Information 3111 Element exists MUST have the value 0, and must be disregarded by 3112 the Collector. This Information Element may be exported with 3113 IPFIX Reduced Size Encoding. 3115 Abstract Data Type: unsigned64 3117 Data Type Semantics: flags 3119 ElementId: TBD14 3121 Status: current 3123 Reference: [this document]. 3125 11.2.2.4. mibCaptureTimeSemantics 3127 A new Information Element "mibCaptureTimeSemantics" must be allocated 3128 in IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3130 Description: Indicates when in the lifetime of the flow the MIB 3131 value was retrieved from the MIB for a mibObjectIdentifier. This 3132 is used to indicate if the value exported was collected from the 3133 MIB closer to flow creation or flow export time and will refer to 3134 the Timestamp fields included in the same record. This field 3135 SHOULD be used when exporting a mibObjectValue that specifies 3136 counters or statistics. 3138 If the MIB value was sampled by SNMP prior to the IPFIX Metering 3139 Process or Exporting Process retrieving the value (i.e. the data 3140 is already stale) and it's important to know the exact sampling 3141 time, then an additional observationTime* element should be paired 3142 with the OID using structured data. Similarly, if different 3143 mibCaptureTimeSemantics apply to different mibObject elements 3144 within the Data Record, then individual mibCaptureTimeSemantics 3145 should be paired with each OID using structured data. 3147 Values: 3149 0. undefined 3151 1. begin - The value for the MIB object is captured from the 3152 MIB when the Flow is first observed 3154 2. end - The value for the MIB object is captured from the MIB 3155 when the Flow ends 3157 3. export - The value for the MIB object is captured from the 3158 MIB at export time 3160 4. average - The value for the MIB object is an average of 3161 multiple captures from the MIB over the observed life of the 3162 Flow 3164 Abstract Data Type: unsigned8 3166 Data Type Semantics: identifier 3168 ElementId: TBD15 3170 Status: current 3172 Reference: [this document]. 3174 11.2.2.5. mibContextEngineID 3176 A new Information Element "mibContextEngineID" must be allocated in 3177 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3179 Description: A mibContextEngineID that specifies the SNMP engine 3180 ID for a MIB field being exported over IPFIX. Definition as per 3181 [RFC3411] section 3.3 3183 Abstract Data Type: octetArray 3185 Data Type Semantics: default 3186 ElementId: TBD16 3188 Status: current 3190 Reference: [this document]. 3192 11.2.2.6. mibContextName 3194 A new Information Element "mibContextName" must be allocated in 3195 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3197 Description: This Information Element denotes that a MIB Context 3198 Name is specified for a MIB field being exported over IPFIX. 3199 Reference [RFC3411] section 3.3 3201 Abstract Data Type: string 3203 Data Type Semantics: default 3205 ElementId: TBD17 3207 Status: current 3209 Reference: [this document]. 3211 11.2.3. New MIB Type Information Elements 3213 11.2.3.1. mibObjectName 3215 A new Information Element "mibObjectName" must be allocated in IANA's 3216 IPFIX registry [IANA-IPFIX], with the following definition: 3218 Description: The name (called a descriptor in [RFC2578]) of an 3219 object type definition. 3221 Abstract Data Type: string 3223 Data Type Semantics: default 3225 ElementId: TBD18 3227 Status: current 3229 Reference: [this document]. 3231 11.2.3.2. mibObjectDescription 3233 A new Information Element "mibObjectDescription" must be allocated in 3234 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3236 Description: The value of the DESCRIPTION clause of an MIB object 3237 type definition. 3239 Abstract Data Type: string 3241 Data Type Semantics: default 3243 ElementId: TBD19 3245 Status: current 3247 Reference: [this document]. 3249 11.2.3.3. mibObjectSyntax 3251 A new Information Element "mibObjectSyntax" must be allocated in 3252 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3254 Description: The value of the SYNTAX clause of an MIB object type 3255 definition, which may include a Textual Convention or Subtyping. 3256 See [RFC2578]. 3258 Abstract Data Type: string 3260 Data Type Semantics: default 3262 ElementId: TBD20 3264 Status: current 3266 Reference: [this document]. 3268 11.2.3.4. mibModuleName 3270 A new Information Element "mibModuleName" must be allocated in IANA's 3271 IPFIX registry [IANA-IPFIX], with the following definition: 3273 Description: The textual name of the MIB module that defines a MIB 3274 Object. 3276 Abstract Data Type: string 3278 Data Type Semantics: default 3279 ElementId: TBD21 3281 Status: current 3283 Reference: [this document]. 3285 12. Acknowledgements 3287 The authors would like to thank Andrew Johnson for his collaboration 3288 on the first version of the draft, and to thank Andrew Feren and 3289 Brian Trammell for their detailed reviews. 3291 13. References 3293 13.1. Normative References 3295 [BER] International Organization for Standardization, 3296 "Information processing systems - Open Systems 3297 Interconnection - Specification of Basic Encoding Rules 3298 for Abstract Syntax Notation One (ASN.1),International 3299 Organization for Standardization. International Standard 3300 8825, December 1987", . 3302 [IANA-IPFIX] 3303 IANA, "IPFIX Information Elements registry", 3304 . 3306 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 3307 Requirement Levels", BCP 14, RFC 2119, March 1997. 3309 [RFC2578] McCloghrie, K., Ed., Perkins, D., Ed., and J. 3310 Schoenwaelder, Ed., "Structure of Management Information 3311 Version 2 (SMIv2)", STD 58, RFC 2578, April 1999. 3313 [RFC2856] Bierman, A., McCloghrie, K., and R. Presuhn, "Textual 3314 Conventions for Additional High Capacity Data Types", RFC 3315 2856, June 2000. 3317 [RFC3411] Harrington, D., Presuhn, R., and B. Wijnen, "An 3318 Architecture for Describing Simple Network Management 3319 Protocol (SNMP) Management Frameworks", STD 62, RFC 3411, 3320 December 2002. 3322 [RFC6526] Claise, B., Aitken, P., Johnson, A., and G. Muenz, "IP 3323 Flow Information Export (IPFIX) Per Stream Control 3324 Transmission Protocol (SCTP) Stream", RFC 6526, March 3325 2012. 3327 [RFC7011] Claise, B., Trammell, B., and P. Aitken, "Specification of 3328 the IP Flow Information Export (IPFIX) Protocol for the 3329 Exchange of Flow Information", STD 77, RFC 7011, September 3330 2013. 3332 [RFC7012] Claise, B. and B. Trammell, "Information Model for IP Flow 3333 Information Export (IPFIX)", RFC 7012, September 2013. 3335 13.2. Informative References 3337 [CISCO-PROCESS-MIB] 3338 Cisco Systems Inc., "CISCO-PROCESS-MIB.my: MIB for CPU and 3339 process statistics", . 3342 [RFC2863] McCloghrie, K. and F. Kastenholz, "The Interfaces Group 3343 MIB", RFC 2863, June 2000. 3345 [RFC2982] Kavasseri, R., "Distributed Management Expression MIB", 3346 RFC 2982, October 2000. 3348 [RFC3444] Pras, A. and J. Schoenwaelder, "On the Difference between 3349 Information Models and Data Models", RFC 3444, January 3350 2003. 3352 [RFC4022] Raghunarayan, R., "Management Information Base for the 3353 Transmission Control Protocol (TCP)", RFC 4022, March 3354 2005. 3356 [RFC4293] Routhier, S., "Management Information Base for the 3357 Internet Protocol (IP)", RFC 4293, April 2006. 3359 [RFC4750] Joyal, D., Galecki, P., Giacalone, S., Coltun, R., and F. 3360 Baker, "OSPF Version 2 Management Information Base", RFC 3361 4750, December 2006. 3363 [RFC4960] Stewart, R., "Stream Control Transmission Protocol", RFC 3364 4960, September 2007. 3366 [RFC5470] Sadasivan, G., Brownlee, N., Claise, B., and J. Quittek, 3367 "Architecture for IP Flow Information Export", RFC 5470, 3368 March 2009. 3370 [RFC5476] Claise, B., Johnson, A., and J. Quittek, "Packet Sampling 3371 (PSAMP) Protocol Specifications", RFC 5476, March 2009. 3373 [RFC6313] Claise, B., Dhandapani, G., Aitken, P., and S. Yates, 3374 "Export of Structured Data in IP Flow Information Export 3375 (IPFIX)", RFC 6313, July 2011. 3377 Authors' Addresses 3379 Paul Aitken (editor) 3380 Brocade 3381 Edinburgh, Scotland 3382 UK 3384 Phone: +44 203 005 0731 3385 Email: paitken@brocade.com 3387 Benoit Claise 3388 Cisco Systems, Inc. 3389 De Kleetlaan 6a b1 3390 Diegem 1813 3391 Belgium 3393 Phone: +32 2 704 5622 3394 Email: bclaise@cisco.com 3396 Srikar 3397 Cisco Systems, Inc. 3398 Mail Stop BGL13/3/, SEZ Unit, Cessna Business Park, Kadubeesanahalli 3399 Village Varthur Hobli, Sarjapur Marathalli Outer Ring Road 3400 Bangalore KARNATAKA 560 103 3401 IN 3403 Phone: +91 80 4426 3264 3404 Email: srikar@cisco.com 3406 Colin McDowall 3407 Cisco Systems, Inc. 3408 96 Commercial Quay 3409 Commercial Street 3410 Edinburgh EH6 6LX 3411 UK 3413 Phone: +44 131 561 3634 3414 Email: cmcdowal@cisco.com 3415 Juergen Schoenwaelder 3416 Jacobs University Bremen 3417 Campus Ring 1 3418 Bremen 28725 3419 Germany 3421 Phone: +49 421 200-3587 3422 Email: j.schoenwaelder@jacobs-university.de