<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" >
<?rfc toc="yes"?>
<?rfc symrefs="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<?rfc strict="no"?>
<?rfc rfcedstyle="yes"?>

<rfc category="std" docName="draft-herberg-lln-loadng-mib-00" ipr="trust200902">
  <front>


    <title abbrev="The LOADng-MIB">Definition of Managed Objects for the
    LLN On-demand Ad hoc Distance-vector Routing Protocol - Next Generation (LOADng)</title>


	<author fullname="Ulrich Herberg" initials="U.H." role="" surname="Herberg">
      <organization>Fujitsu Laboratories of America</organization>
      <address>
        <postal>
          <street>1240 East Arques Avenue</street>
          <city>Sunnyvale</city>
          <region>CA</region>
          <code>94085</code>
          <country>USA</country>
        </postal>
        <email>ulrich@herberg.name</email>
        <uri>http://www.herberg.name/</uri>
      </address>
    </author>
    

    <author fullname="Robert G. Cole" initials="R.G." role="" surname="Cole">
      <organization>US Army CERDEC</organization>
      <address>
        <postal>
          <street>6010 Frankford Road, Bldg 6010</street>
          <city>Aberdeen Proving Ground</city>
          <region>Maryland</region>
          <code>21005</code>
          <country>USA</country>
        </postal>
        <phone>+1 443 395 8744</phone>
        <email>robert.g.cole@us.army.mil</email>
        <uri>http://www.cs.jhu.edu/~rgcole/</uri>
      </address>
    </author>

    
    <author initials="T.H." surname="Clausen" fullname="Thomas Heide Clausen">
      <organization>LIX, Ecole Polytechnique</organization>
      <address>
        <phone>+33 6 6058 9349</phone>
        <email>T.Clausen@computer.org</email>
        <uri>http://www.ThomasClausen.org/</uri>
      </address>
    </author>



    <date year="2012" />

    <area>Routing Area</area>

    <workgroup>Internet Engineering Task Force</workgroup>

    <keyword>Network Management</keyword>
    <keyword>Management Information base</keyword>
    <keyword>MIB</keyword>
    <keyword>SMIv2</keyword>

    <keyword>Routing</keyword>
    <keyword>LLN</keyword>


    <abstract>
      <t>This memo defines a portion of the Management Information Base (MIB)
      for use with network management protocols in the Internet community.
      In particular, it describes objects for configuring parameters of the
      LLN On-demand Ad hoc Distance-vector Routing Protocol - Next Generation (LOADng)
      process on a router.  The MIB module defined in this memo, denoted LOADng-MIB, also reports state. While LOADng is layer agnostic and can be run with different address families (e.g., on L2 using MAC addreses, or on L3 using IP addresss), this MIB module assumes that LOADng is used on L3,  and uses only IPv4/IPv6 addresses.
      </t>
    </abstract>

  </front>


  <middle>
    <section title="Introduction">
      <t>This memo defines a portion of the Management Information Base (MIB)
      for use with network management protocols in the Internet community.
      In particular, it describes objects for configuring parameters of the
      LLN On-demand Ad hoc Distance-vector Routing Protocol - Next Generation (LOADng) <xref target="LOADng"/>
      process on a router.  The MIB module defined in this memo, denoted LOADng-MIB, 
      also reports state. While LOADng is layer agnostic and can be run with different address families (e.g., on L2 using MAC addreses, or on L3 using IP addresss), this MIB module assumes that LOADng is used on L3, and uses only IPv4/IPv6 addresses.
      <!--
      This additional state and performance information is useful to troubleshoot 
      problems and performance issues during neighbor discovery.--></t>
    </section>


    <section title="The Internet-Standard Management Framework">
      <t><!-- The title and text for this section has been copied from the 
         official boilerplate, and should not be modified unless the boilerplate 
         text at http;//ops.ietf.org/mib-boilerplate.html has changed. See RFC4818 
         section 3.1 for a discussion of the boilerplate section.-->
         For a detailed overview of the documents that describe the current 
         Internet-Standard Management Framework, please refer to 
         Section 7 of <xref target="RFC3410"/>.</t>

      <t>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 module 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 
      <xref target="RFC2578"/>,  
      <xref target="RFC2579"/> and  
      <xref target="RFC2580"/>.</t>
    </section>

    <section title="Conventions">
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",          
         "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and OPTIONAL" 
         in this document are to be interpreted as described in <xref target="RFC2119"/>.</t>
    </section>


    <section title="Overview">
      <t>The LLN On-demand Ad hoc Distance-vector Routing Protocol - Next
   Generation (LOADng) <xref target="LOADng"/>  is a routing protocol, derived from AODV
   <xref target="RFC3561"/>  and extended for use in Low power and Lossy Networks
   (LLNs).  As a reactive protocol, the basic operations of LOADng
   include generation of Route Requests (RREQs) by a router (originator)
   for when discovering a route to a destination, forwarding of such
   RREQs until they reach the destination router, generation of Route
   Replies (RREPs) upon receipt of an RREQ by the indicated destination,
   and unicast hop-by-hop forwarding of these RREPs towards the
   originator.  If a route is detected broken, i.e., if forwarding of a
   data packet to the recorded next hop on the route to the destination
   is detected to fail, a Route Error (RERR) message is returned in unicast to the originator of that data packet.</t>
   
   <t>This MIB module describes objects for configuring parameters of a LOADng
      process on a router, as well as for the relevant state of a LOADng process on a router, in order to monitor and manage parameters and information bases of LOADng.</t>


      <section title="Terms">
        <t>The following definitions apply throughout this document:</t>
        <t><list style='symbols'>
          <t>Configuration Objects - switches, tables, objects which are initialized to default settings or set through the management interface defined by this MIB module.</t>
          <t>State Objects - automatically generated values which            define the current operating state of the LOADng protocol process in the router.</t>
        <!--  <t>Performance Objects - automatically generated values             which help an administrator or automated tool to assess the performance of the LOADng protocol process on the router and the overall discovery performance within the LLN.</t>-->
        </list></t>
      </section>    

    </section>



    <section title="Structure of the MIB Module">
      <t>This section presents the structure of the LOADng-MIB module. 
         The MIB module is arranged into the following structure:</t>
      <t><list style='symbols'>
        <t>LOADngObjects - defining objects within this MIB module.
           The objects are arranged into the following groups:
           <list style='symbols'>
              <t>Configuration Group - defining objects related to 
                 the configuration of the LOADng instance on the router.</t>
              <t>State Group - defining objects which reflect the current
                 state of the LOADng instance running on the router.</t>
          <!--    <t>Performance Group - defining objects which are 
                 useful to a management station when characterizing the
                 performance of LOADng on the router and in the LLN.</t>-->
           </list></t>
        <t>LOADngConformance - defining the minimal and maximal conformance
           requirements for implementations of this MIB module.</t>
      </list></t>



      <section title="The Configuration Group">
        <t>The LOADng router is configured with a set of controls. The authoritative list of configuration controls within the LOADng-MIB module are found within the MIB module itself. Generally, an attempt was made in developing the LOADng-MIB module to support all configuration objects defined in <xref target="LOADng"/>. For all of the configuration parameters, the same  default values of these parameters as defined in <xref target="LOADng"/> are followed.</t>
      </section>



      <section title="The State Group">
        <t>The State Group reports current state information of a router running <xref target="LOADng"/>. The LOADng-MIB State Group tables were designed to contain the complete set of state information defined within the information bases specified in Section 6 of <xref target="LOADng"/>.</t>
      </section>
      
      <section title="Tables and Indexing">
      <t>The LOADng-MIB module contains a number of tables which record
         data related to:
      </t>
      <t><list style='symbols'>  
         <t>the local LOADng router,</t> 
         <t>a local LOADng interface on the LOADng router,</t>  
         <t>other LOADng routers in the routing domain.</t>
      </list></t>


      <t>The LOADng-MIB module's tables and their indexing are:
      </t>
      <t><list style='symbols'>
         <t>loadngInterfaceTable - describes the
            configuration of the interfaces of this LOADng router.
            This table has 'INDEX { loadngIfIndex }'.</t>
         <t>loadngLibLocalIfSetTable - records all
            network addresses which are defined as local
            interface network addresses on this LOADng router.
            This table has 'INDEX { loadngLibLocalIfSetIfAddrIndex, loadngLibLocalIfSetIfIndex }'.</t>
         <t>loadngLibDestAddressSetTable - records 
            addresses, for which a LOADng Router 
            will generate RREPs in response to received 
            RREQs, in addition to its own interface addresses
            (as listed in the Local Interface Set).
            This table has 'INDEX { loadngLibDestAddressSetIndex }'.</t>
         <t>loadngBlacklistedNeighborSetTable - records the neighbor 
          interface addresses of a LOADng Router, with which 
          connectivity has been detected to be unidirectional.
            This table has 'INDEX { loadngBlacklistedNeighborSetIndex }'.</t>
         <t>loadngRoutingSetTable - records the next hop 
          on the route to each known destination.
            This table has 'INDEX { loadngRoutingSetIndex }'.</t>
         <t>loadngPendingAckSetTable - records  information about RREPs which have been transmitted with the ackrequired flag set, 
          and for which an RREP_ACK has not yet been 
          received.
            This table has 'INDEX { loadngPendingAckSetIndex }'.</t>
       </list></t>

    </section>

	 </section>



     

      <section title="Relationship to Other MIB Modules">
         <t>This section specifies the relationship of the MIB module contained in this document to other standards, particularly to standards containing other MIB modules.  Definitions imported from other MIB modules and other MIB modules that SHOULD be implemented in conjunction with the MIB module contained within this document are identified in this section.</t>


          <section title="Relationship to the SNMPv2-MIB">
            <t>The 'system' group in the SNMPv2-MIB module <xref target="RFC3418"/> is defined as being mandatory for all systems, and the objects apply to the entity as a whole. The 'system' group provides identification of the management entity and certain other system-wide data. The LOADng-MIB module does not duplicate those objects.</t>
          </section>


          <section title="MIB Modules Required for IMPORTS">
             <t>The following LOADng-MIB module IMPORTS objects from 
                SNMPv2-SMI <xref target="RFC2578"/>, SNMPv2-TC <xref target="RFC2579"/>,
                SNMPv2-CONF <xref target="RFC2580"/>, IF-MIB <xref target="RFC2863"/>, and
                INET-ADDRESS-MIB <xref target="RFC4001"/>.</t>
          </section>

    </section>



    <section anchor="MIB" title="Definitions">
      <t>This section contains the MIB module defined by the specification.</t>

      <figure>
        <artwork>
LOADNG-MIB DEFINITIONS ::= BEGIN

-- This MIB module defines objects for the management of 
-- LLN On-demand Ad hoc Distance-vector Routing Protocol - Next
-- Generation (LOADng),  T. Clausen, A. Colin de Verdiere, 
-- J. Yi, A. Niktash, Y. Igarashi, H. Satoh, U. Herberg, 
-- C. Lavenu, T. Lys, April 2012.

IMPORTS

    MODULE-IDENTITY, OBJECT-TYPE,
    Counter32, Counter64, Integer32, Unsigned32, mib-2, 
                 TimeTicks
                 FROM SNMPv2-SMI  -- RFC2578

    TEXTUAL-CONVENTION, TruthValue, TimeStamp,
                 RowStatus 
                 FROM SNMPv2-TC  -- RFC2579

    MODULE-COMPLIANCE, OBJECT-GROUP
                 FROM SNMPv2-CONF  -- STD58

    InetAddressType, InetAddress,
    InetAddressPrefixLength             
                 FROM INET-ADDRESS-MIB  -- RFC4001 

    InterfaceIndex
                 FROM IF-MIB  -- RFC2863

    ;

loadngMIB MODULE-IDENTITY
       LAST-UPDATED "201206111000Z" -- June 11, 2012
       ORGANIZATION "IETF ??? Working Group"
       CONTACT-INFO
       "WG E-Mail: ??@ietf.org

        WG Chairs: ??
                   ??


        Editors:   Ulrich Herberg
                   Fujitsu Laboratories of America
                   Sunnyvale, CA, 94085
                   US
                   ulrich@herberg.name
                   http://www.herberg.name/
                   
                   Robert G. Cole
                   US Army CERDEC
                   Space and Terrestrial Communications
                   6010 Frankford Street
                   Bldg 6010, Room 453H
                   Aberdeen Proving Ground, MD 21005
                   USA
                   +1 443 395-8744
                   robert.g.cole@us.army.mil
                   http://www.cs.jhu.edu/~rgcole/
                   
                   Thomas Heide Clausen
                   Ecole Polytechnique
                   LIX
                   91128 Palaiseau Cedex
                   France
                   http://www.thomasclausen.org/
                   T.Clausen@computer.org"

       DESCRIPTION
           "This loadng-MIB module is applicable to routers 
            implementing the LLN On-demand Ad hoc Distance-vector 
            Routing Protocol - Next Generation (LOADng).

            Copyright (C) The IETF Trust (2012). This version
            of this MIB module is part of RFCXXXX; see the RFC
            itself for full legal notices."

       -- revision
       REVISION "201206111000Z" -- June 11, 2012
       DESCRIPTION
            "The first version of this MIB module,
             published as RFCXXXX.
            "
       -- RFC-Editor assigns XXXX
       ::= { mib-2 XXXX }   -- to be assigned by IANA

--
-- Top-Level Components of this MIB Module
--
loadngObjects       OBJECT IDENTIFIER ::= { loadngMIB 1 }
loadngConformance   OBJECT IDENTIFIER ::= { loadngMIB 2 }


--
-- loadngObjects
--

--    1) Configuration Objects Group
--    2) State Objects Group


--
-- loadngConfigurationObjGrp
--

-- Contains the LOADng objects which configure specific options
-- which determine the overall performance and operation of the
-- LOADng protocol.


loadngConfigurationObjGrp OBJECT IDENTIFIER ::= { loadngObjects 1 }


   loadngInterfaceTable  OBJECT-TYPE
      SYNTAX      SEQUENCE OF LoadngInterfaceEntry
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
         "loadngInterfaceTable describes the
          configuration of the interfaces of this LOADng router.
          The ifIndex is from the interfaces group 
          defined in the Interfaces Group MIB. If the 
          corresponding entry with ifIndex value is deleted 
          from the Interface Table, then the entry in 
          this table is automatically deleted.

          The objects in this table are persistent and when 
          written the entity SHOULD save the change to 
          non-volatile storage."
      REFERENCE
         "RFC2863 - The Interfaces Group MIB, McCloghrie,
          K., and F. Kastenholtz, June 2000."
   ::= { loadngConfigurationObjGrp 1 }

   loadngInterfaceEntry OBJECT-TYPE
      SYNTAX      LoadngInterfaceEntry
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
         "loadngInterfaceEntry describes one LOADng
          local interface configuration as indexed by 
          its ifIndex as defined in the Standard MIB II
          Interface Table (RFC2863)."
      INDEX { loadngIfIndex }
   ::= { loadngInterfaceTable 1 }

   LoadngInterfaceEntry ::=
      SEQUENCE {
         loadngIfIndex
            InterfaceIndex,
         loadngIfRowStatus
            RowStatus
         }

   loadngIfIndex  OBJECT-TYPE
      SYNTAX      InterfaceIndex
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
         "The ifIndex for this interface."
      ::= { loadngInterfaceEntry 1 }
      

   
   loadngIfRowStatus  OBJECT-TYPE
      SYNTAX      RowStatus
      MAX-ACCESS  read-create
      STATUS      current
      DESCRIPTION
         "This object permits management of the table 
         by facilitating actions such as row creation,
         construction, and destruction. The value of
         this object has no effect on whether other
         objects in this conceptual row can be
         modified.

         An entry may not exist in the active state unless all
         objects in the entry have an appropriate value."
      REFERENCE
         "LOADng."
   ::= { loadngInterfaceEntry 2 }


   --
   -- Router Parameters
   --
   
   loadngNetTraversalTime  OBJECT-TYPE
      SYNTAX      Unsigned32
      UNITS       "milliseconds"
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "loadngNetTraversalTime corresponds to 
         NET_TRAVERSAL_TIME of LOADng. It represents 
         the maximum time that a packet is expected
         to take when traversing from one end of 
         the network to the other. 

         This object is persistent and when written
         the entity SHOULD save the change to 
         non-volatile storage."
      REFERENCE
         "LOADng. 
          Section 5 on Protocol Parameters."
      DEFVAL { 500 }
   ::= { loadngConfigurationObjGrp 2 }


   loadngRREQRetries  OBJECT-TYPE
      SYNTAX      Unsigned32 (0..255)
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "loadngRREQRetries corresponds to 
         RREQ_RETRIES of LOADng. It represents
         the maximum number of subsequent RREQs 
         that a particular router may generate 
         in order to discover a route to a 
         destination, before declaring that 
         destination unreachable.

         This object is persistent and when written
         the entity SHOULD save the change to 
         non-volatile storage."
      REFERENCE
         "LOADng. 
          Section 5 on Protocol Parameters."
      DEFVAL { 3 }
   ::= { loadngConfigurationObjGrp 3 }
   
   
   loadngRREQRatelimit  OBJECT-TYPE
      SYNTAX      Unsigned32 (1..255)
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "loadngRREQRatelimit corresponds to 
          RREQ_RATELIMIT of LOADng. It represents
          the maximum number of RREQs that a particular 
          router is allowed to send per second. 

          This object is persistent and when written
          the entity SHOULD save the change to 
          non-volatile storage."
      REFERENCE
         "LOADng. 
          Section 5 on Protocol Parameters."
      DEFVAL { 3 }
   ::= { loadngConfigurationObjGrp 4 }
   
   
    loadngRHoldTime   OBJECT-TYPE
      SYNTAX      Unsigned32
      UNITS       "milliseconds"
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "loadngRHoldTime corresponds to 
          R_HOLD_TIME of LOADng. It represents
          the minimum time a Routing Tuple should 
          be kept in the Routing Set after it was 
          last refreshed. This may be a network-wide 
          constant, but may also be a variable whose 
          value is defined by an auxiliary mechanism, 
          e.g., by an extension to this protocol. 

          This object is persistent and when written
          the entity SHOULD save the change to 
          non-volatile storage."
      REFERENCE
         "LOADng. 
          Section 5 on Protocol Parameters."
      DEFVAL { 10000 }
   ::= { loadngConfigurationObjGrp 5 }
   
   loadngMaxRouteCost  OBJECT-TYPE
      SYNTAX      Unsigned32 (0..255)
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "loadngMaxRouteCost corresponds to 
          maximum distance in "hop count" of
          MAX_DIST of LOADng. It represents
          the value representing the 
          maximum possible distance in hop count. 

          This object is persistent and when written
          the entity SHOULD save the change to 
          non-volatile storage."
      REFERENCE
         "LOADng. 
          Section 5 on Protocol Parameters."
      DEFVAL { 255 }
   ::= { loadngConfigurationObjGrp 6 }
   
   loadngMaxWeakLinks  OBJECT-TYPE
      SYNTAX      Unsigned32 (0..15)
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "loadngMaxWeakLinks corresponds to the
          maximum distance in "weak links" of
          MAX_DIST of LOADng. It represents
          the value representing the 
          maximum possible distance in weak links. 

          This object is persistent and when written
          the entity SHOULD save the change to 
          non-volatile storage."
      REFERENCE
         "LOADng. 
          Section 5 on Protocol Parameters."
      DEFVAL { 15 }
   ::= { loadngConfigurationObjGrp 7 }
   
   
   loadngRREPAckRequired  OBJECT-TYPE
      SYNTAX      TruthValue
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "loadngRREPAckRequired corresponds to 
          RREP_ACK_REQUIRED of LOADng. It represents
          a boolean flag, which indicates (if 
          set) that the router is configured to 
          expect that each RREP it sends be confirmed 
          by an RREP_ACK or (if cleared) that no 
          RREP_ACK is expected.  

          This object is persistent and when written
          the entity SHOULD save the change to 
          non-volatile storage."
      REFERENCE
         "LOADng. 
          Section 5 on Protocol Parameters."
      DEFVAL { false }
   ::= { loadngConfigurationObjGrp 8 }
   
   
   loadngRREPAckTimeout   OBJECT-TYPE
      SYNTAX      Unsigned32
      UNITS       "milliseconds"
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "loadngRHoldTime corresponds to 
          RREP_ACK_TIMEOUT of LOADng. It represents
          the minimum time after transmission of 
          an RREP, that a LOADng Router should 
          wait for an RREP_ACK from a neighbor 
          LOADng Router, before considering that 
          the link to this neighbor is unidirectional. 

          This object is persistent and when written
          the entity SHOULD save the change to 
          non-volatile storage."
      REFERENCE
         "LOADng. 
          Section 5 on Protocol Parameters."
      DEFVAL { 500 }
   ::= { loadngConfigurationObjGrp 9 }
   
   
   loadngBHoldTime   OBJECT-TYPE
      SYNTAX      Unsigned32
      UNITS       "milliseconds"
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "loadngRHoldTime corresponds to 
          B_HOLD_TIME of LOADng. It represents
          the time during which the link between 
          the neighbor LOADng Router and this 
          LOADng Router must be considered as 
          non-bidirectional, and that therefore 
          RREQs received from that neighbor 
          LOADng Router must be ignored after being 
          added. loadngBHoldTime should be greater 
          than 2 x loadngNetTraversalTime x 
          loadngRREQRetries, to ensure that subsequent 
          RREQs will reach the destination via a route, 
          excluding this link. 

          This object is persistent and when written
          the entity SHOULD save the change to 
          non-volatile storage."
      REFERENCE
         "LOADng. 
          Section 5 on Protocol Parameters."
      DEFVAL { 3000 }
   ::= { loadngConfigurationObjGrp 10 }
   
   
   loadngUseBidirectionalLinkOnly  OBJECT-TYPE
      SYNTAX      TruthValue
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "loadngUseBidirectionalLinkOnly corresponds to 
          USE_BIDIRECTIONAL_LINK_ONLY of LOADng. It represents
          a boolean flag, which indicates if the 
          LOADng Router only uses verified bi-directional 
          links for data packet forwarding. It is set 
          by default. If cleared, then the LOADng Router 
          can use links which have not been verified to 
          be bi-directional. 

          This object is persistent and when written
          the entity SHOULD save the change to 
          non-volatile storage."
      REFERENCE
         "LOADng. 
          Section 5 on Protocol Parameters."
      DEFVAL { true }
   ::= { loadngConfigurationObjGrp 11 }


    --
    -- Local Interface Set Table
    --

    loadngLibLocalIfSetTable OBJECT-TYPE
       SYNTAX       SEQUENCE OF LoadngLibLocalIfSetEntry
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
          "A router's Local Interface Set records its 
           local interfaces. The local interface
           is defined by the loadngIfIndex.

           The Local Interface Set consists of Local Interface 
           Tuples per network interface."
       REFERENCE
          "LOADng."
    ::= { loadngConfigurationObjGrp 12 }

    loadngLibLocalIfSetEntry  OBJECT-TYPE
       SYNTAX      LoadngLibLocalIfSetEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
          "A router's Local Interface Set consists
           of Local Interface Tuples for each network
           interface. 
           
           (I_local_iface_addr_list)
           
           Each tuple contains a list of one 
           or more addresses of this interface.
          "
       REFERENCE
          "LOADng."
       INDEX { loadngLibLocalIfSetIndex, loadngLibLocalIfSetIfIndex }
    ::= { loadngLibLocalIfSetTable 1 }

    LoadngLibLocalIfSetEntry ::=
       SEQUENCE {
          loadngLibLocalIfSetIndex
            Integer32,
          loadngLibLocalIfSetIfIndex
            InterfaceIndex,
          loadngLibLocalIfSetIpAddrType
            InetAddressType,
          loadngLibLocalIfSetIpAddr
            InetAddress,
          loadngLibLocalIfSetRowStatus
            RowStatus
         }
         
   loadngLibLocalIfSetIndex  OBJECT-TYPE
      SYNTAX      Integer32 (0..65535)
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
         "The index for this table. Necessary
          because multiple addresses may be associated
          with a given loadngIfIndex."
      REFERENCE
         "LOADng."
   ::= { loadngLibLocalIfSetEntry 1 }
   
   loadngLibLocalIfSetIfIndex  OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
           "Specifies the local loadngIfIndex for which this
            IP address was added."
        REFERENCE
           "LOADng."
   ::= { loadngLibLocalIfSetEntry 2 }

   loadngLibLocalIfSetIpAddrType  OBJECT-TYPE
      SYNTAX      InetAddressType
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "The type of the loadngLibLocalIfSetIpAddr
          in the InetAddress MIB (RFC4001).
          
          Only the values ipv4(1) and
          ipv6(2) are supported."
      REFERENCE
         "LOADng."
   ::= { loadngLibLocalIfSetEntry 3 }

   loadngLibLocalIfSetIpAddr  OBJECT-TYPE
      SYNTAX      InetAddress (SIZE(4|16))
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "loadngLibLocalIfSetIpAddr is an
          address of an interface of
          this router.
        
          This object is interpreted according to
          the setting of loadngLibLocalIfSetIpAddrType."
      REFERENCE
         "LOADng."
   ::= { loadngLibLocalIfSetEntry 4 }
   
   loadngLibLocalIfSetRowStatus  OBJECT-TYPE
      SYNTAX      RowStatus
      MAX-ACCESS  read-create
      STATUS      current
      DESCRIPTION
         "This object permits management of the table 
         by facilitating actions such as row creation,
         construction, and destruction. The value of
         this object has no effect on whether other
         objects in this conceptual row can be
         modified.

         An entry may not exist in the active state unless all
         objects in the entry have an appropriate value."
      REFERENCE
         "LOADng."
    ::= { loadngLibLocalIfSetEntry 5 }

     
     
     
    -- Destination Address Set Table
    -- Entry (foreach local interface): (D_address)

    loadngLibDestAddressSetTable OBJECT-TYPE
       SYNTAX       SEQUENCE OF LoadngLibDestAddressSetEntry
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
          "The Destination Address Set records 
          addresses, for which a LOADng Router 
          will generate RREPs in response to received 
          RREQs, in addition to its own interface addresses
          (as listed in the Local Interface Set). The 
          Destination Address Set thus represents those 
          destinations (i.e., hosts), for which this LOADng 
          Router is providing connectivity. It consists of 
          destination address tuples: "
       REFERENCE
          "LOADng."
    ::= { loadngConfigurationObjGrp 13 }

    loadngLibDestAddressSetEntry  OBJECT-TYPE
       SYNTAX      LoadngLibDestAddressSetEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
          "The Destination Address Set consists 
          of Destination Address Tuples:

            (D_address)
          "
       REFERENCE
          "LOADng."
       INDEX { loadngLibDestAddressSetIndex }
    ::= { loadngLibDestAddressSetTable 1 }

    LoadngLibDestAddressSetEntry ::=
       SEQUENCE {
          loadngLibDestAddressSetIndex
            Integer32,
          loadngLibDestAddressSetIpAddrType
            InetAddressType,
          loadngLibDestAddressSetIpAddr
            InetAddress
         }
         
   loadngLibDestAddressSetIndex  OBJECT-TYPE
      SYNTAX      Integer32 (0..65535)
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
         "The index for this table. Necessary
          because multiple addresses may be associated
          with a given loadngIfIndex." 
      REFERENCE
         "LOADng."
   ::= { loadngLibDestAddressSetEntry 1 }

   loadngLibDestAddressSetIpAddrType  OBJECT-TYPE
      SYNTAX      InetAddressType
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "The type of the loadngLibDestAddressSetIpAddr
          in the InetAddress MIB (RFC4001).
          
          Only the values ipv4(1) and
          ipv6(2) are supported."
      REFERENCE
         "LOADng."
   ::= { loadngLibDestAddressSetEntry 2 }

   loadngLibDestAddressSetIpAddr  OBJECT-TYPE
      SYNTAX      InetAddress (SIZE(4|16))
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "loadngLibDestAddressSetIpAddr is an
          address of an interface of
          a router.
        
          This object is interpreted according to
          the setting of loadngLibDestAddressSetIpAddrType."
      REFERENCE
         "LOADng."
   ::= { loadngLibDestAddressSetEntry 3 }




--
-- loadngStateObjGrp
--

-- Contains information describing the current state of the LOADng
-- process on this router.

loadngStateObjGrp    OBJECT IDENTIFIER ::= { loadngObjects 2 }


   loadngUpTime OBJECT-TYPE
       SYNTAX TimeStamp
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
             "The value of sysUpTime at the time current LOADng 
              process was initialized.
             "
    ::= { loadngStateObjGrp 1 }


   --  
   -- Blacklisted Neighbor Set Table
   --
 
    loadngBlacklistedNeighborSetTable OBJECT-TYPE
       SYNTAX       SEQUENCE OF LoadngBlacklistedNeighborSetEntry
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
          "The Blacklisted Neighbor Set records the neighbor 
          interface addresses of a LOADng Router, with which 
          connectivity has been detected to be unidirectional. 
          Specifically, the Blacklisted Neighbor Set records 
          neighbors from which an RREQ has been received (i.e., 
          through which a Forward Route would possible) but 
          to which it has been determined that it is not 
          possible to communicate (i.e., forwarding Route 
          Replies via this neighbor fails, rendering installing 
          the Forward Route impossible). It consists of 
          Blacklisted Neighbor Tuples."
       REFERENCE
          "LOADng."
    ::= { loadngStateObjGrp 2 }

    loadngBlacklistedNeighborSetEntry  OBJECT-TYPE
       SYNTAX      LoadngBlacklistedNeighborSetEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
          "A router's Blacklisted Neighbor Set consists
          of Blacklisted Neighbor Tuples, one per network
          address:loadngBlacklistedNeighborSet
          
          (B_neighbor_address, B_valid_time)

          The association between these addrs and
          the router's Interface is found in the
          Standard MIB II's IP address table 
          (RFC1213)."
       REFERENCE
          "LOADng."
       INDEX { loadngBlacklistedNeighborSetIndex }
    ::= { loadngBlacklistedNeighborSetTable 1 }

    LoadngBlacklistedNeighborSetEntry ::=
       SEQUENCE {
          loadngBlacklistedNeighborSetIndex
            Integer32,
          loadngBlacklistedNeighborSetIpAddrType
            InetAddressType,
          loadngBlacklistedNeighborSetIpAddr
            InetAddress,
          loadngBlacklistedNeighborSetBTime
            TimeStamp
         }
         
   loadngBlacklistedNeighborSetIndex  OBJECT-TYPE
      SYNTAX      Integer32 (0..65535)
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
         "The index for this table."
      REFERENCE
         "LOADng."
   ::= { loadngBlacklistedNeighborSetEntry 1 }

   loadngBlacklistedNeighborSetIpAddrType  OBJECT-TYPE
      SYNTAX      InetAddressType
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "The type of the loadngBlacklistedNeighborSetIpAddr
          in the InetAddress MIB (RFC4001).

          Only the values ipv4(1) and
          ipv6(2) are supported."
      REFERENCE
         "LOADng."
   ::= { loadngBlacklistedNeighborSetEntry 2 }

   loadngBlacklistedNeighborSetIpAddr  OBJECT-TYPE
      SYNTAX      InetAddress (SIZE(4|16))
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "loadngBlacklistedNeighborSetIpAddr is the 
         address of the blacklisted neighbor interface."
      REFERENCE
         "LOADng."
   ::= { loadngBlacklistedNeighborSetEntry 3 }


     loadngBlacklistedNeighborSetBTime  OBJECT-TYPE
        SYNTAX      TimeStamp
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "loadngBlacklistedNeighborSetBTime specifies the 
           sysUptime when to expire this entry and remove 
           it from the 'loadngBlacklistedNeighborSetTable'"
        REFERENCE
           "LOADng."
     ::= { loadngBlacklistedNeighborSetEntry 4 }



   --
   -- Routing Set
   --
  
   loadngRoutingSetTable OBJECT-TYPE
      SYNTAX       SEQUENCE OF LoadngRoutingSetEntry
      MAX-ACCESS   not-accessible
      STATUS       current
      DESCRIPTION
          "The Routing Set records the next hop 
          on the route to each known destination, 
          when such a route is known. It consists of
          Routing Tuples."
      REFERENCE
         "LOADng."
   ::= { loadngStateObjGrp 3 }

   loadngRoutingSetEntry  OBJECT-TYPE
      SYNTAX      LoadngRoutingSetEntry
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
          "A router's Routing Set consists 
           of Routing Tuples:

           (R_dest_addr, R_next_addr, R_dist, 
            R_metric, R_seq_num, R_valid_time, 
            R_bidirectional, R_local_iface_addr)
           "
      REFERENCE
         "LOADng."
      INDEX { loadngRoutingSetIndex }
   ::= { loadngRoutingSetTable 1 }

    LoadngRoutingSetEntry ::=
       SEQUENCE {
          loadngRoutingSetIndex
            Integer32,
          loadngRoutingSetDestIpAddrType
            InetAddressType,
          loadngRoutingSetDestIpAddr
            InetAddress,
          loadngRoutingSetNextIpAddrType
            InetAddressType,
          loadngRoutingSetNextIpAddr
            InetAddress,
          loadngRoutingSetRouteCost
            Unsigned32,
          loadngRoutingSetWeakLinks
            Unsigned32,
          loadngRoutingSetMetric
            Integer32,
          loadngRoutingSetSeqnum
            Integer32,
          loadngRoutingSetValidTime
            TimeStamp,
          loadngRoutingSetBidirectional
            TruthValue,
          loadngRoutingSetLocalIfaceIpAddrType
            InetAddressType,
          loadngRoutingSetLocalIfaceIpAddr
            InetAddress
         }
         
   loadngRoutingSetIndex  OBJECT-TYPE
      SYNTAX      Integer32 (0..65535)
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
         "The index for this table."
      REFERENCE
         "LOADng."
   ::= { loadngRoutingSetEntry 1 }

   loadngRoutingSetDestIpAddrType  OBJECT-TYPE
      SYNTAX      InetAddressType
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "The type of the loadngRoutingSetDestIpAddr
          in the InetAddress MIB (RFC4001).

          Only the values ipv4(1) and
          ipv6(2) are supported."
      REFERENCE
         "LOADng."
   ::= { loadngRoutingSetEntry 2 }

   loadngRoutingSetDestIpAddr  OBJECT-TYPE
      SYNTAX      InetAddress (SIZE(4|16))
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "loadngRoutingSetDestIpAddrType is the address 
         of the destination, either the address of an 
         interface of a destination LOADng Router, or 
         the address of an interface reachable via the 
         destination LOADng Router, but which is outside 
         the LLN."
      REFERENCE
         "LOADng."
   ::= { loadngRoutingSetEntry 3 }
   
   loadngRoutingSetNextIpAddrType  OBJECT-TYPE
      SYNTAX      InetAddressType
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "The type of the loadngRoutingSetNextIpAddr
          in the InetAddress MIB (RFC4001).

          Only the values ipv4(1) and
          ipv6(2) are supported."
      REFERENCE
         "LOADng."
   ::= { loadngRoutingSetEntry 4 }

   loadngRoutingSetNextIpAddr  OBJECT-TYPE
      SYNTAX      InetAddress (SIZE(4|16))
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "loadngRoutingSetNextIpAddr is the 
         address of the next hop on the selected 
         route to the destination."
      REFERENCE
         "LOADng."
   ::= { loadngRoutingSetEntry 5 }
   
   loadngRoutingSetRouteCost  OBJECT-TYPE
      SYNTAX      Unsigned32
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "loadngRoutingSetRouteCost is the distance 
         (in number of hops) associated 
         with the selected route to the destination 
         with address R_dest_addr."
      REFERENCE
         "LOADng."
   ::= { loadngRoutingSetEntry 6 }
   
   loadngRoutingSetWeakLinks  OBJECT-TYPE
      SYNTAX      Unsigned32
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "loadngRoutingSetWeakLinks is the distance 
         (in number of weak links) associated 
         with the selected route to the destination 
         with address R_dest_addr."
      REFERENCE
         "LOADng."
   ::= { loadngRoutingSetEntry 7 }
   
   loadngRoutingSetMetric  OBJECT-TYPE
      SYNTAX      Integer32
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "loadngRoutingSetMetric specifies how R_dist 
         is defined and calculated, as well as the 
         comparison operator &lt;= for determining which 
         of two route costs is lower."
      REFERENCE
         "LOADng."
   ::= { loadngRoutingSetEntry 8 }
   
   loadngRoutingSetSeqnum  OBJECT-TYPE
      SYNTAX      Integer32 (-1..65535)
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "loadngRoutingSetSeqnum is the value of the 
         &lt;seq-num&gt; field of the RREQ or RREP which installed 
         or last updated this tuple. For the routing 
         tuples installed by previous hop information of 
         RREQ or RREP, loadngRoutingSetSeqnum must be 
         set to -1."
      REFERENCE
         "LOADng."
   ::= { loadngRoutingSetEntry 9 }
   
   loadngRoutingSetValidTime  OBJECT-TYPE
        SYNTAX      TimeStamp
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "loadngRoutingSetValidTime specifies the sysUptime 
          when to expire this entry and remove it from the
          'loadngRoutingSetTable'"
        REFERENCE
           "LOADng."
     ::= { loadngRoutingSetEntry 10 }
     
    
    loadngRoutingSetBidirectional  OBJECT-TYPE
      SYNTAX      TruthValue
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "loadngRoutingSetBidirectional is a boolean 
         flag, which specifies if the routing tuple 
         is verified as representing a bi-directional 
         route. Data traffic should only be routed 
         through a routing tuple with R_bidirectional 
         flag equals TRUE, unless the router is 
         configured as accepting routes without 
         bi-directionality verification explicitly by 
         setting the USE_BIDIRECTIONAL_LINK_ONLY to FALSE."
      REFERENCE
         "LOADng."
   ::= { loadngRoutingSetEntry 11 }
   
   
   loadngRoutingSetLocalIfaceIpAddrType  OBJECT-TYPE
      SYNTAX      InetAddressType
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "The type of the loadngRoutingSetLocalIfaceIpAddr
          in the InetAddress MIB (RFC4001).

          Only the values ipv4(1) and
          ipv6(2) are supported."
      REFERENCE
         "LOADng."
   ::= { loadngRoutingSetEntry 12 }

   loadngRoutingSetLocalIfaceIpAddr  OBJECT-TYPE
      SYNTAX      InetAddress (SIZE(4|16))
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "loadngRoutingSetLocalIfaceIpAddr is the address
         of the local interface, through which the 
         destination can be reached."
      REFERENCE
         "LOADng."
   ::= { loadngRoutingSetEntry 13 }
   
   
   --
   -- Pending Acknowledgment Set
   --
  
   loadngPendingAckSetTable OBJECT-TYPE
      SYNTAX       SEQUENCE OF LoadngPendingAckSetEntry
      MAX-ACCESS   not-accessible
      STATUS       current
      DESCRIPTION
          "The Pending Acknowledgment Set contains 
          information about RREPs which have been 
          transmitted with the ackrequired flag set, 
          and for which an RREP_ACK has not yet been 
          received. It consists of Pending Acknowledgment 
          Tuples."
      REFERENCE
         "LOADng."
   ::= { loadngStateObjGrp 4 }

   loadngPendingAckSetEntry  OBJECT-TYPE
      SYNTAX      LoadngPendingAckSetEntry
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
          "A router's Pending Acknowledgment Set 
          consists of Pending Acknowledgment Tuples:

          (P_next_hop, P_originator, P_seq_num, 
          P_ack_timeout)
           "
      REFERENCE
         "LOADng."
      INDEX { loadngPendingAckSetIndex }
   ::= { loadngPendingAckSetTable 1 }

    LoadngPendingAckSetEntry ::=
       SEQUENCE {
          loadngPendingAckSetIndex
            Integer32,
          loadngPendingAckSetNextIpAddrType
            InetAddressType,
          loadngPendingAckSetNextIpAddr
            InetAddress,
          loadngPendingAckSetOrigIpAddrType
            InetAddressType,
          loadngPendingAckSetOrigIpAddr
            InetAddress,
          loadngPendingAckSetSeqnum
            Integer32,
          loadngPendingAckSetValidTime
            TimeStamp
         }
         
   loadngPendingAckSetIndex  OBJECT-TYPE
      SYNTAX      Integer32 (0..65535)
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
         "The index for this table."
      REFERENCE
         "LOADng."
   ::= { loadngPendingAckSetEntry 1 }
   
   loadngPendingAckSetNextIpAddrType  OBJECT-TYPE
      SYNTAX      InetAddressType
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "The type of the loadngPendingAckSetNextIpAddr
          in the InetAddress MIB (RFC4001).

          Only the values ipv4(1) and
          ipv6(2) are supported."
      REFERENCE
         "LOADng."
   ::= { loadngPendingAckSetEntry 2 }

   loadngPendingAckSetNextIpAddr  OBJECT-TYPE
      SYNTAX      InetAddress (SIZE(4|16))
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "loadngPendingAckSetNextIpAddr is the address 
         of the neighbor interface to which the RREP 
         was sent. "
      REFERENCE
         "LOADng."
   ::= { loadngPendingAckSetEntry 3 }
   
   loadngPendingAckSetOrigIpAddrType  OBJECT-TYPE
      SYNTAX      InetAddressType
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "The type of the loadngPendingAckSetOrigIpAddr
          in the InetAddress MIB (RFC4001).

          Only the values ipv4(1) and
          ipv6(2) are supported."
      REFERENCE
         "LOADng."
   ::= { loadngPendingAckSetEntry 4 }

   loadngPendingAckSetOrigIpAddr  OBJECT-TYPE
      SYNTAX      InetAddress (SIZE(4|16))
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "loadngPendingAckSetOrigIpAddr is the address 
         of the originator of the RREP."
      REFERENCE
         "LOADng."
   ::= { loadngPendingAckSetEntry 5 }
   
   
   loadngPendingAckSetSeqnum  OBJECT-TYPE
      SYNTAX      Integer32 (0..65535)
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "loadngPendingAckSetSeqnum corresponds to the 
         &lt;seq-num&gt; field of the sent RREP."
      REFERENCE
         "LOADng."
   ::= { loadngPendingAckSetEntry 6 }
   
   loadngPendingAckSetValidTime  OBJECT-TYPE
        SYNTAX      TimeStamp
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "loadngPendingAckSetValidTime specifies the sysUptime 
          when to expire this entry and remove it from the
          'loadngPendingAckSetTable'"
        REFERENCE
           "LOADng."
     ::= { loadngPendingAckSetEntry 7 }


--
-- loadngConformance information
--

loadngCompliances       OBJECT IDENTIFIER ::= { loadngConformance 1 }
loadngMIBGroups         OBJECT IDENTIFIER ::= { loadngConformance 2 }


-- Compliance Statements
loadngBasicCompliance MODULE-COMPLIANCE
  STATUS current
  DESCRIPTION
    "The basic implementation requirements for
     managed network entities that implement
     LOADng."
  MODULE -- this module
  
  MANDATORY-GROUPS { loadngConfigurationGroup }

  ::= { loadngCompliances 1 }


loadngFullCompliance MODULE-COMPLIANCE
  STATUS current
  DESCRIPTION
    "The full implementation requirements for
     managed network entities that implement
     LOADng."
  MODULE -- this module
  
  MANDATORY-GROUPS { loadngConfigurationGroup,
                     loadngStateGroup }

  ::= { loadngCompliances 2 }


--
-- Units of Conformance
--

  loadngConfigurationGroup OBJECT-GROUP
     OBJECTS {
              loadngNetTraversalTime,
              loadngRREQRetries,
              loadngRREQRatelimit,
              loadngRHoldTime,
              loadngMaxRouteCost,
              loadngMaxWeakLinks,
              loadngRREPAckRequired,
              loadngRREPAckTimeout,
              loadngBHoldTime,
              loadngUseBidirectionalLinkOnly,
              loadngIfRowStatus,
              loadngLibLocalIfSetIfIndex,
              loadngLibLocalIfSetIpAddrType,
              loadngLibLocalIfSetRowStatus
             }
      STATUS  current
      DESCRIPTION
         "Set of LOADng configuration objects implemented
          in this module."
   ::= { loadngMIBGroups 2 }

  loadngStateGroup OBJECT-GROUP
     OBJECTS {
              loadngUpTime,
              loadngIfStateUpTime,
              loadngBlacklistedNeighborSetIpAddrType,
              loadngBlacklistedNeighborSetIpAddr,
              loadngBlacklistedNeighborSetBTime,
              loadngRoutingSetDestIpAddrType,
              loadngRoutingSetDestIpAddr,
              loadngRoutingSetNextIpAddrType,
              loadngRoutingSetNextIpAddr,
              loadngRoutingSetRouteCost,
              loadngRoutingSetWeakLinks,
              loadngRoutingSetMetric,
              loadngRoutingSetSeqnum,
              loadngRoutingSetValidTime,
              loadngRoutingSetBidirectional,
              loadngRoutingSetLocalIfaceIpAddrType,
              loadngRoutingSetLocalIfaceIpAddr,
              loadngPendingAckSetNextIpAddrType,
              loadngPendingAckSetNextIpAddr,
              loadngPendingAckSetOrigIpAddrType,
              loadngPendingAckSetOrigIpAddr,
              loadngPendingAckSetSeqnum,
              loadngPendingAckSetValidTime
             }
      STATUS  current
      DESCRIPTION
         "Set of LOADng state objects implemented
          in this module."
   ::= { loadngMIBGroups 3 }


END
    </artwork>
      </figure>
    </section>

    <section title="Security Considerations">


      <t>This MIB module defines objects for the configuration and monitoring  of LOADng <xref target="LOADng"/>. 
     </t>

      <t>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:</t>

      <t><list style="symbols">
             
			<t>loadngNetTraversalTime - this writable object controls the maximum time that a packet is expected to take when traversing from one end of the network to the other. If set too low, a router will not wait long enough until receiving an RREP as response to an RREQ. Therefore, all route requests may fail and render LOADng useless.</t>
           
        	<t>loadngRREQRetries - this writable object controls how many RREQs may be sent until an RREP must have been receveived or the route discovery is considered failed. If set too low in very lossy networks, route discovery may fail for destinations (which otherwise would have succeeded, had the value been higher). If set too high, a router may send unnecessary many RREQs, draining energy from the router and consuming bandwidth.</t>
        	
        	<t>loadngRREQRatelimit - this writable object controls how many RREQs may be sent per second. If set too high, a malicous node (host or router) may request routes for many destinations, resulting in many RREQs, which drain energy from the router and consume bandwidth.</t>

            <t>loadngRHoldTime - this writable object controls how long a Routing Tuple is hold in the Routing Set. If set too low, a router may not keep routes long enough, and may therefore frequently rediscover the same routes to a destination, resulting in bandwidth consumption and energy drain.</t>
            
            <t>loadngRREPAckTimeout - this writable object controls how long a router waits before expecting an RREP_ACK. If set too low, and if RREP_ACKs are required, the router may list the neighbor as unidirectional and may therefore not use it for routing.</t>
            
            <t>loadngBHoldTime - this writable object controls how long a Blacklisted Neighbor Tuples is hold in the Blacklisted Neighbor Set. If set too high, a neighbor router may be blocked for a long time, even though it may have become reachable bidirectionally in the meantime.</t>
            
            <t>loadngRREPAckRequired - this writable object controls whether RREP_ACKs are required for verification of bidirectionality. If disabled in a lossy environment, and if bidirectionality is not verified by other means, unidirectional routes may be discovered to destinations.</t>
            
            <t>loadngMaxRouteCost, loadngMaxWeakLinks - these writable objects control the maximum distance of a router in the LLN. If set too low, destinations may be ignored to which otherwise a path could be established by LOADng.</t>

        </list></t>


      <t>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: 
         <list style="symbols">
          <t>loadngRoutingSetTable - The table contains information on destinations in the LLN, specifically their IP address in the loadngRoutingSetDestIpAddr object. This information provides an adversary broad information on the members of the LLN, located within this single table. This information can be use to expedite attacks on the other members of the LLN without having to go through a laborious discovery process on their own. This object is the index into the table, and has a MAX-ACCESS of 'not-accessible'.  However, this information can be exposed using SNMP operations.</t>
        </list></t>

      <t>LLN technology is often deployed to support communications of 
         emergency services or military tactical applications.  In these 
         applications, it is imperative to maintain the proper operation of the
         communications network and to protect sensitive information related 
         to its operation.  Therefore, it is RECOMMENDED to provide support 
         for the Transport Security Model (TSM) <xref target="RFC5591"></xref> 
         in combination with TLS/DTLS <xref target="RFC6353"/>.</t>

      <t>SNMP versions prior to SNMPv3 did not include adequate security.
         Even if the network itself is secure (for example by using IPsec),
         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.</t>

       <t>It is RECOMMENDED that implementations provide the security features described by the
         SNMPv3 framework (see <xref target="RFC3410"></xref>), including full support for
         authentication and privacy via the User-based Security Model (USM)
         <xref target="RFC3414"></xref>  
         with the AES cipher algorithm <xref target="RFC3826"></xref>.  
         Implementations MAY also provide support for the Transport Security Model (TSM)
         <xref target="RFC5591"></xref> in combination with a secure transport such as 
         SSH <xref target="RFC5592"></xref> or 
         TLS/DTLS <xref target="RFC6353"></xref>.</t>

      <t>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.</t>
    </section>


    <section title="IANA Considerations">

      <t>Editor's Note (to be removed prior to publication): 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.
            
            Note well: prior to official assignment by the IANA, a draft document	
            MUST use placeholders (such as "XXXX" above) rather than actual
            numbers. See RFC4181 Section 4.5 for an example of how this is done
            in a draft MIB module.</t>
    </section>

    <!-- The Author's Addresses section will be generated 
         automatically by XML2RFC from the front information -->


    <section title="Acknowledgements">
      
      <t>This MIB document uses the 
      template authored by D. Harrington which is
      based on contributions from the MIB Doctors,
      especially Juergen Schoenwaelder, Dave Perkins, C.M.Heard and Randy
      Presuhn.</t>
    </section>

  </middle>

  <back>


    <references title="Normative References">

      <reference anchor='RFC2119'>
        <front>
          <title abbrev='RFC Key Words'>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author initials='S.' surname='Bradner' fullname='Scott Bradner'>
            <organization>Harvard University</organization></author>
          <date year='1997' month='March' />
        </front>
        <seriesInfo name='BCP' value='14' />
        <seriesInfo name='RFC' value='2119' />
        <format type='TXT' octets='4723' target='http://tools.ietf.org/rfc/rfc2119.txt' />
      </reference>
     

      <reference anchor='RFC2578'>
        <front>
          <title abbrev='SMIv2'>Structure of Management Information Version 2 (SMIv2)</title>
          <author initials='K.' surname='McCloghrie' fullname='Keith McCloghrie' role='editor'>
            <organization></organization></author>
          <author initials='D.' surname='Perkins' fullname='David Perkins' role='editor'>
            <organization></organization></author>
          <author initials='J.' surname='Schoenwaelder' fullname='Juergen Schoenwaelder' role='editor'>
            <organization></organization></author>
          <date year='1999' month='April' />
        </front>
        <seriesInfo name='STD' value='58' />
        <seriesInfo name='RFC' value='2578' />
        <format type='TXT' octets='89712' target='http://tools.ietf.org/rfc/rfc2578.txt' />
      </reference>



      <reference anchor='RFC2579'>
        <front>
          <title>Textual Conventions for SMIv2</title>
          <author initials='K.' surname='McCloghrie' fullname='Keith McCloghrie' role='editor'>
            <organization>Cisco Systems, Inc.</organization></author>
          <author initials='D.' surname='Perkins' fullname='David Perkins' role='editor'>
            <organization>SNMPinfo</organization></author>
          <author initials='J.' surname='Schoenwaelder' fullname='Juergen Schoenwaelder' role='editor'>
            <organization>TU Braunschweig</organization></author>
          <date year='1999' month='April' />
        </front>
        <seriesInfo name='STD' value='58' />
        <seriesInfo name='RFC' value='2579' />
        <format type='TXT' octets='59039' target='http://tools.ietf.org/rfc/rfc2579.txt' />
      </reference>



      <reference anchor='RFC2580'>
        <front>
          <title>Conformance Statements for SMIv2</title>
          <author initials='K.' surname='McCloghrie' fullname='Keith McCloghrie'>
            <organization>Cisco Systems, Inc.</organization></author>
          <author initials='D.' surname='Perkins' fullname='David Perkins'>
            <organization>SNMPinfo</organization></author>
          <author initials='J.' surname='Schoenwaelder' fullname='Juergen Schoenwaelder'>
            <organization>TU Braunschweig</organization></author>
          <date year='1999' month='April' /></front>
         <seriesInfo name='STD' value='58' />
         <seriesInfo name='RFC' value='2580' />
         <format type='TXT' octets='54253' target='http://tools.ietf.org/rfc/rfc2580.txt' />
      </reference>
      
     <reference anchor='RFC2863'>
        <front>
          <title>The Interfaces Group MIB</title>
          <author initials='K.' surname='McCloghrie' fullname='K. McCloghrie'>
            <organization /></author>
          <author initials='F.' surname='Kastenholz' fullname='F. Kastenholz'>
            <organization /></author>
          <date year='2000' month='June' />
        </front>
       <seriesInfo name='RFC' value='2863' />
       <format type='TXT' octets='155014' target='http://tools.ietf.org/rfc/rfc2863.txt' />
     </reference>


     <reference anchor='RFC3418'>
       <front>
         <title>Management Information Base (MIB) for the Simple Network Management Protocol (SNMP)</title>
         <author initials='R.' surname='Presuhn' fullname='R. Presuhn'>
           <organization /></author>
         <date year='2002' month='December' />
       </front>
       <seriesInfo name='STD' value='62' />
       <seriesInfo name='RFC' value='3418' />
       <format type='TXT' octets='49096' target='http://tools.ietf.org/rfc/rfc3418.txt' />
     </reference>


    
      <reference anchor='RFC4001'>
        <front>
          <title>Textual Conventions for Internet Network Addresses</title>
          <author initials='M.' surname='Daniele' fullname='M. Daniele'>
             <organization /></author>
          <author initials='B.' surname='Haberman' fullname='B. Haberman'>                    
             <organization /></author>
          <author initials='S.' surname='Routhier' fullname='S. Routhier'>
             <organization /></author>
          <author initials='J.' surname='Schoenwaelder' fullname='J. Schoenwaelder'>
             <organization /></author>
          <date year='2005' month='February' />
        </front>
        <seriesInfo name='RFC' value='4001' />
        <format type='TXT' octets='26379' target='http://tools.ietf.org/rfc/rfc4001.txt' />
     </reference>
      
      
     <reference anchor="LOADng">
        <front>
          <title>The LLN On-demand Ad hoc Distance-vector Routing Protocol - Next Generation (LOADng)</title>
          <author initials="T." surname="Clausen">
            <organization></organization>
          </author>
          <author initials="A." surname="Colin de Verdiere">
            <organization></organization>
          </author>
          <author initials="A." surname="Niktash">
            <organization></organization>
          </author>
          <author initials="Y." surname="Igarashi">
            <organization></organization>
          </author>
          <author initials="H." surname="Satoh">
            <organization></organization>
          </author>
          <author initials="U." surname="Herberg">
            <organization></organization>
          </author>
          <author initials="C." surname="Lavenu">
            <organization></organization>
          </author>
          <author initials="T." surname="Lys">
            <organization></organization>
          </author>
          <date month="April" year="2012" />
        </front>
        <seriesInfo name='work in progress' value='draft-clausen-lln-loadng-05' />
      </reference>

      
    </references>



    <references title="Informative References">
     
      <reference anchor='RFC3410'>
        <front>
          <title>Introduction and Applicability Statements for Internet-Standard Management Framework</title>
          <author initials='J.' surname='Case' fullname='J. Case'>
            <organization /></author>
          <author initials='R.' surname='Mundy' fullname='R. Mundy'>
            <organization /></author>
          <author initials='D.' surname='Partain' fullname='D. Partain'>
            <organization /></author>
          <author initials='B.' surname='Stewart' fullname='B. Stewart'>
            <organization /></author>
          <date year='2002' month='December' />
        </front>
        <seriesInfo name='RFC' value='3410' />
        <format type='TXT' octets='61461' target='http://tools.ietf.org/rfc/rfc3410.txt' />
      </reference>
      
      <reference anchor='RFC3561'>
        <front>
          <title>Ad hoc On-Demand Distance Vector (AODV) Routing</title>
          <author initials='C.' surname='Perkins'>
            <organization /></author>
          <author initials='E.' surname='Belding-Royer'>
            <organization /></author>
          <author initials='S.' surname='Das'>
            <organization /></author>
          <date year='2003' month='July' />
        </front>
        <seriesInfo name='RFC' value='3561' />
        <format type='TXT' octets='61461' target='http://tools.ietf.org/rfc/rfc3561.txt' />
      </reference>
	
	  <reference anchor="RFC3414">
       <front>
         <title>User-based Security Model (USM) for version 3 of the Simple Network Management Protocol (SNMPv3)</title>
         <author initials="U." surname="Blumenthal" fullname="U. Blumenthal"> 
           <organization/></author>
         <author initials="B." surname="Wijnen" fullname="B. Wijnen">
           <organization/></author>
         <date year="2002" month="December"/>
       </front>
       <seriesInfo name="STD" value="62"/>
       <seriesInfo name="RFC" value="3414"/>
       <format type="TXT" octets="193558" target="http://www.rfc-editor.org/rfc/rfc3414.txt"/>
     </reference>

     <reference anchor="RFC3826">
       <front>
         <title>The Advanced Encryption Standard (AES) Cipher Algorithm in the SNMP User-based Security Model</title>
         <author initials="U." surname="Blumenthal" fullname="U. Blumenthal">
           <organization/></author>
         <author initials="F." surname="Maino" fullname="F. Maino">
           <organization/></author>
         <author initials="K." surname="McCloghrie" fullname="K. McCloghrie">
           <organization/></author>
         <date year="2004" month="June"/>
       </front>
       <seriesInfo name="RFC" value="3826"/>
       <format type="TXT" octets="32821" target="http://www.rfc-editor.org/rfc/rfc3826.txt"/>
      </reference>

      <reference anchor="RFC5591">
       <front>
         <title>Transport Security Model for the Simple Network Management Protocol (SNMP)</title>
         <author initials="D." surname="Harrington" fullname="D. Harrington">
           <organization/></author>
         <author initials="W." surname="Hardaker" fullname="W. Hardaker">
           <organization/></author>
         <date year="2009" month="June"/>
       </front>
       <seriesInfo name="RFC" value="5591"/>
       <format type="TXT" octets="61747" target="http://www.rfc-editor.org/rfc/rfc5591.txt"/>
     </reference>      


     <reference anchor="RFC5592">
       <front>
         <title>Secure Shell Transport Model for the Simple Network Management Protocol (SNMP)</title>
         <author initials="D." surname="Harrington" fullname="D. Harrington">
           <organization/></author>
         <author initials="J." surname="Salowey" fullname="J. Salowey">
           <organization/></author>
         <author initials="W." surname="Hardaker" fullname="W. Hardaker">
           <organization/></author>
         <date year="2009" month="June"/>
       </front>
       <seriesInfo name="RFC" value="5592"/>
       <format type="TXT" octets="82822" target="http://www.rfc-editor.org/rfc/rfc5592.txt"/>
     </reference>

     <reference anchor="RFC6353">
       <front>
         <title>Transport Layer Security (TLS) Transport Model for the Simple Network Management Protocol (SNMP)</title>
         <author initials="W." surname="Hardaker" fullname="W. Hardaker">
           <organization/></author>
         <date year="2011" month="July"/>
       </front>
       <seriesInfo name="RFC" value="6353"/>
       <format type="TXT" octets="148571" target="http://www.rfc-editor.org/rfc/rfc6353.txt"/>
     </reference>
      
 
    </references>

	<section title="">
       <figure>
          <preamble></preamble>

          <artwork>
***************************************************************
* Note to the RFC Editor (to be removed prior to publication) *
*                                                             *
* The reference to RFCXXXX within the DESCRIPTION clauses     *
* of the MIB module point to this draft and are to be         *
* assigned by the RFC Editor.                                 *
*                                                             *
***************************************************************
          </artwork>
          <postamble></postamble>
       </figure>
    </section>

  </back>
</rfc>
