Internet Engineering Task Force                                 K. Korte
Internet-Draft                                          J. Schoenwaelder
Intended status: Standards Track                               A. Sehgal
Expires: August 26, 2013                               Jacobs University
                                                                 T. Tsou
                                               Huawei Technologies (USA)
                                                                 C. Zhou
                                                     Huawei Technologies
                                                       February 22, 2013


  Definition of Managed Objects for the IPv6 Routing Protocol for Low
                     Power and Lossy Networks (RPL)
                      draft-sehgal-roll-rpl-mib-06

Abstract

   This memo defines a portion of the Management Information Base (MIB)
   for use with network management protocols in the Internet community.
   In particular, it defines objects for managing the IPv6 Routing
   Protocol for Low Power and Lossy Networks (RPL).

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on August 26, 2013.

Copyright Notice

   Copyright (c) 2013 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents



Korte, et al.            Expires August 26, 2013                [Page 1]


Internet-Draft                   RPL-MIB                   February 2013


   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
   2.  The Internet-Standard Management Framework . . . . . . . . . .  3
   3.  Conventions  . . . . . . . . . . . . . . . . . . . . . . . . .  3
   4.  Overview . . . . . . . . . . . . . . . . . . . . . . . . . . .  3
   5.  Relationship to Other MIB Modules  . . . . . . . . . . . . . .  5
   6.  Definitions  . . . . . . . . . . . . . . . . . . . . . . . . .  5
   7.  Security Considerations  . . . . . . . . . . . . . . . . . . . 29
   8.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 30
   9.  Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 31
   10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 31
     10.1.  Normative References  . . . . . . . . . . . . . . . . . . 31
     10.2.  Informative References  . . . . . . . . . . . . . . . . . 32
   Appendix A.  JSON Representation . . . . . . . . . . . . . . . . . 32






























Korte, et al.            Expires August 26, 2013                [Page 2]


Internet-Draft                   RPL-MIB                   February 2013


1.  Introduction

   This memo defines a portion of the Management Information Base (MIB)
   for use with network management protocols.  In particular it defines
   objects for managing the IPv6 Routing Protocol for Low Power and
   Lossy Networks (RPL) [RFC6550].  It also provides management access
   to the Trickle [RFC6206] parameters as they are used by RPL.

2.  The Internet-Standard Management Framework

   For a detailed overview of the documents that describe the current
   Internet-Standard Management Framework, please refer to section 7 of
   RFC 3410 [RFC3410].

   Managed objects are accessed via a virtual information store, termed
   the Management Information Base or MIB.  MIB objects are generally
   accessed through the Simple Network Management Protocol (SNMP).
   Objects in the MIB are defined using the mechanisms defined in the
   Structure of Management Information (SMI).  This memo specifies a MIB
   module that is compliant to the SMIv2, which is described in STD 58,
   RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] and STD 58, RFC 2580
   [RFC2580].

3.  Conventions

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in RFC 2119 [RFC2119].

4.  Overview

   The MIB module is organized into a group of scalars and tables.

  # RPL-MIB registration tree (generated by smidump 0.4.8)

  -rplMib(1.3.6.1.2.1.XXXX)
    +-rplNotifications(0)
    +-rplObjects(1)
       +-rplDefaults(1)
       |  +- rwn RplDISMode            rplDefaultDISMode(1)
       |  +- rwn Unsigned32            rplDefaultDISMessages(2)
       |  +- rwn Unsigned32            rplDefaultDISTimeout(3)
       |  +- rwn RplDAODelay           rplDefaultDAODelay(4)
       |  +- rwn TruthValue            rplDefaultDAOAckEnabled(5)
       |  +- rwn RplDodagPreference    rplDefaultPreference(6)
       |  +- rwn RplMinHopRankIncrease rplDefaultMinHopRankIncrease(7)
       |  +- rwn Unsigned32            rplDefaultMaxRankIncrease(8)
       |  +- rwn RplModeOfOperation    rplDefaultModeOfOperation(9)



Korte, et al.            Expires August 26, 2013                [Page 3]


Internet-Draft                   RPL-MIB                   February 2013


       |  +- rwn Unsigned32            rplDefaultIntervalDoublings(10)
       |  +- rwn Unsigned32            rplDefaultIntervalMin(11)
       |  +- rwn Unsigned32            rplDefaultRedundancyConstant(12)
       +-rplActive(2)
       |  +- rwn RplInstanceID   rplActiveInstance(1)
       |  +- rwn InetAddressIPv6 rplActiveDodag(2)
       |  +- rwn Unsigned32      rplActiveDodagTriggerSequence(3)
       +-rplOCPTable(3)
       |  +-rplOCPEntry(1) [rplOCPCodepoint]
       |     +- --- RplObjectiveCodePoint rplOCPCodepoint(1)
       |     +- rwn TruthValue            rplOCPEnabled(2)
       +-rplInstanceTable(4)
       |  +-rplInstanceEntry(1) [rplInstanceID]
       |     +- --- RplInstanceID         rplInstanceID(1)
       |     +- r-n RplDISMode            rplInstanceDISMode(2)
       |     +- r-n Unsigned32            rplInstanceDISMessages(3)
       |     +- r-n Unsigned32            rplInstanceDISTimeout(4)
       |     +- r-n RplModeOfOperation    rplInstanceModeOfOperation(5)
       +-rplDodagTable(5)
       |  +-rplDodagEntry(1) [rplInstanceID,rplDodagIndex]
       |     +- --- Unsigned32            rplDodagIndex(1)
       |     +- --- InetAddressIPv6       rplDodagRoot(2)
       |     +- r-n RplDodagVersionNumber rplDodagVersion(3)
       |     +- r-n RplRank               rplDodagRank(4)
       |     +- r-n Enumeration           rplDodagState(5)
       |     +- r-n RplObjectiveCodePoint rplDodagOCP(6)
       |     +- r-n RplDAODelay           rplDodagDAODelay(7)
       |     +- r-n TruthValue            rplDodagDAOAckEnabled(8)
       |     +- r-n RplDodagPreference    rplDodagPreference(9)
       |     +- r-n RplMinHopRankIncrease rplDodagMinHopRankIncrease(10)
       |     +- r-n Unsigned32            rplDodagMaxRankIncrease(11)
       |     +- r-n Unsigned32            rplDodagIntervalDoublings(12)
       |     +- r-n Unsigned32            rplDodagIntervalMin(13)
       |     +- r-n Unsigned32            rplDodagRedundancyConstant(14)
       |     +- r-n RplPathControlSize    rplDodagPathControlSize(15)
       +-rplDodagParentTable(6)
       |  +-rplDodagParentEntry(1) [rplInstanceID,rplDodagIndex,
       |     |                       rplDodagParentID]
       |     +- --- InetAddressIPv6 rplDodagParentID(1)
       |     +- r-n InterfaceIndex  rplDodagParentIf(2)
       +-rplDodagChildTable(7)
       |  +-rplDodagChildEntry(1) [rplInstanceID,rplDodagIndex,
       |     |                      rplDodagChildID]
       |     +- --- InetAddressIPv6 rplDodagChildID(1)
       |     +- r-n InterfaceIndex  rplDodagChildIf(2)
       +-rplStats(8)
       |  +- r-n Counter32 rplMemOverflows(1)
       |  +- r-n Counter32 rplParseErrors(2)



Korte, et al.            Expires August 26, 2013                [Page 4]


Internet-Draft                   RPL-MIB                   February 2013


       |  +- r-n Counter32 rplUnknownMsgTypes(3)
       |  +- r-n Counter32 rplSecurityPolicyViolations(4)
       |  +- r-n Counter32 rplIntegrityCheckFailures(5)
       |  +- r-n Counter32 rplReplayProtectionFailures(6)
       |  +- r-n Counter32 rplValidParentFailures(7)
       |  +- r-n Counter32 rplNoInstanceIDs(8)
       |  +- r-n Counter32 rplTriggeredLocalRepairs(9)
       |  +- r-n Counter32 rplTriggeredGlobalRepairs(10)
       |  +- r-n Counter32 rplNoParentSecs(11)
       |  +- r-n Counter32 rplActiveNoParentSecs(12)
       |  +- r-n Counter32 rplOBitSetDownwards(13)
       |  +- r-n Counter32 rplOBitClearedUpwards(14)
       |  +- r-n Counter32 rplFBitSet(15)
       |  +- r-n Counter32 rplRBitSet(16)
       |  +- r-n Counter32 rplTrickleTimerResets(17)
       +-rplMsgStatsTable(9)
          +-rplMsgStatsEntry(1) [rplMsgStatsType]
             +- --- RplMessageType rplMsgStatsType(1)
             +- r-n Counter32      rplMsgStatsInMsgs(2)
             +- r-n Counter32      rplMsgStatsOutMsgs(3)

5.  Relationship to Other MIB Modules

   The MIB module IMPORTS definitions from SNMPv2-SMI [RFC2578],
   SNMPv2-TC [RFC2579], SNMPv2-CONF [RFC2580], IF-MIB [RFC2863] and the
   INET-ADDRESS-MIB [RFC4001].

   The IPv6 routing table SHOULD be exposed via the inetCidrRouteTable
   defined in the IP-FORWARD-MIB [RFC4292].  Since an RPL node can
   participate in multiple RPL instances, the inetCidrRoutePolicy object
   SHOULD carry the OID of the rplInstanceID instance, including the
   value of rplInstanceID.

   The prefixes used by DODAGs SHOULD be exported via the
   ipAddressPrefixTable of the IP-MIB [RFC4293].  The value of
   ipAddressPrefixOrigin should be routeradv(5).

6.  Definitions

RPL-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, Unsigned32, Counter32, mib-2
        FROM SNMPv2-SMI                                 -- RFC 2578
    TEXTUAL-CONVENTION, TruthValue
        FROM SNMPv2-TC                                  -- RFC 2579
    OBJECT-GROUP, MODULE-COMPLIANCE
        FROM SNMPv2-CONF                                -- RFC 2580



Korte, et al.            Expires August 26, 2013                [Page 5]


Internet-Draft                   RPL-MIB                   February 2013


    InterfaceIndex
        FROM IF-MIB                                     -- RFC 2863
    InetAddressIPv6
        FROM INET-ADDRESS-MIB;                          -- RFC 4001

rplMib MODULE-IDENTITY
    LAST-UPDATED "201302200000Z"
    ORGANIZATION
        "Jacobs University Bremen"
    CONTACT-INFO
        "Kevin Dominik Korte
         Jacobs University Bremen
         Email: k.korte@jacobs-university.de

         Anuj Sehgal
         Jacobs University Bremen
         Email: s.anuj@jacobs-university.de

         Juergen Schoenwaelder
         Jacobs University Bremen
         Email: j.schoenwaelder@jacobs-university.de

         Tina Tsou
         Huawei Technologies
         Email: tina.tsou.zouting@huawei.com

         Cathy Zhou
         Huawei Technologies
         Email: cathyzhou@huawei.com"
    DESCRIPTION
        "The MIB module for monitoring nodes implementing the IPv6
         routing protocol for low power and lossy networks (RPL).

         Copyright (c) 2013 IETF Trust and the persons identified as
         authors of the code.  All rights reserved.

         Redistribution and use in source and binary forms, with or
         without modification, is permitted pursuant to, and subject
         to the license terms contained in, the Simplified BSD
         License set forth in Section 4.c of the IETF Trust's
         Legal Provisions Relating to IETF Documents
         (http://trustee.ietf.org/license-info)."

    REVISION "201302200000Z"
    DESCRIPTION
        "Initial version, published as RFC XXXX."
    -- RFC Ed.: replace XXXX with actual RFC number & remove this note




Korte, et al.            Expires August 26, 2013                [Page 6]


Internet-Draft                   RPL-MIB                   February 2013


    ::= { mib-2 XXXX }

RplMessageType ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "d"
    STATUS      current
    DESCRIPTION
        "The type of an RPL control message as defined in Section
         6 of RFC 6550."
    REFERENCE
        "RFC 6550: RPL: IPv6 Routing Protocol for LLNs"
    SYNTAX      Unsigned32 (0..255)

RplInstanceID ::=  TEXTUAL-CONVENTION
    DISPLAY-HINT "d"
    STATUS      current
    DESCRIPTION
        "A global or local RPLInstanceID as defined in Section 5.1
         of RFC 6550."
    REFERENCE
        "RFC 6550: RPL: IPv6 Routing Protocol for LLNs"
    SYNTAX      Unsigned32 (0..255)

RplDodagVersionNumber ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "d"
    STATUS      current
    DESCRIPTION
        "The version number of a DODAG as defined in Section 6.3 of
         RFC 6550."
    REFERENCE
        "RFC 6550: RPL: IPv6 Routing Protocol for LLNs"
    SYNTAX      Unsigned32 (0..255)

RplRank ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "d"
    STATUS      current
    DESCRIPTION
        "The rank of a node within a DODAG as defined in Section 6.3
         of RFC 6550."
    REFERENCE
        "RFC 6550: RPL: IPv6 Routing Protocol for LLNs"
    SYNTAX      Unsigned32 (0..65535)

RplObjectiveCodePoint ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "d"
    STATUS      current
    DESCRIPTION
        "The Objective Code Point of a DODAG as defined in
         Section 6.7.6 of RFC 6550."



Korte, et al.            Expires August 26, 2013                [Page 7]


Internet-Draft                   RPL-MIB                   February 2013


    REFERENCE
        "RFC 6550: RPL: IPv6 Routing Protocol for LLNs"
    SYNTAX      Unsigned32 (0..65535)

RplDISMode ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "Determines whether a DIS message is send upon boot-up
         or not as defined in Section 18.2.1.1 of RFC 6550:

         silent(1)  do not send DIS messages
         send(2)    send DIS messages"
    REFERENCE
        "RFC 6550: RPL: IPv6 Routing Protocol for LLNs"
    SYNTAX      INTEGER {
                    silent(1),
                    send(2)
                }

RplModeOfOperation ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "The mode of operation of an RPL instance as defined in
         Section 6.3.1 of RFC 6550."
    REFERENCE
        "RFC 6550: RPL: IPv6 Routing Protocol for LLNs"
    SYNTAX      INTEGER {
                    noDownwardRoutes(0),
                    nonStoringMode(1),
                    storingWithoutMulticastSupport(2),
                    storingWithMulticastSupport(3)
                }

RplDAODelay ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "d"
    STATUS      current
    DESCRIPTION
        "The delay time used for aggregation before a DAO message
         is send."
    REFERENCE
        "RFC 6550: RPL: IPv6 Routing Protocol for LLNs"
    SYNTAX      Unsigned32

RplDodagPreference ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "d"
    STATUS      current
    DESCRIPTION
        "The preference of a DODAG compared to another DODAG of the



Korte, et al.            Expires August 26, 2013                [Page 8]


Internet-Draft                   RPL-MIB                   February 2013


         same instance as defined in Section 6.3 of RFC 6550."
    REFERENCE
        "RFC 6550: RPL: IPv6 Routing Protocol for LLNs"
    SYNTAX      Unsigned32 (0..7)

RplMinHopRankIncrease ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "d"
    STATUS      current
    DESCRIPTION
        "The minimal increase of a rank within a single hop as
         defined in Section 6.7.6 of RFC 6550."
    REFERENCE
        "RFC 6550: RPL: IPv6 Routing Protocol for LLNs"
    SYNTAX      Unsigned32 (0..131071)

RplPathControlSize ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "d"
    STATUS      current
    DESCRIPTION
        "The Path Control Size within a DODAG as defined in
         Section 6.7.6 of RFC 6550."
    REFERENCE
        "RFC 6550: RPL: IPv6 Routing Protocol for LLNs"
    SYNTAX      Unsigned32 (0..7)

-- object definitions

rplNotifications OBJECT IDENTIFIER ::= { rplMib 0 }
rplObjects       OBJECT IDENTIFIER ::= { rplMib 1 }
rplConformance   OBJECT IDENTIFIER ::= { rplMib 2 }

rplDefaults OBJECT IDENTIFIER ::= { rplObjects 1 }

rplDefaultDISMode OBJECT-TYPE
    SYNTAX      RplDISMode
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Determines whether a DIS message is send upon boot-up.
         Changes to this value may not persist across restarts."
    ::= { rplDefaults 1 }

rplDefaultDISMessages OBJECT-TYPE
    SYNTAX      Unsigned32 (1..255)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The number of DIS messages that are sent as an initial



Korte, et al.            Expires August 26, 2013                [Page 9]


Internet-Draft                   RPL-MIB                   February 2013


         probe for nearby DODAGs if the DIS mode is 'send'. The
         value of this object is ignored if the DIS mode is
         'silent'. Changes to this value may not persist across
         restarts."
    DEFVAL      { 1 }
    ::= { rplDefaults 2 }

rplDefaultDISTimeout OBJECT-TYPE
    SYNTAX      Unsigned32 (0..255)
    UNITS       "seconds"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The number of seconds after which a node in DIS mode 'send'
         in the absence of DIO messages may decide to root a
         floating DODAG. Changes to this value may not persist
         across restarts."
    DEFVAL      { 60 }
    ::= { rplDefaults 3 }

rplDefaultDAODelay OBJECT-TYPE
    SYNTAX      RplDAODelay
    UNITS       "milliseconds"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The default delay for aggregations before a DAO is send.
         Changes to this value may not persist across restarts."
    DEFVAL      { 1000 }
    ::= { rplDefaults 4 }

rplDefaultDAOAckEnabled OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Indicates whether DAO Acknowledgements are sent on this
         RPL instance. Changes to this value may not persist
         across restarts."
    DEFVAL      { false }
    ::= { rplDefaults 5 }

rplDefaultPreference OBJECT-TYPE
    SYNTAX      RplDodagPreference
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The default preference of this DODAG compared to other



Korte, et al.            Expires August 26, 2013               [Page 10]


Internet-Draft                   RPL-MIB                   February 2013


         DODAGs within the same instance. Changes to this value
         may not persist across restarts."
    DEFVAL      { 0 }
    ::= { rplDefaults 6 }

rplDefaultMinHopRankIncrease OBJECT-TYPE
    SYNTAX      RplMinHopRankIncrease
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The default minimum increase of the rank in a single hop.
         Changes to this value may not persist across restarts."
    DEFVAL      { 256 }
    ::= { rplDefaults 7 }

rplDefaultMaxRankIncrease OBJECT-TYPE
    SYNTAX      Unsigned32 (0..65535)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The default maximum allowable increase in rank in support
         of local repair.  If DAGMaxRankIncrease is 0 then this
         mechanism is disabled. Changes to this value may not
         persist across restarts."
    DEFVAL      { 65535 }
    ::= { rplDefaults 8 }

rplDefaultModeOfOperation OBJECT-TYPE
    SYNTAX      RplModeOfOperation
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The mode of operation of the RPL instance. Changes to this
         value may not persist across restarts."
    DEFVAL      { storingWithoutMulticastSupport }
    ::= { rplDefaults 9 }

rplDefaultIntervalDoublings OBJECT-TYPE
    SYNTAX      Unsigned32 (0..255)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The default Imax parameter of the DIO trickle timer. Changes
         to this value may not persist across restarts."
    REFERENCE
        "RFC 6206: The Trickle Algorithm"
    DEFVAL      { 20 }
    ::= { rplDefaults 10 }



Korte, et al.            Expires August 26, 2013               [Page 11]


Internet-Draft                   RPL-MIB                   February 2013


rplDefaultIntervalMin OBJECT-TYPE
    SYNTAX      Unsigned32 (0..255)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The default Imin parameter of the DIO trickle timer. Changes
         to this value may not persist across restarts."
    REFERENCE
        "RFC 6206: The Trickle Algorithm"
    DEFVAL      { 3 }
    ::= { rplDefaults 11 }

rplDefaultRedundancyConstant OBJECT-TYPE
    SYNTAX      Unsigned32 (0..255)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The default k parameter of the DIO trickle timer. Changes to
         this value may not persist across restarts."
    REFERENCE
        "RFC 6206: The Trickle Algorithm"
    DEFVAL      { 10 }
    ::= { rplDefaults 12 }

rplActive OBJECT IDENTIFIER ::= { rplObjects 2 }

rplActiveInstance OBJECT-TYPE
    SYNTAX       RplInstanceID
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
        "The currently active RPL Instance. Changes to this value
         may not persist across restarts."
    ::= { rplActive 1 }

rplActiveDodag OBJECT-TYPE
    SYNTAX      InetAddressIPv6
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The currently active RPL DODAG in the active RPL Instance.
         Changes to this value may not persist across restarts."
    ::= { rplActive 2 }

rplActiveDodagTriggerSequence OBJECT-TYPE
    SYNTAX      Unsigned32 (0..255)
    MAX-ACCESS  read-write
    STATUS      current



Korte, et al.            Expires August 26, 2013               [Page 12]


Internet-Draft                   RPL-MIB                   February 2013


    DESCRIPTION
        "The DAO Trigger Sequence Number (DTSN) of the active
         DODAG as defined in Section 6.3.1 of RFC 6550. Changes to
         this value may not persist across restarts."
    REFERENCE
        "RFC 6550: RPL: IPv6 Routing Protocol for LLNs"
    ::= { rplActive 3 }

rplOCPTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF RplOCPEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The table of all supported Objective Code Points (OCPs)."
    ::= { rplObjects 3 }

rplOCPEntry OBJECT-TYPE
    SYNTAX      RplOCPEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry representing a supported Objective Code Point."
    INDEX { rplOCPCodepoint }
    ::= { rplOCPTable 1 }

RplOCPEntry ::= SEQUENCE {
    rplOCPCodepoint  RplObjectiveCodePoint,
    rplOCPEnabled    TruthValue
}

rplOCPCodepoint OBJECT-TYPE
    SYNTAX      RplObjectiveCodePoint
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A supported Objective Code Point."
    ::= { rplOCPEntry 1 }

rplOCPEnabled OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Enables the usage of this Objective Code Point. Changes to
         this value may not persist across restarts."
    ::= { rplOCPEntry 2 }

rplInstanceTable OBJECT-TYPE



Korte, et al.            Expires August 26, 2013               [Page 13]


Internet-Draft                   RPL-MIB                   February 2013


    SYNTAX      SEQUENCE OF RplInstanceEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The table represents information about all known
         RPL Instances."
    ::= { rplObjects 4 }

rplInstanceEntry OBJECT-TYPE
    SYNTAX      RplInstanceEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry representing information about a RPL Instance."
    INDEX { rplInstanceID }
    ::= { rplInstanceTable 1 }

RplInstanceEntry ::= SEQUENCE {
    rplInstanceID               RplInstanceID,
    rplInstanceDISMode          RplDISMode,
    rplInstanceDISMessages      Unsigned32,
    rplInstanceDISTimeout       Unsigned32,
    rplInstanceModeOfOperation  RplModeOfOperation
}

rplInstanceID OBJECT-TYPE
    SYNTAX      RplInstanceID
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The InstanceID of this RPL Instance."
    ::= { rplInstanceEntry 1 }

rplInstanceDISMode OBJECT-TYPE
    SYNTAX      RplDISMode
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Reports whether a DIS message is send for this instance
         upon boot-up."
    ::= { rplInstanceEntry 2 }

rplInstanceDISMessages OBJECT-TYPE
    SYNTAX      Unsigned32 (1..255)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of DIS messages that are sent as an initial



Korte, et al.            Expires August 26, 2013               [Page 14]


Internet-Draft                   RPL-MIB                   February 2013


         probe for nearby DODAGs if the DIS mode is 'send'."
    ::= { rplInstanceEntry 3 }

rplInstanceDISTimeout OBJECT-TYPE
    SYNTAX      Unsigned32 (0..255)
    UNITS       "seconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of seconds after which a node in DIS mode 'send'
         in the absence of DIO messages may decide to root a
         floating DODAG."
    ::= { rplInstanceEntry 4 }

rplInstanceModeOfOperation OBJECT-TYPE
    SYNTAX      RplModeOfOperation
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The mode of operation of the RPL instance."
    ::= { rplInstanceEntry 5 }

rplDodagTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF RplDodagEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The table represents information about all locally known
         DODAGs."
    ::= { rplObjects 5 }

rplDodagEntry OBJECT-TYPE
    SYNTAX      RplDodagEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry representing information about a DODAG."
    INDEX { rplInstanceID, rplDodagIndex }
    ::= { rplDodagTable 1 }

RplDodagEntry ::= SEQUENCE {
    rplDodagIndex               Unsigned32,
    rplDodagID                  InetAddressIPv6,
    rplDodagVersion             RplDodagVersionNumber,
    rplDodagRank                RplRank,
    rplDodagState               INTEGER,
    rplDodagOCP                 RplObjectiveCodePoint,
    rplDodagDAODelay            RplDAODelay,



Korte, et al.            Expires August 26, 2013               [Page 15]


Internet-Draft                   RPL-MIB                   February 2013


    rplDodagDAOAckEnabled       TruthValue,
    rplDodagPreference          RplDodagPreference,
    rplDodagMinHopRankIncrease  RplMinHopRankIncrease,
    rplDodagMaxRankIncrease     Unsigned32,
    rplDodagIntervalDoublings   Unsigned32,
    rplDodagIntervalMin         Unsigned32,
    rplDodagRedundancyConstant  Unsigned32,
    rplDodagPathControlSize     RplPathControlSize
}

rplDodagIndex OBJECT-TYPE
    SYNTAX      Unsigned32 (1..4294967295)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The index identifying a DODAG within an RPL instance. This
         index is used to keep the table indexes short. The RPL protocol
         identifies a DODAG within an RPL instance by the DODAGID."
    ::= { rplDodagEntry 1 }

rplDodagID OBJECT-TYPE
    SYNTAX      InetAddressIPv6
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The identifier of a DODAG root (DODAGID) of this RPL
         instance. The root of the DODAG reports its own IPv6
         address as the DODAG root. This is uniquely identifying
         a DODAG within an RPL instance."
    ::= { rplDodagEntry 2 }

rplDodagVersion OBJECT-TYPE
    SYNTAX      RplDodagVersionNumber
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The version of the DODAG in this RPL instance."
    ::= { rplDodagEntry 3 }

rplDodagRank OBJECT-TYPE
    SYNTAX      RplRank
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The rank of the node within the DODAG."
    ::= { rplDodagEntry 4 }

rplDodagState OBJECT-TYPE



Korte, et al.            Expires August 26, 2013               [Page 16]


Internet-Draft                   RPL-MIB                   February 2013


    SYNTAX      INTEGER {
                    other(0),
                    grounded(1),
                    floating(2)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The status of the DODAG:

         other(0)      An unknown state.

         grounded(1)   The DODAG is grounded.

         floating(2)   The DODAG is floating (not grounded)."
    ::= { rplDodagEntry 5 }

rplDodagOCP OBJECT-TYPE
    SYNTAX      RplObjectiveCodePoint
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The Objective Code Point of this DODAG."
    ::= { rplDodagEntry 6 }

rplDodagDAODelay OBJECT-TYPE
    SYNTAX      RplDAODelay
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The delay for aggregations before a DAO is send."
    ::= { rplDodagEntry 7 }

rplDodagDAOAckEnabled OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Indicates whether DAO Acknowledgements are sent on this
         DODAG."
    ::= { rplDodagEntry 8 }

rplDodagPreference OBJECT-TYPE
    SYNTAX      RplDodagPreference
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION



Korte, et al.            Expires August 26, 2013               [Page 17]


Internet-Draft                   RPL-MIB                   February 2013


        "How preferred this DODAG is compared to other DODAGs
         within the same instance."
    ::= { rplDodagEntry 9 }

rplDodagMinHopRankIncrease OBJECT-TYPE
    SYNTAX      RplMinHopRankIncrease
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The minimum increase of the rank in a single hop."
    ::= { rplDodagEntry 10 }

rplDodagMaxRankIncrease OBJECT-TYPE
    SYNTAX      Unsigned32 (0..65535)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
         "The maximum allowable increase in rank in support of local
          repair.  If DAGMaxRankIncrease is 0 then this mechanism is
          disabled."
    ::= { rplDodagEntry 11 }

rplDodagIntervalDoublings OBJECT-TYPE
    SYNTAX      Unsigned32 (0..255)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The Imax parameter of the DIO trickle timer."
    REFERENCE
        "RFC 6206: The Trickle Algorithm"
    ::= { rplDodagEntry 12 }

rplDodagIntervalMin OBJECT-TYPE
    SYNTAX      Unsigned32 (0..255)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The Imin parameter of the DIO trickle timer."
    REFERENCE
        "RFC 6206: The Trickle Algorithm"
    ::= { rplDodagEntry 13 }

rplDodagRedundancyConstant OBJECT-TYPE
    SYNTAX      Unsigned32 (0..255)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The k parameter of the DIO trickle timer."



Korte, et al.            Expires August 26, 2013               [Page 18]


Internet-Draft                   RPL-MIB                   February 2013


    REFERENCE
        "RFC 6206: The Trickle Algorithm"
    ::= { rplDodagEntry 14 }

rplDodagPathControlSize OBJECT-TYPE
    SYNTAX      RplPathControlSize
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The Path Control Size of this DODAG."
    ::= { rplDodagEntry 15 }

rplDodagParentTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF RplDodagParentEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The list of parents of a DODAG."
    ::= { rplObjects 6 }

rplDodagParentEntry OBJECT-TYPE
    SYNTAX      RplDodagParentEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Information about a known DODAG parent."
    INDEX { rplInstanceID, rplDodagIndex, rplDodagParentID }
    ::= { rplDodagParentTable 1 }

RplDodagParentEntry ::= SEQUENCE {
    rplDodagParentID     InetAddressIPv6,
    rplDodagParentIf     InterfaceIndex
}

rplDodagParentID OBJECT-TYPE
    SYNTAX      InetAddressIPv6
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The address of a parent associated with this DODAG."
    ::= { rplDodagParentEntry 1 }

rplDodagParentIf OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The interface over which the parent can be reached."



Korte, et al.            Expires August 26, 2013               [Page 19]


Internet-Draft                   RPL-MIB                   February 2013


    ::= { rplDodagParentEntry 2 }

rplDodagChildTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF RplDodagChildEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The list of children of a DODAG."
    ::= { rplObjects 7 }

rplDodagChildEntry OBJECT-TYPE
    SYNTAX      RplDodagChildEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Information about a known DODAG child."
    INDEX { rplInstanceID, rplDodagIndex, rplDodagChildID }
    ::= { rplDodagChildTable 1 }

RplDodagChildEntry ::= SEQUENCE {
    rplDodagChildID     InetAddressIPv6,
    rplDodagChildIf     InterfaceIndex
}

rplDodagChildID OBJECT-TYPE
    SYNTAX      InetAddressIPv6
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The address of an RPL child associated with this DODAG."
    ::= { rplDodagChildEntry 1 }

rplDodagChildIf OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The interface over which the child can be reached."
    ::= { rplDodagChildEntry 2 }

rplStats OBJECT IDENTIFIER ::= { rplObjects 8 }

rplMemOverflows OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of memory allocation failures (e.g., routing table



Korte, et al.            Expires August 26, 2013               [Page 20]


Internet-Draft                   RPL-MIB                   February 2013


         overflows)."
    ::= { rplStats 1 }

rplParseErrors OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of received malformed messages."
    ::= { rplStats 2 }

rplUnknownMsgTypes OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of received RPL messages that we dropped because
         the message type is not recognized by the implementation."
    ::= { rplStats 3 }

rplSecurityPolicyViolations OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of messages discarded because the described level
         of security for the message type and originator is unknown or
         does not meet locally maintained security policies as defined
         in Section 10.7 of RFC 6550."
    REFERENCE
        "RFC 6550: RPL: IPv6 Routing Protocol for LLNs"
    ::= { rplStats 4 }

rplIntegrityCheckFailures OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of messages discarded because the integrity
         check failed against the received message authentication
         code (MAC) as defined in Section 10.7 of RFC 6550."
    REFERENCE
        "RFC 6550: RPL: IPv6 Routing Protocol for LLNs"
    ::= { rplStats 5 }

rplReplayProtectionFailures OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only



Korte, et al.            Expires August 26, 2013               [Page 21]


Internet-Draft                   RPL-MIB                   February 2013


    STATUS      current
    DESCRIPTION
        "The number of messages discarded because the received
         message Counter value is non-zero and less than the
         maintained incoming Counter watermark or because the
         received Timestamp Counter value indicates a message
         transmission time that is earlier than the Current time
         less the acceptable packet delay as defined in Section
         10.7 of RFC 6550. This counter is also incremented if the
         temporal consistency check of the message fails as defined
         in Section 10.7.1."
    REFERENCE
        "RFC 6550: RPL: IPv6 Routing Protocol for LLNs"
    ::= { rplStats 6 }

rplValidParentFailures OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of times a packet could not be sent to a DODAG
         parent flagged as valid."
    ::= { rplStats 7 }

rplNoInstanceIDs OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of times a packet could not be sent because of
         a missing RPLInstanceID."
    ::= { rplStats 8 }

rplTriggeredLocalRepairs OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of times a local repair procedure was triggered."
    ::= { rplStats 9 }

rplTriggeredGlobalRepairs OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of times a global repair procedure was triggered."
    ::= { rplStats 10 }



Korte, et al.            Expires August 26, 2013               [Page 22]


Internet-Draft                   RPL-MIB                   February 2013


rplNoParentSecs OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of seconds without a next hop (DODAG parent)."
    ::= { rplStats 11 }

rplActiveNoParentSecs OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of seconds with packets to forward without a
         next hop (DODAG parent)."
    ::= { rplStats 12 }

rplOBitSetDownwards OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Number of packets received with the 'O' bit set from
         a node with a higher rank as defined in Section 18.3.2
         of RFC 6550."
    REFERENCE
        "RFC 6550: RPL: IPv6 Routing Protocol for LLNs"
    ::= { rplStats 13 }

rplOBitClearedUpwards OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Number of packets received with the 'O' bit cleared
         from a node with a lower rank as defined in Section 18.3.2
         of RFC 6550."
    REFERENCE
        "RFC 6550: RPL: IPv6 Routing Protocol for LLNs"
    ::= { rplStats 14 }

rplFBitSet OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Number of packets received with the 'F' bit set as
         defined in Section 18.3.2 of RFC 6550."



Korte, et al.            Expires August 26, 2013               [Page 23]


Internet-Draft                   RPL-MIB                   February 2013


    REFERENCE
        "RFC 6550: RPL: IPv6 Routing Protocol for LLNs"
    ::= { rplStats 15 }

rplRBitSet OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Number of packets received with the 'R' bit set as
         defined in Section 18.3.2 of RFC 6550."
    REFERENCE
        "RFC 6550: RPL: IPv6 Routing Protocol for LLNs"
    ::= { rplStats 16 }

rplTrickleTimerResets OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of trickle timer resets."
    ::= { rplStats 17 }

rplMsgStatsTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF RplMsgStatsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Basic RPL message statistics by message type."
    ::= { rplObjects 9 }

rplMsgStatsEntry OBJECT-TYPE
    SYNTAX      RplMsgStatsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Statistics for a specific RPL message type."
    INDEX { rplMsgStatsType }
    ::= { rplMsgStatsTable 1 }

RplMsgStatsEntry ::= SEQUENCE {
    rplMsgStatsType    RplMessageType,
    rplMsgStatsInMsgs  Counter32,
    rplMsgStatsOutMsgs Counter32
}

rplMsgStatsType OBJECT-TYPE
    SYNTAX      RplMessageType



Korte, et al.            Expires August 26, 2013               [Page 24]


Internet-Draft                   RPL-MIB                   February 2013


    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The RPL message type being counted by this row."
    ::= { rplMsgStatsEntry 1 }

rplMsgStatsInMsgs OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of RPL messages received of this type."
    ::= { rplMsgStatsEntry 2 }

rplMsgStatsOutMsgs OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of RPL messages sent of this type."
    ::= { rplMsgStatsEntry 3 }

-- conformance definitions

rplGroups      OBJECT IDENTIFIER ::= { rplConformance 1 }
rplCompliances OBJECT IDENTIFIER ::= { rplConformance 2 }

rplFullCompliance MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
        "Compliance statement for implementations supporting
         read/write access, according to the object definitions."
    MODULE      -- this module
    MANDATORY-GROUPS {
        rplGeneralGroup,
        rplInstanceGroup,
        rplStatsGroup
    }
    ::= { rplCompliances 1 }

rplReadOnlyCompliance MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
        "Compliance statement for implementations supporting
         only readonly access."
    MODULE      -- this module
    MANDATORY-GROUPS {
        rplGeneralGroup,



Korte, et al.            Expires August 26, 2013               [Page 25]


Internet-Draft                   RPL-MIB                   February 2013


        rplInstanceGroup,
        rplStatsGroup
    }

    OBJECT rplDefaultDISMode
    MIN-ACCESS  read-only
    DESCRIPTION
        "Write access is not required."

    OBJECT rplDefaultDISMessages
    MIN-ACCESS  read-only
    DESCRIPTION
        "Write access is not required."

    OBJECT rplDefaultDISTimeout
    MIN-ACCESS  read-only
    DESCRIPTION
        "Write access is not required."

    OBJECT rplDefaultDAODelay
    MIN-ACCESS  read-only
    DESCRIPTION
        "Write access is not required."

    OBJECT rplDefaultDAOAckEnabled
    MIN-ACCESS  read-only
    DESCRIPTION
        "Write access is not required."

    OBJECT rplDefaultPreference
    MIN-ACCESS  read-only
    DESCRIPTION
        "Write access is not required."

    OBJECT rplDefaultMinHopRankIncrease
    MIN-ACCESS  read-only
    DESCRIPTION
        "Write access is not required."

    OBJECT rplDefaultMaxRankIncrease
    MIN-ACCESS  read-only
    DESCRIPTION
        "Write access is not required."

    OBJECT rplDefaultModeOfOperation
    MIN-ACCESS  read-only
    DESCRIPTION
        "Write access is not required."



Korte, et al.            Expires August 26, 2013               [Page 26]


Internet-Draft                   RPL-MIB                   February 2013


    OBJECT rplDefaultIntervalDoublings
    MIN-ACCESS  read-only
    DESCRIPTION
        "Write access is not required."

    OBJECT rplDefaultIntervalMin
    MIN-ACCESS  read-only
    DESCRIPTION
        "Write access is not required."

    OBJECT rplDefaultRedundancyConstant
    MIN-ACCESS  read-only
    DESCRIPTION
        "Write access is not required."

    OBJECT rplActiveInstance
    MIN-ACCESS  read-only
    DESCRIPTION
        "Write access is not required."

    OBJECT rplActiveDodag
    MIN-ACCESS  read-only
    DESCRIPTION
        "Write access is not required."

    OBJECT rplActiveDodagTriggerSequence
    MIN-ACCESS  read-only
    DESCRIPTION
        "Write access is not required."

    OBJECT rplOCPEnabled
    MIN-ACCESS  read-only
    DESCRIPTION
        "Write access is not required."

    ::= { rplCompliances 2 }

rplGeneralGroup OBJECT-GROUP
    OBJECTS {
        rplDefaultDISMode,
        rplDefaultDISMessages,
        rplDefaultDISTimeout,
        rplDefaultDAODelay,
        rplDefaultDAOAckEnabled,
        rplDefaultPreference,
        rplDefaultMinHopRankIncrease,
        rplDefaultMaxRankIncrease,
        rplDefaultModeOfOperation,



Korte, et al.            Expires August 26, 2013               [Page 27]


Internet-Draft                   RPL-MIB                   February 2013


        rplDefaultIntervalDoublings,
        rplDefaultIntervalMin,
        rplDefaultRedundancyConstant,
        rplActiveInstance,
        rplActiveDodag,
        rplActiveDodagTriggerSequence,
        -- rplOCPCodepoint,
        rplOCPEnabled
    }
    STATUS      current
    DESCRIPTION
        "A collection of objects providing general information about
         the RPL implementation."
    ::= { rplGroups 1 }

rplInstanceGroup OBJECT-GROUP
    OBJECTS {
        -- rplInstanceID,
        rplInstanceDISMode,
        rplInstanceDISMessages,
        rplInstanceDISTimeout,
        rplInstanceModeOfOperation,
        -- rplDodagIndex,
        rplDodagID,
        rplDodagVersion,
        rplDodagRank,
        rplDodagState,
        rplDodagOCP,
        rplDodagDAODelay,
        rplDodagDAOAckEnabled,
        rplDodagPreference,
        rplDodagMinHopRankIncrease,
        rplDodagMaxRankIncrease,
        rplDodagIntervalDoublings,
        rplDodagIntervalMin,
        rplDodagRedundancyConstant,
        rplDodagPathControlSize,
        -- rplDodagParentID,
        rplDodagParentIf,
        -- rplDodagChildID,
        rplDodagChildIf
    }
    STATUS      current
    DESCRIPTION
        "A collection of objects providing insight into RPL
         Instances and RPL DODAGs."
    ::= { rplGroups 2 }




Korte, et al.            Expires August 26, 2013               [Page 28]


Internet-Draft                   RPL-MIB                   February 2013


rplStatsGroup OBJECT-GROUP
    OBJECTS {
        rplMemOverflows,
        rplParseErrors,
        rplUnknownMsgTypes,
        rplSecurityPolicyViolations,
        rplIntegrityCheckFailures,
        rplReplayProtectionFailures,
        rplValidParentFailures,
        rplNoInstanceIDs,
        rplTriggeredLocalRepairs,
        rplTriggeredGlobalRepairs,
        rplNoParentSecs,
        rplActiveNoParentSecs,
        rplOBitSetDownwards,
        rplOBitClearedUpwards,
        rplFBitSet,
        rplRBitSet,
        rplTrickleTimerResets,
        -- rplMsgStatsType,
        rplMsgStatsInMsgs,
        rplMsgStatsOutMsgs
    }
    STATUS      current
    DESCRIPTION
        "A collection of objects providing statistics about the
         RPL implementation."
    ::= { rplGroups 3 }

END

7.  Security Considerations

   There are a number of management objects defined in this MIB module
   with a MAX-ACCESS clause of read-write and/or read-create.  Such
   objects may be considered sensitive or vulnerable in some network
   environments.  The support for SET operations in a non-secure
   environment without proper protection can have a negative effect on
   network operations.  These are the tables and objects and their
   sensitivity/vulnerability:

   o  The objects below rplDefaults control the operation of RPL.
      Unauthorized access to these objects can either make RPL
      inefficient or even fail to converge.

   o  The objects below rplActive select the currently active RPL DODAG
      in the currently active RPL Instance.  Unauthorized changes may
      prevent communication or cause loss of efficiency.



Korte, et al.            Expires August 26, 2013               [Page 29]


Internet-Draft                   RPL-MIB                   February 2013


   o  The rplOCPTable controls which objective functions can be used by
      an RPL implementation.  Unauthorized access may prevent certain
      RPL instances to be established or less it may cause less
      efficient RPL instances to be used.

   Some of the readable objects in this MIB module (i.e., objects with a
   MAX-ACCESS other than not-accessible) may be considered sensitive or
   vulnerable in some network environments.  It is thus important to
   control even GET and/or NOTIFY access to these objects and possibly
   to even encrypt the values of these objects when sending them over
   the network via SNMP.  These tables and objects provide detailed
   information about the structure and operation of RPL instances and
   the topology of the DODAGs.  This information may be exploited to
   target attacks or to gain insights about the structure of a certain
   deployment.

   The counters of the RPL-MIB are provided primarily to assist in
   troubleshooting problems in RPL deployments.  The counters, however,
   may also be used to gain insights into certain active attacks on RPL
   itself.

   SNMP versions prior to SNMPv3 did not include adequate security.
   Even if the network itself is secure (for example by using IPsec),
   even then, there is no control as to who on the secure network is
   allowed to access and GET/SET (read/change/create/delete) the objects
   in this MIB module.

   It is RECOMMENDED that implementers consider the security features as
   provided by the SNMPv3 framework (see [RFC3410], section 8),
   including full support for the SNMPv3 cryptographic mechanisms (for
   authentication and privacy).

   Further, deployment of SNMP versions prior to SNMPv3 is NOT
   RECOMMENDED.  Instead, it is RECOMMENDED to deploy SNMPv3 and to
   enable cryptographic security.  It is then a customer/operator
   responsibility to ensure that the SNMP entity giving access to an
   instance of this MIB module is properly configured to give access to
   the objects only to those principals (users) that have legitimate
   rights to indeed GET or SET (change/create/delete) them.

8.  IANA Considerations

   IANA is requested to assign a value for "XXXX" under the 'mib-2'
   subtree and to record the assignment in the SMI Numbers registry.
   When the assignment has been made, the RFC Editor is asked to replace
   "XXXX" (here and in the MIB module) with the assigned value and to
   remove this note.




Korte, et al.            Expires August 26, 2013               [Page 30]


Internet-Draft                   RPL-MIB                   February 2013


   IANA has allocated a number for RPL in the IANAipRouteProtocol
   textual convention of the IANA-RTPROTO-MIB.

9.  Acknowledgements

   The authors like to thank Michael Richardson for providing helpful
   comments during the development of this specification.

   Juergen Schoenwaelder and Anuj Sehgal were partly funded by Flamingo,
   a Network of Excellence project (ICT-318488) supported by the
   European Commission under its Seventh Framework Programme.

10.  References

10.1.  Normative References

   [RFC2119]                      Bradner, S., "Key words for use in
                                  RFCs to Indicate Requirement Levels",
                                  BCP 14, RFC 2119, March 1997.

   [RFC2578]                      McCloghrie, K., Ed., Perkins, D., Ed.,
                                  and J. Schoenwaelder, Ed., "Structure
                                  of Management Information Version 2
                                  (SMIv2)", STD 58, RFC 2578,
                                  April 1999.

   [RFC2579]                      McCloghrie, K., Ed., Perkins, D., Ed.,
                                  and J. Schoenwaelder, Ed., "Textual
                                  Conventions for SMIv2", STD 58,
                                  RFC 2579, April 1999.

   [RFC2580]                      McCloghrie, K., Perkins, D., and J.
                                  Schoenwaelder, "Conformance Statements
                                  for SMIv2", STD 58, RFC 2580,
                                  April 1999.

   [RFC2863]                      McCloghrie, K. and F. Kastenholz, "The
                                  Interfaces Group MIB", RFC 2863,
                                  June 2000.

   [RFC4001]                      Daniele, M., Haberman, B., Routhier,
                                  S., and J. Schoenwaelder, "Textual
                                  Conventions for Internet Network
                                  Addresses", RFC 4001, February 2005.

   [RFC4292]                      Haberman, B., "IP Forwarding Table
                                  MIB", RFC 4292, April 2006.




Korte, et al.            Expires August 26, 2013               [Page 31]


Internet-Draft                   RPL-MIB                   February 2013


   [RFC4293]                      Routhier, S., "Management Information
                                  Base for the Internet Protocol (IP)",
                                  RFC 4293, April 2006.

   [RFC6206]                      Levis, P., Clausen, T., Hui, J.,
                                  Gnawali, O., and J. Ko, "The Trickle
                                  Algorithm", RFC 6206, March 2011.

   [RFC6550]                      Winter, T., Thubert, P., Brandt, A.,
                                  Hui, J., Kelsey, R., Levis, P.,
                                  Pister, K., Struik, R., Vasseur, JP.,
                                  and R. Alexander, "RPL: IPv6 Routing
                                  Protocol for Low-Power and Lossy
                                  Networks", RFC 6550, March 2012.

10.2.  Informative References

   [RFC3410]                      Case, J., Mundy, R., Partain, D., and
                                  B. Stewart, "Introduction and
                                  Applicability Statements for Internet-
                                  Standard Management Framework",
                                  RFC 3410, December 2002.

   [RFC6643]                      Schoenwaelder, J., "Translation of
                                  Structure of Management Information
                                  Version 2 (SMIv2) MIB Modules to YANG
                                  Modules", RFC 6643, July 2012.

   [I-D.lhotka-netmod-yang-json]  Lhotka, L., "Modeling JSON Text with
                                  YANG",
                                  draft-lhotka-netmod-yang-json-00 (work
                                  in progress), October 2012.

Appendix A.  JSON Representation

   Using the translation algorithm defined in [RFC6643], the SMIv2
   module can be translated to YANG.  Using the JSON representation of
   data modeled in YANG defined in [I-D.lhotka-netmod-yang-json], the
   objects defined in the MIB module can be represented in JSON as shown
   below.  The compact representation without any white space uses XXXX
   octets.  (Of course, this number depends on the number of octets
   needed for the counter values.)

   {
       "RPL-MIB:RPL-MIB": {
           "rplGeneral": {
               "rplDefaultDISMode": "silent",
               "rplDefaultDISMessages": 1,



Korte, et al.            Expires August 26, 2013               [Page 32]


Internet-Draft                   RPL-MIB                   February 2013


               "rplDefaultDISTimeout": 60,
               "rplDefaultDAODelay": 1000,
               "rplDefaultDAOAckEnabled": false,
               "rplDefaultPreference": 0,
               "rplDefaultMinHopRankIncrease": 256,
               "rplDefaultMaxRankIncrease": 65535,
               "rplDefaultModeOfOperation":
                  "storingWithoutMulticastSupport",
               "rplDefaultIntervalDoublings": 20,
               "rplDefaultIntervalMin": 3,
               "rplDefaultRedundancyConstant": 10
           },
           "rplActive": {
               "rplActiveInstance": 0,
               "rplActiveDodag": "2001:db8:bad:cafe::1",
               "rplActiveDodagTriggerSequence": 4
           },
           "rplStats": {
               "rplMemOverflows": 0,
               "rplParseErrors": 0,
               "rplUnknownMsgTypes": 1,
               "rplSecurityPolicyViolations": 0,
               "rplIntegrityCheckFailures": 0,
               "rplReplayProtectionFailures": 0,
               "rplValidParentFailures": 1,
               "rplNoInstanceIDs": 0,
               "rplTriggeredLocalRepairs": 3,
               "rplTriggeredGlobalRepairs": 0,
               "rplNoParentSecs": 15,
               "rplActiveNoParentSecs": 0,
               "rplOBitSetDownwards": 0,
               "rplOBitClearedUpwards": 0,
               "rplFBitSet": 0,
               "rplRBitSet": 0,
               "rplTrickleTimerResets": 42
           },
           "rplOCPTable": {
               "rplOCPEntry": [
                   {
                       "rplOCPCodepoint": 0,
                       "rplOCPEnabled": true
                   }
               ]
           },
           "rplInstanceTable": {
               "rplInstanceEntry": [
                   {
                       "rplInstanceID": 0,



Korte, et al.            Expires August 26, 2013               [Page 33]


Internet-Draft                   RPL-MIB                   February 2013


                       "rplInstanceDISMode": "send",
                       "rplInstanceDISMessages": 1,
                       "rplInstanceDISTimeout": 60,
                       "rplInstanceModeOfOperation":
                            "storingWithoutMulticastSupport"
                   }
               ]
           },
           "rplDodagTable": {
               "rplDodagEntry": [
                   {
                       "rplInstanceID": 0,
                       "rplDodagIndex": 1,
                       "rplDodagID": "2001:db8:bad:cafe::1",
                       "rplDodagVersion": 3,
                       "rplDodagRank": 2,
                       "rplDodagState": "grounded",
                       "rplDodagOCP": 0,
                       "rplDodagDAODelay": 1000,
                       "rplDodagDAOAckEnabled": false,
                       "rplDodagPreference": 0,
                       "rplDodagMinHopRankIncrease": 256,
                       "rplDodagMaxRankIncrease": 0,
                       "rplDodagIntervalDoublings": 20,
                       "rplDodagIntervalMin": 3,
                       "rplDodagRedundancyConstant": 10,
                       "rplDodagPathControlSize": 0
                   }
               ]
           },
           "rplDodagParentTable": {
                "rplDodagParentEntry": [
                    {
                        "rplRPLInstanceID": 0,
                        "rplDodagIndex": 1,
                        "rplDodagParentID": "2001:db8:bad:cafe::8",
                        "rplDodagParentIf": 1
                    }
                ]
           },
           "rplDodagChildTable": {
               "rplDodagChildEntry": [
                   {
                       "rplRPLInstanceID": 0,
                       "rplDodagIndex": 1,
                       "rplDodagChildID": "2001:db8:bad:cafe::a"
                       "rplDodagChildIf": 1
                   },



Korte, et al.            Expires August 26, 2013               [Page 34]


Internet-Draft                   RPL-MIB                   February 2013


                   {
                       "rplRPLInstanceID": 0,
                       "rplDodagIndex": 1,
                       "rplDodagChildID": "2001:db8:bad:cafe::b"
                       "rplDodagChildIf": 2
                   }
               ]
           },
           "rplMsgStatsTable": {
               "rplMsgStatsEntry": [
                   {
                       "rplMsgStatsType": 0,
                       "rplMsgStatsInMsgs": 78,
                       "rplMsgStatsOutMsgs": 23
                   },
                   {
                       "rplMsgStatsType": 1,
                       "rplMsgStatsInMsgs": 11,
                       "rplMsgStatsOutMsgs": 54
                   },
                   {
                       "rplMsgStatsType": 2,
                       "rplMsgStatsInMsgs": 87,
                       "rplMsgStatsOutMsgs": 28
                   },
                   {
                       "rplMsgStatsType": 4,
                       "rplMsgStatsInMsgs": 47,
                       "rplMsgStatsOutMsgs": 38
                   }
               ]
           }
       }
   }

Authors' Addresses

   Kevin Korte
   Jacobs University
   Campus Ring 1
   Bremen  28759
   Germany

   EMail: k.korte@jacobs-university.de







Korte, et al.            Expires August 26, 2013               [Page 35]


Internet-Draft                   RPL-MIB                   February 2013


   Juergen Schoenwaelder
   Jacobs University
   Campus Ring 1
   Bremen  28759
   Germany

   EMail: j.schoenwaelder@jacobs-university.de


   Anuj Sehgal
   Jacobs University
   Campus Ring 1
   Bremen  28759
   Germany

   EMail: s.anuj@jacobs-university.de


   Tina Tsou
   Huawei Technologies (USA)
   2330 Central Expressway
   Santa Clara  CA 95050
   USA

   EMail: tina.tsou.zouting@huawei.com


   Cathy Zhou
   Huawei Technologies
   Bantian, Longgang District
   Shenzhen  518129
   P.R. China

   EMail: cathyzhou@huawei.com

















Korte, et al.            Expires August 26, 2013               [Page 36]