[Search] [txt|pdf|bibtex] [Tracker] [Email] [Diff1] [Diff2] [Nits]

Versions: 00 01 02 03 04 05 06                                          
Internet Engineering Task Force                                 K. Korte
Internet-Draft                                          J. Schoenwaelder
Intended status: Standards Track                               A. Sehgal
Expires: January 7, 2013                               Jacobs University
                                                                 T. Tsou
                                               Huawei Technologies (USA)
                                                                 C. Zhou
                                                     Huawei Technologies
                                                            July 6, 2012


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

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 January 7, 2013.

Copyright Notice

   Copyright (c) 2012 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 January 7, 2013                [Page 1]


Internet-Draft                   RPL-MIB                       July 2012


   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  . . . . . . . . . . . . . . . . . . . 27
   8.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 27
   9.  Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 28
   10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 28
     10.1.  Normative References  . . . . . . . . . . . . . . . . . . 28
     10.2.  Informative References  . . . . . . . . . . . . . . . . . 29
   Appendix A.  JSON Representation . . . . . . . . . . . . . . . . . 29
   Appendix B.  Open Issues . . . . . . . . . . . . . . . . . . . . . 32





























Korte, et al.            Expires January 7, 2013                [Page 2]


Internet-Draft                   RPL-MIB                       July 2012


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)
       +-rplGeneral(1)
       |  +- rwn RplDISMode rplDefaultDISMode(1)
       +-rplActive(2)
       |  +- rwn RplInstanceID   rplActiveInstance(1)
       |  +- rwn InetAddressIPv6 rplActiveDodag(2)
       |  +- r-n Unsigned32      rplActiveDodagDAOSequence(3)
       |  +- rwn Unsigned32      rplActiveDodagTriggerSequence(4)
       +-rplOCPTable(3)
       |  +-rplOCPEntry(1) [rplOCPCodepoint]
       |     +- --- RplObjectiveCodePoint rplOCPCodepoint(1)



Korte, et al.            Expires January 7, 2013                [Page 3]


Internet-Draft                   RPL-MIB                       July 2012


       |     +- rwn TruthValue            rplOCPEnabled(2)
       +-rplInstanceTable(4)
       |  +-rplInstanceEntry(1) [rplInstanceID]
       |     +- --- RplInstanceID         rplInstanceID(1)
       |     +- rwn RplObjectiveCodePoint rplInstanceOCP(2)
       |     +- rwn RplDISMode            rplInstanceDisMode(3)
       |     +- rwn TruthValue            rplInstanceDAOAckEnabled(4)
       |     +- rwn RplModeOfOperation    rplInstanceModeOfOperation(5)
       +-rplDodagTable(5)
       |  +-rplDodagEntry(1) [rplInstanceID,rplDodagRoot]
       |     +- --- InetAddressIPv6       rplDodagRoot(1)
       |     +- r-n RplDodagVersionNumber rplDodagVersion(2)
       |     +- r-n RplRank               rplDodagRank(3)
       |     +- r-n Enumeration           rplDodagState(4)
       |     +- r-n RplDAODelay           rplDodagDAODelay(5)
       |     +- r-n RplDodagPreference    rplDodagPreference(6)
       |     +- r-n RplMinHopRankIncrease rplDodagMinHopRankIncrease(7)
       |     +- r-n Unsigned32            rplDodagMaxRankIncrease(8)
       |     +- rwn Unsigned32            rplDodagIntervalDoublings(9)
       |     +- rwn Unsigned32            rplDodagIntervalMin(10)
       |     +- rwn Unsigned32            rplDodagRedundancyConstant(11)
       |     +- r-n RplPathControlSize    rplDodagPathControlSize(12)
       +-rplDodagParentTable(6)
       |  +-rplDodagParentEntry(1) [rplInstanceID,rplDodagRoot,
       |     |                       rplDodagParentID]
       |     +- --- InetAddressIPv6 rplDodagParentID(1)
       |     +- r-n InterfaceIndex  rplDodagParentIf(2)
       +-rplDodagChildTable(7)
       |  +-rplDodagChildEntry(1) [rplInstanceID,rplDodagRoot,
       |     |                      rplDodagChildID]
       |     +- r-n InetAddressIPv6 rplDodagChildID(1)
       +-rplDodagPrefixTable(8)
       |  +-rplDodagPrefixEntry(1) [rplInstanceID,rplDodagRoot,
       |     |                       rplDodagPrefixIpv6Prefix,
       |     |                       rplDodagPrefixIpv6PrefixLength]
       |     +- r-n InetAddressIPv6         rplDodagPrefixIpv6Prefix(1)
       |     +- r-n InetAddressPrefixLength
       |                              rplDodagPrefixIpv6PrefixLength(2)
       +-rplStats(9)
       |  +- r-n Counter32 rplMemOverflows(1)
       |  +- r-n Counter32 rplParseErrors(2)
       |  +- 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)



Korte, et al.            Expires January 7, 2013                [Page 4]


Internet-Draft                   RPL-MIB                       July 2012


       |  +- 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(10)
          +-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].  XXX: We need to clarify
   whether the inetCidrRoutePolicy can / should point to the DODAG
   instance.

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
      InterfaceIndex
          FROM IF-MIB                                     -- RFC 2863
      InetAddressIPv6, InetAddressPrefixLength
          FROM INET-ADDRESS-MIB;                          -- RFC 4001

  rplMib MODULE-IDENTITY
      LAST-UPDATED "201207060000Z"
      ORGANIZATION
          "Jacobs University Bremen"
      CONTACT-INFO
          "Kevin Dominik Korte
           Jacobs University Bremen



Korte, et al.            Expires January 7, 2013                [Page 5]


Internet-Draft                   RPL-MIB                       July 2012


           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) 2012 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 "201207060000Z"
      DESCRIPTION
          "Initial version, published as RFC XXXX."
      -- RFC Ed.: replace XXXX with actual RFC number & remove this note

      ::= { mib-2 XXXX }

  -- XXX: Do we keep all types (textual conventions) defined below or
  -- XXX  do we inline those that only get used once?

  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



Korte, et al.            Expires January 7, 2013                [Page 6]


Internet-Draft                   RPL-MIB                       July 2012


          "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."
      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:



Korte, et al.            Expires January 7, 2013                [Page 7]


Internet-Draft                   RPL-MIB                       July 2012


           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
          "Determines the mode of operation."
      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
           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 incerease of a rank within a single hop as
           defined in Section 6.7.6 of RFC 6550."



Korte, et al.            Expires January 7, 2013                [Page 8]


Internet-Draft                   RPL-MIB                       July 2012


      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 }

  rplGeneral 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."
      ::= { rplGeneral 1 }
      -- XXX should be able to configure the number of DIS messages
      -- XXX and related timer, see 18.2.1.1.

      -- XXX Should there be more objects to configure default timers
      -- XXX etc that are applied to all DODAGs etc?

  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



Korte, et al.            Expires January 7, 2013                [Page 9]


Internet-Draft                   RPL-MIB                       July 2012


      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 }

  rplActiveDodagDAOSequence OBJECT-TYPE
      SYNTAX      Unsigned32 (0..255)
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
          "The DAO message sequence number (DAOSequence) of the active
           DODAG as defined in Section 6.5.1 of RFC 6550."
      REFERENCE
          "RFC 6550: RPL: IPv6 Routing Protocol for LLNs"
      ::= { rplActive 3 }
      -- XXX Does it really make sense to have this object?

  rplActiveDodagTriggerSequence OBJECT-TYPE
      SYNTAX      Unsigned32 (0..255)
      MAX-ACCESS  read-write
      STATUS      current
      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 4 }

  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 }



Korte, et al.            Expires January 7, 2013               [Page 10]


Internet-Draft                   RPL-MIB                       July 2012


  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
      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 }
      -- XXX This should likely be a read-create table.

  RplInstanceEntry ::= SEQUENCE {
      rplInstanceID               RplInstanceID,
      rplInstanceOCP              RplObjectiveCodePoint,
      rplInstanceDisMode          RplDISMode,
      rplInstanceDAOAckEnabled    TruthValue,
      rplInstanceModeOfOperation  RplModeOfOperation
  }



Korte, et al.            Expires January 7, 2013               [Page 11]


Internet-Draft                   RPL-MIB                       July 2012


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

  rplInstanceOCP OBJECT-TYPE
      SYNTAX      RplObjectiveCodePoint
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
          "The Objective Code Point of this RPL Instance. Changes to
           this value may not persist across restarts."
      ::= { rplInstanceEntry 2 }

  rplInstanceDisMode OBJECT-TYPE
      SYNTAX      RplDISMode
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
          "Determines whether a DIS message is send for this instance
           upon boot-up. Changes to this value may not persist across
           restarts."
      ::= { rplInstanceEntry 3 }
      -- XXX Check how this works together with the global toggle.
      -- XXX should we allow per instance parameters such as the number
      -- XXX of DIS messages and related timer, see 17.2.1.1?

  rplInstanceDAOAckEnabled 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."
      ::= { rplInstanceEntry 4 }

  rplInstanceModeOfOperation 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."
      ::= { rplInstanceEntry 5 }



Korte, et al.            Expires January 7, 2013               [Page 12]


Internet-Draft                   RPL-MIB                       July 2012


  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 }
      -- XXX The root needs a bit(?) config, where does that go?

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

  RplDodagEntry ::= SEQUENCE {
      rplDodagRoot                InetAddressIPv6,
      rplDodagVersion             RplDodagVersionNumber,
      rplDodagRank                RplRank,
      rplDodagState               INTEGER,
      rplDodagDAODelay            RplDAODelay,
      rplDodagPreference          RplDodagPreference,
      rplDodagMinHopRankIncrease  RplMinHopRankIncrease,
      rplDodagMaxRankIncrease     Unsigned32,
      rplDodagIntervalDoublings   Unsigned32,
      rplDodagIntervalMin         Unsigned32,
      rplDodagRedundancyConstant  Unsigned32,
      rplDodagPathControlSize     RplPathControlSize
  }

  rplDodagRoot OBJECT-TYPE
      SYNTAX      InetAddressIPv6
      MAX-ACCESS  not-accessible
      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."
      ::= { rplDodagEntry 1 }

  rplDodagVersion OBJECT-TYPE
      SYNTAX      RplDodagVersionNumber
      MAX-ACCESS  read-only
      STATUS      current



Korte, et al.            Expires January 7, 2013               [Page 13]


Internet-Draft                   RPL-MIB                       July 2012


      DESCRIPTION
          "The version of the DODAG in this RPL instance."
      ::= { rplDodagEntry 2 }

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

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

           other(0)      An unknown state.

           associated(1) A node is associated with the RPL instance.

           grounded(2)   The DODAG is grounded.

           floating(3)   The DODAG is floating (not grounded)."
      ::= { rplDodagEntry 4 }
      -- XXX In which circumstances can a node be associate and neither
      -- XXX grounded or floating?

  rplDodagDAODelay OBJECT-TYPE
      SYNTAX      RplDAODelay
      UNITS       "milliseconds"
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
          "The delay for aggregations before a DAO is send."
      ::= { rplDodagEntry 5 }
      -- XXX Should this be configuration? If so we should add a default
      -- XXX clause to define the default value to be 1 second.

  rplDodagPreference OBJECT-TYPE
      SYNTAX      RplDodagPreference



Korte, et al.            Expires January 7, 2013               [Page 14]


Internet-Draft                   RPL-MIB                       July 2012


      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
          "How preferred this DODAG is compared to other DODAGs
           within the same instance."
      ::= { rplDodagEntry 6 }

  rplDodagMinHopRankIncrease OBJECT-TYPE
      SYNTAX      RplMinHopRankIncrease
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
          "The minimum increase of the rank in a single hop."
      ::= { rplDodagEntry 7 }
      -- XXX should this be writable at the root? If so we should add a
      -- defval clause to define the default value to be 256.

  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 8 }

  rplDodagIntervalDoublings OBJECT-TYPE
      SYNTAX      Unsigned32 (0..255)
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
          "The configured Imax of the DIO trickle timer. This is
           typically only writable at the root. Changes to this value
           may not persist across restarts."
      REFERENCE
          "RFC 6206: The Trickle Algorithm"
      DEFVAL      { 20 }
      ::= { rplDodagEntry 9 }

  rplDodagIntervalMin OBJECT-TYPE
      SYNTAX      Unsigned32 (0..255)
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
          "The configured Imin of the DIO trickle timer. Changes to this
           value may not persist across restarts."
      REFERENCE



Korte, et al.            Expires January 7, 2013               [Page 15]


Internet-Draft                   RPL-MIB                       July 2012


          "RFC 6206: The Trickle Algorithm"
      DEFVAL      { 3 }
      ::= { rplDodagEntry 10 }

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

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

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

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

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

  rplDodagParentID OBJECT-TYPE
      SYNTAX      InetAddressIPv6



Korte, et al.            Expires January 7, 2013               [Page 16]


Internet-Draft                   RPL-MIB                       July 2012


      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
          "An RPL 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."
      ::= { rplDodagParentEntry 2 }

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

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

  RplDodagChildEntry ::= SEQUENCE {
      rplDodagChildID InetAddressIPv6
  }

  rplDodagChildID OBJECT-TYPE
      SYNTAX      InetAddressIPv6
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
          "An RPL child associated with this DODAG."
      ::= { rplDodagChildEntry 1 }

  rplDodagPrefixTable OBJECT-TYPE
      SYNTAX      SEQUENCE OF RplDodagPrefixEntry
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION



Korte, et al.            Expires January 7, 2013               [Page 17]


Internet-Draft                   RPL-MIB                       July 2012


          "List of prefixes associated with a DODAG."
      ::= { rplObjects 8 }
      -- XXX Explain how this relates to the ipAddressPrefixTable in
      -- XXX the IP-MIB

  rplDodagPrefixEntry OBJECT-TYPE
      SYNTAX      RplDodagPrefixEntry
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
          "Information about a prefix associated with a DODAG."
      INDEX { rplInstanceID, rplDodagRoot,
              rplDodagPrefixIpv6Prefix, rplDodagPrefixIpv6PrefixLength }
      ::= { rplDodagPrefixTable 1 }
      -- XXX Can a DODAG have multiple prefixes, i.e., do we have to
      -- XXX have the prefix and its length in the INDEX?

  RplDodagPrefixEntry ::= SEQUENCE {
      rplDodagPrefixIpv6Prefix       InetAddressIPv6,
      rplDodagPrefixIpv6PrefixLength InetAddressPrefixLength
  }

  rplDodagPrefixIpv6Prefix OBJECT-TYPE
      SYNTAX      InetAddressIPv6
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
          "The IPv6 address forming the IPv6 prefix."
      ::= { rplDodagPrefixEntry 1 }

  rplDodagPrefixIpv6PrefixLength OBJECT-TYPE
      SYNTAX      InetAddressPrefixLength
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
          "The length of the IPv6 prefix."
      ::= { rplDodagPrefixEntry 2 }

  rplStats OBJECT IDENTIFIER ::= { rplObjects 9 }

  rplMemOverflows OBJECT-TYPE
      SYNTAX      Counter32
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
          "The number of memory allocation failures (e.g., routing table
           overflows)."
      ::= { rplStats 1 }



Korte, et al.            Expires January 7, 2013               [Page 18]


Internet-Draft                   RPL-MIB                       July 2012


  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
      STATUS      current
      DESCRIPTION
          "The number of messages discarded because the received



Korte, et al.            Expires January 7, 2013               [Page 19]


Internet-Draft                   RPL-MIB                       July 2012


           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 }

  rplNoParentSecs OBJECT-TYPE
      SYNTAX      Counter32



Korte, et al.            Expires January 7, 2013               [Page 20]


Internet-Draft                   RPL-MIB                       July 2012


      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."
      REFERENCE
          "RFC 6550: RPL: IPv6 Routing Protocol for LLNs"



Korte, et al.            Expires January 7, 2013               [Page 21]


Internet-Draft                   RPL-MIB                       July 2012


      ::= { 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 10 }

  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
      MAX-ACCESS  not-accessible
      STATUS      current



Korte, et al.            Expires January 7, 2013               [Page 22]


Internet-Draft                   RPL-MIB                       July 2012


      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,
          rplInstanceGroup,
          rplStatsGroup



Korte, et al.            Expires January 7, 2013               [Page 23]


Internet-Draft                   RPL-MIB                       July 2012


      }

      OBJECT rplDefaultDISMode
      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."

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

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

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

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

      OBJECT rplDodagIntervalDoublings



Korte, et al.            Expires January 7, 2013               [Page 24]


Internet-Draft                   RPL-MIB                       July 2012


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

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

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

      ::= { rplCompliances 2 }

  rplGeneralGroup OBJECT-GROUP
      OBJECTS {
          rplDefaultDISMode,
          rplActiveInstance,
          rplActiveDodag,
          rplActiveDodagDAOSequence,
          rplActiveDodagTriggerSequence,
          -- rplOCPCodepoint,
          rplOCPEnabled
      }
      STATUS      current
      DESCRIPTION
          "A collection of objects providing general information about
           the RPL implementation."
      ::= { rplGroups 1 }

  rplInstanceGroup OBJECT-GROUP
      OBJECTS {
          -- rplInstanceID,
          rplInstanceOCP,
          rplInstanceDisMode,
          rplInstanceDAOAckEnabled,
          rplInstanceModeOfOperation,
          -- rplDodagRoot,
          rplDodagVersion,
          rplDodagRank,
          rplDodagState,
          rplDodagDAODelay,
          rplDodagPreference,
          rplDodagMinHopRankIncrease,
          rplDodagMaxRankIncrease,
          rplDodagIntervalDoublings,



Korte, et al.            Expires January 7, 2013               [Page 25]


Internet-Draft                   RPL-MIB                       July 2012


          rplDodagIntervalMin,
          rplDodagRedundancyConstant,
          rplDodagPathControlSize,
          -- rplDodagParentID,
          rplDodagParentIf,
          rplDodagChildID,
          rplDodagPrefixIpv6Prefix,
          rplDodagPrefixIpv6PrefixLength
      }
      STATUS      current
      DESCRIPTION
          "A collection of objects providing insight into the RPL
           Instances and the DODAGs."
      ::= { rplGroups 2 }

  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






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


Internet-Draft                   RPL-MIB                       July 2012


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  rplActiveInstance: [ TBD ] explain sensitivity

   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 are the tables and objects and their
   sensitivity/vulnerability:

   [TODO: Need to describe vulnerabilities here.]

   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 January 7, 2013               [Page 27]


Internet-Draft                   RPL-MIB                       July 2012


   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.

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.

   [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.,



Korte, et al.            Expires January 7, 2013               [Page 28]


Internet-Draft                   RPL-MIB                       July 2012


                               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.

   [I-D.ietf-netmod-smi-yang]  Schoenwaelder, J., "Translation of SMIv2
                               MIB Modules to YANG Modules",
                               draft-ietf-netmod-smi-yang-05 (work in
                               progress), April 2012.

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

Appendix A.  JSON Representation

   Using the translation algorithm defined in
   [I-D.ietf-netmod-smi-yang], the SMIv2 module can be translated to
   YANG.  Using the JSON representation of data modeled in YANG defined
   in [I-D.lhotka-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"
          },
          "rplActive": {
              "rplActiveInstance": 0,
              "rplActiveDodag": "2001:db8:bad:cafe::1",
              "rplActiveDodagDAOSequence": 42,
              "rplActiveDodagTriggerSequence": 4
          },
          "rplStats": {
              "rplMemOverflows": 0,
              "rplParseErrors": 0,
              "rplUnknownMsgTypes": 1,
              "rplSecurityPolicyViolations": 0,



Korte, et al.            Expires January 7, 2013               [Page 29]


Internet-Draft                   RPL-MIB                       July 2012


              "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,
                      "rplInstanceOCP": 0,
                      "rplInstanceDisMode": "send",
                      "rplInstanceDAOAckEnabled": false,
                      "rplInstanceModeOfOperation":
                           "storingWithoutMulticastSupport"
                  }
              ]
          },
          "rplDodagTable": {
              "rplDodagEntry": [
                  {
                      "rplInstanceID": 0,
                      "rplDodagRoot": "2001:db8:bad:cafe::1",
                      "rplDodagVersion": 3,
                      "rplDodagRank": 2,
                      "rplDodagState": "grounded",
                      "rplDodagDAODelay": 1000,
                      "rplDodagPreference": 0,
                      "rplDodagMinHopRankIncrease": 256,
                      "rplDodagMaxRankIncrease": 0,
                      "rplDodagIntervalDoublings": 20,
                      "rplDodagIntervalMin": 3,



Korte, et al.            Expires January 7, 2013               [Page 30]


Internet-Draft                   RPL-MIB                       July 2012


                      "rplDodagRedundancyConstant": 10,
                      "rplDodagPathControlSize": 0
                  }
              ]
          },
          "rplDodagParentTable": {
               "rplDodagParentEntry": [
                   {
                       "rplRPLInstanceID": 0,
                       "rplDodagRoot": "2001:db8:bad:cafe::1",
                       "rplDodagParentID": "2001:db8:bad:cafe::8",
                       "rplDodagParentIf": 1
                   }
               ]
          },
          "rplDodagChildTable": {
              "rplDodagChildEntry": [
                  {
                      "rplRPLInstanceID": 0,
                      "rplDodagRoot": "2001:db8:bad:cafe::1",
                      "rplDodagChildID": "2001:db8:bad:cafe::a"
                  },
                  {
                      "rplRPLInstanceID": 0,
                      "rplDodagRoot": "2001:db8:bad:cafe::1",
                      "rplDodagChildID": "2001:db8:bad:cafe::b"
                  }
              ]
          },
          "rplDodagPrefixTable": {
              "rplDodagPrefixEntry": [
                  {
                      "rplRPLInstanceID": 0,
                      "rplDodagRoot": "2001:db8:bad:cafe::1",
                      "rplDodagPrefixIpv6Prefix": "2001:db8:bad:cafe::",
                      "rplDodagPrefixIpv6PrefixLength": "64"
                  }
              ]
          },
          "rplMsgStatsTable": {
              "rplMsgStatsEntry": [
                  {
                      "rplMsgStatsType": 0,
                      "rplMsgStatsInMsgs": 78,
                      "rplMsgStatsOutMsgs": 23
                  },
                  {
                      "rplMsgStatsType": 1,



Korte, et al.            Expires January 7, 2013               [Page 31]


Internet-Draft                   RPL-MIB                       July 2012


                      "rplMsgStatsInMsgs": 11,
                      "rplMsgStatsOutMsgs": 54
                  },
                  {
                      "rplMsgStatsType": 2,
                      "rplMsgStatsInMsgs": 87,
                      "rplMsgStatsOutMsgs": 28
                  },
                  {
                      "rplMsgStatsType": 4,
                      "rplMsgStatsInMsgs": 47,
                      "rplMsgStatsOutMsgs": 38
                  }
              ]
          }
      }
  }

Appendix B.  Open Issues

      Should we model objective functions, e.g. by introducing a table
      that includes things such as MinHopRankIncrease and
      MaxRankIncrease

Authors' Addresses

   Kevin Korte
   Jacobs University
   Campus Ring 1
   Bremen  28759
   Germany

   EMail: k.korte@jacobs-university.de


   Juergen Schoenwaelder
   Jacobs University
   Campus Ring 1
   Bremen  28759
   Germany

   EMail: j.schoenwaelder@jacobs-university.de









Korte, et al.            Expires January 7, 2013               [Page 32]


Internet-Draft                   RPL-MIB                       July 2012


   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 January 7, 2013               [Page 33]