idnits 2.17.1 draft-sehgal-roll-rpl-mib-04.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 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 127 has weird spacing: '...eration rpl...' == Line 135 has weird spacing: '...ference rpl...' == Line 141 has weird spacing: '...rolSize rpl...' == Line 146 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 (July 6, 2012) is 4312 days in the past. Is this intentional? -- Found something which looks like a code comment -- if you have code sections in the document, please surround them with '' and '' lines. Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) No issues found here. Summary: 0 errors (**), 0 flaws (~~), 7 warnings (==), 2 comments (--). 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: January 7, 2013 Jacobs University 6 T. Tsou 7 Huawei Technologies (USA) 8 C. Zhou 9 Huawei Technologies 10 July 6, 2012 12 Definition of Managed Objects for the IPv6 Routing Protocol for Low 13 Power and Lossy Networks (RPL) 14 draft-sehgal-roll-rpl-mib-04 16 Abstract 18 This memo defines a portion of the Management Information Base (MIB) 19 for use with network management protocols in the Internet community. 20 In particular, it defines objects for managing the IPv6 Routing 21 Protocol for Low Power and Lossy Networks (RPL). 23 Status of This Memo 25 This Internet-Draft is submitted in full conformance with the 26 provisions of BCP 78 and BCP 79. 28 Internet-Drafts are working documents of the Internet Engineering 29 Task Force (IETF). Note that other groups may also distribute 30 working documents as Internet-Drafts. The list of current Internet- 31 Drafts is at http://datatracker.ietf.org/drafts/current/. 33 Internet-Drafts are draft documents valid for a maximum of six months 34 and may be updated, replaced, or obsoleted by other documents at any 35 time. It is inappropriate to use Internet-Drafts as reference 36 material or to cite them other than as "work in progress." 38 This Internet-Draft will expire on January 7, 2013. 40 Copyright Notice 42 Copyright (c) 2012 IETF Trust and the persons identified as the 43 document authors. All rights reserved. 45 This document is subject to BCP 78 and the IETF Trust's Legal 46 Provisions Relating to IETF Documents 47 (http://trustee.ietf.org/license-info) in effect on the date of 48 publication of this document. Please review these documents 49 carefully, as they describe your rights and restrictions with respect 50 to this document. Code Components extracted from this document must 51 include Simplified BSD License text as described in Section 4.e of 52 the Trust Legal Provisions and are provided without warranty as 53 described in the Simplified BSD License. 55 Table of Contents 57 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 58 2. The Internet-Standard Management Framework . . . . . . . . . . 3 59 3. Conventions . . . . . . . . . . . . . . . . . . . . . . . . . 3 60 4. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 61 5. Relationship to Other MIB Modules . . . . . . . . . . . . . . 5 62 6. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 5 63 7. Security Considerations . . . . . . . . . . . . . . . . . . . 27 64 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 27 65 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 28 66 10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 28 67 10.1. Normative References . . . . . . . . . . . . . . . . . . 28 68 10.2. Informative References . . . . . . . . . . . . . . . . . 29 69 Appendix A. JSON Representation . . . . . . . . . . . . . . . . . 29 70 Appendix B. Open Issues . . . . . . . . . . . . . . . . . . . . . 32 72 1. Introduction 74 This memo defines a portion of the Management Information Base (MIB) 75 for use with network management protocols. In particular it defines 76 objects for managing the IPv6 Routing Protocol for Low Power and 77 Lossy Networks (RPL) [RFC6550]. It also provides management access 78 to the Trickle [RFC6206] parameters as they are used by RPL. 80 2. The Internet-Standard Management Framework 82 For a detailed overview of the documents that describe the current 83 Internet-Standard Management Framework, please refer to section 7 of 84 RFC 3410 [RFC3410]. 86 Managed objects are accessed via a virtual information store, termed 87 the Management Information Base or MIB. MIB objects are generally 88 accessed through the Simple Network Management Protocol (SNMP). 89 Objects in the MIB are defined using the mechanisms defined in the 90 Structure of Management Information (SMI). This memo specifies a MIB 91 module that is compliant to the SMIv2, which is described in STD 58, 92 RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] and STD 58, RFC 2580 93 [RFC2580]. 95 3. Conventions 97 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 98 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 99 document are to be interpreted as described in RFC 2119 [RFC2119]. 101 4. Overview 103 The MIB module is organized into a group of scalars and tables. 105 # RPL-MIB registration tree (generated by smidump 0.4.8) 107 -rplMib(1.3.6.1.2.1.XXXX) 108 +-rplNotifications(0) 109 +-rplObjects(1) 110 +-rplGeneral(1) 111 | +- rwn RplDISMode rplDefaultDISMode(1) 112 +-rplActive(2) 113 | +- rwn RplInstanceID rplActiveInstance(1) 114 | +- rwn InetAddressIPv6 rplActiveDodag(2) 115 | +- r-n Unsigned32 rplActiveDodagDAOSequence(3) 116 | +- rwn Unsigned32 rplActiveDodagTriggerSequence(4) 117 +-rplOCPTable(3) 118 | +-rplOCPEntry(1) [rplOCPCodepoint] 119 | +- --- RplObjectiveCodePoint rplOCPCodepoint(1) 120 | +- rwn TruthValue rplOCPEnabled(2) 121 +-rplInstanceTable(4) 122 | +-rplInstanceEntry(1) [rplInstanceID] 123 | +- --- RplInstanceID rplInstanceID(1) 124 | +- rwn RplObjectiveCodePoint rplInstanceOCP(2) 125 | +- rwn RplDISMode rplInstanceDisMode(3) 126 | +- rwn TruthValue rplInstanceDAOAckEnabled(4) 127 | +- rwn RplModeOfOperation rplInstanceModeOfOperation(5) 128 +-rplDodagTable(5) 129 | +-rplDodagEntry(1) [rplInstanceID,rplDodagRoot] 130 | +- --- InetAddressIPv6 rplDodagRoot(1) 131 | +- r-n RplDodagVersionNumber rplDodagVersion(2) 132 | +- r-n RplRank rplDodagRank(3) 133 | +- r-n Enumeration rplDodagState(4) 134 | +- r-n RplDAODelay rplDodagDAODelay(5) 135 | +- r-n RplDodagPreference rplDodagPreference(6) 136 | +- r-n RplMinHopRankIncrease rplDodagMinHopRankIncrease(7) 137 | +- r-n Unsigned32 rplDodagMaxRankIncrease(8) 138 | +- rwn Unsigned32 rplDodagIntervalDoublings(9) 139 | +- rwn Unsigned32 rplDodagIntervalMin(10) 140 | +- rwn Unsigned32 rplDodagRedundancyConstant(11) 141 | +- r-n RplPathControlSize rplDodagPathControlSize(12) 142 +-rplDodagParentTable(6) 143 | +-rplDodagParentEntry(1) [rplInstanceID,rplDodagRoot, 144 | | rplDodagParentID] 145 | +- --- InetAddressIPv6 rplDodagParentID(1) 146 | +- r-n InterfaceIndex rplDodagParentIf(2) 147 +-rplDodagChildTable(7) 148 | +-rplDodagChildEntry(1) [rplInstanceID,rplDodagRoot, 149 | | rplDodagChildID] 150 | +- r-n InetAddressIPv6 rplDodagChildID(1) 151 +-rplDodagPrefixTable(8) 152 | +-rplDodagPrefixEntry(1) [rplInstanceID,rplDodagRoot, 153 | | rplDodagPrefixIpv6Prefix, 154 | | rplDodagPrefixIpv6PrefixLength] 155 | +- r-n InetAddressIPv6 rplDodagPrefixIpv6Prefix(1) 156 | +- r-n InetAddressPrefixLength 157 | rplDodagPrefixIpv6PrefixLength(2) 158 +-rplStats(9) 159 | +- r-n Counter32 rplMemOverflows(1) 160 | +- r-n Counter32 rplParseErrors(2) 161 | +- r-n Counter32 rplUnknownMsgTypes(3) 162 | +- r-n Counter32 rplSecurityPolicyViolations(4) 163 | +- r-n Counter32 rplIntegrityCheckFailures(5) 164 | +- r-n Counter32 rplReplayProtectionFailures(6) 165 | +- r-n Counter32 rplValidParentFailures(7) 166 | +- r-n Counter32 rplNoInstanceIDs(8) 167 | +- r-n Counter32 rplTriggeredLocalRepairs(9) 168 | +- r-n Counter32 rplTriggeredGlobalRepairs(10) 169 | +- r-n Counter32 rplNoParentSecs(11) 170 | +- r-n Counter32 rplActiveNoParentSecs(12) 171 | +- r-n Counter32 rplOBitSetDownwards(13) 172 | +- r-n Counter32 rplOBitClearedUpwards(14) 173 | +- r-n Counter32 rplFBitSet(15) 174 | +- r-n Counter32 rplRBitSet(16) 175 | +- r-n Counter32 rplTrickleTimerResets(17) 176 +-rplMsgStatsTable(10) 177 +-rplMsgStatsEntry(1) [rplMsgStatsType] 178 +- --- RplMessageType rplMsgStatsType(1) 179 +- r-n Counter32 rplMsgStatsInMsgs(2) 180 +- r-n Counter32 rplMsgStatsOutMsgs(3) 182 5. Relationship to Other MIB Modules 184 The MIB module IMPORTS definitions from SNMPv2-SMI [RFC2578], 185 SNMPv2-TC [RFC2579], SNMPv2-CONF [RFC2580], IF-MIB [RFC2863] and the 186 INET-ADDRESS-MIB [RFC4001]. 188 The IPv6 routing table should be exposed via the inetCidrRouteTable 189 defined in the IP-FORWARD-MIB [RFC4292]. XXX: We need to clarify 190 whether the inetCidrRoutePolicy can / should point to the DODAG 191 instance. 193 6. Definitions 195 RPL-MIB DEFINITIONS ::= BEGIN 197 IMPORTS 198 MODULE-IDENTITY, OBJECT-TYPE, Unsigned32, Counter32, mib-2 199 FROM SNMPv2-SMI -- RFC 2578 200 TEXTUAL-CONVENTION, TruthValue 201 FROM SNMPv2-TC -- RFC 2579 202 OBJECT-GROUP, MODULE-COMPLIANCE 203 FROM SNMPv2-CONF -- RFC 2580 204 InterfaceIndex 205 FROM IF-MIB -- RFC 2863 206 InetAddressIPv6, InetAddressPrefixLength 207 FROM INET-ADDRESS-MIB; -- RFC 4001 209 rplMib MODULE-IDENTITY 210 LAST-UPDATED "201207060000Z" 211 ORGANIZATION 212 "Jacobs University Bremen" 213 CONTACT-INFO 214 "Kevin Dominik Korte 215 Jacobs University Bremen 216 Email: k.korte@jacobs-university.de 218 Anuj Sehgal 219 Jacobs University Bremen 220 Email: s.anuj@jacobs-university.de 222 Juergen Schoenwaelder 223 Jacobs University Bremen 224 Email: j.schoenwaelder@jacobs-university.de 226 Tina Tsou 227 Huawei Technologies 228 Email: tina.tsou.zouting@huawei.com 230 Cathy Zhou 231 Huawei Technologies 232 Email: cathyzhou@huawei.com" 233 DESCRIPTION 234 "The MIB module for monitoring nodes implementing the IPv6 235 routing protocol for low power and lossy networks (RPL). 237 Copyright (c) 2012 IETF Trust and the persons identified as 238 authors of the code. All rights reserved. 240 Redistribution and use in source and binary forms, with or 241 without modification, is permitted pursuant to, and subject 242 to the license terms contained in, the Simplified BSD 243 License set forth in Section 4.c of the IETF Trust's 244 Legal Provisions Relating to IETF Documents 245 (http://trustee.ietf.org/license-info)." 247 REVISION "201207060000Z" 248 DESCRIPTION 249 "Initial version, published as RFC XXXX." 250 -- RFC Ed.: replace XXXX with actual RFC number & remove this note 252 ::= { mib-2 XXXX } 254 -- XXX: Do we keep all types (textual conventions) defined below or 255 -- XXX do we inline those that only get used once? 257 RplMessageType ::= TEXTUAL-CONVENTION 258 DISPLAY-HINT "d" 259 STATUS current 260 DESCRIPTION 261 "The type of an RPL control message as defined in Section 262 6 of RFC 6550." 263 REFERENCE 264 "RFC 6550: RPL: IPv6 Routing Protocol for LLNs" 265 SYNTAX Unsigned32 (0..255) 267 RplInstanceID ::= TEXTUAL-CONVENTION 268 DISPLAY-HINT "d" 269 STATUS current 270 DESCRIPTION 271 "A global or local RPLinstanceID as defined in Section 5.1. of 272 RFC 6550." 273 REFERENCE 274 "RFC 6550: RPL: IPv6 Routing Protocol for LLNs" 275 SYNTAX Unsigned32 (0..255) 277 RplDodagVersionNumber ::= TEXTUAL-CONVENTION 278 DISPLAY-HINT "d" 279 STATUS current 280 DESCRIPTION 281 "The version number of a DODAG as defined in Section 6.3 of 282 RFC 6550." 283 REFERENCE 284 "RFC 6550: RPL: IPv6 Routing Protocol for LLNs" 285 SYNTAX Unsigned32 (0..255) 287 RplRank ::= TEXTUAL-CONVENTION 288 DISPLAY-HINT "d" 289 STATUS current 290 DESCRIPTION 291 "The rank of a node within a DODAG as defined in Section 6.3 292 of RFC 6550." 293 REFERENCE 294 "RFC 6550: RPL: IPv6 Routing Protocol for LLNs" 295 SYNTAX Unsigned32 (0..65535) 297 RplObjectiveCodePoint ::= TEXTUAL-CONVENTION 298 DISPLAY-HINT "d" 299 STATUS current 300 DESCRIPTION 301 "The Objective Code Point of a DODAG as defined in 302 Section 6.7.6 of RFC 6550." 303 REFERENCE 304 "RFC 6550: RPL: IPv6 Routing Protocol for LLNs" 305 SYNTAX Unsigned32 (0..65535) 307 RplDISMode ::= TEXTUAL-CONVENTION 308 STATUS current 309 DESCRIPTION 310 "Determines whether a DIS message is send upon boot-up 311 or not as defined in Section 18.2.1.1 of RFC 6550: 313 silent(1) do not send DIS messages 314 send(2) send DIS messages" 315 REFERENCE 316 "RFC 6550: RPL: IPv6 Routing Protocol for LLNs" 317 SYNTAX INTEGER { 318 silent(1), 319 send(2) 320 } 322 RplModeOfOperation ::= TEXTUAL-CONVENTION 323 STATUS current 324 DESCRIPTION 325 "Determines the mode of operation." 326 REFERENCE 327 "RFC 6550: RPL: IPv6 Routing Protocol for LLNs" 328 SYNTAX INTEGER { 329 noDownwardRoutes(0), 330 nonStoringMode(1), 331 storingWithoutMulticastSupport(2), 332 storingWithMulticastSupport(3) 333 } 335 RplDAODelay ::= TEXTUAL-CONVENTION 336 DISPLAY-HINT "d" 337 STATUS current 338 DESCRIPTION 339 "The delay time used for aggregation before a DAO message 340 is send." 341 REFERENCE 342 "RFC 6550: RPL: IPv6 Routing Protocol for LLNs" 343 SYNTAX Unsigned32 345 RplDodagPreference ::= TEXTUAL-CONVENTION 346 DISPLAY-HINT "d" 347 STATUS current 348 DESCRIPTION 349 "The preference of a DODAG compared to another DODAG of the 350 same instance as defined in Section 6.3 of RFC 6550." 351 REFERENCE 352 "RFC 6550: RPL: IPv6 Routing Protocol for LLNs" 353 SYNTAX Unsigned32 (0..7) 355 RplMinHopRankIncrease ::= TEXTUAL-CONVENTION 356 DISPLAY-HINT "d" 357 STATUS current 358 DESCRIPTION 359 "The minimal incerease of a rank within a single hop as 360 defined in Section 6.7.6 of RFC 6550." 362 REFERENCE 363 "RFC 6550: RPL: IPv6 Routing Protocol for LLNs" 364 SYNTAX Unsigned32 (0..131071) 366 RplPathControlSize ::= TEXTUAL-CONVENTION 367 DISPLAY-HINT "d" 368 STATUS current 369 DESCRIPTION 370 "The Path Control Size within a DODAG as defined in 371 Section 6.7.6 of RFC 6550." 372 REFERENCE 373 "RFC 6550: RPL: IPv6 Routing Protocol for LLNs" 374 SYNTAX Unsigned32 (0..7) 376 -- object definitions 378 rplNotifications OBJECT IDENTIFIER ::= { rplMib 0 } 379 rplObjects OBJECT IDENTIFIER ::= { rplMib 1 } 380 rplConformance OBJECT IDENTIFIER ::= { rplMib 2 } 382 rplGeneral OBJECT IDENTIFIER ::= { rplObjects 1 } 384 rplDefaultDISMode OBJECT-TYPE 385 SYNTAX RplDISMode 386 MAX-ACCESS read-write 387 STATUS current 388 DESCRIPTION 389 "Determines whether a DIS message is send upon boot-up. 390 Changes to this value may not persist across restarts." 391 ::= { rplGeneral 1 } 392 -- XXX should be able to configure the number of DIS messages 393 -- XXX and related timer, see 18.2.1.1. 395 -- XXX Should there be more objects to configure default timers 396 -- XXX etc that are applied to all DODAGs etc? 398 rplActive OBJECT IDENTIFIER ::= { rplObjects 2 } 400 rplActiveInstance OBJECT-TYPE 401 SYNTAX RplInstanceID 402 MAX-ACCESS read-write 403 STATUS current 404 DESCRIPTION 405 "The currently active RPL Instance. Changes to this value 406 may not persist across restarts." 407 ::= { rplActive 1 } 409 rplActiveDodag OBJECT-TYPE 410 SYNTAX InetAddressIPv6 411 MAX-ACCESS read-write 412 STATUS current 413 DESCRIPTION 414 "The currently active RPL DODAG in the active RPL Instance. 415 Changes to this value may not persist across restarts." 416 ::= { rplActive 2 } 418 rplActiveDodagDAOSequence OBJECT-TYPE 419 SYNTAX Unsigned32 (0..255) 420 MAX-ACCESS read-only 421 STATUS current 422 DESCRIPTION 423 "The DAO message sequence number (DAOSequence) of the active 424 DODAG as defined in Section 6.5.1 of RFC 6550." 425 REFERENCE 426 "RFC 6550: RPL: IPv6 Routing Protocol for LLNs" 427 ::= { rplActive 3 } 428 -- XXX Does it really make sense to have this object? 430 rplActiveDodagTriggerSequence OBJECT-TYPE 431 SYNTAX Unsigned32 (0..255) 432 MAX-ACCESS read-write 433 STATUS current 434 DESCRIPTION 435 "The DAO Trigger Sequence Number (DTSN) of the active 436 DODAG as defined in Section 6.3.1 of RFC 6550. Changes to 437 this value may not persist across restarts." 438 REFERENCE 439 "RFC 6550: RPL: IPv6 Routing Protocol for LLNs" 440 ::= { rplActive 4 } 442 rplOCPTable OBJECT-TYPE 443 SYNTAX SEQUENCE OF RplOCPEntry 444 MAX-ACCESS not-accessible 445 STATUS current 446 DESCRIPTION 447 "The table of all supported Objective Code Points (OCPs)." 448 ::= { rplObjects 3 } 450 rplOCPEntry OBJECT-TYPE 451 SYNTAX RplOCPEntry 452 MAX-ACCESS not-accessible 453 STATUS current 454 DESCRIPTION 455 "An entry representing a supported Objective Code Point." 456 INDEX { rplOCPCodepoint } 457 ::= { rplOCPTable 1 } 459 RplOCPEntry ::= SEQUENCE { 460 rplOCPCodepoint RplObjectiveCodePoint, 461 rplOCPEnabled TruthValue 462 } 464 rplOCPCodepoint OBJECT-TYPE 465 SYNTAX RplObjectiveCodePoint 466 MAX-ACCESS not-accessible 467 STATUS current 468 DESCRIPTION 469 "A supported Objective Code Point." 470 ::= { rplOCPEntry 1 } 472 rplOCPEnabled OBJECT-TYPE 473 SYNTAX TruthValue 474 MAX-ACCESS read-write 475 STATUS current 476 DESCRIPTION 477 "Enables the usage of this Objective Code Point. Changes to 478 this value may not persist across restarts." 479 ::= { rplOCPEntry 2 } 481 rplInstanceTable OBJECT-TYPE 482 SYNTAX SEQUENCE OF RplInstanceEntry 483 MAX-ACCESS not-accessible 484 STATUS current 485 DESCRIPTION 486 "The table represents information about all known 487 RPL Instances." 488 ::= { rplObjects 4 } 490 rplInstanceEntry OBJECT-TYPE 491 SYNTAX RplInstanceEntry 492 MAX-ACCESS not-accessible 493 STATUS current 494 DESCRIPTION 495 "An entry representing information about a RPL Instance." 496 INDEX { rplInstanceID } 497 ::= { rplInstanceTable 1 } 498 -- XXX This should likely be a read-create table. 500 RplInstanceEntry ::= SEQUENCE { 501 rplInstanceID RplInstanceID, 502 rplInstanceOCP RplObjectiveCodePoint, 503 rplInstanceDisMode RplDISMode, 504 rplInstanceDAOAckEnabled TruthValue, 505 rplInstanceModeOfOperation RplModeOfOperation 506 } 507 rplInstanceID OBJECT-TYPE 508 SYNTAX RplInstanceID 509 MAX-ACCESS not-accessible 510 STATUS current 511 DESCRIPTION 512 "The InstanceID of this RPL Instance." 513 ::= { rplInstanceEntry 1 } 515 rplInstanceOCP OBJECT-TYPE 516 SYNTAX RplObjectiveCodePoint 517 MAX-ACCESS read-write 518 STATUS current 519 DESCRIPTION 520 "The Objective Code Point of this RPL Instance. Changes to 521 this value may not persist across restarts." 522 ::= { rplInstanceEntry 2 } 524 rplInstanceDisMode OBJECT-TYPE 525 SYNTAX RplDISMode 526 MAX-ACCESS read-write 527 STATUS current 528 DESCRIPTION 529 "Determines whether a DIS message is send for this instance 530 upon boot-up. Changes to this value may not persist across 531 restarts." 532 ::= { rplInstanceEntry 3 } 533 -- XXX Check how this works together with the global toggle. 534 -- XXX should we allow per instance parameters such as the number 535 -- XXX of DIS messages and related timer, see 17.2.1.1? 537 rplInstanceDAOAckEnabled OBJECT-TYPE 538 SYNTAX TruthValue 539 MAX-ACCESS read-write 540 STATUS current 541 DESCRIPTION 542 "Indicates whether DAO Acknowledgements are sent on this 543 RPL instance. Changes to this value may not persist across 544 restarts." 545 ::= { rplInstanceEntry 4 } 547 rplInstanceModeOfOperation OBJECT-TYPE 548 SYNTAX RplModeOfOperation 549 MAX-ACCESS read-write 550 STATUS current 551 DESCRIPTION 552 "The mode of Operation of the RPL instance. Changes to this 553 value may not persist across restarts." 554 ::= { rplInstanceEntry 5 } 556 rplDodagTable OBJECT-TYPE 557 SYNTAX SEQUENCE OF RplDodagEntry 558 MAX-ACCESS not-accessible 559 STATUS current 560 DESCRIPTION 561 "The table represents information about all locally known 562 DODAGs." 563 ::= { rplObjects 5 } 564 -- XXX The root needs a bit(?) config, where does that go? 566 rplDodagEntry OBJECT-TYPE 567 SYNTAX RplDodagEntry 568 MAX-ACCESS not-accessible 569 STATUS current 570 DESCRIPTION 571 "An entry representing information about a DODAG." 572 INDEX { rplInstanceID, rplDodagRoot } 573 ::= { rplDodagTable 1 } 575 RplDodagEntry ::= SEQUENCE { 576 rplDodagRoot InetAddressIPv6, 577 rplDodagVersion RplDodagVersionNumber, 578 rplDodagRank RplRank, 579 rplDodagState INTEGER, 580 rplDodagDAODelay RplDAODelay, 581 rplDodagPreference RplDodagPreference, 582 rplDodagMinHopRankIncrease RplMinHopRankIncrease, 583 rplDodagMaxRankIncrease Unsigned32, 584 rplDodagIntervalDoublings Unsigned32, 585 rplDodagIntervalMin Unsigned32, 586 rplDodagRedundancyConstant Unsigned32, 587 rplDodagPathControlSize RplPathControlSize 588 } 590 rplDodagRoot OBJECT-TYPE 591 SYNTAX InetAddressIPv6 592 MAX-ACCESS not-accessible 593 STATUS current 594 DESCRIPTION 595 "The identifier of a DODAG root (DODAGID) of this RPL 596 instance. The root of the DODAG reports its own IPv6 597 address as the DODAG root." 598 ::= { rplDodagEntry 1 } 600 rplDodagVersion OBJECT-TYPE 601 SYNTAX RplDodagVersionNumber 602 MAX-ACCESS read-only 603 STATUS current 604 DESCRIPTION 605 "The version of the DODAG in this RPL instance." 606 ::= { rplDodagEntry 2 } 608 rplDodagRank OBJECT-TYPE 609 SYNTAX RplRank 610 MAX-ACCESS read-only 611 STATUS current 612 DESCRIPTION 613 "The rank of the node within the DODAG." 614 ::= { rplDodagEntry 3 } 616 rplDodagState OBJECT-TYPE 617 SYNTAX INTEGER { 618 other(0), 619 associated(1), 620 grounded(2), 621 floating(3) 622 } 623 MAX-ACCESS read-only 624 STATUS current 625 DESCRIPTION 626 "The status of the DODAG: 628 other(0) An unknown state. 630 associated(1) A node is associated with the RPL instance. 632 grounded(2) The DODAG is grounded. 634 floating(3) The DODAG is floating (not grounded)." 635 ::= { rplDodagEntry 4 } 636 -- XXX In which circumstances can a node be associate and neither 637 -- XXX grounded or floating? 639 rplDodagDAODelay OBJECT-TYPE 640 SYNTAX RplDAODelay 641 UNITS "milliseconds" 642 MAX-ACCESS read-only 643 STATUS current 644 DESCRIPTION 645 "The delay for aggregations before a DAO is send." 646 ::= { rplDodagEntry 5 } 647 -- XXX Should this be configuration? If so we should add a default 648 -- XXX clause to define the default value to be 1 second. 650 rplDodagPreference OBJECT-TYPE 651 SYNTAX RplDodagPreference 652 MAX-ACCESS read-only 653 STATUS current 654 DESCRIPTION 655 "How preferred this DODAG is compared to other DODAGs 656 within the same instance." 657 ::= { rplDodagEntry 6 } 659 rplDodagMinHopRankIncrease OBJECT-TYPE 660 SYNTAX RplMinHopRankIncrease 661 MAX-ACCESS read-only 662 STATUS current 663 DESCRIPTION 664 "The minimum increase of the rank in a single hop." 665 ::= { rplDodagEntry 7 } 666 -- XXX should this be writable at the root? If so we should add a 667 -- defval clause to define the default value to be 256. 669 rplDodagMaxRankIncrease OBJECT-TYPE 670 SYNTAX Unsigned32 (0..65535) 671 MAX-ACCESS read-only 672 STATUS current 673 DESCRIPTION 674 "The maximum allowable increase in rank in support of local 675 repair. If DAGMaxRankIncrease is 0 then this mechanism is 676 disabled." 677 ::= { rplDodagEntry 8 } 679 rplDodagIntervalDoublings OBJECT-TYPE 680 SYNTAX Unsigned32 (0..255) 681 MAX-ACCESS read-write 682 STATUS current 683 DESCRIPTION 684 "The configured Imax of the DIO trickle timer. This is 685 typically only writable at the root. Changes to this value 686 may not persist across restarts." 687 REFERENCE 688 "RFC 6206: The Trickle Algorithm" 689 DEFVAL { 20 } 690 ::= { rplDodagEntry 9 } 692 rplDodagIntervalMin OBJECT-TYPE 693 SYNTAX Unsigned32 (0..255) 694 MAX-ACCESS read-write 695 STATUS current 696 DESCRIPTION 697 "The configured Imin of the DIO trickle timer. Changes to this 698 value may not persist across restarts." 699 REFERENCE 700 "RFC 6206: The Trickle Algorithm" 701 DEFVAL { 3 } 702 ::= { rplDodagEntry 10 } 704 rplDodagRedundancyConstant OBJECT-TYPE 705 SYNTAX Unsigned32 (0..255) 706 MAX-ACCESS read-write 707 STATUS current 708 DESCRIPTION 709 "The configured k of the DIO trickle timer. Changes to this 710 value may not persist across restarts." 711 REFERENCE 712 "RFC 6206: The Trickle Algorithm" 713 DEFVAL { 10 } 714 ::= { rplDodagEntry 11 } 716 rplDodagPathControlSize OBJECT-TYPE 717 SYNTAX RplPathControlSize 718 MAX-ACCESS read-only 719 STATUS current 720 DESCRIPTION 721 "The Path Control Size of this DODAG." 722 ::= { rplDodagEntry 12 } 724 rplDodagParentTable OBJECT-TYPE 725 SYNTAX SEQUENCE OF RplDodagParentEntry 726 MAX-ACCESS not-accessible 727 STATUS current 728 DESCRIPTION 729 "The list of parents for a DODAG." 730 ::= { rplObjects 6 } 732 rplDodagParentEntry OBJECT-TYPE 733 SYNTAX RplDodagParentEntry 734 MAX-ACCESS not-accessible 735 STATUS current 736 DESCRIPTION 737 "Information about a known DODAG parent." 738 INDEX { rplInstanceID, rplDodagRoot, rplDodagParentID } 739 ::= { rplDodagParentTable 1 } 741 RplDodagParentEntry ::= SEQUENCE { 742 rplDodagParentID InetAddressIPv6, 743 rplDodagParentIf InterfaceIndex 744 } 746 rplDodagParentID OBJECT-TYPE 747 SYNTAX InetAddressIPv6 748 MAX-ACCESS not-accessible 749 STATUS current 750 DESCRIPTION 751 "An RPL parent associated with this DODAG." 752 ::= { rplDodagParentEntry 1 } 754 rplDodagParentIf OBJECT-TYPE 755 SYNTAX InterfaceIndex 756 MAX-ACCESS read-only 757 STATUS current 758 DESCRIPTION 759 "The interface over which the parent can be reached." 760 ::= { rplDodagParentEntry 2 } 762 rplDodagChildTable OBJECT-TYPE 763 SYNTAX SEQUENCE OF RplDodagChildEntry 764 MAX-ACCESS not-accessible 765 STATUS current 766 DESCRIPTION 767 "The list of children for a DODAG." 768 ::= { rplObjects 7 } 770 rplDodagChildEntry OBJECT-TYPE 771 SYNTAX RplDodagChildEntry 772 MAX-ACCESS not-accessible 773 STATUS current 774 DESCRIPTION 775 "Information about a known DODAG child." 776 INDEX { rplInstanceID, rplDodagRoot, rplDodagChildID } 777 ::= { rplDodagChildTable 1 } 779 RplDodagChildEntry ::= SEQUENCE { 780 rplDodagChildID InetAddressIPv6 781 } 783 rplDodagChildID OBJECT-TYPE 784 SYNTAX InetAddressIPv6 785 MAX-ACCESS read-only 786 STATUS current 787 DESCRIPTION 788 "An RPL child associated with this DODAG." 789 ::= { rplDodagChildEntry 1 } 791 rplDodagPrefixTable OBJECT-TYPE 792 SYNTAX SEQUENCE OF RplDodagPrefixEntry 793 MAX-ACCESS not-accessible 794 STATUS current 795 DESCRIPTION 796 "List of prefixes associated with a DODAG." 797 ::= { rplObjects 8 } 798 -- XXX Explain how this relates to the ipAddressPrefixTable in 799 -- XXX the IP-MIB 801 rplDodagPrefixEntry OBJECT-TYPE 802 SYNTAX RplDodagPrefixEntry 803 MAX-ACCESS not-accessible 804 STATUS current 805 DESCRIPTION 806 "Information about a prefix associated with a DODAG." 807 INDEX { rplInstanceID, rplDodagRoot, 808 rplDodagPrefixIpv6Prefix, rplDodagPrefixIpv6PrefixLength } 809 ::= { rplDodagPrefixTable 1 } 810 -- XXX Can a DODAG have multiple prefixes, i.e., do we have to 811 -- XXX have the prefix and its length in the INDEX? 813 RplDodagPrefixEntry ::= SEQUENCE { 814 rplDodagPrefixIpv6Prefix InetAddressIPv6, 815 rplDodagPrefixIpv6PrefixLength InetAddressPrefixLength 816 } 818 rplDodagPrefixIpv6Prefix OBJECT-TYPE 819 SYNTAX InetAddressIPv6 820 MAX-ACCESS read-only 821 STATUS current 822 DESCRIPTION 823 "The IPv6 address forming the IPv6 prefix." 824 ::= { rplDodagPrefixEntry 1 } 826 rplDodagPrefixIpv6PrefixLength OBJECT-TYPE 827 SYNTAX InetAddressPrefixLength 828 MAX-ACCESS read-only 829 STATUS current 830 DESCRIPTION 831 "The length of the IPv6 prefix." 832 ::= { rplDodagPrefixEntry 2 } 834 rplStats OBJECT IDENTIFIER ::= { rplObjects 9 } 836 rplMemOverflows OBJECT-TYPE 837 SYNTAX Counter32 838 MAX-ACCESS read-only 839 STATUS current 840 DESCRIPTION 841 "The number of memory allocation failures (e.g., routing table 842 overflows)." 843 ::= { rplStats 1 } 845 rplParseErrors OBJECT-TYPE 846 SYNTAX Counter32 847 MAX-ACCESS read-only 848 STATUS current 849 DESCRIPTION 850 "The number of received malformed messages." 851 ::= { rplStats 2 } 853 rplUnknownMsgTypes OBJECT-TYPE 854 SYNTAX Counter32 855 MAX-ACCESS read-only 856 STATUS current 857 DESCRIPTION 858 "The number of received RPL messages that we dropped because 859 the message type is not recognized by the implementation." 860 ::= { rplStats 3 } 862 rplSecurityPolicyViolations OBJECT-TYPE 863 SYNTAX Counter32 864 MAX-ACCESS read-only 865 STATUS current 866 DESCRIPTION 867 "The number of messages discarded because the described level 868 of security for the message type and originator is unknown or 869 does not meet locally maintained security policies as defined 870 in Section 10.7. of RFC 6550." 871 REFERENCE 872 "RFC 6550: RPL: IPv6 Routing Protocol for LLNs" 873 ::= { rplStats 4 } 875 rplIntegrityCheckFailures OBJECT-TYPE 876 SYNTAX Counter32 877 MAX-ACCESS read-only 878 STATUS current 879 DESCRIPTION 880 "The number of messages discarded because the integrity 881 check failed against the received message authentication 882 code (MAC) as defined in Section 10.7. of RFC 6550." 883 REFERENCE 884 "RFC 6550: RPL: IPv6 Routing Protocol for LLNs" 885 ::= { rplStats 5 } 887 rplReplayProtectionFailures OBJECT-TYPE 888 SYNTAX Counter32 889 MAX-ACCESS read-only 890 STATUS current 891 DESCRIPTION 892 "The number of messages discarded because the received 893 message Counter value is non-zero and less than the 894 maintained incoming Counter watermark or because the 895 received Timestamp Counter value indicates a message 896 transmission time that is earlier than the Current time 897 less the acceptable packet delay as defined in Section 898 10.7. of RFC 6550. This counter is also incremented if the 899 temporal consistency check of the message fails as defined 900 in Section 10.7.1." 901 REFERENCE 902 "RFC 6550: RPL: IPv6 Routing Protocol for LLNs" 903 ::= { rplStats 6 } 905 rplValidParentFailures OBJECT-TYPE 906 SYNTAX Counter32 907 MAX-ACCESS read-only 908 STATUS current 909 DESCRIPTION 910 "The number of times a packet could not be sent to a DODAG 911 parent flagged as valid." 912 ::= { rplStats 7 } 914 rplNoInstanceIDs OBJECT-TYPE 915 SYNTAX Counter32 916 MAX-ACCESS read-only 917 STATUS current 918 DESCRIPTION 919 "The number of times a packet could not be sent because of 920 a missing RPLInstanceID." 921 ::= { rplStats 8 } 923 rplTriggeredLocalRepairs OBJECT-TYPE 924 SYNTAX Counter32 925 MAX-ACCESS read-only 926 STATUS current 927 DESCRIPTION 928 "The number of times a local repair procedure was triggered." 929 ::= { rplStats 9 } 931 rplTriggeredGlobalRepairs OBJECT-TYPE 932 SYNTAX Counter32 933 MAX-ACCESS read-only 934 STATUS current 935 DESCRIPTION 936 "The number of times a global repair procedure was triggered." 937 ::= { rplStats 10 } 939 rplNoParentSecs OBJECT-TYPE 940 SYNTAX Counter32 941 MAX-ACCESS read-only 942 STATUS current 943 DESCRIPTION 944 "The number of seconds without a next hop (DODAG parent)." 945 ::= { rplStats 11 } 947 rplActiveNoParentSecs OBJECT-TYPE 948 SYNTAX Counter32 949 MAX-ACCESS read-only 950 STATUS current 951 DESCRIPTION 952 "The number of seconds with packets to forward without a 953 next hop (DODAG parent)." 954 ::= { rplStats 12 } 956 rplOBitSetDownwards OBJECT-TYPE 957 SYNTAX Counter32 958 MAX-ACCESS read-only 959 STATUS current 960 DESCRIPTION 961 "Number of packets received with the 'O' bit set from 962 a node with a higher rank as defined in Section 18.3.2 963 of RFC 6550." 964 REFERENCE 965 "RFC 6550: RPL: IPv6 Routing Protocol for LLNs" 966 ::= { rplStats 13 } 968 rplOBitClearedUpwards OBJECT-TYPE 969 SYNTAX Counter32 970 MAX-ACCESS read-only 971 STATUS current 972 DESCRIPTION 973 "Number of packets received with the 'O' bit cleared 974 from a node with a lower rank as defined in Section 18.3.2 975 of RFC 6550." 976 REFERENCE 977 "RFC 6550: RPL: IPv6 Routing Protocol for LLNs" 978 ::= { rplStats 14 } 980 rplFBitSet OBJECT-TYPE 981 SYNTAX Counter32 982 MAX-ACCESS read-only 983 STATUS current 984 DESCRIPTION 985 "Number of packets received with the 'F' bit set as 986 defined in Section 18.3.2 of RFC 6550." 987 REFERENCE 988 "RFC 6550: RPL: IPv6 Routing Protocol for LLNs" 990 ::= { rplStats 15 } 992 rplRBitSet OBJECT-TYPE 993 SYNTAX Counter32 994 MAX-ACCESS read-only 995 STATUS current 996 DESCRIPTION 997 "Number of packets received with the 'R' bit set as 998 defined in Section 18.3.2 of RFC 6550." 999 REFERENCE 1000 "RFC 6550: RPL: IPv6 Routing Protocol for LLNs" 1001 ::= { rplStats 16 } 1003 rplTrickleTimerResets OBJECT-TYPE 1004 SYNTAX Counter32 1005 MAX-ACCESS read-only 1006 STATUS current 1007 DESCRIPTION 1008 "The number of trickle timer resets." 1009 ::= { rplStats 17 } 1011 rplMsgStatsTable OBJECT-TYPE 1012 SYNTAX SEQUENCE OF RplMsgStatsEntry 1013 MAX-ACCESS not-accessible 1014 STATUS current 1015 DESCRIPTION 1016 "Basic RPL message statistics by message type." 1017 ::= { rplObjects 10 } 1019 rplMsgStatsEntry OBJECT-TYPE 1020 SYNTAX RplMsgStatsEntry 1021 MAX-ACCESS not-accessible 1022 STATUS current 1023 DESCRIPTION 1024 "Statistics for a specific RPL message type." 1025 INDEX { rplMsgStatsType } 1026 ::= { rplMsgStatsTable 1 } 1028 RplMsgStatsEntry ::= SEQUENCE { 1029 rplMsgStatsType RplMessageType, 1030 rplMsgStatsInMsgs Counter32, 1031 rplMsgStatsOutMsgs Counter32 1032 } 1034 rplMsgStatsType OBJECT-TYPE 1035 SYNTAX RplMessageType 1036 MAX-ACCESS not-accessible 1037 STATUS current 1038 DESCRIPTION 1039 "The RPL message type being counted by this row." 1040 ::= { rplMsgStatsEntry 1 } 1042 rplMsgStatsInMsgs OBJECT-TYPE 1043 SYNTAX Counter32 1044 MAX-ACCESS read-only 1045 STATUS current 1046 DESCRIPTION 1047 "The number of RPL messages received of this type." 1048 ::= { rplMsgStatsEntry 2 } 1050 rplMsgStatsOutMsgs OBJECT-TYPE 1051 SYNTAX Counter32 1052 MAX-ACCESS read-only 1053 STATUS current 1054 DESCRIPTION 1055 "The number of RPL messages sent of this type." 1056 ::= { rplMsgStatsEntry 3 } 1058 -- conformance definitions 1060 rplGroups OBJECT IDENTIFIER ::= { rplConformance 1 } 1061 rplCompliances OBJECT IDENTIFIER ::= { rplConformance 2 } 1063 rplFullCompliance MODULE-COMPLIANCE 1064 STATUS current 1065 DESCRIPTION 1066 "Compliance statement for implementations supporting 1067 read/write access, according to the object definitions." 1068 MODULE -- this module 1069 MANDATORY-GROUPS { 1070 rplGeneralGroup, 1071 rplInstanceGroup, 1072 rplStatsGroup 1073 } 1074 ::= { rplCompliances 1 } 1076 rplReadOnlyCompliance MODULE-COMPLIANCE 1077 STATUS current 1078 DESCRIPTION 1079 "Compliance statement for implementations supporting 1080 only readonly access." 1081 MODULE -- this module 1082 MANDATORY-GROUPS { 1083 rplGeneralGroup, 1084 rplInstanceGroup, 1085 rplStatsGroup 1087 } 1089 OBJECT rplDefaultDISMode 1090 MIN-ACCESS read-only 1091 DESCRIPTION 1092 "Write access is not required." 1094 OBJECT rplActiveInstance 1095 MIN-ACCESS read-only 1096 DESCRIPTION 1097 "Write access is not required." 1099 OBJECT rplActiveDodag 1100 MIN-ACCESS read-only 1101 DESCRIPTION 1102 "Write access is not required." 1104 OBJECT rplActiveDodagTriggerSequence 1105 MIN-ACCESS read-only 1106 DESCRIPTION 1107 "Write access is not required." 1109 OBJECT rplOCPEnabled 1110 MIN-ACCESS read-only 1111 DESCRIPTION 1112 "Write access is not required." 1114 OBJECT rplInstanceOCP 1115 MIN-ACCESS read-only 1116 DESCRIPTION 1117 "Write access is not required." 1119 OBJECT rplInstanceDisMode 1120 MIN-ACCESS read-only 1121 DESCRIPTION 1122 "Write access is not required." 1124 OBJECT rplInstanceDAOAckEnabled 1125 MIN-ACCESS read-only 1126 DESCRIPTION 1127 "Write access is not required." 1129 OBJECT rplInstanceModeOfOperation 1130 MIN-ACCESS read-only 1131 DESCRIPTION 1132 "Write access is not required." 1134 OBJECT rplDodagIntervalDoublings 1135 MIN-ACCESS read-only 1136 DESCRIPTION 1137 "Write access is not required." 1139 OBJECT rplDodagIntervalMin 1140 MIN-ACCESS read-only 1141 DESCRIPTION 1142 "Write access is not required." 1144 OBJECT rplDodagRedundancyConstant 1145 MIN-ACCESS read-only 1146 DESCRIPTION 1147 "Write access is not required." 1149 ::= { rplCompliances 2 } 1151 rplGeneralGroup OBJECT-GROUP 1152 OBJECTS { 1153 rplDefaultDISMode, 1154 rplActiveInstance, 1155 rplActiveDodag, 1156 rplActiveDodagDAOSequence, 1157 rplActiveDodagTriggerSequence, 1158 -- rplOCPCodepoint, 1159 rplOCPEnabled 1160 } 1161 STATUS current 1162 DESCRIPTION 1163 "A collection of objects providing general information about 1164 the RPL implementation." 1165 ::= { rplGroups 1 } 1167 rplInstanceGroup OBJECT-GROUP 1168 OBJECTS { 1169 -- rplInstanceID, 1170 rplInstanceOCP, 1171 rplInstanceDisMode, 1172 rplInstanceDAOAckEnabled, 1173 rplInstanceModeOfOperation, 1174 -- rplDodagRoot, 1175 rplDodagVersion, 1176 rplDodagRank, 1177 rplDodagState, 1178 rplDodagDAODelay, 1179 rplDodagPreference, 1180 rplDodagMinHopRankIncrease, 1181 rplDodagMaxRankIncrease, 1182 rplDodagIntervalDoublings, 1183 rplDodagIntervalMin, 1184 rplDodagRedundancyConstant, 1185 rplDodagPathControlSize, 1186 -- rplDodagParentID, 1187 rplDodagParentIf, 1188 rplDodagChildID, 1189 rplDodagPrefixIpv6Prefix, 1190 rplDodagPrefixIpv6PrefixLength 1191 } 1192 STATUS current 1193 DESCRIPTION 1194 "A collection of objects providing insight into the RPL 1195 Instances and the DODAGs." 1196 ::= { rplGroups 2 } 1198 rplStatsGroup OBJECT-GROUP 1199 OBJECTS { 1200 rplMemOverflows, 1201 rplParseErrors, 1202 rplUnknownMsgTypes, 1203 rplSecurityPolicyViolations, 1204 rplIntegrityCheckFailures, 1205 rplReplayProtectionFailures, 1206 rplValidParentFailures, 1207 rplNoInstanceIDs, 1208 rplTriggeredLocalRepairs, 1209 rplTriggeredGlobalRepairs, 1210 rplNoParentSecs, 1211 rplActiveNoParentSecs, 1212 rplOBitSetDownwards, 1213 rplOBitClearedUpwards, 1214 rplFBitSet, 1215 rplRBitSet, 1216 rplTrickleTimerResets, 1217 -- rplMsgStatsType, 1218 rplMsgStatsInMsgs, 1219 rplMsgStatsOutMsgs 1220 } 1221 STATUS current 1222 DESCRIPTION 1223 "A collection of objects providing statistics about the 1224 RPL implementation." 1225 ::= { rplGroups 3 } 1227 END 1229 7. Security Considerations 1231 There are a number of management objects defined in this MIB module 1232 with a MAX-ACCESS clause of read-write and/or read-create. Such 1233 objects may be considered sensitive or vulnerable in some network 1234 environments. The support for SET operations in a non-secure 1235 environment without proper protection can have a negative effect on 1236 network operations. These are the tables and objects and their 1237 sensitivity/vulnerability: 1239 o rplActiveInstance: [ TBD ] explain sensitivity 1241 Some of the readable objects in this MIB module (i.e., objects with a 1242 MAX-ACCESS other than not-accessible) may be considered sensitive or 1243 vulnerable in some network environments. It is thus important to 1244 control even GET and/or NOTIFY access to these objects and possibly 1245 to even encrypt the values of these objects when sending them over 1246 the network via SNMP. These are the tables and objects and their 1247 sensitivity/vulnerability: 1249 [TODO: Need to describe vulnerabilities here.] 1251 SNMP versions prior to SNMPv3 did not include adequate security. 1252 Even if the network itself is secure (for example by using IPsec), 1253 even then, there is no control as to who on the secure network is 1254 allowed to access and GET/SET (read/change/create/delete) the objects 1255 in this MIB module. 1257 It is RECOMMENDED that implementers consider the security features as 1258 provided by the SNMPv3 framework (see [RFC3410], section 8), 1259 including full support for the SNMPv3 cryptographic mechanisms (for 1260 authentication and privacy). 1262 Further, deployment of SNMP versions prior to SNMPv3 is NOT 1263 RECOMMENDED. Instead, it is RECOMMENDED to deploy SNMPv3 and to 1264 enable cryptographic security. It is then a customer/operator 1265 responsibility to ensure that the SNMP entity giving access to an 1266 instance of this MIB module is properly configured to give access to 1267 the objects only to those principals (users) that have legitimate 1268 rights to indeed GET or SET (change/create/delete) them. 1270 8. IANA Considerations 1272 IANA is requested to assign a value for "XXXX" under the 'mib-2' 1273 subtree and to record the assignment in the SMI Numbers registry. 1274 When the assignment has been made, the RFC Editor is asked to replace 1275 "XXXX" (here and in the MIB module) with the assigned value and to 1276 remove this note. 1278 IANA has allocated a number for RPL in the IANAipRouteProtocol 1279 textual convention of the IANA-RTPROTO-MIB. 1281 9. Acknowledgements 1283 The authors like to thank Michael Richardson for providing helpful 1284 comments during the development of this specification. 1286 10. References 1288 10.1. Normative References 1290 [RFC2119] Bradner, S., "Key words for use in RFCs 1291 to Indicate Requirement Levels", BCP 14, 1292 RFC 2119, March 1997. 1294 [RFC2578] McCloghrie, K., Ed., Perkins, D., Ed., 1295 and J. Schoenwaelder, Ed., "Structure of 1296 Management Information Version 2 1297 (SMIv2)", STD 58, RFC 2578, April 1999. 1299 [RFC2579] McCloghrie, K., Ed., Perkins, D., Ed., 1300 and J. Schoenwaelder, Ed., "Textual 1301 Conventions for SMIv2", STD 58, RFC 2579, 1302 April 1999. 1304 [RFC2580] McCloghrie, K., Perkins, D., and J. 1305 Schoenwaelder, "Conformance Statements 1306 for SMIv2", STD 58, RFC 2580, April 1999. 1308 [RFC2863] McCloghrie, K. and F. Kastenholz, "The 1309 Interfaces Group MIB", RFC 2863, 1310 June 2000. 1312 [RFC4001] Daniele, M., Haberman, B., Routhier, S., 1313 and J. Schoenwaelder, "Textual 1314 Conventions for Internet Network 1315 Addresses", RFC 4001, February 2005. 1317 [RFC4292] Haberman, B., "IP Forwarding Table MIB", 1318 RFC 4292, April 2006. 1320 [RFC6206] Levis, P., Clausen, T., Hui, J., Gnawali, 1321 O., and J. Ko, "The Trickle Algorithm", 1322 RFC 6206, March 2011. 1324 [RFC6550] Winter, T., Thubert, P., Brandt, A., Hui, 1325 J., Kelsey, R., Levis, P., Pister, K., 1326 Struik, R., Vasseur, JP., and R. 1327 Alexander, "RPL: IPv6 Routing Protocol 1328 for Low-Power and Lossy Networks", 1329 RFC 6550, March 2012. 1331 10.2. Informative References 1333 [RFC3410] Case, J., Mundy, R., Partain, D., and B. 1334 Stewart, "Introduction and Applicability 1335 Statements for Internet-Standard 1336 Management Framework", RFC 3410, 1337 December 2002. 1339 [I-D.ietf-netmod-smi-yang] Schoenwaelder, J., "Translation of SMIv2 1340 MIB Modules to YANG Modules", 1341 draft-ietf-netmod-smi-yang-05 (work in 1342 progress), April 2012. 1344 [I-D.lhotka-yang-json] Lhotka, L., "Modeling JSON Text with 1345 YANG", draft-lhotka-yang-json-01 (work in 1346 progress), June 2012. 1348 Appendix A. JSON Representation 1350 Using the translation algorithm defined in 1351 [I-D.ietf-netmod-smi-yang], the SMIv2 module can be translated to 1352 YANG. Using the JSON representation of data modeled in YANG defined 1353 in [I-D.lhotka-yang-json], the objects defined in the MIB module can 1354 be represented in JSON as shown below. The compact representation 1355 without any white space uses XXXX octets. (Of course, this number 1356 depends on the number of octets needed for the counter values.) 1358 { 1359 "RPL-MIB:RPL-MIB": { 1360 "rplGeneral": { 1361 "rplDefaultDISMode": "silent" 1362 }, 1363 "rplActive": { 1364 "rplActiveInstance": 0, 1365 "rplActiveDodag": "2001:db8:bad:cafe::1", 1366 "rplActiveDodagDAOSequence": 42, 1367 "rplActiveDodagTriggerSequence": 4 1368 }, 1369 "rplStats": { 1370 "rplMemOverflows": 0, 1371 "rplParseErrors": 0, 1372 "rplUnknownMsgTypes": 1, 1373 "rplSecurityPolicyViolations": 0, 1374 "rplIntegrityCheckFailures": 0, 1375 "rplReplayProtectionFailures": 0, 1376 "rplValidParentFailures": 1, 1377 "rplNoInstanceIDs": 0, 1378 "rplTriggeredLocalRepairs": 3, 1379 "rplTriggeredGlobalRepairs": 0, 1380 "rplNoParentSecs": 15, 1381 "rplActiveNoParentSecs": 0, 1382 "rplOBitSetDownwards": 0, 1383 "rplOBitClearedUpwards": 0, 1384 "rplFBitSet": 0, 1385 "rplRBitSet": 0, 1386 "rplTrickleTimerResets": 42 1387 }, 1388 "rplOCPTable": { 1389 "rplOCPEntry": [ 1390 { 1391 "rplOCPCodepoint": 0, 1392 "rplOCPEnabled": true 1393 } 1394 ] 1395 }, 1396 "rplInstanceTable": { 1397 "rplInstanceEntry": [ 1398 { 1399 "rplInstanceID": 0, 1400 "rplInstanceOCP": 0, 1401 "rplInstanceDisMode": "send", 1402 "rplInstanceDAOAckEnabled": false, 1403 "rplInstanceModeOfOperation": 1404 "storingWithoutMulticastSupport" 1405 } 1406 ] 1407 }, 1408 "rplDodagTable": { 1409 "rplDodagEntry": [ 1410 { 1411 "rplInstanceID": 0, 1412 "rplDodagRoot": "2001:db8:bad:cafe::1", 1413 "rplDodagVersion": 3, 1414 "rplDodagRank": 2, 1415 "rplDodagState": "grounded", 1416 "rplDodagDAODelay": 1000, 1417 "rplDodagPreference": 0, 1418 "rplDodagMinHopRankIncrease": 256, 1419 "rplDodagMaxRankIncrease": 0, 1420 "rplDodagIntervalDoublings": 20, 1421 "rplDodagIntervalMin": 3, 1422 "rplDodagRedundancyConstant": 10, 1423 "rplDodagPathControlSize": 0 1424 } 1425 ] 1426 }, 1427 "rplDodagParentTable": { 1428 "rplDodagParentEntry": [ 1429 { 1430 "rplRPLInstanceID": 0, 1431 "rplDodagRoot": "2001:db8:bad:cafe::1", 1432 "rplDodagParentID": "2001:db8:bad:cafe::8", 1433 "rplDodagParentIf": 1 1434 } 1435 ] 1436 }, 1437 "rplDodagChildTable": { 1438 "rplDodagChildEntry": [ 1439 { 1440 "rplRPLInstanceID": 0, 1441 "rplDodagRoot": "2001:db8:bad:cafe::1", 1442 "rplDodagChildID": "2001:db8:bad:cafe::a" 1443 }, 1444 { 1445 "rplRPLInstanceID": 0, 1446 "rplDodagRoot": "2001:db8:bad:cafe::1", 1447 "rplDodagChildID": "2001:db8:bad:cafe::b" 1448 } 1449 ] 1450 }, 1451 "rplDodagPrefixTable": { 1452 "rplDodagPrefixEntry": [ 1453 { 1454 "rplRPLInstanceID": 0, 1455 "rplDodagRoot": "2001:db8:bad:cafe::1", 1456 "rplDodagPrefixIpv6Prefix": "2001:db8:bad:cafe::", 1457 "rplDodagPrefixIpv6PrefixLength": "64" 1458 } 1459 ] 1460 }, 1461 "rplMsgStatsTable": { 1462 "rplMsgStatsEntry": [ 1463 { 1464 "rplMsgStatsType": 0, 1465 "rplMsgStatsInMsgs": 78, 1466 "rplMsgStatsOutMsgs": 23 1467 }, 1468 { 1469 "rplMsgStatsType": 1, 1470 "rplMsgStatsInMsgs": 11, 1471 "rplMsgStatsOutMsgs": 54 1472 }, 1473 { 1474 "rplMsgStatsType": 2, 1475 "rplMsgStatsInMsgs": 87, 1476 "rplMsgStatsOutMsgs": 28 1477 }, 1478 { 1479 "rplMsgStatsType": 4, 1480 "rplMsgStatsInMsgs": 47, 1481 "rplMsgStatsOutMsgs": 38 1482 } 1483 ] 1484 } 1485 } 1486 } 1488 Appendix B. Open Issues 1490 Should we model objective functions, e.g. by introducing a table 1491 that includes things such as MinHopRankIncrease and 1492 MaxRankIncrease 1494 Authors' Addresses 1496 Kevin Korte 1497 Jacobs University 1498 Campus Ring 1 1499 Bremen 28759 1500 Germany 1502 EMail: k.korte@jacobs-university.de 1504 Juergen Schoenwaelder 1505 Jacobs University 1506 Campus Ring 1 1507 Bremen 28759 1508 Germany 1510 EMail: j.schoenwaelder@jacobs-university.de 1511 Anuj Sehgal 1512 Jacobs University 1513 Campus Ring 1 1514 Bremen 28759 1515 Germany 1517 EMail: s.anuj@jacobs-university.de 1519 Tina Tsou 1520 Huawei Technologies (USA) 1521 2330 Central Expressway 1522 Santa Clara CA 95050 1523 USA 1525 EMail: tina.tsou.zouting@huawei.com 1527 Cathy Zhou 1528 Huawei Technologies 1529 Bantian, Longgang District 1530 Shenzhen 518129 1531 P.R. China 1533 EMail: cathyzhou@huawei.com