TOC 
Internet Engineering Task ForceU. Herberg
Internet-DraftLIX, Ecole Polytechnique
Intended status: Standards TrackR. Cole
Expires: July 7, 2011US Army CERDEC
 T. Clausen
 LIX, Ecole Polytechnique
 January 3, 2011


Definition of Managed Objects for the Optimized Link State Routing Protocol version 2
draft-ietf-manet-olsrv2-mib-03

Abstract

This memo defines the Management Information Base (MIB) for configuring and managing the Optimized Link State Routing protocol version 2 (OLSRv2). The Optimized Link State Routing MIB is structured into state information, performance metrics, and notifications. This additional state and performance information is useful to troubleshoot problems and performance issues of the routing protocol. Different levels of compliance allow implementers to use smaller subsets of all defined objects, allowing for this MIB to be deployed on more constrained routers.

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 July 7, 2011.

Copyright Notice

Copyright (c) 2011 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 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
2.  The Internet-Standard Management Framework
3.  Conventions
4.  Overview
    4.1.  Terms
5.  Structure of the MIB Module
    5.1.  The Configuration Group
    5.2.  The State Group
    5.3.  The Performance Group
        5.3.1.  Recalculation Performance Objects
        5.3.2.  Message-related Performance Objects
    5.4.  The Notifications Group
6.  Relationship to Other MIB Modules
    6.1.  Relationship to the SNMPv2-MIB
    6.2.  Relationship to the NHDP-MIB
    6.3.  Relationship to the REPORT-MIB
    6.4.  MIB modules required for IMPORTS
7.  Definitions
8.  Security Considerations
9.  IANA Considerations
10.  References
    10.1.  Normative References
    10.2.  Informative References
Appendix A.  Change Log
Appendix B.  Open Issues
Appendix C.  Note to the RFC Editor




 TOC 

1.  Introduction

This memo defines the Management Information Base (MIB) for configuring and managing the Optimized Link State Routing protocol version 2 (OLSRv2). The Optimized Link State Routing MIB is structured into state information, performance metrics, and notifications. In addition to configuration, this additional state and performance information is useful to troubleshoot problems and performance issues of the routing protocol. Different levels of compliance allow implementers to use smaller subsets of all defined objects, allowing for this MIB to be deployed on more constrained routers.



 TOC 

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 [RFC3410] (Case, J., Mundy, R., Partain, D., and B. Stewart, “Introduction and Applicability Statements for Internet-Standard Management Framework,” December 2002.).

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 [RFC2578] (McCloghrie, K., Ed., Perkins, D., Ed., and J. Schoenwaelder, Ed., “Structure of Management Information Version 2 (SMIv2),” April 1999.), [RFC2579] (McCloghrie, K., Ed., Perkins, D., Ed., and J. Schoenwaelder, Ed., “Textual Conventions for SMIv2,” April 1999.), and [RFC2580] (McCloghrie, K., Perkins, D., and J. Schoenwaelder, “Conformance Statements for SMIv2,” April 1999.).



 TOC 

3.  Conventions

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 [RFC2119] (Bradner, S., “Key words for use in RFCs to Indicate Requirement Levels,” March 1997.).



 TOC 

4.  Overview

The Optimized Link State Routing Protocol version 2 (OLSRv2) [OLSRv2] (Clausen, T., Dearlove, C., and P. Jacquet, “The Optimized Link State Routing Protocol version 2,” April 2010.) is a table driven, proactive routing protocol, i.e. it exchanges topology information with other routers in the network regularly. OLSRv2 is an optimization of the classical link state routing protocol. Its key concept is that of MultiPoint Relays (MPRs). Each router selects a set of its neighbor routers (which "cover" all of its symmetrically connected 2-hop neighbor routers) as MPRs. MPRs are then used to achieve both flooding reduction and topology reduction.

This MIB document provides management and control capabilities of an OLSRv2 instance, allowing to monitor the state and performance of an OLSRV2 router, as well as to change settings of the deployment.

As OLSRv2 relies on the neighborhood information discovered by NHDP [NHDP] (Clausen, T., Dearlove, C., and J. Dean, “Mobile Ad Hoc Network (MANET) Neighborhood Discovery Protocol (NHDP),” July 2010.), the OLSRv2-MIB is aligned with the NHDP-MIB (Herberg, U., Cole, R., and I. Chakeres, “Definition of Managed Objects for the Neighborhood Discovery Protocol,” July 2010.) [NHDP‑MIB]. In particular, common indexes for router interfaces and discovered neighbors are used, as described in Section 5.2 (The State Group).



 TOC 

4.1.  Terms

The following definitions apply throughout this document:

  • Configuration Objects - switches, tables, objects which are initialized to default settings or set through the management interface defined by this MIB.
  • State Objects - automatically generated values which define the current operating state of the OLSRv2 protocol process in the router.
  • Performance Objects - automatically generated values which help an administrator or automated tool to assess the performance of the OLSRv2 routing process on the router.
  • Notification Objects - define triggers and associated notification messages allowing for asynchronous tracking of pre-defined events on the managed router.


 TOC 

5.  Structure of the MIB Module

This section presents the structure of the OLSRv2-MIB module. The objects are arranged into the following structure:

  • olsrv2Objects - defines objects forming the basis for the OLSRv2-MIB. These objects are divided up by function into the following groups:
    • Configuration Group - defining objects related to the configuration of the OLSRv2 instance on the router.
    • State Group - defining objects which reflect the current state of the OLSRv2 instance running on the router.
    • Performance Group -defining objects which are useful to a management station when characterizing the performance of OLSRv2 on the router and in the MANET.
  • olsrv2Notifications - objects defining OLSRv2-MIB notifications.
  • olsrv2Conformance - defining the minimal and maximal conformance requirements for implementations of this MIB.


 TOC 

5.1.  The Configuration Group

The OLSRv2 router is configured with a set of controls. The authoritative list of configuration controls within the OLSRv2-MIB are found within the MIB module itself. Generally, an attempt was made in developing the OLSRv2-MIB module to support all configuration objects defined in [OLSRv2] (Clausen, T., Dearlove, C., and P. Jacquet, “The Optimized Link State Routing Protocol version 2,” April 2010.). For all of the configuration parameters, the same constraints and default values of these parameters as defined in [OLSRv2] (Clausen, T., Dearlove, C., and P. Jacquet, “The Optimized Link State Routing Protocol version 2,” April 2010.) are followed.



 TOC 

5.2.  The State Group

The State Group reports current state information of a router running [OLSRv2] (Clausen, T., Dearlove, C., and P. Jacquet, “The Optimized Link State Routing Protocol version 2,” April 2010.). The OLSRv2-MIB State Group tables were designed to contain the complete set of state information defined within the information bases in [OLSRv2] (Clausen, T., Dearlove, C., and P. Jacquet, “The Optimized Link State Routing Protocol version 2,” April 2010.).

The OLSRv2-MIB State Group tables are constructed as extensions to the corresponding tables within the State Group of the NHDP-MIB (Herberg, U., Cole, R., and I. Chakeres, “Definition of Managed Objects for the Neighborhood Discovery Protocol,” July 2010.) [NHDP‑MIB]. Further, the State Group tables defined in this MIB are aligned with the according tables in the NHDP-MIB (Herberg, U., Cole, R., and I. Chakeres, “Definition of Managed Objects for the Neighborhood Discovery Protocol,” July 2010.) [NHDP‑MIB], as described in Section 6.2 (Relationship to the NHDP-MIB).



 TOC 

5.3.  The Performance Group

The Performance Group reports values relevant to system performance. This section lists objects for OLSRv2 performance monitoring, some of which explicitly appear in the OLSRv2-MIB and others which are obtainable through a combination of base objects from this MIB and reports available through the REPORT-MIB (Cole, R., Macker, J., and A. Morton, “Definition of Managed Objects for Performance Reporting,” July 2010.) [REPORT]. Throughout this section, those objects will be pointed out that are intended as base objects, which are explicitly defined within the OLSRv2-MIB and those objects which are derived through a combination of the base objects within the OLSRv2-MIB and capabilities afforded by the REPORT-MIB.

The objects in this group can be used to examine stability of the Routing Set, the selected MPRs, as well as message scheduling of this router.



 TOC 

5.3.1.  Recalculation Performance Objects

The following objects return statistics to the frequency of Routing Set recalculations.

  • Number of Routing Set recalculations
    This object counts each recalculation of the Routing Set.
    This is a Base Object.
    Object name: olsrv2RoutingSetRecalculationCount
    Object type: Counter32
  • Acquire history of Routing Set recalculations
    This object returns the history of the exact timestamps of each time the Routing Set has been recalculated.
    This is a Derived Object to be pulled from the REPORT-MIB. It is derived from, e.g., the olsrv2RoutingSetRecalculationCount Base Object from the OLSRv2-MIB along with the capabilities derived from the reportHistoryGroup from the REPORT-MIB.
  • Histogram of the intervals between Routing Set recalculations
    Returns the values that represent a histogram of intervals between Routing Set recalculations.
    This is a Derived Object to be pulled from the REPORT-MIB. It can be derived from, e.g., the olsrv2RoutingSetRecalculationCount Base Object from the OLSRv2-MIB along with the capabilities derived from the reportHistoryGroup from the REPORT-MIB. The network management application could convert this information into the desired histogram.
  • Changes of the frequency of the Routing Set recalculations
    This object will divide the given time interval from t0 to t1 into a given number of equal parts. It then creates a histogram for each part and calculate the distances (using the Bhattacharyya distance) between each two adjacent histograms in time. A higher value between two histograms means more difference between the histograms.
    This is a Derived Object to be pulled from the REPORT-MIB, as previously discussed, albeit this is a bit more complex with respect to the management application.

The following objects return statistics to the frequency of recalculating the MPRs of this router.

  • Number of MPR recalculations
    This object counts each recalculation of the MPRs of the router.
    This is a Base Object.
    Object name: olsrv2MPRSetRecalculationCount
    Object type: Counter32
  • Acquire history of MPR recalculations
    This object returns the history of the exact timestamps of each time the MPRs have been recalculated.
    This is a Derived Object to be pulled from the REPORT-MIB. It is derived from, e.g., the olsrv2MPRSetRecalculationCount Base Object from the OLSRv2-MIB along with the capabilities derived from the reportHistoryGroup from the REPORT-MIB.
  • Histogram of the intervals between MPR recalculations
    Returns the values that represent a histogram of intervals between MPR recalculations. The histogram includes all changes that have been made after the given time t0 and before the given time t1.
    This is a Derived Object to be pulled from the REPORT-MIB. It can be derived from, e.g., the olsrv2MPRSetRecalculationCount Base Object from the OLSRv2-MIB along with the capabilities derived from the reportHistoryGroup from the REPORT-MIB. The network management application could convert this information into the desired histogram.
  • Changes of the frequency of MPR recalculations
    This object will divide the given time interval from t0 to t1 into a given number of equal parts. It then creates a histogram for each part and calculate the distances (using the Bhattacharyya distance) between each two adjacent histograms in time. A higher value between two histograms means more difference between the histograms.
    This is a Derived Object to be pulled from the REPORT-MIB, as previously discussed, albeit this is a bit more complex with respect to the management application.



 TOC 

5.3.2.  Message-related Performance Objects

The following objects return some of the statistics related to TC messages:

  • Total number of sent TC messages on an interface
    This is a Base Object.
    Object name: olsrv2IfTcMessageXmits
    Object type: Counter32
  • Total number of received TC messages on an interface
    This is a Base Object.
    Object name: olsrv2IfTcMessageRecvd
    Object type: Counter32
  • Total number of sent periodic TC messages on an interface
    This is a Base Object.
    Object name: olsrv2IfTcMessagePeriodicXmits
    Object type: Counter32
  • Total number of sent triggered TC messages on an interface
    This is a Base Object.
    Object name: olsrv2IfTcMessageTriggeredXmits
    Object type: Counter32
  • Total number of forwarded TC messages on an interface
    This is a Base Object.
    Object name: olsrv2IfTcMessageForwardedXmits
    Object type: Counter32
  • Acquire history of TC message scheduling instance for the given time duration on an interface
    This object returns the history of the exact timestamps of each TC message that has been sent as well as the type of the message (triggered or periodical). The list of events starts at the given point of time t0 and ends at the given time t1.
    This is a Derived Object to be pulled from the REPORT-MIB. It is derived from, e.g., the olsrv2IfTcMessagePeriodicXmits and olsrv2IfTcMessageTriggeredXmits Base Objects from the OLSRv2-MIB along with the capabilities derived from the reportHistoryGroup from the REPORT-MIB.
  • Histogram of the intervals between TC messages on an interface
    Returns the values (in a 2-dimensional array) that represent a histogram of intervals between TC messages, separated by periodic and triggered TC. The histogram displays the distribution of intervals between two consecutive TC of the same type (triggered or periodical) using a given bin size. It includes all TC that have been sent after the given time t0 and before the given time t1.
    This is a Derived Object to be pulled from the REPORT-MIB. It can be derived from, e.g., the olsrv2IfTcMessagePeriodicXmits and olsrv2IfTcMessageTriggeredXmits Base Objects from the OLSRv2-MIB along with the capabilities derived from the reportHistoryGroup from the REPORT-MIB. The network management application could convert this information into the desired histogram.
  • Changes of the frequency of the message scheduling on an interface
    This object will divide the given time interval from t0 to t1 into a given number of equal parts. It then creates a histogram for each part and calculate the distances (using the Bhattacharyya distance) between each two adjacent histograms in time. A higher value between two histograms means more difference between the histograms. For instance, that could happen if suddenly many triggered TC messages are sent, whereas before there have been only very few such triggered messages.
    This is a Derived Object to be pulled from the REPORT-MIB, as previously discussed, albeit this is a bit more complex with respect to the management application.
  • Average number of sent TC messages per second between the given time t0 and t1 on an interface
    This is a Derived Object to be pulled from the reportSampledGroup from the REPORT-MIB. It is derived from, e.g., the olsrv2IfTcMessageXmits Base Object.
  • Average number of received TC messages per second between the given time t0 and t1 on an interface
    This is a Derived Object to be pulled from the REPORT-MIB. See the previous discussion.
  • Total accumulated size in octets of sent TC messages on an interface
    This is a Base Object.
    Object name: olsrv2IfHelloMessageXmitAccumulatedSize
    Object type: Counter32
  • Total accumulated size in octets of received TC messages on an interface
    This is a Base Object.
    Object name: olsrv2IfHelloMessageRecvdAccumulatedSize
    Object type: Counter32
  • Average size in octets of sent TC messages per second between the given time t0 and t1 on an interface
    This is a Derived Object to be pulled from the REPORT-MIB. See the previous discussion.
  • Average size in octets of received TC messages per second between the given time t0 and t1 on an interface
    This is a Derived Object to be pulled from the REPORT-MIB. See the previous discussion.
  • Total accumulated number of advertised MPR selectors in TC messages on an interface
    This is a Base Object.
    Object name: olsrv2IfHelloMessageXmitAccumulatedSymmetricNeighborCount
    Object type: Counter32



 TOC 

5.4.  The Notifications Group

The Notifications Subtree contains the list of notifications supported within the OLSRv2-MIB and their intended purpose or utility.

The same mechanisms for improving the network performance by reducing the number of notifications apply as defined in Section 5.4 of [NHDP‑MIB] (Herberg, U., Cole, R., and I. Chakeres, “Definition of Managed Objects for the Neighborhood Discovery Protocol,” July 2010.). The Notifications Group contains Control, Objects and States, where the Control contains definitions of objects to control the frequency of notifications being sent. The Objects define the supported notifications and the State is used to define additional information to be carried within the notifications.



 TOC 

6.  Relationship to Other MIB Modules

This section specifies the relationship of the MIB modules 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.



 TOC 

6.1.  Relationship to the SNMPv2-MIB

The 'system' group in the SNMPv2-MIB [RFC3418] (Presuhn, R., “Management Information Base (MIB) for the Simple Network Management Protocol (SNMP),” December 2002.) 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 OLSRv2-MIB does not duplicate those objects.



 TOC 

6.2.  Relationship to the NHDP-MIB

OLSRv2 depends on the neighborhood information that is discovered by [NHDP] (Clausen, T., Dearlove, C., and J. Dean, “Mobile Ad Hoc Network (MANET) Neighborhood Discovery Protocol (NHDP),” July 2010.). In order access the Objects relating to discovered neighbors, the State Group tables of the NHDP-MIB [NHDP‑MIB] (Herberg, U., Cole, R., and I. Chakeres, “Definition of Managed Objects for the Neighborhood Discovery Protocol,” July 2010.) are aligned with this MIB. This is accomplished through the definition of two TEXTUAL-CONVENTIONS in the NHDP-MIB: the NeighborInterfaceId and the NeighborRouterId. These object types are used to develop indexes into common NHDP-MIB and routing protocol State Group tables. These objects are locally significant but should be locally common to the NHDP-MIB and the OLSRv2-MIB implemented on a common networked router. This will allow for improved cross referencing of information across the two MIBs.



 TOC 

6.3.  Relationship to the REPORT-MIB

This document describes several Performance Management metrics for the management of OLSRv2 routers. However, not all of these metrics are explicitly defined solely within the context of this OLSRv2-MIB. Some of these metrics are obtained through joint interaction between this MIB and the REPORT-MIB [REPORT]. This OLSRv2-MIB defines the minimum necessary objects (often of type COUNTER) which form the underlying basis for more sophisticated Performance Management reporting available in conjunction with the REPORT-MIB. See Section 5.3 (The Performance Group) for a description of the performance metrics for OLSRv2.



 TOC 

6.4.  MIB modules required for IMPORTS

The following OLSRv2-MIB module IMPORTS objects from NHDP-MIB [NHDP‑MIB] (Herberg, U., Cole, R., and I. Chakeres, “Definition of Managed Objects for the Neighborhood Discovery Protocol,” July 2010.), SNMPv2-SMI [RFC2578] (McCloghrie, K., Ed., Perkins, D., Ed., and J. Schoenwaelder, Ed., “Structure of Management Information Version 2 (SMIv2),” April 1999.), SNMPv2-TC [RFC2579] (McCloghrie, K., Ed., Perkins, D., Ed., and J. Schoenwaelder, Ed., “Textual Conventions for SMIv2,” April 1999.), SNMPv2-CONF [RFC2580] (McCloghrie, K., Perkins, D., and J. Schoenwaelder, “Conformance Statements for SMIv2,” April 1999.), IF-MIB [RFC2863] (McCloghrie, K. and F. Kastenholz, “The Interfaces Group MIB,” June 2000.), INET-ADDRESS-MIB [RFC4001] (Daniele, M., Haberman, B., Routhier, S., and J. Schoenwaelder, “Textual Conventions for Internet Network Addresses,” February 2005.), and SMIng [RFC3781] (Strauss, F. and J. Schoenwaelder, “Next Generation Structure of Management Information (SMIng) Mappings to the Simple Network Management Protocol (SNMP),” May 2004.).



 TOC 

7.  Definitions

This section contains the MANET-OLSRv2-MIB module defined by the specification.


   MANET-OLSRv2-MIB DEFINITIONS ::= BEGIN

   IMPORTS
      MODULE-IDENTITY, OBJECT-TYPE, Counter32,
      Integer32, Unsigned32, mib-2, TimeTicks,
      NOTIFICATION-TYPE
               FROM SNMPv2-SMI --[RFC2578]

      TimeStamp, TruthValue, RowStatus
               FROM SNMPv2-TC --[RFC2579]

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

      InetAddressType, InetAddress,
      InetAddressPrefixLength
               FROM INET-ADDRESS-MIB --[RFC3291]

      InterfaceIndexOrZero
               FROM IF-MIB --[RFC2863]

      Float32TC
               FROM FLOAT-TC-MIB --[RFCXXXX]

      NeighborRouterId
               FROM NHDP-MIB -- [draft-ietf-manet-nhdp-mib]
      ;

   manetOlsrv2MIB MODULE-IDENTITY
      LAST-UPDATED "201101021000Z"   -- January 02, 2011
      ORGANIZATION "IETF MANET Working Group"
      CONTACT-INFO
         "WG E-Mail: manet@ietf.org

          WG Chairs: ian.chakeres@gmail.com
                     jmacker@nrl.navy.mil


          Editors:   Ulrich Herberg
                     Ecole Polytechnique
                     LIX
                     91128 Palaiseau Cedex
                     France
                     +33 1 69 33 41 26
                     ulrich@herberg.name
                     http://www.herberg.name/

                     Thomas Heide Clausen
                     Ecole Polytechnique
                     LIX
                     91128 Palaiseau Cedex
                     France
                     http://www.thomasclausen.org/
                     T.Clausen@computer.org

                     Robert G. Cole
                     US Army CERDEC
                     Space and Terrestrial Communications
                     328 Hopkins Road
                     Bldg 245, Room 16
                     Aberdeen Proving Ground, MD 21005
                     USA
                     +1 410 278-6779
                     robert.g.cole@us.army.mil
                     http://www.cs.jhu.edu/~rgcole/"

      DESCRIPTION
         "This MIB module contains managed object definitions
          for the Manet OLSRv2 routing process defined in the
          Optimized Link State Routing Protocol version 2
          defined in [RFCXXXX].

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

        -- Revision History
        REVISION    "201101021000Z"   -- Jan 02, 2011
        DESCRIPTION
         "The sixth version of this MIB module,
          published as draft-ietf-manet-olsrv2-mib-03.txt.
          Changes made in this version include
          the addition of the NotificationGroup,
          updates to the ConformanceGroup and
          fixes discovered from running smilint.
          Finally, added the olsrv2OrigIpAddrType and
          olsrv2OrigIpAddr objects to the
          Configuration Group to identify
          this OLSRv2 router."
        REVISION    "201007121000Z"   -- July 12, 2010
        DESCRIPTION
         "The fifth version of this MIB module,
          published as draft-ietf-manet-olsrv2-mib-02.txt.
          Many editorial changes, Security Considerations,
          corrected errors in the MIB."
        REVISION    "200911091000Z"   -- Nov 9, 2009
        DESCRIPTION
         "The fourth version of this MIB module,
          published as draft-ietf-manet-olsrv2-mib-01.txt.
          Added Performance objects, and updated to newest
          OLSRv2 draft."
        REVISION    "200905031300Z"   -- May 3, 2009
        DESCRIPTION
           "Third draft of this MIB module published as
            draft-ietf-manet-olsrv2-mib-00.txt. Rev'd
            as a new MANET WG document.  Cleaned up SYNTAX
            errors and other typos found by 'smilint'."
        REVISION    "200902151300Z"   -- February 15, 2009
        DESCRIPTION
           "Second draft of this MIB module published as
            draft-cole-manet-olsrv2-mib-01.txt.  Cleaned up
            table indexing and aligned with the NHDP-MIB
            draft (draft-cole-manet-nhdp-mib-01.txt)."
        REVISION    "200810241300Z"   -- October 24, 2008
        DESCRIPTION
           "Initial draft of this MIB module published as
            draft-cole-manet-olsrv2-mib-00.txt."
        -- RFC-Editor assigns XXXX
        ::= { mib-2 998 }   -- to be assigned by IANA


   --
   -- TEXTUAL CONVENTIONs
   --

   -- none


   --
   -- Top-Level Object Identifier Assignments
   --

   olsrv2MIBNotifications OBJECT IDENTIFIER ::= { manetOlsrv2MIB 0 }
   olsrv2MIBObjects       OBJECT IDENTIFIER ::= { manetOlsrv2MIB 1 }
   olsrv2MIBConformance   OBJECT IDENTIFIER ::= { manetOlsrv2MIB 2 }

   --
   -- olsrv2ConfigurationGroup
   --
   --    Contains the OLSRv2 objects that configure specific
   --    options that determine the overall performance and operation
   --    of the OLSRv2 routing process.
   --

   olsrv2ConfigurationGroup OBJECT IDENTIFIER ::= {olsrv2MIBObjects 1}


    olsrv2OrigIpAddrType  OBJECT-TYPE
       SYNTAX      InetAddressType
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "The type of the olsrv2OrigIpAddr, as defined
           in the InetAddress MIB [RFC 4001].

           This object is persistent and when written
           the entity SHOULD save the change to
           non-volatile storage.
          "
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2ConfigurationGroup 1 }

    olsrv2OrigIpAddr  OBJECT-TYPE
       SYNTAX      InetAddress
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "An address which is unique (within the MANET)
           to a router.  A router MUST select an
           originator address; it MAY choose one of
           its interface addresses as its originator
           address.  If it selects a routable address
           then this MUST be one which this router will
           accept as destination.  An originator address
           MUST NOT have a prefix length, except for
           when included in an Address Block where it MAY
           be associated with a prefix of maximum prefix
           length (e.g., if the originator address is an
           IPv6 address, it MUST have either no prefix
           length, or have a prefix length of 128).
           An originator address may be a routable or
           non-routable address.

           This object is persistent and when written
           the entity SHOULD save the change to
           non-volatile storage.
       "
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2ConfigurationGroup 2 }

   --
   -- Local history times
   --

   olsrv2OHoldTime  OBJECT-TYPE
      SYNTAX      Unsigned32
      UNITS       "milliseconds"
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "olsrv2OHoldTime corresponds to
         O_HOLD_TIME of OLSRv2.

         This object is persistent and when written
         the entity SHOULD save the change to
         non-volatile storage."
      REFERENCE
         "The OLSRv2 draft.
          Section 5 on Protocol Parameters."
      DEFVAL { 30000 }
   ::= { olsrv2ConfigurationGroup 3 }


   --
   -- Message intervals
   --

   olsrv2TcInterval  OBJECT-TYPE
      SYNTAX      Unsigned32
      UNITS       "milliseconds"
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "olsrv2TcInterval corresponds to
         TC_INTERVAL of OLSRv2.

         The following constraints apply to this
         parameter:

             olsrv2TcInterval > 0
             olsrv2TcInterval >= olsrv2TcMinInterval

         This object is persistent and when written
         the entity SHOULD save the change to
         non-volatile storage."
      REFERENCE
         "The OLSRv2 draft.
          Section 5 on Protocol Parameters."
      DEFVAL { 5000 }
   ::= { olsrv2ConfigurationGroup 4 }

   olsrv2TcMinInterval  OBJECT-TYPE
      SYNTAX      Unsigned32
      UNITS       "milliseconds"
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "olsrv2TcMinInterval corresponds to
         TC_MIN_INTERVAL of OLSRv2.

         The following constraint applies to this
         parameter:

             olsrv2TcInterval >= olsrv2TcMinInterval


         This object is persistent and when written
         the entity SHOULD save the change to
         non-volatile storage."
      REFERENCE
         "The OLSRv2 draft.
          Section 5 on Protocol Parameters."
      DEFVAL { 1250 }
   ::= { olsrv2ConfigurationGroup 5 }


   --
   -- Advertised information validity times
   --

   olsrv2THoldTime  OBJECT-TYPE
      SYNTAX      Unsigned32
      UNITS       "milliseconds"
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "olsrv2THoldTime corresponds to
         T_HOLD_TIME of OLSRv2.

         The following constraint applies to this
         parameter:

             olsrv2THoldTime >= olsrv2TcInterval

         If TC messages can be lost, then
         olsrv2THoldTime SHOULD be
         significantly greater than olsrv2TcInterval;
         a value >= 3 x olsrv2TcInterval is RECOMMENDED.

         olsrv2THoldTime MUST be representable as
         described in [timetlv].

         This object is persistent and when written
         the entity SHOULD save the change to
         non-volatile storage."
      REFERENCE
         "The OLSRv2 draft.
          Section 5 on Protocol Parameters."
      DEFVAL { 15000 }
   ::= { olsrv2ConfigurationGroup 6 }

   olsrv2AHoldTime  OBJECT-TYPE
      SYNTAX      Unsigned32
      UNITS       "milliseconds"
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "olsrv2AHoldTime corresponds to
         A_HOLD_TIME of OLSRv2.

         If TC messages can be lost, then
         olsrv2AHoldTime SHOULD be
         significantly greater than olsrv2TcInterval;
         a value >= 3 x olsrv2TcInterval is
         RECOMMENDED.

         olsrv2AHoldTime MUST be representable as
         described in [timetlv].

         This object is persistent and when written
         the entity SHOULD save the change to
         non-volatile storage."
      REFERENCE
         "The OLSRv2 draft.
          Section 5 on Protocol Parameters."
      DEFVAL { 15000 }
   ::= { olsrv2ConfigurationGroup 7 }

   --
   -- Received message validity times
   --

   olsrv2RxHoldTime  OBJECT-TYPE
      SYNTAX      Unsigned32
      UNITS       "milliseconds"
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "olsrv2RxHoldTime corresponds to
         RX_HOLD_TIME of OLSRv2.

         The following constraint applies to this
         parameter:

             olsrv2RxHoldTime > 0

         This parameter SHOULD be greater
         than the maximum difference in time that a
         message may take to traverse the MANET,
         taking into account any message forwarding
         jitter as well as propagation, queuing,
         and processing delays.

         This object is persistent and when written
         the entity SHOULD save the change to
         non-volatile storage."
      REFERENCE
         "The OLSRv2 draft.
          Section 5 on Protocol Parameters."
      DEFVAL { 30000 }
   ::= { olsrv2ConfigurationGroup 8 }

   olsrv2PHoldTime  OBJECT-TYPE
      SYNTAX      Unsigned32
      UNITS       "milliseconds"
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "olsrv2PHoldTime corresponds to
         P_HOLD_TIME of OLSRv2.

         The following constraint applies to this
         parameter:

             olsrv2PHoldTime > 0

         This parameter SHOULD be greater
         than the maximum difference in time that a
         message may take to traverse the MANET,
         taking into account any message forwarding
         jitter as well as propagation, queuing,
         and processing delays.

         This object is persistent and when written
         the entity SHOULD save the change to
         non-volatile storage."
      REFERENCE
         "The OLSRv2 draft.
          Section 5 on Protocol Parameters."
      DEFVAL { 30000 }
   ::= { olsrv2ConfigurationGroup 9 }

   olsrv2FHoldTime  OBJECT-TYPE
      SYNTAX      Unsigned32
      UNITS       "milliseconds"
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "olsrv2RxHoldTime corresponds to
         RX_HOLD_TIME of OLSRv2.

         The following constraint applies to this
         parameter:

             olsrv2FHoldTime > 0

         This parameter SHOULD be greater
         than the maximum difference in time that a
         message may take to traverse the MANET,
         taking into account any message forwarding
         jitter as well as propagation, queuing,
         and processing delays.

         This object is persistent and when written
         the entity SHOULD save the change to
         non-volatile storage."
      REFERENCE
         "The OLSRv2 draft.
          Section 5 on Protocol Parameters."
      DEFVAL { 30000 }
   ::= { olsrv2ConfigurationGroup 10 }


   --
   -- Jitter times
   --

   olsrv2TpMaxJitter  OBJECT-TYPE
      SYNTAX      Unsigned32
      UNITS       "milliseconds"
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "olsrv2TpMaxJitter corresponds to
         TP_MAXJITTER of OLSRv2.

         This object is persistent and when written
         the entity SHOULD save the change to
         non-volatile storage."
      REFERENCE
         "The OLSRv2 draft.
          Section 5 on Protocol Parameters."
      DEFVAL { 500 }
   ::= { olsrv2ConfigurationGroup 11 }

   olsrv2TtMaxJitter  OBJECT-TYPE
      SYNTAX      Unsigned32
      UNITS       "milliseconds"
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "olsrv2TtMaxJitter corresponds to
         TT_MAXJITTER of OLSRv2.

         This object is persistent and when written
         the entity SHOULD save the change to
         non-volatile storage."
      REFERENCE
         "The OLSRv2 draft.
          Section 5 on Protocol Parameters."
      DEFVAL { 500 }
   ::= { olsrv2ConfigurationGroup 12 }

   olsrv2FMaxJitter  OBJECT-TYPE
      SYNTAX      Unsigned32
      UNITS       "milliseconds"
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "olsrv2FMaxJitter corresponds to
         F_MAXJITTER of OLSRv2.

         This object is persistent and when written
         the entity SHOULD save the change to
         non-volatile storage."
      REFERENCE
         "The OLSRv2 draft.
          Section 5 on Protocol Parameters."
      DEFVAL { 500 }
   ::= { olsrv2ConfigurationGroup 13 }


   --
   -- Hop limits
   --

   olsrv2TcHopLimit  OBJECT-TYPE
      SYNTAX      Unsigned32 (0..255)
      UNITS       "hops"
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "olsrv2TcHopLimit corresponds to
         TC_HOP_LIMIT of OLSRv2.

         The following constraint applies to this
         parameter:

         The maximum value of
         olsrv2TcHopLimit >= the network diameter
         in hops, a value of 255 is RECOMMENDED.

         All values of olsrv2TcHopLimit >= 2.

         This object is persistent and when written
         the entity SHOULD save the change to
         non-volatile storage."
       REFERENCE
         "The OLSRv2 draft.
          Section 5 on Protocol Parameters."
       DEFVAL { 255 }
   ::= { olsrv2ConfigurationGroup 14 }


   --
   -- Willingness
   --

   olsrv2Willingness  OBJECT-TYPE
      SYNTAX      Unsigned32 (0..255)
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "olsrv2Willingness corresponds to
         WILLINGNESS of OLSRv2.

         The following constraint applies to this
         parameter:

         WILL_NEVER (0) <= olsrv2Willingness <=
                                  WILL_ALWAYS (15)

         This object is persistent and when written
         the entity SHOULD save the change to
         non-volatile storage."
      REFERENCE
         "The OLSRv2 draft.
          Section 5 on Protocol Parameters."
      DEFVAL { 7 }
   ::= { olsrv2ConfigurationGroup 15 }



   --
   -- olsrv2StateGroup
   --

   -- Contains information describing the current state of
   -- the OLSRv2 process.




   olsrv2StateGroup  OBJECT IDENTIFIER ::= { olsrv2MIBObjects 2 }

   olsrv2RouterStatus  OBJECT-TYPE
      SYNTAX      TruthValue
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "The current status of the OLSRv2 router
          routing process."
   ::= { olsrv2StateGroup 1 }



    --
    -- Local Information Base  - as defined in [NHDP],
    -- extended by the addition of an Originator Set,
    -- defined in Section 6.1 and a Local Attached
    -- Network Set, defined in Section 6.2.
    --



    --
    -- Originator Set
    --

    olsrv2LibOrigSetTable OBJECT-TYPE
       SYNTAX       SEQUENCE OF Olsrv2LibOrigSetEntry
       MAX-ACCESS   not-accessible
       STATUS       obsolete
       DESCRIPTION
          "A router's Originator Set records addresses
          that were recently used as originator addresses
          by this router.  If a router's originator
          address is immutable then this set is always
          empty and MAY be omitted."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2StateGroup 2 }

    olsrv2LibOrigSetEntry  OBJECT-TYPE
       SYNTAX      Olsrv2LibOrigSetEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
          "A router's Originator Set consists of
          Originator Tuples:
            (O_orig_addr, O_time)."
       REFERENCE
          "The OLSRv2 draft."
       INDEX { olsrv2LibOrigSetIpAddr }
    ::= { olsrv2LibOrigSetTable 1 }

    Olsrv2LibOrigSetEntry ::=
       SEQUENCE {
          olsrv2LibOrigSetIpAddrType
            InetAddressType,
          olsrv2LibOrigSetIpAddr
            InetAddress,
          olsrv2LibOrigSetExpireTime
            TimeStamp
         }

    olsrv2LibOrigSetIpAddrType  OBJECT-TYPE
       SYNTAX      InetAddressType
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "The type of the olsrv2LibOrigSetIpAddr, as defined
           in the InetAddress MIB [RFC 4001]."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2LibOrigSetEntry 1 }

    olsrv2LibOrigSetIpAddr  OBJECT-TYPE
       SYNTAX      InetAddress
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "A recently used originator address
           by this router."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2LibOrigSetEntry 2 }

     olsrv2LibOrigSetExpireTime  OBJECT-TYPE
       SYNTAX      TimeStamp
       UNITS      "milliseconds"
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
          "This object specifies the time at which this
           entry expires and MUST be removed."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2LibOrigSetEntry 3 }


    --
    -- Local Attached Network Set
    --

    olsrv2LibLocAttNetSetTable OBJECT-TYPE
      SYNTAX       SEQUENCE OF Olsrv2LibLocAttNetSetEntry
      MAX-ACCESS   not-accessible
      STATUS       obsolete
      DESCRIPTION
         "A router's Local Attached Network Set records
         its local non-OLSRv2 interfaces via which it
         can act as gateways to other networks. The
         Local Attached Network Set is not modified by
         this protocol."
      REFERENCE
         "The OLSRv2 draft."
   ::= { olsrv2StateGroup 3 }

    olsrv2LibLocAttNetSetEntry  OBJECT-TYPE
       SYNTAX      Olsrv2LibLocAttNetSetEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
          "The entries include the Local Attached
           Network Tuples:

              (AL_net_addr, AL_dist)

           where:

              AL_net_addr is the network address
              of an attached network which can
              be reached via this router.

              AL_dist is the number of hops to
              the network with address AL_net_addr
              from this router."
       REFERENCE
          "The OLSRv2 draft."
       INDEX { olsrv2LibLocAttNetSetIpAddr,
               olsrv2LibLocAttNetSetIpAddrPrefixLen }
    ::= { olsrv2LibLocAttNetSetTable 1 }

    Olsrv2LibLocAttNetSetEntry ::=
       SEQUENCE {
          olsrv2LibLocAttNetSetIpAddrType
            InetAddressType,
          olsrv2LibLocAttNetSetIpAddr
            InetAddress,
          olsrv2LibLocAttNetSetIpAddrPrefixLen
            InetAddressPrefixLength,
          olsrv2LibLocAttNetSetDistance
            Unsigned32,
          olsrv2LibLocAttNetSetRowStatus
            RowStatus
         }

    olsrv2LibLocAttNetSetIpAddrType  OBJECT-TYPE
       SYNTAX      InetAddressType
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "The type of the olsrv2LibLocAttNetSetIpAddr, as defined
           in the InetAddress MIB [RFC 4001]."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2LibLocAttNetSetEntry 1 }

    olsrv2LibLocAttNetSetIpAddr  OBJECT-TYPE
       SYNTAX      InetAddress
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "This is the network address of an attached
           network which can be reached via this router."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2LibLocAttNetSetEntry 2 }

    olsrv2LibLocAttNetSetIpAddrPrefixLen  OBJECT-TYPE
      SYNTAX      InetAddressPrefixLength
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "Indicates the number of leading one bits that form the
          mask to be logical-ANDed with the destination address
          before being compared to the value in the
          olsrv2LibLocAttNetSetIpAddr field."
      REFERENCE
         "The OLSRv2 draft."
   ::= { olsrv2LibLocAttNetSetEntry 3 }

   olsrv2LibLocAttNetSetDistance  OBJECT-TYPE
      SYNTAX      Unsigned32 (1..255)
      UNITS      "hops"
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "This object specifies the number of hops
          to the network with address
          olsrv2LibLocAttNetSetIpAddr from this router."
      REFERENCE
         "The OLSRv2 draft."
   ::= { olsrv2LibLocAttNetSetEntry 4 }

   olsrv2LibLocAttNetSetRowStatus  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."
   ::= { olsrv2LibLocAttNetSetEntry 5 }


    --
    -- Interface Information Bases  - as defined in
    -- [NHDP], one Interface Information Base for
    -- each OLSRv2 interface.
    --

    -- Note: The IIB is fully defined in the NHDP
    -- specification and its associated MIB.




    --
    -- Neighbor Information Base  - as defined in [NHDP],
    -- extended by the addition of five elements to
    -- each Neighbor Tuple, as defined in Section 8.
    --

    --
    -- Neighbor Set
    --

    olsrv2NibNeighborSetTable OBJECT-TYPE
       SYNTAX       SEQUENCE OF Olsrv2NibNeighborSetEntry
       MAX-ACCESS   not-accessible
       STATUS       obsolete
       DESCRIPTION
          "A router's Neighbor Set records all network
          addresses of each 1-hop neighbor.  It consists
          of Neighbor Tuples, each representing a single
          1-hop neighbor. "
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2StateGroup 4 }

    olsrv2NibNeighborSetEntry  OBJECT-TYPE
       SYNTAX      Olsrv2NibNeighborSetEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
          "Each Neighbor Tuple in the Neighbor Set, defined
           in [NHDP], has these additional elements:
                N_orig_addr
                N_willingness
                N_mpr
                N_mpr_selector
                N_advertised
           defined here as extensions."
       REFERENCE
          "The OLSRv2 draft."
       INDEX { olsrv2NibNeighborSetRouterId }
    ::= { olsrv2NibNeighborSetTable 1 }

    Olsrv2NibNeighborSetEntry ::=
       SEQUENCE {
          olsrv2NibNeighborSetRouterId
            NeighborRouterId,
          olsrv2NibNeighborSetNIpAddrType
            InetAddressType,
          olsrv2NibNeighborSetNOrigAddr
            InetAddress,
          olsrv2NibNeighborSetNWilliness
            Unsigned32,
          olsrv2NibNeighborSetNMpr
            TruthValue,
          olsrv2NibNeighborSetNMprSelector
            TruthValue,
          olsrv2NibNeighborSetNAdvertised
            TruthValue
         }

    olsrv2NibNeighborSetRouterId  OBJECT-TYPE
       SYNTAX      NeighborRouterId
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
          "The object olsrv2NibNeighborSetRouterId is
           the locally assigned ID of the remote router
           referenced in this row.  The IP addrs
           associated with this router is contained
           in the NHDP-MIB's 'nhdpDiscIfSetTable'.
          "
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2NibNeighborSetEntry 1 }

    olsrv2NibNeighborSetNIpAddrType  OBJECT-TYPE
       SYNTAX      InetAddressType
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "The type of the olsrv2NibNeighborSetNOrigAddr, as defined
           in the InetAddress MIB [RFC 4001]."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2NibNeighborSetEntry 2 }

    olsrv2NibNeighborSetNOrigAddr  OBJECT-TYPE
       SYNTAX      InetAddress
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "This is the originator IP address of that
          neighbor."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2NibNeighborSetEntry 3 }

    olsrv2NibNeighborSetNWilliness  OBJECT-TYPE
       SYNTAX      Unsigned32 (1..7)
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "This object, N_willingness, is the neighbor
           router's willingness to be selected as an MPR, in
           the range from WILL_NEVER (0) to WILL_ALWAYS
           (15), both inclusive."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2NibNeighborSetEntry 4 }

    olsrv2NibNeighborSetNMpr  OBJECT-TYPE
       SYNTAX      TruthValue
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "This object, N_mpr, is a boolean flag,
           describing if this neighbor is selected as
           an MPR by this router.

           When set to 'true', this neighbor is selected
           as an MPR by this router.  When set to 'false',
           it is not selected by this router as an MPR."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2NibNeighborSetEntry 5 }

    olsrv2NibNeighborSetNMprSelector  OBJECT-TYPE
       SYNTAX      TruthValue
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "This object, N_mpr_selector, is a boolean flag,
           describing if this neighbor has selected this router
           as an MPR, i.e. is an MPR selector of this router.

           When set to 'true', then this router is selected as
           an MPR by the neighbor router.  When set to 'false',
           then this router is not selected by the neighbor
           as an MPR"
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2NibNeighborSetEntry 6 }

    olsrv2NibNeighborSetNAdvertised  OBJECT-TYPE
       SYNTAX      TruthValue
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "This object, N_mpr_selector, is a boolean flag, describing if
          this router has elected to advertise a link to this neighbor
          in its TC messages."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2NibNeighborSetEntry 7 }

    olsrv2NibNeighborSetTableAnsn OBJECT-TYPE
       SYNTAX       Unsigned32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
          "Advertised Neighbor Sequence Number (ANSN), is
          a variable, whose value is included in TC messages to
          indicate the freshness of the information transmitted."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2StateGroup 5 }




    --
    -- Topology Information Base  - this Information
    -- Base is specific to OLSRv2, and is defined in
    -- Section 9.
    --


    --
    -- Advertising Remote Router Set
    --

    olsrv2TibAdRemoteRouterSetTable OBJECT-TYPE
       SYNTAX       SEQUENCE OF Olsrv2TibAdRemoteRouterSetEntry
       MAX-ACCESS   not-accessible
       STATUS       obsolete
       DESCRIPTION
          "A router's Advertising Remote Router Set records
           information describing each remote router in the
           network that transmits TC messages."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2StateGroup 6 }

    olsrv2TibAdRemoteRouterSetEntry  OBJECT-TYPE
       SYNTAX      Olsrv2TibAdRemoteRouterSetEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
          "A router's Advertised Neighbor Set Table entry
           consists of Advertising Remote Router Tuples:

               (AR_orig_addr, AR_seq_number, AR_time)

           Addresses associated with this router are
           found in the NHDP-MIB's 'nhdpDiscIfSetTable'."
       REFERENCE
          "The OLSRv2 draft."
       INDEX { olsrv2TibAdRemoteRouterSetRouterId }
    ::= { olsrv2TibAdRemoteRouterSetTable 1 }

    Olsrv2TibAdRemoteRouterSetEntry ::=
       SEQUENCE {
          olsrv2TibAdRemoteRouterSetIpAddrType
            InetAddressType,
          olsrv2TibAdRemoteRouterSetIpAddr
            InetAddress,
          olsrv2TibAdRemoteRouterSetRouterId
            NeighborRouterId,
          olsrv2TibAdRemoteRouterSetMaxSeqNo
            Unsigned32,
          olsrv2TibAdRemoteRouterSetExpireTime
            TimeStamp
         }

    olsrv2TibAdRemoteRouterSetIpAddrType  OBJECT-TYPE
       SYNTAX      InetAddressType
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "The type of the olsrv2TibAdRemoteRouterSetIpAddr,
           as defined in the InetAddress MIB [RFC 4001]."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2TibAdRemoteRouterSetEntry 1 }

    olsrv2TibAdRemoteRouterSetIpAddr  OBJECT-TYPE
       SYNTAX      InetAddress
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "This is the originator address of a received
           TC message."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2TibAdRemoteRouterSetEntry 2 }

    olsrv2TibAdRemoteRouterSetRouterId  OBJECT-TYPE
       SYNTAX      NeighborRouterId
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
          "This object is an additional index for each
           Remote Router's IfAddr associated with the
           olsrv2TibAdRemoteRouterSetIpAddr."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2TibAdRemoteRouterSetEntry 3 }

     olsrv2TibAdRemoteRouterSetMaxSeqNo  OBJECT-TYPE
        SYNTAX      Unsigned32 (0..65535)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
           "This is the greatest ANSN in any TC message
            received which originated from the router
            with originator address
            olsrv2TibAdRemoteRouterSetIpAddr."
        REFERENCE
           "The OLSRv2 draft."
    ::= { olsrv2TibAdRemoteRouterSetEntry 4 }

    olsrv2TibAdRemoteRouterSetExpireTime  OBJECT-TYPE
      SYNTAX      TimeStamp
      UNITS       "milliseconds"
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
         "This is the time at which this
          Tuple expires and MUST be removed."
      REFERENCE
         "The OLSRv2 draft."
   ::= { olsrv2TibAdRemoteRouterSetEntry 5 }



    --
    -- Router Topology Set
    --

    olsrv2TibRouterTopologySetTable OBJECT-TYPE
       SYNTAX       SEQUENCE OF Olsrv2TibTopologySetEntry
       MAX-ACCESS   not-accessible
       STATUS       obsolete
       DESCRIPTION
          "A router's Router Topology Set records topology
           information about the network."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2StateGroup 7 }

    olsrv2TibRouterTopologySetEntry  OBJECT-TYPE
       SYNTAX      Olsrv2TibTopologySetEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
          "It consists of Router Topology Tuples:

               (TR_from_orig_addr, TR_to_orig_addr,
                    TR_seq_number, TR_time)"
       REFERENCE
          "The OLSRv2 draft."
       INDEX { olsrv2TibRouterTopologySetFromOrigIpAddr }
    ::= { olsrv2TibRouterTopologySetTable 1 }

    Olsrv2TibTopologySetEntry ::=
       SEQUENCE {
          olsrv2TibRouterTopologySetFromOrigIpAddrType
            InetAddressType,
          olsrv2TibRouterTopologySetFromOrigIpAddr
            InetAddress,
          olsrv2TibRouterTopologySetToOrigIpAddrType
            InetAddressType,
          olsrv2TibRouterTopologySetToOrigIpAddr
            InetAddress,
          olsrv2TibRouterTopologySetSeqNo
            Unsigned32,
          olsrv2TibRouterTopologySetExpireTime
            TimeStamp
         }

    olsrv2TibRouterTopologySetFromOrigIpAddrType  OBJECT-TYPE
       SYNTAX      InetAddressType
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "The type of the olsrv2TibRouterTopologySetFromOrigIpAddr,
           as defined in the InetAddress MIB [RFC 4001]."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2TibRouterTopologySetEntry 1 }

    olsrv2TibRouterTopologySetFromOrigIpAddr  OBJECT-TYPE
       SYNTAX      InetAddress
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "This is the originator address of a router which can
          reach the router with originator address TR_to_orig_addr
          in one hop, note that this does not include a prefix length"
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2TibRouterTopologySetEntry 2 }

    olsrv2TibRouterTopologySetToOrigIpAddrType  OBJECT-TYPE
       SYNTAX      InetAddressType
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "The type of the olsrv2TibRouterTopologySetToOrigIpAddr,
           as defined in the InetAddress MIB [RFC 4001]."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2TibRouterTopologySetEntry 3 }

    olsrv2TibRouterTopologySetToOrigIpAddr  OBJECT-TYPE
       SYNTAX      InetAddress
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "This is the originator address of a router which can be
          reached by the router with originator address
          TR_to_orig_addr in one hop, note that this does
          not include a prefix length."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2TibRouterTopologySetEntry 4 }

     olsrv2TibRouterTopologySetSeqNo  OBJECT-TYPE
       SYNTAX      Unsigned32 (0..65535)
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "This is the greatest ANSN in any TC message
          received which originated from the router
          with originator address TR_from_orig_addr
          (i.e., which contributed to the information
          contained in this Tuple)."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2TibRouterTopologySetEntry 5 }

     olsrv2TibRouterTopologySetExpireTime  OBJECT-TYPE
       SYNTAX      TimeStamp
       UNITS       "milliseconds"
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
          "This is the time at which this
           Tuple expires and MUST be removed."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2TibRouterTopologySetEntry 6 }



    --
    -- Routable Address Topology Set
    --


    olsrv2TibRoutableAddressTopologySetTable OBJECT-TYPE
       SYNTAX       SEQUENCE OF Olsrv2TibRoutableAddressTopologySetEntry
       MAX-ACCESS   not-accessible
       STATUS       obsolete
       DESCRIPTION
          "A router's Routable Address Topology Set records topology
          information about the routable addresses within the MANET,
          and via which routers they may be reached."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2StateGroup 8 }

    olsrv2TibRoutableAddressTopologySetEntry  OBJECT-TYPE
       SYNTAX      Olsrv2TibRoutableAddressTopologySetEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
          "It consists of Router Topology Tuples:

               (TA_from_orig_addr, TA_to_orig_addr,
                    TA_seq_number, TA_time)"
       REFERENCE
          "The OLSRv2 draft."
       INDEX { olsrv2TibRouterTopologySetFromOrigIpAddr }
    ::= { olsrv2TibRoutableAddressTopologySetTable 1 }

    Olsrv2TibRoutableAddressTopologySetEntry ::=
       SEQUENCE {
          olsrv2TibRoutableAddressTopologySetFromOrigIpAddrType
            InetAddressType,
          olsrv2TibRoutableAddressTopologySetFromOrigIpAddr
            InetAddress,
          olsrv2TibRoutableAddressTopologySetToOrigIpAddrType
            InetAddressType,
          olsrv2TibRoutableAddressTopologySetToOrigIpAddr
            InetAddress,
          olsrv2TibRoutableAddressTopologySetSeqNo
            Unsigned32,
          olsrv2TibRoutableAddressTopologySetExpireTime
            TimeStamp
         }

    olsrv2TibRoutableAddressTopologySetFromOrigIpAddrType  OBJECT-TYPE
       SYNTAX      InetAddressType
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "The type of the
          olsrv2TibRoutableAddressTopologySetFromOrigIpAddr,
          as defined in the InetAddress MIB [RFC 4001]."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2TibRoutableAddressTopologySetEntry 1 }

   olsrv2TibRoutableAddressTopologySetFromOrigIpAddr  OBJECT-TYPE
       SYNTAX      InetAddress
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "This is the originator address of a router which can
          reach the router with routable address TA_dest_addr
          in one hop."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2TibRoutableAddressTopologySetEntry 2 }

    olsrv2TibRoutableAddressTopologySetToOrigIpAddrType  OBJECT-TYPE
       SYNTAX      InetAddressType
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "The type of the olsrv2TibRouterTopologySetToOrigIpAddr,
           as defined in the InetAddress MIB [RFC 4001]."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2TibRoutableAddressTopologySetEntry 3 }

    olsrv2TibRoutableAddressTopologySetToOrigIpAddr  OBJECT-TYPE
       SYNTAX      InetAddress
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "This is a routable address of a router which can be
          reached by the router with originator address
          TA_from_orig_addr in one hop."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2TibRoutableAddressTopologySetEntry 4 }

     olsrv2TibRoutableAddressTopologySetSeqNo  OBJECT-TYPE
       SYNTAX      Unsigned32 (0..65535)
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "This is the greatest ANSN in any TC message
          received which originated from the router
          with originator address TA_from_orig_addr
          (i.e., which contributed to the information
          contained in this Tuple)."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2TibRoutableAddressTopologySetEntry 5 }

     olsrv2TibRoutableAddressTopologySetExpireTime  OBJECT-TYPE
       SYNTAX      TimeStamp
       UNITS       "milliseconds"
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "This is the time at which this
           Tuple expires and MUST be removed."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2TibRoutableAddressTopologySetEntry 6 }



    --
    -- Attached Network Set
    --

    olsrv2TibAttNetworksSetTable OBJECT-TYPE
       SYNTAX       SEQUENCE OF Olsrv2TibAttNetworksSetEntry
       MAX-ACCESS   not-accessible
       STATUS       obsolete
       DESCRIPTION
          "A router's Attached Network Set records information
          about networks (which may be outside the MANET)
          attached to other routers and their routable addresses."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2StateGroup 9 }

    olsrv2TibAttNetworksSetEntry  OBJECT-TYPE
       SYNTAX      Olsrv2TibAttNetworksSetEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "It consists of Attached Network Tuples:

                   (AN_orig_addr, AN_net_addr,
                          AN_dist, AN_seq_number, AN_time)"

       REFERENCE
          "The OLSRv2 draft."
       INDEX { olsrv2TibAttNetworksSetNetIpAddrType,
               olsrv2TibAttNetworksSetNetIpAddr,
               olsrv2TibAttNetworksSetNetIpAddrPrefixLen }
    ::= { olsrv2TibAttNetworksSetTable 1 }

    Olsrv2TibAttNetworksSetEntry ::=
       SEQUENCE {
          olsrv2TibAttNetworksSetOrigIpAddr
            InetAddress,
          olsrv2TibAttNetworksSetNetIpAddrType
            InetAddressType,
          olsrv2TibAttNetworksSetNetIpAddr
            InetAddress,
          olsrv2TibAttNetworksSetNetIpAddrPrefixLen
            InetAddressPrefixLength,
          olsrv2TibAttNetworksSetSeqNo
            Unsigned32,
          olsrv2TibAttNetworksSetDist
            Unsigned32,
          olsrv2TibAttNetworksSetExpireTime
            TimeStamp
         }

   olsrv2TibAttNetworksSetOrigIpAddr  OBJECT-TYPE
      SYNTAX      InetAddress
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "This is the originator address of a
          router which can act as gateway to the
          network with address AN_net_addr,
          note that this does not include a
          prefix length."
      REFERENCE
         "The OLSRv2 draft."
   ::= { olsrv2TibAttNetworksSetEntry 1 }

    olsrv2TibAttNetworksSetNetIpAddrType  OBJECT-TYPE
       SYNTAX      InetAddressType
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
          "The type of the olsrv2TibAttNetworksSetNetIpAddr,
           as defined in the InetAddress MIB [RFC 4001]."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2TibAttNetworksSetEntry 2 }

    olsrv2TibAttNetworksSetNetIpAddr  OBJECT-TYPE
       SYNTAX      InetAddress
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "This is is the network address of an
           attached network, which may be reached via
           the router with originator address AN_orig_addr."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2TibAttNetworksSetEntry 3 }

    olsrv2TibAttNetworksSetNetIpAddrPrefixLen  OBJECT-TYPE
      SYNTAX      InetAddressPrefixLength
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "Indicates the number of leading one bits that form the
          mask to be logical-ANDed with the destination address
          before being compared to the value in the
          olsrv2TibAttNetworksSetNetIpAddr field."
      REFERENCE
         "The OLSRv2 draft."
   ::= { olsrv2TibAttNetworksSetEntry 4 }

   olsrv2TibAttNetworksSetSeqNo  OBJECT-TYPE
      SYNTAX      Unsigned32 (0..65535)
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "The is the greatest ANSN in any TC
          message received which originated from the
          router with originator address AN_orig_addr
          (i.e. which contributed to the information
          contained in this Tuple)."
      REFERENCE
         "The OLSRv2 draft."
   ::= { olsrv2TibAttNetworksSetEntry 5 }

   olsrv2TibAttNetworksSetDist  OBJECT-TYPE
      SYNTAX      Unsigned32 (0..255)
      UNITS       "hops"
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "The is the number of hops to the network
          with address AN_net_addr from the router with
          originator address AN_orig_addr."
      REFERENCE
         "The OLSRv2 draft."
   ::= { olsrv2TibAttNetworksSetEntry 6 }

   olsrv2TibAttNetworksSetExpireTime  OBJECT-TYPE
      SYNTAX      TimeStamp
      UNITS       "milliseconds"
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "This is the time at which this
          Tuple expires and MUST be removed."
      REFERENCE
         "The OLSRv2 draft."
   ::= { olsrv2TibAttNetworksSetEntry 7 }



    --
    -- Routing Set
    --

    olsrv2TibRoutingSetTable OBJECT-TYPE
       SYNTAX       SEQUENCE OF Olsrv2TibRoutingSetEntry
       MAX-ACCESS   not-accessible
       STATUS       obsolete
       DESCRIPTION
          "A router's Routing Set records the first hop along a
          selected path to each destination for which any such
          path is known."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2StateGroup 10 }

    olsrv2TibRoutingSetEntry  OBJECT-TYPE
       SYNTAX      Olsrv2TibRoutingSetEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "It consists of Routing Tuples:

            (R_dest_addr, R_next_iface_addr,
                 R_local_iface_addr, R_dist)"
       REFERENCE
          "The OLSRv2 draft."
       INDEX { olsrv2TibRoutingSetDestIpAddrType,
               olsrv2TibRoutingSetDestIpAddr,
               olsrv2TibRoutingSetDestIpAddrPrefLen }
    ::= { olsrv2TibRoutingSetTable 1 }

    Olsrv2TibRoutingSetEntry ::=
       SEQUENCE {
          olsrv2TibRoutingSetDestIpAddrType
            InetAddressType,
          olsrv2TibRoutingSetDestIpAddr
            InetAddress,
          olsrv2TibRoutingSetDestIpAddrPrefLen
            InetAddressPrefixLength,
          olsrv2TibRoutingSetNextIfIpAddr
            InetAddress,
          olsrv2TibRoutingSetLocalIfIpAddr
            InetAddress,
          olsrv2TibRoutingSetDist
            Unsigned32
         }

    olsrv2TibRoutingSetDestIpAddrType  OBJECT-TYPE
       SYNTAX      InetAddressType
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
          "The type of the olsrv2TibRoutingSetDestIpAddr
           and olsrv2TibRoutingSetNextIfIpAddr,
           as defined in the InetAddress MIB [RFC 4001]."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2TibRoutingSetEntry 1 }

    olsrv2TibRoutingSetDestIpAddr  OBJECT-TYPE
       SYNTAX      InetAddress
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "This is the address of the destination,
           either the address of an interface of
           a destination router, or the network
           address of an attached network."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2TibRoutingSetEntry 2 }

    olsrv2TibRoutingSetDestIpAddrPrefLen  OBJECT-TYPE
      SYNTAX      InetAddressPrefixLength
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "Indicates the number of leading one bits that form the
          mask to be logical-ANDed with the destination address
          before being compared to the value in the
          olsrv2TibRoutingSetDestNetIpAddr field.

          Note: This definition needs to be consistent
          with the current forwarding table MIB description.
          Specifically, it should allow for longest prefix
          matching of network addresses."
      REFERENCE
         "The OLSRv2 draft."
   ::= { olsrv2TibRoutingSetEntry 3 }

    olsrv2TibRoutingSetNextIfIpAddr  OBJECT-TYPE
       SYNTAX      InetAddress
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "This is the OLSRv2 interface address of the
           'next hop' on the selected path to the
           destination."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2TibRoutingSetEntry 4 }

    olsrv2TibRoutingSetLocalIfIpAddr  OBJECT-TYPE
       SYNTAX      InetAddress
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "This is the address of the local OLSRv2
           interface over which a packet MUST be
           sent to reach the destination by the
           selected path."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2TibRoutingSetEntry 5 }

    olsrv2TibRoutingSetDist  OBJECT-TYPE
       SYNTAX      Unsigned32 (0..255)
       UNITS       "hops"
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "The is the number of hops on the selected
           path to the destination."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2TibRoutingSetEntry 6 }



    --
    -- Received Message Information Base (RMIB) - records information
    -- required to ensure that a message is processed at most
    -- once and is forwarded at most once per OLSRv2 interface
    -- of a router, using MPR flooding.
    --

    -- Note:  Is it appropriate or necessary to put the
    -- level of detail found in the Processing and
    -- Forwarding Information Base into the OLSRv2-MIB?

    --
    -- Received Set
    --

    olsrv2RmibReceivedSetTable OBJECT-TYPE
       SYNTAX       SEQUENCE OF Olsrv2RmibReceivedSetEntry
       MAX-ACCESS   not-accessible
       STATUS       obsolete
       DESCRIPTION
          "A router has a Received Set per OLSRv2 interface.
          Each Received Set records the signatures of messages
          which have been received over that OLSRv2 interface."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2StateGroup 11 }

    olsrv2RmibReceivedSetEntry  OBJECT-TYPE
       SYNTAX      Olsrv2RmibReceivedSetEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
          "Each consists of Received Tuples:

          (RX_type, RX_orig_addr, RX_seq_number, RX_time)"
       REFERENCE
          "The OLSRv2 draft."
       INDEX { olsrv2RmibReceivedIfIndex,
               olsrv2RmibReceivedSetOrigIpAddr,
               olsrv2RmibReceivedSetSeqNo }
    ::= { olsrv2RmibReceivedSetTable 1 }

    Olsrv2RmibReceivedSetEntry ::=
       SEQUENCE {
          olsrv2RmibReceivedIfIndex
            InterfaceIndexOrZero,
          olsrv2RmibReceivedSetMsgType
            Unsigned32,
          olsrv2RmibReceivedSetOrigIpAddrType
            InetAddressType,
          olsrv2RmibReceivedSetOrigIpAddr
            InetAddress,
          olsrv2RmibReceivedSetSeqNo
            Unsigned32,
          olsrv2RmibReceivedSetExpireTime
            TimeStamp
         }

    olsrv2RmibReceivedIfIndex  OBJECT-TYPE
       SYNTAX      InterfaceIndexOrZero
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
          "The ID of an interface.  Used for cross
          indexing into other OLSRv2 tables and other
          MIBs."
    ::= { olsrv2RmibReceivedSetEntry 1 }

    olsrv2RmibReceivedSetMsgType  OBJECT-TYPE
       SYNTAX      Unsigned32 (1..255)
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "This is the received Message Type."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2RmibReceivedSetEntry 2 }

    olsrv2RmibReceivedSetOrigIpAddrType  OBJECT-TYPE
       SYNTAX      InetAddressType
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "The type of the olsrv2RmibReceivedSetOrigIpAddr,
           as defined in the InetAddress MIB [RFC 4001]."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2RmibReceivedSetEntry 3 }

    olsrv2RmibReceivedSetOrigIpAddr  OBJECT-TYPE
       SYNTAX      InetAddress
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "This is the originator address of the received
          message, note that this does not include a
          prefix length."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2RmibReceivedSetEntry 4 }

    olsrv2RmibReceivedSetSeqNo  OBJECT-TYPE
       SYNTAX      Unsigned32 (0..65535)
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "This is the message sequence number of the received
          message."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2RmibReceivedSetEntry 5 }

    olsrv2RmibReceivedSetExpireTime  OBJECT-TYPE
       SYNTAX      TimeStamp
       UNITS       "milliseconds"
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "This specifies the time at which this Tuple
          expires and MUST be removed."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2RmibReceivedSetEntry 6 }



    --
    -- Processed Set
    --

    olsrv2RmibProcessedSetTable OBJECT-TYPE
       SYNTAX       SEQUENCE OF Olsrv2RmibProcessedSetEntry
       MAX-ACCESS   not-accessible
       STATUS       obsolete
       DESCRIPTION
          "A router has a single Processed Set which
          records signatures of messages which have
          been processed by the router."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2StateGroup 12 }

    olsrv2RmibProcessedSetEntry  OBJECT-TYPE
       SYNTAX      Olsrv2RmibProcessedSetEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
          "Each consists of Processed Tuples:

          (P_type, P_orig_addr, P_seq_number, P_time)"
       REFERENCE
          "The OLSRv2 draft."
       INDEX { olsrv2RmibProcessedSetOrigIpAddr,
               olsrv2RmibProcessedSetSeqNo }
    ::= { olsrv2RmibProcessedSetTable 1 }

    Olsrv2RmibProcessedSetEntry ::=
       SEQUENCE {
          olsrv2RmibProcessedSetMsgType
            Unsigned32,
          olsrv2RmibProcessedSetOrigIpAddrType
            InetAddressType,
          olsrv2RmibProcessedSetOrigIpAddr
            InetAddress,
          olsrv2RmibProcessedSetSeqNo
            Unsigned32,
          olsrv2RmibProcessedSetExpireTime
            TimeStamp
         }

    olsrv2RmibProcessedSetMsgType  OBJECT-TYPE
       SYNTAX      Unsigned32 (1..255)
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "This is the processed Message Type."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2RmibProcessedSetEntry 1 }

    olsrv2RmibProcessedSetOrigIpAddrType  OBJECT-TYPE
       SYNTAX      InetAddressType
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "The type of the olsrv2RmibProcessedSetOrigIpAddr, as defined
           in the InetAddress MIB [RFC 4001]."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2RmibProcessedSetEntry 2 }

    olsrv2RmibProcessedSetOrigIpAddr  OBJECT-TYPE
       SYNTAX      InetAddress
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "This is the originator address of the processed
          message, note that this does not include a
          prefix length."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2RmibProcessedSetEntry 3 }

    olsrv2RmibProcessedSetSeqNo  OBJECT-TYPE
       SYNTAX      Unsigned32 (0..65535)
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "This is the message sequence number of the processed
          message."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2RmibProcessedSetEntry 4 }

    olsrv2RmibProcessedSetExpireTime  OBJECT-TYPE
       SYNTAX      TimeStamp
       UNITS       "milliseconds"
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "This specifies the time at which this Tuple
          expires and MUST be removed."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2RmibProcessedSetEntry 5 }


    --
    -- Forwarded Set
    --

    olsrv2RmibForwardedSetTable OBJECT-TYPE
       SYNTAX       SEQUENCE OF Olsrv2RmibForwardedSetEntry
       MAX-ACCESS   not-accessible
       STATUS       obsolete
       DESCRIPTION
          "A router has a single Forwarded Set which records
          signatures of messages which have been forwarded by
          the router."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2StateGroup 13 }

    olsrv2RmibForwardedSetEntry  OBJECT-TYPE
       SYNTAX      Olsrv2RmibForwardedSetEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
          "Each consists of Forwarded Tuples:

          (F_type, F_orig_addr, F_seq_number, F_time)"
       REFERENCE
          "The OLSRv2 draft."
       INDEX { olsrv2RmibReceivedSetOrigIpAddr,
               olsrv2RmibReceivedSetSeqNo }
    ::= { olsrv2RmibForwardedSetTable 1 }

    Olsrv2RmibForwardedSetEntry ::=
       SEQUENCE {
          olsrv2RmibForwardedSetMsgType
            Unsigned32,
          olsrv2RmibForwardedSetOrigIpAddrType
            InetAddressType,
          olsrv2RmibForwardedSetOrigIpAddr
            InetAddress,
          olsrv2RmibForwardedSetSeqNo
            Unsigned32,
          olsrv2RmibForwardedSetExpireTime
            TimeStamp
         }

    olsrv2RmibForwardedSetMsgType  OBJECT-TYPE
       SYNTAX      Unsigned32 (1..255)
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "This is the forwarded Message Type."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2RmibForwardedSetEntry 1 }

    olsrv2RmibForwardedSetOrigIpAddrType  OBJECT-TYPE
       SYNTAX      InetAddressType
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "The type of the olsrv2RmibForwardedSetOrigIpAddr,
           as defined in the InetAddress MIB [RFC 4001]."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2RmibForwardedSetEntry 2 }

    olsrv2RmibForwardedSetOrigIpAddr  OBJECT-TYPE
       SYNTAX      InetAddress
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "This is the originator address of the forwarded
          message, note that this does not include a
          prefix length."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2RmibForwardedSetEntry 3 }

    olsrv2RmibForwardedSetSeqNo  OBJECT-TYPE
       SYNTAX      Unsigned32 (0..65535)
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "This is the message sequence number of the forwarded
          message."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2RmibForwardedSetEntry 4 }

    olsrv2RmibForwardedSetExpireTime  OBJECT-TYPE
       SYNTAX      TimeStamp
       UNITS       "milliseconds"
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "This specifies the time at which this Tuple
          expires and MUST be removed."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2RmibForwardedSetEntry 5 }



   --
   -- OLSRv2 Performance Group
   --
   --    Contains objects which help to characterize the
   --    performance of the OLSRv2 routing process.
   --

   olsrv2PerformanceObjGrp  OBJECT IDENTIFIER ::= { olsrv2MIBObjects 3 }


  --
  -- Objects per local interface
  --

  olsrv2InterfacePerfTable  OBJECT-TYPE
      SYNTAX      SEQUENCE OF Olsrv2InterfacePerfEntry
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
         "This table summarizes performance objects that are
          measured per local OLSRv2 interface."
      REFERENCE
         "The OLSRv2 draft."
   ::= { olsrv2PerformanceObjGrp 1 }

   olsrv2InterfacePerfEntry OBJECT-TYPE
      SYNTAX      Olsrv2InterfacePerfEntry
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
         "A single entry contains performance counters for
          a local OLSRv2 interface."
      INDEX { olsrv2IfPerfIndex }
   ::= { olsrv2InterfacePerfTable 1 }

   Olsrv2InterfacePerfEntry ::=
      SEQUENCE {
         olsrv2IfPerfIndex
            InterfaceIndexOrZero,
         olsrv2IfTcMessageXmits
            Counter32,
         olsrv2IfTcMessageRecvd
            Counter32,
         olsrv2IfTcMessageXmitAccumulatedSize
            Counter32,
         olsrv2IfTcMessageRecvdAccumulatedSize
            Counter32,
         olsrv2IfTcMessageTriggeredXmits
            Counter32,
         olsrv2IfTcMessagePeriodicXmits
            Counter32,
         olsrv2IfTcMessageForwardedXmits
            Counter32,
         olsrv2IfTcMessageXmitAccumulatedMPRSelectorCount
            Counter32
         }

   olsrv2IfPerfIndex  OBJECT-TYPE
      SYNTAX      InterfaceIndexOrZero
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
         "The ID of an interface.  Used for cross
          indexing into other OLSRv2 tables and other
          MIBs."
   ::= { olsrv2InterfacePerfEntry 1 }

   olsrv2IfTcMessageXmits  OBJECT-TYPE
      SYNTAX      Counter32
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "A counter is incremented each time a TC
         message has been transmitted on that interface."
   ::= { olsrv2InterfacePerfEntry 2 }

   olsrv2IfTcMessageRecvd  OBJECT-TYPE
      SYNTAX      Counter32
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "A counter is incremented each time a
         TC message has been received on that interface."
   ::= { olsrv2InterfacePerfEntry 3 }

   olsrv2IfTcMessageXmitAccumulatedSize  OBJECT-TYPE
      SYNTAX      Counter32
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "A counter is incremented by the number of octets in
         a TC message each time a
         TC message has been sent."
   ::= { olsrv2InterfacePerfEntry 4 }

   olsrv2IfTcMessageRecvdAccumulatedSize  OBJECT-TYPE
      SYNTAX      Counter32
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "A counter is incremented by the number of octets in
         a TC message each time a
         TC message has been received."
   ::= { olsrv2InterfacePerfEntry 5 }

   olsrv2IfTcMessageTriggeredXmits  OBJECT-TYPE
      SYNTAX      Counter32
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "A counter is incremented each time a triggered
         TC message has been sent."
   ::= { olsrv2InterfacePerfEntry 6 }

   olsrv2IfTcMessagePeriodicXmits  OBJECT-TYPE
      SYNTAX      Counter32
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "A counter is incremented each time a periodic
         TC message has been sent."
   ::= { olsrv2InterfacePerfEntry 7 }

   olsrv2IfTcMessageForwardedXmits  OBJECT-TYPE
      SYNTAX      Counter32
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "A counter is incremented each time a
         TC message has been forwarded."
   ::= { olsrv2InterfacePerfEntry 8 }

   olsrv2IfTcMessageXmitAccumulatedMPRSelectorCount OBJECT-TYPE
      SYNTAX      Counter32
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "A counter is incremented by the number of advertised
         MPR selectors in a TC each time a TC
         message has been sent."
   ::= { olsrv2InterfacePerfEntry 9 }



   --
   -- Objects concerning the Routing set
   --

   olsrv2RoutingSetRecalculationCount  OBJECT-TYPE
      SYNTAX      Counter32
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "This counter increments each time the Routing Set has
         been recalculated."
   ::= { olsrv2PerformanceObjGrp 2 }

   --
   -- Objects concerning the MPR set
   --

   olsrv2MPRSetRecalculationCount  OBJECT-TYPE
      SYNTAX      Counter32
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "This counter increments each time the MPRs
         of this router have been recalculated."
   ::= { olsrv2PerformanceObjGrp 3 }





   --
   -- Notifications
   --

olsrv2NotificationsControl OBJECT IDENTIFIER ::=
                                     { olsrv2MIBNotifications 1 }
olsrv2NotificationsObjects OBJECT IDENTIFIER ::=
                                     { olsrv2MIBNotifications 2 }
olsrv2NotificationsStates  OBJECT IDENTIFIER ::=
                                     { olsrv2MIBNotifications 3 }


   -- olsrv2NotificationsControl

   olsrv2SetNotification OBJECT-TYPE
          SYNTAX       OCTET STRING (SIZE(4))
          MAX-ACCESS   read-write
          STATUS       current
          DESCRIPTION
             "A 4-octet string serving as a bit map for
             the notification events defined by the OLSRv2
             notifications. This object is used to enable
             and disable specific OLSRv2 notifications where
             a 1 in the bit field represents enabled. The
             right-most bit (least significant) represents
             notification 1.

             This object is persistent and when written
             the entity SHOULD save the change to
             non-volatile storage.
             "
           ::= { olsrv2NotificationsControl 1 }

   olsrv2RoutingSetRecalculationCountThreshold OBJECT-TYPE
          SYNTAX       Integer32 (0..255)
          MAX-ACCESS   read-write
          STATUS       current
          DESCRIPTION
             "A threshold value for the
              olsrv2RoutingSetRecalculationCount object.
              If the number of occurrences exceeds this
              threshold within the previous
              olsrv2RoutingSetReculculationCountWindow,
              then the olsrv2RoutingSetRecalculationCountChange
              notification is to be sent.
             "
           ::= { olsrv2NotificationsControl 2 }

   olsrv2RoutingSetRecalculationCountWindow OBJECT-TYPE
          SYNTAX       TimeTicks
          MAX-ACCESS   read-write
          STATUS       current
          DESCRIPTION
             "A time window for the
              olsrv2RoutingSetRecalculationCount object.
              If the number of occurrences exceeds the
              olsrv2RoutingSetRecalculationCountThreshold
              within the previous
              olsrv2RoutingSetRecalculationCountWindow,
              then the
              olsrv2RoutingSetRecalculationCountChange
              notification is to be sent.

              This object represents the time in hundredths
              of a second.
             "
           ::= { olsrv2NotificationsControl 3 }

   olsrv2MPRSetRecalculationCountThreshold OBJECT-TYPE
          SYNTAX       Integer32 (0..255)
          MAX-ACCESS   read-write
          STATUS       current
          DESCRIPTION
             "A threshold value for the
              olsrv2MPRSetRecalculationCount object.
              If the number of occurrences exceeds this
              threshold within the previous
              olsrv2MPRSetReculculationCountWindow,
              then the
              olsrv2MPRSetRecalculationCountChange
              notification is to be sent.
             "
           ::= { olsrv2NotificationsControl 4 }

   olsrv2MPRSetRecalculationCountWindow OBJECT-TYPE
          SYNTAX       TimeTicks
          MAX-ACCESS   read-write
          STATUS       current
          DESCRIPTION
             "A time window for the
              olsrv2MPRSetRecalculationCount object.
              If the number of occurrences exceeds the
              olsrv2MPRSetRecalculationCountThreshold
              within the previous
              olsrv2MPRSetRecalculationCountWindow,
              then the
              olsrv2MPRSetRecalculationCountChange
              notification is to be sent.

              This object represents the time in hundredths
              of a second.
             "
           ::= { olsrv2NotificationsControl 5 }


   -- olsrv2NotificationsObjects

   olsrv2RouterStatusChange NOTIFICATION-TYPE
          OBJECTS { olsrv2OrigIpAddrType, -- The address type of
                                          -- the originator of
                                          --   the notification.
                    olsrv2OrigIpAddr,     -- The originator of
                                          --   the notification.
                    olsrv2RouterStatus    -- The new state.
                  }
          STATUS       current
          DESCRIPTION
             "olsrv2RouterStatusChange is a notification sent
              when a the OLSRv2 router changes it status.
              The router status is maintained in the
              olsrv2RouterStatus object.
             "
          ::= { olsrv2NotificationsObjects 1 }

   olsrv2OrigIpAddrChange NOTIFICATION-TYPE
          OBJECTS { olsrv2OrigIpAddrType, -- The address type of
                                          -- the originator of
                                          --   the notification.
                    olsrv2OrigIpAddr,     -- The originator of
                                          --    the notification.
                    olsrv2PreviousOrigIpAddrType, -- The address
                                          -- type of previous
                                          -- address of
                                          -- the originator of
                                          --   the notification.
                    olsrv2PreviousOrigIpAddr  -- The previous
                                          -- address of the
                                          -- originator of
                                          --    the notification.
                  }
          STATUS       current
          DESCRIPTION
             "olsrv2RouterStatusChange is a notification sent when a
              the OLSRv2 router changes it status.  The router
              status is maintained in the olsrv2RouterStatus
              object.
             "
          ::= { olsrv2NotificationsObjects 2 }

    olsrv2RoutingSetRecalculationCountChange NOTIFICATION-TYPE
          OBJECTS { olsrv2OrigIpAddrType, -- The address type of
                                          -- the originator of
                                          --   the notification.
                    olsrv2OrigIpAddr,     -- The originator of
                                          --   the notification.
                    olsrv2RoutingSetRecalculationCount  -- The
                                          -- new count of the
                                          -- routing set
                                          -- recalculations.
             }
          STATUS       current
          DESCRIPTION
             "olsrv2RoutingSetRecalculationCountChange is
              a notification sent when a significant number of
              routing set recalculations have occurred.
              The network administrator should select
              appropriate values for 'significant number of
              neighbors' and 'short time' through the settings
              of the olsrv2RoutingSetRecalculationCountThreshold
              and olsrv2RoutingSetRecalculationCountWindow
              objects.
             "
          ::= { olsrv2NotificationsObjects 3 }

   olsrv2MPRSetRecalculationCountChange NOTIFICATION-TYPE
          OBJECTS { olsrv2OrigIpAddrType, -- The address type of
                                          --   the originator of
                                          --   the notification.
                    olsrv2OrigIpAddr,     -- The originator of
                                          --   the notification.
                    olsrv2MPRSetRecalculationCount  -- The new
                                          --   MPR set
                                          --   recalculation
                                          --   count.
                   }
          STATUS       current
          DESCRIPTION
             "olsrv2MPRSetRecalculationCountChange is
              a notification sent when a significant number of
              MPR set recalculations have occurred.
              The network administrator should select
              appropriate values for 'significant number of
              neighbors' and 'short time' through the settings
              of the olsrv2MPRSetRecalculationCountThreshold
              and olsrv2MPRSetRecalculationCountWindow
              objects.
             "
          ::= { olsrv2NotificationsObjects 4 }



    -- olsrv2NotificationStates

    olsrv2PreviousOrigIpAddrType  OBJECT-TYPE
       SYNTAX      InetAddressType
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "The type of the olsrv2PreviousOrigIpAddr,
           as defined in the InetAddress MIB [RFC 4001].

           This objected should be updated each time the
           olsrv2OrigIpAddrType is changed.

           This object is persistent and when written
           the entity SHOULD save the change to
           non-volatile storage.
          "
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2NotificationsStates 1 }

    olsrv2PreviousOrigIpAddr  OBJECT-TYPE
       SYNTAX      InetAddress
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "The previous origination IP address
           of this OLSRv2 router.

           This object should be updated each time
           the olsrv2OrigIpAddr is modified.

           This object is persistent and when written
           the entity SHOULD save the change to
           non-volatile storage.
       "
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2NotificationsStates 2 }



   --
   -- Compliance Statements
   --


   olsrv2Compliances  OBJECT IDENTIFIER ::= { olsrv2MIBConformance 1 }
   olsrv2MIBGroups    OBJECT IDENTIFIER ::= { olsrv2MIBConformance 2 }

   olsrv2BasicCompliance  MODULE-COMPLIANCE
      STATUS current
      DESCRIPTION "The basic implementation requirements for
                   managed network entities that implement
                   the OLSRv2 routing process."
      MODULE  -- this module
      MANDATORY-GROUPS { olsrv2ConfigObjectsGroup }
   ::= { olsrv2Compliances 1 }

   olsrv2FullCompliance MODULE-COMPLIANCE
      STATUS current
      DESCRIPTION "The full implementation requirements for
                   managed network entities that implement
                   the OLSRv2 routing process."
      MODULE  -- this module
      MANDATORY-GROUPS { olsrv2ConfigObjectsGroup,
                         olsrv2StateObjectsGroup,
                         olsrv2PerfObjectsGroup,
                         olsrv2NotificationsObjectsGroup,
                         olsrv2NotificationsGroup }
   ::= { olsrv2Compliances 2 }

   --
   -- Units of Conformance
   --

   olsrv2ConfigObjectsGroup OBJECT-GROUP
      OBJECTS {
              olsrv2OrigIpAddrType,
              olsrv2OrigIpAddr,
              olsrv2OHoldTime,
              olsrv2TcInterval,
              olsrv2TcMinInterval,
              olsrv2THoldTime,
              olsrv2AHoldTime,
              olsrv2RxHoldTime,
              olsrv2PHoldTime,
              olsrv2FHoldTime,
              olsrv2TpMaxJitter,
              olsrv2TtMaxJitter,
              olsrv2FMaxJitter,
              olsrv2TcHopLimit,
              olsrv2Willingness
      }
      STATUS  current
      DESCRIPTION
         "Set of OLSRv2 configuration objects implemented
          in this module."
   ::= { olsrv2MIBGroups 1 }

   olsrv2StateObjectsGroup  OBJECT-GROUP
      OBJECTS {
              olsrv2RouterStatus,
              olsrv2LibOrigSetIpAddrType,
              olsrv2LibOrigSetIpAddr,
              olsrv2LibLocAttNetSetIpAddrType,
              olsrv2LibLocAttNetSetIpAddr,
              olsrv2LibLocAttNetSetIpAddrPrefixLen,
              olsrv2LibLocAttNetSetDistance,
              olsrv2LibLocAttNetSetRowStatus,
              olsrv2NibNeighborSetNIpAddrType,
              olsrv2NibNeighborSetNOrigAddr,
              olsrv2NibNeighborSetNWilliness,
              olsrv2NibNeighborSetNMpr,
              olsrv2NibNeighborSetNMprSelector,
              olsrv2NibNeighborSetNAdvertised,
              olsrv2NibNeighborSetTableAnsn,
              olsrv2TibAdRemoteRouterSetIpAddrType,
              olsrv2TibAdRemoteRouterSetIpAddr,
              olsrv2TibAdRemoteRouterSetMaxSeqNo,
              olsrv2TibRouterTopologySetFromOrigIpAddrType,
              olsrv2TibRouterTopologySetFromOrigIpAddr,
              olsrv2TibRouterTopologySetToOrigIpAddrType,
              olsrv2TibRouterTopologySetToOrigIpAddr,
              olsrv2TibRouterTopologySetSeqNo,
              olsrv2TibRoutableAddressTopologySetExpireTime,
              olsrv2TibRoutableAddressTopologySetFromOrigIpAddrType,
              olsrv2TibRoutableAddressTopologySetFromOrigIpAddr,
              olsrv2TibRoutableAddressTopologySetToOrigIpAddrType,
              olsrv2TibRoutableAddressTopologySetToOrigIpAddr,
              olsrv2TibRoutableAddressTopologySetSeqNo,
              olsrv2TibAttNetworksSetOrigIpAddr,
              olsrv2TibAttNetworksSetNetIpAddr,
              olsrv2TibAttNetworksSetNetIpAddrPrefixLen,
              olsrv2TibAttNetworksSetSeqNo,
              olsrv2TibAttNetworksSetDist,
              olsrv2TibAttNetworksSetExpireTime,
              olsrv2TibRoutingSetDestIpAddr,
              olsrv2TibRoutingSetDestIpAddrPrefLen,
              olsrv2TibRoutingSetNextIfIpAddr,
              olsrv2TibRoutingSetLocalIfIpAddr,
              olsrv2TibRoutingSetDist,
              olsrv2RmibReceivedSetMsgType,
              olsrv2RmibReceivedSetOrigIpAddrType,
              olsrv2RmibReceivedSetOrigIpAddr,
              olsrv2RmibReceivedSetSeqNo,
              olsrv2RmibReceivedSetExpireTime,
              olsrv2RmibProcessedSetMsgType,
              olsrv2RmibProcessedSetOrigIpAddrType,
              olsrv2RmibProcessedSetOrigIpAddr,
              olsrv2RmibProcessedSetSeqNo,
              olsrv2RmibProcessedSetExpireTime,
              olsrv2RmibForwardedSetMsgType,
              olsrv2RmibForwardedSetOrigIpAddrType,
              olsrv2RmibForwardedSetOrigIpAddr,
              olsrv2RmibForwardedSetSeqNo,
              olsrv2RmibForwardedSetExpireTime
      }
      STATUS  current
      DESCRIPTION
         "Set of OLSRv2 state objects implemented
          in this module."
   ::= { olsrv2MIBGroups 2 }

   olsrv2PerfObjectsGroup  OBJECT-GROUP
      OBJECTS {
              olsrv2IfTcMessageXmits,
              olsrv2IfTcMessageRecvd,
              olsrv2IfTcMessageXmitAccumulatedSize,
              olsrv2IfTcMessageRecvdAccumulatedSize,
              olsrv2IfTcMessageTriggeredXmits,
              olsrv2IfTcMessagePeriodicXmits,
              olsrv2IfTcMessageForwardedXmits,
              olsrv2IfTcMessageXmitAccumulatedMPRSelectorCount,
              olsrv2RoutingSetRecalculationCount,
              olsrv2MPRSetRecalculationCount
      }
      STATUS  current
      DESCRIPTION
         "Set of OLSRv2 performance objects implemented
          in this module by total and per interface."
   ::= { olsrv2MIBGroups 3 }

    olsrv2NotificationsObjectsGroup OBJECT-GROUP
      OBJECTS {
            olsrv2SetNotification,
            olsrv2RoutingSetRecalculationCountThreshold,
            olsrv2RoutingSetRecalculationCountWindow,
            olsrv2MPRSetRecalculationCountThreshold,
            olsrv2MPRSetRecalculationCountWindow,
            olsrv2PreviousOrigIpAddrType,
            olsrv2PreviousOrigIpAddr
      }
      STATUS current
      DESCRIPTION
      "Set of OLSRv2 notification objects implemented
      in this module."
   ::= { olsrv2MIBGroups 4 }


    olsrv2NotificationsGroup OBJECT-GROUP
      OBJECTS {
            olsrv2RouterStatusChange,
            olsrv2OrigIpAddrChange,
            olsrv2RoutingSetRecalculationCountChange,
            olsrv2MPRSetRecalculationCountChange
      }
      STATUS current
      DESCRIPTION
      "Set of OLSRv2 notifications implemented
      in this module."
   ::= { olsrv2MIBGroups 5 }



   END



 TOC 

8.  Security Considerations

This MIB defines objects for the configuration, monitoring and notification of the Optimized Link State Routing protocol version 2 [OLSRv2] (Clausen, T., Dearlove, C., and P. Jacquet, “The Optimized Link State Routing Protocol version 2,” April 2010.). OLSRv2 allows routers to acquire topological information of the routing domain by virtue of exchanging TC message, to calculate shortest paths to each destination router in the routing domain, to select relays for network-wide transmissions etc.

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:

  • olsrv2TcInterval, olsrv2TcMinInterval - these writable objects control the rate at which TC messages are sent. If set at too high a rate, this could represent a form of DOS attack by overloading interface resources. If set low, OLSRv2 may not converge fast enough to provide accurate routes to all destinations in the routing domain.
  • olsrv2TcHopLimit - defines the hop limit for TC messages. If set too low, messages will not be forwarded beyond the defined scope, and thus routers further away from the message originator will not be able to construct appropriate topology graphs.
  • olsrv2OHoldTime, olsrv2THoldTime, olsrv2AHoldTime, olsrv2RxHoldTime, olsrv2PHoldTime, olsrv2FHoldTime - define hold times for tuples of different Information Bases of OLSRv2. If set too low, information will expire quickly, and may this harm a correct operation of the routing protocol.
  • olsrv2Willingness - defines the willingness of this router to become MPR. If this is set to WILL_NEVER (0), the managed router will not forward any TC messages, nor accept a selection to become MPR by neighboring routers. If set to WILL_ALWAYS (15), the router will be preferred by neighbors during MPR selection, and may thus attract more traffic.
  • olsrv2TpMaxJitter, olsrv2TtMaxJitter, olsrv2FMaxJitter - define jitter values for TC message transmission and forwarding. If set too low, control traffic may get lost if the channel is lossy.

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:

  • olsrv2TibRouterTopologySetTable - The contains information on the topology of the MANET, specifically the IP address of the routers in the MANET (as identified by olsrv2TibRouterTopologySetFromOrigIpAddr and olsrv2TibRouterTopologySetToOrigIpAddr objects). This information provides an adversary broad information on the members of the MANET, located within this single table. This information can be use to expedite attacks on the other members of the MANET without having to go through a laborious discovery process on their own. olsrv2TibRouterTopologySetFromOrigIpAddr is the index into the table, and has a MAX-ACCESS of 'not-accessible'. However, this information can be exposed using SNMP operations.

MANET 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, when implementing these capabilities, the full use of SNMPv3 cryptographic mechanisms for authentication and privacy is RECOMMENDED.

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.

It is RECOMMENDED that implementers consider the security features as provided by the SNMPv3 framework (see [RFC3410] (Case, J., Mundy, R., Partain, D., and B. Stewart, “Introduction and Applicability Statements for Internet-Standard Management Framework,” December 2002.), 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.



 TOC 

9.  IANA Considerations

This memo does not include any request to IANA.



 TOC 

10.  References



 TOC 

10.1. Normative References

[RFC2863] McCloghrie, K. and F. Kastenholz, “The Interfaces Group MIB,” RFC 2863, June 2000 (TXT).
[RFC3418] Presuhn, R., “Management Information Base (MIB) for the Simple Network Management Protocol (SNMP),” STD 62, RFC 3418, December 2002 (TXT).
[RFC2119] Bradner, S., “Key words for use in RFCs to Indicate Requirement Levels,” BCP 14, RFC 2119, March 1997 (TXT, HTML, XML).
[RFC2578] McCloghrie, K., Ed., Perkins, D., Ed., and J. Schoenwaelder, Ed., “Structure of Management Information Version 2 (SMIv2),” STD 58, RFC 2578, April 1999 (TXT).
[RFC2579] McCloghrie, K., Ed., Perkins, D., Ed., and J. Schoenwaelder, Ed., “Textual Conventions for SMIv2,” STD 58, RFC 2579, April 1999 (TXT).
[RFC2580] McCloghrie, K., Perkins, D., and J. Schoenwaelder, “Conformance Statements for SMIv2,” STD 58, RFC 2580, April 1999 (TXT).
[OLSRv2] Clausen, T., Dearlove, C., and P. Jacquet, “The Optimized Link State Routing Protocol version 2,” draft-ietf-manet-olsr-11 (work in progress), April 2010 (TXT).
[NHDP] Clausen, T., Dearlove, C., and J. Dean, “Mobile Ad Hoc Network (MANET) Neighborhood Discovery Protocol (NHDP),” draft-ietf-manet-nhdp-13 (work in progress), July 2010 (TXT).
[NHDP-MIB] Herberg, U., Cole, R., and I. Chakeres, “Definition of Managed Objects for the Neighborhood Discovery Protocol,” draft-ietf-manet-nhdp-mib-04 (work in progress), July 2010 (TXT).
[RFC4001] Daniele, M., Haberman, B., Routhier, S., and J. Schoenwaelder, “Textual Conventions for Internet Network Addresses,” RFC 4001, February 2005 (TXT).
[RFC3781] Strauss, F. and J. Schoenwaelder, “Next Generation Structure of Management Information (SMIng) Mappings to the Simple Network Management Protocol (SNMP),” RFC 3781, May 2004 (TXT).


 TOC 

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 (TXT).
[REPORT] Cole, R., Macker, J., and A. Morton, “Definition of Managed Objects for Performance Reporting,” draft-ietf-manet-report-mib-00 (work in progress), July 2010 (TXT).


 TOC 

Appendix A.  Change Log

This section identifies the changes made during the development of this MIB.

Here we list the changes made in developing draft-ietf-manet-olsrv2-mib-03.

  1. Added the NotificationGroup and updated Conformance to reflect these additions.
  2. Cleaned up some of the text associated with 'Derived Objects' within the Performance Group discussion within the introductory text.
  3. Added the olsrv2OrigIpAddrType and olsrv2OrigIpAddr objects to the Configuration Group to configure and hold the router ID.

Here we list the changes made in developing draft-ietf-manet-olsrv2-mib-02.

  1. Shortened text about the Configuration Group and the State Group.
  2. Made coherent with NHDP-MIB.
  3. Cleaned up errors.
  4. Added Security Considerations section.
  5. Updated "Relations to other MIBs" section.
  6. Added Notifications section (but no notifications defined yet).
  7. Changed type of several objects in the MIB (for timers).
  8. Added information identifying objects requiring non-volatile storage within the DESCRIPTION clause of the objects within the OLSRv2-MIB.

Here we list the changes made in developing draft-ietf-manet-olsrv2-mib-01.

  1. Added Performance Group objects
  2. Updated draft to adhere to the current version of the OLSRv2 draft.
  3. Cleaned up errors.
  4. Added U. Herberg as new author.

Here we list the changes made in developing draft-ietf-manet-olsrv2-mib-00.

  1. Rev'd the draft as a new working group document.
  2. Ran 'smilint' against the module and cleaned up syntax errors and other issues discovered by the checker.

Here we list the changes made in developing draft-cole-manet-olsr-mib-01.

  1. Completely reworked the entire Configuration Objects group in order to align with the newly developed NHDP-MIB draft.


 TOC 

Appendix B.  Open Issues

This section contains the set of open issues related to the development and design of the OLSRv2-MIB. This section will not be present in the final version of the MIB and will be removed once all the open issues have been resolved.

  1. Specify specific SNMP response to the snmp set request, i.e., 'generic error', 'bad value', etc.
  2. Run through the MIB checker.



 TOC 

Appendix C.  Note to the RFC Editor

***************************************************************
* Note to the RFC Editor (to be removed prior to publication) *
*                                                             *
* 1) 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.                                 *
*                                                             *
* 2) The reference to RFCXXX2 throughout this document point  *
* to the current draft-ietf-manet-olsrv2-xx.txt.  This        *
* need to be replaced with the XXX RFC number.                *
*                                                             *
***************************************************************



 TOC 

Authors' Addresses

  Ulrich Herberg
  LIX, Ecole Polytechnique
  Palaiseau Cedex, 91128
  France
EMail:  ulrich@herberg.name
URI:  http://www.herberg.name/
  
  Robert G. Cole
  US Army CERDEC
  328 Hopkins Road, Bldg 245
  Aberdeen Proving Ground, Maryland 21005
  USA
Phone:  +1 410 278 6779
EMail:  robert.g.cole@us.army.mil
URI:  http://www.cs.jhu.edu/~rgcole/
  
  Thomas Heide Clausen
  LIX, Ecole Polytechnique
  Palaiseau Cedex, 91128
  France
Phone:  +33 6 6058 9349
EMail:  T.Clausen@computer.org
URI:  http://www.ThomasClausen.org/