idnits 2.17.1 draft-ietf-ipfix-mib-variable-export-09.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 (July 1, 2015) is 3214 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: January 2, 2016 S. B S 6 Cisco Systems, Inc. 7 C. McDowall 8 Brocade 9 J. Schoenwaelder 10 Jacobs University Bremen 11 July 1, 2015 13 Exporting MIB Variables using the IPFIX Protocol 14 draft-ietf-ipfix-mib-variable-export-09 16 Abstract 18 This document specifies a way to complement IPFIX Data Records with 19 Management Information Base (MIB) objects, avoiding the need to 20 define new IPFIX Information Elements for existing Management 21 Information Base objects that are already fully specified. 23 An IPFIX Options Template and method are specified, which are used to 24 export the extra information required to fully describe Simple 25 Network Management Protocol (SNMP) MIB objects in IPFIX. 27 Status of This Memo 29 This Internet-Draft is submitted in full conformance with the 30 provisions of BCP 78 and BCP 79. 32 Internet-Drafts are working documents of the Internet Engineering 33 Task Force (IETF). Note that other groups may also distribute 34 working documents as Internet-Drafts. The list of current Internet- 35 Drafts is at http://datatracker.ietf.org/drafts/current/. 37 Internet-Drafts are draft documents valid for a maximum of six months 38 and may be updated, replaced, or obsoleted by other documents at any 39 time. It is inappropriate to use Internet-Drafts as reference 40 material or to cite them other than as "work in progress." 42 This Internet-Draft will expire on January 2, 2016. 44 Copyright Notice 46 Copyright (c) 2015 IETF Trust and the persons identified as the 47 document authors. All rights reserved. 49 This document is subject to BCP 78 and the IETF Trust's Legal 50 Provisions Relating to IETF Documents 51 (http://trustee.ietf.org/license-info) in effect on the date of 52 publication of this document. Please review these documents 53 carefully, as they describe your rights and restrictions with respect 54 to this document. Code Components extracted from this document must 55 include Simplified BSD License text as described in Section 4.e of 56 the Trust Legal Provisions and are provided without warranty as 57 described in the Simplified BSD License. 59 Table of Contents 61 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 62 2. Motivation . . . . . . . . . . . . . . . . . . . . . . . . . 4 63 3. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 6 64 4. High Level Solution Overview . . . . . . . . . . . . . . . . 7 65 5. MIB Object Value Information Elements and the MIB Field 66 Options Template . . . . . . . . . . . . . . . . . . . . . . 8 67 5.1. MIB Field Options Architecture . . . . . . . . . . . . . 9 68 5.2. IPFIX and MIB Data Model . . . . . . . . . . . . . . . . 12 69 5.3. MIB Field Options - Specifications and Required Fields . 13 70 5.3.1. MIB Field Options Template . . . . . . . . . . . . . 14 71 5.3.2. MIB Type Options Template . . . . . . . . . . . . . . 14 72 5.4. MIB Field Options Template Formats . . . . . . . . . . . 15 73 5.4.1. Data Template containing a mibObject Field . . . . . 15 74 5.4.2. MIB Field Options Template . . . . . . . . . . . . . 16 75 5.4.3. MIB Field Options Data Records . . . . . . . . . . . 18 76 5.4.4. Options Template containing a mibObject Field . . . . 19 77 5.4.5. MIB Field Options Template with Semantics Fields . . 20 78 5.4.6. MIB Field Options Template with extra MIB Object 79 Details . . . . . . . . . . . . . . . . . . . . . . . 21 80 5.5. Use of field order in the MIB Field Option template . . . 23 81 5.6. Identifying the SNMP Context . . . . . . . . . . . . . . 24 82 5.7. Template Management . . . . . . . . . . . . . . . . . . . 25 83 5.7.1. Large Messages . . . . . . . . . . . . . . . . . . . 25 84 5.7.2. Template Withdrawal and Reuse . . . . . . . . . . . . 25 85 5.8. Exporting Conceptual Rows and Tables . . . . . . . . . . 26 86 5.8.1. Exporting Conceptual Rows - indexing . . . . . . . . 26 87 5.8.2. Exporting Conceptual Rows - mibObjectValueRow . . . . 27 88 5.8.3. Exporting Conceptual Rows - Augments . . . . . . . . 32 89 5.8.4. Exporting Conceptual Tables - mibObjectValueTable . . 33 90 5.8.5. Exporting Columnar Objects - using mibIndexIndicator 33 91 6. Example Use Cases . . . . . . . . . . . . . . . . . . . . . . 34 92 6.1. Non Columnar MIB Object: Established TCP Connections . . 34 93 6.2. Enterprise Specific MIB Object: Detailing CPU Load 94 History . . . . . . . . . . . . . . . . . . . . . . . . . 37 95 6.3. Exporting a Conceptual Row: The OSPF Neighbor Row . . . . 40 96 6.4. Exporting Augmented Conceptual Row: The IF-MIB id to name 97 mapping . . . . . . . . . . . . . . . . . . . . . . . . . 44 98 6.5. Exporting a Columnar Object: The ipIfStatsInForwDatagrams 48 99 6.6. Exporting a Columnar Object indexed by IEs: ifOutQLen . . 52 100 6.7. Exporting With Multiple Contexts: The OSPF Neighbor Row 101 Revisited . . . . . . . . . . . . . . . . . . . . . . . . 56 102 7. Configuration Considerations . . . . . . . . . . . . . . . . 59 103 8. The Collecting Process's Side . . . . . . . . . . . . . . . . 59 104 9. Applicability . . . . . . . . . . . . . . . . . . . . . . . . 60 105 10. Security Considerations . . . . . . . . . . . . . . . . . . . 60 106 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 61 107 11.1. New IPFIX Semantics . . . . . . . . . . . . . . . . . . 61 108 11.1.1. snmpCounter . . . . . . . . . . . . . . . . . . . . 61 109 11.1.2. snmpGauge . . . . . . . . . . . . . . . . . . . . . 61 110 11.2. New IPFIX Information Elements . . . . . . . . . . . . . 61 111 11.2.1. New MIB Value Information Elements . . . . . . . . . 62 112 11.2.2. New MIB Field Options Information Elements . . . . . 68 113 11.2.3. New MIB Type Information Elements . . . . . . . . . 71 114 12. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 73 115 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 73 116 13.1. Normative References . . . . . . . . . . . . . . . . . . 73 117 13.2. Informative References . . . . . . . . . . . . . . . . . 74 118 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 75 120 1. Introduction 122 There is growing interest in using IPFIX as a push mechanism for 123 exporting management information. Using a push protocol such as 124 IPFIX instead of a polling protocol like SNMP is especially 125 interesting in situations where large chunks of repetitive data need 126 to be exported periodically. 128 While initially targeted at different problems, there is a large 129 parallel between the information transported via IPFIX and SNMP. 130 Furthermore, certain Management Information Base (MIB) objects are 131 highly relevant to flows as they are understood today. For example, 132 in the IPFIX information model [IANA-IPFIX], Information Elements 133 coming from the SNMP world have already been specified, e.g., 134 ingressInterface and egressInterface both refer to the ifIndex 135 defined in [RFC2863]. 137 In particular the Management Information Base was designed as a 138 separate system of definitions which opens up the possibility of 139 exporting Objects defined via the MIB over other protocols. 141 Rather than mapping existing MIB objects to IPFIX Information 142 Elements on a case by case basis, it would be advantageous to enable 143 the export of any existing or future MIB objects as part of an IPFIX 144 Data Record. This way, the duplication of data models [RFC3444], 145 both as SMIv2 MIB objects and IPFIX Information Elements, out of the 146 same information model [RFC3444] would be avoided. 148 Therefore the primary goals of this document are: 150 o to specify a way to complement IPFIX Data Records with Management 151 Information Base (MIB) objects; 153 o to avoid the need to define new IPFIX Information Elements for 154 existing Management Information Base objects that are already 155 fully specified; 157 o to allow the correlation of SNMP and IPFIX sourced data by 158 exporting them together; 160 o to allow SNMP push data from SNMP-only devices to be more easily 161 integrated into IPFIX based collection infrastructures. 163 2. Motivation 165 The intended scope of this work is the addition of MIB variable(s) to 166 IPFIX Information Elements in Data Records, in order to complement 167 the Records with useful and already standardized information. 168 Special consideration is given to the case of an existing Template 169 Record which needs to be augmented with some MIB variables whose 170 index is already present in the Template Record as an IPFIX 171 Information Element. For example a 7-tuple Record containing the 172 ingressInterface Information Element, which needs to be augmented by 173 interface counters [RFC2863] which are indexed by the respective 174 ingressInterface values which are already contained in the Data 175 Records. 177 Many Data Records contain the ingressInterface and/or the 178 egressInterface Information Elements. These Information Elements 179 carry an ifIndex value, a MIB object defined in [RFC2863]. In order 180 to retrieve additional information about the identified interface, a 181 Collector could simply poll relevant objects from the device running 182 the Exporter via SNMP. However, that approach has several problems: 184 o It requires implementing a mediation function between two data 185 models, i.e., MIB objects and IPFIX Information Elements. 187 o Confirming the validity of simple mappings (e.g., ifIndex to 188 ifName) requires either checking on a regular basis that the 189 Exporter's network management system did not reload, or imposing 190 ifIndex persistence across an Exporter's reload. 192 o Synchronization problems occur since counters carried in Data 193 Records and counters carried in SNMP messages are retrieved from 194 the Exporter at different points in time and thus cannot be 195 correlated. In the best case, assuming very tight integration of 196 an IPFIX Collector with an SNMP polling engine, SNMP data is 197 retrieved shortly after Data Records have been received, which 198 implies a delay of the sum of the active or inactive timeouts (if 199 not null) plus the time to export the Data Record to the 200 Collector. If, however, the SNMP data is retrieved by a generic 201 Network Management Station (NMS) polling interface statistics, 202 then the time lag between IPFIX counters and SNMP counters can be 203 significantly higher. See [RFC5470] section 5.1.1. "Flow 204 Expiration" for details of active and inactive timeouts. 206 This document does not specify how to carry SNMP notifications in 207 IPFIX, even if the specifications in this document could potentially 208 allow this. 210 Since IPFIX is a push mechanism, initiated from the Exporter with no 211 acknowledgment method, this specification does not provide the 212 ability to execute configuration changes. 214 The Distributed Management Expression MIB [RFC2982], which is a 215 mechanism to create new MIB variables based on the content of 216 existing ones, could also be advantageous in the context of this 217 specification. Indeed, newly created MIB objects (for example, the 218 link utilization MIB variable), created with the Distributed 219 Management Expression MIB [RFC2982] could nicely complement Data 220 Records. 222 Another advantage of exporting MIB objects via IPFIX is that IPFIX 223 would benefit from an extended series of types to be exported. The 224 simple and application-wide data types specified in SMIv2 [RFC2578], 225 along with new Textual Conventions, can be exported within IPFIX and 226 then decoded in the Collector. However, since a Textual Convention 227 can contain almost any name, this document does not extend the 228 existing informationElementDataType registry [IANA-IPFIX]. 230 The overall architectural model is depicted in Figure 1. The IPFIX 231 Exporter accesses the device's instrumentation, which follows the 232 specifications contained in MIB modules. Other management interfaces 233 such as NETCONF or the device's Command Line Interface (CLI) may 234 provide access to the same instrumentation. 236 +------+ +-------+ +.........+ +.....+ 237 | SNMP | | IPFIX | : NETCONF : : CLI : 238 +------+ +-------+ +.........+ +.....+ 239 | | | | 240 +--------------------------------------------+ 241 | Instrumentation (specified in MIB modules) | 242 +--------------------------------------------+ 244 Figure 1: Architectural Model 246 3. Terminology 248 IPFIX-specific terminology (Information Element, Template, Template 249 Record, Options Template Record, Template Set, Collector, Exporter, 250 Data Record, etc.) used in this document is defined in Section 2 of 251 [RFC7011]. As in [RFC7011], these IPFIX-specific terms have the 252 first letter of a word capitalized. 254 This document prefers the more generic term "Data Record" (as opposed 255 to "Flow Record") in relation to the export of MIB objects. 257 Object Identifier (MIB OID) 259 An Object Identifier value is an ordered list of non-negative 260 numbers. For the SMIv2, each number in the list is referred to as 261 a sub-identifier. There are at most 128 sub-identifiers in a 262 value, and each sub-identifier has a maximum value of 2^32 - 1 263 (4294967295 decimal). See [RFC2578] Section 3.5. 265 MIB Object Identifier Information Element 267 An IPFIX Information Element ("mibObjectIdentifier") which denotes 268 that a MIB Object Identifier (MIB OID) is exported in the 269 (Options) Data Record. See Section 11.2.2.1. 271 SMIv2 Terminology 273 The key words "MIB Module", "MIB Object", "INDEX", "AUGMENTS", 274 "textual convention", "columnar object", "conceptual row", and 275 "conceptual table" in this document are to be interpreted as 276 described in SMIv2 [RFC2578] 278 SMIv2 SYNTAX 280 The SYNTAX key words "INTEGER", "Integer32", "OCTET STRING", 281 "OBJECT IDENTIFIER", "BITS construct", "IpAddress", "Counter32", 282 "Gauge32", "TimeTicks", "Opaque", "Counter64", "Unsigned32", 283 "SEQUENCE", and "SEQUENCE OF" in this document are to be 284 interpreted as described in SMIv2 [RFC2578]. 286 SNMP Context Terminology 288 The key words "snmpEngineID", "contextEngineID", and "contextName" 289 in this document are to be interpreted as described in [RFC3411] 291 mibObjectValue Information Elements 293 Refers to any and all of the mibObjectValue Information Elements 294 generically. Any restriction or requirement in this document that 295 refers to mibObjectValue applies to the following Information 296 Elements defined in Section 11.2.1: mibObjectValueInteger, 297 mibObjectValueOctetString, mibObjectValueOID, 298 mibObjectValueIPAddress, mibObjectValueBITS, 299 mibObjectValueCounter, mibObjectValueGauge, 300 mibObjectValueTimeTicks, mibObjectValueUnsigned, 301 mibObjectValueTable, and mibObjectValueRow. 303 IE 305 Used as a shorthand for "Information Element" [RFC7011] in the 306 figures. 308 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 309 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 310 "OPTIONAL" in this document are to be interpreted as described in 311 [RFC2119]. 313 4. High Level Solution Overview 315 This document specifies a method for creating IPFIX Options Templates 316 that are used to export the extra data required to describe MIB 317 variables (see Section 5.1). 319 This allows IPFIX Templates to contain any combination of fields 320 defined by traditional IPFIX Information Element(s) and/or MIB Object 321 Identifier(s). The MIB Object Identifiers can reference either non 322 columnar or columnar MIB object(s). Enterprise-specific MIB Object 323 Identifiers are also supported. 325 This document also defines two standard IPFIX Options Templates (see 326 Section 5.3) that are used as part of the mechanism to export MIB 327 object meta data: 329 o MIB Field Options Template (Section 5.3.1) 330 o MIB Type Options Template (Section 5.3.2) 332 This document defines three classes of new IPFIX Information 333 Elements. These are used to export values from the MIB, export 334 required Object Identifier information, and optionally export type 335 data from a MIB Module: 337 o MIB Object Value Information Elements (Section 11.2.1) 339 o MIB Field Options Information Elements (Section 11.2.2) 341 o MIB Type Information Information Elements (Section 11.2.3) 343 Additionally, this document defines two new IPFIX semantics which are 344 required for the new Information Elements: 346 o snmpCounter (Section 11.1.1) 348 o snmpGauge (Section 11.1.2) 350 One common type defined in the SMIv2 are conceptual rows and 351 conceptual tables. It is desirable that exporting a complete or 352 partial conceptual row is simple and efficient. This is accomplished 353 by using IPFIX Structured Data [RFC6313] to reduce repetition of 354 Object Identifier and indexing data. 356 To allow the use of individual columnar objects that make up a 357 conceptual row, a method is also specified to detail that a MIB 358 object is indexed by other fields in the same Data Flow. For an 359 individually indexed mibObjectValue the INDEX fields are sent as any 360 of the other fields in the same Record, and may be mibObjectValue 361 Information Element(s) or other existing Information Element(s). 363 Also, in some cases Exporters may not want (or be able) to export the 364 full information on how the MIB objects being exported are indexed. 365 This may be because the MIB object is being used purely as type 366 information or the Exporting Process may not have knowledge of the 367 indexing required. Therefore providing index information for 368 Columnar Objects is optional. 370 5. MIB Object Value Information Elements and the MIB Field Options 371 Template 373 This document defines new mibObjectValue Information Elements (in 374 Section 11.2.1). These are used to export MIB objects as part of 375 standard IPFIX Templates. The mibObjectValue Information Elements 376 contain the actual data values. 378 The Metering or Exporting Process may extract the data values for 379 mibObjectValue Information Elements from a Process that resides on 380 the same device or may capture or create the data required to match 381 the definition of the MIB object. In particular exporting a value of 382 a MIB object defined in a certain MIB module does not imply that the 383 SNMP process on the device supports that MIB module. 385 The main issue that arises from exporting values of MIB objects in 386 IPFIX is that MIB Object Identifiers do not fit into the standard 387 IPFIX Template format [RFC7011], as this only provides a 16-bit 388 Information Element identifier. 390 The values of a MIB object could be exported using a MIB specific 391 Information Element without providing any Object Identifiers. 392 However, without exporting the actual MIB OID the full type of the 393 data would be unknown and every Field containing MIB object data 394 would appear identical. Without knowing which OID the contents of a 395 field map to, the data would be incomprehensible to a Collector. 397 For the values in the mibObjectValue Information Elements to be 398 understandable, more meta information about the mibObjectValue 399 Information Elements must be sent as part of the IPFIX export. The 400 required minimum to understand each field is the OID as defined in 401 Section 5.3.1. 403 One approach to this problem would be to extend the IPFIX standard to 404 allow extended field specifiers so metadata about fields can be 405 included in Data Templates. This would however require a new version 406 of the IPFIX standard which may not be backwards compatible. 407 However, future versions of IPFIX may export the required MIB 408 metadata as part of newer set versions. 410 This document defines a MIB Field Options Template to export the 411 extra meta information required for mibObjectValue Information 412 Elements. This is a standard IPFIX Options Template Set which 413 includes a minimum set of required fields (see Section 5.3.1) and may 414 include extra fields to provide more meta information about one of 415 the mibObjectValue Information Elements. 417 The MIB Field Options export is used to tell the Collecting process: 418 for the following (template, field) the MIB Object type definition 419 has this OID. 421 5.1. MIB Field Options Architecture 423 Four IPFIX Sets are used together to export a Flow which contains 424 mibObjectValue Information Elements. These are: 426 1. A Template Set which includes the mibObjectValue Information 427 Element. 429 The Template Set informs the Collector that a MIB object value 430 of length N will be exported. This Set may also be an Options 431 Template Set. 433 2. A MIB Field Options Template Set 435 The MIB Field Options Template describes which metadata will 436 be sent for each mibObjectValue Information Element being 437 exported. 439 3. A MIB Field Options Data Set 441 The MIB Field Options Data Set includes the metadata for each 442 MIB object (i.e. the mibObjectIdentifier or mibSubIdentifier). 443 The metadata about the mibObjectValue Information Elements 444 only needs to be resent as per normal Template refreshes or 445 resends. 447 4. A Data Set. 449 The Data Set contains only the actual data extracted from the 450 MIB or described by the MIB module. 452 Figure 2 shows the IPFIX Message structure for a MIB Field in a 453 Template Set. 455 +-------------------------------------------------------+ 456 | IPFIX Message Header | 457 +-------------------------------------------------------+ 458 | Template Set (A) | 459 +-------------------------------------------------------+ 460 | Options Template Set (B) (MIB Field Options Template) | 461 +-------------------------------------------------------+ 462 | Data Set (B) (MIB Field Options Data) | 463 +-------------------------------------------------------+ 464 | Data Set (A) | 465 +-------------------------------------------------------+ 467 Figure 2: IPFIX Message structure for a MIB Field in a Template Set 469 The MIB Field Options Template defines MIB Field Options Data 470 Records. The MIB Field Options Data Records annotate the Data 471 Template with mibObjectValue metadata. Together the Data Template 472 and MIB Field Options Data Records define the Data Records that will 473 be exported. 475 The Data Records (A) have a dependency on the two Templates and the 476 MIB Field Options Data Records. 478 More Data Sets that use the same mibObjectValue Information Element 479 can then be send in subsequent packets. 481 Figure 3 shows the relationships between the Sets discussed above. 483 +------------------------------+ 484 |MIB Field Options Template (B)| 485 +------------------------------+ 486 |(templateId, elementIndex) | 487 +------------------------------+ 488 | mibOID | 489 +------------------------------+ 490 | 491 | Defines 492 V 493 +------------------------+ +--------------------------+ 494 | Data Template (A) | |MIB Field Options Data (B)| 495 +------------------------+ +--------------------------+ 496 |Field 0 - regular IE | | | 497 +------------------------+ +--------------------------+ 498 |Field 1-mibObjectValue | <----------- | (X,1) = OID | 499 +------------------------+ Annotates +--------------------------+ 500 |Field 2-mibObjectValue | <----------- | (X,2) = OID | 501 +------------------------+ +--------------------------+ 502 | | 503 |------------------------------------/ 504 | 505 | Defines 506 | 507 V 508 +------------------------+ 509 | Data Records (A) | 510 |------------------------| 511 | Field 0 data | 512 +------------------------+ 513 | Field 1 data | 514 +------------------------+ 515 | Field 2 data | 516 +------------------------+ 518 Figure 3: Relationships between Sets 520 5.2. IPFIX and MIB Data Model 522 [RFC2578] species that the SYNTAX clause for a MIB object defines the 523 abstract data structure of an Object and what it must contain: 525 "The data structure must be one of the following: a base type, the 526 BITS construct, or a textual convention. (SEQUENCE OF and SEQUENCE 527 are also possible for conceptual tables, see section 7.1.12)." (From 528 [RFC2578] section 7.1). 530 For each of the SYNTAX clause options this document specifies exactly 531 which mibObjectValue Information Element to use. 533 If a MIB object to be exported is a Textual Convention, the 534 definition of the Textual Convention must be consulted and the SYNTAX 535 clause used to determine the correct base type. This may recurse if 536 the Textual Convention is defined in terms of another Textual 537 Convention but this should end at a base type. 539 If the SYNTAX clause contains a Textual Convention or Subtyping the 540 mibObjectSyntax Information Element SHOULD be used to export this 541 detail to the Collecting Process. 543 The Options for the SYNTAX are then mapped as follows: 545 +-----------------+---------------------+---------------------------+ 546 | RFC2578 Section | SYNTAX | mibObjectValue IE | 547 +-----------------+---------------------+---------------------------+ 548 | 7.1.1 | INTEGER/Integer32 | mibObjectValueInteger | 549 | 7.1.2 | OCTET STRING | mibObjectValueOctetString | 550 | 7.1.3 | OBJECT IDENTIFIER | mibObjectValueOID | 551 | 7.1.4 | The BITS construct | mibObjectValueBits | 552 | 7.1.5 | IpAddress | mibObjectValueIPAddress | 553 | 7.1.6 | Counter32 | mibObjectValueCounter | 554 | 7.1.7 | Gauge32 | mibObjectValueGauge | 555 | 7.1.8 | TimeTicks | mibObjectValueTimeTicks | 556 | 7.1.9 | Opaque | mibObjectValueOctetString | 557 | 7.1.10 | Counter64 | mibObjectValueCounter | 558 | 7.1.11 | Unsigned32 | mibObjectValueUnsigned | 559 | 7.1.12 | SEQUENCE | mibObjectValueRow | 560 | 7.1.12 | SEQUENCE OF | mibObjectValueTable | 561 +-----------------+---------------------+---------------------------+ 563 Table 1: SMIv2 SYNTAX to mibObjectValue types 565 Values are encoded as per the standard IPFIX encoding of Abstract 566 Data Types. The only new encoding references in this document is 567 that Object Identifiers (OID) will be encoded as per ASN.1/BER [BER] 568 in an octetArray. 570 The mibObjectValue and mibObjectIdentifier Information Elements are 571 standard IPFIX fields. Therefore the E bit of the mibObjectValue or 572 mibObjectIdentifier Information Elements is set to "0". 574 The MIB object being exported may be defined in an enterprise- 575 specific MIB module but the Information Elements defined in this 576 standard are still exported with the E bit set to "0". The OID 577 exported encodes that the MIB object was defined in a enterprise- 578 specific MIB Module. 580 5.3. MIB Field Options - Specifications and Required Fields 582 For each mibObjectValue Information Element that is defined in an 583 IPFIX Template, a MIB Field Options Data Record will be exported that 584 provides the required minimum information to define the MIB object 585 that is being exported (see Section 5.3.1). 587 The MIB Field Options Data Records are defined in a template referred 588 to in this document as a MIB Field Options Template with the format 589 specified in Section 5.4. 591 The MIB Field Options Template and MIB Field Options Data Records 592 MUST be exported in the same IPFIX Message as any Template that is 593 using a mibObjectValue Information Element. Note that this places an 594 implicit size constraint on the export. 596 This whole set of Templates and MIB Field Options Data Records MUST 597 all be exported prior to the corresponding Data Records which depend 598 upon them. i.e. the export order MUST be: 600 1. Data Template for mibObjectValue Information Elements 602 2. MIB Field Options Template 604 3. MIB Field Options Data Records 606 4. MIB Object Value Data Records 608 Note that the ID of an identical MIB Field Options Template which has 609 already been exported MAY be reused without exporting the Template 610 again. 612 5.3.1. MIB Field Options Template 614 Three fields are REQUIRED to unambiguously export a standalone 615 mibObjectValue Information Element with a MIB Field Options Template: 617 o (scope) templateId [IANA-IPFIX] 619 o (scope) informationElementIndex [IANA-IPFIX] 621 o mibObjectIdentifier (Section 11.2.2.1) or mibSubIdentifier 622 (Section 11.2.2.2) 624 These are the minimum fields required in a MIB Field Options Template 625 (see Section 5.4.2). 627 The mibObjectIdentifier is used to provide the OID for all 628 mibObjectValue Information Elements exported except for when 629 Structured Data is being used to export a conceptual row (see 630 Section 5.8.2). 632 While the following are optional, they are nevertheless RECOMMENDED 633 in certain circumstances as described in the referenced sections: 635 o mibCaptureTimeSemantics 636 (discussed in Section 5.4.5; IE defined in Section 11.2.2.4) 638 o mibIndexIndicator 639 (discussed in Section 5.8.5; IE defined in Section 11.2.2.3) 641 o mibContextEngineID 642 (discussed in Section 5.6; IE defined in Section 11.2.2.5) 644 o mibContextName 645 (discussed in Section 5.6; IE defined in Section 11.2.2.6) 647 5.3.2. MIB Type Options Template 649 There are also fields that provide type information from a MIB object 650 definition that MAY be exported to a Collecting Process. 652 Type information is statically defined in a MIB module; it is not 653 expected to change. However, the additional information about the 654 MIB object may help a Collecting Process that does not have access to 655 the MIB module. 657 To export a MIB Type Options Template, the mibObjectIdentifier is 658 RECOMMENDED as a Scope Field so that it matches the MIB Field Options 659 Template. Any combination of the other MIB Type fields may be 660 included. 662 o (scope) mibObjectIdentifier (see Section 11.2.2.1) 664 o mibObjectName (see Section 11.2.3.1) 666 o mibObjectDescription (see Section 11.2.3.2) 668 o mibObjectSyntax (see Section 11.2.3.3) 670 o mibModuleName (see Section 11.2.3.4) 672 5.4. MIB Field Options Template Formats 674 5.4.1. Data Template containing a mibObject Field 676 The Template Record format of a Template that uses a mibObjectValue 677 Information Element is identical to the standard IPFIX format as 678 defined in [RFC7011], so a field using a mibObjectValue Information 679 Element is specified using standard IPFIX Field Specifiers as in 680 [RFC7011]. 682 The only extra requirement on a Template Record using mibObjectValue 683 Information Element is that it MUST export the required metadata 684 specified for EACH mibObjectValue Information Element (see 685 Section 5.3.1). 687 If Multiple MIB Field Options Data Records that refer to a 688 mibObjectValue are received the latest MUST be used. This matches 689 the expected behavior of IPFIX Templates. 691 There is a one to one mapping between each mibObjectValue Information 692 Element and a MIB Field Options Data Record. 694 A MIB Field Options Template and corresponding Data Record MUST be 695 exported to provide the minimum required metadata. 697 Figure 4 shows an IPFIX Template Set using a mibObjectValue 698 Information Element. 700 0 1 2 3 701 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 702 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 703 | Set ID = 2 | Length = 16 | 704 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 705 | Template ID | Field Count = 2 | 706 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 707 |0| IE = Existing IPFIX Field | Field Length | 708 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 709 |0| IE = | Field Length (MIB) | 710 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 712 Figure 4: IPFIX Template Set using mibObjectValue Information Element 714 Where: 716 718 One of the mibObjectValue IPFIX Information Elements that 719 denotes that a MIB object data (i.e, the value of a MIB object) 720 will be exported in the (Options) Template Record. 722 This could be any one of the mibObjectValue Information 723 Elements defined in Section 11.2.1: mibObjectValueInteger, 724 mibObjectValueOctetString, mibObjectValueOID, 725 mibObjectValueIPAddress, mibObjectValueBITS, 726 mibObjectValueCounter, mibObjectValueGauge, 727 mibObjectValueTimeTicks, mibObjectValueUnsigned, 728 mibObjectValueTable, and mibObjectValueRow. 730 When a mibObjectValue Information Element is used, the MIB 731 Object Identifier ("mibObjectIdentifier") MUST be exported via 732 a MIB Field Options or by other means. See Section 5.3.1. 734 Field Length (MIB) 736 The length of the encoded MIB object data in the corresponding 737 Data Records, in octets. The definition is as [RFC7011]. Note 738 that the Field Length can be expressed using reduced size 739 encoding per [RFC7011]. Note that the Field Length may be 740 encoded using variable-length encoding per [RFC7011]. 742 5.4.2. MIB Field Options Template 744 The MIB Field Options Template is a Standard Options Template which 745 defines the Fields that will be exported to provide enough metadata 746 about a mibObjectValue Information Element so that the Collector can 747 tie the data values in the mibObjectValue Information Element back to 748 the definition of the MIB object. 750 All MIB Field Options Templates contain the fields as specified in 751 Section 5.3.1. 753 Figure 5 shows the required fields to export a mibObjectIdentifier 754 for the MIB Field Options Template format. 756 0 1 2 3 757 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 758 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 759 | Set ID = 3 | Length = 22 | 760 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 761 | Template ID | Field Count = 3 | 762 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 763 | Scope Field Count = 2 |0| IE = templateId | 764 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 765 | Field Length = 2 |0| IE = informationElementIndex| 766 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 767 | Field Length = 2 |0| IE = mibObjectIdentifier | 768 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 769 | Field Length = 65535 | 770 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 772 Figure 5: MIB Field Options Template Format - Required Fields 774 Where: 776 templateId 778 The first Scope Field is an IPFIX Information Element which 779 denotes that a Template Identifier will be exported as part of 780 the MIB Field Options Data Record. This Template Identifier 781 paired with an index into that template, the 782 "informationElementIndex" field, uniquely references one 783 mibObjectValue Information Element being exported. 785 informationElementIndex 787 The second Scope Field is an IPFIX Information Element which 788 denotes a zero based index into the fields defined by a 789 Template. When paired with a "templateId" the Record uniquely 790 references one mibObjectValue Information Element being 791 exported. 793 mibObjectIdentifier 794 An IPFIX Information Element which denotes the a MIB Object 795 Identifier for the mibObjectValue Information Element exported 796 in the (Options) Template Record. 798 When a MIB Object Value Information Element is used, the MIB 799 Object Identifier MUST be specified in the MIB Field Options 800 Template Record or specified by other means. 802 The Object Identifier is encoded in the IPFIX data record in 803 ASN.1/BER [BER] format. 805 Variable-length encoding SHOULD be used with the 806 mibObjectIdentifier so that multiple different length MIB OIDs 807 can be exported efficiently. This will also allow reuse of the 808 MIB Field Options Template. 810 5.4.3. MIB Field Options Data Records 812 The MIB Field Options Data Records conform to the Template 813 Specification in the MIB Field Options Template. There may be 814 multiple MIB Field Options Data Records exported. 816 The Collecting Process MUST store all received MIB Field Options Data 817 information for the duration of each Transport Session, because the 818 Collecting Process will need to refer to the extra meta information 819 to fully decode each mibObjectValue Information Element. 821 Figure 6 shows the format of the exported MIB Field Options Data 822 Record detailing the metadata that will be exported to match the 823 Template in Figure 5. 825 0 1 2 3 826 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 827 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 828 | Set ID | Length = N | 829 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 830 | templateId | informationElementIndex | 831 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 832 | VLEN | mibObjectIdentifier ... | 833 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 834 | ... mibObjectIdentifier continued ... | 835 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 836 | templateId | informationElementIndex | 837 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 838 | VLEN | mibObjectIdentifier ... | 839 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 840 | ... mibObjectIdentifier continued ... | 841 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 843 Figure 6: Format of MIB Field Options Data Record 845 5.4.4. Options Template containing a mibObject Field 847 The Options Template Record format of a Template that uses a 848 mibObjectValue Information Element is identical to the standard 849 format as defined in [RFC7011]. The mibObjectValue Information 850 Element is specified using standard Field Specifiers as in [RFC7011]. 852 A mibObjectValue Information Element can be either a Scope Field or a 853 non-Scope Field in an Options Template Record. 855 The only extra requirement on a Options Template Record using 856 mibObjectValue Information Element is that it MUST export the 857 required metadata specified in Section 5.3.1 for EACH mibObjectValue 858 Information Element. 860 An IPFIX Options Template Record MUST export a MIB Field Options 861 Template and Data Record to provide the minimum required metadata for 862 each mibObjectValue Information Element. 864 Figure 7 shows an IPFIX Options Template Set using an existing IPFIX 865 Field as a Scope Field and with a mibObjectValueInteger IE as a non- 866 Scope Field, while Figure 8 shows an IPFIX Options Template Set using 867 a mibObjectValueInteger IE as a Scope Field with an existing IPFIX 868 Field as a non-Scope Field. 870 0 1 2 3 871 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 872 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 873 | Set ID = 3 | Length = 18 | 874 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 875 | Template ID | Field Count = 2 | 876 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 877 | Scope Field Count = 1 |0| IE = Existing IPFIX Field | 878 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 879 | Field Length |0| IE = mibObjectValueInteger | 880 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 881 | Field Length | 882 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 884 Figure 7: IPFIX Options Template Set using a Non Scope 885 mibObjectValueInteger Field 887 0 1 2 3 888 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 889 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 890 | Set ID = 3 | Length = 18 | 891 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 892 | Template ID | Field Count = 2 | 893 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 894 | Scope Field Count = 1 |0| IE = mibObjectValueInteger | 895 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 896 | Field Length |0| IE = Existing IPFIX Field | 897 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 898 | Field Length | 899 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 901 Figure 8: IPFIX Options Template Set using a Scope 902 mibObjectValueInteger Field 904 5.4.5. MIB Field Options Template with Semantics Fields 906 A MIB Field Options Template MAY specify that extra Information 907 Elements will be exported to record how the mibObjectValue was 908 collected. 910 Alternatively, one of the existing IPFIX observationTime* elements 911 [IANA-IPFIX] may be exported to specify exactly when the value was 912 collected. 914 Figure 9 shows the MIB Field Options Template for a non-columnar 915 Field with Semantic Data. 917 0 1 2 3 918 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 919 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 920 | Set ID = 3 | Length = 26 | 921 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 922 | Template ID | Field Count = 4 | 923 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 924 | Scope Field Count = 2 |0| IE = templateId | 925 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 926 | Field Length = 2 |0| IE = informationElementIndex| 927 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 928 | Field Length = 2 |0| IE = mibObjectIdentifier | 929 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 930 | Field Length = 65535 |0| IE = mibCaptureTimeSemantics| 931 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 932 | Field Length = 1 | 933 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 935 Figure 9: MIB Field Options Template for a non-indexed Field with 936 Semantic Data 938 Where: 940 mibCaptureTimeSemantics 942 The MIB Capture Time Semantics IPFIX Information Element, as 943 defined in Section 11.2.2.4. 945 It is RECOMMENDED to include this field when exporting a 946 mibObjectValue Information Element that specifies counters or 947 statistics, in particular for situations with long lived Flows. 949 5.4.6. MIB Field Options Template with extra MIB Object Details 951 The OID exported within the mibObjectIdentifier IPFIX Information 952 Element provides a OID reference to a MIB object type definition that 953 will fully describe the MIB object data being Exported. 955 However an Exported Process MAY decide to include some extra fields 956 to more fully describe the MIB Object that is being exported with a 957 mibObjectValue Information Element. 959 This can be helpful if the Collecting Process may not have access to 960 the MIB module. 962 The exporting process can either include the extra object details 963 fields as part of the MIB Field Options Template, or export a 964 separate Options Template and Data that maps MIB OIDs in 965 mibObjectIdentifier Fields to the object details. 967 If only a few fields are being exported then including extra type 968 data in the MIB Field Options export will be more efficient. 970 The MIB Field Options Template for a non-indexed Field with extra MIB 971 object details is shown in Figure 10. 973 0 1 2 3 974 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 975 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 976 | Set ID = 3 | Length = 38 | 977 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 978 | Template ID | Field Count = 7 | 979 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 980 | Scope Field Count = 2 |0| IE = templateId | 981 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 982 | Field Length = 2 |0| IE = informationElementIndex| 983 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 984 | Field Length = 2 |0| IE = mibObjectIdentifier | 985 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 986 | Field Length = 65535 |0| IE = mibObjectSyntax | 987 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 988 | Field Length = 65535 |0| IE = mibObjectName | 989 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 990 | Field Length = 65535 |0| IE = mibObjectDescription | 991 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 992 | Field Length = 65535 |0| IE = mibModuleName | 993 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 994 | Field Length = 65535 | 995 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 997 Figure 10: MIB Field Options Template for a non-indexed Field with 998 extra MIB object details 1000 Where: 1002 mibObjectSyntax 1004 The MIB object syntax string as defined in Section 11.2.3.3. 1006 Note that a separate mibObjectSyntax Information Element is 1007 required (rather than extend the existing 1008 informationElementDataType registry [IANA-IPFIX]) because the 1009 SYNTAX clause could contain almost any name. 1011 mibObjectName 1012 The textual name a mibObjectIdentifier Object. 1014 mibObjectDescription 1016 The textual description for a mibObjectIdentifier. 1018 mibModuleName 1020 The textual name of the MIB module that defines a MIB Object. 1022 The MIB details can be exported as an standard IPFIX Option export 1023 [RFC7011] as shown in Figure 11. This may be more efficient as the 1024 bulk of this data is text based and SHOULD be exported only once to 1025 the Collecting Process if there are many MIB objects being exported. 1026 This prevents this large textual data being included for every use of 1027 a mibObjectValue Information Element. 1029 0 1 2 3 1030 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 1031 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1032 | Set ID = 3 | Length = 30 | 1033 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1034 | Template ID | Field Count = 5 | 1035 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1036 | Scope Field Count = 1 |0| IE = mibObjectIdentifier | 1037 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1038 | Field Length = 65535 |0| IE = mibObjectSyntax | 1039 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1040 | Field Length = 65535 |0| IE = mibObjectName | 1041 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1042 | Field Length = 65535 |0| IE = mibObjectDescription | 1043 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1044 | Field Length = 65535 |0| IE = mibModuleName | 1045 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1046 | Field Length = 65535 | 1047 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1049 Figure 11: Alternative mibObjectIdentifier Option Export with object 1050 details 1052 5.5. Use of field order in the MIB Field Option template 1054 The MIB Field Options Template export makes use of the 1055 informationElementIndex [IANA-IPFIX] to specify which field in the 1056 template that the metadata relates to, which avoids any ordering 1057 constraints on the data template. The mibObjectValue Information 1058 Elements in a IPFIX export can be in any order in the export packet. 1060 However, fields used as an INDEX MUST be in the same order as 1061 specified in the INDEX clause of the conceptual row MIB object. 1063 The informationElementIndex specifies which Field in the Template 1064 extra information is being provided for. 1066 This is analogous to standard IPFIX Template Sets which also specify 1067 the order of the fields and provide their type and size. 1069 If the template changes such that the order is different then the MIB 1070 Field Options data MUST be resent to reflect the new ordering. A new 1071 Template ID MUST be used to reflect that the ordering has changed. 1072 Older MIB Field Options Data may refer to the incorrect field. 1074 A templateId [IANA-IPFIX] is only locally unique within a combination 1075 of a Observation Domain and Transport session. As such each MIB 1076 Field Options Data Record can only refer to templateIds within the 1077 same Observation Domain and session. 1079 5.6. Identifying the SNMP Context 1081 Each MIB OID is looked up in a specific context, usually the default 1082 context. If exporting a MIB OID value that isn't in the default 1083 context then the context MUST be identified by including the 1084 mibContextEngineID (see Section 11.2.2.5) and mibContextName (see 1085 Section 11.2.2.6) fields in the MIB Field Options Template and 1086 associated MIB Field Options Data Records, or be included in the same 1087 template as the mibFieldValue Field. 1089 This context data MUST be included for each field that is not in the 1090 default context. 1092 The context information MAY be exported as part of the Template that 1093 includes the mibObjectValue Information Element or the context 1094 information MAY be exported in the MIB Field Options Data Record that 1095 refers to the field. Context fields exported in the same Template 1096 MUST take precedence over those that refer to the template. Context 1097 fields MUST apply to all mibObjectValue Information Elements in the 1098 same template and there MUST NOT be duplicates of mibContextName or 1099 mibContextEngineID in a Template. 1101 So a MIB Field Options Template MAY specify no Context information, 1102 just the Context Engine ID or both the context engine and context 1103 name. This allows the exporter to export the bulk of data in the 1104 default context and only tag those required. 1106 Since the MIB Field Options Template applies for all the records of a 1107 Template using Context Fields in the MIB Field Options Data Template 1108 requires that each mibContextEngineID / mibContextName pair have its 1109 own Template. 1111 5.7. Template Management 1113 Templates are managed as per section 8 of [RFC7011] with the 1114 additional constraint that the MIB Field Options Template and MIB 1115 Field Options Data Records MUST be exported in the same IPFIX Message 1116 as any (Option) Template Record that uses a mibObjectValue 1117 Information Element. 1119 When exporting over an SCTP transport [RFC4960], the MIB Field 1120 Options Data Records MUST be exported reliably and in the same SCTP 1121 stream as their associated Templates per [RFC6526]. 1123 If a Template using a mibObjectValue Information Element is resent 1124 for any reason the Records it depends on MUST be sent as well. 1126 If a Template is replaced with a new (Option) Template then a new MIB 1127 Field Options Data Record MUST be sent with the replacement 1128 referencing the new Template ID. 1130 An Exporting Process SHOULD reuse MIB Field Options Template IDs when 1131 the Templates are identical. Each (Option) Template Record MUST 1132 still be accompanied by a copy of the MIB Field Options Template. 1134 5.7.1. Large Messages 1136 The requirement to export the MIB Field Options Template and MIB 1137 Field Options Data Records in the same IPFIX Message as any (Option) 1138 Template Record that uses a mibObjectValue Information Element may 1139 result in very large IPFIX Messages. 1141 In environments with restricted Message sizes, and only when a 1142 reliable SCTP transport is being used, the MIB Field Options 1143 Template, MIB Field Options Data, Data Template, and Data Records, 1144 MAY be exported in separate Messages in the same SCTP stream, 1145 provided that their order is maintained. 1147 5.7.2. Template Withdrawal and Reuse 1149 Data Records containing mibObjectValue Information Elements MUST NOT 1150 be exported if their corresponding Data Template or MIB Field Options 1151 Template has been withdrawn, since the MIB Field Options Template 1152 MUST be exported in the same IPFIX Message as the Data Template which 1153 it annotates. 1155 MIB Field Options Template IDs MUST NOT be reused while they are 1156 required by any existing Data Templates. 1158 5.8. Exporting Conceptual Rows and Tables 1160 There are three approaches for an IPFIX exporting process to export 1161 the values of columnar objects: 1163 1. Ignoring the indexing of Columnar Objects 1165 2. Exporting conceptual rows/table objects using structured data 1167 3. Exporting individual indexed Columnar Objects 1169 Firstly, a subordinate columnar object may be used purely use as a 1170 data type. In this case there is no index information or relation to 1171 a conceptual row object provided by the exporting process. 1173 Secondly, mibObjectValueRow or mibObjectValueTable can be used to 1174 export partial or complete conceptual rows using [RFC6313] structured 1175 data. 1177 Thirdly, in a mixed option/data IPFIX/MIB template, the 1178 mibObjectValue Information Element can have the values of the INDEX 1179 clause of the conceptual row provided by other fields in the record. 1180 In this case each mibObjectValue Information Element must specify 1181 which other field(s) in the template is providing the index 1182 information 1184 5.8.1. Exporting Conceptual Rows - indexing 1186 This document defines two forms of indexing that can be used for 1187 conceptual row MIB objects. 1189 Structured Data based indexing is used solely by the 1190 mibObjectValueRow Information Element. Each conceptual row of the 1191 MIB object corresponds to a single Data Record exported. The index 1192 fields defined in the INDEX clause of the MIB object MUST all be 1193 present in the same order as the Scope Fields. This allows a simple 1194 table export of a conceptual row MIB object without any extra fields 1195 required to indicate which fields make up the conceptual row INDEX. 1197 Field based indexing is used by giving each mibObjectValue 1198 Information Element a mibIndexIndicator to flag the required index 1199 fields. This allows complex indexing or mixing of existing IPFIX 1200 Information Element with MIB Fields with minimum overhead. It also 1201 allows multiple Columnar MIB objects from different conceptual rows 1202 be exported with complete indexing in one IPFIX Template. 1204 5.8.2. Exporting Conceptual Rows - mibObjectValueRow 1206 The simplest approach to exporting a complete or partial conceptual 1207 row object is done with the mibObjectValueRow Information Element. 1209 This is a Structured Data subTemplateList Information Element. The 1210 template specified MUST be an Options Template. It also MUST have 1211 the fields specified in the INDEX clause of the conceptual row object 1212 as the Scope Fields for the Option Export. 1214 An overview of this architecture is given in Figure 12. This shows 1215 that the full MIB object type definition OID is exported for the 1216 mibObjectValueRow conceptual row field but that the individual 1217 columnar objects only require the subIdentifier to be exported. To 1218 make the diagram clearer the Templates for the MIB Field Options 1219 Templates are not shown. 1221 +---------------------------+ +------------------------+ 1222 | Data Template | | MIB Field Options Data | 1223 | | | | 1224 | mibObjectValueRow |<---| OID | 1225 +---------------------------+ +------------------------+ 1226 | 1227 | +-----------------------+ +------------------------+ 1228 | | Options Template | | MIB Field Options Data | 1229 | | | | | 1230 | | Scope mibObjectValue* |<---| subIdentifiers | 1231 | | mibObjectValue* |<---| subIdentifiers | 1232 | +-----------------------+ +------------------------+ 1233 | | 1234 V V 1235 +---------------------------+ 1236 | Data Flows | 1237 | | 1238 | subTemplateList | 1239 +---------------------------+ 1241 Figure 12: Architecture for Exporting Conceptual Rows with 1242 mibObjectValueRow 1244 The mibIndexIndicator is not required for each individual 1245 mibObjectValue Information Element as mibObjectValueRow provides a 1246 structure that includes the index details. 1248 When Structured Data based indexing is used all Scope Fields MUST be 1249 the INDEX Objects in the same order as defined in the INDEX clause of 1250 the conceptual row being exported. 1252 The Full OID for the conceptual row MIB object type definition being 1253 exported with the mibObjectValueRow Information Element MUST be 1254 exported. However the fields that are members of the conceptual row 1255 need not have the full OID of their MIB object type definition 1256 exported. Instead the mibSubIdentifier Information Element can be 1257 used to document which entry in the conceptual row the Field is. 1259 In this case the export flow will contain a complete or partial row 1260 from a table inside a single field of the record. 1262 There may be MIB objects that are specified in the INDEX of the 1263 conceptual row but not columnar objects of the same conceptual row, 1264 for these the Exporter MUST provide the full OID in a 1265 mibObjectIdentifier field. 1267 So for a conceptual row object with the OID "1.2.3.4.5.6" the OID of 1268 the type definitions for columnar objects "1.2.3.4.5.6.1" 1269 "1.2.3.4.5.6.2" can be exported with just a subIdentifier of "1" and 1270 "2" respectively. 1272 The mibObjectValue Information Elements exported using the 1273 mibObjectValueRow export MUST all either be Objects defined in the 1274 INDEX clause, Columnar Objects of the same conceptual row object or 1275 Columnar Objects that AUGMENT the same conceptual row. 1277 Figure 13 shows an IPFIX Template for a Structured Data export of a 1278 conceptual row, while Figure 14 shows an IPFIX Options Template for a 1279 complete conceptual row with five columns and two INDEX fields. 1280 Figure 15 shows the MIB Field Options Template for a conceptual row 1281 field. Figure 16 shows the MIB Field Options Template for the 1282 columns inside the conceptual row. Figure 17 shows the OID data for 1283 the conceptual row would be exported. 1285 0 1 2 3 1286 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 1287 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1288 | Set ID = 2 | Length = 12 | 1289 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1290 | Template ID = 300 | Field Count = 1 | 1291 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1292 |0| IE = mibObjectValueRow | Field Length | 1293 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1295 Figure 13: IPFIX Template for a Conceptual Row 1297 0 1 2 3 1298 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 1299 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1300 | Set ID = 3 | Length = 30 | 1301 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1302 | Template ID = 301 | Field Count = 5 | 1303 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1304 | Scope Field Count = 2 |0| IE = mibObjectValue INDEX1 | 1305 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1306 | Field Length |0| IE = mibObjectValue INDEX2 | 1307 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1308 | Field Length |0| IE = mibObjectValue COLUM3 | 1309 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1310 | Field Length |0| IE = mibObjectValue COLUM4 | 1311 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1312 | Field Length |0| IE = mibObjectValue COLUM5 | 1313 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1314 | Field Length | 1315 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1317 Figure 14: IPFIX Options Template for a mibObjectValueRow with 5 1318 columns and 2 INDEX fields 1320 0 1 2 3 1321 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 1322 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1323 | Set ID = 3 | Length = 22 | 1324 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1325 | Template ID = 302 | Field Count = 3 | 1326 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1327 | Scope Field Count = 2 |0| IE = templateId | 1328 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1329 | Field Length = 2 |0| IE = informationElementIndex| 1330 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1331 | Field Length = 2 |0| IE = mibObjectIdentifier | 1332 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1333 | Field Length = 65535 | 1334 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1336 Figure 15: MIB Field Options Template for a Conceptual Row Object 1338 Where: 1340 templateId 1342 The templateId for the MIB Option that will be exported. 1344 mibObjectIdentifier 1345 The MIB OID for the Conceptual Row that is being exported. 1347 0 1 2 3 1348 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 1349 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1350 | Set ID = 3 | Length = 22 | 1351 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1352 | Template ID = 303 | Field Count = 3 | 1353 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1354 | Scope Field Count = 2 |0| IE = templateId | 1355 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1356 | Field Length = 2 |0| IE = informationElementIndex| 1357 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1358 | Field Length = 2 |0| IE = mibSubIdentifier | 1359 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1360 | Field Length = 2 | 1361 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1363 Figure 16: MIB Field Options Template for Columnar Objects of a 1364 Conceptual Table 1366 Where: 1368 templateId 1370 The templateId used will be for the Template referred to in the 1371 subTemplateList of the mibObjectValueRow that will be exported. 1373 mibSubIdentifier 1375 The sub identifier that specifies the columnar object's ID 1376 within the conceptual row. 1378 0 1 2 3 1379 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 1380 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1381 | Set ID = 302 | Length = N | 1382 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1383 | templateId = 300 | informationElementIndex | 1384 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1385 | VLEN | mibObjectIdentifier ... | 1386 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1387 | ... mibObjectIdentifier continued ... | 1388 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1390 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1391 | Set ID = 303 | Length = N | 1392 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1393 | templateId = 301 | informationElementIndex | 1394 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1395 | mibSubIdentifier | templateId = 301 | 1396 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1397 | informationElementIndex | mibSubIdentifier | 1398 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1399 | templateId = 301 | informationElementIndex | 1400 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1401 | mibSubIdentifier | templateId = 301 | 1402 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1403 | informationElementIndex | mibSubIdentifier | 1404 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1405 | templateId = 301 | informationElementIndex | 1406 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1407 | mibSubIdentifier | 1408 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1410 Figure 17: mibOption Data Record for the conceptual row 1412 Where: 1414 mibObjectIdentifier 1416 Will contain the OID for the conceptual row as a whole. 1418 mibSubIdentifier 1420 The mibSubIdentifier fields will contain the extra Sub 1421 Identifier that when added to the OID for the conceptual row 1422 give the full OID for the Object. 1424 5.8.3. Exporting Conceptual Rows - Augments 1426 SMIv2 defines conceptual rows as either having an INDEX clause or an 1427 AUGMENTS clause. Conceptual row definitions with an AUGMENTS clause 1428 extend an existing base conceptual row with an INDEX clause. It is 1429 not possible in SMIv2 to AUGMENT a conceptual row that itself has an 1430 AUGMENTS clause. The base table and the augmentation have an 1431 identical INDEX. 1433 Since augmentations allow adding extra columns to existing tables it 1434 is beneficial to be able to support them easily in IPFIX exports of 1435 conceptual rows. 1437 The mibObjectValueRow OID MAY refer either to the base table with the 1438 INDEX clause, or to a conceptual row with an AUGMENTS clause. The 1439 subIdentifiers in any MIB Field Options Data Record MUST always refer 1440 to the OID exported for the mibObjectValueRow IE. 1442 If the mibObjectValueRow OID refers to a base table then any extra 1443 columns from conceptual rows with an AUGMENTS clause MUST have their 1444 full OID exported. 1446 If the mibObjectValueRow OID refers to a conceptual row that augments 1447 another conceptual row using the AUGMENTS clause then any MIB fields 1448 from the original table's INDEX or Columnar Objects MUST NOT use the 1449 mibSubIdentifier and MUST instead export the full OID in a 1450 mibObjectIdentifier. 1452 If the mibObjectValueRow refers to an AUGMENTS conceptual row the 1453 Scope Fields of the Template using in the subTemplateList MUST have 1454 the INDEX fields from the base table, in the same order as its scope. 1455 This is identical to the Scope Field requirements for conceptual rows 1456 with an INDEX clause. 1458 This flexibility is provided so that the conceptual rows with the 1459 most columns can be exported using the more efficient 1460 mibSubIdentifier. For example exporting a complete set of 1461 augmentation columns would only require the full OIDs for the MIB 1462 objects in the INDEX. 1464 It is possible to export MIB object columns from multiple AUGMENTS 1465 conceptual rows. If this is done then the base table SHOULD be used 1466 as the main OID for the mibObjectValueRow. 1468 5.8.4. Exporting Conceptual Tables - mibObjectValueTable 1470 A list of mibObjectValueRow Information Element can be exported in 1471 the mibObjectValueTable Information Element (Section 11.2.1.10). 1472 This allows a set of conceptual rows corresponding to a conceptual 1473 table to be exported as a single field. This allows a complete set 1474 of rows to be used as a single entry with other information elements 1475 in a Template. 1477 The contents of a mibObjectValueTable MUST be mibObjectValueRow 1478 entries that all refer to the same MIB conceptual table. 1480 The complete OID for the conceptual table MUST be exported for any 1481 mibObjectValueTable Information Element. The complete OID for the 1482 contained mibObjectValueRow MUST also be exported. 1484 Each individual mibObjectValueRow includes in the 1485 mibObjectValueTable MUST follow the requirements in Section 5.8.2. 1487 5.8.5. Exporting Columnar Objects - using mibIndexIndicator 1489 The other option for indexing a Columnar Object that is part of a 1490 conceptual table is explicit indexing. In this case there may be non 1491 index fields in the scope of the option export or there may be 1492 columnar MIB objects from multiple conceptual rows being exported. 1493 In this case each mibObjectValue Information Element requires the 1494 mibIndexIndicator with the bits set for the fields that are used to 1495 index that individual columnar object. 1497 The index fields MUST be in the 'correct' order as defined in the 1498 conceptual row that each columnar object is a member of. 1500 If a mibObjectValue Information Element that is being indexed using 1501 mibIndexIndicator is being used as an Options Template Scope Field, 1502 then all fields used to index that field MUST also be Scope Fields. 1504 Figure 18 shows the MIB Field Options Template for an indexed MIB 1505 Columnar Object. 1507 0 1 2 3 1508 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 1509 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1510 | Set ID = 3 | Length = 26 | 1511 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1512 | Template ID | Field Count = 4 | 1513 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1514 | Scope Field Count = 2 |0| IE = templateId | 1515 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1516 | Field Length = 2 |0| IE = informationElementIndex| 1517 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1518 | Field Length = 2 |0| IE = mibIndexIndicator | 1519 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1520 | Field Length = 2 |0| IE = mibObjectIdentifier | 1521 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1522 | Field Length = 65535 | 1523 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1525 Figure 18: MIB Field Options Template for an indexed MIB Columnar 1526 Object 1528 Where: 1530 mibIndexIndicator 1532 The MIB Index Indicator IPFIX Information Element which marks 1533 which fields in the record will act as INDEX values for the 1534 exported MIB object. 1536 The index data for a mibObjectValue will be other fields 1537 contained in the same Data Record. The mibIndexIndicator marks 1538 the Fields whose value(s) should be added to the OID for the 1539 MIB object type definition exported in mibObjectIdentifier to 1540 get the OID for the instance of the MIB object. 1542 Elements used to index MIB objects MUST be exported in the same 1543 order as they are specified in the INDEX field of the 1544 conceptual table they belong to. 1546 6. Example Use Cases 1548 6.1. Non Columnar MIB Object: Established TCP Connections 1550 The number of established TCP connections of a remote network device 1551 could be monitored by configuring it to periodically export the 1552 number of established TCP connections to a centralized Collector. In 1553 this example, the Exporter would export an IPFIX Message every 30 1554 minutes that contained Data Records detailing the number of 1555 established TCP connections. 1557 The table of data that is to be exported looks like: 1559 +-------------------------+-----------------------+ 1560 | TIMESTAMP | ESTABLISHED TCP CONN. | 1561 +-------------------------+-----------------------+ 1562 | StartTime + 0 seconds | 10 | 1563 | StartTime + 60 seconds | 14 | 1564 | StartTime + 120 seconds | 19 | 1565 | StartTime + 180 seconds | 16 | 1566 | StartTime + 240 seconds | 23 | 1567 | StartTime + 300 seconds | 29 | 1568 +-------------------------+-----------------------+ 1570 Table 2: Established TCP Connections 1572 The Template Record for such a Data Record will detail two 1573 Information Elements: 1575 1. flowStartSeconds from [IANA-IPFIX], Information Element 150: The 1576 absolute timestamp of the first packet of this Flow. 1578 2. tcpCurrEstab from [RFC4022], Object ID "1.3.6.1.2.1.6.9": The 1579 number of TCP connections for which the current state is either 1580 ESTABLISHED or CLOSE-WAIT. 1582 Figure 19 shows the exported Template Set detailing the Template 1583 Record for exporting the number of established TCP connections. 1585 0 1 2 3 1586 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 1587 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1588 | Set ID = 2 | Length = 16 | 1589 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1590 | Template ID = 400 | Field Count = 2 | 1591 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1592 |0| IE = flowStartSeconds | Field Length = 4 | 1593 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1594 |0| IE = mibObjectValueGauge | Field Length = 4 | 1595 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1597 Figure 19: Example of tcpCurrEstab Template Set 1599 Figure 20 shows the exported MIB Field Options Template Set detailing 1600 the metadata that will be exported about the mibObjectValueGauge 1601 Information Element in Template 400 in Template Record. 1603 0 1 2 3 1604 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 1605 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1606 | Set ID = 3 | Length = 22 | 1607 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1608 | Template ID = 401 | Field Count = 3 | 1609 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1610 | Scope Field Count = 2 |0| IE = templateId | 1611 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1612 | Field Length = 2 |0| IE = informationElementIndex| 1613 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1614 | Field Length = 2 |0| IE = mibObjectIdentifier | 1615 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1616 | Field Length = 65535 | 1617 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1619 Figure 20: Example of tcpCurrEstab MIB Field Options Template Set 1621 Figure 21 shows the exported MIB Field Options Data Set detailing the 1622 metadata that will be exported about the mibObjectValueGauge 1623 Information Element in Template 400 in Template Record. 1625 The OID for the MIB object tcpCurrEstab from [RFC4022], Object ID 1626 "1.3.6.1.2.1.6.9", will be encoded in ASN.1/BER [BER] as 1627 '06072b060102010609' in the data record, which takes nine octets. 1629 0 1 2 3 1630 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 1631 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1632 | Set ID = 401 | Length = 18 | 1633 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1634 | templateId = 400 | informationElementIndex = 1 | 1635 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1636 | VLEN=9 | mibObjectIdentifier ... | 1637 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1638 | ... mibObjectIdentifier = "1.3.6.1.2.1.6.9" ... | 1639 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1640 | ... 06072b060102010609 ... | 1641 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1643 Figure 21: Example of tcpCurrEstab MIB Field Options Data Set 1645 Figure 22 shows the start of the Data Set for exporting the number of 1646 established TCP connections (see Section 6.1). 1648 0 1 2 3 1649 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 1650 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1651 | Set ID = 400 | Length = 52 | 1652 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1653 | StartTime + 0 seconds | 1654 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1655 | 10 | 1656 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1657 | StartTime + 60 seconds | 1658 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1659 | 14 | 1660 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1661 | StartTime + 120 seconds | 1662 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1663 | 19 | 1664 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1665 | StartTime + 180 seconds | 1666 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1667 | 16 | 1668 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1669 | StartTime + 240 seconds | 1670 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1671 | 23 | 1672 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1673 | StartTime + 300 seconds | 1674 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1675 | 29 | 1676 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1678 Figure 22: Example of tcpCurrEstab Data Set 1680 6.2. Enterprise Specific MIB Object: Detailing CPU Load History 1682 For the sake of demonstrating a enterprise-specific MIB object from 1683 the CISCO-PROCESS-MIB ([CISCO-PROCESS-MIB]) is chosen. This example 1684 would be valid with any enterprise-specific MIB module. 1686 The CPU Usage of a remote network device with 1 CPU could be 1687 monitored by configuring it to periodically export CPU usage 1688 information, i.e. the cpmCPUTotal1minRev from the proprietary CISCO- 1689 PROCESS-MIB, Object ID "1.3.6.1.4.1.9.9.109.1.1.1.1.7", to a 1690 centralized Collector. 1692 Although the cpmCPUTotal1minRev MIB object is a columnar object in a 1693 conceptual row, while there is only 1 CPU no extra information is 1694 conveyed by providing the INDEX field. So in this case it is 1695 acceptable to not export the cpmCPUTotalIndex MIB object. If there 1696 were multiple CPUs it would be appropriate to include this the 1697 cpmCPUTotalIndex field and specify the relationship. 1699 In this example, the Exporter would export an IPFIX Message every 30 1700 minutes that contained Data Records detailing the CPU 1 minute busy 1701 average at 1 minute intervals. 1703 The table of data that is to be exported looks like: 1705 +-------------------------+---------------------+ 1706 | TIMESTAMP | CPU BUSY PERCENTAGE | 1707 +-------------------------+---------------------+ 1708 | StartTime + 0 seconds | 10% | 1709 | StartTime + 60 seconds | 14% | 1710 | StartTime + 120 seconds | 19% | 1711 | StartTime + 180 seconds | 16% | 1712 | StartTime + 240 seconds | 23% | 1713 | StartTime + 300 seconds | 29% | 1714 +-------------------------+---------------------+ 1716 Table 3: CPU Usage Data 1718 The Template Record for such a Data Record will detail two 1719 Information Elements: 1721 1. flowStartSeconds from [IANA-IPFIX], Information Element 150: The 1722 absolute timestamp of the first packet of this Flow. 1724 2. a mibObjectValueGauge for cpmCPUTotal1minRev, the overall CPU 1725 busy percentage in the last one-minute period 1727 Figure 23 shows the exported Template Set detailing the Template 1728 Record for exporting CPU Load (see Section 6.2). 1730 0 1 2 3 1731 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 1732 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1733 | Set ID = 2 | Length = 16 | 1734 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1735 | Template ID = 402 | Field Count = 2 | 1736 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1737 |0| IE = flowStartSeconds | Field Length = 4 | 1738 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1739 |0| IE = mibObjectValueGauge | Field Length = 1 | 1740 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1742 Figure 23: Example of CPU Load Template Set 1744 Figure 24 shows the exported Template Set detailing the MIB Field 1745 Options Template for exporting CPU Load (see Section 6.2). Note this 1746 is identical to the MIB Field Options Template given in Figure 20 so 1747 the same template could have been reused. 1749 0 1 2 3 1750 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1751 | Set ID = 3 | Length = 22 | 1752 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1753 | Template ID = 403 | Field Count = 3 | 1754 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1755 | Scope Field Count = 2 |0| IE = templateId | 1756 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1757 | Field Length = 2 |0| IE = informationElementIndex| 1758 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1759 | Field Length = 2 |0| IE = mibObjectIdentifier | 1760 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1761 | Field Length = 65535 | 1762 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1764 Figure 24: Example of CPU Load MIB Field Options Template Set 1766 Figure 25 shows the exported MIB Field Options Data Set detailing the 1767 metadata that will be exported about the mibObjectValueGauge 1768 Information Element in Template 402 in Template Record (see 1769 Section 6.2). 1771 The OID for the cpmCPUTotal1minRev has been encoded using ASN.1/BER 1772 to '060d2b0601040109096d0101010107' at 15 octets long. 1774 0 1 2 3 1775 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 1776 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1777 | Set ID = 403 | Length = 24 | 1778 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1779 | templateId = 402 | informationElementIndex = 1 | 1780 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1781 | VLEN=15 | mibObjectIdentifier ... | 1782 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1783 | "1.3.6.1.4.1.9.9.109.1.1.1.1.7" ... | 1784 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1785 | 060d2b0601040109096d0101010107 ... | 1786 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1787 | ... | 1788 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1790 Figure 25: Example of CPULoad MIB Field Options Data Set 1792 Note that although cpmCPUTotal1minRev is 32 bits long, reduced size 1793 encoding [RFC7011] has been used to encoded it within a single octet. 1795 This example stresses that, even though the OID cpmCPUTotal1minRev is 1796 enterprise-specific, the E bit for the mibObjectValueGauge and 1797 mibObjectIdentifier is set to "0" since the "mibObjectValueGauge" and 1798 "mibObjectIdentifier" Information Element is not enterprise-specific. 1799 That this data is from an Enterprise MIB is included in the OID that 1800 includes an Enterprise ID. 1802 The corresponding Data Set does not add any value for this example, 1803 and is therefore not displayed. 1805 6.3. Exporting a Conceptual Row: The OSPF Neighbor Row 1807 Many conceptual tables are already defined in standard and 1808 proprietary MIBs. These can be exported with a minimum of overhead 1809 by using the mibObjectValueRow. This allows the Exporting Process to 1810 unambiguously define the INDEX for the entire conceptual row as the 1811 Scope Fields of an Option Export. The use of a MIB Field Options 1812 Template with mibSubIdentifier being used means that each individual 1813 columnar object does not need to have its OID exported to the 1814 collector 1816 The ospfNbrTable defined in the OSPF MIB [RFC4750] consists of 1817 ospfNbrEntry, which has the OID "1.3.6.1.2.1.14.10.1". Each 1818 mibObjectValueRow data record will therefore correspond to an 1819 ospfNbrEntry. 1821 The following fields will be exported: 1823 +----------------------+------------+----------------------+--------+ 1824 | Object | ID | mibObjectValue | Length | 1825 | | | | in | 1826 | | | | octets | 1827 +----------------------+------------+----------------------+--------+ 1828 | ospfNbrIpAddr | ospfNbrEnt | mibObjectValueIPAddr | 4 | 1829 | | ry 1 | ess | | 1830 | ospfNbrAddressLessIn | ospfNbrEnt | mibObjectValueIntege | 4 | 1831 | dex | ry 2 | r | | 1832 | ospfNbrRtrId | ospfNbrEnt | mibObjectValueIPAddr | 4 | 1833 | | ry 3 | ess | | 1834 | ospfNbrState | ospfNbrEnt | mibObjectValueIntege | 1 | 1835 | | ry 6 | r | | 1836 +----------------------+------------+----------------------+--------+ 1838 Table 4: OSPF Neighbor Entry Objects 1840 The OIDs that will be used to export this table are shown in Table 5. 1842 +-----------------------+----------------------+--------------------+ 1843 | Entity | Full OID | Exported as | 1844 +-----------------------+----------------------+--------------------+ 1845 | ospfNbrEntry | 1.3.6.1.2.1.14.10.1 | OID = 1.3.6.1.2.1. | 1846 | | | 14.10.1 | 1847 | ospfNbrIpAddr | 1.3.6.1.2.1.14.10.1. | subID = 1 | 1848 | | 1 | | 1849 | ospfNbrAddressLessInd | 1.3.6.1.2.1.14.10.1. | subID = 2 | 1850 | ex | 2 | | 1851 | ospfNbrRtrId | 1.3.6.1.2.1.14.10.1. | subID = 3 | 1852 | | 3 | | 1853 | ospfNbrState | 1.3.6.1.2.1.14.10.1. | subID = 6 | 1854 | | 6 | | 1855 +-----------------------+----------------------+--------------------+ 1857 Table 5: OSPF OIDs 1859 Figure 26 shows the Templates Exported to Support the 1860 mibObjectValueRow. Figure 27 shows the example OID Data for the 1861 conceptual row exported in mibObjectValueRow Figure 28 shows the 1862 example data export for a few neighbors in the table. Note that the 1863 OID for ospfNbrEntry has been encoded using ASN.1/BER to 1864 '06082B060102010E0A01' at 10 octets long. 1866 0 1 2 3 1867 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 1868 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1869 | Set ID = 2 | Length = 12 | 1870 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1871 | Template ID = 500 | Field Count = 1 | 1872 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1873 |0| IE = mibObjectValueRow | Field Length = 16 | 1874 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1876 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1877 | Set ID = 3 | Length = 26 | 1878 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1879 | Template ID = 501 | Field Count = 4 | 1880 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1881 | Scope Field Count = 2 |0| IE = mibObjectValueIPAddress| 1882 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1883 | Field Length = 4 |0| IE = mibObjectValueInteger | 1884 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1885 | Field Length = 4 |0| IE = mibObjectValueIPAddress| 1886 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1887 | Field Length = 4 |0| IE = mibObjectValueInteger | 1888 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1889 | Field Length = 1 | 1890 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1892 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1893 | Set ID = 3 | 1894 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1895 | Length = 22 | Template ID = 502 | 1896 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1897 | Field Count = 3 | Scope Field Count = 2 | 1898 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1899 |0| IE = templateId | Field Length = 2 | 1900 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1901 |0| IE = informationElementIndex| Field Length = 2 | 1902 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1903 |0| IE = mibObjectIdentifier | Field Length = 65535 | 1904 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1906 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1907 | Set ID = 3 | Length = 22 | 1908 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1909 | Template ID = 503 | Field Count = 3 | 1910 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1911 | Scope Field Count = 2 |0| IE = templateId | 1912 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1913 | Field Length = 2 |0| IE = informationElementIndex| 1914 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1915 | Field Length = 2 |0| IE = mibSubIdentifier | 1916 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1917 | Field Length = 2 | 1918 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1920 Figure 26: Example of ospfNbrEntry Template and Options Template Sets 1921 0 1 2 3 1922 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 1923 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1924 | Set ID = 502 | Length = 20 | 1925 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1926 | templateId = 500 | informationElementIndex = 0 | 1927 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1928 | VLEN=10 | mibObjectIdentifier = "1.3.6.1.2.1.14.10.1" | 1929 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1930 | 06082B060102010E0A01 | 1931 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1932 | | Padding = 0 | 1933 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1935 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1936 | Set ID = 503 | Length = 28 | 1937 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1938 | templateId = 501 | informationElementIndex = 0 | 1939 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1940 | mibSubIdentifier = 1 | templateId = 501 | 1941 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1942 | informationElementIndex = 1 | mibSubIdentifier = 2 | 1943 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1944 | templateId = 501 | informationElementIndex = 2 | 1945 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1946 | mibSubIdentifier = 3 | templateId = 501 | 1947 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1948 | informationElementIndex = 3 | mibSubIdentifier = 6 | 1949 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1951 Figure 27: Example of ospfNbrEntry OID Data export 1953 0 1 2 3 1954 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 1955 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1956 | Set ID = 500 | Length = 52 | 1957 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1958 |Semantic=FF | Template ID = 501 | ... | 1959 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1960 | ospfNbrIpAddr = 192.0.2.1 | ... | 1961 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1962 | ospfNbrAddressLessIndex = 0 | ... | 1963 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1964 | ospfNbrRtrId = 1.1.1.1 |ospfNbrState=8 | 1965 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1966 |Semantic=FF | Template ID = 501 | ... | 1967 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1968 | ospfNbrIpAddr = 192.0.2.2 | ... | 1969 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1970 | ospfNbrAddressLessIndex = 0 | ... | 1971 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1972 | ospfNbrRtrId = 2.2.2.2 |ospfNbrState=8 | 1973 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1974 |Semantic=FF | Template ID = 501 | ... | 1975 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1976 | ospfNbrIpAddr = 192.0.2.3 | ... | 1977 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1978 | ospfNbrAddressLessIndex = 0 | ... | 1979 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1980 | ospfNbrRtrId = 3.3.3.3 |ospfNbrState=1 | 1981 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1983 Figure 28: Example of Data Export for ospfNbrEntry 1985 6.4. Exporting Augmented Conceptual Row: The IF-MIB id to name mapping 1987 The ifTable defined in the [RFC2863] is augmented by the 1988 ifXTable (defined in the same MIB module). 1990 The OID of the ifEntry is 1.3.6.1.2.1.2.2.1 which is encoded using 1991 ASN.1/BER to '06082B06010201020201' at 10 octets long, while the OID 1992 of the augmenting ifXEntry is 1.3.6.1.2.1.31.1.1.1 which is encoded 1993 using ASN.1/BER to '060a2b060102011f01010101' at 12 octets long. 1995 This example demonstrates how columnar objects from the base 1996 conceptual row and the augmenting row can be exported in a single 1997 mibObjectValueRow Information Element. 1999 Table 6 shows the fields which will be exported. 2001 +---------+------------------+-------+-------------------+ 2002 | ifIndex | ifType | ifMtu | ifName | 2003 +---------+------------------+-------+-------------------+ 2004 | 1 | ethernetCsmacd:6 | 1500 | Ethernet 10 | 2005 | 2 | ethernetCsmacd:6 | 1500 | Ethernet 20 | 2006 | 3 | ethernetCsmacd:6 | 1500 | FastEthernet 30 | 2007 +---------+------------------+-------+-------------------+ 2009 Table 6: IF-MIB Data 2011 The OIDs that will be used to export this table are shown in Table 7. 2013 +---------+------------------------+--------------------------------+ 2014 | Entity | Full OID | Exported as | 2015 +---------+------------------------+--------------------------------+ 2016 | ifEntry | 1.3.6.1.2.1.2.2.1 | OID = 1.3.6.1.2.1.2.2.1 | 2017 | ifIndex | 1.3.6.1.2.1.2.2.1.1 | subID = 1 | 2018 | ifType | 1.3.6.1.2.1.2.2.1.3 | subID = 3 | 2019 | ifMtu | 1.3.6.1.2.1.2.2.1.4 | subID = 4 | 2020 | ifName | 1.3.6.1.2.1.31.1.1.1.1 | OID = 1.3.6.1.2.1.31.1.1.1.1 | 2021 +---------+------------------------+--------------------------------+ 2023 Table 7: IF-MIB OIDs 2025 Figure 29 shows the Templates Exported to Support the 2026 mibObjectValueRow Information Element. Figure 30 shows the example 2027 OID Data for the conceptual row exported in mibObjectValueRow to 2028 match Table 7. Figure 31 shows the example data export as per 2029 Table 6. 2031 0 1 2 3 2032 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 2033 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2034 | Set ID = 2 | Length = 12 | 2035 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2036 | Template ID = 600 | Field Count = 1 | 2037 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2038 |0| IE = mibObjectValueRow | Field Length = 24 | 2039 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2041 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2042 | Set ID = 3 | Length = 26 | 2043 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2044 | Template ID = 601 | Field Count = 4 | 2045 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2046 | Scope Field Count = 1 |0| IE = mibObjectValueInteger | 2047 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2048 | Field Length = 1 |0| IE = mibObjectValueInteger | 2049 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2050 | Field Length = 2 |0| IE = mibObjectValueInteger | 2051 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2052 | Field Length = 2 |0|IE =mibObjectValueOctetString| 2053 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2054 | Field Length = 65535 | 2055 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2057 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2058 | Set ID = 3 | 2059 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2060 | Length = 22 | Template ID = 602 | 2061 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2062 | Field Count = 3 | Scope Field Count = 2 | 2063 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2064 |0| IE = templateId | Field Length = 2 | 2065 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2066 |0| IE = informationElementIndex| Field Length = 2 | 2067 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2068 |0| IE = mibObjectIdentifier | Field Length = 65535 | 2069 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2071 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2072 | Set ID = 3 | Length = 22 | 2073 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2074 | Template ID = 603 | Field Count = 3 | 2075 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2076 | Scope Field Count = 2 |0| IE = templateId | 2077 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2078 | Field Length = 2 |0| IE = informationElementIndex| 2079 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2080 | Field Length = 2 |0| IE = mibSubIdentifier | 2081 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2082 | Field Length = 2 | 2083 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2085 Figure 29: Example of Augmented ifEntry Template and Options Template 2086 Sets 2088 0 1 2 3 2089 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 2090 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2091 | Set ID = 602 | Length = 40 | 2092 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2093 | templateId = 600 | informationElementIndex = 0 | 2094 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2095 | VLEN=10 | mibObjectIdentifier ... | 2096 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2097 | ifEntry = 1.3.6.1.2.1.2.2.1 | 2098 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2099 | 06082B06010201020201 | Padding = 0 | 2100 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2101 | templateId = 601 | informationElementIndex = 3 | 2102 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2103 | VLEN=12 | mibObjectIdentifier ifName ... | 2104 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2105 | ifName = 1.3.6.1.2.1.31.1.1.1.1 | 2106 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2107 | 060a2b060102011f01010101 | 2108 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2109 | | Padding = 0 | 2110 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2112 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2113 | Set ID = 603 | Length = 22 | 2114 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2115 | templateId = 601 | informationElementIndex = 0 | 2116 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2117 | mibSubIdentifier = 1 | templateId = 601 | 2118 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2119 | informationElementIndex = 1 | mibSubIdentifier = 3 | 2120 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2121 | templateId = 601 | informationElementIndex = 2 | 2122 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2123 | mibSubIdentifier = 4 | 2124 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2126 Figure 30: Example of Augmented ifEntry OID Data export 2128 0 1 2 3 2129 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 2130 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2131 | Set ID = 600 | Length = 68 | 2132 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2133 |Semantic=FF | Template ID = 601 | ifIndex = 1 | 2134 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2135 | ifType = 6 | ifMtu = 1500 | 2136 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2137 | length = 11 | ifName = Ethernet 10 | 2138 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2139 | ... | 2140 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2141 | ... | 2142 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2143 |Semantic=FF | Template ID = 601 | ifIndex = 2 | 2144 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2145 | ifType = 6 | ifMtu = 1500 | 2146 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2147 | length = 11 | ifName = Ethernet 20 | 2148 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2149 | ... | 2150 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2151 | ... | 2152 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2153 |Semantic=FF | Template ID = 601 | ifIndex = 3 | 2154 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2155 | ifType = 6 | ifMtu = 1500 | 2156 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2157 | length = 15 | ifName = FastEthernet 30 | 2158 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2159 | ... | 2160 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2161 | ... | 2162 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2163 | ... | 2164 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2166 Figure 31: Example of Data Export for Augmented ifEntry 2168 6.5. Exporting a Columnar Object: The ipIfStatsInForwDatagrams 2170 It may be that the full set of columnar objects that are supported by 2171 a conceptual row are not required to be exported. Rather than use 2172 the Structured Data method the mibIndexIndicator method can be used 2173 to provide the relation between fields. 2175 This example shows the MIB Objects that are part of the INDEX of the 2176 conceptual row being exported in the correct order and then being 2177 referred to by using mibIndexIndicator. 2179 This example shows the export of ipIfStatsInForwDatagrams from the 2180 IP-MIB [RFC4293]. ipIfStatsInForwDatagrams is a columnar object that 2181 is part of the conceptual table ipIfStatsTable. This is comprised of 2182 ipIfStatsEntry conceptual rows. 2184 The ipIfStatsTable conceptual table is indexed by the 2185 ipIfStatsIPVersion and ipIfStatsIfIndex. 2187 The Options Template Record for the example Data Record contains the 2188 following Information Elements: 2190 1. ipIfStatsIPVersion (1.3.6.1.2.1.4.31.3.1.1) (Scope Field) 2191 (encoded using ASN.1/BER to '060A2B06010201041F030101' at 12 2192 octets long) 2194 2. ipIfStatsIfIndex (1.3.6.1.2.1.4.31.3.1.2) (Scope Field) 2195 (encoded using ASN.1/BER to '060A2B06010201041F030102' at 12 2196 octets long) 2198 3. ipIfStatsInForwDatagrams (1.3.6.1.2.1.4.31.3.1.12) (non-Scope 2199 Field) 2200 (encoded using ASN.1/BER to '060A2B06010201041F03010c' at 12 2201 octets long) 2203 Note ipIfStatsIfIndex has been reduce length encoded to 2 octets in 2204 the following example. An exporting device with more interfaces 2205 would use the full length. 2207 Figure 32 shows the exported Options Template Set. 2209 0 1 2 3 2210 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 2211 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2212 | Set ID = 3 | Length = 22 | 2213 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2214 | Template ID = 701 | Field Count = 3 | 2215 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2216 | Scope Field Count = 2 |0|Scope 1=mibObjectValueInteger| 2217 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2218 | Scope Field 1 Length = 1 |0|Scope 2=mibObjectValueInteger| 2219 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2220 | Scope Field 1 Length = 2 |0| IE = mibObjectValueCounter | 2221 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2222 | Field Length = 4 | 2223 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2225 Figure 32: Example of an Options Template for an Indexed MIB Object 2226 with two indices. 2228 Figure 33 shows the exported MIB Field Options Template used to 2229 export the required mibObjectValue Information Element metadata. 2230 This example of the MIB Field Options Template includes the 2231 mibIndexIndicator to indicate that some of the other fields in the 2232 data records are indexes. 2234 0 1 2 3 2235 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 2236 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2237 | Set ID = 3 | Length = 26 | 2238 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2239 | Template ID = 702 | Field Count = 4 | 2240 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2241 | Scope Field Count = 2 |0| IE = templateId | 2242 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2243 | Field Length = 2 |0| IE = informationElementIndex| 2244 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2245 | Field Length = 2 |0| IE = mibIndexIndicator | 2246 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2247 | Field Length = 1 |0| IE = mibObjectIdentifier | 2248 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2249 | Field Length = 65535 | 2250 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2252 Figure 33: Example of an MIB Field Options Template for an Indexed 2253 MIB Object with two indices. 2255 Figure 34 shows the exported MIB Field Options Data used to export 2256 the required mibObjectValue Information Element metadata. Note that 2257 the first two Data Records have all their mibIndexIndicator bits set 2258 to 0. The third mibIndexIndicator has the value '11000000' to show 2259 that the first two fields in the record are the INDEX's for this 2260 columnar object. 2262 0 1 2 3 2263 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 2264 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2265 | Set ID = 702 | Length = 58 | 2266 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2267 | templateId = 701 | informationElementIndex = 0 | 2268 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2269 |Index 00000000 | VLEN = 12 | mibObjectIdentifier ... | 2270 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2271 | "1.3.6.1.2.1.4.31.3.1.1" ... | 2272 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2273 | 060A2B06010201041F030101 ... | 2274 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2275 | | templateId = 701 | 2276 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2277 | informationElementIndex = 1 |Index 00000000 | VLEN = 12 | 2278 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2279 | mibObjectIdentifier = "1.3.6.1.2.1.4.31.3.1.2" ... | 2280 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2281 | 060A2B06010201041F030102 ... | 2282 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2283 | ... | 2284 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2285 | templateId = 701 | informationElementIndex = 2 | 2286 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2287 | Index 11000000 | VLEN = 12 | mibObjectIdentifier ... | 2288 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2289 | "1.3.6.1.2.1.4.31.3.1.12" ... | 2290 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2291 | 060A2B06010201041F03010c ... | 2292 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2293 | | 2294 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2296 Figure 34: Example of an MIB Field Options Data Set for an Indexed 2297 MIB Object with two indices. 2299 Figure 35 shows the Data Records that export the values of the 3 2300 mibObjectValue Information Elements. 2302 0 1 2 3 2303 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 2304 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2305 | Set ID = 701 | Length = 18 | 2306 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2307 | ipVer = 1 | ifIndex = 10 | ... | 2308 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2309 | InForwDatagrams = 10000 | ipVer = 2 | 2310 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2311 | ifIndex = 10 | InForwDatagrams = 20000 | 2312 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2313 | ... | 2314 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2316 Figure 35: Example of an MIB Data Set for an Indexed MIB Object with 2317 two indices. 2319 6.6. Exporting a Columnar Object indexed by IEs: ifOutQLen 2321 If a PSAMP Packet Report [RFC5476] was generated on any dropped 2322 packets on an interface then it may be desirable to know if the send 2323 queue on the output interface was full. This could be done by 2324 exporting the size of the send queue (ifOutQLen) in the same Data 2325 Record as the PSAMP Packet Report. 2327 The exported data looks like: 2329 +-----------+-----------+--------+--------------+-------------------+ 2330 | SRC ADDR | DST ADDR | PAK | OUTPUT | OUTPUT Q. LEN | 2331 | | | LEN | INTERFACE | (ifOutQLen) | 2332 +-----------+-----------+--------+--------------+-------------------+ 2333 | 192.0.2.1 | 192.0.2.3 | 150 | Eth 1/0 (15) | 45 | 2334 | 192.0.2.4 | 192.0.2.9 | 350 | Eth 1/0 (15) | 45 | 2335 | 192.0.2.3 | 192.0.2.9 | 650 | Eth 1/0 (15) | 23 | 2336 | 192.0.2.4 | 192.0.2.6 | 350 | Eth 1/1 (16) | 0 | 2337 +-----------+-----------+--------+--------------+-------------------+ 2339 Table 8: Packet Report with Interface Output Queue Length (ifOutQLen) 2340 Data 2342 The ifOutQLen MIB object defined in the IF-MIB [RFC2863] provides the 2343 length of the output packet queue. This columnar object is part of 2344 the ifEntry conceptual row and indexed by the interface index 2345 (ifIndex). 2347 This relationship between the ifOutQLen field and the index field is 2348 exported using mibIndexIndicator in the MIB Field Options Template. 2349 The value of "00010000" flags the index fields concisely. 2351 The Template Record for the example Data Record contains the 2352 following Information Elements: 2354 1. sourceIPv4Address 2356 2. destinationIPv4Address 2358 3. totalLengthIPv4 2360 4. egressInterface 2362 5. ifOutQLen indexed by: egressInterface 2364 Figure 36 shows the exported Template Set detailing the Template for 2365 exporting a PSAMP Report with Interface Output Queue Length 2366 (ifOutQLen). Figure 37 and Figure 38 show the MIB Field Options 2367 Template and Data Record. 2369 0 1 2 3 2370 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 2371 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2372 | Set ID = 2 | Length = 28 | 2373 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2374 | Template ID = 703 | Field Count = 5 | 2375 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2376 |0| IE = sourceIPv4Address | Field Length = 4 | 2377 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2378 |0| IE = destinationIPv4Address | Field Length = 4 | 2379 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2380 |0| IE = totalLengthIPv4 | Field Length = 4 | 2381 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2382 |0| IE = egressInterface | Field Length = 4 | 2383 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2384 |0| IE = mibObjectValueGauge | Field Length = 4 | 2385 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2387 Figure 36: Example of Template for a PSAMP Report with ifOutQLen 2388 indexed by egressInterface 2390 0 1 2 3 2391 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 2392 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2393 | Set ID = 3 | Length = 26 | 2394 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2395 | Template ID = 704 | Field Count = 4 | 2396 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2397 | Scope Field Count = 2 |0| IE = templateId | 2398 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2399 | Field Length = 2 |0| IE = informationElementIndex| 2400 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2401 | Field Length = 2 |0| IE = mibIndexIndicator | 2402 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2403 | Field Length = 1 |0| IE = mibObjectIdentifier | 2404 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2405 | Field Length = 65535 | 2406 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2408 Figure 37: Example of MIB Field Options Template for a PSAMP Report 2409 with ifOutQLen indexed by egressInterface 2411 0 1 2 3 2412 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 2413 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2414 | Set ID = 704 | Length = 21 | 2415 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2416 | templateId = 703 | informationElementIndex = 4 | 2417 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2418 |Index 00010000 | VLEN = 11 | mibObjectIdentifier ... | 2419 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2420 | "1.3.6.1.2.1.2.2.1.21" ... | 2421 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2422 | 06092B0601020102020115 ... | 2423 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2424 | | 2425 +-+-+-+-+-+-+-+-+ 2427 Figure 38: Example of MIB Field Options Data Record for a PSAMP 2428 Report with ifOutQLen indexed by egressInterface 2430 The corresponding IPFIX Data Record is shown in Figure 39. For the 2431 sake of the example, the interface index of "Eth 1/0" is 15 and the 2432 interface index of "Eth 1/1" is 16. 2434 0 1 2 3 2435 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 2436 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2437 | Set ID = 703 | Length = 84 | 2438 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2439 | 192.0.2.1 | 2440 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2441 | 192.0.2.3 | 2442 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2443 | 150 | 2444 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2445 | 15 (Eth 1/0) | 2446 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2447 | 45 | 2448 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2449 | 192.0.2.4 | 2450 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2451 | 192.0.2.9 | 2452 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2453 | 350 | 2454 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2455 | 15 (Eth 1/0) | 2456 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2457 | 45 | 2458 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2459 | 192.0.2.3 | 2460 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2461 | 192.0.2.9 | 2462 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2463 | 650 | 2464 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2465 | 15 (Eth 1/0) | 2466 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2467 | 23 | 2468 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2469 | 192.0.2.4 | 2470 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2471 | 192.0.2.6 | 2472 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2473 | 350 | 2474 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2475 | 16 (Eth 1/1) | 2476 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2477 | 0 | 2478 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2480 Figure 39: Example of PSAMP Packet Report with ifOutQLen indexed by 2481 egressInterface 2483 6.7. Exporting With Multiple Contexts: The OSPF Neighbor Row Revisited 2485 If the Context used to export the MIB objects is the default one no 2486 extra context fields are required. This example demonstrates how to 2487 handle the case when the Context needs to be specified. It is based 2488 on the previous example Section 6.3. 2490 The OSPF details exported of the conceptual row in Section 6.3 would 2491 be suitable if there were only one OSPF process running at the 2492 Observation Point. If multiple OSPF processes are present then they 2493 can be differentiated by also exporting the mibContextEngineID and 2494 mibContextName. 2496 The following fields will be exported: 2498 +----------------------+------------+----------------------+--------+ 2499 | Object | ID | mibObjectValue | Length | 2500 | | | | in | 2501 | | | | octets | 2502 +----------------------+------------+----------------------+--------+ 2503 | ospfNbrIpAddr | ospfNbrEnt | mibObjectValueIPAddr | 4 | 2504 | | ry 1 | ess | | 2505 | ospfNbrAddressLessIn | ospfNbrEnt | mibObjectValueIntege | 4 | 2506 | dex | ry 2 | r | | 2507 | ospfNbrRtrId | ospfNbrEnt | mibObjectValueIPAddr | 4 | 2508 | | ry 3 | ess | | 2509 | ospfNbrState | ospfNbrEnt | mibObjectValueIntege | 1 | 2510 | | ry 6 | r | | 2511 +----------------------+------------+----------------------+--------+ 2513 Table 9: OSPF Neighbor Entry Objects 2515 The example contextEngineID matches the example from [RFC3411] for 2516 Acme Networks: "'800002b804616263'H (enterprise 696, string 'abc')" 2518 Figure 40 shows the Templates Exported to support a mibObjectValueRow 2519 that is defined within a context. Figure 41 shows the example OID 2520 Data for the conceptual row exported in mibObjectValueRow. These are 2521 unchanged from the previous example. Figure 42 shows the example 2522 data for 2 OSPF neighbors. Although these have identical INDEX/scope 2523 values the context information indicates they come from different 2524 OSPF processes. Note that the OID for ospfNbrEntry has been encoded 2525 using ASN.1/BER to '06082B060102010E0A01' at 10 octets long. 2527 0 1 2 3 2528 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 2529 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2530 | Set ID = 2 | Length = 20 | 2531 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2532 | Template ID = 800 | Field Count = 3 | 2533 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2534 |0| IE = mibContextEngineID | Field Length = 8 | 2535 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2536 |0| IE = mibContextName | Field Length = 4 | 2537 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2538 |0| IE = mibObjectValueRow | Field Length = 16 | 2539 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2541 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2542 | Set ID = 3 | Length = 26 | 2543 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2544 | Template ID = 801 | Field Count = 4 | 2545 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2546 | Scope Field Count = 2 |0| IE = mibObjectValueIPAddress| 2547 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2548 | Field Length = 4 |0| IE = mibObjectValueInteger | 2549 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2550 | Field Length = 4 |0| IE = mibObjectValueIPAddress| 2551 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2552 | Field Length = 4 |0| IE = mibObjectValueInteger | 2553 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2554 | Field Length = 1 | 2555 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2557 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2558 | Set ID = 3 | 2559 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2560 | Length = 22 | Template ID = 802 | 2561 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2562 | Field Count = 3 | Scope Field Count = 2 | 2563 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2564 |0| IE = templateId | Field Length = 2 | 2565 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2566 |0| IE = informationElementIndex| Field Length = 2 | 2567 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2568 |0| IE = mibObjectIdentifier | Field Length = 65535 | 2569 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2571 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2572 | Set ID = 3 | Length = 22 | 2573 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2574 | Template ID = 803 | Field Count = 3 | 2575 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2576 | Scope Field Count = 2 |0| IE = templateId | 2577 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2578 | Field Length = 2 |0| IE = informationElementIndex| 2579 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2580 | Field Length = 2 |0| IE = mibSubIdentifier | 2581 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2582 | Field Length = 2 | 2583 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2585 Figure 40: Example of ospfNbrEntry Template and Options Template Sets 2586 with Context 2588 0 1 2 3 2589 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 2590 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2591 | Set ID = 802 | Length = 20 | 2592 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2593 | templateId = 800 | informationElementIndex = 2 | 2594 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2595 | VLEN=10 | mibObjectIdentifier = "1.3.6.1.2.1.14.10.1" | 2596 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2597 | 06082B060102010E0A01 | 2598 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2599 | | Padding = 0 | 2600 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2602 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2603 | Set ID = 803 | Length = 28 | 2604 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2605 | templateId = 801 | informationElementIndex = 0 | 2606 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2607 | mibSubIdentifier = 1 | templateId = 801 | 2608 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2609 | informationElementIndex = 1 | mibSubIdentifier = 2 | 2610 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2611 | templateId = 801 | informationElementIndex = 2 | 2612 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2613 | mibSubIdentifier = 3 | templateId = 801 | 2614 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2615 | informationElementIndex = 3 | mibSubIdentifier = 6 | 2616 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2618 Figure 41: Example of ospfNbrEntry OID Data export with Context 2619 0 1 2 3 2620 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 2621 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2622 | Set ID = 800 | Length = 60 | 2623 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2624 | mibContextEngineID = 800002b804616263 | 2625 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2626 | ... mibContextEngineID | 2627 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2628 | mibContextName = con1 | 2629 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2630 |Semantic=FF | Template ID = 801 | ... | 2631 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2632 | ospfNbrIpAddr = 192.0.2.1 | ... | 2633 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2634 | ospfNbrAddressLessIndex = 0 | ... | 2635 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2636 | ospfNbrRtrId = 1.1.1.1 |ospfNbrState=8 | 2637 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2638 | mibContextEngineID = 800002b804616263 | 2639 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2640 | ... mibContextEngineID | 2641 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2642 | mibContextName = con2 | 2643 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2644 |Semantic=FF | Template ID = 801 | ... | 2645 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2646 | ospfNbrIpAddr = 192.0.2.1 | ... | 2647 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2648 | ospfNbrAddressLessIndex = 0 | ... | 2649 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2650 | ospfNbrRtrId = 2.2.2.2 |ospfNbrState=8 | 2651 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2653 Figure 42: Example of Data Export for ospfNbrEntry with Context 2655 7. Configuration Considerations 2657 When configuring a MIB OID for export, consideration should be given 2658 to whether the SNMP Context String should also be configurable. If a 2659 non-default Context String is used then it should be associated with 2660 the fields as per Section 5.6. 2662 8. The Collecting Process's Side 2664 The specifications in section 9 of [RFC7011] also apply to Collectors 2665 that implement this specification. In addition, the following 2666 specifications should be noted. 2668 A Collecting Process that implements this specification MUST store 2669 the data records containing the OID Object Type Definitions with the 2670 same retention policy as templates. 2672 A Collecting Process that implements this specification SHOULD have 2673 access to MIB modules in order to look up the received MIB Object 2674 Identifiers and find the full type definition and name of MIB OID 2675 fields used in received templates. 2677 It should be noted that since reduced size encoding MAY be used by 2678 the Exporting Process, the Collecting Process cannot assume a 2679 received size for a field is the maximum size it should expect for 2680 that field. 2682 If a Collecting Process receives a MIB Object Identifier that it 2683 cannot decode, it MAY log a warning. 2685 A Collecting Process MUST support the 3 options for handling columnar 2686 objects detailed in Section 5.8. 2688 9. Applicability 2690 Making available the many and varied items from MIB modules opens up 2691 a wide range of possible applications for the IPFIX protocol, some 2692 quite different from the usual flow information. 2694 Some monitoring applications periodically export an interface ID to 2695 interface name mapping using IPFIX Options Templates. This could be 2696 expanded to include the MIB object "ifInUcastPkts" of the IF-MIB 2697 [RFC2863] indexed using the ingressInterface Information Element. 2698 This would give the input statistics for each interface which can be 2699 compared to the flow information to ensure the sampling rate is 2700 expected. Or, if there is no sampling, to ensure that all the 2701 expected packets are being monitored. 2703 10. Security Considerations 2705 For this extension to the IPFIX protocol, the same security 2706 considerations as for the IPFIX protocol apply [RFC7011]. 2708 If the exporter is generating or capturing the field values itself, 2709 e.g. using the MIB objects only as an encoding or type mechanism, 2710 there are no extra security considerations beyond standard IPFIX. 2712 However if the exporter is a client of an SNMP engine on the same 2713 device it MUST abide by existing SNMP security rules. 2715 The access to particular MIB objects is controlled by the 2716 configuration of the IPFIX exporter. This is consistent with the way 2717 IPFIX controls access to other Information Elements in general. 2719 The configuration of an IPFIX Exporter determines which MIB objects 2720 are included in IPFIX Data Records sent to certain collectors. 2721 Network operators should take care that the only MIB objects which 2722 are included in IPFIX Data Records are ones which the receiving flow 2723 collector is allowed to receive. 2725 11. IANA Considerations 2727 11.1. New IPFIX Semantics 2729 New IPFIX semantics must be allocated in IANA's IPFIX registry 2730 [IANA-IPFIX] per section 6 of [RFC7012], as defined in the sub- 2731 sections below. 2733 11.1.1. snmpCounter 2735 An integral value reporting the value of a counter, identical to the 2736 Counter32 and Counter64 semantics in [RFC2578], as determined by the 2737 field length. 2739 This is similar to IPFIX's totalCounter semantic, except that total 2740 counters have an initial value of 0, while SNMP counters do not. 2742 11.1.2. snmpGauge 2744 An integral value identical to the Gauge32 semantic in [RFC2578], and 2745 the Gauge64 semantic in [RFC2856], as determined by the field length. 2747 11.2. New IPFIX Information Elements 2749 The new Information Elements in Table 10 must be allocated in IANA's 2750 IPFIX registry [IANA-IPFIX], as defined in the sub-sections below. 2752 In each case the "Units" and "Range" are to be left blank, since 2753 these are not applicable. 2755 +-----------+---------------------------+ 2756 | ElementId | Name | 2757 +-----------+---------------------------+ 2758 | TBD1 | mibObjectValueInteger | 2759 | TBD2 | mibObjectValueOctetString | 2760 | TBD3 | mibObjectValueOID | 2761 | TBD4 | mibObjectValueBits | 2762 | TBD5 | mibObjectValueIPAddress | 2763 | TBD6 | mibObjectValueCounter | 2764 | TBD7 | mibObjectValueGauge | 2765 | TBD8 | mibObjectValueTimeTicks | 2766 | TBD9 | mibObjectValueUnsigned | 2767 | TBD10 | mibObjectValueTable | 2768 | TBD11 | mibObjectValueRow | 2769 | TBD12 | mibObjectIdentifier | 2770 | TBD13 | mibSubIdentifier | 2771 | TBD14 | mibIndexIndicator | 2772 | TBD15 | mibCaptureTimeSemantics | 2773 | TBD16 | mibContextEngineID | 2774 | TBD17 | mibContextName | 2775 | TBD18 | mibObjectName | 2776 | TBD19 | mibObjectDescription | 2777 | TBD20 | mibObjectSyntax | 2778 | TBD21 | mibModuleName | 2779 +-----------+---------------------------+ 2781 Table 10: New Information Elements 2783 11.2.1. New MIB Value Information Elements 2785 11.2.1.1. mibObjectValueInteger 2787 A new Information Element "mibObjectValueInteger" must be allocated 2788 in IANA's IPFIX registry [IANA-IPFIX], with the following definition: 2790 Description: An IPFIX Information Element which denotes that the 2791 integer value of a MIB object will be exported. The MIB Object 2792 Identifier ("mibObjectIdentifier") for this field MUST be exported 2793 in a MIB Field Option or via another means. This Information 2794 Element is used for MIB objects with the Base Syntax of Integer32 2795 and INTEGER with IPFIX Reduced Size Encoding used as required. 2796 The value is encoded as per the standard IPFIX Abstract Data Type 2797 of signed64. 2799 Abstract Data Type: signed64 2801 Data Type Semantics: identifier 2802 ElementId: TBD1 2804 Status: current 2806 Reference: [this document]. 2808 11.2.1.2. mibObjectValueOctetString 2810 A new Information Element "mibObjectValueOctetString" must be 2811 allocated in IANA's IPFIX registry [IANA-IPFIX], with the following 2812 definition: 2814 Description: An IPFIX Information Element which denotes that an 2815 Octet String or Opaque value of a MIB object will be exported. 2816 The MIB Object Identifier ("mibObjectIdentifier") for this field 2817 MUST be exported in a MIB Field Option or via another means. This 2818 Information Element is used for MIB objects with the Base Syntax 2819 of OCTET STRING and Opaque. The value is encoded as per the 2820 standard IPFIX Abstract Data Type of octetArray. 2822 Abstract Data Type: octetArray 2824 Data Type Semantics: default 2826 ElementId: TBD2 2828 Status: current 2830 Reference: [this document]. 2832 11.2.1.3. mibObjectValueOID 2834 A new Information Element "mibObjectValueOID" must be allocated in 2835 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 2837 Description: An IPFIX Information Element which denotes that an 2838 Object Identifier or OID value of a MIB object will be exported. 2839 The MIB Object Identifier ("mibObjectIdentifier") for this field 2840 MUST be exported in a MIB Field Option or via another means. This 2841 Information Element is used for MIB objects with the Base Syntax 2842 of OBJECT IDENTIFIER. Note - In this case the 2843 "mibObjectIdentifier" will define which MIB object is being 2844 exported while the value contained in this Information Element 2845 will be an OID as a value. The mibObjectValueOID Information 2846 Element is encoded as ASN.1/BER [BER] in an octetArray. 2848 Abstract Data Type: octetArray 2849 Data Type Semantics: default 2851 ElementId: TBD3 2853 Status: current 2855 Reference: [this document]. 2857 11.2.1.4. mibObjectValueBits 2859 A new Information Element "mibObjectValueBits" must be allocated in 2860 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 2862 Description: An IPFIX Information Element which denotes that a set 2863 of Enumerated flags or bits from a MIB object will be exported. 2864 The MIB Object Identifier ("mibObjectIdentifier") for this field 2865 MUST be exported in a MIB Field Option or via another means. This 2866 Information Element is used for MIB objects with the Base Syntax 2867 of BITS. The flags or bits are encoded as per the standard IPFIX 2868 Abstract Data Type of octetArray, with sufficient length to 2869 accomodate the required number of bits. If the number of bits is 2870 not an integer multiple of octets then the most significant bits 2871 at end of the octetArray MUST be set to zero. 2873 Abstract Data Type: octetArray 2875 Data Type Semantics: flags 2877 ElementId: TBD4 2879 Status: current 2881 Reference: [this document]. 2883 11.2.1.5. mibObjectValueIPAddress 2885 A new Information Element "mibObjectValueIPAddress" must be allocated 2886 in IANA's IPFIX registry [IANA-IPFIX], with the following definition: 2888 Description: An IPFIX Information Element which denotes that the 2889 IPv4 Address of a MIB object will be exported. The MIB Object 2890 Identifier ("mibObjectIdentifier") for this field MUST be exported 2891 in a MIB Field Option or via another means. This Information 2892 Element is used for MIB objects with the Base Syntax of IPaddress. 2893 The value is encoded as per the standard IPFIX Abstract Data Type 2894 of ipv4Address. 2896 Abstract Data Type: ipv4Address 2897 Data Type Semantics: default 2899 ElementId: TBD5 2901 Status: current 2903 Reference: [this document]. 2905 11.2.1.6. mibObjectValueCounter 2907 A new Information Element "mibObjectValueCounter" must be allocated 2908 in IANA's IPFIX registry [IANA-IPFIX], with the following definition: 2910 Description: An IPFIX Information Element which denotes that the 2911 counter value of a MIB object will be exported. The MIB Object 2912 Identifier ("mibObjectIdentifier") for this field MUST be exported 2913 in a MIB Field Option or via another means. This Information 2914 Element is used for MIB objects with the Base Syntax of Counter32 2915 or Counter64 with IPFIX Reduced Size Encoding used as required. 2916 The value is encoded as per the standard IPFIX Abstract Data Type 2917 of unsigned64. 2919 Abstract Data Type: unsigned64 2921 Data Type Semantics: snmpCounter 2923 ElementId: TBD6 2925 Status: current 2927 Reference: [this document]. 2929 11.2.1.7. mibObjectValueGauge 2931 A new Information Element "mibObjectValueGauge" must be allocated in 2932 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 2934 Description: An IPFIX Information Element which denotes that the 2935 Gauge value of a MIB object will be exported. The MIB Object 2936 Identifier ("mibObjectIdentifier") for this field MUST be exported 2937 in a MIB Field Option or via another means. This Information 2938 Element is used for MIB objects with the Base Syntax of Gauge32. 2939 The value is encoded as per the standard IPFIX Abstract Data Type 2940 of unsigned64. This value will represent a non-negative integer, 2941 which may increase or decrease, but shall never exceed a maximum 2942 value, nor fall below a minimum value. 2944 Abstract Data Type: unsigned32 2945 Data Type Semantics: snmpGauge 2947 ElementId: TBD7 2949 Status: current 2951 Reference: [this document]. 2953 11.2.1.8. mibObjectValueTimeTicks 2955 A new Information Element "mibObjectValueTimeTicks" must be allocated 2956 in IANA's IPFIX registry [IANA-IPFIX], with the following definition: 2958 Description: An IPFIX Information Element which denotes that the 2959 TimeTicks value of a MIB object will be exported. The MIB Object 2960 Identifier ("mibObjectIdentifier") for this field MUST be exported 2961 in a MIB Field Option or via another means. This Information 2962 Element is used for MIB objects with the Base Syntax of TimeTicks. 2963 The value is encoded as per the standard IPFIX Abstract Data Type 2964 of unsigned32. 2966 Abstract Data Type: unsigned32 2968 Data Type Semantics: default 2970 ElementId: TBD8 2972 Status: current 2974 Reference: [this document]. 2976 11.2.1.9. mibObjectValueUnsigned 2978 A new Information Element "mibObjectValueUnsigned" must be allocated 2979 in IANA's IPFIX registry [IANA-IPFIX], with the following definition: 2981 Description: An IPFIX Information Element which denotes that an 2982 unsigned integer value of a MIB object will be exported. The MIB 2983 Object Identifier ("mibObjectIdentifier") for this field MUST be 2984 exported in a MIB Field Option or via another means. This 2985 Information Element is used for MIB objects with the Base Syntax 2986 of unsigned64 with IPFIX Reduced Size Encoding used as required. 2987 The value is encoded as per the standard IPFIX Abstract Data Type 2988 of unsigned64. 2990 Abstract Data Type: unsigned64 2992 Data Type Semantics: identifier 2993 ElementId: TBD9 2995 Status: current 2997 Reference: [this document]. 2999 11.2.1.10. mibObjectValueTable 3001 A new Information Element "mibObjectValueTable" must be allocated in 3002 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3004 Description: An IPFIX Information Element which denotes that a 3005 complete conceptual table will be exported. The MIB Object 3006 Identifier ("mibObjectIdentifier") for this field MUST be exported 3007 in a MIB Field Option or via another means. This Information 3008 Element is used for MIB objects with a SYNTAX of SEQUENCE OF. 3009 This is encoded as a basicList of "mibObjectValueRow"s. The Field 3010 ID for the basicList MUST be TBD11. The mibObjectValueRow MUST be 3011 of the same type/OID as specified in this MIB object's syntax. 3013 Abstract Data Type: basicList 3015 Data Type Semantics: list 3017 ElementId: TBD10 3019 Status: current 3021 Reference: [this document]. 3023 11.2.1.11. mibObjectValueRow 3025 A new Information Element "mibObjectValueRow" must be allocated in 3026 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3028 Description: An IPFIX Information Element which denotes that a row 3029 of a conceptual table will be exported. The MIB Object Identifier 3030 ("mibObjectIdentifier") for this field MUST be exported in a MIB 3031 Field Option or via another means. This Information Element is 3032 used for MIB objects with a SYNTAX of SEQUENCE. This is encoded 3033 as a subTemplateList of mibObjectValue Information Elements. The 3034 template specified in the subTemplateList MUST be an Options 3035 Template and MUST include all the Objects listed in the INDEX 3036 clause as Scope Fields. 3038 Abstract Data Type: subTemplateList 3040 Data Type Semantics: list 3041 ElementId: TBD11 3043 Status: current 3045 Reference: [this document]. 3047 11.2.2. New MIB Field Options Information Elements 3049 11.2.2.1. mibObjectIdentifier 3051 A new Information Element "mibObjectIdentifier" must be allocated in 3052 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3054 Description: An IPFIX Information Element which denotes that a MIB 3055 Object Identifier (MIB OID) is exported in the (Options) Template 3056 Record. The mibObjectIdentifier Information Element contains the 3057 OID assigned to the MIB Object Type Definition encoded as ASN.1/ 3058 BER [BER] 3060 Abstract Data Type: octetArray 3062 Data Type Semantics: default 3064 ElementId: TBD12 3066 Status: current 3068 Reference: [this document]. 3070 11.2.2.2. mibSubIdentifier 3072 A new Information Element "mibSubIdentifier" must be allocated in 3073 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3075 Description: A non-negative sub-identifier of an Object Identifier 3076 (OID). 3078 Abstract Data Type: unsigned32 3080 Data Type Semantics: identifier 3082 ElementId: TBD13 3084 Status: current 3086 Reference: [this document]. 3088 11.2.2.3. mibIndexIndicator 3090 A new Information Element "mibIndexIndicator" must be allocated in 3091 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3093 Description: This set of bit fields is used for marking the 3094 Information Elements of a Data Record that serve as INDEX MIB 3095 objects for an indexed Columnar MIB object. Each bit represents 3096 an Information Element in the Data Record with the n-th bit 3097 representing the n-th Information Element. A bit set to value 1 3098 indicates that the corresponding Information Element is an index 3099 of the Columnar Object represented by the mibFieldValue. A bit 3100 set to value 0 indicates that this is not the case. 3102 If the Data Record contains more than 64 Information Elements, the 3103 corresponding Template SHOULD be designed such that all INDEX 3104 Fields are among the first 64 Information Elements, because the 3105 mibIndexIndicator only contains 64 bits. If the Data Record 3106 contains less than 64 Information Elements, then the extra bits in 3107 the mibIndexIndicator for which no corresponding Information 3108 Element exists MUST have the value 0, and must be disregarded by 3109 the Collector. This Information Element may be exported with 3110 IPFIX Reduced Size Encoding. 3112 Abstract Data Type: unsigned64 3114 Data Type Semantics: flags 3116 ElementId: TBD14 3118 Status: current 3120 Reference: [this document]. 3122 11.2.2.4. mibCaptureTimeSemantics 3124 A new Information Element "mibCaptureTimeSemantics" must be allocated 3125 in IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3127 Description: Indicates when in the lifetime of the flow the MIB 3128 value was retrieved from the MIB for a mibObjectIdentifier. This 3129 is used to indicate if the value exported was collected from the 3130 MIB closer to flow creation or flow export time and will refer to 3131 the Timestamp fields included in the same record. This field 3132 SHOULD be used when exporting a mibObjectValue that specifies 3133 counters or statistics. 3135 If the MIB value was sampled by SNMP prior to the IPFIX Metering 3136 Process or Exporting Process retrieving the value (i.e. the data 3137 is already stale) and it's important to know the exact sampling 3138 time, then an additional observationTime* element should be paired 3139 with the OID using structured data. Similarly, if different 3140 mibCaptureTimeSemantics apply to different mibObject elements 3141 within the Data Record, then individual mibCaptureTimeSemantics 3142 should be paired with each OID using structured data. 3144 Values: 3146 0. undefined 3148 1. begin - The value for the MIB object is captured from the 3149 MIB when the Flow is first observed 3151 2. end - The value for the MIB object is captured from the MIB 3152 when the Flow ends 3154 3. export - The value for the MIB object is captured from the 3155 MIB at export time 3157 4. average - The value for the MIB object is an average of 3158 multiple captures from the MIB over the observed life of the 3159 Flow 3161 Abstract Data Type: unsigned8 3163 Data Type Semantics: identifier 3165 ElementId: TBD15 3167 Status: current 3169 Reference: [this document]. 3171 11.2.2.5. mibContextEngineID 3173 A new Information Element "mibContextEngineID" must be allocated in 3174 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3176 Description: A mibContextEngineID that specifies the SNMP engine 3177 ID for a MIB field being exported over IPFIX. Definition as per 3178 [RFC3411] section 3.3 3180 Abstract Data Type: octetArray 3182 Data Type Semantics: default 3183 ElementId: TBD16 3185 Status: current 3187 Reference: [this document]. 3189 11.2.2.6. mibContextName 3191 A new Information Element "mibContextName" must be allocated in 3192 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3194 Description: This Information Element denotes that a MIB Context 3195 Name is specified for a MIB field being exported over IPFIX. 3196 Reference [RFC3411] section 3.3 3198 Abstract Data Type: string 3200 Data Type Semantics: default 3202 ElementId: TBD17 3204 Status: current 3206 Reference: [this document]. 3208 11.2.3. New MIB Type Information Elements 3210 11.2.3.1. mibObjectName 3212 A new Information Element "mibObjectName" must be allocated in IANA's 3213 IPFIX registry [IANA-IPFIX], with the following definition: 3215 Description: The name (called a descriptor in [RFC2578]) of an 3216 object type definition. 3218 Abstract Data Type: string 3220 Data Type Semantics: default 3222 ElementId: TBD18 3224 Status: current 3226 Reference: [this document]. 3228 11.2.3.2. mibObjectDescription 3230 A new Information Element "mibObjectDescription" must be allocated in 3231 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3233 Description: The value of the DESCRIPTION clause of an MIB object 3234 type definition. 3236 Abstract Data Type: string 3238 Data Type Semantics: default 3240 ElementId: TBD19 3242 Status: current 3244 Reference: [this document]. 3246 11.2.3.3. mibObjectSyntax 3248 A new Information Element "mibObjectSyntax" must be allocated in 3249 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3251 Description: The value of the SYNTAX clause of an MIB object type 3252 definition, which may include a Textual Convention or Subtyping. 3253 See [RFC2578]. 3255 Abstract Data Type: string 3257 Data Type Semantics: default 3259 ElementId: TBD20 3261 Status: current 3263 Reference: [this document]. 3265 11.2.3.4. mibModuleName 3267 A new Information Element "mibModuleName" must be allocated in IANA's 3268 IPFIX registry [IANA-IPFIX], with the following definition: 3270 Description: The textual name of the MIB module that defines a MIB 3271 Object. 3273 Abstract Data Type: string 3275 Data Type Semantics: default 3276 ElementId: TBD21 3278 Status: current 3280 Reference: [this document]. 3282 12. Acknowledgements 3284 The authors would like to thank Andrew Johnson for his collaboration 3285 on the first version of the draft, and to thank Andrew Feren and 3286 Brian Trammell for their detailed reviews. 3288 13. References 3290 13.1. Normative References 3292 [BER] International Organization for Standardization, 3293 "Information processing systems - Open Systems 3294 Interconnection - Specification of Basic Encoding Rules 3295 for Abstract Syntax Notation One (ASN.1),International 3296 Organization for Standardization. International Standard 3297 8825, December 1987", . 3299 [IANA-IPFIX] 3300 IANA, "IPFIX Information Elements registry", 3301 . 3303 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 3304 Requirement Levels", BCP 14, RFC 2119, March 1997. 3306 [RFC2578] McCloghrie, K., Ed., Perkins, D., Ed., and J. 3307 Schoenwaelder, Ed., "Structure of Management Information 3308 Version 2 (SMIv2)", STD 58, RFC 2578, April 1999. 3310 [RFC2856] Bierman, A., McCloghrie, K., and R. Presuhn, "Textual 3311 Conventions for Additional High Capacity Data Types", RFC 3312 2856, June 2000. 3314 [RFC3411] Harrington, D., Presuhn, R., and B. Wijnen, "An 3315 Architecture for Describing Simple Network Management 3316 Protocol (SNMP) Management Frameworks", STD 62, RFC 3411, 3317 December 2002. 3319 [RFC6526] Claise, B., Aitken, P., Johnson, A., and G. Muenz, "IP 3320 Flow Information Export (IPFIX) Per Stream Control 3321 Transmission Protocol (SCTP) Stream", RFC 6526, March 3322 2012. 3324 [RFC7011] Claise, B., Trammell, B., and P. Aitken, "Specification of 3325 the IP Flow Information Export (IPFIX) Protocol for the 3326 Exchange of Flow Information", STD 77, RFC 7011, September 3327 2013. 3329 [RFC7012] Claise, B. and B. Trammell, "Information Model for IP Flow 3330 Information Export (IPFIX)", RFC 7012, September 2013. 3332 13.2. Informative References 3334 [CISCO-PROCESS-MIB] 3335 Cisco Systems Inc., "CISCO-PROCESS-MIB.my: MIB for CPU and 3336 process statistics", 3337 . 3340 [RFC2863] McCloghrie, K. and F. Kastenholz, "The Interfaces Group 3341 MIB", RFC 2863, June 2000. 3343 [RFC2982] Kavasseri, R., "Distributed Management Expression MIB", 3344 RFC 2982, October 2000. 3346 [RFC3444] Pras, A. and J. Schoenwaelder, "On the Difference between 3347 Information Models and Data Models", RFC 3444, January 3348 2003. 3350 [RFC4022] Raghunarayan, R., "Management Information Base for the 3351 Transmission Control Protocol (TCP)", RFC 4022, March 3352 2005. 3354 [RFC4293] Routhier, S., "Management Information Base for the 3355 Internet Protocol (IP)", RFC 4293, April 2006. 3357 [RFC4750] Joyal, D., Galecki, P., Giacalone, S., Coltun, R., and F. 3358 Baker, "OSPF Version 2 Management Information Base", RFC 3359 4750, December 2006. 3361 [RFC4960] Stewart, R., "Stream Control Transmission Protocol", RFC 3362 4960, September 2007. 3364 [RFC5470] Sadasivan, G., Brownlee, N., Claise, B., and J. Quittek, 3365 "Architecture for IP Flow Information Export", RFC 5470, 3366 March 2009. 3368 [RFC5476] Claise, B., Johnson, A., and J. Quittek, "Packet Sampling 3369 (PSAMP) Protocol Specifications", RFC 5476, March 2009. 3371 [RFC6313] Claise, B., Dhandapani, G., Aitken, P., and S. Yates, 3372 "Export of Structured Data in IP Flow Information Export 3373 (IPFIX)", RFC 6313, July 2011. 3375 Authors' Addresses 3377 Paul Aitken (editor) 3378 Brocade 3379 Edinburgh, Scotland 3380 UK 3382 Phone: +44 203 005 0731 3383 Email: paitken@brocade.com 3385 Benoit Claise 3386 Cisco Systems, Inc. 3387 De Kleetlaan 6a b1 3388 Diegem 1813 3389 Belgium 3391 Phone: +32 2 704 5622 3392 Email: bclaise@cisco.com 3394 Srikar 3395 Cisco Systems, Inc. 3396 Mail Stop BGL13/3/, SEZ Unit, Cessna Business Park, Kadubeesanahalli 3397 Village Varthur Hobli, Sarjapur Marathalli Outer Ring Road 3398 Bangalore KARNATAKA 560 103 3399 IN 3401 Phone: +91 80 4426 3264 3402 Email: srikar@cisco.com 3404 Colin McDowall 3405 Brocade 3406 Edinburgh, Scotland 3407 UK 3409 Phone: +44 203 005 0687 3410 Email: cmcdowal@brocade.com 3411 Juergen Schoenwaelder 3412 Jacobs University Bremen 3413 Campus Ring 1 3414 Bremen 28725 3415 Germany 3417 Phone: +49 421 200-3587 3418 Email: j.schoenwaelder@jacobs-university.de