idnits 2.17.1 draft-ietf-ipfix-mib-variable-export-05.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 (March 4, 2014) is 3706 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' Summary: 0 errors (**), 0 flaws (~~), 2 warnings (==), 4 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 IPFIX Working Group P. Aitken, Ed. 3 Internet-Draft B. Claise 4 Intended status: Standards Track S. B S 5 Expires: September 5, 2014 C. McDowall 6 Cisco Systems, Inc. 7 J. Schoenwaelder 8 Jacobs University Bremen 9 March 4, 2014 11 Exporting MIB Variables using the IPFIX Protocol 12 draft-ietf-ipfix-mib-variable-export-05 14 Abstract 16 This document specifies a way to complement IPFIX Data Records with 17 Management Information Base (MIB) objects, avoiding the need to 18 define new IPFIX Information Elements for existing Management 19 Information Base objects that are already fully specified. 21 An IPFIX Option Template and method are specified, which are used to 22 export the extra information required to fully describe Simple 23 Network Management Protocol (SNMP) MIB Objects. 25 Status of This Memo 27 This Internet-Draft is submitted in full conformance with the 28 provisions of BCP 78 and BCP 79. 30 Internet-Drafts are working documents of the Internet Engineering 31 Task Force (IETF). Note that other groups may also distribute 32 working documents as Internet-Drafts. The list of current Internet- 33 Drafts is at http://datatracker.ietf.org/drafts/current/. 35 Internet-Drafts are draft documents valid for a maximum of six months 36 and may be updated, replaced, or obsoleted by other documents at any 37 time. It is inappropriate to use Internet-Drafts as reference 38 material or to cite them other than as "work in progress." 40 This Internet-Draft will expire on September 5, 2014. 42 Copyright Notice 44 Copyright (c) 2014 IETF Trust and the persons identified as the 45 document authors. All rights reserved. 47 This document is subject to BCP 78 and the IETF Trust's Legal 48 Provisions Relating to IETF Documents 49 (http://trustee.ietf.org/license-info) in effect on the date of 50 publication of this document. Please review these documents 51 carefully, as they describe your rights and restrictions with respect 52 to this document. Code Components extracted from this document must 53 include Simplified BSD License text as described in Section 4.e of 54 the Trust Legal Provisions and are provided without warranty as 55 described in the Simplified BSD License. 57 Table of Contents 59 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 60 2. Motivation and Architectural Model . . . . . . . . . . . . . 6 61 3. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 7 62 4. MIB Object Value Information Elements and the MIB Field 63 Option Templates . . . . . . . . . . . . . . . . . . . . . . 8 64 4.1. MIB Field Option Architecture . . . . . . . . . . . . . . 9 65 4.2. MIB Field Options - Specifications and Required Fields . 11 66 4.2.1. mibFieldOption . . . . . . . . . . . . . . . . . . . 12 67 4.2.2. mibSubFieldOption . . . . . . . . . . . . . . . . . . 13 68 4.2.3. mibTypeOption . . . . . . . . . . . . . . . . . . . . 13 69 4.3. IPFIX and MIB Data Model . . . . . . . . . . . . . . . . 14 70 4.4. MIB Field Option Template Formats . . . . . . . . . . . . 15 71 4.4.1. Data Template containing a mibObject Field . . . . . 15 72 4.4.2. mibFieldOption Template . . . . . . . . . . . . . . . 17 73 4.4.3. mibFieldOption Data Records . . . . . . . . . . . . . 18 74 4.4.4. Option Template containing a mibObject Field . . . . 19 75 4.4.5. mibFieldOption Template with Semantics Fields . . . . 20 76 4.4.6. mibFieldOption Template with extra MIB Object Details 21 77 4.5. Use of field order in the MIB Field Option template . . . 24 78 4.6. Identifying the SNMP Context . . . . . . . . . . . . . . 24 79 4.7. Template Management . . . . . . . . . . . . . . . . . . . 25 80 4.8. Exporting Sequences . . . . . . . . . . . . . . . . . . . 25 81 4.8.1. Exporting Sequences - indexing . . . . . . . . . . . 26 82 4.8.2. Exporting Sequences - mibObjectValueSequence . . . . 26 83 4.8.3. Exporting Sequences - Augments . . . . . . . . . . . 31 84 4.8.4. Exporting Sequence OF - mibObjectValueTable . . . . . 32 85 4.8.5. Exporting Sequences - Explicit . . . . . . . . . . . 32 86 5. Example Use Cases . . . . . . . . . . . . . . . . . . . . . . 34 87 5.1. Non-indexed MIB Object: Established TCP Connections . . . 34 88 5.2. Enterprise Specific MIB Object: Detailing CPU Load 89 History . . . . . . . . . . . . . . . . . . . . . . . . . 37 90 5.3. Exporting A Sequence Table: The OSPF Neighbor Sequence . 40 91 5.4. Exporting Augmented Sequence Table: The IF-MIB id to name 92 mapping . . . . . . . . . . . . . . . . . . . . . . . . . 44 93 5.5. Exporting Selected Objects Sequence : The 94 ipIfStatsInForwDatagrams . . . . . . . . . . . . . . . . 49 95 5.6. Indexed MIB Object with an IPFIX Information Element: 96 Output Interface Queue Size in PSAMP Packet Report . . . 52 98 5.7. Indexed MIB Object with an OID: Output Interface Queue 99 Size in PSAMP Packet Report . . . . . . . . . . . . . . . 57 100 5.8. Exporting With Multiple Contexts: The OSPF Neighbor 101 Sequence Revisited . . . . . . . . . . . . . . . . . . . 61 102 6. Configuration Considerations . . . . . . . . . . . . . . . . 64 103 7. The Collecting Process's Side . . . . . . . . . . . . . . . . 64 104 8. Applicability . . . . . . . . . . . . . . . . . . . . . . . . 65 105 9. Security Considerations . . . . . . . . . . . . . . . . . . . 65 106 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 66 107 10.1. New MIB Value Information Elements . . . . . . . . . . . 66 108 10.1.1. mibObjectValueInteger . . . . . . . . . . . . . . . 66 109 10.1.2. mibObjectValueOctetString . . . . . . . . . . . . . 67 110 10.1.3. mibObjectValueOID . . . . . . . . . . . . . . . . . 67 111 10.1.4. mibObjectValueBits . . . . . . . . . . . . . . . . . 68 112 10.1.5. mibObjectValueIPAddress . . . . . . . . . . . . . . 68 113 10.1.6. mibObjectValueCounter . . . . . . . . . . . . . . . 69 114 10.1.7. mibObjectValueGauge . . . . . . . . . . . . . . . . 69 115 10.1.8. mibObjectValueTime . . . . . . . . . . . . . . . . . 70 116 10.1.9. mibObjectValueUnsigned . . . . . . . . . . . . . . . 70 117 10.1.10. mibObjectValueTable . . . . . . . . . . . . . . . . 71 118 10.1.11. mibObjectValueSequence . . . . . . . . . . . . . . . 71 119 10.1.12. mibSubIdentifier . . . . . . . . . . . . . . . . . . 72 120 10.2. New mibFieldOption Information Elements . . . . . . . . 72 121 10.2.1. mibObjectIdentifier . . . . . . . . . . . . . . . . 72 122 10.2.2. mibIndexIndicator . . . . . . . . . . . . . . . . . 73 123 10.2.3. mibCaptureTimeSemantics . . . . . . . . . . . . . . 73 124 10.2.4. mibContextEngineID . . . . . . . . . . . . . . . . . 75 125 10.2.5. mibContextName . . . . . . . . . . . . . . . . . . . 75 126 10.3. New mibType Information Elements . . . . . . . . . . . . 75 127 10.3.1. mibObjectName . . . . . . . . . . . . . . . . . . . 75 128 10.3.2. mibObjectDescription . . . . . . . . . . . . . . . . 76 129 10.3.3. mibObjectSyntax . . . . . . . . . . . . . . . . . . 76 130 10.3.4. mibModuleName . . . . . . . . . . . . . . . . . . . 77 131 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 77 132 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 77 133 12.1. Normative References . . . . . . . . . . . . . . . . . . 77 134 12.2. Informative References . . . . . . . . . . . . . . . . . 78 135 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 79 137 1. Introduction 139 There is growing interest in using IPFIX as a push mechanism for 140 exporting management information. Using a push protocol such as 141 IPFIX instead of a polling protocol like SNMP is especially 142 interesting in situations where large chunks of repetitive data need 143 to be exported periodically. 145 While initially targeted at different problems, there is a large 146 parallel between the information transported via IPFIX and SNMP. 147 Furthermore, certain Management Information Base (MIB) objects are 148 highly relevant to flows as they are understood today. For example, 149 in the IPFIX information model [RFC7012], Information Elements coming 150 from the SNMP world have already been specified, e.g., 151 ingressInterface and egressInterface both refer to the ifIndex 152 defined in [RFC2863]. 154 In particular the Management Information Base was designed as a 155 separate system of definitions. There are no dependencies between 156 the SMIv2 [RFC2578] and the SNMP protocol. This opens up the 157 possibility to exporting Objects defined via the MIB over other 158 protocols. 160 Rather than mapping existing MIB objects to IPFIX Information 161 Elements on a case by case basis, it would be advantageous to enable 162 the export of any existing or future MIB objects as part of an IPFIX 163 Data Record. This way, the duplication of data models [RFC3444], 164 both as SMIv2 MIB objects and IPFIX Information Elements, out of the 165 same information model [RFC3444] would be avoided. 167 This document specifies a method for creating IPFIX Option Templates 168 that are used to export the extra data required to describe MIB 169 variables (see Section 4.1). 171 This allows IPFIX Templates to contain any combination of fields 172 defined by traditional IPFIX Information Element(s) and/or MIB Object 173 Identifier(s). The MIB Object Identifiers can reference either non- 174 indexed or indexed MIB object(s). Enterprise-specific MIB Object 175 Identifiers are also supported. 177 This document also defines three standard Option Templates (see 178 Section 4.2) that are used as part of the mechanism to export MIB 179 Object meta data: 181 o mibFieldOption (Section 4.2.1) 183 o mibSubFieldOption (Section 4.2.2) 185 o mibTypeOption (Section 4.2.3) 187 This document defines three classes of new IPFIX Information 188 Elements. These are used to export values from the MIB, export 189 required Object Identifier information, and optionally export type 190 data from a MIB Module: 192 o mibObjectValue Information Elements (Section 10.1) 193 o mibFieldOption Information Elements (Section 10.2) 195 o mibTypeInformation Information Elements (Section 10.3) 197 The Architectural Overview is shown in Figure 1. 199 +------------------------+ 200 | mibFieldOptionTemplate | 201 +------------------------+ 202 | 203 V 204 +----------------------+ +------------------------+ 205 | Data Template | | mibFieldOption | 206 | | | | 207 | mibObjectValue |<----| OIDs | 208 | Information Elements |<----| OIDs | 209 +----------------------+ +------------------------+ 210 | 211 V 212 +----------------------+ 213 | Data Flows | 214 | | 215 | MIB Object Values | 216 +----------------------+ 218 Figure 1: Architectural Overview 220 One common type defined in the SMIv2 are SEQUENCEs or conceptual 221 tables. It is desirable that exporting a complete or partial 222 SEQUENCE is simple and efficient. This is accomplished by using 223 IPFIX Structured Data [RFC6313] to reduce repetition of Object 224 Identifier and indexing data. 226 To allow the use of individual columnar Objects that make up a 227 Sequence, a method is also specified to detail that a MIB Object is 228 indexed by other fields in the same Data Flow. For an individually 229 indexed mibObjectValue the INDEX fields are sent as any of the other 230 fields in the same Record and may be mibObjectValue Information 231 Element or other existing Information Element. 233 Also, in some cases Exporters may not want (or be able) to export the 234 full information on how the MIB objects being exported are indexed. 235 This may be because the MIB Object is being used purely as type 236 information or the Exporting process may not have knowledge of the 237 indexing required. Therefore providing index information for 238 Columnar Objects is optional. 240 A set of example use cases illustrates how these specifications can 241 be used. 243 2. Motivation and Architectural Model 245 The intended scope of this work is the addition of MIB variable(s) to 246 IPFIX Information Elements in Data Records, in order to complement 247 the Records with useful and already standardized information. More 248 specifically, the case of an existing Template Record which needs to 249 be augmented with some MIB variables whose index was already present 250 in the Template Record as an IPFIX Information Element: typically, a 251 7-tuple Record containing the ingressInterface Information Element, 252 augmented by interface counters [RFC2863], which are indexed by the 253 respective ingressInterface values in the Data Records. 255 Most Flow Records contain the ingressInterface and/or the 256 egressInterface Information Elements. These Information Elements 257 carry an ifIndex value, a MIB object defined in [RFC2863]. In order 258 to retrieve additional information about the identified interface, a 259 Collector could simply poll relevant objects from the device running 260 the Exporter via SNMP. However, that approach has several problems: 262 o It requires implementing a mediation function between two data 263 models, i.e., MIB objects and IPFIX Information Elements. 265 o Confirming the validity of simple mappings (e.g., ifIndex to 266 ifName) requires either checking on a regular basis that the 267 Exporter's network management system did not reload, or imposing 268 ifIndex persistence across an Exporter's reload. 270 o Synchronization problems occur since counters carried in Flow 271 Records and counters carried in SNMP messages are retrieved from 272 the Exporter at different points in time and thus cannot be 273 correlated. In the best case, assuming very tight integration of 274 an IPFIX Collector with and SNMP polling engine, SNMP data is 275 retrieved shortly after Data Records have been received, which 276 implies a delay of the sum of the active or inactive timeouts (if 277 not null) plus the time to export the Flow Record to the 278 Collector. If, however, the SNMP data is retrieved by a generic 279 Network Management Station (NMS) polling interface statistics, 280 then the time lag between IPFIX counters and SNMP counters can be 281 significantly higher. 283 This draft does not specify SNMP notifications, even if the 284 specifications in this document could potentially allow this. 286 Since IPFIX is a push mechanism, initiated from the Exporter with no 287 acknowledgment method, this specification does not provide the 288 ability to execute configuration changes. 290 The Distributed Management Expression MIB [RFC2982], which is a 291 mechanism to create new MIB variables based on the content of 292 existing ones, could also be advantageous in the context of this 293 specification. Indeed, newly created MIB objects (for example, the 294 link utilization MIB variable), created with the Distributed 295 Management Expression MIB [RFC2982] could nicely complement Data 296 Records. 298 Another advantage of exporting MIB objects via IPFIX is that IPFIX 299 would benefit from an extended series of types to be exported. The 300 simple and application-wide data types specified in SMIv2 [RFC2578], 301 along with a new Textual Conventions, can be exported within IPFIX 302 and then decoded in the Collector. However, since a Textual 303 Convention can contain almost any name, this document does not extend 304 the existing informationElementDataType registry [RFC5610]. 306 The overall architectural model is depicted in Figure 2. The IPFIX 307 Exporter accesses the device's instrumentation, which follows the 308 specifications contained in MIB modules. Other management interfaces 309 such as NETCONF or the device's Command Line Interface (CLI) may 310 provide access to the same instrumentation. 312 +------+ +-------+ +.........+ +.....+ 313 | SNMP | | IPFIX | : NETCONF : : CLI : 314 +------+ +-------+ +.........+ +.....+ 315 | | | | 316 +--------------------------------------------+ 317 | Instrumentation (specified in MIB modules) | 318 +--------------------------------------------+ 320 Figure 2: Architectural Model 322 3. Terminology 324 IPFIX-specific terminology (Information Element, Template, Template 325 Record, Options Template Record, Template Set, Collector, Exporter, 326 Flow Record, etc.) used in this document is defined in Section 2 of 327 [RFC7011]. As in [RFC7011], these IPFIX-specific terms have the 328 first letter of a word capitalized. 330 This document prefers the more generic term "Data Record" (as opposed 331 to "Flow Record") in relation to the export of MIB objects. 333 MIB Object Identifier (MIB OID) 334 An ASCII character sequence of decimal non-negative sub-identifier 335 values. Each sub-identifier value MUST NOT exceed 2^32-1 336 (4294967295) and MUST NOT have leading zeros. Sub-identifiers are 337 separated by single dots and without any intermediate whitespace. 339 MIB Object Identifier Information Element 341 An IPFIX Information Element ("mibObjectIdentifier") which denotes 342 that a MIB Object Identifier (MIB OID) is exported in the 343 (Options) Data Record. See Section 10.2.1. 345 SMIv2 Terminology 347 The key words "SEQUENCE", "SEQUENCE OF", "INDEX" and "AUGMENTS" in 348 this document are to be interpreted as described in SMIv2 349 [RFC2578] 351 mibObjectValue 353 Refers to any and all of the mibObjectValue Information Elements 354 generically. Any restriction or requirement in this document that 355 refers to mibObjectValue applies to the following Information 356 Elements defined in Section 10.1: mibObjectValueInteger, 357 mibObjectValueOctetString, mibObjectValueOID, mibObjectValueBITS, 358 mibObjectValueCounter, mibObjectValueGauge, mibObjectValueTime, 359 mibObjectValueUnsigned, mibObjectValueTable and 360 mibObjectValueSequence. 362 IE 364 Used as a shorthand for "Information Element" [RFC7011] in the 365 figures. 367 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 368 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 369 "OPTIONAL" in this document are to be interpreted as described in 370 [RFC2119]. 372 4. MIB Object Value Information Elements and the MIB Field Option 373 Templates 375 This document defines new mibObjectValue Information Elements (in 376 Section 10.1). These are used to export MIB Objects as part of 377 standard IPFIX Templates. The mibObjectValue Information Elements 378 contains the actual data values. 380 The Exporting process MAY extract the data values for mibObjectValue 381 fields from a Process that resides on the same device or MAY capture/ 382 create the data required to match the definition of the MIB Object. 383 In particular exporting a value from a MIB does not imply that the 384 SNMP process on the Device supports that MIB. 386 The main issue that arises from exporting MIBs in IPFIX is that MIB 387 Object Identifiers do not fit into the standard IPFIX Template format 388 [RFC7011], as this only provides a 16-bit Information Element 389 identifier and the length of the Information Element. The values of 390 a MIB Object could be exported using a MIB specific Information 391 Element but without exporting the actual MIB OID the full type of the 392 data would be unknown and every MIB Field would appear identical. 393 Without exporting the OID the contents of the MIB field would be 394 incomprehensible data to a Collector. 396 For the values in the mibObjectValue fields to be understandable, 397 more meta information about the mibObjectValue fields must be sent as 398 part of the IPFIX export. The required minimum to understand each 399 field is the OID as defined in Section 4.2.1. 401 One approach to this problem would be to extend the IPFIX standard to 402 allow extended field specifiers so metadata about Fields can be 403 included in Data Templates. This would however require a new version 404 of the IPFIX standard which may not be backwards compatible. 405 However, future versions of IPFIX MAY export the required MIB 406 metadata as part of newer set versions. 408 This document defines a mibFieldOption Template to export the extra 409 meta information required for a mibObjectValue field. This is a 410 standard IPFIX Option Template Set that MUST include a minimum set of 411 required fields (see Section 4.2.1) and MAY include extra fields to 412 provide more meta information about one of the mibObjectValue fields. 414 The mibFieldOption export is used to tell the Collecting process: for 415 the following (template, field) the MIB Object has this OID. 417 4.1. MIB Field Option Architecture 419 Four IPFIX Sets are used together to export a Flow using the 420 mibObjectValue Field. These are: 422 1. A Template Set which includes the mibObjectValue field. 424 The Template Set informs the Collector that a MIB Object Value 425 of length n will be exported. This Set may be also be an 426 Option Template Set. 428 2. A mibFieldOption Template Set 429 The mibFieldOption Template describes which metadata will be 430 sent for each mibObjectValue being exported. 432 3. A mibFieldOption Data Set 434 The mibFieldOption Data Set includes the metadata for each MIB 435 object (i.e. the mibObjectIdentifier or mibSubIdentifier). 436 The metadata about the mibObjectValue only needs to be resent 437 as per normal Template refreshes or resends. 439 4. A Data Set. 441 The Data Set contains only the actual data extracted from the 442 MIB or described by the MIB. 444 Figure 3 shows the IPFIX Message structure for a MIB Field in a 445 Template Set. 447 +----------------------------------------------------+ 448 | IPFIX Message Header | 449 +----------------------------------------------------+ 450 | Template Set (A) | 451 +----------------------------------------------------+ 452 | Option Template Set (B) (mibFieldOption Template) | 453 +----------------------------------------------------+ 454 | Data Set (B) (mibFieldOption Data) | 455 +----------------------------------------------------+ 456 | Data Set (A) | 457 +----------------------------------------------------+ 459 Figure 3: IPFIX Message structure for a MIB Field in a Template Set 461 The mibFieldOption Template defines mibFieldOption Records. The 462 mibFieldOption Data record annotate the Data Template with 463 mibObjectValue metadata. Together the Data Template and 464 mibFieldOption define the Data Records that will be exported. 466 The Data Records (A) have a dependency on the two Templates and the 467 mibFieldOption Data Records. 469 More Data Sets that use the mibObjectValue can then be send in 470 subsequent packets. 472 Figure 4 shows the relationships between the Sets discussed above. 474 +--------------------------+ 475 |mibFieldOption Template(B)| 476 +--------------------------+ 477 |(templateId, elementIndex)| 478 +--------------------------+ 479 | mibOID | 480 +--------------------------+ 481 | 482 | Defines 483 V 484 +------------------------+ +--------------------------+ 485 | Data Template (A) | | mibFieldOption Data (B) | 486 +------------------------+ +--------------------------+ 487 |Field 0 - regular IE | | | 488 +------------------------+ +--------------------------+ 489 |Field 1-mibObjectValue | <----------- | (X,1) = OID | 490 +------------------------+ Annotates +--------------------------+ 491 |Field 2-mibObjectValue | <----------- | (X,2) = OID | 492 +------------------------+ +--------------------------+ 493 | | 494 |------------------------------------/ 495 | 496 | Defines 497 | 498 V 499 +------------------------+ 500 | Data Records (A) | 501 |------------------------| 502 | Field 0 data | 503 +------------------------+ 504 | Field 1 data | 505 +------------------------+ 506 | Field 2 data | 507 +------------------------+ 509 Figure 4: Relationships between Sets 511 4.2. MIB Field Options - Specifications and Required Fields 513 For each mibObjectValue field that is defined in an IPFIX Template, a 514 single mibFieldOption Data Record MUST be exported that provides the 515 required minimum information to define the MIB object that is being 516 exported (see Section 4.2.1). 518 This mibFieldOption Data is defined in a template referred to in this 519 document as a mibFieldOption Template with the format specified in 520 Section 4.4. 522 A Template that uses a mibObjectValue Field MUST be exported prior to 523 the corresponding mibFieldOption Data Records. It is RECOMMENDED 524 that these are all exported in the same IPFIX Message. Note that 525 this places an implicit size constraint on the export. 527 These MUST all be exported prior to the corresponding Data Records 528 which depend upon them. i.e. referring to Figure 1, the export order 529 MUST be: 531 1. Data Template for mibObjectValue Information Elements 533 2. mibFieldOptionTemplate Template 535 3. mibFieldOption OID Data Records 537 4. MIB Object Value Data Records 539 Note that the ID of an identical mibFieldOptionTemplate which has 540 already been exported MAY be reused without exporting the Template 541 again. 543 4.2.1. mibFieldOption 545 Three fields are REQUIRED to unambiguously export a standalone 546 mibObjectValue Field with a mibFieldOption: 548 o (scope) templateId [IANA-IPFIX] 550 o (scope) informationElementIndex [IANA-IPFIX] 552 o mibObjectIdentifier (Section 10.2.1) 554 These are the minimum fields required in a mibFieldOptionTemplate 555 (see Section 4.4.2). 557 While the following are optional, they are nevertheless RECOMMENDED 558 in certain circumstances as they are per field: 560 o mibCaptureTimeSemantics (Section 10.2.3) 562 o mibIndexIndicator (Section 10.2.2) 564 o mibContextEngineID (Section 10.2.4) 566 o mibContextName (Section 10.2.5) 568 4.2.2. mibSubFieldOption 570 To export a mibObjectValue that is contained in a 571 mibObjectValueSequence Field with a mibSubFieldOption three fields 572 are REQUIRED: 574 o (scope) templateId [IANA-IPFIX] 576 o (scope) informationElementIndex [IANA-IPFIX] 578 o mibSubIdentifier (Section 10.1.12) 580 These are the minimum fields required in a mibSubFieldOptionTemplate 581 (see Section 4.8.2). 583 While the following are optional, they are nevertheless RECOMMENDED 584 in certain circumstances as they are per field: 586 o mibCaptureTimeSemantics (Section 10.2.3) 588 o mibIndexIndicator (Section 10.2.2) 590 o mibContextEngineID (Section 10.2.4) 592 o mibContextName (Section 10.2.5) 594 4.2.3. mibTypeOption 596 There are also fields that provide type information from a MIB Object 597 definition that MAY be exported to a Collecting Process. 599 Since these values are statically defined in the MIB they are not 600 expected to change frequently. However the additional information 601 about the MIB may help a Collecting Process that does not have access 602 to the MIB. 604 The mibObjectSyntax field is RECOMMENDED as it provides the full type 605 of the field as specified in the MIB definition and will contain any 606 Textual Conventions. 608 To export a mibSubTypeOption, two fields are RECOMMENDED: 610 o (scope) mibObjectIdentifier Section 10.2.2 612 o mibObjectSyntax (Section 10.3.3) 614 The Exporting process MAY also include the following extra Fields: 616 o mibObjectName (Section 10.3.1) 618 o mibObjectDescription (Section 10.3.2) 620 o mibModuleName (Section 10.3.4). 622 4.3. IPFIX and MIB Data Model 624 [RFC2578] species that the SYNTAX clause for a MIB Object defines the 625 abstract data structure of an Object and must contain: 627 "The data structure must be one of the following: a base type, the 628 BITS construct, or a textual convention. (SEQUENCE OF and SEQUENCE 629 are also possible for conceptual tables, see section 7.1.12)." 630 [RFC2578] section-7.1 632 For each of these the options this draft specifies exactly which 633 mibObjectValue to use. 635 If a MIB Object to be exported is a Textual Convention the definition 636 of the Textual Convention must be consulted and the SYNTAX clause 637 used to determine the correct base type. This may recurse if the 638 Textual Convention is defined in terms of another Textual Convention 639 but this should end at a base type. 641 If the SYNTAX clause contains a Textual Convention or Subtyping the 642 mibObjectSyntax Information Element SHOULD be used to export this 643 detail to the Collecting Process. 645 The Options for the SYNTAX are then mapped as follows: 647 +-----------------+---------------------+---------------------------+ 648 | RFC2578 Section | SYNTAX | mibObjectValue | 649 +-----------------+---------------------+---------------------------+ 650 | 7.1.1 | INTEGER/Integer32 | mibObjectValueInteger | 651 | 7.1.2 | OCTET STRING | mibObjectValueOctetString | 652 | 7.1.3 | OBJECT IDENTIFIER | mibObjectValueOID | 653 | 7.1.4 | The BITS construct | mibObjectValueBits | 654 | 7.1.5 | IpAddress | mibObjectValueIPAddress | 655 | 7.1.6 | Counter32 | mibObjectValueCounter | 656 | 7.1.7 | Gauge32 | mibObjectValueGauge | 657 | 7.1.8 | TimeTicks | mibObjectValueTime | 658 | 7.1.9 | Opaque | mibObjectValueOctetString | 659 | 7.1.10 | Counter64 | mibObjectValueCounter | 660 | 7.1.11 | Unsigned32 | mibObjectValueUnsigned | 661 | 7.1.12 | SEQUENCE | mibObjectValueSequence | 662 | 7.1.12 | SEQUENCE OF | mibObjectValueTable | 663 +-----------------+---------------------+---------------------------+ 665 Table 1: SMIv2 SYNTAX -> mibObjectValue types 667 Values are encoded as per the standard IPFIX encoding of Abstract 668 Data Types. The only new encoding references in this document is 669 that Object Identifiers (OID) will be encoded as per ASN.1/BER [BER] 670 in an octetArray. 672 The mibObjectValue and mibObjectIdentifier Information Elements are 673 standard IPFIX fields. Therefore the E bit of the mibObjectValue or 674 mibObjectIdentifier Information Elements is set to "0". 676 This holds true even if the data carried inside the mibObjectValue or 677 mibObjectIdentifier may be related to an enterprise specific MIB. 678 The OID itself encodes if the Object is in an Enterprise specific MIB 679 Module. 681 4.4. MIB Field Option Template Formats 683 4.4.1. Data Template containing a mibObject Field 685 The Template Record Format of a Template that uses a mibObjectValue 686 field is identical to the standard IPFIX Format as defined in 687 [RFC7011], so the mibObjectValue field is specified using standard 688 IPFIX Field Specifiers as in [RFC7011]. 690 The only extra requirement on a Template Record using mibObjectValue 691 Fields is that it MUST export the required metadata specified for 692 EACH mibObjectValue Field (see Section 4.2.1). Multiple 693 mibFieldOption that refer to a single mibObjectValue MUST NOT be 694 exported. 696 There is a one to one mapping between each mibObjectValue field and a 697 mibFieldOption. 699 A mibFieldOption Template and corresponding Data Record MUST be 700 exported to provide the minimum required metadata. 702 Figure 5 shows an IPFIX Template Set using a mibObjectValue Field. 704 0 1 2 3 705 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 706 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 707 | Set ID = 2 | Length | 708 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 709 | Template ID | Field Count = 2 | 710 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 711 |0| IE = Existing IPFIX Field | Field Length | 712 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 713 |0| IE = mibObjectValueInteger | Field Length (mib) | 714 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 716 Figure 5: IPFIX Template Set using mibObjectValue Field 718 Where: 720 mibObjectValueInteger 722 One of the mibObjectValue IPFIX Information Elements that 723 denotes that a MIB Object data (i.e, the value of a MIB Object) 724 will be exported in the (Options) Template Record. The 725 specific type of the data in this case would be an Integer. 726 Any other mibObjectValue could be used to export a different 727 MIB object type. When a mibObjectValue Information Element is 728 used, the MIB Object Identifier ("mibObjectIdentifier") MUST be 729 exported via a mibFieldOption or by other means. See 730 Section 4.2.1. 732 Field Length (mib) 734 The length of the encoded MIB Object data in the corresponding 735 Data Records, in octets. The definition is as [RFC7011]. Note 736 that the Field Length can be expressed using reduced size 737 encoding per [RFC7011]. Note that the Field Length may be 738 encoded using variable-length encoding per [RFC7011]. 740 4.4.2. mibFieldOption Template 742 The mibFieldOption Template is a Standard Option Template which 743 defines the Fields that will be exported to provide enough metadata 744 about a mibObjectValue so that the Collector can tie the data values 745 in the mibObjectValue back to the definition of the MIB Object. 747 All mibFieldOption Templates MUST contain the following Fields: 749 o (scope) templateId [IANA-IPFIX] 751 o (scope) informationElementIndex [IANA-IPFIX] 753 o mibObjectIdentifier or mibSubIdentifier 755 A mibFieldOption Template MAY specify other Information Elements as 756 part of the mibFieldOption template. 758 This document defines some common optional Information Elements which 759 allow exporting more information about MIB indexing, extra data from 760 the MIB and the semantics of how the mibObjectValue was collected 761 prior to export. See Section 10.2. 763 Figure 6 shows the required fields for the MIB Field Option Template 764 Format. 766 0 1 2 3 767 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 768 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 769 | Set ID = 3 | Length | 770 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 771 | Template ID | Field Count = 3 | 772 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 773 | Scope Field Count = 2 |0| IE = templateId | 774 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 775 | Field Length = 2 |0| IE = informationElementIndex| 776 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 777 | Field Length = 2 |0| IE = mibObjectIdentifier | 778 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 779 | Field Length = 65535 | 780 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 782 Figure 6: MIB Field Option Template Format - Required Fields 784 Where: 786 templateId 787 The first scope field is an IPFIX Information Element which 788 denotes that a Template Identifier will be exported as part of 789 the mibFieldOption Data Record. This Template Identifier 790 paired with an index into that template, the 791 "informationElementIndex" field, uniquely references one 792 mibObjectValue Field being exported. 794 informationElementIndex 796 The second scope field is an IPFIX Information Element which 797 denotes a zero based index into the fields defined by a 798 Template. When paired with a "templateId" the Record uniquely 799 references one mibObjectValue Field being exported. 801 mibObjectIdentifier 803 An IPFIX Information Element which denotes the a MIB Object 804 Identifier for the mibObjectValue exported in the (Options) 805 Template Record. 807 When a MIB Object Value Information Element is used, the MIB 808 Object Identifier MUST be specified in the mibFieldOption 809 Template Record or specified by other means. 811 The Object Identifier is encoded in the IPFIX data record in 812 ASN.1/BER [BER] format. 814 Variable-length encoding SHOULD be used with the 815 mibObjectIdentifier so that multiple different length MIB OIDs 816 can be exported efficiently. This will also allow reuse of the 817 mibFieldOption Template. 819 4.4.3. mibFieldOption Data Records 821 The mibFieldOption Data Records conform to the Template Specification 822 in the mibFieldOption Template. There may be multiple mibFieldOption 823 Records exported. 825 The Collecting Process MUST store all received mibFieldOption Data 826 information for the duration of each Transport Session, because the 827 Collecting Process will need to refer to the extra meta information 828 to fully decode each mibObjectValue field. 830 Figure 7 shows the format of the exported mib Field Option detailing 831 the metadata that will be exported to match the Template in Figure 6. 833 0 1 2 3 834 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 835 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 836 | Set ID | Length = N | 837 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 838 | templateId | informationElementIndex | 839 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 840 | VLEN | mibObjectIdentifier ... | 841 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 842 | ... mibObjectIdentifier continued ... | 843 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 844 | templateId | informationElementIndex | 845 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 846 | VLEN | mibObjectIdentifier ... | 847 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 848 | ... mibObjectIdentifier continued ... | 849 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 851 Figure 7: Format of mibFieldOption Data Record 853 4.4.4. Option Template containing a mibObject Field 855 The Option Template Record Format of a Template that uses the 856 mibObjectValue field is identical to the standard Format as defined 857 in [RFC7011]. The mibObjectValue field is specified using standard 858 Field Specifiers as in [RFC7011]. 860 A mibObjectValue Field can be a Scope Field or a Non Scope Option 861 Field. 863 The only extra requirement on a Option Template Record using 864 mibObjectValue Fields is that it MUST export the required metadata 865 specified in Section 4.2.1 for EACH mibObjectValue Field. 867 An IPFIX Option Template Record MUST export a mibFieldOption Template 868 and Data Record to provide the minimum required metadata for each 869 mibObjectValue Field. 871 Figure 8 shows an IPFIX Option Template Set using a Non Scope 872 mibObjectValueInteger Field, while Figure 9 shows an IPFIX Option 873 Template Set using a Scope mibObjectValueInteger Field. 875 0 1 2 3 876 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 877 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 878 | Set ID = 3 | Length | 879 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 880 | Template ID | Field Count = 2 | 881 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 882 | Scope Field Count = 1 |0| IE = Existing IPFIX Field | 883 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 884 | Field Length |0| IE = mibObjectValueInteger | 885 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 886 | Field Length | 887 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 889 Figure 8: IPFIX Option Template Set using a Non Scope 890 mibObjectValueInteger Field 892 0 1 2 3 893 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 894 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 895 | Set ID = 3 | Length | 896 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 897 | Template ID | Field Count = 2 | 898 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 899 | Scope Field Count = 1 |0| IE = mibObjectValueInteger | 900 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 901 | Field Length |0| IE = Existing IPFIX Field | 902 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 903 | Field Length | 904 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 906 Figure 9: IPFIX Option Template Set using a Scope 907 mibObjectValueInteger Field 909 4.4.5. mibFieldOption Template with Semantics Fields 911 A mibFieldOption Template MAY specify that extra Information Elements 912 will be exported to record how the mibObjectValue was collected. 914 Another alternative to export this information is to use one of the 915 existing IPFIX observationTime* elements [IANA-IPFIX] to specify 916 exactly when the value was collected. 918 Figure 10 shows the mibFieldOption Format for a non-indexed Field 919 with Semantic Data. 921 0 1 2 3 922 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 923 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 924 | Set ID = 3 | Length | 925 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 926 | Template ID | Field Count = 4 | 927 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 928 | Scope Field Count = 2 |0| IE = templateId | 929 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 930 | Field Length = 2 |0| IE = informationElementIndex| 931 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 932 | Field Length = 2 |0| IE = mibObjectIdentifier | 933 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 934 | Field Length = 65535 |0| IE = mibCaptureTimeSemantics| 935 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 936 | Field Length = 1 | 937 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 939 Figure 10: mibFieldOption Format for a non-indexed Field with 940 Semantic Data 942 Where: 944 mibCaptureTimeSemantics 946 The MIB Capture Time Semantics IPFIX Information Element, as 947 defined in Section 10.2.3. 949 It is RECOMMENDED to include this field when exporting a 950 mibObjectValue that specifies counters or statistics, in 951 particular for situations with long lived Flows. 953 4.4.6. mibFieldOption Template with extra MIB Object Details 955 The MIB OID exported within the mibObjectIdentifier IPFIX Information 956 Element provides a reference to a MIB that will fully describe the 957 MIB Variable being Exported. 959 However an Exported Process MAY decide to include some extra MIB 960 Fields to more fully describe the mibObjectValue. 962 This can be helpful if the Collecting Process may not have access to 963 the MIB. It also allows the IPFIX Field Types to be extended with 964 any MIB Variable already defined purely through IPFIX. 966 The exporting process can either include the extra object details 967 fields as part of the mibFieldOption Template, or export a separate 968 Option Template and Data that maps MIB OIDs in mibObjectIdentifier 969 Fields to the object details. 971 If a single or few fields are being exported then including extra 972 type data in the mibFieldOption export will be more efficient. 974 The mibFieldOption Format for a non-indexed Field with extra MIB 975 object details is shown in Figure 11. 977 0 1 2 3 978 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 979 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 980 | Set ID = 3 | Length | 981 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 982 | Template ID | Field Count = 7 | 983 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 984 | Scope Field Count = 2 |0| IE = templateId | 985 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 986 | Field Length = 2 |0| IE = informationElementIndex| 987 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 988 | Field Length = 2 |0| IE = mibObjectIdentifier | 989 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 990 | Field Length = 65535 |0| IE = mibObjectSyntax | 991 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 992 | Field Length = 65535 |0| IE = mibObjectName | 993 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 994 | Field Length = 65535 |0| IE = mibObjectDescription | 995 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 996 | Field Length = 65535 |0| IE = mibModuleName | 997 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 998 | Field Length = 65535 | 999 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1001 Figure 11: mibFieldOption Format for a non-indexed Field with extra 1002 MIB object details 1004 Where: 1006 mibObjectSyntax 1008 The MIB SYNTAX clause string for a mibObjectIdentifier, which 1009 contains the SYNTAX string as defined for the MIB Object 1010 referenced by the MIB OID. This will either be the name of one 1011 of the primitive "base types" from [RFC2578] or a Textual 1012 Convention name. 1014 The SYNTAX clause may also include subtyping or specific 1015 enumerations for known values or flags. 1017 Note that a separate mibObjectSyntax Information Element is 1018 required (rather than extend the existing [RFC5610] 1019 informationElementDataType registry) because the SYNTAX clause 1020 could contain almost any name. 1022 mibObjectName 1024 The textual name a mibObjectIdentifier Object. 1026 mibObjectDescription 1028 The textual description for a mibObjectIdentifier. 1030 mibModuleName 1032 The textual name of the MIB which defines a MIB OID Object. 1034 The MIB details can be exported as an standard IPFIX Option export 1035 [RFC7011] as shown in Figure 12. This may be more efficient as the 1036 bulk of this data is text based and SHOULD be exported only once to 1037 the Collecting Process if there are many MIB objects being exported. 1038 This prevents this large textual data being included for every use of 1039 a mibObjectValue field. 1041 0 1 2 3 1042 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 1043 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1044 | Set ID = 3 | Length | 1045 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1046 | Template ID | Field Count = 5 | 1047 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1048 | Scope Field Count = 1 |0| IE = mibObjectIdentifier | 1049 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1050 | Field Length = 65535 |0| IE = mibObjectSyntax | 1051 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1052 | Field Length = 65535 |0| IE = mibObjectName | 1053 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1054 | Field Length = 65535 |0| IE = mibObjectDescription | 1055 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1056 | Field Length = 65535 |0| IE = mibModuleName | 1057 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1058 | Field Length = 65535 | 1059 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1061 Figure 12: Alternative mibObjectIdentifier Option Export with object 1062 details 1064 4.5. Use of field order in the MIB Field Option template 1066 The mibFieldOption export makes use of the informationElementIndex 1067 [IANA-IPFIX] to specify which field in the template that the metadata 1068 relates to, which avoids any ordering constraints on the data 1069 template. The MIB fields in a IPFIX Template can be in any order in 1070 the export packet. However, Fields used as an INDEX MUST be in the 1071 same order as specified in the MIB Sequence Object's INDEX clause. 1073 The informationElementIndex specifies which Field in the Template 1074 extra information is being provided for. 1076 This is analogous to standard IPFIX Template Sets which also specify 1077 the order of the fields and provide their type and size. 1079 If the template changes such that the order is different then the 1080 mibFieldOption data MUST be resent to reflect the new ordering. A 1081 new Template ID MUST be used to reflect that the ordering has 1082 changed. Older mibFieldOption details may refer to the incorrect 1083 field. 1085 A templateId [IANA-IPFIX] is only locally unique within a combination 1086 of a Observation Domain and Transport session. As such each 1087 mibFieldOption can only refer to templateIds within the same 1088 Observation Domain and session. 1090 4.6. Identifying the SNMP Context 1092 Each MIB OID is looked up in a specific context, usually the default 1093 context. If exporting a MIB OID value that isn't in the default 1094 context then the MIB context MUST be identified by including the 1095 mibContextEngineID Section 10.2.4 and mibContextName Section 10.2.5 1096 fields in the mibFieldOption Template and associated mibFieldOption 1097 data records, or be included in the same template as the 1098 mibFieldValue Field. 1100 This context data MUST be included for each field that is not in the 1101 default context. 1103 The context information MAY be exported as part of the Template that 1104 includes the mibObjectValue fields or the context information MAY be 1105 exported in the mibFieldOption that refers to the field. Context 1106 fields exported in the same Template MUST take precedence over those 1107 that refer to the template. Context fields MUST apply to all 1108 mibObjectValue fields in the same template and there MUST NOT be 1109 duplicates of mibContextName or mibContextEngineID in a Template. 1111 So a mibFieldOption MAY specify no Context information, just the 1112 Context Engine ID or both the context engine and context name. This 1113 allows the exported to export the bulk of data in the default context 1114 and only tag those required. 1116 Since the mibFieldOption applies for all the records of a Template 1117 using Context Fields in the mibFieldOption requires that each 1118 mibContextEngineID / mibContextName pair have its own Template. 1120 4.7. Template Management 1122 Templates are managed as per section 8 of [RFC7011] with the 1123 additional constraint that the mibFieldOption Template and Data 1124 Records MUST be exported in the same IPFIX Message as any (Option) 1125 Template Record that uses a mibObjectValue. 1127 If a Template using a mibObjectValue is resent for any reason the 1128 Records it depends on MUST be sent as well. 1130 If a Template is replaced with a new (Option) Template Record then a 1131 new mibFieldOption Data Record MUST be sent with the replacement 1132 referencing the new Template ID. 1134 An Exporting Process SHOULD reuse mibFieldOption Template IDs IFF the 1135 Templates are identical. Each (Option) Template Record MUST still be 1136 accompanied by a copy of the mibFieldOption Template. 1138 4.8. Exporting Sequences 1140 There are three approaches for an IPFIX exporting process to export 1141 MIB SEQUENCE Objects (also known as conceptual tables). 1143 1. Ignoring the indexing of the Columnar Object 1145 2. Exporting Rows/Tables using structured data 1147 3. Exporting individual indexed Column Objects 1149 Firstly, a columnar object may be used purely use as a data type. In 1150 this case there is no indexing or relation to a sequence provided by 1151 the exporting process. 1153 Secondly, mibObjectValueSequence or mibObjectValueTable can be used 1154 to export partial/complete rows using [RFC6313] structured data. 1156 Thirdly, in a mixed option/data IPFIX/MIB template, the mib value can 1157 be indexed by other fields in the record. In this case each field 1158 must specify which other field(s) in the template it's indexed by. 1160 4.8.1. Exporting Sequences - indexing 1162 This draft defines two forms of indexing that can be used for 1163 SEQUENCE MIB Objects. 1165 SEQUENCE based indexing is used solely by the mibObjectValueSequence 1166 Field. Each SEQUENCE or row of the MIB Object corresponds to a 1167 single Flow Record. The index Fields defined in the INDEX clause of 1168 the MIB Object MUST all be present the same order as the Scope 1169 fields. This allows a simple table export of a MIB SEQUENCE without 1170 any extra fields required to indicate which fields are the INDEX. 1172 FIELD based indexing is used by having every mibObjectValue export a 1173 mibIndexIndicator to flag the required index fields. This allows 1174 complex indexing or mixing of existing IPFIX Information Element with 1175 MIB Fields. It also allows multiple MIB SEQUENCE values to be 1176 exported with complete indexing in one IPFIX Template. 1178 4.8.2. Exporting Sequences - mibObjectValueSequence 1180 The simplest approach to exporting a complete or partial MIB Sequence 1181 is done with the mibObjectValueSequence Information Element. 1183 This is a Structured Data subTemplateList Information Element. The 1184 template specified MUST be an Option Template. It also MUST have the 1185 INDEX fields for the SEQUENCE as Scope fields for the Option Export. 1187 An overview of this Architecture is given in Figure 13. This shows 1188 that the full OID is exported for the mibObjectValueSequence field 1189 but that the columns contained only require the subIdentifier to be 1190 exported. To make the diagram clearer the Templates for the 1191 mibFieldOption and mibSubFieldOption are not shown. 1193 +-----------------------+ +-----------------+ 1194 | Data Template | | mibFieldOption | 1195 | | | | 1196 |mibObjectValueSequence |<-----| OID | 1197 +-----------------------+ +-----------------+ 1198 | 1199 | +---------------------+ +-----------------+ 1200 | | Option Template | |mibSubFieldOption| 1201 | | | | | 1202 | |Scope mibObjectValue*|<---| subIdentifiers | 1203 | | mibObjectValue*|<---| subIdentifiers | 1204 | +---------------------+ +-----------------+ 1205 | | 1206 V V 1207 +-------------------------+ 1208 | Data Flows | 1209 | | 1210 |Sequence subTemplateList | 1211 +-------------------------+ 1213 Figure 13: Architecture for Exporting Sequences with 1214 mibObjectValueSequence 1216 The mibIndexIndicator is not required for each individual 1217 mibObjectValue field as mibObjectValueSequence provides a structure 1218 that includes the index details. 1220 When SEQUENCE based indexing is used all scope fields MUST be the 1221 INDEX Objects in the same order as defined in the MIB SEQUENCE being 1222 exported. 1224 The Full OID for the mibObjectValueSequence field MUST be exported. 1225 However the fields that are members of the Sequence need not have the 1226 full OID exported. Instead the mibSubIdentifier Information Element 1227 can be used to document which entry in the Sequence the Field is. 1229 In this case the export flow will contain a complete or partial row 1230 from a table inside a single field of the record. 1232 There may be MIB Objects that are part of the INDEX but not part of 1233 the Sequence, for these the Exporter MUST provide the full OID in a 1234 mibObjectIdentifier field. 1236 So for a Sequence with the OID "1.2.3.4.5.6" the columnar objects 1237 "1.2.3.4.5.6.1" "1.2.3.4.5.6.2" can be exported with just a 1238 subIdentifier of "1" and "2" respectively. 1240 The mibObjectValue fields exported using the mibObjectValueSequence 1241 export MUST all be Objects defined in the INDEX clause, Columnar 1242 Objects of the same SEQUENCE Object or Columnar Objects that AUGMENTS 1243 the same SEQUENCE. 1245 Figure 14 shows an IPFIX Template for a SEQUENCE, while Figure 15 1246 shows an IPFIX Option Template for a complete SEQUENCE with five 1247 columns and two INDEX fields. Figure 16 shows the mibFieldOption 1248 Format for a SEQUENCE Object. Figure 17 shows the mibSubFieldOption 1249 Format for the Fields inside the SEQUENCE. Figure 18 shows the OID 1250 data for the SEQUENCE would be exported. 1252 0 1 2 3 1253 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 1254 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1255 | Set ID = 2 | Length | 1256 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1257 | Template ID = 300 | Field Count = 1 | 1258 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1259 |0| IE = mibObjectValueSequence | Field Length | 1260 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1262 Figure 14: IPFIX Template for a SEQUENCE 1264 0 1 2 3 1265 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 1266 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1267 | Set ID = 3 | Length | 1268 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1269 | Template ID = 301 | Field Count = 5 | 1270 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1271 | Scope Field Count = 2 |0| IE = mibObjectValue INDEX1 | 1272 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1273 | Field Length |0| IE = mibObjectValue INDEX2 | 1274 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1275 | Field Length |0| IE = mibObjectValue COLUM3 | 1276 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1277 | Field Length |0| IE = mibObjectValue COLUM4 | 1278 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1279 | Field Length |0| IE = mibObjectValue COLUM5 | 1280 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1281 | Field Length | 1282 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1284 Figure 15: IPFIX Option Template for a mibObjectValueSequence with 5 1285 columns and 2 INDEX fields 1287 0 1 2 3 1288 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 1289 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1290 | Set ID = 3 | Length | 1291 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1292 | Template ID = 302 | Field Count = 3 | 1293 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1294 | Scope Field Count = 2 |0| IE = templateId | 1295 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1296 | Field Length = 2 |0| IE = informationElementIndex| 1297 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1298 | Field Length = 2 |0| IE = mibObjectIdentifier | 1299 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1300 | Field Length = 65535 | 1301 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1303 Figure 16: mibFieldOption Format for a SEQUENCE Object 1305 Where: 1307 templateId 1309 The templateId for the MIB Option that will be exported. 1311 mibObjectIdentifier 1313 The MIB OID for the SEQUENCE that is being exported with this 1314 mibSequenceOption. 1316 0 1 2 3 1317 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 1318 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1319 | Set ID = 3 | Length | 1320 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1321 | Template ID = 303 | Field Count = 3 | 1322 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1323 | Scope Field Count = 2 |0| IE = templateId | 1324 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1325 | Field Length = 2 |0| IE = informationElementIndex| 1326 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1327 | Field Length = 2 |0| IE = mibSubIdentifier | 1328 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1329 | Field Length = 2 | 1330 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1332 Figure 17: mibSubFieldOption Format for a SEQUENCE Object 1334 Where: 1336 templateId 1338 The templateId used will be for the Template referred to in the 1339 subTemplateList of the mibObjectValueSequence that will be 1340 exported. 1342 mibSubIdentifier 1344 The sub identifier that specifies the columnar object's ID 1345 within the Sequence. 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 = 302 (mibFieldOption) | Length = N | 1351 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1352 | templateId = 300 | informationElementIndex | 1353 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1354 | VLEN | mibObjectIdentifier ... | 1355 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1356 | ... mibObjectIdentifier continued ... | 1357 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1359 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1360 |Set ID=303 (mibSubFieldOption) | Length = N | 1361 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1362 | templateId = 301 | informationElementIndex | 1363 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1364 | mibSubIdentifier | templateId = 301 | 1365 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1366 | informationElementIndex | mibSubIdentifier | 1367 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1368 | templateId = 301 | informationElementIndex | 1369 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1370 | mibSubIdentifier | templateId = 301 | 1371 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1372 | informationElementIndex | mibSubIdentifier | 1373 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1374 | templateId = 301 | informationElementIndex | 1375 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1376 | mibSubIdentifier | 1377 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1379 Figure 18: mibOption Data Record for the Sequence 1381 Where: 1383 mibObjectIdentifier 1385 Will contain the OID for the sequence as a whole. 1387 mibSubIdentifier 1389 The mibSubIdentifier fields will contain the extra Sub 1390 Identifier that when added to the OID for the sequence give the 1391 full OID for the Object. 1393 4.8.3. Exporting Sequences - Augments 1395 SMIv2 defines Sequences as either having an INDEX clause or an 1396 AUGMENTS clause. Sequence definitions with an AUGMENTS clause extend 1397 an existing base Sequence with an INDEX clause. It is not defined as 1398 possible in SMIv2 to AUGMENT a Sequence that itself has an AUGMENTS 1399 clause. The base table and the augmentation have an identical INDEX. 1401 Since augmentations allow adding extra columns to existing tables it 1402 is beneficial to be able to support them easily in IPFIX exports of 1403 Sequences. 1405 The mibObjectValueSequence OID MAY refer either to the base table 1406 with the INDEX clause, or to a Sequence with an AUGMENTS clause. The 1407 subIdentifiers in any mibSubFieldOption MUST always refer to the OID 1408 exported for the mibObjectValueSequence field. 1410 If the mibObjectValueSequence OID refers to a base table then any 1411 extra columns from Sequences with an AUGMENTS clause MUST have their 1412 full OID exported. 1414 If the mibObjectValueSequence OID refers to a Sequence that augments 1415 another Sequence using the AUGMENTS clause then any MIB fields from 1416 the original table's INDEX or Columnar Objects MUST NOT use the 1417 mibSubIdentifier and MUST instead export the full OID in a 1418 mibObjectIdentifier. 1420 If the mibObjectValueSequence refers to an AUGMENTS Sequence the 1421 scope fields of the Template using in the subTemplateList MUST have 1422 the INDEX fields from the base table, in the same order as its scope. 1423 This is identical to the Scope field requirements for Sequences with 1424 an INDEX clause. 1426 This flexibility is provided so that the Sequence with the most 1427 columns can be exported using the more efficient mibSubIdentifier. 1428 For example exporting a complete set of augmentation columns would 1429 only require the full OIDs for the MIB objects in the INDEX. 1431 It is possible to export MIB OBJECT columns from multiple AUGMENTS 1432 Sequences. If this is done then the base table SHOULD be used as the 1433 main OID for the mibObjectValueSequence. 1435 4.8.4. Exporting Sequence OF - mibObjectValueTable 1437 A list of mibObjectValueSequence Information Element can be exported 1438 in the mibObjectValueTable Information Element Section 10.1.10. This 1439 allows a set of conceptual rows corresponding to a conceptual table 1440 to be exported as a single field. This allows a complete set of rows 1441 to be used as a single entry with other information elements in a 1442 Template. 1444 The contents of a mibObjectValueTable MUST be mibObjectValueSequence 1445 entries that all refer to the same MIB Sequence. 1447 The complete OID for the 'SEQUENCE OF' MUST be exported for any 1448 mibObjectValueTable fields. The complete OID for the contained 1449 mibObjectValueSequence MUST also be exported. 1451 Each individual mibObjectValueSequence includes in the 1452 mibObjectValueTable MUST follow the requirements in Section 4.8.2. 1454 4.8.5. Exporting Sequences - Explicit 1456 The other option for indexing a sequence is explicit indexing. In 1457 this case there may be non index fields in the scope of the option 1458 export or there may be multiple mib objects being exported with 1459 different indexes. In this case each mibObjectValue field requires 1460 the mibIndexIndicator with the bits set for the fields that are used 1461 to index that individual Object. The index fields MUST be in the 1462 'correct' order as defined in the SEQUENCE that the columnar object 1463 is a member of. 1465 If a mibObjectValue field that is being indexed using 1466 mibIndexIndicator is being used as an Option Template scope field, 1467 then all fields used to index that field MUST also be scope fields. 1469 Figure 19 shows the mibFieldOption Format for an indexed MIB Object. 1471 0 1 2 3 1472 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 1473 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1474 | Set ID = 3 | Length | 1475 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1476 | Template ID | Field Count = 4 | 1477 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1478 | Scope Field Count = 2 |0| IE = templateId | 1479 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1480 | Field Length = 2 |0| IE = informationElementIndex| 1481 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1482 | Field Length = 2 |0| IE = mibIndexIndicator | 1483 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1484 | Field Length = 2 |0| IE = mibObjectIdentifier | 1485 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1486 | Field Length = 65535 | 1487 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1489 Figure 19: mibFieldOption Format for an indexed MIB Object 1491 Where: 1493 mibIndexIndicator 1495 The MIB Index Indicator IPFIX Information Element which marks 1496 which fields in the record will act as INDEX values for the 1497 exported MIB Object. 1499 The index data for a mibObjectValue will be other fields 1500 contained in the same Data Record. The mibIndexIndicator marks 1501 the Fields whose value(s) should be added to the 1502 mibObjectIdentifier to completely index the value. 1504 Elements used to index MIB Objects MUST be exported in the same 1505 order as they are specified in the INDEX field of the SEQUENCE 1506 they belong to. 1508 The Information Elements referred to by mibIndexIndicator could 1509 be any Information Element(s) that can be appended onto a the 1510 mibObjectIdentifier to index it fully. 1512 See '7.7. Mapping of the INDEX clause' [RFC2578] for which MIB 1513 Objects will be suitable for indexing a Sequence and how they 1514 are appended to fully index an OID. 1516 If there are no other suitable Fields to index a 1517 mibObjectValue, then one or more mibSubIdentifier fields can be 1518 included in the (Options) Template Record and referred to by 1519 the mibIndexIndicator. This allows the implementer some 1520 flexibility to export a MIB values with a simple Information 1521 Element that will always be an option. 1523 5. Example Use Cases 1525 5.1. Non-indexed MIB Object: Established TCP Connections 1527 The number of established TCP connections of a remote network device 1528 could be monitored by configuring it to periodically export the 1529 number of established TCP connections to a centralized Collector. In 1530 this example, the Exporter would export an IPFIX Message every 30 1531 minutes that contained Data Records detailing the number of 1532 established TCP connections. 1534 The table of data that is to be exported looks like: 1536 +-------------------------+-----------------------+ 1537 | TIMESTAMP | ESTABLISHED TCP CONN. | 1538 +-------------------------+-----------------------+ 1539 | StartTime + 0 seconds | 10 | 1540 | StartTime + 60 seconds | 14 | 1541 | StartTime + 120 seconds | 19 | 1542 | StartTime + 180 seconds | 16 | 1543 | StartTime + 240 seconds | 23 | 1544 | StartTime + 300 seconds | 29 | 1545 +-------------------------+-----------------------+ 1547 Table 2: Established TCP Connections 1549 The Template Record for such a Data Record will detail two 1550 Information Elements: 1552 1. flowStartSeconds from [RFC7012], Information Element 150: The 1553 absolute timestamp of the first packet of this Flow. 1555 2. tcpCurrEstab from [RFC4022], Object ID "1.3.6.1.2.1.6.9": The 1556 number of TCP connections for which the current state is either 1557 ESTABLISHED or CLOSE-WAIT. 1559 Figure 20 shows the exported Template Set detailing the Template 1560 Record for exporting the number of established TCP connections (see 1561 Section 5.1). 1563 0 1 2 3 1564 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 1565 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1566 | Set ID = 2 | Length = 16 | 1567 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1568 | Template ID = 400 | Field Count = 2 | 1569 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1570 |0| IE = flowStartSeconds | Field Length = 4 | 1571 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1572 |0| IE = mibObjectValueGauge | Field Length = 4 | 1573 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1575 Figure 20: Example of tcpCurrEstab Template Set 1577 Figure 21 shows the exported mib Field Option detailing the metadata 1578 that will be exported about the mibObjectValueGauge Field in Template 1579 400 in Template Record (see Section 5.1). 1581 0 1 2 3 1582 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 1583 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1584 | Set ID = 3 | Length = 26 | 1585 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1586 | Template ID = 401 | Field Count = 3 | 1587 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1588 | Scope Field Count = 2 |0| IE = templateId | 1589 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1590 | Field Length = 2 |0| IE = informationElementIndex| 1591 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1592 | Field Length = 2 |0| IE = mibObjectIdentifier | 1593 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1594 | Field Length = 65535 | 1595 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1597 Figure 21: Example of tcpCurrEstab mibFieldOption Template Set 1599 Figure 22 shows the exported mib Field Option detailing the metadata 1600 that will be exported about the mibObjectValueGauge Field in Template 1601 400 in Template Record (see Section 5.1). 1603 The OID for the MIB Object tcpCurrEstab from [RFC4022], Object ID 1604 "1.3.6.1.2.1.6.9", will be encoded in ASN.1/BER [BER] as 1605 '06072b060102010609' in the data record. This will take nine bytes. 1607 0 1 2 3 1608 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 1609 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1610 | Set ID = 401 | Length = 25 | 1611 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1612 | templateId = 400 | informationElementIndex = 1 | 1613 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1614 | VLEN=9 | mibObjectIdentifier | 1615 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1616 | ... mibObjectIdentifier = "1.3.6.1.2.1.6.9" | 1617 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1618 | ... MIB Object Identifier | 1619 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1621 Figure 22: Example of tcpCurrEstab mibFieldOption Data Set 1623 Figure 23 shows the start of the Data Set for exporting the number of 1624 established TCP connections (see Section 5.1). 1626 0 1 2 3 1627 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 1628 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1629 | Set ID = 400 | Length = 52 | 1630 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1631 | StartTime + 0 seconds | 1632 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1633 | 10 | 1634 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1635 | StartTime + 60 seconds | 1636 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1637 | 14 | 1638 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1639 | StartTime + 120 seconds | 1640 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1641 | 19 | 1642 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1643 | StartTime + 180 seconds | 1644 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1645 | 16 | 1646 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1647 | StartTime + 240 seconds | 1648 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1649 | 23 | 1650 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1651 | StartTime + 300 seconds | 1652 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1653 | 29 | 1654 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1656 Figure 23: Example of tcpCurrEstab Data Set 1658 5.2. Enterprise Specific MIB Object: Detailing CPU Load History 1660 For the sake of demonstrating a enterprise-specific MIB object, a 1661 non-indexed MIB object is chosen for simplicity. The CPU Usage of a 1662 remote network device could be monitored by configuring it to 1663 periodically export CPU usage information, i.e. the 1664 cpmCPUTotal1minRev from the proprietary CISCO-PROCESS-MIB, Object ID 1665 "1.3.6.1.4.1.9.9.109.1.1.1.1.7", to a centralized Collector. In this 1666 example, the Exporter would export an IPFIX Message every 30 minutes 1667 that contained Data Records detailing the CPU 1 minute busy average 1668 at 1 minute intervals. 1670 The table of data that is to be exported looks like: 1672 +-------------------------+---------------------+ 1673 | TIMESTAMP | CPU BUSY PERCENTAGE | 1674 +-------------------------+---------------------+ 1675 | StartTime + 0 seconds | 10% | 1676 | StartTime + 60 seconds | 14% | 1677 | StartTime + 120 seconds | 19% | 1678 | StartTime + 180 seconds | 16% | 1679 | StartTime + 240 seconds | 23% | 1680 | StartTime + 300 seconds | 29% | 1681 +-------------------------+---------------------+ 1683 Table 3: CPU Usage Data 1685 The Template Record for such a Data Record will detail two 1686 Information Elements: 1688 1. flowStartSeconds from [RFC7012], Information Element 150: The 1689 absolute timestamp of the first packet of this Flow. 1691 2. a mibObjectValueGauge for cpmCPUTotal1minRev, the overall CPU 1692 busy percentage in the last one-minute period 1694 Figure 24 shows the exported Template Set detailing the Template 1695 Record for exporting CPU Load (see Section 5.2). 1697 0 1 2 3 1698 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 1699 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1700 | Set ID = 2 | Length = 53 | 1701 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1702 | Template ID = 402 | Field Count = 2 | 1703 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1704 |0| IE = flowStartSeconds | Field Length = 4 | 1705 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1706 |0| IE = mibObjectValueGauge | Field Length = 1 | 1707 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1709 Figure 24: Example of CPU Load Template Set 1711 Figure 25 shows the exported Template Set detailing the 1712 mibFieldOption Template Record for exporting CPU Load (see 1713 Section 5.2). Note this identical to the mibFieldOption template 1714 given in Figure 21 so the same template could have been reused. 1716 0 1 2 3 1717 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1718 | Set ID = 3 | Length = 26 | 1719 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1720 | Template ID = 403 | Field Count = 3 | 1721 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1722 | Scope Field Count = 2 |0| IE = templateId | 1723 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1724 | Field Length = 2 |0| IE = informationElementIndex| 1725 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1726 | Field Length = 2 |0| IE = mibObjectIdentifier | 1727 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1728 | Field Length = 65535 | 1729 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1731 Figure 25: Example of CPU Load mibFieldOption Template Set 1733 Figure 26 shows the exported mib Field Option detailing the metadata 1734 that will be exported about the mibObjectValueGauge Field in Template 1735 402 in Template Record (see Section 5.2). 1737 The OID for the cpmCPUTotal1minRev has been encoded using ASN.1/BER 1738 to '060d2b0601040109096d0101010107' at 15 bytes long. 1740 0 1 2 3 1741 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 1742 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1743 | Set ID = 403 | Length = 40 | 1744 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1745 | templateId = 402 | informationElementIndex = 1 | 1746 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1747 | VLEN=15 | mibObjectIdentifier ... | 1748 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1749 | "1.3.6.1.4.1.9.9.109.1.1.1.1.7" ... | 1750 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1751 | 060d2b0601040109096d0101010107 ... | 1752 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1753 | ... | 1754 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1756 Figure 26: Example of CPULoad mibFieldOption Data Set 1758 Note that although cpmCPUTotal1minRev is 32 bits long, reduced size 1759 encoding [RFC7011] has been used to encoded it within a single octet. 1761 This example stresses that, even though the OID cpmCPUTotal1minRev is 1762 enterprise-specific, the E bit for the mibObjectValueGauge and 1763 mibObjectIdentifier is set to "0" since the "mibObjectValueGauge" and 1764 "mibObjectIdentifier" Information Element is not enterprise-specific. 1765 That this data is from an Enterprise MIB is included in the OID that 1766 includes an Enterprise ID. 1768 The corresponding Data Set does not add any value for this example, 1769 and is therefore not displayed. 1771 5.3. Exporting A Sequence Table: The OSPF Neighbor Sequence 1773 Many conceptual tables are already defined in standard and 1774 proprietary MIBs. These can be exported with a minimum of overhead 1775 by using the mibObjectValueSequence. This allows the Exporting 1776 Process to unambiguously define the INDEX for the entire sequence as 1777 the Scope fields of an Option Export. The use of mibSequenceOption 1778 means that each individual columnar object does not need to have its 1779 OID exported to the collector 1781 The ospfNbrTable defined in the OSPF MIB [RFC4750] is a Sequence Of 1782 ospfNbrEntry, which has the OID "1.3.6.1.2.1.14.10.1". Each 1783 mibObjectValueSequence data record will therefore correspond to an 1784 ospfNbrEntry. 1786 The following fields will be exported: 1788 +----------------------+------------+----------------------+--------+ 1789 | Object | ID | mibObjectValue | Length | 1790 | | | | in | 1791 | | | | bytes | 1792 +----------------------+------------+----------------------+--------+ 1793 | ospfNbrIpAddr | ospfNbrEnt | mibObjectValueIPAddr | 4 | 1794 | | ry 1 | ess | | 1795 | ospfNbrAddressLessIn | ospfNbrEnt | mibObjectValueIntege | 4 | 1796 | dex | ry 2 | r | | 1797 | ospfNbrRtrId | ospfNbrEnt | mibObjectValueIPAddr | 4 | 1798 | | ry 3 | ess | | 1799 | ospfNbrState | ospfNbrEnt | mibObjectValueIntege | 1 | 1800 | | ry 6 | r | | 1801 +----------------------+------------+----------------------+--------+ 1803 Table 4: OSPF Neighbor Entry Objects 1805 The OIDs that will be used to export this table will be Table 7 1806 +-----------------------+----------------------+--------------------+ 1807 | Entity | Full OID | Exported as | 1808 +-----------------------+----------------------+--------------------+ 1809 | ospfNbrEntry | 1.3.6.1.2.1.14.10.1 | OID = 1.3.6.1.2.1. | 1810 | | | 14.10.1 | 1811 | ospfNbrIpAddr | 1.3.6.1.2.1.14.10.1. | subID = 1 | 1812 | | 1 | | 1813 | ospfNbrAddressLessInd | 1.3.6.1.2.1.14.10.1. | subID = 2 | 1814 | ex | 2 | | 1815 | ospfNbrRtrId | 1.3.6.1.2.1.14.10.1. | subID = 3 | 1816 | | 3 | | 1817 | ospfNbrState | 1.3.6.1.2.1.14.10.1. | subID = 6 | 1818 | | 6 | | 1819 +-----------------------+----------------------+--------------------+ 1821 Table 5: OSPF OIDs 1823 Figure 27 shows the Templates Exported to Support the 1824 mibObjectValueSequence. Figure 28 shows the example OID Data for the 1825 Sequence exported in mibObjectValueSequence Figure 29 shows the 1826 example data export for a few neighbors in the table. 1828 0 1 2 3 1829 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 1830 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1831 | Set ID = 2 | Length = 12 | 1832 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1833 | Template ID = 500 | Field Count = 1 | 1834 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1835 |0| IE = mibObjectValueSequence | Field Length = 16 | 1836 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1838 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1839 | Set ID = 3 | Length = 30 | 1840 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1841 | Template ID = 501 | Field Count = 4 | 1842 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1843 | Scope Field Count = 2 |0| IE = mibObjectValueIPAddress| 1844 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1845 | Field Length = 4 |0| IE = mibObjectValueInteger | 1846 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1847 | Field Length = 4 |0| IE = mibObjectValueIPAddress| 1848 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1849 | Field Length = 4 |0| IE = mibObjectValueInteger | 1850 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1851 | Field Length = 1 | 1852 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1853 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1854 | Set ID = 3 | 1855 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1856 | Length = 22 | Template ID = 502 | 1857 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1858 | Field Count = 3 | Scope Field Count = 2 | 1859 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1860 |0| IE = templateId | Field Length = 2 | 1861 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1862 |0| IE = informationElementIndex| Field Length = 2 | 1863 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1864 |0| IE = mibObjectIdentifier | Field Length = 65535 | 1865 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1867 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1868 | Set ID = 3 | Length = 22 | 1869 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1870 | Template ID = 503 | Field Count = 3 | 1871 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1872 | Scope Field Count = 2 |0| IE = templateId | 1873 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1874 | Field Length = 2 |0| IE = informationElementIndex| 1875 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1876 | Field Length = 2 |0| IE = mibSubIdentifier | 1877 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1878 | Field Length = 2 | 1879 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1881 Figure 27: Example of ospfNbarEntry Template Sets 1883 0 1 2 3 1884 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 1885 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1886 | Set ID = 502 | Length = 38 | 1887 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1888 | templateId = 500 | informationElementIndex = 0 | 1889 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1890 | VLEN=22 | mibObjectIdentifier = "1.3.6.1.2.1.14.10.1" | 1891 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1892 | 060f2b8006800180028001800e800a8001 | 1893 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1894 | .... | 1895 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1896 | .... | 1897 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1898 | .... | 1899 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1900 | | Padding = 0 | 1901 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1903 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1904 | Set ID = 503 | Length = 28 | 1905 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1906 | templateId = 501 | informationElementIndex = 0 | 1907 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1908 | mibSubIdentifier = 1 | templateId = 501 | 1909 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1910 | informationElementIndex = 1 | mibSubIdentifier = 2 | 1911 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1912 | templateId = 501 | informationElementIndex = 2 | 1913 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1914 | mibSubIdentifier = 3 | templateId = 501 | 1915 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1916 | informationElementIndex = 3 | mibSubIdentifier = 6 | 1917 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1919 Figure 28: Example of ospfNbarEntry OID Data export 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 = 500 | Length = 52 | 1925 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1926 |Semantic=FF | Template ID = 501 | ... | 1927 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1928 | ospfNbrIpAddr = 192.0.2.1 | ... | 1929 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1930 | ospfNbrAddressLessIndex = 0 | ... | 1931 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1932 | ospfNbrRtrId = 1.1.1.1 |ospfNbrState=8 | 1933 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1934 |Semantic=FF | Template ID = 501 | ... | 1935 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1936 | ospfNbrIpAddr = 192.0.2.2 | ... | 1937 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1938 | ospfNbrAddressLessIndex = 0 | ... | 1939 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1940 | ospfNbrRtrId = 2.2.2.2 |ospfNbrState=8 | 1941 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1942 |Semantic=FF | Template ID = 501 | ... | 1943 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1944 | ospfNbrIpAddr = 192.0.2.3 | ... | 1945 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1946 | ospfNbrAddressLessIndex = 0 | ... | 1947 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1948 | ospfNbrRtrId = 3.3.3.3 |ospfNbrState=1 | 1949 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1951 Figure 29: Example of Data Export for ospfNbrEntry 1953 5.4. Exporting Augmented Sequence Table: The IF-MIB id to name mapping 1955 The IF-MIB [RFC2863] defines the IfXEntry to extend the ifTable and 1956 ifEntry. 1958 The specific MIB Object that specified the AUGMENTS clause is the 1959 ifXEntry object. 1961 The ifTable defined in the Interfaces Group MIB [RFC2863] is a 1962 Sequence Of ifEntry, which has the OID "1.3.6.1.2.1.2.2.1". Each 1963 mibObjectValueSequence data record will therefore correspond to an 1964 ifEntry. 1966 The following fields will be exported Table 6 1967 +---------+------------------+-------+-------------------+ 1968 | ifIndex | ifType | ifMTU | ifName | 1969 +---------+------------------+-------+-------------------+ 1970 | 1 | ethernetCsmacd:6 | 1500 | Ethernet 0/0 | 1971 | 2 | ethernetCsmacd:6 | 1500 | Ethernet 0/1 | 1972 | 3 | ethernetCsmacd:6 | 1500 | FastEthernet 1/0 | 1973 +---------+------------------+-------+-------------------+ 1975 Table 6: IF-MIB Data 1977 The OIDs that will be used to export this table will be Table 7 1979 +---------+------------------------+--------------------------------+ 1980 | Entity | Full OID | Exported as | 1981 +---------+------------------------+--------------------------------+ 1982 | ifEntry | 1.3.6.1.2.1.2.2.1 | OID = 1.3.6.1.2.1.2.2.1 | 1983 | ifIndex | 1.3.6.1.2.1.2.2.1.1 | subID = 1 | 1984 | ifType | 1.3.6.1.2.1.2.2.1.3 | subID = 3 | 1985 | ifMTU | 1.3.6.1.2.1.2.2.1.4 | subID = 4 | 1986 | ifName | 1.3.6.1.2.1.31.1.1.1.1 | OID = 1.3.6.1.2.1.31.1.1.1.1 | 1987 +---------+------------------------+--------------------------------+ 1989 Table 7: IF-MIB OIDs 1991 Figure 30 shows the Templates Exported to Support the 1992 mibObjectValueSequence. Figure 31 shows the example OID Data for the 1993 Sequence exported in mibObjectValueSequence to match Table 7. 1994 Figure 32 shows the example data export as per Table 6. 1996 0 1 2 3 1997 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 1998 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1999 | Set ID = 2 | Length = 12 | 2000 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2001 | Template ID = 600 | Field Count = 1 | 2002 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2003 |0| IE = mibObjectValueSequence | Field Length = 24 | 2004 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2006 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2007 | Set ID = 3 | Length = 25 | 2008 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2009 | Template ID = 601 | Field Count = 4 | 2010 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2011 | Scope Field Count = 1 |0| IE = mibObjectValueInteger | 2012 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2013 | Field Length = 1 |0| IE = mibObjectValueInteger | 2014 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2015 | Field Length = 4 |0| IE = mibObjectValueInteger | 2016 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2017 | Field Length = 4 |0|IE =mibObjectValueOctetString| 2018 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2019 | Field Length = 16 | 2020 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2022 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2023 | Set ID = 3 | 2024 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2025 | Length = 22 | Template ID = 602 | 2026 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2027 | Field Count = 3 | Scope Field Count = 2 | 2028 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2029 |0| IE = templateId | Field Length = 2 | 2030 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2031 |0| IE = informationElementIndex| Field Length = 2 | 2032 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2033 |0| IE = mibObjectIdentifier | Field Length = 65535 | 2034 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2036 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2037 | Set ID = 3 | Length = 22 | 2038 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2039 | Template ID = 603 | Field Count = 3 | 2040 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2041 | Scope Field Count = 2 |0| IE = templateId | 2042 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2043 | Field Length = 2 |0| IE = informationElementIndex| 2044 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2045 | Field Length = 2 |0| IE = mibSubIdentifier | 2046 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2047 | Field Length = 2 | 2048 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2050 Figure 30: Example of Augmented ifEntry Template Sets 2052 0 1 2 3 2053 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 2054 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2055 | Set ID = 602 | Length = 62 | 2056 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2057 | templateId = 600 | informationElementIndex = 0 | 2058 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2059 | VLEN=11 | mibObjectIdentifier ... | 2060 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2061 | ifEntry = 1.3.6.1.2.1.2.2.1 | 2062 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2063 | 06082b06010201020201 | 2064 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2065 | templateId = 601 | informationElementIndex = 3 | 2066 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2067 | VLEN=12 | mibObjectIdentifier ifName = "" | 2068 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2069 | ifName = 1.3.6.1.2.1.31.1.1.1.1 | 2070 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2071 | 060a2b060102011f01010101 | 2072 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2073 | | Padding = 0 | 2074 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2076 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2077 | Set ID = 603 | Length = 28 | 2078 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2079 | templateId = 601 | informationElementIndex = 0 | 2080 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2081 | mibSubIdentifier = 1 | templateId = 601 | 2082 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2083 | informationElementIndex = 1 | mibSubIdentifier = 3 | 2084 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2085 | templateId = 601 | informationElementIndex = 2 | 2086 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2087 | mibSubIdentifier = 4 | 2088 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2090 Figure 31: Example of Augmented ifEntry OID Data export 2092 0 1 2 3 2093 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 2094 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2095 | Set ID = 600 | Length = 76 | 2096 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2097 |Semantic=FF | Template ID = 601 | ifIndex = 1 | 2098 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2099 | ifType = 6 | ifMTU = 1500 | 2100 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2101 | ifName = Ethernet 0/0 | 2102 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2103 | ... | 2104 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2105 | ... | 2106 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2107 | ... | 2108 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2109 |Semantic=FF | Template ID = 601 | ifIndex = 2 | 2110 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2111 | ifType = 6 | ifMTU = 1500 | 2112 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2113 | ifName = Ethernet 0/1 | 2114 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2115 | ... | 2116 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2117 | ... | 2118 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2119 | ... | 2120 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2121 |Semantic=FF | Template ID = 601 | ifIndex = 3 | 2122 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2123 | ifType = 6 | ifMTU = 1500 | 2124 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2125 | ifName = FastEthernet 1/0 | 2126 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2127 | ... | 2128 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2129 | ... | 2130 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2131 | ... | 2132 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2134 Figure 32: Example of Data Export for Augmented ifEntry 2136 5.5. Exporting Selected Objects Sequence : The ipIfStatsInForwDatagrams 2138 It may be that the full set of columnar objects that are supported by 2139 a SEQUENCE are not required to be exported. But if index information 2140 is to be provided then the Objects specified by the INDEX clause of 2141 the SEQUENCE MUST be exported in the correct order and referred to by 2142 the mibIndexIndicator included in the mibFieldOption Template. 2144 This example shows the export of ipIfStatsInForwDatagrams from the 2145 IP-MIB [RFC4293]. ipIfStatsInForwDatagrams is a columnar object that 2146 is part of the conceptual table ipIfStatsTable SEQUENCE. This is 2147 comprised of ipIfStatsEntry conceptual rows. 2149 The ipIfStatsTable SEQUENCE is indexed by the ipIfStatsIPVersion and 2150 ipIfStatsIfIndex, therefore to export ipIfStatsInForwDatagrams 2151 clearly they should be included. 2153 The Options Template Record for the example Data Record contains the 2154 following Information Elements: 2156 1. ipIfStatsIPVersion (1.3.6.1.2.1.4.31.3.1.1) (scope field) 2158 2. ipIfStatsIfIndex (1.3.6.1.2.1.4.31.3.1.2) (scope field) 2160 3. ipIfStatsInForwDatagrams (1.3.6.1.2.1.4.31.3.1.12) (non-scope 2161 field) 2163 Figure 33 shows the exported Options Template Set. 2165 0 1 2 3 2166 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 2167 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2168 | Set ID = 3 | Length = 22 | 2169 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2170 | Template ID = 701 | Field Count = 3 | 2171 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2172 | Scope Field Count = 2 |0|Scope 1=mibObjectValueInteger| 2173 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2174 | Scope Field 1 Length = 1 |0|Scope 2=mibObjectValueInteger| 2175 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2176 | Scope Field 1 Length = 2 |0| IE = mibObjectValueCounter | 2177 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2178 | Field Length = 4 | 2179 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2181 Figure 33: Example of an Options Template for an Indexed MIB Object 2182 with two indices. 2184 Figure 34 shows the exported mibFieldOption Template used to export 2185 the required mibObjectValue metadata. This example of the 2186 mibFieldOption Template includes the mibIndexIndicator to indicate 2187 that some of the other fields in the data records are indexes. 2189 0 1 2 3 2190 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 2191 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2192 | Set ID = 3 | Length = 34 | 2193 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2194 | Template ID = 702 | Field Count = 4 | 2195 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2196 | Scope Field Count = 2 |0| IE = templateId | 2197 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2198 | Field Length = 2 |0| IE = informationElementIndex| 2199 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2200 | Field Length = 2 |0| IE = mibIndexIndicator | 2201 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2202 | Field Length = 1 |0| IE = mibObjectIdentifier | 2203 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2204 | Field Length = 65535 | 2205 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2207 Figure 34: Example of an MIB Field Options Template for an Indexed 2208 MIB Object with two indices. 2210 Figure 35 shows the exported mibFieldOption Data used to export the 2211 required mibObjectValue metadata. Note that the first two Data 2212 Records have all their mibIndexIndicator bits set to 0. The third 2213 mibIndexIndicator has the value '11000000' to show that the first two 2214 fields in the record are the INDEX's for this columnar object. 2216 0 1 2 3 2217 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 2218 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2219 | Set ID = 702 | Length = 140 | 2220 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2221 | templateId = 701 | informationElementIndex = 0 | 2222 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2223 |Index 00000000 | VLEN = 21 | mibObjectIdentifier ... | 2224 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2225 | "1.3.6.1.2.1.4.31.3.1.1" ... | 2226 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2227 | 06132b80068001800280018004801f800380018001 ... | 2228 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2229 | ... | 2230 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2231 | | templateId 701| 2232 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2233 |... templateId | informationElementIndex = 1 |Index 00000000 | 2234 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2235 | VLEN = 21 | mibObjectIdentifier ... | 2236 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2237 | "1.3.6.1.2.1.4.31.3.1.2" ... | 2238 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2239 | 06132b80068001800280018004801f800380018002 ... | 2240 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2241 | ... | 2242 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2243 | | templateId = 701 | 2244 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2245 | informationElementIndex = 2 |Index 11000000 | OID VLEN = 21 | 2246 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2247 | mibObjectIdentifier "1.3.6.1.2.1.4.31.3.1.12" ... | 2248 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2249 | 06132b80068001800280018004801f80038001800c ... | 2250 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2251 | ... | 2252 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2253 | ... | 2254 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2255 | | 2256 +-+-+-+-+-+-+-+-+ 2258 Figure 35: Example of an MIB Field Options Data Set for an Indexed 2259 MIB Object with two indices. 2261 Figure 36 shows the Data records that export the values of the 3 2262 mibObjectValue. 2264 0 1 2 3 2265 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 2266 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2267 | Set ID = 701 | Length = 18 | 2268 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2269 | ipVer = 1 | ifIndex = 10 | ... | 2270 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2271 | InForwDatagrams = 10000 | ipVer = 2 | 2272 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2273 | ifIndex = 10 | InForwDatagrams = 20000 | 2274 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2275 | ... | 2276 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2278 Figure 36: Example of an MIB Data Set for an Indexed MIB Object with 2279 two indices. 2281 5.6. Indexed MIB Object with an IPFIX Information Element: Output 2282 Interface Queue Size in PSAMP Packet Report 2284 If a PSAMP Packet Report [RFC5476] was generated on any dropped 2285 packets on an interface then it may be desirable to know if the send 2286 queue on the output interface was full. This could be done be 2287 exporting the size of the send queue (ifOutQLen) in the same Data 2288 Record as the PSAMP Packet Report. 2290 The exported data looks like: 2292 +-----------+-----------+--------+--------------+-------------------+ 2293 | SRC ADDR | DST ADDR | PAK | OUTPUT | OUTPUT Q. LEN | 2294 | | | LEN | INTERFACE | (ifOutQLen) | 2295 +-----------+-----------+--------+--------------+-------------------+ 2296 | 192.0.2.1 | 192.0.2.3 | 150 | Eth 1/0 (15) | 45 | 2297 | 192.0.2.4 | 192.0.2.9 | 350 | Eth 1/0 (15) | 45 | 2298 | 192.0.2.3 | 192.0.2.9 | 650 | Eth 1/0 (15) | 23 | 2299 | 192.0.2.4 | 192.0.2.6 | 350 | Eth 1/1 (16) | 0 | 2300 +-----------+-----------+--------+--------------+-------------------+ 2302 Table 8: Packet Report with Interface Output Queue Length (ifOutQLen) 2303 Data 2305 The MIB object for the Interface Output Queue Length, ifOutQLen 2306 ("1.3.6.1.2.1.2.2.1.21"), this is part of the ifEntry SEQUENCE that 2307 has as its index ifIndex interface index as detailed in the IF-MIB 2308 [RFC2863]. If, for example, the interface index of "Eth 1/0" in the 2309 example is 15, the full MIB Object Identifier for (ifOutQLen) would 2310 be "1.3.6.1.2.1.2.2.1.21.15". 2312 This relationship between the ifOutQLen field and the index field is 2313 exported using mibIndexIndicator in the mibFieldOption. The value of 2314 "00010000" flags the index fields concisely. 2316 In fact, only how the indexed object was indexed is necessary, 2317 although it is often useful to specify the index value. The example 2318 identifies the Egress Interface, but for other uses it may be 2319 sufficient to know that the ifOutQLen value was taken for the 2320 interface that the packet was switched out of, without identifying 2321 the actual interface. 2323 The Template Record for the example Data Record contains the 2324 following Information Elements: 2326 1. sourceIPv4Address 2328 2. destinationIPv4Address 2330 3. totalLengthIPv4 2332 4. egressInterface 2334 5. ifOutQLen indexed by: egressInterface 2336 Figure 37 shows the exported Template Set detailing the Template for 2337 exporting a PSAMP Report with Interface Output Queue Length 2338 (ifOutQLen). Figure 38 and Figure 39 show the mibFieldOption 2339 Template and Data Record. 2341 0 1 2 3 2342 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 2343 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2344 | Set ID = 2 | Length = 63 | 2345 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2346 | Template ID = 703 | Field Count = 5 | 2347 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2348 |0| IE = sourceIPv4Address | Field Length = 4 | 2349 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2350 |0| IE = destinationIPv4Address | Field Length = 4 | 2351 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2352 |0| IE = totalLengthIPv4 | Field Length = 4 | 2353 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2354 |0| IE = egressInterface | Field Length = 4 | 2355 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2356 |0| IE = mibObjectValueGauge | Field Length = 4 | 2357 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2359 Figure 37: Example of Template for a PSAMP Report with ifOutQLen 2360 indexed by egressInterface 2362 0 1 2 3 2363 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 2364 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2365 | Set ID = 3 | Length = 34 | 2366 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2367 | Template ID = 704 | Field Count = 4 | 2368 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2369 | Scope Field Count = 2 |0| IE = templateId | 2370 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2371 | Field Length = 2 |0| IE = informationElementIndex| 2372 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2373 | Field Length = 2 |0| IE = mibIndexIndicator | 2374 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2375 | Field Length = 1 |0| IE = mibObjectIdentifier | 2376 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2377 | Field Length = 65535 | 2378 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2380 Figure 38: Example of mibFieldOption Template for a PSAMP Report with 2381 ifOutQLen indexed by egressInterface 2383 0 1 2 3 2384 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 2385 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2386 | Set ID = 704 | Length = 41 | 2387 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2388 | templateId = 703 | informationElementIndex = 4 | 2389 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2390 |Index 00010000 | VLEN = 19 | mibObjectIdentifier ... | 2391 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2392 | "1.3.6.1.2.1.2.2.1.21" ... | 2393 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2394 | 06112b80068001800280018002800280018015 ... | 2395 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2396 | ... | 2397 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2398 | | 2399 +-+-+-+-+-+-+-+-+ 2401 Figure 39: Example of mibFieldOption Data Record for a PSAMP Report 2402 with ifOutQLen indexed by egressInterface 2404 The corresponding IPFIX Data Record is shown in Figure 40. For the 2405 sake of the example, the interface index of "Eth 1/0" is 15 and the 2406 interface index of "Eth 1/1" is 16. 2408 0 1 2 3 2409 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 2410 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2411 | Set ID = 703 | Length = 84 | 2412 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2413 | 192.0.2.1 | 2414 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2415 | 192.0.2.3 | 2416 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2417 | 150 | 2418 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2419 | 15 (Eth 1/0) | 2420 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2421 | 45 | 2422 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2423 | 192.0.2.4 | 2424 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2425 | 192.0.2.9 | 2426 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2427 | 350 | 2428 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2429 | 15 (Eth 1/0) | 2430 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2431 | 45 | 2432 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2433 | 192.0.2.3 | 2434 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2435 | 192.0.2.9 | 2436 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2437 | 650 | 2438 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2439 | 15 (Eth 1/0) | 2440 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2441 | 23 | 2442 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2443 | 192.0.2.4 | 2444 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2445 | 192.0.2.6 | 2446 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2447 | 350 | 2448 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2449 | 16 (Eth 1/1) | 2450 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2451 | 0 | 2452 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2454 Figure 40: Example of PSAMP Packet Report with ifOutQLen indexed by 2455 egressInterface 2457 5.7. Indexed MIB Object with an OID: Output Interface Queue Size in 2458 PSAMP Packet Report 2460 Following on the example from the previous section (see Section 5.6), 2461 if the Template Record for the example Data Record does not contain 2462 the egressInterface, the ifOutQLen can be indexed by the ifIndex 2463 interface index as detailed in the IF-MIB [RFC2863] by including as 2464 many mibSubIdentifier as are required. 2466 The Template Record for the example Data Record contains the 2467 following Information Elements: 2469 1. sourceIPv4Address 2471 2. destinationIPv4Address 2473 3. totalLengthIPv4 2475 4. ifOutQLen indexed by: the mibSubIdentifier 2477 5. mibSubIdentifier 2479 Note the only significant difference between this and the previous 2480 example is that by using the mibSubIdentifier the exporter is 2481 exposing less information about the type of the index. 2483 Figure 41 shows the exported Template Set detailing the Template for 2484 exporting a PSAMP Report with Interface Output Queue Length 2485 (ifOutQLen) but using the ifIndex MIB object as the exported index. 2486 Figure 42 and Figure 43 show the mibFieldOption Template and Data 2487 Record. 2489 0 1 2 3 2490 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 2491 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2492 | Set ID = 2 | Length = 63 | 2493 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2494 | Template ID = 705 | Field Count = 5 | 2495 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2496 |0| IE = sourceIPv4Address | Field Length = 4 | 2497 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2498 |0| IE = destinationIPv4Address | Field Length = 4 | 2499 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2500 |0| IE = totalLengthIPv4 | Field Length = 4 | 2501 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2502 |0| IE = mibObjectValueGauge | Field Length = 1 | 2503 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2504 |0| IE = mibSubIdentifier | Field Length = 4 | 2505 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2507 Figure 41: Example of Template for a PSAMP Report with ifOutQLen 2508 indexed by a sub identifier 2510 0 1 2 3 2511 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2512 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2513 | Set ID = 3 | Length = 34 | 2514 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2515 | Template ID = 706 | Field Count = 4 | 2516 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2517 | Scope Field Count = 2 |0| IE = templateId | 2518 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2519 | Field Length = 2 |0| IE = informationElementIndex| 2520 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2521 | Field Length = 2 |0| IE = mibIndexIndicator | 2522 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2523 | Field Length = 1 |0| IE = mibObjectIdentifier | 2524 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2525 | Field Length = 65535 | 2526 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2528 Figure 42: Example of mibFieldOption Template for a PSAMP Report with 2529 ifOutQLen indexed by a sub identifier 2531 0 1 2 3 2532 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 2533 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2534 | Set ID = 706 | Length = 41 | 2535 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2536 | templateId = 705 | informationElementIndex = 4 | 2537 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2538 |Index 00001000 | VLEN = 19 | mibObjectIdentifier ... | 2539 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2540 | "1.3.6.1.2.1.2.2.1.21" ... | 2541 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2542 | 06112b80068001800280018002800280018015 ... | 2543 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2544 | ... | 2545 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2546 | | 2547 +-+-+-+-+-+-+-+-+ 2549 Figure 43: Example of mibFieldOption Data Record for a PSAMP Report 2550 with ifOutQLen indexed by a sub identifier 2552 Note that IPFIX reduced size encoding [RFC7011] has been used in this 2553 example to express ifOutQLen in a single octet, rather than the 32 2554 bits specified in the IF-MIB [RFC2863]. 2556 The corresponding IPFIX Data Record is shown in Figure 44. For the 2557 sake of the example, the interface index of "Eth 1/0" is 15 and the 2558 interface index of "Eth 1/1" is 16. 2560 0 1 2 3 2561 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 2562 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2563 | Set ID = 703 | Length = 72 | 2564 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2565 | 192.0.2.1 | 2566 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2567 | 192.0.2.3 | 2568 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2569 | 150 | 2570 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2571 | 45 | 15 ... | 2572 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2573 | ... | 192.0.2.4 ... | 2574 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2575 | ... | 192.0.2.9 ... | 2576 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2577 | ... | 350 ... | 2578 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2579 | ... | 45 | 15 ... | 2580 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2581 | ... | 192.0.2.3 ... | 2582 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2583 | ... | 192.0.2.9 ... | 2584 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2585 | ... | 650 ... | 2586 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2587 | ... | 23 | ... | 2588 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2589 | ... 15 | ... | 2590 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2591 | ... 192.0.2.4 | ... | 2592 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2593 | ... 192.0.2.6 | ... | 2594 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2595 | ... 350 | 0 | 2596 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2597 | 16 | 2598 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2600 Figure 44: Example of PSAMP Packet Report with the ifOutQLen using 2601 ifIndex from IF-MIB [RFC2863] as an index 2603 5.8. Exporting With Multiple Contexts: The OSPF Neighbor Sequence 2604 Revisited 2606 If the Context used to export the MIB Objects is the default one no 2607 extra context fields are required. This example demonstrates how to 2608 handle the case when the Context needs to be specified. It is based 2609 on the previous example Section 5.3. 2611 The OSPF details exported of the Sequence in section Section 5.3 2612 would be suitable if there were only one OSPF process running at the 2613 Observation Point. If multiple OSPF processes are present then they 2614 can be differentiated by also exporting the mibContextEngineID and 2615 mibContextName. 2617 The following fields will be exported: 2619 +----------------------+------------+----------------------+--------+ 2620 | Object | ID | mibObjectValue | Length | 2621 | | | | in | 2622 | | | | bytes | 2623 +----------------------+------------+----------------------+--------+ 2624 | ospfNbrIpAddr | ospfNbrEnt | mibObjectValueIPAddr | 4 | 2625 | | ry 1 | ess | | 2626 | ospfNbrAddressLessIn | ospfNbrEnt | mibObjectValueIntege | 4 | 2627 | dex | ry 2 | r | | 2628 | ospfNbrRtrId | ospfNbrEnt | mibObjectValueIPAddr | 4 | 2629 | | ry 3 | ess | | 2630 | ospfNbrState | ospfNbrEnt | mibObjectValueIntege | 1 | 2631 | | ry 6 | r | | 2632 +----------------------+------------+----------------------+--------+ 2634 Table 9: OSPF Neighbor Entry Objects 2636 Figure 45 shows the Templates Exported to Support a 2637 mibObjectValueSequence that is defined within a context. Figure 46 2638 shows the example OID Data for the Sequence exported in 2639 mibObjectValueSequence. These are unchanged from the previous 2640 example. Figure 47 shows the example data for 2 OSPF neighbors. 2641 Although these have identical INDEX/Scope values the context 2642 information indicates they come from different OSPF processes. 2644 0 1 2 3 2645 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 2646 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2647 | Set ID = 2 | Length = 20 | 2648 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2649 | Template ID = 800 | Field Count = 3 | 2650 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2651 |0| IE = mibContextEngineID | Field Length = 4 | 2652 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2653 |0| IE = mibContextName | Field Length = 4 | 2654 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2655 |0| IE = mibObjectValueSequence | Field Length = 16 | 2656 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2658 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2659 | Set ID = 3 | Length = 30 | 2660 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2661 | Template ID = 801 | Field Count = 4 | 2662 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2663 | Scope Field Count = 2 |0| IE = mibObjectValueIPAddress| 2664 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2665 | Field Length = 4 |0| IE = mibObjectValueInteger | 2666 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2667 | Field Length = 4 |0| IE = mibObjectValueIPAddress| 2668 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2669 | Field Length = 4 |0| IE = mibObjectValueInteger | 2670 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2671 | Field Length = 1 | 2672 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2674 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2675 | Set ID = 3 | 2676 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2677 | Length = 22 | Template ID = 802 | 2678 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2679 | Field Count = 3 | Scope Field Count = 2 | 2680 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2681 |0| IE = templateId | Field Length = 2 | 2682 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2683 |0| IE = informationElementIndex| Field Length = 2 | 2684 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2685 |0| IE = mibObjectIdentifier | Field Length = 65535 | 2686 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2688 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2689 | Set ID = 3 | Length = 22 | 2690 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2691 | Template ID = 803 | Field Count = 3 | 2692 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2693 | Scope Field Count = 2 |0| IE = templateId | 2694 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2695 | Field Length = 2 |0| IE = informationElementIndex| 2696 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2697 | Field Length = 2 |0| IE = mibSubIdentifier | 2698 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2699 | Field Length = 2 | 2700 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2702 Figure 45: Example of ospfNbarEntry Template Sets with Context 2704 0 1 2 3 2705 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 2706 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2707 | Set ID = 802 | Length = 38 | 2708 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2709 | templateId = 800 | informationElementIndex = 2 | 2710 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2711 | VLEN=22 | mibObjectIdentifier = "1.3.6.1.2.1.14.10.1" | 2712 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2713 | 060f2b8006800180028001800e800a8001 | 2714 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2715 | .... | 2716 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2717 | .... | 2718 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2719 | .... | 2720 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2721 | | Padding = 0 | 2722 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2724 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2725 | Set ID = 803 | Length = 28 | 2726 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2727 | templateId = 801 | informationElementIndex = 0 | 2728 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2729 | mibSubIdentifier = 1 | templateId = 801 | 2730 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2731 | informationElementIndex = 1 | mibSubIdentifier = 2 | 2732 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2733 | templateId = 801 | informationElementIndex = 2 | 2734 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2735 | mibSubIdentifier = 3 | templateId = 801 | 2736 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2737 | informationElementIndex = 3 | mibSubIdentifier = 6 | 2738 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2740 Figure 46: Example of ospfNbarEntry OID Data export with Context 2741 0 1 2 3 2742 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 2743 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2744 | Set ID = 800 | Length = 52 | 2745 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2746 | mibContextEngineID = 0001 | 2747 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2748 | mibContextName = con1 | 2749 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2750 |Semantic=FF | Template ID = 801 | ... | 2751 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2752 | ospfNbrIpAddr = 192.0.2.1 | ... | 2753 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2754 | ospfNbrAddressLessIndex = 0 | ... | 2755 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2756 | ospfNbrRtrId = 1.1.1.1 |ospfNbrState=8 | 2757 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2758 | mibContextEngineID = 0001 | 2759 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2760 | mibContextName = con2 | 2761 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2762 |Semantic=FF | Template ID = 801 | ... | 2763 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2764 | ospfNbrIpAddr = 192.0.2.1 | ... | 2765 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2766 | ospfNbrAddressLessIndex = 0 | ... | 2767 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2768 | ospfNbrRtrId = 2.2.2.2 |ospfNbrState=8 | 2769 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2771 Figure 47: Example of Data Export for ospfNbrEntry with Context 2773 6. Configuration Considerations 2775 When configuring a MIB OID for export, consideration should be given 2776 to whether the SNMP Context String should also be configurable. If a 2777 non-default Context String is used then it should be associated with 2778 the fields as per Section 4.6. 2780 7. The Collecting Process's Side 2782 The specifications in section 9 of [RFC7011] also apply to Collectors 2783 that implement this specification. In addition, the following 2784 specifications should be noted. 2786 A Collecting Process that implements this specification SHOULD have 2787 access to MIB modules in order to look up the received MIB Object 2788 Identifiers and find the type and name of MIB OID fields used in 2789 received templates. It should be noted that since reduced size 2790 encoding MAY be used by the Exporting Process, the Collecting Process 2791 cannot assume a received size for a field is the maximum size it 2792 should expect for that field. 2794 If a Collecting Process receives a MIB Object Identifier that it 2795 cannot decode, it SHOULD log an error. 2797 If a Collecting Process receives a MIB Object Identifier for an 2798 indexed MIB object but isn't sent the appropriate number of indices 2799 then it MAY log an error, but it MAY use the Template Record to 2800 decode the Data Records as the associated indices are purely semantic 2801 information. 2803 8. Applicability 2805 Making available the many and varied items from MIB modules opens up 2806 a wide range of possible applications for the IPFIX protocol, some 2807 quite different from the usual flow information. 2809 Some monitoring applications periodically export an interface ID to 2810 interface name mapping using IPFIX Options Templates. This could be 2811 expanded to include the MIB object "ifInUcastPkts" of the IF-MIB 2812 [RFC2863] indexed using the ingressInterface Information Element, as 2813 an index. This would give the input statistics for each interface 2814 which can be compared to the flow information to ensure the sampling 2815 rate is expected. Or, if there is no sampling, to ensure that all 2816 the expected packets are being monitored. 2818 9. Security Considerations 2820 For this extension to the IPFIX protocol, the same security 2821 considerations as for the IPFIX protocol apply [RFC7011]. 2823 If the exporter is generating or capturing the field values itself, 2824 e.g. using the MIB Objects only as an encoding or type mechanism, 2825 there are no extra security considerations beyond standard IPFIX. 2827 However if the exporter is a client of an SNMP engine on the same 2828 device it MUST abide by existing SNMP security rules. 2830 The access to particular MIB objects is controlled by the 2831 configuration of the IPFIX exporter. This is consistent with the way 2832 IPFIX controls access to other Information Elements in general. 2834 The configuration of an IPFIX Exporter determines which MIB objects 2835 are included in IPFIX Data Records sent to certain collectors. 2836 Network operators should take care that the only MIB objects which 2837 are included in IPFIX Data Records are ones which the receiving flow 2838 collector is allowed to receive. 2840 10. IANA Considerations 2842 The new Information Elements in Table 10 must be allocated in IANA's 2843 IPFIX registry [IANA-IPFIX], as defined in the sub-sections below. 2845 In each case the "Units" and "Range" are to be left blank, since 2846 these are not applicable. 2848 +-----------+---------------------------+ 2849 | ElementId | Name | 2850 +-----------+---------------------------+ 2851 | TBD1 | mibObjectValueInteger | 2852 | TBD2 | mibObjectValueOctetString | 2853 | TBD3 | mibObjectValueOID | 2854 | TBD4 | mibObjectValueBits | 2855 | TBD5 | mibObjectValueIPAddress | 2856 | TBD6 | mibObjectValueCounter | 2857 | TBD7 | mibObjectValueGauge | 2858 | TBD8 | mibObjectValueTime | 2859 | TBD9 | mibObjectValueUnsigned | 2860 | TBD10 | mibObjectValueTable | 2861 | TBD11 | mibObjectValueSequence | 2862 | TBD12 | mibSubIdentifier | 2863 | TBD13 | mibObjectIdentifier | 2864 | TBD14 | mibIndexIndicator | 2865 | TBD15 | mibCaptureTimeSemantics | 2866 | TBD16 | mibContextEngineID | 2867 | TBD17 | mibContextName | 2868 | TBD18 | mibObjectName | 2869 | TBD19 | mibObjectDescription | 2870 | TBD20 | mibObjectSyntax | 2871 | TBD21 | mibModuleName | 2872 +-----------+---------------------------+ 2874 Table 10: New Information Elements 2876 10.1. New MIB Value Information Elements 2878 10.1.1. mibObjectValueInteger 2880 A new Information Element "mibObjectValueInteger" must be allocated 2881 in IANA's IPFIX registry [IANA-IPFIX], with the following definition: 2883 Description: An IPFIX Information Element which denotes that an 2884 integer value from a MIB will be exported. The MIB Object 2885 Identifier ("mibObjectIdentifier") for this field MUST be exported 2886 in a MIB Field Option or via another means. This Information 2887 Element is used for MIB Objects with the Base Syntax of Integer32 2888 and INTEGER with RLE used as required. The value is encoded as 2889 per the standard IPFIX Abstract Data Type of signed64. 2891 Abstract Data Type: signed64 2893 Data Type Semantics: identifier 2895 ElementId: TBD1 2897 Status: current 2899 Reference: [this document]. 2901 10.1.2. mibObjectValueOctetString 2903 A new Information Element "mibObjectValueOctetString" must be 2904 allocated in IANA's IPFIX registry [IANA-IPFIX], with the following 2905 definition: 2907 Description: An IPFIX Information Element which denotes that an 2908 Octet String or Opaque value from a MIB will be exported. The MIB 2909 Object Identifier ("mibObjectIdentifier") for this field MUST be 2910 exported in a MIB Field Option or via another means. This 2911 Information Element is used for MIB Objects with the Base Syntax 2912 of OCTET STRING and Opaque. The value is encoded as per the 2913 standard IPFIX Abstract Data Type of octetArray. 2915 Abstract Data Type: octetArray 2917 Data Type Semantics: default 2919 ElementId: TBD2 2921 Status: current 2923 Reference: [this document]. 2925 10.1.3. mibObjectValueOID 2927 A new Information Element "mibObjectValueOID" must be allocated in 2928 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 2930 Description: An IPFIX Information Element which denotes that an 2931 Object Identifier or OID value from a MIB will be exported. The 2932 MIB Object Identifier ("mibObjectIdentifier") for this field MUST 2933 be exported in a MIB Field Option or via another means. This 2934 Information Element is used for MIB Objects with the Base Syntax 2935 of OBJECT IDENTIFIER. Note - In this case the 2936 "mibObjectIdentifier" will define which MIB Object is being 2937 exported while the value contained in this Information Element 2938 will be an OID as a value. The mibObjectValueOID Information 2939 Element is encoded as ASN.1/BER [BER] in an octetArray. 2941 Abstract Data Type: octetArray 2943 Data Type Semantics: default 2945 ElementId: TBD3 2947 Status: current 2949 Reference: [this document]. 2951 10.1.4. mibObjectValueBits 2953 A new Information Element "mibObjectValueBits" must be allocated in 2954 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 2956 Description: An IPFIX Information Element which denotes that a set 2957 of Enumerated flags or bits from a MIB will be exported. The MIB 2958 Object Identifier ("mibObjectIdentifier") for this field MUST be 2959 exported in a MIB Field Option or via another means. This 2960 Information Element is used for MIB Objects with the Base Syntax 2961 of BITS. The value is encoded as per the standard IPFIX Abstract 2962 Data Type of unsigned64. 2964 Abstract Data Type: unsigned64 2966 Data Type Semantics: flags 2968 ElementId: TBD4 2970 Status: current 2972 Reference: [this document]. 2974 10.1.5. mibObjectValueIPAddress 2976 A new Information Element "mibObjectValueIPAddress" must be allocated 2977 in IANA's IPFIX registry [IANA-IPFIX], with the following definition: 2979 Description: An IPFIX Information Element which denotes that an 2980 IPv4 Address Object from a MIB will be exported. The MIB Object 2981 Identifier ("mibObjectIdentifier") for this field MUST be exported 2982 in a MIB Field Option or via another means. This Information 2983 Element is used for MIB Objects with the Base Syntax of IPAddress. 2984 The value is encoded as per the standard IPFIX Abstract Data Type 2985 of ipv4Address. 2987 Abstract Data Type: ipv4Address 2989 Data Type Semantics: default 2991 ElementId: TBD5 2993 Status: current 2995 Reference: [this document]. 2997 10.1.6. mibObjectValueCounter 2999 A new Information Element "mibObjectValueCounter" must be allocated 3000 in IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3002 Description: An IPFIX Information Element which denotes that a 3003 counter value from a MIB will be exported. The MIB Object 3004 Identifier ("mibObjectIdentifier") for this field MUST be exported 3005 in a MIB Field Option or via another means. This Information 3006 Element is used for MIB Objects with the Base Syntax of Counter32 3007 or Counter64 with RLE used as required. The value is encoded as 3008 per the standard IPFIX Abstract Data Type of unsigned64. 3010 Abstract Data Type: unsigned64 3012 Data Type Semantics: totalCounter 3014 ElementId: TBD6 3016 Status: current 3018 Reference: [this document]. 3020 10.1.7. mibObjectValueGauge 3022 A new Information Element "mibObjectValueGauge" must be allocated in 3023 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3025 Description: An IPFIX Information Element which denotes that a 3026 Gauge value from a MIB will be exported. The MIB Object 3027 Identifier ("mibObjectIdentifier") for this field MUST be exported 3028 in a MIB Field Option or via another means. This Information 3029 Element is used for MIB Objects with the Base Syntax of Gauge32. 3030 The value is encoded as per the standard IPFIX Abstract Data Type 3031 of unsigned64. This value will represent a non-negative integer, 3032 which may increase or decrease, but shall never exceed a maximum 3033 value, nor fall below a minimum value. 3035 Abstract Data Type: unsigned32 3037 Data Type Semantics: totalCounter 3039 ElementId: TBD7 3041 Status: current 3043 Reference: [this document]. 3045 10.1.8. mibObjectValueTime 3047 A new Information Element "mibObjectValueTime" must be allocated in 3048 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3050 Description: An IPFIX Information Element which denotes that a 3051 TimeTicks value from a MIB will be exported. The MIB Object 3052 Identifier ("mibObjectIdentifier") for this field MUST be exported 3053 in a MIB Field Option or via another means. This Information 3054 Element is used for MIB Objects with the Base Syntax of TimeTicks. 3055 The value is encoded as per the standard IPFIX Abstract Data Type 3056 of dateTimeMilliseconds. 3058 Abstract Data Type: dateTimeMilliseconds 3060 Data Type Semantics: default 3062 ElementId: TBD8 3064 Status: current 3066 Reference: [this document]. 3068 10.1.9. mibObjectValueUnsigned 3070 A new Information Element "mibObjectValueUnsigned" must be allocated 3071 in IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3073 Description: An IPFIX Information Element which denotes that an 3074 unsigned integer value from a MIB will be exported. The MIB 3075 Object Identifier ("mibObjectIdentifier") for this field MUST be 3076 exported in a MIB Field Option or via another means. This 3077 Information Element is used for MIB Objects with the Base Syntax 3078 of unsigned64 with RLE used as required. The value is encoded as 3079 per the standard IPFIX Abstract Data Type of unsigned64. 3081 Abstract Data Type: unsigned64 3083 Data Type Semantics: identifier 3085 ElementId: TBD9 3087 Status: current 3089 Reference: [this document]. 3091 10.1.10. mibObjectValueTable 3093 A new Information Element "mibObjectValueTable" must be allocated in 3094 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3096 Description: An IPFIX Information Element which denotes that a 3097 complete MIB 'SEQUENCE OF X' or conceptual table value from a MIB 3098 will be exported. The MIB Object Identifier 3099 ("mibObjectIdentifier") for this field MUST be exported in a MIB 3100 Field Option or via another means. This Information Element is 3101 used for MIB Objects with a SYNTAX of SEQUENCE OF. This is 3102 encoded as a basicList of "mibObjectValueSequence"s. The Field ID 3103 for the basicList MUST be TBD11. The mibObjectValueSequence MUST 3104 be of the same type/OID as specified in this MIB Object's syntax. 3106 Abstract Data Type: basicList 3108 Data Type Semantics: list 3110 ElementId: TBD10 3112 Status: current 3114 Reference: [this document]. 3116 10.1.11. mibObjectValueSequence 3118 A new Information Element "mibObjectValueSequence" must be allocated 3119 in IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3121 Description: An IPFIX Information Element which denotes that a MIB 3122 SEQUENCE or a row from a conceptual table value as defined in a 3123 MIB will be exported. The MIB Object Identifier 3124 ("mibObjectIdentifier") for this field MUST be exported in a MIB 3125 Field Option or via another means. This Information Element is 3126 used for MIB Objects with a SYNTAX of SEQUENCE. This is encoded 3127 as a subTemplateList of mibObjectValue Information Elements. The 3128 template specified in MUST be an Option Template and MUST include 3129 all the Objects listed in the INDEX clause as Scope fields. 3131 Abstract Data Type: subTemplateList 3133 Data Type Semantics: list 3135 ElementId: TBD11 3137 Status: current 3139 Reference: [this document]. 3141 10.1.12. mibSubIdentifier 3143 A new Information Element "mibSubIdentifier" must be allocated in 3144 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3146 Description: A non-negative sub-identifier. One Sub number from 3147 an Object Identifier (OID). Can be used to provide an index to a 3148 columnar object without fully exporting the details of the INDEX. 3150 Abstract Data Type: unsigned32 3152 Data Type Semantics: identifier 3154 ElementId: TBD12 3156 Status: current 3158 Reference: [this document]. 3160 10.2. New mibFieldOption Information Elements 3162 10.2.1. mibObjectIdentifier 3164 A new Information Element "mibObjectIdentifier" must be allocated in 3165 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3167 Description: An IPFIX Information Element which denotes that a MIB 3168 Object Identifier (MIB OID) is exported in the (Options) Template 3169 Record. The mibObjectIdentifier Information Element contains the 3170 OID assigned to the MIB object definition encoded as ASN.1/BER 3171 [BER] 3172 Abstract Data Type: octetArray 3174 Data Type Semantics: default 3176 ElementId: TBD13 3178 Status: current 3180 Reference: [this document]. 3182 10.2.2. mibIndexIndicator 3184 A new Information Element "mibIndexIndicator" must be allocated in 3185 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3187 Description: This set of bit fields is used for marking the 3188 Information Elements of a Data Record that serve as INDEX MIB 3189 Objects or Information Element for a mibField. Each bit 3190 represents an Information Element in the Data Record with the n-th 3191 bit representing the n-th Information Element. A bit set to value 3192 1 indicates that the corresponding Information Element is an index 3193 of the Columnar Object represented by the mibFieldValue. A bit 3194 set to value 0 indicates that this is not the case. If the Data 3195 Record contains more than 64 Information Elements, the 3196 corresponding Template SHOULD be designed such that all INDEX 3197 Fields are among the first 64 Information Elements, because the 3198 mibIndexIndicator only contains 64 bits. If the Data Record 3199 contains less than 64 Information Elements, then the extra bits in 3200 the mibIndexIndicator for which no corresponding Information 3201 Element exists MUST have the value 0. This Information Element 3202 may be exported with RLE. 3204 Abstract Data Type: unsigned64 3206 Data Type Semantics: flags 3208 ElementId: TBD14 3210 Status: current 3212 Reference: [this document]. 3214 10.2.3. mibCaptureTimeSemantics 3216 A new Information Element "mibCaptureTimeSemantics" must be allocated 3217 in IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3219 Description: Indicates when in the lifetime of the flow the MIB 3220 value was retrieved from SNMP for a mibObjectIdentifier. This is 3221 used to indicate if the value exported was collected from the MIB 3222 closer to flow creation or flow export time and will refer to the 3223 Timestamp fields included in the same record. This field SHOULD 3224 be used when exporting a mibObjectValue that specifies counters or 3225 statistics. 3227 If the OID could be sampled by SNMP prior to the IPFIX Metering 3228 Process or Exporting Process retrieving the value (i.e. the data 3229 is already stale) and it's important to know the exact SNMP 3230 sampling time, then an additional observationTime* element should 3231 be paired with the OID using structured data. Similarly, if 3232 different mibCaptureTimeSemantics apply to different mibObject 3233 elements within the flow record, then individual 3234 mibCaptureTimeSemantics should be paired with each OID using 3235 structured data. 3237 Values: 3239 1. undefined 3241 2. flow creation - The value for the MIB Object is captured from 3242 the MIB when the Flow is created 3244 3. flow end - The value for the MIB Object is captured from the 3245 MIB when the Flow ends 3247 4. flow export - The value for the MIB Object is captured from 3248 the MIB the Flow is being Exported 3250 5. average - The value for the MIB Object is an average of 3251 multiple captures from the MIB over the life of the Flow 3253 Abstract Data Type: unsigned8 3255 Data Type Semantics: identifier 3257 ElementId: TBD15 3259 Status: current 3261 Reference: [this document]. 3263 10.2.4. mibContextEngineID 3265 A new Information Element "mibContextEngineID" must be allocated in 3266 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3268 Description: A mibContextEngineID ( also known as snmpEngineID) 3269 that specifies the SNMP engine ID for a mib field being exported 3270 over IPFIX. Definition as per [RFC3411] section 3.3 3272 Abstract Data Type: octetArray 3274 Data Type Semantics: default 3276 ElementId: TBD16 3278 Status: current 3280 Reference: [this document]. 3282 10.2.5. mibContextName 3284 A new Information Element "mibContextName" must be allocated in 3285 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3287 Description: This Information Element denotes that a MIB Context 3288 Name is specified for a mib field being exported over IPFIX. 3289 Reference [RFC3411] section 3.3 3291 Abstract Data Type: string 3293 Data Type Semantics: default 3295 ElementId: TBD17 3297 Status: current 3299 Reference: [this document]. 3301 10.3. New mibType Information Elements 3303 10.3.1. mibObjectName 3305 A new Information Element "mibObjectName" must be allocated in IANA's 3306 IPFIX registry [IANA-IPFIX], with the following definition: 3308 Description: The name (called a descriptor in RFC 2578) of an 3309 object type definition. 3311 Abstract Data Type: string 3313 Data Type Semantics: default 3315 ElementId: TBD18 3317 Status: current 3319 Reference: [this document]. 3321 10.3.2. mibObjectDescription 3323 A new Information Element "mibObjectDescription" must be allocated in 3324 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3326 Description: The value of the DESCRIPTION clause of an MIB object 3327 type definition. 3329 Abstract Data Type: string 3331 Data Type Semantics: default 3333 ElementId: TBD19 3335 Status: current 3337 Reference: [this document]. 3339 10.3.3. mibObjectSyntax 3341 A new Information Element "mibObjectSyntax" must be allocated in 3342 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3344 Description: The value of the SYNTAX clause of an MIB object type 3345 definition. This will start with abstract data structure of the 3346 MIB object which may be a base type, the BITS construct, a Textual 3347 Convention, SEQUENCE OF or SEQUENCE. This may be followed by 3348 subtyping or enumeration for the object. [RFC2578] 3350 Abstract Data Type: string 3352 Data Type Semantics: default 3354 ElementId: TBD20 3356 Status: current 3358 Reference: [this document]. 3360 10.3.4. mibModuleName 3362 A new Information Element "mibModuleName" must be allocated in IANA's 3363 IPFIX registry [IANA-IPFIX], with the following definition: 3365 Description: The textual name of the MIB that defines a MIB OID 3366 Object. 3368 Abstract Data Type: string 3370 Data Type Semantics: default 3372 ElementId: TBD21 3374 Status: current 3376 Reference: [this document]. 3378 11. Acknowledgements 3380 The authors would like to thank Andrew Johnson for his collaboration 3381 on the first version of the draft, and to thank Andrew Feren and 3382 Brian Trammell for their detailed reviews. 3384 12. References 3386 12.1. Normative References 3388 [BER] International Organization for Standardization, 3389 "Information processing systems - Open Systems 3390 Interconnection - Specification of Basic Encoding Rules 3391 for Abstract Syntax Notation One (ASN.1),International 3392 Organization for Standardization. International Standard 3393 8825, December 1987", . 3395 [IANA-IPFIX] 3396 IANA, "IPFIX Information Elements registry", 3397 . 3399 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 3400 Requirement Levels", BCP 14, RFC 2119, March 1997. 3402 [RFC2578] McCloghrie, K., Ed., Perkins, D., Ed., and J. 3403 Schoenwaelder, Ed., "Structure of Management Information 3404 Version 2 (SMIv2)", STD 58, RFC 2578, April 1999. 3406 [RFC3411] Harrington, D., Presuhn, R., and B. Wijnen, "An 3407 Architecture for Describing Simple Network Management 3408 Protocol (SNMP) Management Frameworks", STD 62, RFC 3411, 3409 December 2002. 3411 [RFC4293] Routhier, S., "Management Information Base for the 3412 Internet Protocol (IP)", RFC 4293, April 2006. 3414 [RFC7011] Claise, B., Trammell, B., and P. Aitken, "Specification of 3415 the IP Flow Information Export (IPFIX) Protocol for the 3416 Exchange of Flow Information", STD 77, RFC 7011, September 3417 2013. 3419 [RFC7012] Claise, B. and B. Trammell, "Information Model for IP Flow 3420 Information Export (IPFIX)", RFC 7012, September 2013. 3422 12.2. Informative References 3424 [RFC2863] McCloghrie, K. and F. Kastenholz, "The Interfaces Group 3425 MIB", RFC 2863, June 2000. 3427 [RFC2982] Kavasseri, R., "Distributed Management Expression MIB", 3428 RFC 2982, October 2000. 3430 [RFC3444] Pras, A. and J. Schoenwaelder, "On the Difference between 3431 Information Models and Data Models", RFC 3444, January 3432 2003. 3434 [RFC4022] Raghunarayan, R., "Management Information Base for the 3435 Transmission Control Protocol (TCP)", RFC 4022, March 3436 2005. 3438 [RFC4750] Joyal, D., Galecki, P., Giacalone, S., Coltun, R., and F. 3439 Baker, "OSPF Version 2 Management Information Base", RFC 3440 4750, December 2006. 3442 [RFC5476] Claise, B., Johnson, A., and J. Quittek, "Packet Sampling 3443 (PSAMP) Protocol Specifications", RFC 5476, March 2009. 3445 [RFC5610] Boschi, E., Trammell, B., Mark, L., and T. Zseby, 3446 "Exporting Type Information for IP Flow Information Export 3447 (IPFIX) Information Elements", RFC 5610, July 2009. 3449 [RFC6313] Claise, B., Dhandapani, G., Aitken, P., and S. Yates, 3450 "Export of Structured Data in IP Flow Information Export 3451 (IPFIX)", RFC 6313, July 2011. 3453 Authors' Addresses 3455 Paul Aitken (editor) 3456 Cisco Systems, Inc. 3457 96 Commercial Quay 3458 Commercial Street 3459 Edinburgh EH6 6LX 3460 UK 3462 Phone: +44 131 561 3616 3463 Email: paitken@cisco.com 3465 Benoit Claise 3466 Cisco Systems, Inc. 3467 De Kleetlaan 6a b1 3468 Diegem 1813 3469 Belgium 3471 Phone: +32 2 704 5622 3472 Email: bclaise@cisco.com 3474 Srikar 3475 Cisco Systems, Inc. 3476 Mail Stop BGL13/3/, SEZ Unit, Cessna Business Park, Kadubeesanahalli 3477 Village Varthur Hobli, Sarjapur Marathalli Outer Ring Road 3478 Bangalore KARNATAKA 560 103 3479 IN 3481 Phone: +91 80 4426 3264 3482 Email: srikar@cisco.com 3484 Colin McDowall 3485 Cisco Systems, Inc. 3486 96 Commercial Quay 3487 Commercial Street 3488 Edinburgh EH6 6LX 3489 UK 3491 Phone: +44 131 561 3634 3492 Email: cmcdowal@cisco.com 3493 Juergen Schoenwaelder 3494 Jacobs University Bremen 3495 Campus Ring 1 3496 Bremen 28725 3497 Germany 3499 Phone: +49 421 200-3587 3500 Email: j.schoenwaelder@jacobs-university.de