idnits 2.17.1 draft-sehgal-roll-rpl-mib-02.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** You're using the IETF Trust Provisions' Section 6.b License Notice from 12 Sep 2009 rather than the newer Notice from 28 Dec 2009. (See https://trustee.ietf.org/license-info/) 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 2 instances of lines with non-RFC6890-compliant IPv4 addresses in the document. If these are example addresses, they should be changed. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 139 has weird spacing: '...eration rpl...' == Line 150 has weird spacing: '...ference rpl...' == Line 156 has weird spacing: '...rolSize rpl...' == Line 164 has weird spacing: '...ceIndex rplDo...' == The document seems to use 'NOT RECOMMENDED' as an RFC 2119 keyword, but does not include the phrase in its RFC 2119 key words list. -- The document date (October 31, 2011) is 4562 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) == Missing Reference: 'TBD' is mentioned on line 1048, but not defined Summary: 1 error (**), 0 flaws (~~), 8 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Internet Engineering Task Force K. Korte 3 Internet-Draft J. Schoenwaelder 4 Intended status: Standards Track A. Sehgal 5 Expires: May 3, 2012 Jacobs University 6 T. Tsou 7 C. Zhou 8 Huawei Technologies 9 October 31, 2011 11 Definition of Managed Objects for the IPv6 Routing Protocol for Low 12 Power and Lossy Networks (RPL) 13 draft-sehgal-roll-rpl-mib-02 15 Abstract 17 This memo defines a portion of the Management Information Base (MIB) 18 for use with network management protocols in the Internet community. 19 In particular, it defines objects for managing the IPv6 Routing 20 Protocol for Low Power and Lossy Networks (RPL). 22 Status of This Memo 24 This Internet-Draft is submitted to IETF in full conformance with the 25 provisions of BCP 78 and BCP 79. 27 Internet-Drafts are working documents of the Internet Engineering 28 Task Force (IETF), its areas, and its working groups. Note that 29 other groups may also distribute working documents as Internet- 30 Drafts. 32 Internet-Drafts are draft documents valid for a maximum of six months 33 and may be updated, replaced, or obsoleted by other documents at any 34 time. It is inappropriate to use Internet-Drafts as reference 35 material or to cite them other than as "work in progress." 37 The list of current Internet-Drafts can be accessed at 38 http://www.ietf.org/ietf/1id-abstracts.txt. 40 The list of Internet-Draft Shadow Directories can be accessed at 41 http://www.ietf.org/shadow.html. 43 This Internet-Draft will expire on May 3, 2012. 45 Copyright Notice 47 Copyright (c) 2011 IETF Trust and the persons identified as the 48 document authors. All rights reserved. 50 This document is subject to BCP 78 and the IETF Trust's Legal 51 Provisions Relating to IETF Documents 52 (http://trustee.ietf.org/license-info) in effect on the date of 53 publication of this document. Please review these documents 54 carefully, as they describe your rights and restrictions with respect 55 to this document. Code Components extracted from this document must 56 include Simplified BSD License text as described in Section 4.e of 57 the Trust Legal Provisions and are provided without warranty as 58 described in the BSD License. 60 Table of Contents 62 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 63 2. The Internet-Standard Management Framework . . . . . . . . . . 3 64 3. Conventions . . . . . . . . . . . . . . . . . . . . . . . . . 3 65 4. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 66 5. Relationship to Other MIB Modules . . . . . . . . . . . . . . 5 67 6. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 5 68 7. Security Considerations . . . . . . . . . . . . . . . . . . . 23 69 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 23 70 9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 24 71 9.1. Normative References . . . . . . . . . . . . . . . . . . . 24 72 9.2. Informative References . . . . . . . . . . . . . . . . . . 24 73 Appendix A. Open Issues . . . . . . . . . . . . . . . . . . . . . 25 75 1. Introduction 77 This memo defines a portion of the Management Information Base (MIB) 78 for use with network management protocols. In particular it defines 79 objects for managing the IPv6 Routing Protocol for Low Power and 80 Lossy Networks (RPL) [I-D.ietf-roll-rpl]. 82 2. The Internet-Standard Management Framework 84 For a detailed overview of the documents that describe the current 85 Internet-Standard Management Framework, please refer to section 7 of 86 RFC 3410 [RFC3410]. 88 Managed objects are accessed via a virtual information store, termed 89 the Management Information Base or MIB. MIB objects are generally 90 accessed through the Simple Network Management Protocol (SNMP). 91 Objects in the MIB are defined using the mechanisms defined in the 92 Structure of Management Information (SMI). This memo specifies a MIB 93 module that is compliant to the SMIv2, which is described in STD 58, 94 RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] and STD 58, RFC 2580 95 [RFC2580]. 97 3. Conventions 99 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 100 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 101 document are to be interpreted as described in RFC 2119 [RFC2119]. 103 4. Overview 105 The MIB module is organized into a group of scalars and tables. 107 rplMib(1.3.6.1.2.1.8888) 108 | 109 +-rplNotifications(0) 110 | 111 +-rplObjects(1) 112 | 113 +-rplGeneral(1) 114 | | 115 | +- rwn RplDISMode rplDefaultDISMode(1) 116 | 117 +-rplActive(2) 118 | | 119 | +- rwn RplInstanceID rplActiveInstance(1) 120 | +- rwn InetAddressIPv6 rplActiveDodag(2) 121 | +- r-n Unsigned32 rplActiveDodagDAOSequence(3) 122 | +- rwn Unsigned32 rplActiveDodagTriggerSequence(4) 123 | 124 +-rplOCPTable(3) 125 | | 126 | +-rplOCPEntry(1) [rplOCPCodepoint] 127 | | 128 | +- --- RplObjectiveCodePoint rplOCPCodepoint(1) 129 | +- rwn TruthValue rplOCPEnabled(2) 130 | 131 +-rplRPLInstanceTable(4) 132 | | 133 | +-rplRPLInstanceEntry(1) [rplRPLInstanceID] 134 | | 135 | +- --- RplInstanceID rplRPLInstanceID(1) 136 | +- rwn RplObjectiveCodePoint rplRPLInstanceOCP(2) 137 | +- rwn RplDISMode rplRPLInstanceDisMode(3) 138 | +- rwn Enumeration rplRPLInstanceDAOAcknowledgement(4) 139 | +- rwn RplModeOfOperation rplRPLInstanceModeOfOperation(5) 140 | 141 +-rplDodagTable(5) 142 | | 143 | +-rplDodagEntry(1) [rplRPLInstanceID,rplDodagRoot] 144 | | 145 | +- --- InetAddressIPv6 rplDodagRoot(1) 146 | +- r-n RplDodagVersionNumber rplDodagVersion(2) 147 | +- r-n RplRank rplDodagRank(3) 148 | +- r-n Enumeration rplDodagState(4) 149 | +- r-n RplDAODelay rplDodagDAODelay(5) 150 | +- r-n RplDodagPreference rplDodagPreference(6) 151 | +- r-n RplMinHopRankIncrease rplDodagMinHopRankIncrease(7) 152 | +- r-n Unsigned32 rplDodagMaxRankIncrease(8) 153 | +- r-n Unsigned32 rplDodagIntervalDoublings(9) 154 | +- r-n Unsigned32 rplDodagIntervalMin(10) 155 | +- r-n Unsigned32 rplDodagRedundancyConstant(11) 156 | +- r-n RplPathControlSize rplDodagPathControlSize(12) 157 | 158 +-rplDodagParentTable(6) 159 | | 160 | +-rplDodagParentEntry(1) [rplRPLInstanceID,rplDodagRoot, 161 | | rplDodagParentID] 162 | | 163 | +- --- InetAddressIPv6 rplDodagParentID(1) 164 | +- r-n InterfaceIndex rplDodagParentIf(2) 165 | 166 +-rplDodagChildTable(7) 167 | | 168 | +-rplDodagChildEntry(1) [rplRPLInstanceID,rplDodagRoot, 169 | | rplDodagChildID] 170 | | 171 | +- r-n InetAddressIPv6 rplDodagChildID(1) 172 | 173 +-rplDodagPrefixTable(8) 174 | | 175 | +-rplDodagPrefixEntry(1) [rplRPLInstanceID,rplDodagRoot, 176 | | rplDodagPrefixIpv6Prefix, 177 | | rplDodagPrefixIpv6PrefixLength] 178 | | 179 | +- r-n InetAddressIPv6 rplDodagPrefixIpv6Prefix(1) 180 | +- r-n InetAddressPrefixLength rplDodagPrefixIpv6PrefixLength(2) 181 | 182 +-rplStats(9) 183 | 184 +- r-n Counter32 rplStatsMemOverflows(1) 185 +- r-n Counter32 rplStatsValidParentFailures(2) 186 +- r-n Counter32 rplStatsNoInstanceIDs(3) 187 +- r-n Counter32 rplStatsTriggeredLocalRepairs(4) 188 +- r-n Counter32 rplStatsTriggeredGlobalRepairs(5) 189 +- r-n Counter32 rplStatsParseErrors(6) 190 +- r-n Counter32 rplStatsNoParentSecs(7) 191 +- r-n Counter32 rplStatsActiveNoParentSecs(8) 192 +- r-n Counter32 rplStatsOBitSetDownwards(9) 193 +- r-n Counter32 rplStatsOBitClearedUpwards(10) 194 +- r-n Counter32 rplStatsFBitSet(11) 195 +- r-n Counter32 rplStatsRBitSet(12) 197 5. Relationship to Other MIB Modules 199 The MIB module IMPORTS definitions from SNMPv2-SMI [RFC2578], 200 SNMPv2-TC [RFC2579], SNMPv2-CONF [RFC2580], IF-MIB [RFC2863] and the 201 INET-ADDRESS-MIB [RFC4001]. 203 6. Definitions 205 RPL-MIB DEFINITIONS ::= BEGIN 207 IMPORTS 208 MODULE-IDENTITY, OBJECT-TYPE, Unsigned32, Counter32, mib-2 209 FROM SNMPv2-SMI -- RFC 2578 210 TEXTUAL-CONVENTION, TruthValue 211 FROM SNMPv2-TC -- RFC 2579 212 OBJECT-GROUP, MODULE-COMPLIANCE 213 FROM SNMPv2-CONF -- RFC 2580 214 InterfaceIndex 215 FROM IF-MIB -- RFC 2863 216 InetAddressIPv6, InetAddressPrefixLength 217 FROM INET-ADDRESS-MIB; -- RFC 4001 218 -- XXX Are we sure RPL will never ever support a different 219 -- XXX version of IP? 221 rplMib MODULE-IDENTITY 222 LAST-UPDATED "201110310000Z" 223 ORGANIZATION 224 "Jacobs University Bremen" 225 CONTACT-INFO 226 "Kevin Dominik Korte 227 Jacobs University Bremen 228 Email: k.korte@jacobs-university.de 230 Anuj Sehgal 231 Jacobs University Bremen 232 Email: s.anuj@jacobs-university.de 234 Juergen Schoenwaelder 235 Jacobs University Bremen 236 Email: j.schoenwaelder@jacobs-university.de 238 Tina Tsou 239 Huawei Technologies 240 Email: tena@huawei.com 242 Cathy Zhou 243 Huawei Technologies 244 Email: cathyzhou@huawei.com" 245 DESCRIPTION 246 "The MIB module for monitoring nodes implementing the IPv6 247 routing protocol for low power and lossy networks (RPL). 249 Copyright (c) 2011 IETF Trust and the persons identified as 250 authors of the code. All rights reserved. 252 Redistribution and use in source and binary forms, with or 253 without modification, is permitted pursuant to, and subject 254 to the license terms contained in, the Simplified BSD 255 License set forth in Section 4.c of the IETF Trust's 256 Legal Provisions Relating to IETF Documents 257 (http://trustee.ietf.org/license-info)." 259 REVISION "201110310000Z" 260 DESCRIPTION 261 "Initial version, published as RFC XXXX." 262 -- RFC Ed.: replace XXXX with actual RFC number & remove this note 264 ::= { mib-2 XXXX } 266 RplInstanceID ::= TEXTUAL-CONVENTION 267 DISPLAY-HINT "d" 268 STATUS current 269 DESCRIPTION 270 "A global or local RPLinstanceID as defined in Section 5.1. of 271 RFC YYYY." 272 REFERENCE 273 "RFC YYYY: RPL: IPv6 Routing Protocol for LLNs" 274 SYNTAX Unsigned32 (0..255) 276 RplDodagVersionNumber ::= TEXTUAL-CONVENTION 277 DISPLAY-HINT "d" 278 STATUS current 279 DESCRIPTION 280 "The version number of a DODAG as defined in Section 6.3 of 281 RFC YYYY." 282 REFERENCE 283 "RFC YYYY: RPL: IPv6 Routing Protocol for LLNs" 284 SYNTAX Unsigned32 (0..255) 286 RplRank ::= TEXTUAL-CONVENTION 287 DISPLAY-HINT "d" 288 STATUS current 289 DESCRIPTION 290 "The rank of a node within a DODAG as defined in Section 6.3 291 of RFC YYYY." 292 REFERENCE 293 "RFC YYYY: RPL: IPv6 Routing Protocol for LLNs" 294 SYNTAX Unsigned32 (0..65535) 296 RplObjectiveCodePoint ::= TEXTUAL-CONVENTION 297 DISPLAY-HINT "d" 298 STATUS current 299 DESCRIPTION 300 "The Objective Code Point of a DODAG as defined in 301 Section 6.7.6 of RFC YYYY." 302 REFERENCE 303 "RFC YYYY: RPL: IPv6 Routing Protocol for LLNs" 304 SYNTAX Unsigned32 (0..65535) 306 RplDISMode ::= TEXTUAL-CONVENTION 307 STATUS current 308 DESCRIPTION 309 "Determines whether a DIS message is send upon boot-up 310 or not as defined in Section 17.2.1.1 of RFC YYYY: 312 silent(1) do not send DIS messages 313 send(2) send DIS messages" 314 REFERENCE 315 "RFC YYYY: RPL: IPv6 Routing Protocol for LLNs" 316 SYNTAX INTEGER { 317 silent(1), 318 send(2) 319 } 321 RplModeOfOperation ::= TEXTUAL-CONVENTION 322 STATUS current 323 DESCRIPTION 324 "Determines the mode of operation." 325 REFERENCE 326 "RFC YYYY: RPL: IPv6 Routing Protocol for LLNs" 327 SYNTAX INTEGER { 328 noDownwardRoutes(0), 329 nonStoringMode(1), 330 storingWithoutMulticastSupport(2), 331 storingWithMulticastSupport(3) 332 } 334 RplDAODelay ::= TEXTUAL-CONVENTION 335 DISPLAY-HINT "d" 336 STATUS current 337 DESCRIPTION 338 "The delay time used for aggregation before a DAO message 339 is send." 340 REFERENCE 341 "RFC YYYY: RPL: IPv6 Routing Protocol for LLNs" 342 SYNTAX Unsigned32 344 RplDodagPreference ::= TEXTUAL-CONVENTION 345 DISPLAY-HINT "d" 346 STATUS current 347 DESCRIPTION 348 "The preference of a DODAG compared to another DODAG of the 349 same instance as defined in Section 6.3 of RFC YYYY." 350 REFERENCE 351 "RFC YYYY: RPL: IPv6 Routing Protocol for LLNs" 352 SYNTAX Unsigned32 (0..7) 354 RplMinHopRankIncrease ::= TEXTUAL-CONVENTION 355 DISPLAY-HINT "d" 356 STATUS current 357 DESCRIPTION 358 "The minimal incerease of a rank within a single hop as 359 defined in Section 6.7.6 of RFC YYYY." 360 REFERENCE 361 "RFC YYYY: RPL: IPv6 Routing Protocol for LLNs" 362 SYNTAX Unsigned32 (0..131071) 364 RplPathControlSize ::= TEXTUAL-CONVENTION 365 DISPLAY-HINT "d" 366 STATUS current 367 DESCRIPTION 368 "The Path Control Size within a DODAG as defined in 369 Section 6.7.6 of RFC YYYY." 370 REFERENCE 371 "RFC YYYY: RPL: IPv6 Routing Protocol for LLNs" 372 SYNTAX Unsigned32 (0..7) 374 -- object definitions 376 rplNotifications OBJECT IDENTIFIER ::= { rplMib 0 } 377 rplObjects OBJECT IDENTIFIER ::= { rplMib 1 } 378 rplConformance OBJECT IDENTIFIER ::= { rplMib 2 } 380 rplGeneral OBJECT IDENTIFIER ::= { rplObjects 1 } 382 rplDefaultDISMode OBJECT-TYPE 383 SYNTAX RplDISMode 384 MAX-ACCESS read-write 385 STATUS current 386 DESCRIPTION 387 "Determines whether a DIS message is send upon boot-up." 388 ::= { rplGeneral 1 } 389 -- XXX should be able to configure the number of DIS messages 390 -- XXX and related timer, see 17.2.1.1. 391 -- XXX need to say something about persistence across reboots 393 -- XXX Should there be more objects to configure default timers 394 -- XXX etc that are applied to all DODAGs etc? 396 rplActive OBJECT IDENTIFIER ::= { rplObjects 2 } 398 rplActiveInstance OBJECT-TYPE 399 SYNTAX RplInstanceID 400 MAX-ACCESS read-write 401 STATUS current 402 DESCRIPTION 403 "The currently active RPL Instance." 404 ::= { rplActive 1 } 405 -- XXX need to say something about persistence across reboots 407 rplActiveDodag OBJECT-TYPE 408 SYNTAX InetAddressIPv6 409 MAX-ACCESS read-write 410 STATUS current 411 DESCRIPTION 412 "The currently active RPL DODAG in the active RPL Instance." 413 ::= { rplActive 2 } 415 rplActiveDodagDAOSequence OBJECT-TYPE 416 SYNTAX Unsigned32 (0..255) 417 MAX-ACCESS read-only 418 STATUS current 419 DESCRIPTION 420 "The DAO message sequence number (DAOSequence) of the active 421 DODAG as defined in Section 6.5.1 of RFC YYYY." 422 REFERENCE 423 "RFC YYYY: RPL: IPv6 Routing Protocol for LLNs" 424 ::= { rplActive 3 } 426 rplActiveDodagTriggerSequence OBJECT-TYPE 427 SYNTAX Unsigned32 (0..255) 428 MAX-ACCESS read-write 429 STATUS current 430 DESCRIPTION 431 "The DAO Trigger Sequence Number (DTSN) of the active 432 DODAG as defined in Section 6.3.1 of RFC YYYY." 433 REFERENCE 434 "RFC YYYY: RPL: IPv6 Routing Protocol for LLNs" 435 ::= { rplActive 4 } 437 rplOCPTable OBJECT-TYPE 438 SYNTAX SEQUENCE OF RplOCPEntry 439 MAX-ACCESS not-accessible 440 STATUS current 441 DESCRIPTION 442 "The table of all supported Objective Code Points (OCPs)." 443 ::= { rplObjects 3 } 445 rplOCPEntry OBJECT-TYPE 446 SYNTAX RplOCPEntry 447 MAX-ACCESS not-accessible 448 STATUS current 449 DESCRIPTION 450 "An entry representing a supported Objective Code Point." 451 INDEX { rplOCPCodepoint } 452 ::= { rplOCPTable 1 } 454 RplOCPEntry ::= SEQUENCE { 455 rplOCPCodepoint RplObjectiveCodePoint, 456 rplOCPEnabled TruthValue 457 } 459 rplOCPCodepoint OBJECT-TYPE 460 SYNTAX RplObjectiveCodePoint 461 MAX-ACCESS not-accessible 462 STATUS current 463 DESCRIPTION 464 "A supported Objective Code Point." 465 ::= { rplOCPEntry 1 } 467 rplOCPEnabled OBJECT-TYPE 468 SYNTAX TruthValue 469 MAX-ACCESS read-write 470 STATUS current 471 DESCRIPTION 472 "Enables the usage of this Objective Code Point." 473 ::= { rplOCPEntry 2 } 474 -- XXX need to say something about persistence across reboots 476 rplRPLInstanceTable OBJECT-TYPE 477 SYNTAX SEQUENCE OF RplRPLInstanceEntry 478 MAX-ACCESS not-accessible 479 STATUS current 480 DESCRIPTION 481 "The table represents information about all known 482 RPL Instances." 483 ::= { rplObjects 4 } 485 rplRPLInstanceEntry OBJECT-TYPE 486 SYNTAX RplRPLInstanceEntry 487 MAX-ACCESS not-accessible 488 STATUS current 489 DESCRIPTION 490 "An entry representing information about a RPL Instance." 491 INDEX { rplRPLInstanceID } 492 ::= { rplRPLInstanceTable 1 } 493 -- XXX This should likely be a read-create table. 495 RplRPLInstanceEntry ::= SEQUENCE { 496 rplRPLInstanceID RplInstanceID, 497 rplRPLInstanceOCP RplObjectiveCodePoint, 498 rplRPLInstanceDisMode RplDISMode, 499 rplRPLInstanceDAOAcknowledgement INTEGER, 500 rplRPLInstanceModeOfOperation RplModeOfOperation 501 } 503 rplRPLInstanceID OBJECT-TYPE 504 SYNTAX RplInstanceID 505 MAX-ACCESS not-accessible 506 STATUS current 507 DESCRIPTION 508 "The InstanceID of this RPL Instance." 509 ::= { rplRPLInstanceEntry 1 } 511 rplRPLInstanceOCP OBJECT-TYPE 512 SYNTAX RplObjectiveCodePoint 513 MAX-ACCESS read-write 514 STATUS current 515 DESCRIPTION 516 "The Objective Code Point of this RPL Instance." 517 ::= { rplRPLInstanceEntry 2 } 518 -- XXX If this is read-write, what is the persistence? 519 -- XXX Support provisioning of table entries on border routers? 520 -- XXX If so, use StorageType and RowStatus? 522 rplRPLInstanceDisMode OBJECT-TYPE 523 SYNTAX RplDISMode 524 MAX-ACCESS read-write 525 STATUS current 526 DESCRIPTION 527 "Determines whether a DIS message is send for this instance 528 upon boot-up." 529 ::= { rplRPLInstanceEntry 3 } 530 -- XXX Check how this works together with the global toggle. 531 -- XXX should we allow per instance parameters such as the number 532 -- XXX of DIS messages and related timer, see 17.2.1.1? 534 rplRPLInstanceDAOAcknowledgement OBJECT-TYPE 535 SYNTAX INTEGER { 536 nope(1) 537 } 538 MAX-ACCESS read-write 539 STATUS current 540 DESCRIPTION 541 "The mode of Operation of the RPL instance." 542 ::= { rplRPLInstanceEntry 4 } 543 -- XXX What is this? Kevin? 544 -- XXX persistence? 546 rplRPLInstanceModeOfOperation OBJECT-TYPE 547 SYNTAX RplModeOfOperation 548 MAX-ACCESS read-write 549 STATUS current 550 DESCRIPTION 551 "The mode of Operation of the RPL instance." 552 ::= { rplRPLInstanceEntry 5 } 553 -- XXX persistence? 555 rplDodagTable OBJECT-TYPE 556 SYNTAX SEQUENCE OF RplDodagEntry 557 MAX-ACCESS not-accessible 558 STATUS current 559 DESCRIPTION 560 "The table represents information about all locally known 561 DODAGs." 562 ::= { rplObjects 5 } 563 -- XXX The root needs a bit(?) config, where does that go? 565 rplDodagEntry OBJECT-TYPE 566 SYNTAX RplDodagEntry 567 MAX-ACCESS not-accessible 568 STATUS current 569 DESCRIPTION 570 "An entry representing information about a DODAG." 571 INDEX { rplRPLInstanceID, rplDodagRoot } 572 ::= { rplDodagTable 1 } 574 RplDodagEntry ::= SEQUENCE { 575 rplDodagRoot InetAddressIPv6, 576 rplDodagVersion RplDodagVersionNumber, 577 rplDodagRank RplRank, 578 rplDodagState INTEGER, 579 rplDodagDAODelay RplDAODelay, 580 rplDodagPreference RplDodagPreference, 581 rplDodagMinHopRankIncrease RplMinHopRankIncrease, 582 rplDodagMaxRankIncrease Unsigned32, 583 rplDodagIntervalDoublings Unsigned32, 584 rplDodagIntervalMin Unsigned32, 585 rplDodagRedundancyConstant Unsigned32, 586 rplDodagPathControlSize RplPathControlSize 587 } 589 rplDodagRoot OBJECT-TYPE 590 SYNTAX InetAddressIPv6 591 MAX-ACCESS not-accessible 592 STATUS current 593 DESCRIPTION 594 "The identifier of a DODAG root (DODAGID) of this RPL 595 instance. The root of the DODAG reports its own IPv6 596 address as the DODAG root." 597 ::= { rplDodagEntry 1 } 599 rplDodagVersion OBJECT-TYPE 600 SYNTAX RplDodagVersionNumber 601 MAX-ACCESS read-only 602 STATUS current 603 DESCRIPTION 604 "The version of the DODAG in this RPL instance." 605 ::= { rplDodagEntry 2 } 607 rplDodagRank OBJECT-TYPE 608 SYNTAX RplRank 609 MAX-ACCESS read-only 610 STATUS current 611 DESCRIPTION 612 "The rank of the node within the DODAG." 613 ::= { rplDodagEntry 3 } 615 rplDodagState OBJECT-TYPE 616 SYNTAX INTEGER { 617 other(0), 618 associated(1), 619 grounded(2), 620 floating(3) 621 } 622 MAX-ACCESS read-only 623 STATUS current 624 DESCRIPTION 625 "The status of the DODAG: 627 other(0) An unknown state. 629 associated(1) A node is associated with the RPL instance. 631 grounded(2) The DODAG is grounded. 633 floating(3) The DODAG is floating (not grounded). 634 " 635 ::= { rplDodagEntry 4 } 637 rplDodagDAODelay OBJECT-TYPE 638 SYNTAX RplDAODelay 639 UNITS "milliseconds" 640 MAX-ACCESS read-only 641 STATUS current 642 DESCRIPTION 643 "The delay for aggregations before a DAO is send." 644 ::= { rplDodagEntry 5 } 645 -- XXX should this be configuration? If so we should add a default 646 -- clause to define the default value to be 1 second. 648 rplDodagPreference OBJECT-TYPE 649 SYNTAX RplDodagPreference 650 MAX-ACCESS read-only 651 STATUS current 652 DESCRIPTION 653 "How preferred this DODAG is compared to other DODAGs 654 within the same instance." 655 ::= { rplDodagEntry 6 } 657 rplDodagMinHopRankIncrease OBJECT-TYPE 658 SYNTAX RplMinHopRankIncrease 659 MAX-ACCESS read-only 660 STATUS current 661 DESCRIPTION 662 "The minimum increase of the rank in a single hop." 663 ::= { rplDodagEntry 7 } 664 -- XXX should this be writable at the root? If so we should add a 665 -- defval clause to define the default value to be 256. 667 rplDodagMaxRankIncrease OBJECT-TYPE 668 SYNTAX Unsigned32 (0..65535) 669 MAX-ACCESS read-only 670 STATUS current 671 DESCRIPTION 672 "The maximum allowable increase in rank in support of local 673 repair. If DAGMaxRankIncrease is 0 then this mechanism is 674 disabled." 675 ::= { rplDodagEntry 8 } 677 rplDodagIntervalDoublings OBJECT-TYPE 678 SYNTAX Unsigned32 (0..255) 679 MAX-ACCESS read-only 680 STATUS current 681 DESCRIPTION 682 "The configured Imax of the DIO trickle timer." 683 ::= { rplDodagEntry 9 } 684 -- XXX should this be writable at the root? If so we should add a 685 -- defval clause to define the default value of 20. 687 rplDodagIntervalMin OBJECT-TYPE 688 SYNTAX Unsigned32 (0..255) 689 MAX-ACCESS read-only 690 STATUS current 691 DESCRIPTION 692 "The configured Imin of the DIO trickle timer." 693 ::= { rplDodagEntry 10 } 694 -- XXX should this be writable at the root? If so we should add a 695 -- defval clause to define the default value of 3. 697 rplDodagRedundancyConstant OBJECT-TYPE 698 SYNTAX Unsigned32 (0..255) 699 MAX-ACCESS read-only 700 STATUS current 701 DESCRIPTION 702 "The configured k of the DIO trickle timer." 703 ::= { rplDodagEntry 11 } 704 -- XXX should this be writable at the root? If so we should add a 705 -- defval clause to define the default value of 10. 707 rplDodagPathControlSize OBJECT-TYPE 708 SYNTAX RplPathControlSize 709 MAX-ACCESS read-only 710 STATUS current 711 DESCRIPTION 712 "The Path Control Size of this DODAG." 713 ::= { rplDodagEntry 12 } 715 rplDodagParentTable OBJECT-TYPE 716 SYNTAX SEQUENCE OF RplDodagParentEntry 717 MAX-ACCESS not-accessible 718 STATUS current 719 DESCRIPTION 720 "The list of parents for a DODAG." 721 ::= { rplObjects 6 } 723 rplDodagParentEntry OBJECT-TYPE 724 SYNTAX RplDodagParentEntry 725 MAX-ACCESS not-accessible 726 STATUS current 727 DESCRIPTION 728 "Information about a known DODAG parent." 729 INDEX { rplRPLInstanceID, rplDodagRoot, rplDodagParentID } 730 ::= { rplDodagParentTable 1 } 732 RplDodagParentEntry ::= SEQUENCE { 733 rplDodagParentID InetAddressIPv6, 734 rplDodagParentIf InterfaceIndex 735 } 737 rplDodagParentID OBJECT-TYPE 738 SYNTAX InetAddressIPv6 739 MAX-ACCESS not-accessible 740 STATUS current 741 DESCRIPTION 742 "An RPL parent associated with this DODAG." 743 ::= { rplDodagParentEntry 1 } 745 rplDodagParentIf OBJECT-TYPE 746 SYNTAX InterfaceIndex 747 MAX-ACCESS read-only 748 STATUS current 749 DESCRIPTION 750 "The interface over which the parent can be reached." 751 ::= { rplDodagParentEntry 2 } 753 rplDodagChildTable OBJECT-TYPE 754 SYNTAX SEQUENCE OF RplDodagChildEntry 755 MAX-ACCESS not-accessible 756 STATUS current 757 DESCRIPTION 758 "The list of children for a DODAG." 759 ::= { rplObjects 7 } 761 rplDodagChildEntry OBJECT-TYPE 762 SYNTAX RplDodagChildEntry 763 MAX-ACCESS not-accessible 764 STATUS current 765 DESCRIPTION 766 "Information about a known DODAG child." 767 INDEX { rplRPLInstanceID, rplDodagRoot, rplDodagChildID } 768 ::= { rplDodagChildTable 1 } 770 RplDodagChildEntry ::= SEQUENCE { 771 rplDodagChildID InetAddressIPv6 772 } 774 rplDodagChildID OBJECT-TYPE 775 SYNTAX InetAddressIPv6 776 MAX-ACCESS read-only 777 STATUS current 778 DESCRIPTION 779 "An RPL child associated with this DODAG." 780 ::= { rplDodagChildEntry 1 } 782 rplDodagPrefixTable OBJECT-TYPE 783 SYNTAX SEQUENCE OF RplDodagPrefixEntry 784 MAX-ACCESS not-accessible 785 STATUS current 786 DESCRIPTION 787 "List of prefixes associated with a DODAG." 788 ::= { rplObjects 8 } 789 -- XXX Explain how this relates to the ipAddressPrefixTable in 790 -- XXX the IP-MIB 792 rplDodagPrefixEntry OBJECT-TYPE 793 SYNTAX RplDodagPrefixEntry 794 MAX-ACCESS not-accessible 795 STATUS current 796 DESCRIPTION 797 "Information about a prefix associated with a DODAG." 798 INDEX { rplRPLInstanceID, rplDodagRoot, 799 rplDodagPrefixIpv6Prefix, rplDodagPrefixIpv6PrefixLength } 800 ::= { rplDodagPrefixTable 1 } 802 RplDodagPrefixEntry ::= SEQUENCE { 803 rplDodagPrefixIpv6Prefix InetAddressIPv6, 804 rplDodagPrefixIpv6PrefixLength InetAddressPrefixLength 805 } 807 rplDodagPrefixIpv6Prefix OBJECT-TYPE 808 SYNTAX InetAddressIPv6 809 MAX-ACCESS read-only 810 STATUS current 811 DESCRIPTION 812 "The IPv6 address forming the IPv6 prefix." 813 ::= { rplDodagPrefixEntry 1 } 815 rplDodagPrefixIpv6PrefixLength OBJECT-TYPE 816 SYNTAX InetAddressPrefixLength 817 MAX-ACCESS read-only 818 STATUS current 819 DESCRIPTION 820 "The length of the IPv6 prefix." 821 ::= { rplDodagPrefixEntry 2 } 823 -- XXX The routing table should be exposed via the inetCidrRouteTable 824 -- XXX defines in the IP-FORWARD-MIB (RFC 4292). We need to clarify 825 -- XXX whether the inetCidrRoutePolicy can / should point to the DODAG 826 -- XXX instance. Furthermore, this document should request that IANA 827 -- XXX allocates a number for RPL in the IANAipRouteProtocol TC. 829 rplStats OBJECT IDENTIFIER ::= { rplObjects 9 } 831 rplStatsMemOverflows OBJECT-TYPE 832 SYNTAX Counter32 833 MAX-ACCESS read-only 834 STATUS current 835 DESCRIPTION 836 "The number of memory allocation failures (e.g., routing table 837 overflows)." 838 ::= { rplStats 1 } 840 rplStatsValidParentFailures OBJECT-TYPE 841 SYNTAX Counter32 842 MAX-ACCESS read-only 843 STATUS current 844 DESCRIPTION 845 "The number of times a packet could not be sent to a DODAG 846 parent flagged as valid." 847 ::= { rplStats 2 } 849 rplStatsNoInstanceIDs OBJECT-TYPE 850 SYNTAX Counter32 851 MAX-ACCESS read-only 852 STATUS current 853 DESCRIPTION 854 "The number of times a packet could not be sent because of 855 a missing RPLInstanceID." 856 ::= { rplStats 3 } 858 rplStatsTriggeredLocalRepairs OBJECT-TYPE 859 SYNTAX Counter32 860 MAX-ACCESS read-only 861 STATUS current 862 DESCRIPTION 863 "The number of times a local repair procedure was triggered." 864 ::= { rplStats 4 } 866 rplStatsTriggeredGlobalRepairs OBJECT-TYPE 867 SYNTAX Counter32 868 MAX-ACCESS read-only 869 STATUS current 870 DESCRIPTION 871 "The number of times a global repair procedure was triggered." 872 ::= { rplStats 5 } 874 rplStatsParseErrors OBJECT-TYPE 875 SYNTAX Counter32 876 MAX-ACCESS read-only 877 STATUS current 878 DESCRIPTION 879 "The number of received malformed messages." 880 ::= { rplStats 6 } 882 rplStatsNoParentSecs OBJECT-TYPE 883 SYNTAX Counter32 884 MAX-ACCESS read-only 885 STATUS current 886 DESCRIPTION 887 "The number of seconds without a next hop (DODAG parent)." 888 ::= { rplStats 7 } 890 rplStatsActiveNoParentSecs OBJECT-TYPE 891 SYNTAX Counter32 892 MAX-ACCESS read-only 893 STATUS current 894 DESCRIPTION 895 "The number of seconds with packets to forward without a 896 next hop (DODAG parent)." 897 ::= { rplStats 8 } 899 rplStatsOBitSetDownwards OBJECT-TYPE 900 SYNTAX Counter32 901 MAX-ACCESS read-only 902 STATUS current 903 DESCRIPTION 904 "Number of packets received with the 'O' bit set from 905 a node with a higher rank." 906 ::= { rplStats 9 } 908 rplStatsOBitClearedUpwards OBJECT-TYPE 909 SYNTAX Counter32 910 MAX-ACCESS read-only 911 STATUS current 912 DESCRIPTION 913 "Number of packets received with the 'O' bit cleared 914 from a node with a lower rank." 915 ::= { rplStats 10 } 917 rplStatsFBitSet OBJECT-TYPE 918 SYNTAX Counter32 919 MAX-ACCESS read-only 920 STATUS current 921 DESCRIPTION 922 "Number of packets received with the 'F' bit set." 923 ::= { rplStats 11 } 925 rplStatsRBitSet OBJECT-TYPE 926 SYNTAX Counter32 927 MAX-ACCESS read-only 928 STATUS current 929 DESCRIPTION 930 "Number of packets received with the 'R' bit set." 931 ::= { rplStats 12 } 933 -- XXX There seem to be additional local error events to count, see 934 -- XXX for example Section 11.2. (rank errors, forwarding errors, ...) 936 -- XXX RPL security has not been looked at. 938 rplGroups OBJECT IDENTIFIER ::= { rplConformance 1 } 939 rplCompliances OBJECT IDENTIFIER ::= { rplConformance 2 } 940 rplFullCompliance MODULE-COMPLIANCE 941 STATUS current 942 DESCRIPTION 943 "Compliance statement for implementations supporting 944 read/write access, according to the object definitions." 945 MODULE -- this module 946 MANDATORY-GROUPS { 947 rplGeneralGroup, 948 rplInstanceGroup, 949 rplStatsGroup 950 } 951 ::= { rplCompliances 1 } 953 rplReadOnlyCompliance MODULE-COMPLIANCE 954 STATUS current 955 DESCRIPTION 956 "Compliance statement for implementations supporting 957 only readonly access." 958 MODULE -- this module 959 MANDATORY-GROUPS { 960 rplGeneralGroup, 961 rplInstanceGroup, 962 rplStatsGroup 963 } 964 ::= { rplCompliances 2 } 965 -- XXX Need to list all writable objects to declare them 966 -- XXX readonly. 968 rplGeneralGroup OBJECT-GROUP 969 OBJECTS { 970 rplDefaultDISMode, 971 rplActiveInstance, 972 rplActiveDodag, 973 rplActiveDodagDAOSequence, 974 rplActiveDodagTriggerSequence, 975 -- rplOCPCodepoint, 976 rplOCPEnabled 977 } 978 STATUS current 979 DESCRIPTION 980 "A collection of objects providing general information about 981 the RPL implementation." 982 ::= { rplGroups 1 } 984 rplInstanceGroup OBJECT-GROUP 985 OBJECTS { 986 -- rplRPLInstanceID, 987 rplRPLInstanceOCP, 988 rplRPLInstanceDisMode, 989 rplRPLInstanceDAOAcknowledgement, 990 rplRPLInstanceModeOfOperation, 991 -- rplDodagRoot, 992 rplDodagVersion, 993 rplDodagRank, 994 rplDodagState, 995 rplDodagDAODelay, 996 rplDodagPreference, 997 rplDodagMinHopRankIncrease, 998 rplDodagMaxRankIncrease, 999 rplDodagIntervalDoublings, 1000 rplDodagIntervalMin, 1001 rplDodagRedundancyConstant, 1002 rplDodagPathControlSize, 1003 -- rplDodagParentID, 1004 rplDodagParentIf, 1005 rplDodagChildID, 1006 rplDodagPrefixIpv6Prefix, 1007 rplDodagPrefixIpv6PrefixLength 1008 } 1009 STATUS current 1010 DESCRIPTION 1011 "A collection of objects providing insight into the RPL 1012 Instances and the DODAGs." 1013 ::= { rplGroups 2 } 1015 rplStatsGroup OBJECT-GROUP 1016 OBJECTS { 1017 rplStatsMemOverflows, 1018 rplStatsValidParentFailures, 1019 rplStatsNoInstanceIDs, 1020 rplStatsTriggeredLocalRepairs, 1021 rplStatsTriggeredGlobalRepairs, 1022 rplStatsParseErrors, 1023 rplStatsNoParentSecs, 1024 rplStatsActiveNoParentSecs, 1025 rplStatsOBitSetDownwards, 1026 rplStatsOBitClearedUpwards, 1027 rplStatsFBitSet, 1028 rplStatsRBitSet 1029 } 1030 STATUS current 1031 DESCRIPTION 1032 "A collection of objects providing statistics about the 1033 RPL implementation." 1034 ::= { rplGroups 3 } 1036 END 1038 7. Security Considerations 1040 There are a number of management objects defined in this MIB module 1041 with a MAX-ACCESS clause of read-write and/or read-create. Such 1042 objects may be considered sensitive or vulnerable in some network 1043 environments. The support for SET operations in a non-secure 1044 environment without proper protection can have a negative effect on 1045 network operations. These are the tables and objects and their 1046 sensitivity/vulnerability: 1048 o rplActiveInstance: [TBD] explain sensitivity 1050 Some of the readable objects in this MIB module (i.e., objects with a 1051 MAX-ACCESS other than not-accessible) may be considered sensitive or 1052 vulnerable in some network environments. It is thus important to 1053 control even GET and/or NOTIFY access to these objects and possibly 1054 to even encrypt the values of these objects when sending them over 1055 the network via SNMP. These are the tables and objects and their 1056 sensitivity/vulnerability: 1058 [TODO: Need to describe vulnerabilities here.] 1060 SNMP versions prior to SNMPv3 did not include adequate security. 1061 Even if the network itself is secure (for example by using IPsec), 1062 even then, there is no control as to who on the secure network is 1063 allowed to access and GET/SET (read/change/create/delete) the objects 1064 in this MIB module. 1066 It is RECOMMENDED that implementers consider the security features as 1067 provided by the SNMPv3 framework (see [RFC3410], section 8), 1068 including full support for the SNMPv3 cryptographic mechanisms (for 1069 authentication and privacy). 1071 Further, deployment of SNMP versions prior to SNMPv3 is NOT 1072 RECOMMENDED. Instead, it is RECOMMENDED to deploy SNMPv3 and to 1073 enable cryptographic security. It is then a customer/operator 1074 responsibility to ensure that the SNMP entity giving access to an 1075 instance of this MIB module is properly configured to give access to 1076 the objects only to those principals (users) that have legitimate 1077 rights to indeed GET or SET (change/create/delete) them. 1079 8. IANA Considerations 1081 IANA is requested to assign a value for "XXX" under the 'mib-2' 1082 subtree and to record the assignment in the SMI Numbers registry. 1083 When the assignment has been made, the RFC Editor is asked to replace 1084 "XXX" (here and in the MIB module) with the assigned value and to 1085 remove this note. 1087 9. References 1089 9.1. Normative References 1091 [RFC2119] Bradner, S., "Key words for use in RFCs to 1092 Indicate Requirement Levels", BCP 14, RFC 2119, 1093 March 1997. 1095 [RFC2578] McCloghrie, K., Ed., Perkins, D., Ed., and J. 1096 Schoenwaelder, Ed., "Structure of Management 1097 Information Version 2 (SMIv2)", STD 58, 1098 RFC 2578, April 1999. 1100 [RFC2579] McCloghrie, K., Ed., Perkins, D., Ed., and J. 1101 Schoenwaelder, Ed., "Textual Conventions for 1102 SMIv2", STD 58, RFC 2579, April 1999. 1104 [RFC2580] McCloghrie, K., Perkins, D., and J. 1105 Schoenwaelder, "Conformance Statements for 1106 SMIv2", STD 58, RFC 2580, April 1999. 1108 [RFC2863] McCloghrie, K. and F. Kastenholz, "The 1109 Interfaces Group MIB", RFC 2863, June 2000. 1111 [RFC4001] Daniele, M., Haberman, B., Routhier, S., and J. 1112 Schoenwaelder, "Textual Conventions for Internet 1113 Network Addresses", RFC 4001, February 2005. 1115 [I-D.ietf-roll-rpl] Winter, T., Thubert, P., Brandt, A., Clausen, 1116 T., Hui, J., Kelsey, R., Levis, P., Pister, K., 1117 Struik, R., and J. Vasseur, "RPL: IPv6 Routing 1118 Protocol for Low power and Lossy Networks", 1119 draft-ietf-roll-rpl-19 (work in progress), 1120 March 2011. 1122 9.2. Informative References 1124 [RFC3410] Case, J., Mundy, R., Partain, D., and B. 1125 Stewart, "Introduction and Applicability 1126 Statements for Internet-Standard Management 1127 Framework", RFC 3410, December 2002. 1129 Appendix A. Open Issues 1131 Should there be basic DIS/DIO/DAO/DAO-ACK message counters? 1133 Should we reveal the interal trickle variables? Right now, we 1134 only allow to read the configured trickle parameters. 1136 Should we model objective functions, e.g. by introducing a table 1137 that includes things such as MinHopRankIncrease and 1138 MaxRankIncrease 1140 Should we report the mode (storing mode, non-storing mode)? 1142 Check the various issues marked with XXX in the RPL-MIB itself. 1144 Authors' Addresses 1146 Kevin Korte 1147 Jacobs University 1148 Campus Ring 1 1149 Bremen 28759 1150 Germany 1152 EMail: k.korte@jacobs-university.de 1154 Juergen Schoenwaelder 1155 Jacobs University 1156 Campus Ring 1 1157 Bremen 28759 1158 Germany 1160 EMail: j.schoenwaelder@jacobs-university.de 1162 Anuj Sehgal 1163 Jacobs University 1164 Campus Ring 1 1165 Bremen 28759 1166 Germany 1168 EMail: s.anuj@jacobs-university.de 1169 Tina Tsou 1170 Huawei Technologies 1171 Bantian, Longgang District 1172 Shenzhen 518129 1173 P.R. China 1175 EMail: tena@huawei.com 1177 Cathy Zhou 1178 Huawei Technologies 1179 Bantian, Longgang District 1180 Shenzhen 518129 1181 P.R. China 1183 EMail: cathyzhou@huawei.com