TOC 
Internet Engineering Task ForceU. Herberg
Internet-DraftLIX, Ecole Polytechnique
Intended status: Standards TrackR. Cole
Expires: May 13, 2010Johns Hopkins University
 T. Clausen
 LIX, Ecole Polytechnique
 November 09, 2009


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

Abstract

This memo defines a portion of the Management Information Base (MIB) for use with network management protocols in the Internet community. In particular, it describes objects for configuring and managing aspects of the Optimized Link State Routing protocol version 2. The Optimized Link State Routing MIB also reports state information, performance metrics, and notifications. In addition to configuration, this additional state and performance information is useful to management stations troubleshooting Mobile Ad-Hoc Networks routing problems.

Status of This Memo

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

Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts.

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.”

The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt.

The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html.

This Internet-Draft will expire on May 13, 2010.

Copyright Notice

Copyright (c) 2009 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 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.  Textual Conventions
    5.2.  The Configuration Group
    5.3.  The State Group
    5.4.  The Performance Group
        5.4.1.  Recalculation Performance Objects
        5.4.2.  Message-related Performance Objects
    5.5.  The Notifications Group
6.  Relationship to Other MIB Modules
    6.1.  Relationship to the SNMPv2-MIB
    6.2.  Relationship to the IF-MIB
    6.3.  MIB modules required for IMPORTS
7.  Definitions
8.  Security Considerations
9.  IANA Considerations
10.  Contributors
11.  Acknowledgements
12.  References
    12.1.  Normative References
    12.2.  Informative References
Appendix A.  Change Log
Appendix B.  Open Issues
Appendix C. 




 TOC 

1.  Introduction

This memo defines a portion of the Management Information Base (MIB) for use with network management protocols in the Internet community. In particular, it describes objects for configuring aspects of a process implementing 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,” September 2009.).



 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 RFC 3410 [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 STD 58, RFC 2578 [RFC2578] (McCloghrie, K., Ed., Perkins, D., Ed., and J. Schoenwaelder, Ed., “Structure of Management Information Version 2 (SMIv2),” April 1999.), STD 58, RFC 2579 [RFC2579] (McCloghrie, K., Ed., Perkins, D., Ed., and J. Schoenwaelder, Ed., “Textual Conventions for SMIv2,” April 1999.) and STD 58, RFC 2580 [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", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [RFC2119] (Bradner, S., “Key words for use in RFCs to Indicate Requirement Levels,” March 1997.).



 TOC 

4.  Overview

The Optimized Link State Routing (OLSR) protocol version 2 (OLSRv2) 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.



 TOC 

4.1.  Terms

The following definitions apply throughout this document:



 TOC 

5.  Structure of the MIB Module

This section presents the structure of the Optimized Link State Routing version 2 Management Information Base (OLSRv2-MIB) module. The objects are arranged into the following groups:



 TOC 

5.1.  Textual Conventions

The textual conventions used in the OLSRv2-MIB are as follows. The RowStatus textual convention is imported from RFC 2579 [RFC2579] (McCloghrie, K., Ed., Perkins, D., Ed., and J. Schoenwaelder, Ed., “Textual Conventions for SMIv2,” April 1999.).



 TOC 

5.2.  The Configuration Group

The OLSRv2 device is configured with a set of controls. The list of configuration controls for the OLSRv2 device follows.



 TOC 

5.3.  The State Group

The State Subtree reports current state information. In OLSRv2, the state is stored in Information Bases. These are separately discussed below.

The Local Information Base (LIB), contains a router's local configuration, as defined by NHDP. It is extended in the OLSRv2 specification to also record an originator address and to include a router's:

The Interface Information Based (IIB), recording information regarding links on each MANET interface and symmetric 2-hop neighbors which can be reached through such links. In addition to the uses in NHDP, information recorded in the Interface Information Bases is used for completing the Routing Set. The IIB contains two tables:

The Neighbor Information Base (NIB), records information regarding current and recently lost 1-hop neighbors of this router. The NIB contains two tables:

The Topology Information Base (TIB), records information used for the calculation of the Routing Set. The TIB contains five tables:

The Received Message Information Base (RMIB), records information regarding messages, that have been previously received, processed, or forwarded by this router. The RMIB contains three tables:



 TOC 

5.4.  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, “The MANET Report MIB,” June 2009.) [REPORT]. Throughout this section, those objects will be pointed out that are intended as base objects which will be explicitly defined within this MIB and those objects which are derived through a combination of the base objects 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.4.1.  Recalculation Performance Objects

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

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



 TOC 

5.4.2.  Message-related Performance Objects

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



 TOC 

5.5.  The Notifications Group

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



 TOC 

6.  Relationship to Other MIB Modules

[TODO]: The text of 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 IF-MIB

[TODO] This section is included as an example; If the MIB module is not an adjunct of the Interface MIB, then this section should be removed.



 TOC 

6.3.  MIB modules required for IMPORTS

[TODO]: Citations are not permitted within a MIB module, but any module mentioned in an IMPORTS clause or document mentioned in a REFERENCE clause is a Normative reference, and must be cited someplace within the narrative sections. If there are imported items in the MIB module, such as Textual Conventions, that are not already cited, they can be cited in text here. Since relationships to other MIB modules should be described in the narrative text, this section is typically used to cite modules from which Textual Conventions are imported.

The following OLSRv2-MIB module IMPORTS objects from 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.), and IF-MIB [RFC2863] (McCloghrie, K. and F. Kastenholz, “The Interfaces Group MIB,” June 2000.)



 TOC 

7.  Definitions


   MANET-OLSRv2-MIB DEFINITIONS ::= BEGIN

   IMPORTS
      Float32
                 FROM SMIng  --[RFC3781]

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

      TEXTUAL-CONVENTION, StorageType, 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]
      NeighborRouterId
         FROM NHDP-MIB                            -- [draft nhdp-mib]
      ;

   manetOlsrv2MIB MODULE-IDENTITY
      LAST-UPDATED "200911091000Z"   -- Nov 9, 2009
      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
                     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
                     Johns Hopkins University
                     Applied Physics Lab and
                     Department of Computer Science
                     11000 Johns Hopkins Road
                     Room 02-257
                     Laurel, MD 22014
                     USA
                     +1 443 778-6951
                     robert.cole@jhuapl.edu"

      DESCRIPTION
         "This MIB module contains managed object definitions
          for the Manet OLSRv2 routing process defined in:
          Clausen, T. et.al., Optimized Link State Routing
          version 2 draft-ietf-manet-olsrv2-10, September 25, 2009.

          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    "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
   --
   --    This group contains the OLSRv2 objects that configure specific
   --    options that determine the overall performance and operation
   --    of the unicast routing process for the router device
   --    and its interfaces.
   --

   olsrv2ConfigurationGroup OBJECT IDENTIFIER ::= {olsrv2MIBObjects 1}


   -- Protocol Parameters for the OLSRv2 routing process.
   -- These are categorized following Section 5 of the
   -- OLSRv2 draft.

   --
   -- Local history times
   --

   olsrv2OHoldTime  OBJECT-TYPE
      SYNTAX      Unsigned32
      UNITS       "milliseconds"
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "The O_HOLD_TIME is used to define the time
          for which a recently used and replaced
          originator address is used to recognize
          the router's own messages.

          The following constraint applies to this
          parameter: olsrv2OHoldTime >= 0"
      REFERENCE
         "The OLSRv2 draft.
          Section 5 on Protocol Parameters."
      DEFVAL { 30000 }
   ::= { olsrv2ConfigurationGroup 1 }


   --
   -- Message intervals
   --

   olsrv2TcInterval  OBJECT-TYPE
      SYNTAX      Unsigned32
      UNITS       "milliseconds"
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "The TC_INTERVAL - is the maximum time
          between the transmission of two successive
          TC messages by this router.  When no TC
          messages are sent in response to local
          network changes (by design, or because the
          local network is not changing) then TC
          messages SHOULD be sent at a regular
          interval TC_INTERVAL, possibly modified
          by jitter as specified in [RFC5148].

          The following constraint applies to this
          parameter:

              olsrv2TcInterval > 0
              olsrv2TcInterval >= olsrv2TcMinInterval"
      REFERENCE
         "The OLSRv2 draft.
          Section 5 on Protocol Parameters."
      DEFVAL { 5000 }
   ::= { olsrv2ConfigurationGroup 2 }

   olsrv2TcMinInterval  OBJECT-TYPE
      SYNTAX      Unsigned32
      UNITS       "milliseconds"
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "The TC_MIN_INTERVAL is the minimum
          interval between transmission of two
          successive TC messages by this router.
          (This minimum interval MAY be modified
          by jitter, as specified in [RFC5148].)

          The following constraint applies to this
          parameter:

             olsrv2TcMinInterval >= 0
             olsrv2TcInterval >= olsrv2TcMinInterval"
      REFERENCE
         "The OLSRv2 draft.
          Section 5 on Protocol Parameters."
      DEFVAL { 1250 }
   ::= { olsrv2ConfigurationGroup 3 }


   --
   -- Advertised information validity times
   --

   olsrv2THoldTime  OBJECT-TYPE
      SYNTAX      Unsigned32
      UNITS       "milliseconds"
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "The olsrv2THoldTime is used to define the
          minimum value in the VALIDITY_TIME TLV
          included in all TC messages sent by this router.

          The following constraint applies to this
          parameter:

              olsrv2THoldTime > 0
              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]."
      REFERENCE
         "The OLSRv2 draft.
          Section 5 on Protocol Parameters."
      DEFVAL { 15000 }
   ::= { olsrv2ConfigurationGroup 4 }

   olsrv2AHoldTime  OBJECT-TYPE
      SYNTAX      Unsigned32
      UNITS       "milliseconds"
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "The olsrv2AHoldTime is the period during
          which TC messages are sent after they no
          longer have any advertised information
          to report, but are sent in order to
          accelerate outdated information removal by
          other routers.

          The following constraint applies to this
          parameter:

              olsrv2AHoldTime >= 0

          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]."
      REFERENCE
         "The OLSRv2 draft.
          Section 5 on Protocol Parameters."
      DEFVAL { 15000 }
   ::= { olsrv2ConfigurationGroup 5 }

   --
   -- Received message validity times
   --

   olsrv2RxHoldTime  OBJECT-TYPE
      SYNTAX      Unsigned32
      UNITS       "milliseconds"
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "The olsrv2RxHoldTime is an interface parameter,
          and is the period after receipt of a message
          by the appropriate OLSRv2 interface of this
          router for which that information is recorded,
          in order that the message is recognized as
          having been previously received on this
          OLSRv2 interface.

          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."
      REFERENCE
         "The OLSRv2 draft.
          Section 5 on Protocol Parameters."
      DEFVAL { 30000 }
   ::= { olsrv2ConfigurationGroup 6 }

   olsrv2PHoldTime  OBJECT-TYPE
      SYNTAX      Unsigned32
      UNITS       "milliseconds"
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "The olsrv2PHoldTime is a router parameter,
          and is the period after
          receipt of a message which is processed by
          this router for which that information is
          recorded, in order that the message is
          not processed again if received again.

          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."
      REFERENCE
         "The OLSRv2 draft.
          Section 5 on Protocol Parameters."
      DEFVAL { 30000 }
   ::= { olsrv2ConfigurationGroup 7 }

   olsrv2FHoldTime  OBJECT-TYPE
      SYNTAX      Unsigned32
      UNITS       "milliseconds"
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "The olsrv2FHoldTime is a router parameter,
          and is the period after
          receipt of a message which is forwarded
          by this router for which that information
          is recorded, in order that the message
          is not forwarded again if received again.

          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."
      REFERENCE
         "The OLSRv2 draft.
          Section 5 on Protocol Parameters."
      DEFVAL { 30000 }
   ::= { olsrv2ConfigurationGroup 8 }


   --
   -- Jitter times
   --

   olsrv2TpMaxJitter  OBJECT-TYPE
      SYNTAX      Unsigned32
      UNITS       "milliseconds"
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "If jitter, as defined in [RFC5148], is used
          then the jitter parameters are as follows:

          olsrv2TpMaxJitter represents the value of
          MAXJITTER used in [RFC5148] for periodically
          generated TC messages sent by this router.

          For constraints on these parameters,
          see [RFC5148]."
      REFERENCE
         "The OLSRv2 draft.
          Section 5 on Protocol Parameters."
      DEFVAL { 500 }
   ::= { olsrv2ConfigurationGroup 9 }

   olsrv2TtMaxJitter  OBJECT-TYPE
      SYNTAX      Unsigned32
      UNITS       "milliseconds"
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "If jitter, as defined in [RFC5148], is used
          then the jitter parameters are as follows:

          olsrv2TtMaxJitter represents the value of
          MAXJITTER used in [RFC5148] for externally
          triggered TC messages sent by this router.

          For constraints on these parameters,
          see [RFC5148]."
      REFERENCE
         "The OLSRv2 draft.
          Section 5 on Protocol Parameters."
      DEFVAL { 500 }
   ::= { olsrv2ConfigurationGroup 10 }

   olsrv2FMaxJitter  OBJECT-TYPE
      SYNTAX      Unsigned32
      UNITS       "milliseconds"
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "If jitter, as defined in [RFC5148], is used
          then the jitter parameters are as follows:

          olsrv2FMaxJitter represents the default
          value of MAXJITTER used in [RFC5148] for
          messages forwarded by this router.

          For constraints on these parameters,
          see [RFC5148]."
      REFERENCE
         "The OLSRv2 draft.
          Section 5 on Protocol Parameters."
      DEFVAL { 500 }
   ::= { olsrv2ConfigurationGroup 11 }


   --
   -- Hop limits
   --

   olsrv2TcHopLimit  OBJECT-TYPE
      SYNTAX      Unsigned32 (0..255)
      UNITS       "hops"
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "The parameter olsrv2TcHopLimit is the
          hop limit set in each TC message.

          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."
       REFERENCE
         "The OLSRv2 draft.
          Section 5 on Protocol Parameters."
       DEFVAL { 255 }
   ::= { olsrv2ConfigurationGroup 12 }


   --
   -- Willingness
   --

   olsrv2Willingness  OBJECT-TYPE
      SYNTAX      Unsigned32 (0..255)
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "The olsrv2Willingness MUST be in the range
          WILL_NEVER (0) to WILL_ALWAYS (7), inclusive,
          and represents its willingness to be an MPR,
          and hence its willingness to forward messages
          and be an intermediate router on routes."
      REFERENCE
         "The OLSRv2 draft.
          Section 5 on Protocol Parameters."
      DEFVAL { 3 }
   ::= { olsrv2ConfigurationGroup 13 }







   --
   -- olsrv2StateGroup
   --
   --    Contains information describing the current state of the
   --    OLSRv2 routing process.
   --    The OLSRv2 draft defines several information bases
   --    to be maintained by the OLSRv2 compliant routers.
   --    They are listed in the order defined in the OLSRv2
   --    draft.



   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.1 and a Local Attached
    -- Network Set, defined in Section 6.1.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
            Unsigned32
         }

    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 }

    -- Note:  need to change the type here to a time/date
    --        type, not a time in seconds left to expire.
     olsrv2LibOrigSetExpireTime  OBJECT-TYPE
       SYNTAX      Unsigned32 (0..65535)
       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-write
       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-write
      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 6.2.
    --

    --
    -- 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-write
       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
           (7), 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 6.3.
    --


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

    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 }

    -- Need to change this type to a time syntax.
    olsrv2TibAdRemoteRouterSetExpireTime  OBJECT-TYPE
      SYNTAX      Unsigned32
      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
            Unsigned32
         }

    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 }

     -- Need to change this type to a time syntax.
     olsrv2TibRouterTopologySetExpireTime  OBJECT-TYPE
       SYNTAX      Unsigned32
       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
            Unsigned32
         }

    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 }

     -- Need to change this type to a time syntax.
     olsrv2TibRoutableAddressTopologySetExpireTime  OBJECT-TYPE
       SYNTAX      Unsigned32
       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
            Unsigned32
         }

   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 }

   -- Need to change this type to a time syntax.
   olsrv2TibAttNetworksSetExpireTime  OBJECT-TYPE
      SYNTAX      Unsigned32
      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
    --

    -- Note:  Does this RoutingSetTable overlap too much with the
    -- information already available in the latest standard MIB
    -- forwarding table?

    -- Note: Do all of these addresses contained in a single
    -- entry in the Routing Set have to have the same addrType?

    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,
               olsrv2RmibReceivedSetOrigAddr,
               olsrv2RmibReceivedSetSeqNo }
    ::= { olsrv2RmibReceivedSetTable 1 }

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

    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-write
       STATUS      current
       DESCRIPTION
          "The type of the olsrv2RmibReceivedSetOrigAddr, as defined
           in the InetAddress MIB [RFC 4001]."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2RmibReceivedSetEntry 3 }

    olsrv2RmibReceivedSetOrigAddr  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      Unsigned32
       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 { olsrv2RmibProcessedSetOrigAddr,
               olsrv2RmibProcessedSetSeqNo }
    ::= { olsrv2RmibProcessedSetTable 1 }

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

    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-write
       STATUS      current
       DESCRIPTION
          "The type of the olsrv2RmibProcessedSetOrigAddr, as defined
           in the InetAddress MIB [RFC 4001]."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2RmibProcessedSetEntry 2 }

    olsrv2RmibProcessedSetOrigAddr  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      Unsigned32
       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 { olsrv2RmibReceivedSetOrigAddr,
               olsrv2RmibReceivedSetSeqNo }
    ::= { olsrv2RmibForwardedSetTable 1 }

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

    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-write
       STATUS      current
       DESCRIPTION
          "The type of the olsrv2RmibForwardedSetOrigAddr, as defined
           in the InetAddress MIB [RFC 4001]."
       REFERENCE
          "The OLSRv2 draft."
    ::= { olsrv2RmibForwardedSetEntry 2 }

    olsrv2RmibForwardedSetOrigAddr  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      Unsigned32
       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 advertized
         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
   --

   -- Note:  What notifications do we want for this MIB?




   --
   -- Compliance Statements
   --

   -- Note: need to update the Compliance section once the mib
   --       objects stabilize.


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

   --
   -- Units of Conformance
   --

   olsrv2ConfigObjectsGroup OBJECT-GROUP
      OBJECTS {
              olsrv2OperationalMode,
              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,
              olsrv2TibAdRemoteRouterSetIpAddrType,
              olsrv2TibAdRemoteRouterSetIpAddr,
              olsrv2TibAdRemoteRouterSetMaxSeqNo,
              olsrv2TibRouterTopologySetFromOrigIpAddrType,
              olsrv2TibRouterTopologySetFromOrigIpAddr,
              olsrv2TibRouterTopologySetToOrigIpAddrType,
              olsrv2TibRouterTopologySetToOrigIpAddr,
              olsrv2TibRouterTopologySetSeqNo,
              olsrv2TibRoutableAddressTopologySetFromOrigIpAddrType,
              olsrv2TibRoutableAddressTopologySetFromOrigIpAddr,
              olsrv2TibRoutableAddressTopologySetToOrigIpAddrType,
              olsrv2TibRoutableAddressTopologySetToOrigIpAddr,
              olsrv2TibRoutableAddressTopologySetSeqNo,
              olsrv2TibAttNetworksSetOrigIpAddr,
              olsrv2TibAttNetworksSetNetIpAddr,
              olsrv2TibAttNetworksSetNetIpAddrPrefixLen,
              olsrv2TibAttNetworksSetSeqNo,
              olsrv2TibAttNetworksSetDist,
              olsrv2TibRoutingSetDestIpAddr,
              olsrv2TibRoutingSetDestIpAddrPrefLen,
              olsrv2TibRoutingSetNextIfIpAddr,
              olsrv2TibRoutingSetLocalIfIpAddr,
              olsrv2RmibReceivedSetMsgType,
              olsrv2RmibReceivedSetOrigAddr,
              olsrv2RmibReceivedSetSeqNo,
              olsrv2RmibProcessedSetMsgType,
              olsrv2RmibProcessedSetOrigAddr,
              olsrv2RmibProcessedSetSeqNo,
              olsrv2RmibForwardedSetMsgType,
              olsrv2RmibForwardedSetOrigAddr,
              olsrv2RmibForwardedSetSeqNo
      }
      STATUS  current
      DESCRIPTION
         "Set of OLSRv2 state objects implemented
          in this module."
   ::= { olsrv2MIBGroups 2 }

   olsrv2PerfObjectsGroup  OBJECT-GROUP
      OBJECTS {
              olsrv2IfTcMessageXmits,
              olsrv2IfTcMessageRecvd,
              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 }

   END



 TOC 

8.  Security Considerations

[TODO] Each specification that defines one or more MIB modules MUST contain a section that discusses security considerations relevant to those modules. This section MUST be patterned after the latest approved template (available at http://www.ops.ietf.org/mib-security.html). Remember that the objective is not to blindly copy text from the template, but rather to think and evaluate the risks/vulnerabilities and then state/document the result of this evaluation.

[TODO] if you have any read-write and/or read-create objects, please include the following boilerplate paragraph.

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:

[TODO] else if there are no read-write objects in your MIB module, use the following boilerplate paragraph.

There are no management objects defined in this MIB module that have a MAX-ACCESS clause of read-write and/or read-create. So, if this MIB module is implemented correctly, then there is no risk that an intruder can alter or create any management objects of this MIB module via direct SNMP SET operations.

[TODO] if you have any sensitive readable objects, please include the following boilerplate paragraph.

Some of the readable objects in this MIB module (i.e., objects with a MAX-ACCESS other than not-accessible) may be considered sensitive or vulnerable in some network environments. It is thus important to control even GET and/or NOTIFY access to these objects and possibly to even encrypt the values of these objects when sending them over the network via SNMP. These are the tables and objects and their sensitivity/vulnerability:

[TODO] discuss what security the protocol used to carry the information should have. The following three boilerplate paragraphs should not be changed without very good reason. Changes will almost certainly require justification during IESG review.

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

It is RECOMMENDED that implementers consider the security features as provided by the SNMPv3 framework (see [RFC3410] (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

[TODO] In order to comply with IESG policy as set forth in http://www.ietf.org/ID-Checklist.html, every Internet-Draft that is submitted to the IESG for publication MUST contain an IANA Considerations section. The requirements for this section vary depending what actions are required of the IANA. see RFC4181 section 3.5 for more information on writing an IANA clause for a MIB module document.

[TODO] select an option and provide the necessary details.

Option #1:

     The MIB module in this document uses the following IANA-assigned
     OBJECT IDENTIFIER values recorded in the SMI Numbers registry:

     Descriptor        OBJECT IDENTIFIER value
     ----------        -----------------------

     sampleMIB  { mib-2 XXX }

Option #2:

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

Note well: prior to official assignment by the IANA, a draft document MUST use place holders (such as "XXX" above) rather than actual numbers. See RFC4181 Section 4.5 for an example of how this is done in a draft MIB module.

Option #3:

This memo includes no request to IANA.



 TOC 

10.  Contributors

This MIB document uses the template authored by D. Harrington which is based on contributions from the MIB Doctors, especially Juergen Schoenwaelder, Dave Perkins, C.M.Heard and Randy Presuhn.



 TOC 

11.  Acknowledgements



 TOC 

12.  References



 TOC 

12.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-10 (work in progress), September 2009 (TXT).
[REPORT] Cole, R., Macker, J., and A. Morton, “The MANET Report MIB,” June 2009.


 TOC 

12.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).


 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-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. Look into possible redundancy between the TIB Routing Set and the latest standard MIB forwarding table.
  2. Fill out the performance objects group.
  3. Complete notification group.
  4. Complete conformance group.
  5. Work on the relationship to other MIBs, IF-MIB, NHDP-MIB.
  6. Identify all objects requiring non-volatile storage in their DESCRIPTION clauses.
  7. Incorporate parameter relationship conditions into their DESCRIPTION clauses.
  8. Also, specify specific SNMP response to the snmp set request, i.e., 'generic error', 'bad value', etc.
  9. Fill in all of the DEFVAL within the configuration group objects with their correct values.
  10. Run through the MIB checker.
  11. Complete the security analysis and section.
  12. Clean up all of the 'Note:' statements within the body of the MIB.
  13. Cleanup all the [TODOs] from the MIB template.



 TOC 

Appendix C. 

***************************************************************
* 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
  Johns Hopkins University
  11100 Johns Hopkins Road, Room 257
  Laurel, Maryland 21073
  USA
Phone:  +1 443 778 6951
EMail:  robert.cole@jhuapl.edu
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/