idnits 2.17.1 draft-ietf-ipfix-mib-variable-export-10.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 (November 21, 2015) is 3078 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' -- Possible downref: Non-RFC (?) normative reference: ref. 'IANA-IPFIX-SDTS' -- Obsolete informational reference (is this intentional?): RFC 4960 (Obsoleted by RFC 9260) Summary: 0 errors (**), 0 flaws (~~), 2 warnings (==), 6 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Internet Engineering Task Force (IETF) P. Aitken, Ed. 3 Internet-Draft Brocade Communications Systems, Inc. 4 Intended status: Standards Track B. Claise 5 Expires: May 24, 2016 S. B S 6 Cisco Systems, Inc. 7 C. McDowall 8 Brocade Communications Systems, Inc. 9 J. Schoenwaelder 10 Jacobs University Bremen 11 November 21, 2015 13 Exporting MIB Variables using the IPFIX Protocol 14 draft-ietf-ipfix-mib-variable-export-10 16 Abstract 18 This document specifies a way to complement IPFIX Data Records with 19 Management Information Base (MIB) objects, avoiding the need to 20 define new IPFIX Information Elements for existing Management 21 Information Base objects that are already fully specified. 23 An IPFIX Options Template and method are specified, which are used to 24 export the extra information required to fully describe Simple 25 Network Management Protocol (SNMP) MIB objects in IPFIX. 27 Status of This Memo 29 This Internet-Draft is submitted in full conformance with the 30 provisions of BCP 78 and BCP 79. 32 Internet-Drafts are working documents of the Internet Engineering 33 Task Force (IETF). Note that other groups may also distribute 34 working documents as Internet-Drafts. The list of current Internet- 35 Drafts is at http://datatracker.ietf.org/drafts/current/. 37 Internet-Drafts are draft documents valid for a maximum of six months 38 and may be updated, replaced, or obsoleted by other documents at any 39 time. It is inappropriate to use Internet-Drafts as reference 40 material or to cite them other than as "work in progress." 42 This Internet-Draft will expire on May 24, 2016. 44 Copyright Notice 46 Copyright (c) 2015 IETF Trust and the persons identified as the 47 document authors. All rights reserved. 49 This document is subject to BCP 78 and the IETF Trust's Legal 50 Provisions Relating to IETF Documents 51 (http://trustee.ietf.org/license-info) in effect on the date of 52 publication of this document. Please review these documents 53 carefully, as they describe your rights and restrictions with respect 54 to this document. Code Components extracted from this document must 55 include Simplified BSD License text as described in Section 4.e of 56 the Trust Legal Provisions and are provided without warranty as 57 described in the Simplified BSD License. 59 Table of Contents 61 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 62 2. Motivation . . . . . . . . . . . . . . . . . . . . . . . . . 4 63 3. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 6 64 4. High Level Solution Overview . . . . . . . . . . . . . . . . 7 65 5. MIB Object Value Information Elements and the MIB Field 66 Options Template . . . . . . . . . . . . . . . . . . . . . . 8 67 5.1. MIB Field Options Architecture . . . . . . . . . . . . . 9 68 5.2. IPFIX and MIB Data Model . . . . . . . . . . . . . . . . 12 69 5.3. MIB Field Options - Specifications and Required Fields . 13 70 5.3.1. MIB Field Options Template . . . . . . . . . . . . . 14 71 5.3.2. MIB Type Options Template . . . . . . . . . . . . . . 14 72 5.4. MIB Field Options Template Formats . . . . . . . . . . . 15 73 5.4.1. Data Template containing a mibObject Field . . . . . 15 74 5.4.2. MIB Field Options Template . . . . . . . . . . . . . 16 75 5.4.3. MIB Field Options Data Records . . . . . . . . . . . 18 76 5.4.4. Options Template containing a mibObject Field . . . . 19 77 5.4.5. MIB Field Options Template with Semantics Fields . . 20 78 5.4.6. MIB Field Options Template with extra MIB Object 79 Details . . . . . . . . . . . . . . . . . . . . . . . 21 80 5.5. Use of field order in the MIB Field Option template . . . 24 81 5.6. Identifying the SNMP Context . . . . . . . . . . . . . . 24 82 5.7. Template Management . . . . . . . . . . . . . . . . . . . 25 83 5.7.1. Large Messages . . . . . . . . . . . . . . . . . . . 25 84 5.7.2. Template Withdrawal and Reuse . . . . . . . . . . . . 26 85 5.8. Exporting Conceptual Rows and Tables . . . . . . . . . . 26 86 5.8.1. Exporting Conceptual Rows - indexing . . . . . . . . 26 87 5.8.2. Exporting Conceptual Rows - mibObjectValueRow . . . . 27 88 5.8.3. Exporting Conceptual Rows - Augments . . . . . . . . 33 89 5.8.4. Exporting Conceptual Tables - mibObjectValueTable . . 34 90 5.8.5. Exporting Columnar Objects - using mibIndexIndicator 35 91 6. Example Use Cases . . . . . . . . . . . . . . . . . . . . . . 36 92 6.1. Non Columnar MIB Object: Established TCP Connections . . 37 93 6.2. Enterprise Specific MIB Object: Detailing CPU Load 94 History . . . . . . . . . . . . . . . . . . . . . . . . . 40 95 6.3. Exporting a Conceptual Row: The OSPF Neighbor Row . . . . 43 96 6.4. Exporting Augmented Conceptual Row: The IF-MIB id to name 97 mapping . . . . . . . . . . . . . . . . . . . . . . . . . 47 98 6.5. Exporting a Columnar Object: The ipIfStatsInForwDatagrams 51 99 6.6. Exporting a Columnar Object indexed by IEs: ifOutQLen . . 55 100 6.7. Exporting With Multiple Contexts: The OSPF Neighbor Row 101 Revisited . . . . . . . . . . . . . . . . . . . . . . . . 59 102 7. Configuration Considerations . . . . . . . . . . . . . . . . 62 103 8. The Collecting Process's Side . . . . . . . . . . . . . . . . 62 104 9. Applicability . . . . . . . . . . . . . . . . . . . . . . . . 63 105 10. Security Considerations . . . . . . . . . . . . . . . . . . . 63 106 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 64 107 11.1. New IPFIX Semantics . . . . . . . . . . . . . . . . . . 64 108 11.1.1. snmpCounter . . . . . . . . . . . . . . . . . . . . 64 109 11.1.2. snmpGauge . . . . . . . . . . . . . . . . . . . . . 64 110 11.2. New IPFIX Information Elements . . . . . . . . . . . . . 65 111 11.2.1. New MIB Value Information Elements . . . . . . . . . 65 112 11.2.2. New MIB Field Options Information Elements . . . . . 71 113 11.2.3. New MIB Type Information Elements . . . . . . . . . 75 114 12. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 76 115 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 76 116 13.1. Normative References . . . . . . . . . . . . . . . . . . 76 117 13.2. Informative References . . . . . . . . . . . . . . . . . 78 118 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 79 120 1. Introduction 122 There is growing interest in using IPFIX as a push mechanism for 123 exporting management information. Using a push protocol such as 124 IPFIX instead of a polling protocol like SNMP is especially 125 interesting in situations where large chunks of repetitive data need 126 to be exported periodically. 128 While initially targeted at different problems, there is a large 129 parallel between the information transported via IPFIX and SNMP. 130 Furthermore, certain Management Information Base (MIB) objects are 131 highly relevant to flows as they are understood today. For example, 132 in the IPFIX information model [IANA-IPFIX], Information Elements 133 coming from the SNMP world have already been specified, e.g., 134 ingressInterface and egressInterface both refer to the ifIndex 135 defined in [RFC2863]. 137 In particular the Management Information Base was designed as a 138 separate system of definitions which opens up the possibility of 139 exporting Objects defined via the MIB over other protocols. 141 Rather than mapping existing MIB objects to IPFIX Information 142 Elements on a case by case basis, it would be advantageous to enable 143 the export of any existing or future MIB objects as part of an IPFIX 144 Data Record. This way, the duplication of data models [RFC3444], 145 both as SMIv2 MIB objects and IPFIX Information Elements, out of the 146 same information model [RFC3444] would be avoided. 148 Therefore the primary goals of this document are: 150 o to specify a way to complement IPFIX Data Records with Management 151 Information Base (MIB) objects; 153 o to avoid the need to define new IPFIX Information Elements for 154 existing Management Information Base objects that are already 155 fully specified; 157 o to allow the correlation of SNMP and IPFIX sourced data by 158 exporting them together; 160 o to allow SNMP push data from SNMP-only devices to be more easily 161 integrated into IPFIX based collection infrastructures. 163 2. Motivation 165 The intended scope of this work is the addition of MIB variable(s) to 166 IPFIX Information Elements in Data Records, in order to complement 167 the Records with useful and already standardized information. 168 Special consideration is given to the case of an existing Template 169 Record which needs to be augmented with some MIB variables whose 170 index is already present in the Template Record as an IPFIX 171 Information Element. For example a 7-tuple Record containing the 172 ingressInterface Information Element, which needs to be augmented by 173 interface counters [RFC2863] which are indexed by the respective 174 ingressInterface values which are already contained in the Data 175 Records. See Section 3 for terminology definitions. 177 Many Data Records contain the ingressInterface and/or the 178 egressInterface Information Elements. These Information Elements 179 carry an ifIndex value, a MIB object defined in [RFC2863]. In order 180 to retrieve additional information about the identified interface, a 181 Collector could simply poll relevant objects from the device running 182 the Exporter via SNMP. However, that approach has several problems: 184 o It requires implementing a mediation function between two data 185 models, i.e., MIB objects and IPFIX Information Elements. 187 o Confirming the validity of simple mappings (e.g., ifIndex to 188 ifName) requires either checking on a regular basis that the 189 Exporter's network management system did not reload, or imposing 190 ifIndex persistence across an Exporter's reload. 192 o Synchronization problems occur since counters carried in Data 193 Records and counters carried in SNMP messages are retrieved from 194 the Exporter at different points in time and thus cannot be 195 correlated. In the best case, assuming very tight integration of 196 an IPFIX Collector with an SNMP polling engine, SNMP data is 197 retrieved shortly after Data Records have been received, which 198 implies a delay of the sum of the active or inactive timeouts (if 199 not null) plus the time to export the Data Record to the 200 Collector. If, however, the SNMP data is retrieved by a generic 201 Network Management Station (NMS) polling interface statistics, 202 then the time lag between IPFIX counters and SNMP counters can be 203 significantly higher. See [RFC5470] section 5.1.1. "Flow 204 Expiration" for details of active and inactive timeouts. 206 This document does not specify how to carry SNMP notifications in 207 IPFIX, even if the specifications in this document could potentially 208 allow this. 210 Since IPFIX is a push mechanism, initiated from the Exporter with no 211 acknowledgment method, this specification does not provide the 212 ability to execute configuration changes. 214 The Distributed Management Expression MIB [RFC2982], which is a 215 mechanism to create new MIB variables based on the content of 216 existing ones, could also be advantageous in the context of this 217 specification. Indeed, newly created MIB objects (for example, the 218 link utilization MIB variable), created with the Distributed 219 Management Expression MIB [RFC2982] could nicely complement Data 220 Records. 222 Another advantage of exporting MIB objects via IPFIX is that IPFIX 223 would benefit from an extended series of types to be exported. The 224 simple and application-wide data types specified in SMIv2 [RFC2578], 225 along with new Textual Conventions, can be exported within IPFIX and 226 then decoded in the Collector. However, since a Textual Convention 227 can contain almost any name, this document does not extend the 228 existing informationElementDataType registry [IANA-IPFIX]. 230 The overall architectural model is depicted in Figure 1. The IPFIX 231 Exporter accesses the device's instrumentation, which follows the 232 specifications contained in MIB modules. Other management interfaces 233 such as NETCONF or the device's Command Line Interface (CLI) may 234 provide access to the same instrumentation. 236 +------+ +-------+ +.........+ +.....+ 237 | SNMP | | IPFIX | : NETCONF : : CLI : 238 +------+ +-------+ +.........+ +.....+ 239 | | | | 240 +--------------------------------------------+ 241 | Instrumentation (specified in MIB modules) | 242 +--------------------------------------------+ 244 Figure 1: Architectural Model 246 3. Terminology 248 IPFIX-specific terminology (Information Element, Template, Template 249 Record, Options Template Record, Template Set, Collector, Exporter, 250 Data Record, etc.) used in this document is defined in Section 2 of 251 [RFC7011]. As in [RFC7011], these IPFIX-specific terms have the 252 first letter of a word capitalized. 254 This document prefers the more generic term "Data Record" (as opposed 255 to "Flow Record") in relation to the export of MIB objects. 257 Object Identifier (MIB OID) 259 An Object Identifier value is an ordered list of non-negative 260 numbers. For the SMIv2, each number in the list is referred to as 261 a sub-identifier. There are at most 128 sub-identifiers in a 262 value, and each sub-identifier has a maximum value of 2^32 - 1 263 (4294967295 decimal). See [RFC2578] Section 3.5. 265 MIB Object Identifier Information Element 267 An IPFIX Information Element ("mibObjectIdentifier") which denotes 268 that a MIB Object Identifier (MIB OID) is exported in the 269 (Options) Data Record. See Section 11.2.2.1. 271 SMIv2 Terminology 273 The key words "MIB Module", "MIB Object", "INDEX", "AUGMENTS", 274 "textual convention", "columnar object", "conceptual row", and 275 "conceptual table" in this document are to be interpreted as 276 described in SMIv2 [RFC2578] 278 SMIv2 SYNTAX 280 The SYNTAX key words "INTEGER", "Integer32", "OCTET STRING", 281 "OBJECT IDENTIFIER", "BITS construct", "IpAddress", "Counter32", 282 "Gauge32", "TimeTicks", "Opaque", "Counter64", "Unsigned32", 283 "SEQUENCE", and "SEQUENCE OF" in this document are to be 284 interpreted as described in SMIv2 [RFC2578]. 286 SNMP Context Terminology 288 The key words "snmpEngineID", "contextEngineID", and "contextName" 289 in this document are to be interpreted as described in [RFC3411] 291 mibObjectValue Information Elements 293 Refers to any and all of the mibObjectValue Information Elements 294 generically. Any restriction or requirement in this document that 295 refers to mibObjectValue applies to the following Information 296 Elements defined in Section 11.2.1: mibObjectValueInteger, 297 mibObjectValueOctetString, mibObjectValueOID, 298 mibObjectValueIPAddress, mibObjectValueBITS, 299 mibObjectValueCounter, mibObjectValueGauge, 300 mibObjectValueTimeTicks, mibObjectValueUnsigned, 301 mibObjectValueTable, and mibObjectValueRow. 303 IE 305 Used as a shorthand for "Information Element" [RFC7011] in the 306 figures. 308 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 309 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 310 "OPTIONAL" in this document are to be interpreted as described in 311 [RFC2119]. 313 4. High Level Solution Overview 315 This document specifies a method for creating IPFIX Options Templates 316 that are used to export the extra data required to describe MIB 317 variables (see Section 5.1). 319 This allows IPFIX Templates to contain any combination of fields 320 defined by traditional IPFIX Information Element(s) and/or MIB Object 321 Identifier(s). The MIB Object Identifiers can reference either non- 322 columnar or columnar MIB object(s). Enterprise-specific MIB Object 323 Identifiers are also supported. 325 This document also defines two standard IPFIX Options Templates (see 326 Section 5.3) that are used as part of the mechanism to export MIB 327 object meta data: 329 o MIB Field Options Template (Section 5.3.1) 330 o MIB Type Options Template (Section 5.3.2) 332 This document defines three classes of new IPFIX Information 333 Elements. These are used to export values from the MIB, export 334 required Object Identifier information, and optionally export type 335 data from a MIB Module: 337 o MIB Object Value Information Elements (Section 11.2.1) 339 o MIB Field Options Information Elements (Section 11.2.2) 341 o MIB Type Information Information Elements (Section 11.2.3) 343 Additionally, this document defines two new IPFIX semantics which are 344 required for the new Information Elements: 346 o snmpCounter (Section 11.1.1) 348 o snmpGauge (Section 11.1.2) 350 Two common types defined in the SMIv2 are conceptual rows and 351 conceptual tables. It is desirable that exporting a complete or 352 partial conceptual row is simple and efficient. This is accomplished 353 by using IPFIX Structured Data [RFC6313] to reduce repetition of 354 Object Identifier and indexing data. 356 To allow the use of individual columnar objects that make up a 357 conceptual row, a method is also specified to detail that a MIB 358 object is indexed by other fields in the same Data Flow. For an 359 individually indexed mibObjectValue the INDEX fields are sent as any 360 of the other fields in the same Record, and may be mibObjectValue 361 Information Element(s) or other existing Information Element(s). 363 Also, in some cases Exporters may not want (or be able) to export the 364 full information on how the MIB objects being exported are indexed. 365 This may be because the MIB object is being used purely as type 366 information or the Exporting Process may not have knowledge of the 367 indexing required. Therefore providing index information for 368 Columnar Objects is optional. 370 5. MIB Object Value Information Elements and the MIB Field Options 371 Template 373 This document defines new mibObjectValue Information Elements (in 374 Section 11.2.1). These are used to export MIB objects as part of 375 standard IPFIX Templates. The mibObjectValue Information Elements 376 contain the actual data values. 378 The Metering or Exporting Process may extract the data values for 379 mibObjectValue Information Elements from a Process that resides on 380 the same device or may capture or create the data required to match 381 the definition of the MIB object. In particular exporting a value of 382 a MIB object defined in a certain MIB module does not imply that the 383 SNMP process on the device supports that MIB module. 385 The main issue that arises from exporting values of MIB objects in 386 IPFIX is that MIB Object Identifiers do not fit into the standard 387 IPFIX Template format [RFC7011], as this only provides a 16-bit 388 Information Element identifier. 390 The values of a MIB object could be exported using a MIB specific 391 Information Element without providing any Object Identifiers. 392 However, without exporting the actual MIB OID the full type of the 393 data would be unknown and every Field containing MIB object data 394 would appear identical. Without knowing which OID the contents of a 395 field map to, the data would be incomprehensible to a Collector. 397 For the values in the mibObjectValue Information Elements to be 398 understandable, more meta information about the mibObjectValue 399 Information Elements must be sent as part of the IPFIX export. The 400 required minimum to understand each field is the OID as defined in 401 Section 5.3.1. 403 One approach to this problem would be to extend the IPFIX standard to 404 allow extended field specifiers so metadata about fields can be 405 included in Data Templates. This would however require a new version 406 of the IPFIX standard which may not be backwards compatible. 407 However, future versions of IPFIX may export the required MIB 408 metadata as part of newly defined IPFIX Set versions. 410 This document defines a MIB Field Options Template to export the 411 extra meta information required for mibObjectValue Information 412 Elements. This is a standard IPFIX Options Template Set which 413 includes a minimum set of required fields (see Section 5.3.1) and may 414 include extra fields to provide more meta information about one of 415 the mibObjectValue Information Elements. 417 The MIB Field Options export is used to tell the Collecting process: 418 for the following (template, field) the MIB Object type definition 419 has this OID. 421 5.1. MIB Field Options Architecture 423 Four IPFIX Sets are used together to export a Flow which contains 424 mibObjectValue Information Elements. These are: 426 1. A Template Set which includes the mibObjectValue Information 427 Element. 429 The Template Set informs the Collector that a MIB object value 430 of length N will be exported. This Set may also be an Options 431 Template Set. 433 2. A MIB Field Options Template Set 435 The MIB Field Options Template describes which metadata will 436 be sent for each mibObjectValue Information Element being 437 exported. 439 3. A MIB Field Options Data Set 441 The MIB Field Options Data Set includes the metadata for each 442 MIB object (i.e., the mibObjectIdentifier or 443 mibSubIdentifier). The metadata about the mibObjectValue 444 Information Elements only needs to be resent as per normal 445 Template refreshes or resends. 447 4. A Data Set. 449 The Data Set contains only the actual data extracted from the 450 MIB or described by the MIB module. 452 Figure 2 shows the IPFIX Message structure for a MIB Field in a 453 Template Set. 455 +-------------------------------------------------------+ 456 | IPFIX Message Header | 457 +-------------------------------------------------------+ 458 | Template Set (A) | 459 +-------------------------------------------------------+ 460 | Options Template Set (B) (MIB Field Options Template) | 461 +-------------------------------------------------------+ 462 | Data Set (B) (MIB Field Options Data) | 463 +-------------------------------------------------------+ 464 | Data Set (A) | 465 +-------------------------------------------------------+ 467 Figure 2: IPFIX Message structure for a MIB Field in a Template Set 469 The MIB Field Options Template defines MIB Field Options Data 470 Records. The MIB Field Options Data Records annotate the Data 471 Template with mibObjectValue metadata. Together the Data Template 472 and MIB Field Options Data Records define the Data Records that will 473 be exported. 475 The Data Records (A) have a dependency on the two Templates and the 476 MIB Field Options Data Records. 478 More Data Sets that use the same mibObjectValue Information Element 479 can then be send in subsequent packets. 481 Figure 3 shows the relationships between the Sets discussed above. 483 +------------------------------+ 484 |MIB Field Options Template (B)| 485 +------------------------------+ 486 |(templateId, elementIndex) | 487 +------------------------------+ 488 | mibOID | 489 +------------------------------+ 490 | 491 | Defines 492 V 493 +------------------------+ +--------------------------+ 494 | Data Template (A) | |MIB Field Options Data (B)| 495 +------------------------+ +--------------------------+ 496 |Field 0 - regular IE | | | 497 +------------------------+ +--------------------------+ 498 |Field 1-mibObjectValue | <----------- | (X,1) = OID | 499 +------------------------+ Annotates +--------------------------+ 500 |Field 2-mibObjectValue | <----------- | (X,2) = OID | 501 +------------------------+ +--------------------------+ 502 | | 503 |------------------------------------/ 504 | 505 | Defines 506 | 507 V 508 +------------------------+ 509 | Data Records (A) | 510 |------------------------| 511 | Field 0 data | 512 +------------------------+ 513 | Field 1 data | 514 +------------------------+ 515 | Field 2 data | 516 +------------------------+ 518 Figure 3: Relationships between Sets 520 5.2. IPFIX and MIB Data Model 522 [RFC2578] specifies that the SYNTAX clause for a MIB object defines 523 the abstract data structure of an Object and what it must contain: 525 "The data structure must be one of the following: a base type, the 526 BITS construct, or a textual convention. (SEQUENCE OF and SEQUENCE 527 are also possible for conceptual tables, see section 7.1.12)." (From 528 [RFC2578] section 7.1). 530 For each of the SYNTAX clause options this document specifies exactly 531 which mibObjectValue Information Element to use. 533 If a MIB object to be exported is a Textual Convention, the 534 definition of the Textual Convention must be consulted and the SYNTAX 535 clause used to determine the correct base type. This may recurse if 536 the Textual Convention is defined in terms of another Textual 537 Convention but this should end at a base type. 539 If the SYNTAX clause contains a Textual Convention or Subtyping the 540 mibObjectSyntax Information Element SHOULD be used to export this 541 detail to the Collecting Process. 543 The Options for the SYNTAX are then mapped as follows: 545 +-----------------+---------------------+---------------------------+ 546 | RFC2578 Section | SYNTAX | mibObjectValue IE | 547 +-----------------+---------------------+---------------------------+ 548 | 7.1.1 | INTEGER/Integer32 | mibObjectValueInteger | 549 | 7.1.2 | OCTET STRING | mibObjectValueOctetString | 550 | 7.1.3 | OBJECT IDENTIFIER | mibObjectValueOID | 551 | 7.1.4 | The BITS construct | mibObjectValueBits | 552 | 7.1.5 | IpAddress | mibObjectValueIPAddress | 553 | 7.1.6 | Counter32 | mibObjectValueCounter | 554 | 7.1.7 | Gauge32 | mibObjectValueGauge | 555 | 7.1.8 | TimeTicks | mibObjectValueTimeTicks | 556 | 7.1.9 | Opaque | mibObjectValueOctetString | 557 | 7.1.10 | Counter64 | mibObjectValueCounter | 558 | 7.1.11 | Unsigned32 | mibObjectValueUnsigned | 559 | 7.1.12 | SEQUENCE | mibObjectValueRow or | 560 | | | mibObjectValueTable | 561 +-----------------+---------------------+---------------------------+ 563 Table 1: SMIv2 SYNTAX to mibObjectValue types 565 Values are encoded as per the standard IPFIX encoding of Abstract 566 Data Types. The only new encoding reference in this document is that 567 Object Identifiers (OID) will be encoded as per ASN.1/BER [BER] in an 568 octetArray. 570 The mibObjectValue and mibObjectIdentifier Information Elements are 571 standard IPFIX fields. Therefore the E bit of the mibObjectValue or 572 mibObjectIdentifier Information Elements is set to "0". 574 The MIB object being exported may be defined in an enterprise- 575 specific MIB module but the Information Elements defined in this 576 standard are still exported with the E bit set to "0". The OID 577 exported encodes that the MIB object was defined in a enterprise- 578 specific MIB Module. 580 5.3. MIB Field Options - Specifications and Required Fields 582 For each mibObjectValue Information Element that is defined in an 583 IPFIX Template, a MIB Field Options Data Record will be exported that 584 provides the required minimum information to define the MIB object 585 that is being exported (see Section 5.3.1). 587 The MIB Field Options Data Records are defined in a template referred 588 to in this document as a MIB Field Options Template with the format 589 specified in Section 5.4. 591 The MIB Field Options Template and MIB Field Options Data Records 592 MUST be exported in the same IPFIX Message as any Template that is 593 using a mibObjectValue Information Element. Note that this places an 594 implicit size constraint on the export. 596 This whole set of Templates and MIB Field Options Data Records MUST 597 all be exported prior to the corresponding Data Records which depend 598 upon them. i.e., the export order MUST be: 600 1. Data Template for mibObjectValue Information Elements (Set ID 2) 602 2. MIB Field Options Template (Set ID 3) 604 3. MIB Field Options Data Records (Set ID >= 256) 606 4. MIB Object Value Data Records (Set ID >= 256) 608 Note that the ID of an identical MIB Field Options Template which has 609 already been exported MAY be reused without exporting the Template 610 again. 612 IPFIX Set IDs are defined in section 3.3.2 of [RFC7011]. A value of 613 2 indicates a Template Set, a value of 3 indicates an Options 614 Template Set, and values 256 and above indicate Data Sets. 616 5.3.1. MIB Field Options Template 618 Three fields are REQUIRED to unambiguously export a standalone 619 mibObjectValue Information Element with a MIB Field Options Template: 621 o (scope) templateId [IANA-IPFIX] 623 o (scope) informationElementIndex [IANA-IPFIX] 625 o mibObjectIdentifier (Section 11.2.2.1) or mibSubIdentifier 626 (Section 11.2.2.2) 628 These are the minimum fields required in a MIB Field Options Template 629 (see Section 5.4.2). 631 The mibObjectIdentifier is used to provide the OID for all 632 mibObjectValue Information Elements exported except for when 633 Structured Data is being used to export a conceptual row (see 634 Section 5.8.2). 636 While the following are optional, they are nevertheless RECOMMENDED 637 in certain circumstances as described in the referenced sections: 639 o mibCaptureTimeSemantics 640 (discussed in Section 5.4.5; IE defined in Section 11.2.2.4) 642 o mibIndexIndicator 643 (discussed in Section 5.8.5; IE defined in Section 11.2.2.3) 645 o mibContextEngineID 646 (discussed in Section 5.6; IE defined in Section 11.2.2.5) 648 o mibContextName 649 (discussed in Section 5.6; IE defined in Section 11.2.2.6) 651 5.3.2. MIB Type Options Template 653 There are also fields that provide type information from a MIB object 654 definition that MAY be exported to a Collecting Process. 656 Type information is statically defined in a MIB module; it is not 657 expected to change. However, the additional information about the 658 MIB object may help a Collecting Process that does not have access to 659 the MIB module. 661 To export a MIB Type Options Template, the mibObjectIdentifier is 662 RECOMMENDED as a Scope Field so that it matches the MIB Field Options 663 Template. Any combination of the other MIB Type fields may be 664 included. 666 o (scope) mibObjectIdentifier (see Section 11.2.2.1) 668 o mibObjectName (see Section 11.2.3.1) 670 o mibObjectDescription (see Section 11.2.3.2) 672 o mibObjectSyntax (see Section 11.2.3.3) 674 o mibModuleName (see Section 11.2.3.4) 676 5.4. MIB Field Options Template Formats 678 5.4.1. Data Template containing a mibObject Field 680 The Template Record format of a Template that uses a mibObjectValue 681 Information Element is identical to the standard IPFIX format as 682 defined in [RFC7011], so a field using a mibObjectValue Information 683 Element is specified using standard IPFIX Field Specifiers as in 684 [RFC7011]. 686 The only extra requirement on a Template Record using mibObjectValue 687 Information Element is that it MUST export the required metadata 688 specified for EACH mibObjectValue Information Element (see 689 Section 5.3.1). 691 If Multiple MIB Field Options Data Records that refer to a 692 mibObjectValue are received the latest MUST be used. This matches 693 the expected behavior of IPFIX Templates. 695 There is a one to one mapping between each mibObjectValue Information 696 Element and a MIB Field Options Data Record. 698 A MIB Field Options Template and corresponding Data Record MUST be 699 exported to provide the minimum required metadata. 701 Figure 4 shows an IPFIX Template Set using a mibObjectValue 702 Information Element. 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 = 16 | 708 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 709 | Template ID | Field Count = 2 | 710 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 711 |0| IE = Existing IPFIX Field | Field Length | 712 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 713 |0| IE = | Field Length (MIB) | 714 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 716 Figure 4: IPFIX Template Set using mibObjectValue Information Element 718 Where: 720 722 One of the mibObjectValue IPFIX Information Elements that 723 denotes that a MIB object data (i.e., the value of a MIB 724 object) will be exported in the (Options) Template Record. 726 This could be any one of the mibObjectValue Information 727 Elements defined in Section 11.2.1: mibObjectValueInteger, 728 mibObjectValueOctetString, mibObjectValueOID, 729 mibObjectValueIPAddress, mibObjectValueBITS, 730 mibObjectValueCounter, mibObjectValueGauge, 731 mibObjectValueTimeTicks, mibObjectValueUnsigned, 732 mibObjectValueTable, and mibObjectValueRow. 734 When a mibObjectValue Information Element is used, the MIB 735 Object Identifier ("mibObjectIdentifier") MUST be exported via 736 a MIB Field Options or by other means. See Section 5.3.1. 738 Field Length (MIB) 740 The length of the encoded MIB object data in the corresponding 741 Data Records, in octets. The definition is as [RFC7011]. Note 742 that the Field Length can be expressed using reduced size 743 encoding per [RFC7011]. Note that the Field Length may be 744 encoded using variable-length encoding per [RFC7011]. 746 5.4.2. MIB Field Options Template 748 The MIB Field Options Template is a Standard Options Template which 749 defines the Fields that will be exported to provide enough metadata 750 about a mibObjectValue Information Element so that the Collector can 751 tie the data values in the mibObjectValue Information Element back to 752 the definition of the MIB object. 754 All MIB Field Options Templates contain the fields as specified in 755 Section 5.3.1. 757 Figure 5 shows the required fields to export a mibObjectIdentifier 758 for the MIB Field Options Template format. 760 0 1 2 3 761 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 762 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 763 | Set ID = 3 | Length = 22 | 764 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 765 | Template ID | Field Count = 3 | 766 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 767 | Scope Field Count = 2 |0| IE = templateId | 768 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 769 | Field Length = 2 |0| IE = informationElementIndex| 770 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 771 | Field Length = 2 |0| IE = mibObjectIdentifier | 772 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 773 | Field Length = 65535 | 774 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 776 Figure 5: MIB Field Options Template Format - Required Fields 778 Where: 780 templateId 782 The first Scope Field is an IPFIX Information Element which 783 denotes that a Template Identifier will be exported as part of 784 the MIB Field Options Data Record. This Template Identifier 785 paired with an index into that template, the 786 "informationElementIndex" field, uniquely references one 787 mibObjectValue Information Element being exported. 789 informationElementIndex 791 The second Scope Field is an IPFIX Information Element which 792 denotes a zero based index into the fields defined by a 793 Template. When paired with a "templateId" the Record uniquely 794 references one mibObjectValue Information Element being 795 exported. 797 mibObjectIdentifier 798 An IPFIX Information Element which denotes the a MIB Object 799 Identifier for the mibObjectValue Information Element exported 800 in the (Options) Template Record. 802 When a MIB Object Value Information Element is used, the MIB 803 Object Identifier MUST be specified in the MIB Field Options 804 Template Record or specified by other means. 806 The Object Identifier is encoded in the IPFIX data record in 807 ASN.1/BER [BER] format. 809 Variable-length encoding SHOULD be used with the 810 mibObjectIdentifier so that multiple different length MIB OIDs 811 can be exported efficiently. This will also allow reuse of the 812 MIB Field Options Template. 814 Variable-length encoding is indicated by the Field Length value 815 of 65535 per sections 3.2 and 7 of [RFC7011]. The RECOMMENDED 816 use of variable length encoding for mibObjectIdentifier fields 817 is indicated in subsequent figures by placing 65535 in the 818 relevant length fields. 820 5.4.3. MIB Field Options Data Records 822 The MIB Field Options Data Records conform to the Template 823 Specification in the MIB Field Options Template. There may be 824 multiple MIB Field Options Data Records exported. 826 The Collecting Process MUST store all received MIB Field Options Data 827 information for the duration of each Transport Session, because the 828 Collecting Process will need to refer to the extra meta information 829 to fully decode each mibObjectValue Information Element. 831 Figure 6 shows the format of the exported MIB Field Options Data 832 Record detailing the metadata that will be exported to match the 833 Template in Figure 5. 835 0 1 2 3 836 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 837 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 838 | Set ID | Length = N | 839 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 840 | templateId | informationElementIndex | 841 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 842 | VLEN | mibObjectIdentifier ... | 843 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 844 | ... mibObjectIdentifier continued ... | 845 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 846 | templateId | informationElementIndex | 847 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 848 | VLEN | mibObjectIdentifier ... | 849 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 850 | ... mibObjectIdentifier continued ... | 851 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 853 Figure 6: Format of MIB Field Options Data Record 855 5.4.4. Options Template containing a mibObject Field 857 The Options Template Record format of a Template that uses a 858 mibObjectValue Information Element is identical to the standard 859 format as defined in [RFC7011]. The mibObjectValue Information 860 Element is specified using standard Field Specifiers as in [RFC7011]. 862 A mibObjectValue Information Element can be either a Scope Field or a 863 non-Scope Field in an Options Template Record. 865 The only extra requirement on a Options Template Record using 866 mibObjectValue Information Element is that it MUST export the 867 required metadata specified in Section 5.3.1 for EACH mibObjectValue 868 Information Element. 870 An IPFIX Options Template Record MUST export a MIB Field Options 871 Template and Data Record to provide the minimum required metadata for 872 each mibObjectValue Information Element. 874 Figure 7 shows an IPFIX Options Template Set using an existing IPFIX 875 Field as a Scope Field and with a mibObjectValueInteger IE as a non- 876 Scope Field, while Figure 8 shows an IPFIX Options Template Set using 877 a mibObjectValueInteger IE as a Scope Field with an existing IPFIX 878 Field as a non-Scope Field. 880 0 1 2 3 881 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 882 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 883 | Set ID = 3 | Length = 18 | 884 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 885 | Template ID | Field Count = 2 | 886 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 887 | Scope Field Count = 1 |0| IE = Existing IPFIX Field | 888 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 889 | Field Length |0| IE = mibObjectValueInteger | 890 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 891 | Field Length | 892 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 894 Figure 7: IPFIX Options Template Set using a Non Scope 895 mibObjectValueInteger Field 897 0 1 2 3 898 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 899 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 900 | Set ID = 3 | Length = 18 | 901 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 902 | Template ID | Field Count = 2 | 903 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 904 | Scope Field Count = 1 |0| IE = mibObjectValueInteger | 905 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 906 | Field Length |0| IE = Existing IPFIX Field | 907 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 908 | Field Length | 909 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 911 Figure 8: IPFIX Options Template Set using a Scope 912 mibObjectValueInteger Field 914 5.4.5. MIB Field Options Template with Semantics Fields 916 A MIB Field Options Template MAY specify that extra Information 917 Elements will be exported to record how the mibObjectValue was 918 collected. 920 Alternatively, one of the existing IPFIX observationTime* elements 921 [IANA-IPFIX] may be exported to specify exactly when the value was 922 collected. 924 Figure 9 shows the MIB Field Options Template for a non-columnar 925 Field with Semantic Data. 927 0 1 2 3 928 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 929 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 930 | Set ID = 3 | Length = 26 | 931 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 932 | Template ID | Field Count = 4 | 933 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 934 | Scope Field Count = 2 |0| IE = templateId | 935 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 936 | Field Length = 2 |0| IE = informationElementIndex| 937 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 938 | Field Length = 2 |0| IE = mibObjectIdentifier | 939 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 940 | Field Length = 65535 |0| IE = mibCaptureTimeSemantics| 941 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 942 | Field Length = 1 | 943 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 945 Figure 9: MIB Field Options Template for a non-indexed Field with 946 Semantic Data 948 Where: 950 mibObjectIdentifier 952 Note the use of variable length encoding for this field. 954 mibCaptureTimeSemantics 956 The MIB Capture Time Semantics IPFIX Information Element, as 957 defined in Section 11.2.2.4. 959 It is RECOMMENDED to include this field when exporting a 960 mibObjectValue Information Element that specifies counters or 961 statistics, in particular for situations with long lived Flows. 963 5.4.6. MIB Field Options Template with extra MIB Object Details 965 The OID exported within the mibObjectIdentifier IPFIX Information 966 Element provides a OID reference to a MIB object type definition that 967 will fully describe the MIB object data being Exported. 969 However an Exported Process MAY decide to include some extra fields 970 to more fully describe the MIB Object that is being exported with a 971 mibObjectValue Information Element. 973 This can be helpful if the Collecting Process may not have access to 974 the MIB module. 976 The Exporting Process can either include the extra object details 977 fields as part of the MIB Field Options Template, or export a 978 separate Options Template and Data that maps MIB OIDs in 979 mibObjectIdentifier Fields to the object details. 981 If only a few fields are being exported then including extra type 982 data in the MIB Field Options export will be more efficient. 984 The MIB Field Options Template for a non-indexed Field with extra MIB 985 object details is shown in Figure 10. 987 0 1 2 3 988 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 989 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 990 | Set ID = 3 | Length = 38 | 991 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 992 | Template ID | Field Count = 7 | 993 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 994 | Scope Field Count = 2 |0| IE = templateId | 995 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 996 | Field Length = 2 |0| IE = informationElementIndex| 997 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 998 | Field Length = 2 |0| IE = mibObjectIdentifier | 999 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1000 | Field Length = 65535 |0| IE = mibObjectSyntax | 1001 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1002 | Field Length = 65535 |0| IE = mibObjectName | 1003 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1004 | Field Length = 65535 |0| IE = mibObjectDescription | 1005 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1006 | Field Length = 65535 |0| IE = mibModuleName | 1007 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1008 | Field Length = 65535 | 1009 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1011 Figure 10: MIB Field Options Template for a non-indexed Field with 1012 extra MIB object details 1014 Where: 1016 mibObjectSyntax 1018 The MIB object syntax string as defined in Section 11.2.3.3. 1020 Note that a separate mibObjectSyntax Information Element is 1021 required (rather than extend the existing 1022 informationElementDataType registry [IANA-IPFIX]) because the 1023 SYNTAX clause could contain almost any name. 1025 mibObjectName 1027 The textual name a mibObjectIdentifier Object. 1029 mibObjectDescription 1031 The textual description for a mibObjectIdentifier. 1033 mibModuleName 1035 The textual name of the MIB module that defines a MIB Object. 1037 Note the use of variable length encoding for the 1038 mibObjectIdentifier, mibObjectSyntax, mibObjectName, 1039 mibObjectDescription, and mibModuleName, since these are all 1040 string fields. 1042 The MIB details can be exported as an standard IPFIX Option export 1043 [RFC7011] as shown in Figure 11. This may be more efficient as the 1044 bulk of this data is text based and SHOULD be exported only once to 1045 the Collecting Process if there are many MIB objects being exported. 1046 This prevents this large textual data being included for every use of 1047 a mibObjectValue Information Element. 1049 0 1 2 3 1050 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 1051 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1052 | Set ID = 3 | Length = 30 | 1053 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1054 | Template ID | Field Count = 5 | 1055 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1056 | Scope Field Count = 1 |0| IE = mibObjectIdentifier | 1057 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1058 | Field Length = 65535 |0| IE = mibObjectSyntax | 1059 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1060 | Field Length = 65535 |0| IE = mibObjectName | 1061 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1062 | Field Length = 65535 |0| IE = mibObjectDescription | 1063 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1064 | Field Length = 65535 |0| IE = mibModuleName | 1065 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1066 | Field Length = 65535 | 1067 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1069 Figure 11: Alternative mibObjectIdentifier Option Export with object 1070 details 1072 5.5. Use of field order in the MIB Field Option template 1074 The MIB Field Options Template export makes use of the 1075 informationElementIndex [IANA-IPFIX] to specify which field in the 1076 template that the metadata relates to, which avoids any ordering 1077 constraints on the data template. The mibObjectValue Information 1078 Elements in a IPFIX export can be in any order in the export packet. 1079 However, fields used as an INDEX MUST be in the same order as 1080 specified in the INDEX clause of the conceptual row MIB object. 1082 The informationElementIndex specifies which Field in the Template 1083 extra information is being provided for. 1085 This is analogous to standard IPFIX Template Sets which also specify 1086 the order of the fields and provide their type and size. 1088 If the template changes such that the order is different then the MIB 1089 Field Options data MUST be resent to reflect the new ordering. A new 1090 Template ID MUST be used to reflect that the ordering has changed. 1091 Older MIB Field Options Data may refer to the incorrect field. 1093 A templateId [IANA-IPFIX] is only locally unique within a combination 1094 of a Observation Domain and Transport session. As such each MIB 1095 Field Options Data Record can only refer to templateIds within the 1096 same Observation Domain and session. 1098 5.6. Identifying the SNMP Context 1100 Each MIB OID is looked up in a specific context, usually the default 1101 context. If exporting a MIB OID value that isn't in the default 1102 context then the context MUST be identified by including the 1103 mibContextEngineID (see Section 11.2.2.5) and mibContextName (see 1104 Section 11.2.2.6) fields in the MIB Field Options Template and 1105 associated MIB Field Options Data Records, or be included in the same 1106 template as the mibFieldValue Field. 1108 This context data MUST be included for each field that is not in the 1109 default context. 1111 The context information MAY be exported as part of the Template that 1112 includes the mibObjectValue Information Element or the context 1113 information MAY be exported in the MIB Field Options Data Record that 1114 refers to the field. Context fields exported in the same Template 1115 MUST take precedence over those that refer to the template. Context 1116 fields MUST apply to all mibObjectValue Information Elements in the 1117 same template and there MUST NOT be duplicates of mibContextName or 1118 mibContextEngineID in a Template. 1120 So a MIB Field Options Template MAY specify no Context information, 1121 just the Context Engine ID or both the context engine and context 1122 name. This allows the exporter to export the bulk of data in the 1123 default context and only tag those required. 1125 Since the MIB Field Options Template applies for all the records of a 1126 Template using Context Fields in the MIB Field Options Data Template 1127 requires that each mibContextEngineID / mibContextName pair have its 1128 own Template. 1130 5.7. Template Management 1132 Templates are managed as per section 8 of [RFC7011] with the 1133 additional constraint that the MIB Field Options Template and MIB 1134 Field Options Data Records MUST be exported in the same IPFIX Message 1135 as any (Option) Template Record that uses a mibObjectValue 1136 Information Element. 1138 When exporting over an SCTP transport [RFC4960], the MIB Field 1139 Options Data Records MUST be exported reliably and in the same SCTP 1140 stream as their associated Templates per [RFC6526]. 1142 If a Template using a mibObjectValue Information Element is resent 1143 for any reason the Records it depends on MUST be sent as well. 1145 If a Template is replaced with a new (Option) Template then a new MIB 1146 Field Options Data Record MUST be sent with the replacement 1147 referencing the new Template ID. 1149 An Exporting Process SHOULD reuse MIB Field Options Template IDs when 1150 the Templates are identical. Each (Option) Template Record MUST 1151 still be accompanied by a copy of the MIB Field Options Template. 1153 5.7.1. Large Messages 1155 The requirement to export the MIB Field Options Template and MIB 1156 Field Options Data Records in the same IPFIX Message as any (Option) 1157 Template Record that uses a mibObjectValue Information Element may 1158 result in very large IPFIX Messages. 1160 In environments with restricted Message sizes, and only when a 1161 reliable SCTP transport is being used, the MIB Field Options 1162 Template, MIB Field Options Data, Data Template, and Data Records, 1163 MAY be exported in separate Messages in the same SCTP stream, 1164 provided that their order is maintained. 1166 5.7.2. Template Withdrawal and Reuse 1168 Data Records containing mibObjectValue Information Elements MUST NOT 1169 be exported if their corresponding Data Template or MIB Field Options 1170 Template has been withdrawn, since the MIB Field Options Template 1171 MUST be exported in the same IPFIX Message as the Data Template which 1172 it annotates, except as allowed by the caveat of Section 5.7.1. 1174 MIB Field Options Template IDs MUST NOT be reused while they are 1175 required by any existing Data Templates. 1177 5.8. Exporting Conceptual Rows and Tables 1179 There are three approaches for an IPFIX Exporting Process to export 1180 the values of columnar objects: 1182 1. Ignoring the indexing of Columnar Objects 1184 2. Exporting conceptual rows/table objects using structured data 1186 3. Exporting individual indexed Columnar Objects 1188 Firstly, a subordinate columnar object may be used purely as a data 1189 type. In this case there is no index information or relation to a 1190 conceptual row object provided by the Exporting Process. 1192 Secondly, mibObjectValueRow or mibObjectValueTable can be used to 1193 export partial or complete conceptual rows using [RFC6313] structured 1194 data. 1196 Thirdly, in a mixed option/data IPFIX/MIB template, the 1197 mibObjectValue Information Element can have the values of the INDEX 1198 clause of the conceptual row provided by other fields in the record. 1199 In this case each mibObjectValue Information Element must specify 1200 which other field(s) in the template is providing the index 1201 information. 1203 5.8.1. Exporting Conceptual Rows - indexing 1205 This document defines two forms of indexing that can be used for 1206 conceptual row MIB objects. 1208 Structured Data based indexing is used solely by the 1209 mibObjectValueRow Information Element. Each conceptual row of the 1210 MIB object corresponds to a single Data Record exported. The index 1211 fields defined in the INDEX clause of the MIB object MUST all be 1212 present in the same order as the Scope Fields. This allows a simple 1213 table export of a conceptual row MIB object without any extra fields 1214 required to indicate which fields make up the conceptual row INDEX. 1216 Field based indexing is used by giving each mibObjectValue 1217 Information Element a mibIndexIndicator to flag the required index 1218 fields. This allows complex indexing or mixing of existing IPFIX 1219 Information Element with MIB Fields with minimum overhead. It also 1220 allows multiple Columnar MIB objects from different conceptual rows 1221 to be exported with complete indexing in one IPFIX Template. 1223 5.8.2. Exporting Conceptual Rows - mibObjectValueRow 1225 The simplest approach to exporting a complete or partial conceptual 1226 row object is done with the mibObjectValueRow Information Element. 1228 This is a Structured Data subTemplateList Information Element as 1229 detailed in [RFC6313]. The template specified MUST be an Options 1230 Template. It also MUST have the fields specified in the INDEX clause 1231 of the conceptual row object as the Scope Fields for the Option 1232 Export. 1234 An overview of this architecture is given in Figure 12. This shows 1235 that the full MIB object type definition OID is exported for the 1236 mibObjectValueRow conceptual row field but that the individual 1237 columnar objects only require the subIdentifier to be exported. To 1238 make the diagram clearer the Templates for the MIB Field Options 1239 Templates are not shown. 1241 +---------------------------+ +------------------------+ 1242 | Data Template | | MIB Field Options Data | 1243 | | | | 1244 | mibObjectValueRow |<---| OID | 1245 +---------------------------+ +------------------------+ 1246 | 1247 | +-----------------------+ +------------------------+ 1248 | | Options Template | | MIB Field Options Data | 1249 | | | | | 1250 | | Scope mibObjectValue* |<---| subIdentifiers | 1251 | | mibObjectValue* |<---| subIdentifiers | 1252 | +-----------------------+ +------------------------+ 1253 | | 1254 V V 1255 +---------------------------+ 1256 | Data Flows | 1257 | | 1258 | subTemplateList (1 entry) | 1259 +---------------------------+ 1261 Figure 12: Architecture for Exporting Conceptual Rows with 1262 mibObjectValueRow 1264 The mibIndexIndicator is not required for each individual 1265 mibObjectValue Information Element as mibObjectValueRow provides a 1266 structure that includes the index details. 1268 When Structured Data based indexing is used all Scope Fields MUST be 1269 the INDEX Objects in the same order as defined in the INDEX clause of 1270 the conceptual row being exported. 1272 Each conceptual table MIB object has 2 related OIDs. There is an OID 1273 that refers to the Table with syntax of SEQUENCE OF and an OID that 1274 refers to each entry or conceptual row with the syntax of SEQUENCE. 1275 The OID for the SEQUENCE of a conceptual row MUST be exported. 1277 For example in the IF-MIB ([RFC2863]) the OID for ifEntry should be 1278 exported rather than the OID for ifTable. The OID for the table (in 1279 this case ifTable) can be derived by removing one subidentifier from 1280 the ifEntry OID. 1282 The Full OID for the conceptual row MIB object type definition being 1283 exported with the mibObjectValueRow Information Element MUST be 1284 exported. However the fields that are members of the conceptual row 1285 need not have the full OID of their MIB object type definition 1286 exported. Instead the mibSubIdentifier Information Element can be 1287 used to document which entry in the conceptual row the Field is. 1289 In this case the export flow will contain a single complete or 1290 partial row from a table inside a single field of the record. 1292 There may be MIB objects that are specified in the INDEX of the 1293 conceptual row but not columnar objects of the same conceptual row, 1294 for these the Exporter MUST provide the full OID in a 1295 mibObjectIdentifier field. 1297 So for a conceptual row object with the OID "1.2.3.4.5.6" the OID of 1298 the type definitions for columnar objects "1.2.3.4.5.6.1" 1299 "1.2.3.4.5.6.2" can be exported with just a subIdentifier of "1" and 1300 "2" respectively. 1302 The mibObjectValue Information Elements exported using the 1303 mibObjectValueRow export MUST all either be Objects defined in the 1304 INDEX clause, Columnar Objects of the same conceptual row object or 1305 Columnar Objects that AUGMENT the same conceptual row. 1307 The [RFC6313] Structured Data subTemplateList format requires a 1308 Structured Data Type Semantic to be specified. Unless there is a 1309 more appropriate option in the IPFIX Structured Data Types Semantics 1310 registry ([IANA-IPFIX-SDTS]) the "undefined" Structured Data Type 1311 Semantic can be used. 1313 Figure 13 shows an IPFIX Template for a Structured Data export of a 1314 conceptual row, while Figure 14 shows an IPFIX Options Template for a 1315 complete conceptual row with five columns and two INDEX fields. 1316 Figure 15 shows the MIB Field Options Template for a conceptual row 1317 field. Figure 16 shows the MIB Field Options Template for the 1318 columns inside the conceptual row. Figure 17 shows the OID data for 1319 the conceptual row would be exported. 1321 0 1 2 3 1322 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 1323 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1324 | Set ID = 2 | Length = 12 | 1325 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1326 | Template ID = 300 | Field Count = 1 | 1327 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1328 |0| IE = mibObjectValueRow | Field Length | 1329 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1331 Figure 13: IPFIX Template for a Conceptual Row 1333 0 1 2 3 1334 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 1335 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1336 | Set ID = 3 | Length = 30 | 1337 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1338 | Template ID = 301 | Field Count = 5 | 1339 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1340 | Scope Field Count = 2 |0| IE = mibObjectValue INDEX1 | 1341 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1342 | Field Length |0| IE = mibObjectValue INDEX2 | 1343 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1344 | Field Length |0| IE = mibObjectValue COLUM3 | 1345 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1346 | Field Length |0| IE = mibObjectValue COLUM4 | 1347 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1348 | Field Length |0| IE = mibObjectValue COLUM5 | 1349 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1350 | Field Length | 1351 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1353 Figure 14: IPFIX Options Template for a mibObjectValueRow with 5 1354 columns and 2 INDEX fields 1356 0 1 2 3 1357 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 1358 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1359 | Set ID = 3 | Length = 22 | 1360 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1361 | Template ID = 302 | Field Count = 3 | 1362 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1363 | Scope Field Count = 2 |0| IE = templateId | 1364 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1365 | Field Length = 2 |0| IE = informationElementIndex| 1366 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1367 | Field Length = 2 |0| IE = mibObjectIdentifier | 1368 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1369 | Field Length = 65535 | 1370 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1372 Figure 15: MIB Field Options Template for a Conceptual Row Object 1374 Where: 1376 templateId 1378 The templateId for the MIB Option that will be exported. 1380 mibObjectIdentifier 1381 The MIB OID for the Conceptual Row that is being exported. 1382 Note the use of variable length encoding for this field. 1384 0 1 2 3 1385 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 1386 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1387 | Set ID = 3 | Length = 22 | 1388 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1389 | Template ID = 303 | Field Count = 3 | 1390 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1391 | Scope Field Count = 2 |0| IE = templateId | 1392 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1393 | Field Length = 2 |0| IE = informationElementIndex| 1394 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1395 | Field Length = 2 |0| IE = mibSubIdentifier | 1396 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1397 | Field Length = 2 | 1398 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1400 Figure 16: MIB Field Options Template for Columnar Objects of a 1401 Conceptual Table 1403 Where: 1405 templateId 1407 The templateId used will be for the Template referred to in the 1408 subTemplateList of the mibObjectValueRow that will be exported. 1410 mibSubIdentifier 1412 The sub identifier that specifies the columnar object's ID 1413 within the conceptual row. 1415 0 1 2 3 1416 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 1417 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1418 | Set ID = 302 | Length = N | 1419 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1420 | templateId = 300 | informationElementIndex | 1421 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1422 | VLEN | mibObjectIdentifier ... | 1423 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1424 | ... mibObjectIdentifier continued ... | 1425 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1427 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1428 | Set ID = 303 | Length = N | 1429 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1430 | templateId = 301 | informationElementIndex | 1431 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1432 | mibSubIdentifier | templateId = 301 | 1433 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1434 | informationElementIndex | mibSubIdentifier | 1435 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1436 | templateId = 301 | informationElementIndex | 1437 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1438 | mibSubIdentifier | templateId = 301 | 1439 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1440 | informationElementIndex | mibSubIdentifier | 1441 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1442 | templateId = 301 | informationElementIndex | 1443 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1444 | mibSubIdentifier | 1445 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1447 Figure 17: mibOption Data Record for the conceptual row 1449 Where: 1451 mibObjectIdentifier 1453 Will contain the OID for the conceptual row as a whole. 1455 mibSubIdentifier 1457 The mibSubIdentifier fields will contain the extra Sub 1458 Identifier that when added to the OID for the conceptual row 1459 give the full OID for the Object. 1461 5.8.3. Exporting Conceptual Rows - Augments 1463 SMIv2 defines conceptual rows as either having an INDEX clause or an 1464 AUGMENTS clause. Conceptual row definitions with an AUGMENTS clause 1465 extend an existing base conceptual row with an INDEX clause. It is 1466 not possible in SMIv2 to AUGMENT a conceptual row that itself has an 1467 AUGMENTS clause. The base table and the augmentation have an 1468 identical INDEX. 1470 Since augmentations allow adding extra columns to existing tables it 1471 is beneficial to be able to support them easily in IPFIX exports of 1472 conceptual rows. 1474 The mibObjectValueRow OID MAY refer either to the base table with the 1475 INDEX clause, or to a conceptual row with an AUGMENTS clause. The 1476 subIdentifiers in any MIB Field Options Data Record MUST always refer 1477 to the OID exported for the mibObjectValueRow IE. 1479 If the mibObjectValueRow OID refers to a base table then any extra 1480 columns from conceptual rows with an AUGMENTS clause MUST have their 1481 full OID exported. 1483 If the mibObjectValueRow OID refers to a conceptual row that augments 1484 another conceptual row using the AUGMENTS clause then any MIB fields 1485 from the original table's INDEX or Columnar Objects MUST NOT use the 1486 mibSubIdentifier and MUST instead export the full OID in a 1487 mibObjectIdentifier. 1489 If the mibObjectValueRow refers to an AUGMENTS conceptual row the 1490 Scope Fields of the Template using in the subTemplateList MUST have 1491 the INDEX fields from the base table, in the same order as its scope. 1492 This is identical to the Scope Field requirements for conceptual rows 1493 with an INDEX clause. 1495 This flexibility is provided so that the conceptual rows with the 1496 most columns can be exported using the more efficient 1497 mibSubIdentifier. For example exporting a complete set of 1498 augmentation columns would only require the full OIDs for the MIB 1499 objects in the INDEX. 1501 It is possible to export MIB object columns from multiple AUGMENTS 1502 conceptual rows. If this is done then the base table SHOULD be used 1503 as the main OID for the mibObjectValueRow. 1505 5.8.4. Exporting Conceptual Tables - mibObjectValueTable 1507 Multiple rows of a conceptual table can be exported in the 1508 mibObjectValueTable Information Element (Section 11.2.1.10). This 1509 allows a set of conceptual rows corresponding to a conceptual table 1510 to be exported as a single field. Therefore a complete set of rows 1511 can be exported as a single field with other information elements in 1512 a Template. In this fashion several complete conceptual tables could 1513 be exported in one packet. 1515 Identically with mibObjectValueRow, as in section Section 5.8.2 1516 above, the more specific OID of the SEQUENCE entity MUST be exported. 1518 The format of mibObjectValueTable is identical to mibObjectValueRow 1519 except that the length of the subTemplateList may be 0 or more 1520 entries. 1522 All the other, non length, requirements for mibObjectValueRow in 1523 Section 5.8.2 apply to mibObjectValueTable. 1525 An overview of this architecture is given in Figure 18. This shows 1526 the similarity to Figure 12 1527 +---------------------------+ +------------------------+ 1528 | Data Template | | MIB Field Options Data | 1529 | | | | 1530 | mibObjectValueTable |<---| OID | 1531 +---------------------------+ +------------------------+ 1532 | 1533 | +-----------------------+ +------------------------+ 1534 | | Options Template | | MIB Field Options Data | 1535 | | | | | 1536 | | Scope mibObjectValue* |<---| subIdentifiers | 1537 | | mibObjectValue* |<---| subIdentifiers | 1538 | +-----------------------+ +------------------------+ 1539 | | 1540 V V 1541 +-----------------------------+ 1542 | Data Flows | 1543 | | 1544 | subTemplateList (n entries) | 1545 | row 1 | 1546 | ... | 1547 | row n | 1548 +-----------------------------+ 1550 Figure 18: Architecture for Exporting Conceptual Tables with 1551 mibObjectValueTable 1553 5.8.5. Exporting Columnar Objects - using mibIndexIndicator 1555 The other option for indexing a Columnar Object that is part of a 1556 conceptual table is explicit indexing. In this case there may be non 1557 index fields in the scope of the option export or there may be 1558 columnar MIB objects from multiple conceptual rows being exported. 1559 In this case each mibObjectValue Information Element requires the 1560 mibIndexIndicator with the bits set for the fields that are used to 1561 index that individual columnar object. 1563 The index fields MUST be in the 'correct' order as defined in the 1564 conceptual row that each columnar object is a member of. 1566 If a mibObjectValue Information Element that is being indexed using 1567 mibIndexIndicator is being used as an Options Template Scope Field, 1568 then all fields used to index that field MUST also be Scope Fields. 1570 Figure 19 shows the MIB Field Options Template for an indexed MIB 1571 Columnar Object. 1573 0 1 2 3 1574 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 1575 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1576 | Set ID = 3 | Length = 26 | 1577 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1578 | Template ID | Field Count = 4 | 1579 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1580 | Scope Field Count = 2 |0| IE = templateId | 1581 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1582 | Field Length = 2 |0| IE = informationElementIndex| 1583 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1584 | Field Length = 2 |0| IE = mibIndexIndicator | 1585 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1586 | Field Length = 2 |0| IE = mibObjectIdentifier | 1587 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1588 | Field Length = 65535 | 1589 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1591 Figure 19: MIB Field Options Template for an indexed MIB Columnar 1592 Object 1594 Where: 1596 mibIndexIndicator 1598 The MIB Index Indicator IPFIX Information Element which marks 1599 which fields in the record will act as INDEX values for the 1600 exported MIB object. 1602 The index data for a mibObjectValue will be other fields 1603 contained in the same Data Record. The mibIndexIndicator marks 1604 the Fields whose value(s) should be added to the OID for the 1605 MIB object type definition exported in mibObjectIdentifier to 1606 get the OID for the instance of the MIB object. 1608 Elements used to index MIB objects MUST be exported in the same 1609 order as they are specified in the INDEX field of the 1610 conceptual table they belong to. 1612 mibObjectIdentifier 1614 Note the use of variable length encoding for this field. 1616 6. Example Use Cases 1617 6.1. Non Columnar MIB Object: Established TCP Connections 1619 The number of established TCP connections of a remote network device 1620 could be monitored by configuring it to periodically export the 1621 number of established TCP connections to a centralized Collector. In 1622 this example, the Exporter would export an IPFIX Message every 30 1623 minutes that contained Data Records detailing the number of 1624 established TCP connections. 1626 The table of data that is to be exported looks like: 1628 +-------------------------+-----------------------+ 1629 | TIMESTAMP | ESTABLISHED TCP CONN. | 1630 +-------------------------+-----------------------+ 1631 | StartTime + 0 seconds | 10 | 1632 | StartTime + 60 seconds | 14 | 1633 | StartTime + 120 seconds | 19 | 1634 | StartTime + 180 seconds | 16 | 1635 | StartTime + 240 seconds | 23 | 1636 | StartTime + 300 seconds | 29 | 1637 +-------------------------+-----------------------+ 1639 Table 2: Established TCP Connections 1641 The Template Record for such a Data Record will detail two 1642 Information Elements: 1644 1. flowStartSeconds from [IANA-IPFIX], Information Element 150: The 1645 absolute timestamp of the first packet of this Flow. 1647 2. tcpCurrEstab from [RFC4022], Object ID "1.3.6.1.2.1.6.9": The 1648 number of TCP connections for which the current state is either 1649 ESTABLISHED or CLOSE-WAIT. 1651 Figure 20 shows the exported Template Set detailing the Template 1652 Record for exporting the number of established TCP connections. 1654 0 1 2 3 1655 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 1656 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1657 | Set ID = 2 | Length = 16 | 1658 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1659 | Template ID = 400 | Field Count = 2 | 1660 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1661 |0| IE = flowStartSeconds | Field Length = 4 | 1662 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1663 |0| IE = mibObjectValueGauge | Field Length = 4 | 1664 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1666 Figure 20: Example of tcpCurrEstab Template Set 1668 Figure 21 shows the exported MIB Field Options Template Set detailing 1669 the metadata that will be exported about the mibObjectValueGauge 1670 Information Element in Template 400 in Template Record. 1672 0 1 2 3 1673 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 1674 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1675 | Set ID = 3 | Length = 22 | 1676 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1677 | Template ID = 401 | Field Count = 3 | 1678 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1679 | Scope Field Count = 2 |0| IE = templateId | 1680 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1681 | Field Length = 2 |0| IE = informationElementIndex| 1682 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1683 | Field Length = 2 |0| IE = mibObjectIdentifier | 1684 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1685 | Field Length = 65535 | 1686 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1688 Figure 21: Example of tcpCurrEstab MIB Field Options Template Set 1690 Figure 22 shows the exported MIB Field Options Data Set detailing the 1691 metadata that will be exported about the mibObjectValueGauge 1692 Information Element in Template 400 in Template Record. 1694 The OID for the MIB object tcpCurrEstab from [RFC4022], Object ID 1695 "1.3.6.1.2.1.6.9", will be encoded in ASN.1/BER [BER] as 1696 '06072b060102010609' in the data record, which takes nine octets. 1698 0 1 2 3 1699 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 1700 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1701 | Set ID = 401 | Length = 18 | 1702 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1703 | templateId = 400 | informationElementIndex = 1 | 1704 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1705 | VLEN=9 | mibObjectIdentifier ... | 1706 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1707 | ... mibObjectIdentifier = "1.3.6.1.2.1.6.9" ... | 1708 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1709 | ... 06072b060102010609 ... | 1710 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1712 Figure 22: Example of tcpCurrEstab MIB Field Options Data Set 1714 Figure 23 shows the start of the Data Set for exporting the number of 1715 established TCP connections (see Section 6.1). 1717 0 1 2 3 1718 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 1719 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1720 | Set ID = 400 | Length = 52 | 1721 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1722 | StartTime + 0 seconds | 1723 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1724 | 10 | 1725 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1726 | StartTime + 60 seconds | 1727 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1728 | 14 | 1729 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1730 | StartTime + 120 seconds | 1731 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1732 | 19 | 1733 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1734 | StartTime + 180 seconds | 1735 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1736 | 16 | 1737 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1738 | StartTime + 240 seconds | 1739 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1740 | 23 | 1741 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1742 | StartTime + 300 seconds | 1743 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1744 | 29 | 1745 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1747 Figure 23: Example of tcpCurrEstab Data Set 1749 6.2. Enterprise Specific MIB Object: Detailing CPU Load History 1751 For the sake of demonstrating a enterprise-specific MIB object from 1752 the CISCO-PROCESS-MIB ([CISCO-PROCESS-MIB]) is chosen. This example 1753 would be valid with any enterprise-specific MIB module. 1755 The CPU Usage of a remote network device with 1 CPU could be 1756 monitored by configuring it to periodically export CPU usage 1757 information, i.e., the cpmCPUTotal1minRev from the proprietary CISCO- 1758 PROCESS-MIB, Object ID "1.3.6.1.4.1.9.9.109.1.1.1.1.7", to a 1759 centralized Collector. 1761 Although the cpmCPUTotal1minRev MIB object is a columnar object in a 1762 conceptual row, while there is only 1 CPU no extra information is 1763 conveyed by providing the INDEX field. So in this case it is 1764 acceptable to not export the cpmCPUTotalIndex MIB object. If there 1765 were multiple CPUs it would be appropriate to include this the 1766 cpmCPUTotalIndex field and specify the relationship. 1768 In this example, the Exporter would export an IPFIX Message every 30 1769 minutes that contained Data Records detailing the CPU 1 minute busy 1770 average at 1 minute intervals. 1772 The table of data that is to be exported looks like: 1774 +-------------------------+---------------------+ 1775 | TIMESTAMP | CPU BUSY PERCENTAGE | 1776 +-------------------------+---------------------+ 1777 | StartTime + 0 seconds | 10% | 1778 | StartTime + 60 seconds | 14% | 1779 | StartTime + 120 seconds | 19% | 1780 | StartTime + 180 seconds | 16% | 1781 | StartTime + 240 seconds | 23% | 1782 | StartTime + 300 seconds | 29% | 1783 +-------------------------+---------------------+ 1785 Table 3: CPU Usage Data 1787 The Template Record for such a Data Record will detail two 1788 Information Elements: 1790 1. flowStartSeconds from [IANA-IPFIX], Information Element 150: The 1791 absolute timestamp of the first packet of this Flow. 1793 2. a mibObjectValueGauge for cpmCPUTotal1minRev, the overall CPU 1794 busy percentage in the last one-minute period. 1796 Figure 24 shows the exported Template Set detailing the Template 1797 Record for exporting CPU Load (see Section 6.2). 1799 0 1 2 3 1800 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 1801 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1802 | Set ID = 2 | Length = 16 | 1803 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1804 | Template ID = 402 | Field Count = 2 | 1805 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1806 |0| IE = flowStartSeconds | Field Length = 4 | 1807 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1808 |0| IE = mibObjectValueGauge | Field Length = 1 | 1809 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1811 Figure 24: Example of CPU Load Template Set 1813 Figure 25 shows the exported Template Set detailing the MIB Field 1814 Options Template for exporting CPU Load (see Section 6.2). Note this 1815 is identical to the MIB Field Options Template given in Figure 21 so 1816 the same template could have been reused. 1818 0 1 2 3 1819 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1820 | Set ID = 3 | Length = 22 | 1821 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1822 | Template ID = 403 | Field Count = 3 | 1823 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1824 | Scope Field Count = 2 |0| IE = templateId | 1825 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1826 | Field Length = 2 |0| IE = informationElementIndex| 1827 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1828 | Field Length = 2 |0| IE = mibObjectIdentifier | 1829 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1830 | Field Length = 65535 | 1831 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1833 Figure 25: Example of CPU Load MIB Field Options Template Set 1835 Figure 26 shows the exported MIB Field Options Data Set detailing the 1836 metadata that will be exported about the mibObjectValueGauge 1837 Information Element in Template 402 in Template Record (see 1838 Section 6.2). 1840 The OID for the cpmCPUTotal1minRev has been encoded using ASN.1/BER 1841 to '060d2b0601040109096d0101010107' at 15 octets long. 1843 0 1 2 3 1844 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 1845 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1846 | Set ID = 403 | Length = 24 | 1847 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1848 | templateId = 402 | informationElementIndex = 1 | 1849 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1850 | VLEN=15 | mibObjectIdentifier ... | 1851 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1852 | "1.3.6.1.4.1.9.9.109.1.1.1.1.7" ... | 1853 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1854 | 060d2b0601040109096d0101010107 ... | 1855 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1856 | ... | 1857 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1859 Figure 26: Example of CPULoad MIB Field Options Data Set 1861 Note that although cpmCPUTotal1minRev is 32 bits long, reduced size 1862 encoding [RFC7011] has been used to encode it within a single octet. 1863 The encoding size was specified by setting the length for the 1864 mibObjectValueGauge Field to 1 octet in the main Data Template - 1865 Figure 24. 1867 This example stresses that, even though the OID cpmCPUTotal1minRev is 1868 enterprise-specific, the E bit for the mibObjectValueGauge and 1869 mibObjectIdentifier is set to "0" since the "mibObjectValueGauge" and 1870 "mibObjectIdentifier" Information Element is not enterprise-specific. 1871 That this data is from an Enterprise MIB is included in the OID that 1872 includes an Enterprise ID. 1874 The corresponding Data Set does not add any value for this example, 1875 and is therefore not displayed. 1877 6.3. Exporting a Conceptual Row: The OSPF Neighbor Row 1879 Many conceptual tables are already defined in standard and 1880 proprietary MIBs. These can be exported with a minimum of overhead 1881 by using the mibObjectValueRow. This allows the Exporting Process to 1882 unambiguously define the INDEX for the entire conceptual row as the 1883 Scope Fields of an Option Export. The use of a MIB Field Options 1884 Template with mibSubIdentifier being used means that each individual 1885 columnar object does not need to have its OID exported to the 1886 collector 1888 The ospfNbrTable defined in the OSPF MIB [RFC4750] consists of 1889 ospfNbrEntry, which has the OID "1.3.6.1.2.1.14.10.1". Each 1890 mibObjectValueRow data record will therefore correspond to an 1891 ospfNbrEntry. 1893 The following fields will be exported: 1895 +------------------+----------------+-------------------------+-----+ 1896 | Object | ID | mibObjectValue | Len | 1897 +------------------+----------------+-------------------------+-----+ 1898 | ospfNbrIpAddr | ospfNbrEntry 1 | mibObjectValueIPAddress | 4 | 1899 | ospfNbrAddress- | ospfNbrEntry 2 | mibObjectValueInteger | 4 | 1900 | -LessIndex | | | | 1901 | ospfNbrRtrId | ospfNbrEntry 3 | mibObjectValueIPAddress | 4 | 1902 | ospfNbrState | ospfNbrEntry 6 | mibObjectValueInteger | 1 | 1903 +------------------+----------------+-------------------------+-----+ 1905 Table 4: OSPF Neighbor Entry Objects 1907 The OIDs that will be used to export this table are shown in Table 5. 1909 +------------------+-----------------------+---------------------+ 1910 | Entity | Full OID | Exported as | 1911 +------------------+-----------------------+---------------------+ 1912 | ospfNbrEntry | 1.3.6.1.2.1.14.10.1 | 1.3.6.1.2.1.14.10.1 | 1913 | ospfNbrIpAddr | 1.3.6.1.2.1.14.10.1.1 | 1 | 1914 | ospfNbrAddress- | 1.3.6.1.2.1.14.10.1.2 | 2 | 1915 | -LessIndex | | | 1916 | ospfNbrRtrId | 1.3.6.1.2.1.14.10.1.3 | 3 | 1917 | ospfNbrState | 1.3.6.1.2.1.14.10.1.6 | 6 | 1918 +------------------+-----------------------+---------------------+ 1920 Table 5: OSPF OIDs 1922 Figure 27 shows the Templates Exported to Support the 1923 mibObjectValueRow. Figure 28 shows the example OID Data for the 1924 conceptual row exported in mibObjectValueRow Figure 29 shows the 1925 example data export for a few neighbors in the table. This shows a 1926 Data Record in formatted as per IPFIX Structured Data [RFC6313] and 1927 using the the 'undefined' (= 0xFF) semantic [IANA-IPFIX-SDTS]. Note 1928 that the OID for ospfNbrEntry has been encoded using ASN.1/BER to 1929 '06082B060102010E0A01' at 10 octets long. 1931 0 1 2 3 1932 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 1933 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1934 | Set ID = 2 | Length = 12 | 1935 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1936 | Template ID = 500 | Field Count = 1 | 1937 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1938 |0| IE = mibObjectValueRow | Field Length = 16 | 1939 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1941 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1942 | Set ID = 3 | Length = 26 | 1943 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1944 | Template ID = 501 | Field Count = 4 | 1945 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1946 | Scope Field Count = 2 |0| IE = mibObjectValueIPAddress| 1947 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1948 | Field Length = 4 |0| IE = mibObjectValueInteger | 1949 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1950 | Field Length = 4 |0| IE = mibObjectValueIPAddress| 1951 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1952 | Field Length = 4 |0| IE = mibObjectValueInteger | 1953 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1954 | Field Length = 1 | 1955 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1956 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1957 | Set ID = 3 | 1958 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1959 | Length = 22 | Template ID = 502 | 1960 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1961 | Field Count = 3 | Scope Field Count = 2 | 1962 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1963 |0| IE = templateId | Field Length = 2 | 1964 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1965 |0| IE = informationElementIndex| Field Length = 2 | 1966 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1967 |0| IE = mibObjectIdentifier | Field Length = 65535 | 1968 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1970 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1971 | Set ID = 3 | Length = 22 | 1972 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1973 | Template ID = 503 | Field Count = 3 | 1974 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1975 | Scope Field Count = 2 |0| IE = templateId | 1976 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1977 | Field Length = 2 |0| IE = informationElementIndex| 1978 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1979 | Field Length = 2 |0| IE = mibSubIdentifier | 1980 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1981 | Field Length = 2 | 1982 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1984 Figure 27: Example of ospfNbrEntry Template and Options Template Sets 1985 0 1 2 3 1986 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 1987 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1988 | Set ID = 502 | Length = 20 | 1989 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1990 | templateId = 500 | informationElementIndex = 0 | 1991 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1992 | VLEN=10 | mibObjectIdentifier = "1.3.6.1.2.1.14.10.1" | 1993 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1994 | 06082B060102010E0A01 | 1995 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1996 | | Padding = 0 | 1997 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1999 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2000 | Set ID = 503 | Length = 28 | 2001 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2002 | templateId = 501 | informationElementIndex = 0 | 2003 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2004 | mibSubIdentifier = 1 | templateId = 501 | 2005 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2006 | informationElementIndex = 1 | mibSubIdentifier = 2 | 2007 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2008 | templateId = 501 | informationElementIndex = 2 | 2009 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2010 | mibSubIdentifier = 3 | templateId = 501 | 2011 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2012 | informationElementIndex = 3 | mibSubIdentifier = 6 | 2013 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2015 Figure 28: Example of ospfNbrEntry OID Data export 2017 0 1 2 3 2018 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2019 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2020 | Set ID = 500 | Length = 52 | 2021 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2022 |Semantic=0xFF | Template ID = 501 | ... | 2023 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2024 | ospfNbrIpAddr = 192.0.2.1 | ... | 2025 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2026 | ospfNbrAddressLessIndex = 0 | ... | 2027 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2028 | ospfNbrRtrId = 1.1.1.1 |ospfNbrState=8 | 2029 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2030 |Semantic=0xFF | Template ID = 501 | ... | 2031 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2032 | ospfNbrIpAddr = 192.0.2.2 | ... | 2033 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2034 | ospfNbrAddressLessIndex = 0 | ... | 2035 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2036 | ospfNbrRtrId = 2.2.2.2 |ospfNbrState=8 | 2037 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2038 |Semantic=0xFF | Template ID = 501 | ... | 2039 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2040 | ospfNbrIpAddr = 192.0.2.3 | ... | 2041 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2042 | ospfNbrAddressLessIndex = 0 | ... | 2043 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2044 | ospfNbrRtrId = 3.3.3.3 |ospfNbrState=1 | 2045 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2047 Figure 29: Example of Data Export for ospfNbrEntry 2049 6.4. Exporting Augmented Conceptual Row: The IF-MIB id to name mapping 2051 The ifTable defined in the [RFC2863] is augmented by the 2052 ifXTable (defined in the same MIB module). 2054 The OID of the ifEntry is 1.3.6.1.2.1.2.2.1 which is encoded using 2055 ASN.1/BER to '06082B06010201020201' at 10 octets long, while the OID 2056 of the augmenting ifXEntry is 1.3.6.1.2.1.31.1.1.1 which is encoded 2057 using ASN.1/BER to '060a2b060102011f01010101' at 12 octets long. 2059 This example demonstrates how columnar objects from the base 2060 conceptual row and the augmenting row can be exported in a single 2061 mibObjectValueRow Information Element. 2063 Table 6 shows the fields which will be exported. 2065 +---------+------------------+-------+-------------------+ 2066 | ifIndex | ifType | ifMtu | ifName | 2067 +---------+------------------+-------+-------------------+ 2068 | 1 | ethernetCsmacd:6 | 1500 | Ethernet 10 | 2069 | 2 | ethernetCsmacd:6 | 1500 | Ethernet 20 | 2070 | 3 | ethernetCsmacd:6 | 1500 | FastEthernet 30 | 2071 +---------+------------------+-------+-------------------+ 2073 Table 6: IF-MIB Data 2075 The OIDs that will be used to export this table are shown in Table 7. 2077 +---------+------------------------+--------------------------------+ 2078 | Entity | Full OID | Exported as | 2079 +---------+------------------------+--------------------------------+ 2080 | ifEntry | 1.3.6.1.2.1.2.2.1 | OID = 1.3.6.1.2.1.2.2.1 | 2081 | ifIndex | 1.3.6.1.2.1.2.2.1.1 | subID = 1 | 2082 | ifType | 1.3.6.1.2.1.2.2.1.3 | subID = 3 | 2083 | ifMtu | 1.3.6.1.2.1.2.2.1.4 | subID = 4 | 2084 | ifName | 1.3.6.1.2.1.31.1.1.1.1 | OID = 1.3.6.1.2.1.31.1.1.1.1 | 2085 +---------+------------------------+--------------------------------+ 2087 Table 7: IF-MIB OIDs 2089 Figure 30 shows the Templates Exported to Support the 2090 mibObjectValueRow Information Element. Figure 31 shows the example 2091 OID Data for the conceptual row exported in mibObjectValueRow to 2092 match Table 7. Figure 32 shows the example data export as per 2093 Table 6. 2095 0 1 2 3 2096 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 2097 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2098 | Set ID = 2 | Length = 12 | 2099 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2100 | Template ID = 600 | Field Count = 1 | 2101 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2102 |0| IE = mibObjectValueRow | Field Length = 24 | 2103 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2105 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2106 | Set ID = 3 | Length = 26 | 2107 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2108 | Template ID = 601 | Field Count = 4 | 2109 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2110 | Scope Field Count = 1 |0| IE = mibObjectValueInteger | 2111 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2112 | Field Length = 1 |0| IE = mibObjectValueInteger | 2113 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2114 | Field Length = 2 |0| IE = mibObjectValueInteger | 2115 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2116 | Field Length = 2 |0|IE =mibObjectValueOctetString| 2117 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2118 | Field Length = 65535 | 2119 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2121 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2122 | Set ID = 3 | 2123 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2124 | Length = 22 | Template ID = 602 | 2125 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2126 | Field Count = 3 | Scope Field Count = 2 | 2127 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2128 |0| IE = templateId | Field Length = 2 | 2129 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2130 |0| IE = informationElementIndex| Field Length = 2 | 2131 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2132 |0| IE = mibObjectIdentifier | Field Length = 65535 | 2133 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2135 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2136 | Set ID = 3 | Length = 22 | 2137 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2138 | Template ID = 603 | Field Count = 3 | 2139 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2140 | Scope Field Count = 2 |0| IE = templateId | 2141 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2142 | Field Length = 2 |0| IE = informationElementIndex| 2143 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2144 | Field Length = 2 |0| IE = mibSubIdentifier | 2145 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2146 | Field Length = 2 | 2147 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2149 Figure 30: Example of Augmented ifEntry Template and Options Template 2150 Sets 2152 0 1 2 3 2153 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 2154 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2155 | Set ID = 602 | Length = 40 | 2156 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2157 | templateId = 600 | informationElementIndex = 0 | 2158 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2159 | VLEN=10 | mibObjectIdentifier ... | 2160 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2161 | ifEntry = 1.3.6.1.2.1.2.2.1 | 2162 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2163 | 06082B06010201020201 | Padding = 0 | 2164 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2165 | templateId = 601 | informationElementIndex = 3 | 2166 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2167 | VLEN=12 | mibObjectIdentifier ifName ... | 2168 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2169 | ifName = 1.3.6.1.2.1.31.1.1.1.1 | 2170 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2171 | 060a2b060102011f01010101 | 2172 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2173 | | Padding = 0 | 2174 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2176 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2177 | Set ID = 603 | Length = 22 | 2178 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2179 | templateId = 601 | informationElementIndex = 0 | 2180 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2181 | mibSubIdentifier = 1 | templateId = 601 | 2182 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2183 | informationElementIndex = 1 | mibSubIdentifier = 3 | 2184 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2185 | templateId = 601 | informationElementIndex = 2 | 2186 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2187 | mibSubIdentifier = 4 | 2188 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2190 Figure 31: Example of Augmented ifEntry OID Data export 2192 0 1 2 3 2193 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 2194 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2195 | Set ID = 600 | Length = 68 | 2196 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2197 |Semantic=0xFF | Template ID = 601 | ifIndex = 1 | 2198 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2199 | ifType = 6 | ifMtu = 1500 | 2200 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2201 | length = 11 | ifName = Ethernet 10 | 2202 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2203 | ... | 2204 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2205 | ... | 2206 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2207 |Semantic=0xFF | Template ID = 601 | ifIndex = 2 | 2208 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2209 | ifType = 6 | ifMtu = 1500 | 2210 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2211 | length = 11 | ifName = Ethernet 20 | 2212 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2213 | ... | 2214 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2215 | ... | 2216 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2217 |Semantic=0xFF | Template ID = 601 | ifIndex = 3 | 2218 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2219 | ifType = 6 | ifMtu = 1500 | 2220 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2221 | length = 15 | ifName = FastEthernet 30 | 2222 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2223 | ... | 2224 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2225 | ... | 2226 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2227 | ... | 2228 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2230 Figure 32: Example of Data Export for Augmented ifEntry 2232 6.5. Exporting a Columnar Object: The ipIfStatsInForwDatagrams 2234 It may be that the full set of columnar objects that are supported by 2235 a conceptual row are not required to be exported. Rather than use 2236 the Structured Data method the mibIndexIndicator method can be used 2237 to provide the relation between fields. 2239 This example shows the MIB Objects that are part of the INDEX of the 2240 conceptual row being exported in the correct order and then being 2241 referred to by using mibIndexIndicator. 2243 This example shows the export of ipIfStatsInForwDatagrams from the 2244 IP-MIB [RFC4293]. ipIfStatsInForwDatagrams is a columnar object that 2245 is part of the conceptual table ipIfStatsTable. This is comprised of 2246 ipIfStatsEntry conceptual rows. 2248 The ipIfStatsTable conceptual table is indexed by the 2249 ipIfStatsIPVersion and ipIfStatsIfIndex. 2251 The Options Template Record for the example Data Record contains the 2252 following Information Elements: 2254 1. ipIfStatsIPVersion (1.3.6.1.2.1.4.31.3.1.1) (Scope Field) 2255 (encoded using ASN.1/BER to '060A2B06010201041F030101' at 12 2256 octets long) 2258 2. ipIfStatsIfIndex (1.3.6.1.2.1.4.31.3.1.2) (Scope Field) 2259 (encoded using ASN.1/BER to '060A2B06010201041F030102' at 12 2260 octets long) 2262 3. ipIfStatsInForwDatagrams (1.3.6.1.2.1.4.31.3.1.12) (non-Scope 2263 Field) 2264 (encoded using ASN.1/BER to '060A2B06010201041F03010c' at 12 2265 octets long) 2267 Note ipIfStatsIfIndex has been reduce length encoded to 2 octets in 2268 the following example. An exporting device with more interfaces 2269 would use the full length. 2271 Figure 33 shows the exported Options Template Set. 2273 0 1 2 3 2274 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 2275 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2276 | Set ID = 3 | Length = 22 | 2277 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2278 | Template ID = 701 | Field Count = 3 | 2279 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2280 | Scope Field Count = 2 |0|Scope 1=mibObjectValueInteger| 2281 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2282 | Scope Field 1 Length = 1 |0|Scope 2=mibObjectValueInteger| 2283 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2284 | Scope Field 1 Length = 2 |0| IE = mibObjectValueCounter | 2285 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2286 | Field Length = 4 | 2287 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2289 Figure 33: Example of an Options Template for an Indexed MIB Object 2290 with two indices. 2292 Figure 34 shows the exported MIB Field Options Template used to 2293 export the required mibObjectValue Information Element metadata. 2294 This example of the MIB Field Options Template includes the 2295 mibIndexIndicator to indicate that some of the other fields in the 2296 data records are indexes. 2298 0 1 2 3 2299 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 2300 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2301 | Set ID = 3 | Length = 26 | 2302 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2303 | Template ID = 702 | Field Count = 4 | 2304 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2305 | Scope Field Count = 2 |0| IE = templateId | 2306 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2307 | Field Length = 2 |0| IE = informationElementIndex| 2308 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2309 | Field Length = 2 |0| IE = mibIndexIndicator | 2310 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2311 | Field Length = 1 |0| IE = mibObjectIdentifier | 2312 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2313 | Field Length = 65535 | 2314 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2316 Figure 34: Example of an MIB Field Options Template for an Indexed 2317 MIB Object with two indices. 2319 Figure 35 shows the exported MIB Field Options Data used to export 2320 the required mibObjectValue Information Element metadata. Note that 2321 the first two Data Records have all their mibIndexIndicator bits set 2322 to 0. The third mibIndexIndicator has the value '11000000' to show 2323 that the first two fields in the record are the INDEX's for this 2324 columnar object. 2326 0 1 2 3 2327 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 2328 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2329 | Set ID = 702 | Length = 58 | 2330 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2331 | templateId = 701 | informationElementIndex = 0 | 2332 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2333 |Index 00000000 | VLEN = 12 | mibObjectIdentifier ... | 2334 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2335 | "1.3.6.1.2.1.4.31.3.1.1" ... | 2336 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2337 | 060A2B06010201041F030101 ... | 2338 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2339 | | templateId = 701 | 2340 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2341 | informationElementIndex = 1 |Index 00000000 | VLEN = 12 | 2342 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2343 | mibObjectIdentifier = "1.3.6.1.2.1.4.31.3.1.2" ... | 2344 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2345 | 060A2B06010201041F030102 ... | 2346 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2347 | ... | 2348 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2349 | templateId = 701 | informationElementIndex = 2 | 2350 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2351 | Index 11000000 | VLEN = 12 | mibObjectIdentifier ... | 2352 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2353 | "1.3.6.1.2.1.4.31.3.1.12" ... | 2354 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2355 | 060A2B06010201041F03010c ... | 2356 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2357 | | 2358 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2360 Figure 35: Example of an MIB Field Options Data Set for an Indexed 2361 MIB Object with two indices. 2363 Figure 36 shows the Data Records that export the values of the 3 2364 mibObjectValue Information Elements. 2366 0 1 2 3 2367 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 2368 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2369 | Set ID = 701 | Length = 18 | 2370 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2371 | ipVer = 1 | ifIndex = 10 | ... | 2372 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2373 | InForwDatagrams = 10000 | ipVer = 2 | 2374 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2375 | ifIndex = 10 | InForwDatagrams = 20000 | 2376 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2377 | ... | 2378 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2380 Figure 36: Example of an MIB Data Set for an Indexed MIB Object with 2381 two indices. 2383 6.6. Exporting a Columnar Object indexed by IEs: ifOutQLen 2385 If a PSAMP Packet Report [RFC5476] was generated on any dropped 2386 packets on an interface then it may be desirable to know if the send 2387 queue on the output interface was full. This could be done by 2388 exporting the size of the send queue (ifOutQLen) in the same Data 2389 Record as the PSAMP Packet Report. 2391 The exported data looks like: 2393 +-----------+-----------+--------+--------------+-------------------+ 2394 | SRC ADDR | DST ADDR | PAK | OUTPUT | OUTPUT Q. LEN | 2395 | | | LEN | INTERFACE | (ifOutQLen) | 2396 +-----------+-----------+--------+--------------+-------------------+ 2397 | 192.0.2.1 | 192.0.2.3 | 150 | Eth 1/0 (15) | 45 | 2398 | 192.0.2.4 | 192.0.2.9 | 350 | Eth 1/0 (15) | 45 | 2399 | 192.0.2.3 | 192.0.2.9 | 650 | Eth 1/0 (15) | 23 | 2400 | 192.0.2.4 | 192.0.2.6 | 350 | Eth 1/1 (16) | 0 | 2401 +-----------+-----------+--------+--------------+-------------------+ 2403 Table 8: Packet Report with Interface Output Queue Length (ifOutQLen) 2404 Data 2406 The ifOutQLen MIB object defined in the IF-MIB [RFC2863] provides the 2407 length of the output packet queue. This columnar object is part of 2408 the ifEntry conceptual row and indexed by the interface index 2409 (ifIndex). 2411 This relationship between the ifOutQLen field and the index field is 2412 exported using mibIndexIndicator in the MIB Field Options Template. 2413 The value of "00010000" flags the index fields concisely. 2415 The Template Record for the example Data Record contains the 2416 following Information Elements: 2418 1. sourceIPv4Address 2420 2. destinationIPv4Address 2422 3. totalLengthIPv4 2424 4. egressInterface 2426 5. ifOutQLen indexed by: egressInterface 2428 Figure 37 shows the exported Template Set detailing the Template for 2429 exporting a PSAMP Report with Interface Output Queue Length 2430 (ifOutQLen). Figure 38 and Figure 39 show the MIB Field Options 2431 Template and Data Record. 2433 0 1 2 3 2434 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 2435 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2436 | Set ID = 2 | Length = 28 | 2437 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2438 | Template ID = 703 | Field Count = 5 | 2439 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2440 |0| IE = sourceIPv4Address | Field Length = 4 | 2441 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2442 |0| IE = destinationIPv4Address | Field Length = 4 | 2443 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2444 |0| IE = totalLengthIPv4 | Field Length = 4 | 2445 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2446 |0| IE = egressInterface | Field Length = 4 | 2447 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2448 |0| IE = mibObjectValueGauge | Field Length = 4 | 2449 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2451 Figure 37: Example of Template for a PSAMP Report with ifOutQLen 2452 indexed by egressInterface 2454 0 1 2 3 2455 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 2456 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2457 | Set ID = 3 | Length = 26 | 2458 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2459 | Template ID = 704 | Field Count = 4 | 2460 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2461 | Scope Field Count = 2 |0| IE = templateId | 2462 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2463 | Field Length = 2 |0| IE = informationElementIndex| 2464 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2465 | Field Length = 2 |0| IE = mibIndexIndicator | 2466 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2467 | Field Length = 1 |0| IE = mibObjectIdentifier | 2468 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2469 | Field Length = 65535 | 2470 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2472 Figure 38: Example of MIB Field Options Template for a PSAMP Report 2473 with ifOutQLen indexed by egressInterface 2475 0 1 2 3 2476 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 2477 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2478 | Set ID = 704 | Length = 21 | 2479 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2480 | templateId = 703 | informationElementIndex = 4 | 2481 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2482 |Index 00010000 | VLEN = 11 | mibObjectIdentifier ... | 2483 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2484 | "1.3.6.1.2.1.2.2.1.21" ... | 2485 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2486 | 06092B0601020102020115 ... | 2487 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2488 | | 2489 +-+-+-+-+-+-+-+-+ 2491 Figure 39: Example of MIB Field Options Data Record for a PSAMP 2492 Report with ifOutQLen indexed by egressInterface 2494 The corresponding IPFIX Data Record is shown in Figure 40. For the 2495 sake of the example, the interface index of "Eth 1/0" is 15 and the 2496 interface index of "Eth 1/1" is 16. 2498 0 1 2 3 2499 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 2500 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2501 | Set ID = 703 | Length = 84 | 2502 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2503 | 192.0.2.1 | 2504 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2505 | 192.0.2.3 | 2506 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2507 | 150 | 2508 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2509 | 15 (Eth 1/0) | 2510 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2511 | 45 | 2512 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2513 | 192.0.2.4 | 2514 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2515 | 192.0.2.9 | 2516 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2517 | 350 | 2518 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2519 | 15 (Eth 1/0) | 2520 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2521 | 45 | 2522 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2523 | 192.0.2.3 | 2524 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2525 | 192.0.2.9 | 2526 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2527 | 650 | 2528 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2529 | 15 (Eth 1/0) | 2530 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2531 | 23 | 2532 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2533 | 192.0.2.4 | 2534 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2535 | 192.0.2.6 | 2536 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2537 | 350 | 2538 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2539 | 16 (Eth 1/1) | 2540 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2541 | 0 | 2542 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2544 Figure 40: Example of PSAMP Packet Report with ifOutQLen indexed by 2545 egressInterface 2547 6.7. Exporting With Multiple Contexts: The OSPF Neighbor Row Revisited 2549 If the Context used to export the MIB objects is the default one no 2550 extra context fields are required. This example demonstrates how to 2551 handle the case when the Context needs to be specified. It is based 2552 on the previous example Section 6.3. 2554 The OSPF details exported of the conceptual row in Section 6.3 would 2555 be suitable if there were only one OSPF process running at the 2556 Observation Point. If multiple OSPF processes are present then they 2557 can be differentiated by also exporting the mibContextEngineID and 2558 mibContextName. 2560 The following fields will be exported: 2562 +------------------+----------------+-------------------------+-----+ 2563 | Object | ID | mibObjectValue | Len | 2564 +------------------+----------------+-------------------------+-----+ 2565 | ospfNbrIpAddr | ospfNbrEntry 1 | mibObjectValueIPAddress | 4 | 2566 | ospfNbrAddress- | ospfNbrEntry 2 | mibObjectValueInteger | 4 | 2567 | -LessIndex | | | | 2568 | ospfNbrRtrId | ospfNbrEntry 3 | mibObjectValueIPAddress | 4 | 2569 | ospfNbrState | ospfNbrEntry 6 | mibObjectValueInteger | 1 | 2570 +------------------+----------------+-------------------------+-----+ 2572 Table 9: OSPF Neighbor Entry Objects 2574 The example contextEngineID matches the example from [RFC3411] for 2575 Acme Networks: "'800002b804616263'H (enterprise 696, string 'abc')" 2577 Figure 41 shows the Templates Exported to support a mibObjectValueRow 2578 that is defined within a context. Figure 42 shows the example OID 2579 Data for the conceptual row exported in mibObjectValueRow. These are 2580 unchanged from the previous example. Figure 43 shows the example 2581 data for 2 OSPF neighbors. Although these have identical INDEX/scope 2582 values the context information indicates they come from different 2583 OSPF processes. Note that the OID for ospfNbrEntry has been encoded 2584 using ASN.1/BER to '06082B060102010E0A01' at 10 octets long. 2586 0 1 2 3 2587 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 2588 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2589 | Set ID = 2 | Length = 20 | 2590 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2591 | Template ID = 800 | Field Count = 3 | 2592 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2593 |0| IE = mibContextEngineID | Field Length = 8 | 2594 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2595 |0| IE = mibContextName | Field Length = 4 | 2596 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2597 |0| IE = mibObjectValueRow | Field Length = 16 | 2598 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2600 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2601 | Set ID = 3 | Length = 26 | 2602 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2603 | Template ID = 801 | Field Count = 4 | 2604 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2605 | Scope Field Count = 2 |0| IE = mibObjectValueIPAddress| 2606 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2607 | Field Length = 4 |0| IE = mibObjectValueInteger | 2608 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2609 | Field Length = 4 |0| IE = mibObjectValueIPAddress| 2610 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2611 | Field Length = 4 |0| IE = mibObjectValueInteger | 2612 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2613 | Field Length = 1 | 2614 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2616 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2617 | Set ID = 3 | 2618 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2619 | Length = 22 | Template ID = 802 | 2620 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2621 | Field Count = 3 | Scope Field Count = 2 | 2622 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2623 |0| IE = templateId | Field Length = 2 | 2624 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2625 |0| IE = informationElementIndex| Field Length = 2 | 2626 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2627 |0| IE = mibObjectIdentifier | Field Length = 65535 | 2628 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2630 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2631 | Set ID = 3 | Length = 22 | 2632 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2633 | Template ID = 803 | Field Count = 3 | 2634 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2635 | Scope Field Count = 2 |0| IE = templateId | 2636 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2637 | Field Length = 2 |0| IE = informationElementIndex| 2638 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2639 | Field Length = 2 |0| IE = mibSubIdentifier | 2640 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2641 | Field Length = 2 | 2642 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2644 Figure 41: Example of ospfNbrEntry Template and Options Template Sets 2645 with Context 2647 0 1 2 3 2648 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 2649 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2650 | Set ID = 802 | Length = 20 | 2651 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2652 | templateId = 800 | informationElementIndex = 2 | 2653 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2654 | VLEN=10 | mibObjectIdentifier = "1.3.6.1.2.1.14.10.1" | 2655 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2656 | 06082B060102010E0A01 | 2657 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2658 | | Padding = 0 | 2659 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2661 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2662 | Set ID = 803 | Length = 28 | 2663 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2664 | templateId = 801 | informationElementIndex = 0 | 2665 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2666 | mibSubIdentifier = 1 | templateId = 801 | 2667 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2668 | informationElementIndex = 1 | mibSubIdentifier = 2 | 2669 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2670 | templateId = 801 | informationElementIndex = 2 | 2671 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2672 | mibSubIdentifier = 3 | templateId = 801 | 2673 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2674 | informationElementIndex = 3 | mibSubIdentifier = 6 | 2675 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2677 Figure 42: Example of ospfNbrEntry OID Data export with Context 2678 0 1 2 3 2679 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 2680 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2681 | Set ID = 800 | Length = 60 | 2682 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2683 | mibContextEngineID = 800002b804616263 | 2684 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2685 | ... mibContextEngineID | 2686 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2687 | mibContextName = con1 | 2688 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2689 |Semantic=0xFF | Template ID = 801 | ... | 2690 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2691 | ospfNbrIpAddr = 192.0.2.1 | ... | 2692 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2693 | ospfNbrAddressLessIndex = 0 | ... | 2694 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2695 | ospfNbrRtrId = 1.1.1.1 |ospfNbrState=8 | 2696 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2697 | mibContextEngineID = 800002b804616263 | 2698 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2699 | ... mibContextEngineID | 2700 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2701 | mibContextName = con2 | 2702 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2703 |Semantic=0xFF | Template ID = 801 | ... | 2704 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2705 | ospfNbrIpAddr = 192.0.2.1 | ... | 2706 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2707 | ospfNbrAddressLessIndex = 0 | ... | 2708 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2709 | ospfNbrRtrId = 2.2.2.2 |ospfNbrState=8 | 2710 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2712 Figure 43: Example of Data Export for ospfNbrEntry with Context 2714 7. Configuration Considerations 2716 When configuring a MIB OID for export, consideration should be given 2717 to whether the SNMP Context String should also be configurable. If a 2718 non-default Context String is used then it should be associated with 2719 the fields as per Section 5.6. 2721 8. The Collecting Process's Side 2723 The specifications in section 9 of [RFC7011] also apply to Collectors 2724 that implement this specification. In addition, the following 2725 specifications should be noted. 2727 A Collecting Process that implements this specification MUST store 2728 the data records containing the OID Object Type Definitions with the 2729 same retention policy as templates. 2731 A Collecting Process that implements this specification SHOULD have 2732 access to MIB modules in order to look up the received MIB Object 2733 Identifiers and find the full type definition and name of MIB OID 2734 fields used in received templates. 2736 It should be noted that since reduced size encoding MAY be used by 2737 the Exporting Process, the Collecting Process cannot assume a 2738 received size for a field is the maximum size it should expect for 2739 that field. 2741 If a Collecting Process receives a MIB Object Identifier that it 2742 cannot decode, it MAY log a warning. 2744 A Collecting Process MUST support the 3 options for handling columnar 2745 objects detailed in Section 5.8. 2747 9. Applicability 2749 Making available the many and varied items from MIB modules opens up 2750 a wide range of possible applications for the IPFIX protocol, some 2751 quite different from the usual flow information. 2753 Some monitoring applications periodically export an interface ID to 2754 interface name mapping using IPFIX Options Templates. This could be 2755 expanded to include the MIB object "ifInUcastPkts" of the IF-MIB 2756 [RFC2863] indexed using the ingressInterface Information Element. 2757 This would give the input statistics for each interface which can be 2758 compared to the flow information to ensure the sampling rate is 2759 expected. Or, if there is no sampling, to ensure that all the 2760 expected packets are being monitored. 2762 10. Security Considerations 2764 For this extension to the IPFIX protocol, the same security 2765 considerations as for the IPFIX protocol apply [RFC7011]. 2767 If the exporter is generating or capturing the field values itself, 2768 e.g., using the MIB objects only as an encoding or type mechanism, 2769 there are no extra security considerations beyond standard IPFIX. 2771 However, if the exporter is implemented as an SNMP manager accessing 2772 an SNMP agent, it MUST authenticate itself to the SNMP agent 2773 [RFC3414], [RFC5591], [RFC5592], [RFC6353], and the SNMP agent MUST 2774 enforce SNMP access control rules [RFC3415] as required by the SNMP 2775 architecture [RFC3411]. 2777 The access to particular MIB objects is controlled by the 2778 configuration of the IPFIX exporter. This is consistent with the way 2779 IPFIX controls access to other Information Elements in general. 2781 The configuration of an IPFIX Exporter determines which MIB objects 2782 are included in IPFIX Data Records sent to certain collectors. 2783 Network operators should take care that the only MIB objects which 2784 are included in IPFIX Data Records are ones which the receiving flow 2785 collector is allowed to receive. Note that multiple users may have 2786 access to the data from the flow collector. 2788 When exporting MIB objects that may be considered sensitive or 2789 vulnerable in some network environments (as mentioned in the Security 2790 Considerations section of the RFC containing the MIB module), the 2791 Exporter should consider using "IP Flow Anonymization Support" 2792 [RFC6235] if the information is anonymizable. Consumers of exported 2793 data should therefore be able to handle the kinds of modifications to 2794 data described in [RFC6235]. 2796 11. IANA Considerations 2798 11.1. New IPFIX Semantics 2800 New IPFIX semantics must be allocated in IANA's IPFIX registry 2801 [IANA-IPFIX] per section 6 of [RFC7012], as defined in the sub- 2802 sections below. 2804 11.1.1. snmpCounter 2806 An integral value reporting the value of a counter, identical to the 2807 Counter32 and Counter64 semantics in [RFC2578], as determined by the 2808 field length. 2810 This is similar to IPFIX's totalCounter semantic, except that total 2811 counters have an initial value of 0, while SNMP counters do not. 2813 11.1.2. snmpGauge 2815 An integral value identical to the Gauge32 semantic in [RFC2578], and 2816 the Gauge64 semantic in [RFC2856], as determined by the field length. 2818 11.2. New IPFIX Information Elements 2820 The new Information Elements in Table 10 must be allocated in IANA's 2821 IPFIX registry [IANA-IPFIX], as defined in the sub-sections below. 2823 In each case the "Units" and "Range" are to be left blank, since 2824 these are not applicable. 2826 +-----------+---------------------------+ 2827 | ElementId | Name | 2828 +-----------+---------------------------+ 2829 | TBD1 | mibObjectValueInteger | 2830 | TBD2 | mibObjectValueOctetString | 2831 | TBD3 | mibObjectValueOID | 2832 | TBD4 | mibObjectValueBits | 2833 | TBD5 | mibObjectValueIPAddress | 2834 | TBD6 | mibObjectValueCounter | 2835 | TBD7 | mibObjectValueGauge | 2836 | TBD8 | mibObjectValueTimeTicks | 2837 | TBD9 | mibObjectValueUnsigned | 2838 | TBD10 | mibObjectValueTable | 2839 | TBD11 | mibObjectValueRow | 2840 | TBD12 | mibObjectIdentifier | 2841 | TBD13 | mibSubIdentifier | 2842 | TBD14 | mibIndexIndicator | 2843 | TBD15 | mibCaptureTimeSemantics | 2844 | TBD16 | mibContextEngineID | 2845 | TBD17 | mibContextName | 2846 | TBD18 | mibObjectName | 2847 | TBD19 | mibObjectDescription | 2848 | TBD20 | mibObjectSyntax | 2849 | TBD21 | mibModuleName | 2850 +-----------+---------------------------+ 2852 Table 10: New Information Elements 2854 11.2.1. New MIB Value Information Elements 2856 11.2.1.1. mibObjectValueInteger 2858 A new Information Element "mibObjectValueInteger" must be allocated 2859 in IANA's IPFIX registry [IANA-IPFIX], with the following definition: 2861 Description: An IPFIX Information Element which denotes that the 2862 integer value of a MIB object will be exported. The MIB Object 2863 Identifier ("mibObjectIdentifier") for this field MUST be exported 2864 in a MIB Field Option or via another means. This Information 2865 Element is used for MIB objects with the Base Syntax of Integer32 2866 and INTEGER with IPFIX Reduced Size Encoding used as required. 2867 The value is encoded as per the standard IPFIX Abstract Data Type 2868 of signed64. 2870 Abstract Data Type: signed64 2872 Data Type Semantics: identifier 2874 ElementId: TBD1 2876 Status: current 2878 Reference: [this document]. 2880 11.2.1.2. mibObjectValueOctetString 2882 A new Information Element "mibObjectValueOctetString" must be 2883 allocated in IANA's IPFIX registry [IANA-IPFIX], with the following 2884 definition: 2886 Description: An IPFIX Information Element which denotes that an 2887 Octet String or Opaque value of a MIB object will be exported. 2888 The MIB Object Identifier ("mibObjectIdentifier") for this field 2889 MUST be exported in a MIB Field Option or via another means. This 2890 Information Element is used for MIB objects with the Base Syntax 2891 of OCTET STRING and Opaque. The value is encoded as per the 2892 standard IPFIX Abstract Data Type of octetArray. 2894 Abstract Data Type: octetArray 2896 Data Type Semantics: default 2898 ElementId: TBD2 2900 Status: current 2902 Reference: [this document]. 2904 11.2.1.3. mibObjectValueOID 2906 A new Information Element "mibObjectValueOID" must be allocated in 2907 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 2909 Description: An IPFIX Information Element which denotes that an 2910 Object Identifier or OID value of a MIB object will be exported. 2911 The MIB Object Identifier ("mibObjectIdentifier") for this field 2912 MUST be exported in a MIB Field Option or via another means. This 2913 Information Element is used for MIB objects with the Base Syntax 2914 of OBJECT IDENTIFIER. Note - In this case the 2915 "mibObjectIdentifier" will define which MIB object is being 2916 exported while the value contained in this Information Element 2917 will be an OID as a value. The mibObjectValueOID Information 2918 Element is encoded as ASN.1/BER [BER] in an octetArray. 2920 Abstract Data Type: octetArray 2922 Data Type Semantics: default 2924 ElementId: TBD3 2926 Status: current 2928 Reference: [this document]. 2930 11.2.1.4. mibObjectValueBits 2932 A new Information Element "mibObjectValueBits" must be allocated in 2933 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 2935 Description: An IPFIX Information Element which denotes that a set 2936 of Enumerated flags or bits from a MIB object will be exported. 2937 The MIB Object Identifier ("mibObjectIdentifier") for this field 2938 MUST be exported in a MIB Field Option or via another means. This 2939 Information Element is used for MIB objects with the Base Syntax 2940 of BITS. The flags or bits are encoded as per the standard IPFIX 2941 Abstract Data Type of octetArray, with sufficient length to 2942 accommodate the required number of bits. If the number of bits is 2943 not an integer multiple of octets then the most significant bits 2944 at end of the octetArray MUST be set to zero. 2946 Abstract Data Type: octetArray 2948 Data Type Semantics: flags 2950 ElementId: TBD4 2952 Status: current 2954 Reference: [this document]. 2956 11.2.1.5. mibObjectValueIPAddress 2958 A new Information Element "mibObjectValueIPAddress" must be allocated 2959 in IANA's IPFIX registry [IANA-IPFIX], with the following definition: 2961 Description: An IPFIX Information Element which denotes that the 2962 IPv4 Address of a MIB object will be exported. The MIB Object 2963 Identifier ("mibObjectIdentifier") for this field MUST be exported 2964 in a MIB Field Option or via another means. This Information 2965 Element is used for MIB objects with the Base Syntax of IPaddress. 2966 The value is encoded as per the standard IPFIX Abstract Data Type 2967 of ipv4Address. 2969 Abstract Data Type: ipv4Address 2971 Data Type Semantics: default 2973 ElementId: TBD5 2975 Status: current 2977 Reference: [this document]. 2979 11.2.1.6. mibObjectValueCounter 2981 A new Information Element "mibObjectValueCounter" must be allocated 2982 in IANA's IPFIX registry [IANA-IPFIX], with the following definition: 2984 Description: An IPFIX Information Element which denotes that the 2985 counter value of a MIB object will be exported. The MIB Object 2986 Identifier ("mibObjectIdentifier") for this field MUST be exported 2987 in a MIB Field Option or via another means. This Information 2988 Element is used for MIB objects with the Base Syntax of Counter32 2989 or Counter64 with IPFIX Reduced Size Encoding used as required. 2990 The value is encoded as per the standard IPFIX Abstract Data Type 2991 of unsigned64. 2993 Abstract Data Type: unsigned64 2995 Data Type Semantics: snmpCounter 2997 ElementId: TBD6 2999 Status: current 3001 Reference: [this document]. 3003 11.2.1.7. mibObjectValueGauge 3005 A new Information Element "mibObjectValueGauge" must be allocated in 3006 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3008 Description: An IPFIX Information Element which denotes that the 3009 Gauge value of a MIB object will be exported. The MIB Object 3010 Identifier ("mibObjectIdentifier") for this field MUST be exported 3011 in a MIB Field Option or via another means. This Information 3012 Element is used for MIB objects with the Base Syntax of Gauge32. 3013 The value is encoded as per the standard IPFIX Abstract Data Type 3014 of unsigned64. This value will represent a non-negative integer, 3015 which may increase or decrease, but shall never exceed a maximum 3016 value, nor fall below a minimum value. 3018 Abstract Data Type: unsigned32 3020 Data Type Semantics: snmpGauge 3022 ElementId: TBD7 3024 Status: current 3026 Reference: [this document]. 3028 11.2.1.8. mibObjectValueTimeTicks 3030 A new Information Element "mibObjectValueTimeTicks" must be allocated 3031 in IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3033 Description: An IPFIX Information Element which denotes that the 3034 TimeTicks value of a MIB object will be exported. The MIB Object 3035 Identifier ("mibObjectIdentifier") for this field MUST be exported 3036 in a MIB Field Option or via another means. This Information 3037 Element is used for MIB objects with the Base Syntax of TimeTicks. 3038 The value is encoded as per the standard IPFIX Abstract Data Type 3039 of unsigned32. 3041 Abstract Data Type: unsigned32 3043 Data Type Semantics: default 3045 ElementId: TBD8 3047 Status: current 3049 Reference: [this document]. 3051 11.2.1.9. mibObjectValueUnsigned 3053 A new Information Element "mibObjectValueUnsigned" must be allocated 3054 in IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3056 Description: An IPFIX Information Element which denotes that an 3057 unsigned integer value of a MIB object will be exported. The MIB 3058 Object Identifier ("mibObjectIdentifier") for this field MUST be 3059 exported in a MIB Field Option or via another means. This 3060 Information Element is used for MIB objects with the Base Syntax 3061 of unsigned64 with IPFIX Reduced Size Encoding used as required. 3062 The value is encoded as per the standard IPFIX Abstract Data Type 3063 of unsigned64. 3065 Abstract Data Type: unsigned64 3067 Data Type Semantics: identifier 3069 ElementId: TBD9 3071 Status: current 3073 Reference: [this document]. 3075 11.2.1.10. mibObjectValueTable 3077 A new Information Element "mibObjectValueTable" must be allocated in 3078 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3080 Description: An IPFIX Information Element which denotes that a 3081 complete or partial conceptual table will be exported. The MIB 3082 Object Identifier ("mibObjectIdentifier") for this field MUST be 3083 exported in a MIB Field Option or via another means. This 3084 Information Element is used for MIB objects with a SYNTAX of 3085 SEQUENCE. This is encoded as a subTemplateList of mibObjectValue 3086 Information Elements. The template specified in the 3087 subTemplateList MUST be an Options Template and MUST include all 3088 the Objects listed in the INDEX clause as Scope Fields. 3090 Abstract Data Type: subTemplateList 3092 Data Type Semantics: list 3094 ElementId: TBD10 3096 Status: current 3098 Reference: [this document]. 3100 11.2.1.11. mibObjectValueRow 3102 A new Information Element "mibObjectValueRow" must be allocated in 3103 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3105 Description: An IPFIX Information Element which denotes that a 3106 single row of a conceptual table will be exported. The MIB Object 3107 Identifier ("mibObjectIdentifier") for this field MUST be exported 3108 in a MIB Field Option or via another means. This Information 3109 Element is used for MIB objects with a SYNTAX of SEQUENCE. This 3110 is encoded as a subTemplateList of mibObjectValue Information 3111 Elements. The subTemplateList exported MUST contain exactly one 3112 row (i.e., one instance of the subtemplate). The template 3113 specified in the subTemplateList MUST be an Options Template and 3114 MUST include all the Objects listed in the INDEX clause as Scope 3115 Fields. 3117 Abstract Data Type: subTemplateList 3119 Data Type Semantics: list 3121 ElementId: TBD11 3123 Status: current 3125 Reference: [this document]. 3127 11.2.2. New MIB Field Options Information Elements 3129 11.2.2.1. mibObjectIdentifier 3131 A new Information Element "mibObjectIdentifier" must be allocated in 3132 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3134 Description: An IPFIX Information Element which denotes that a MIB 3135 Object Identifier (MIB OID) is exported in the (Options) Template 3136 Record. The mibObjectIdentifier Information Element contains the 3137 OID assigned to the MIB Object Type Definition encoded as ASN.1/ 3138 BER [BER] 3140 Abstract Data Type: octetArray 3142 Data Type Semantics: default 3144 ElementId: TBD12 3146 Status: current 3147 Reference: [this document]. 3149 11.2.2.2. mibSubIdentifier 3151 A new Information Element "mibSubIdentifier" must be allocated in 3152 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3154 Description: A non-negative sub-identifier of an Object Identifier 3155 (OID). 3157 Abstract Data Type: unsigned32 3159 Data Type Semantics: identifier 3161 ElementId: TBD13 3163 Status: current 3165 Reference: [this document]. 3167 11.2.2.3. mibIndexIndicator 3169 A new Information Element "mibIndexIndicator" must be allocated in 3170 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3172 Description: This set of bit fields is used for marking the 3173 Information Elements of a Data Record that serve as INDEX MIB 3174 objects for an indexed Columnar MIB object. Each bit represents 3175 an Information Element in the Data Record with the n-th bit 3176 representing the n-th Information Element. A bit set to value 1 3177 indicates that the corresponding Information Element is an index 3178 of the Columnar Object represented by the mibFieldValue. A bit 3179 set to value 0 indicates that this is not the case. 3181 If the Data Record contains more than 64 Information Elements, the 3182 corresponding Template SHOULD be designed such that all INDEX 3183 Fields are among the first 64 Information Elements, because the 3184 mibIndexIndicator only contains 64 bits. If the Data Record 3185 contains less than 64 Information Elements, then the extra bits in 3186 the mibIndexIndicator for which no corresponding Information 3187 Element exists MUST have the value 0, and must be disregarded by 3188 the Collector. This Information Element may be exported with 3189 IPFIX Reduced Size Encoding. 3191 Abstract Data Type: unsigned64 3193 Data Type Semantics: flags 3194 ElementId: TBD14 3196 Status: current 3198 Reference: [this document]. 3200 11.2.2.4. mibCaptureTimeSemantics 3202 A new Information Element "mibCaptureTimeSemantics" must be allocated 3203 in IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3205 Description: Indicates when in the lifetime of the flow the MIB 3206 value was retrieved from the MIB for a mibObjectIdentifier. This 3207 is used to indicate if the value exported was collected from the 3208 MIB closer to flow creation or flow export time and will refer to 3209 the Timestamp fields included in the same record. This field 3210 SHOULD be used when exporting a mibObjectValue that specifies 3211 counters or statistics. 3213 If the MIB value was sampled by SNMP prior to the IPFIX Metering 3214 Process or Exporting Process retrieving the value (i.e., the data 3215 is already stale) and it's important to know the exact sampling 3216 time, then an additional observationTime* element should be paired 3217 with the OID using structured data. Similarly, if different 3218 mibCaptureTimeSemantics apply to different mibObject elements 3219 within the Data Record, then individual mibCaptureTimeSemantics 3220 should be paired with each OID using structured data. 3222 Values: 3224 0. undefined 3226 1. begin - The value for the MIB object is captured from the 3227 MIB when the Flow is first observed 3229 2. end - The value for the MIB object is captured from the MIB 3230 when the Flow ends 3232 3. export - The value for the MIB object is captured from the 3233 MIB at export time 3235 4. average - The value for the MIB object is an average of 3236 multiple captures from the MIB over the observed life of the 3237 Flow 3239 Abstract Data Type: unsigned8 3241 Data Type Semantics: identifier 3242 ElementId: TBD15 3244 Status: current 3246 Reference: [this document]. 3248 11.2.2.5. mibContextEngineID 3250 A new Information Element "mibContextEngineID" must be allocated in 3251 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3253 Description: A mibContextEngineID that specifies the SNMP engine 3254 ID for a MIB field being exported over IPFIX. Definition as per 3255 [RFC3411] section 3.3 3257 Abstract Data Type: octetArray 3259 Data Type Semantics: default 3261 ElementId: TBD16 3263 Status: current 3265 Reference: [this document]. 3267 11.2.2.6. mibContextName 3269 A new Information Element "mibContextName" must be allocated in 3270 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3272 Description: This Information Element denotes that a MIB Context 3273 Name is specified for a MIB field being exported over IPFIX. 3274 Reference [RFC3411] section 3.3 3276 Abstract Data Type: string 3278 Data Type Semantics: default 3280 ElementId: TBD17 3282 Status: current 3284 Reference: [this document]. 3286 11.2.3. New MIB Type Information Elements 3288 11.2.3.1. mibObjectName 3290 A new Information Element "mibObjectName" must be allocated in IANA's 3291 IPFIX registry [IANA-IPFIX], with the following definition: 3293 Description: The name (called a descriptor in [RFC2578]) of an 3294 object type definition. 3296 Abstract Data Type: string 3298 Data Type Semantics: default 3300 ElementId: TBD18 3302 Status: current 3304 Reference: [this document]. 3306 11.2.3.2. mibObjectDescription 3308 A new Information Element "mibObjectDescription" must be allocated in 3309 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3311 Description: The value of the DESCRIPTION clause of an MIB object 3312 type definition. 3314 Abstract Data Type: string 3316 Data Type Semantics: default 3318 ElementId: TBD19 3320 Status: current 3322 Reference: [this document]. 3324 11.2.3.3. mibObjectSyntax 3326 A new Information Element "mibObjectSyntax" must be allocated in 3327 IANA's IPFIX registry [IANA-IPFIX], with the following definition: 3329 Description: The value of the SYNTAX clause of an MIB object type 3330 definition, which may include a Textual Convention or Subtyping. 3331 See [RFC2578]. 3333 Abstract Data Type: string 3334 Data Type Semantics: default 3336 ElementId: TBD20 3338 Status: current 3340 Reference: [this document]. 3342 11.2.3.4. mibModuleName 3344 A new Information Element "mibModuleName" must be allocated in IANA's 3345 IPFIX registry [IANA-IPFIX], with the following definition: 3347 Description: The textual name of the MIB module that defines a MIB 3348 Object. 3350 Abstract Data Type: string 3352 Data Type Semantics: default 3354 ElementId: TBD21 3356 Status: current 3358 Reference: [this document]. 3360 12. Acknowledgements 3362 The authors would like to thank Andrew Johnson for his collaboration 3363 on the first version of the draft, and to thank Andrew Feren and 3364 Brian Trammell for their detailed reviews. 3366 Juergen Schoenwaelder was partly funded by Flamingo, a Network of 3367 Excellence project (ICT-318488) supported by the European Commission 3368 under its Seventh Framework Programme. 3370 13. References 3372 13.1. Normative References 3374 [BER] International Organization for Standardization, 3375 "Information processing systems - Open Systems 3376 Interconnection - Specification of Basic Encoding Rules 3377 for Abstract Syntax Notation One (ASN.1),International 3378 Organization for Standardization. International Standard 3379 8825, December 1987", . 3381 [IANA-IPFIX] 3382 IANA, "IPFIX Information Elements registry", 3383 . 3385 [IANA-IPFIX-SDTS] 3386 IANA, "IPFIX Structured Data Types Semantics registry", 3387 . 3389 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 3390 Requirement Levels", BCP 14, RFC 2119, 3391 DOI 10.17487/RFC2119, March 1997, 3392 . 3394 [RFC2578] McCloghrie, K., Ed., Perkins, D., Ed., and J. 3395 Schoenwaelder, Ed., "Structure of Management Information 3396 Version 2 (SMIv2)", STD 58, RFC 2578, 3397 DOI 10.17487/RFC2578, April 1999, 3398 . 3400 [RFC2856] Bierman, A., McCloghrie, K., and R. Presuhn, "Textual 3401 Conventions for Additional High Capacity Data Types", 3402 RFC 2856, DOI 10.17487/RFC2856, June 2000, 3403 . 3405 [RFC3411] Harrington, D., Presuhn, R., and B. Wijnen, "An 3406 Architecture for Describing Simple Network Management 3407 Protocol (SNMP) Management Frameworks", STD 62, RFC 3411, 3408 DOI 10.17487/RFC3411, December 2002, 3409 . 3411 [RFC6526] Claise, B., Aitken, P., Johnson, A., and G. Muenz, "IP 3412 Flow Information Export (IPFIX) Per Stream Control 3413 Transmission Protocol (SCTP) Stream", RFC 6526, 3414 DOI 10.17487/RFC6526, March 2012, 3415 . 3417 [RFC7011] Claise, B., Ed., Trammell, B., Ed., and P. Aitken, 3418 "Specification of the IP Flow Information Export (IPFIX) 3419 Protocol for the Exchange of Flow Information", STD 77, 3420 RFC 7011, DOI 10.17487/RFC7011, September 2013, 3421 . 3423 [RFC7012] Claise, B., Ed. and B. Trammell, Ed., "Information Model 3424 for IP Flow Information Export (IPFIX)", RFC 7012, 3425 DOI 10.17487/RFC7012, September 2013, 3426 . 3428 13.2. Informative References 3430 [CISCO-PROCESS-MIB] 3431 Cisco Systems Inc., "CISCO-PROCESS-MIB.my: MIB for CPU and 3432 process statistics", 3433 . 3436 [RFC2863] McCloghrie, K. and F. Kastenholz, "The Interfaces Group 3437 MIB", RFC 2863, DOI 10.17487/RFC2863, June 2000, 3438 . 3440 [RFC2982] Kavasseri, R., Ed., "Distributed Management Expression 3441 MIB", RFC 2982, DOI 10.17487/RFC2982, October 2000, 3442 . 3444 [RFC3414] Blumenthal, U. and B. Wijnen, "User-based Security Model 3445 (USM) for version 3 of the Simple Network Management 3446 Protocol (SNMPv3)", STD 62, RFC 3414, 3447 DOI 10.17487/RFC3414, December 2002, 3448 . 3450 [RFC3415] Wijnen, B., Presuhn, R., and K. McCloghrie, "View-based 3451 Access Control Model (VACM) for the Simple Network 3452 Management Protocol (SNMP)", STD 62, RFC 3415, 3453 DOI 10.17487/RFC3415, December 2002, 3454 . 3456 [RFC3444] Pras, A. and J. Schoenwaelder, "On the Difference between 3457 Information Models and Data Models", RFC 3444, 3458 DOI 10.17487/RFC3444, January 2003, 3459 . 3461 [RFC4022] Raghunarayan, R., Ed., "Management Information Base for 3462 the Transmission Control Protocol (TCP)", RFC 4022, 3463 DOI 10.17487/RFC4022, March 2005, 3464 . 3466 [RFC4293] Routhier, S., Ed., "Management Information Base for the 3467 Internet Protocol (IP)", RFC 4293, DOI 10.17487/RFC4293, 3468 April 2006, . 3470 [RFC4750] Joyal, D., Ed., Galecki, P., Ed., Giacalone, S., Ed., 3471 Coltun, R., and F. Baker, "OSPF Version 2 Management 3472 Information Base", RFC 4750, DOI 10.17487/RFC4750, 3473 December 2006, . 3475 [RFC4960] Stewart, R., Ed., "Stream Control Transmission Protocol", 3476 RFC 4960, DOI 10.17487/RFC4960, September 2007, 3477 . 3479 [RFC5470] Sadasivan, G., Brownlee, N., Claise, B., and J. Quittek, 3480 "Architecture for IP Flow Information Export", RFC 5470, 3481 DOI 10.17487/RFC5470, March 2009, 3482 . 3484 [RFC5476] Claise, B., Ed., Johnson, A., and J. Quittek, "Packet 3485 Sampling (PSAMP) Protocol Specifications", RFC 5476, 3486 DOI 10.17487/RFC5476, March 2009, 3487 . 3489 [RFC5591] Harrington, D. and W. Hardaker, "Transport Security Model 3490 for the Simple Network Management Protocol (SNMP)", 3491 STD 78, RFC 5591, DOI 10.17487/RFC5591, June 2009, 3492 . 3494 [RFC5592] Harrington, D., Salowey, J., and W. Hardaker, "Secure 3495 Shell Transport Model for the Simple Network Management 3496 Protocol (SNMP)", RFC 5592, DOI 10.17487/RFC5592, June 3497 2009, . 3499 [RFC6235] Boschi, E. and B. Trammell, "IP Flow Anonymization 3500 Support", RFC 6235, DOI 10.17487/RFC6235, May 2011, 3501 . 3503 [RFC6313] Claise, B., Dhandapani, G., Aitken, P., and S. Yates, 3504 "Export of Structured Data in IP Flow Information Export 3505 (IPFIX)", RFC 6313, DOI 10.17487/RFC6313, July 2011, 3506 . 3508 [RFC6353] Hardaker, W., "Transport Layer Security (TLS) Transport 3509 Model for the Simple Network Management Protocol (SNMP)", 3510 STD 78, RFC 6353, DOI 10.17487/RFC6353, July 2011, 3511 . 3513 Authors' Addresses 3515 Paul Aitken (editor) 3516 Brocade Communications Systems, Inc. 3517 19a Canning Street, Level 3 3518 Edinburgh, Scotland EH3 8EG 3519 United Kingdom 3521 Phone: +44 203 005 0731 3522 Email: paitken@brocade.com 3523 Benoit Claise 3524 Cisco Systems, Inc. 3525 De Kleetlaan 6a b1 3526 Diegem 1813 3527 Belgium 3529 Phone: +32 2 704 5622 3530 Email: bclaise@cisco.com 3532 Srikar B S 3533 Cisco Systems, Inc. 3534 Mail Stop BGL13/3/, SEZ Unit, Cessna Business Park, Kadubeesanahalli 3535 Village Varthur Hobli, Sarjapur Marathalli Outer Ring Road 3536 Bangalore KARNATAKA 560 103 3537 IN 3539 Phone: +91 80 4426 3264 3540 Email: srikar@cisco.com 3542 Colin McDowall 3543 Brocade Communications Systems, Inc. 3544 19a Canning Street, Level 3 3545 Edinburgh, Scotland EH3 8EG 3546 United Kingdom 3548 Phone: +44 203 005 0687 3549 Email: cmcdowal@brocade.com 3551 Juergen Schoenwaelder 3552 Jacobs University Bremen 3553 Campus Ring 1 3554 Bremen 28725 3555 Germany 3557 Phone: +49 421 200-3587 3558 Email: j.schoenwaelder@jacobs-university.de