<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY rfc2863 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2863.xml">
<!ENTITY rfc3411 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3411.xml">
<!ENTITY rfc3418 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3418.xml">
<!ENTITY rfc2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY rfc2578 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2578.xml">
<!ENTITY rfc2579 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2579.xml">
<!ENTITY rfc2580 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2580.xml">
<!ENTITY rfc4001 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4001.xml">
<!ENTITY SMF SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-manet-smf.xml">
<!ENTITY rfc3410 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3410.xml">
]>
<?rfc toc="yes"?>
<?rfc symrefs="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<?rfc strict="no"?>
<?rfc rfcedstyle="yes"?>
<rfc category="exp" docName="draft-ietf-manet-smf-mib-03" ipr="trust200902">
  <front>
    <title abbrev="The SMF MIB">Definition of Managed Objects for the Manet
    Simplified Multicast Framework Relay Set Process</title>

    <author fullname="Robert G. Cole" initials="R.G." surname="Cole">
      <organization>US Army CERDEC</organization>

      <address>
        <postal>
          <street>6010 Frankford Road</street>
          <city>Aberdeen Proving Ground</city>
          <region>Maryland</region>
          <code>21005</code>
          <country>USA</country>
        </postal>
        <phone>+1 443 395 8744</phone>
        <email>robert.g.cole@us.army.mil</email>
        <uri>http://www.cs.jhu.edu/~rgcole/</uri>
      </address>
    </author>

    <author fullname="Joseph Macker" initials="J.M." surname="Macker">
      <organization>Naval Research Laboratory</organization>

      <address>
        <postal>
          <street></street>
          <city>Washington</city>
          <region>D.C.</region>
          <code>20375</code>
          <country>USA</country>
        </postal>
        <email>macker@itd.nrl.navy.mil</email>
      </address>
    </author>

    <author fullname="Brian Adamson" initials="B.A." surname="Adamson">
      <organization>Naval Research Laboratory</organization>
      <address>
        <postal>
          <street></street>
          <city>Washington</city>
          <region>D.C.</region>
          <code>20375</code>
          <country>USA</country>
        </postal>
        <email>adamson@itd.nrl.navy.mil</email>
      </address>
    </author>

    <author fullname="Sean Harnedy" initials="S." surname="Harnedy">
      <organization>Booz Allen Hamilton</organization>
      <address>
        <postal>
          <street>333 City Boulevard West</street>
          <city>Orange</city>
          <region>CA</region>
          <code>92868</code>
          <country>USA</country>
        </postal>
        <email>harnedy_sean@bah.com</email>
      </address>
    </author>

    <date />

    <area>Routing</area>

    <workgroup>Internet Engineering Task Force</workgroup>

    <keyword>Network Management</keyword>

    <keyword>Management Information Base</keyword>

    <keyword>MIB</keyword>

    <keyword>SMIv2</keyword>

    <keyword>Routing</keyword>

    <keyword>MANET</keyword>

    <keyword>Multicast</keyword>

    <abstract>
      <t>This memo defines a portion of the Management Information Base (MIB)
      for use with network management protocols in the Internet community. In
      particular, it describes objects for configuring aspects of the
      Simplified Multicast Forwarding (SMF) process for Mobile Ad-Hoc 
      Networks (MANETs). The SMF-MIB also reports
      state information, performance metrics, and notifications. In addition
      to configuration, the additional state and performance information is
      useful to operators troubleshooting multicast forwarding
      problems.</t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">
      <t>This memo defines a portion of the Management Information Base (MIB)
      for use with network management protocols in the Internet community. In
      particular, it describes objects for configuring aspects of a process
      implementing Simplified Multicast Forwarding (SMF) 
      <xref target="I-D.ietf-manet-smf"></xref> for Mobile Ad-Hoc Networks (MANETs). 
      SMF provides multicast Duplicate
      Packet Detection (DPD) and supports algorithms for constructing an
      estimate of a MANET Minimum Connected Dominating
      Set (MCDS) for efficient multicast forwarding. The SMF-MIB also reports
      state information, performance metrics, and notifications. In addition
      to configuration, this additional state and performance information is
      useful to operators troubleshooting multicast forwarding
      problems.</t>
    </section>

    <section title="The Internet-Standard Management Framework">
      <t>For a detailed overview of the documents that describe the current
      Internet-Standard Management Framework, please refer to section 7 of RFC
      3410 <xref target="RFC3410"></xref>.</t>

      <t>Managed objects are accessed via a virtual information store, termed
      the Management Information Base or MIB. MIB objects are generally
      accessed through the Simple Network Management Protocol (SNMP). Objects
      in the MIB 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 <xref target="RFC2578"></xref>, STD 58, 
      RFC 2579 <xref target="RFC2579"></xref> and STD 58, 
      RFC 2580 <xref target="RFC2580"></xref>.</t>
    </section>

    <section title="Conventions">
      <t>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 <xref target="RFC2119"></xref>.</t>
    </section>

    <section title="Overview">
      <t>SMF provides methods for implementing DPD-based multicast forwarding
      with the optional use of Connected Dominating Set (CDS)-based relay sets. 
      The CDS provides a complete connected coverage of the nodes comprising 
      the MANET.  The MCDS is the smallest
      set of MANET nodes (comprising a connected cluster) which cover all the
      nodes in the cluster with their transmissions. As the density of the
      MANET nodes increase, the fraction of nodes required in an MCDS
      decreases. Using the MCDS as a multicast forwarding set then becomes an
      efficient multicast mechanism for MANETs.</t>

      <t>Various algorithms for the construction of estimates of the MCDS
      exist.  The Simplified Multicast Framework 
      <xref target="I-D.ietf-manet-smf"></xref> describes some of these. It further
      defines various operational modes for a node which is participating in
      the collective creation of the MCDS estimates. These modes depend upon
      the set of related MANET routing and discovery protocols and mechanisms
      in operation in the specific MANET node.</t>

      <t>A SMF router's MIB contains SMF process configuration parameters
      (e.g. specific CDS algorithm), state information (e.g., current
      membership in the CDS), performance counters (e.g., packet counters),
      and notifications.</t>

      <section title="SMF Management Model">
        <t>This section describes the management model for the SMF node
        process.</t>

        <t>Figure 1 (reproduced from Figure 4 of 
        <xref target="I-D.ietf-manet-smf"></xref>) shows the relationship between the SMF
        Relay Set selection algorithm and the related algorithms, processes
        and protocols running in the MANET nodes. The Relay Set Selection
        Algorithm (RSSA) can rely upon topology information gotten from the
        MANET Neighborhood Discovery Protocol (NHDP), from the specific MANET
        routing protocol running on the node, or from Layer 2 information
        passed up to the higher layer protocol processes.</t>

      <figure>
         <preamble />
            <artwork><![CDATA[
    ______________                ____________ 
   |              |              |            |
   | Neighborhood |              | Relay Set  |
   |  Discovery   |------------->| Selection  |
   |   Protocol   |   neighbor   | Algorithm  |
   |______________|     info     |____________|
          \                               /
           \                             /
    neighbor\                           / forwarding
      info*  \      _____________      /    status
              \    |             |    / 
               `-->| Forwarding  |<--'
                   |   Process   |
 ----------------->|_____________|----------------->
  incoming packet,                   forwarded packets
  interface id*, and
  previous hop*

           Figure 1: SMF Node Architecture
           ]]></artwork>
         <postamble />
      </figure>

      </section>

      <section title="Terms">
        <t>The following definitions apply throughout this document:</t>

        <t><list style="symbols">
          <t>Configuration Objects - switches, tables, objects which are
          initialized to default settings or set through the management
          interface defined by this MIB.</t>

          <t>Tunable Configuration Objects - objects whose values affect
          timing or attempt bounds on the SMF RS process.</t>

          <t>State Objects - automatically generated values which define the
          current operating state of the SMF RS process in the router.</t>

          <t>Performance Objects - automatically generated values which help
          an administrator or automated tool to assess the performance of the
          CDS multicast process on the router and the overall multicasting
          performance within the MANET routing domain.</t>
        </list></t>
      </section>
    </section>

    <section title="Structure of the MIB Module">
      <t>This section presents the structure of the SMF-MIB module. The
      objects are arranged into the following groups:</t>

      <t><list style="symbols">
        <t>smfMIBNotifications - defines the notifications associated with the
        SMF-MIB.</t>

        <t>smfMIBObjects - defines the objects forming the basis for the
        SMF-MIB. These objects are divided up by function into the following
        groups:</t>

        <t><list style="symbols">
          <t>Capabilities Group - This group contains the SMF objects that
          the device uses to advertise its local capabilities with respect
          to, e.g., the supported RSSAs.</t>

          <t>Configuration Group - This group contains the SMF objects that
          configure specific options that determine the overall operation of
          the SMF RSSA and the resulting multicast performance.</t>

          <t>State Group - Contains information describing the current state
          of the SMF RSSA process such as the Neighbor Table.</t>

          <t>Performance Group - Contains objects which help to characterize
          the performance of the SMF RSSA process, typically statistics
          counters.</t>
        </list></t>

        <t>smfMIBConformance - defines minimal and full conformance of
        implementations to this SMF-MIB.</t>
      </list></t>

      <section title="Textual Conventions">
        <!--Generic and Common Textual Conventions 
        can be found summarized at 
        http://www.ops.ietf.org/mib-common-tcs.html-->

        <t>The textual conventions defined within the SMF-MIB 
           are as follows:</t>
        <t><list style="symbols">
            <t>The SmfStatus is defined within the SMF-MIB.
               This contains the current operational status of the
               SMF process on an interface.</t>
            <t>The SmfOpModeID represents an index that identifies
                a specific SMF operational mode.</t>
            <t>The SmfRssaID represents an index that identifies, through
               reference, a specific RSSA available for 
               operation on the device.</t>
        </list></t>
      </section>

      <section title="The Capabilities Group">
        <t>The SMF device supports a set of capabilities. The list of
           capabilities which the device can advertise are:</t>
           <t><list style="symbols">
               <t>Operational Mode - topology information from NHDP, CDS-aware
                  unicast routing or Cross-layer from Layer 2.</t>

               <t>SMF RSSA - the specific RSSA operational on the device.  Note that
                  configuration, state and performance objects related to a specific
                  RSSA must be defined within another separate MIB.</t>
           </list></t>
      </section>

      <section title="The Configuration Group">
        <t>The SMF device is configured with a set of controls. 
           Some of the prominent
           configuration controls for the SMF device follow:</t>

        <t><list style="symbols">
          <t>Operational Mode - topology information from NHDP, CDS-aware
             unicast routing or Cross-layer from Layer 2.</t>

          <t>SMF RSSA - the specific RSSA operational on the device.</t>

          <t>Duplicate Packet detection for IPv4 - Identification-based or
             Hash-based DPD.</t>

          <t>Duplicate Packet detection for IPv6 - Identification-based or
             Hash-based DPD.</t>

          <t>SMF Type Message TLV - if NHDP mode is selected, then is the
             SMF Type Message TLV may be included in the NHDP exchanges.</t>

          <t>SMF Address Block TLV - if NHDP mode is selected, then is
             the SMF Address Block TLV should be included in the NHDP exchanges.</t>
        </list></t>
      </section>

      <section title="The State Group">
        <t>The State Subtree reports current state information, e.g.,</t>

        <t><list style="symbols">
          <t>Node RSS State - is the node currently in or out of the Relay
             Set.</t>

          <t>Neighbors Table - a table containing current neighbors and their
             operational RSSA.</t>
        </list></t>
      </section>

      <section title="The Performance Group">
        <t>The Performance subtree reports primarily counters that relate to
           SMF RSSA performance. The SMF performance counters consists of per
           node and per interface objects:</t> 
        
        <t><list style="symbols">
            <t>Total multicast packets received.</t>

            <t>Total multicast packets forwarded.</t>

            <t>Total duplicate multicast packets detected.</t>

            <t>Per interface statistics table with the following entries:</t>

            <t><list style="symbols">
              <t>Multicast packets received.</t>

              <t>Multicast packets forwarded.</t>

              <t>Duplicate multicast packets detected.</t>
            </list></t>
        </list></t>
      </section>

      <section title="The Notifications Group">
        <t>The Notifications Subtree contains the list of notifications
           supported within the SMF-MIB and their intended purpose or utility.
        </t>
      </section>
    </section>

    <section title="Relationship to Other MIB Modules">

      <section title="Relationship to the SNMPv2-MIB">
        <t>The 'system' group in the SNMPv2-MIB <xref target="RFC3418"></xref>
           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
           SMF-MIB does not duplicate those objects.</t>
      </section>

      <section title="MIB modules required for IMPORTS">
        <t>The textual conventions imported for use in the SMF-MIB are as follows.
           The MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, Counter32,
           Unsigned32, Integer32 and mib-2 textual conventions are imported from RFC 2578 
           <xref target="RFC2578" />.
           The TEXTUAL-CONVENTION, RowStatus and TruthValue textual conventions 
           are imported from RFC 2579 
           <xref target="RFC2579" />.
           The MODULE-COMPLIANCE, OBJECT-GROUP and NOTIFICATION-GROUP 
           textual conventions are imported from RFC 2580 
           <xref target="RFC2580" />.
           The InterfaceIndexOrZero textual convention is imported from RFC 2863 
           <xref target="RFC2863" />.
           The SnmpAdminString textual convention is imported from RFC 3411 
           <xref target="RFC3411" />.
           The InetAddress, InetAddressType and InetAddressPrefixLength 
           textual conventions are imported from RFC 4001 
           <xref target="RFC4001" />.</t>
      </section>

      <section title="Relationship to the Future RSSA-MIBs">
        <t>In a sense, the SMF-MIB is a general front-end to a set of, yet to be
        developed, RSSA-specific MIBs.  These RSSA-specific MIBs will define the objects
        for the configuration, state, performance and notification objects
        required for the operation of these specific RSSAs.  The SMF-MIB Capabilities
        Group allows the remote management station the ability to query the
        router to discover the set of supported RSSAs.</t>
      </section>

    </section>


    <!-- Definitions section -->
    <section title="Definitions">
      <t></t>

      <figure>
        <artwork><![CDATA[

   MANET-SMF-MIB DEFINITIONS ::= BEGIN

   IMPORTS

      MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
      Counter32, Integer32, TimeTicks, experimental
         FROM SNMPv2-SMI                          -- [RFC2578]

      TEXTUAL-CONVENTION, RowStatus, TruthValue
         FROM SNMPv2-TC                           -- [RFC2579]

      MODULE-COMPLIANCE, OBJECT-GROUP, 
      NOTIFICATION-GROUP
         FROM SNMPv2-CONF                         -- [RFC2580]

      InterfaceIndexOrZero
         FROM IF-MIB                              -- [RFC2863]

      SnmpAdminString
         FROM SNMP-FRAMEWORK-MIB                  -- [RFC3411]

      InetAddress, InetAddressType,
      InetAddressPrefixLength
         FROM INET-ADDRESS-MIB                    -- [RFC4001]
      ;

   manetSmfMIB MODULE-IDENTITY
      LAST-UPDATED "201110021300Z"  -- October 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:   Robert G. Cole
                     US Army CERDEC
                     Space and Terrestrial Communications
                     6010 Frankford Road
                     Aberdeen Proving Ground, MD 21005
                     USA
                     +1 443 395-8744
                     robert.g.cole@us.army.mil
                     http://www.cs.jhu.edu/~rgcole/

                     Joseph Macker
                     Naval Research Laboratory
                     Washington, D.C. 20375
                     USA
                     macker@itd.nrl.navy.mil

                     Brian Adamson
                     Naval Research Laboratory
                     Washington, D.C. 20375
                     USA
                     adamson@itd.nrl.navy.mil

                     Sean Harnedy
                     Booz Allen Hamilton
                     333 City Boulevard West
                     Orange, CA 92868
                     USA
                     +1 714 938-3898
                     harnedy_sean@bah.com"

      DESCRIPTION
         "This MIB module contains managed object definitions for
          the Manet SMF RSSA process defined in: 

          [SMF] Macker, J.(ed.), 
          Simplified Multicast Forwarding draft-ietf-manet-smf-10,
          March 06, 2010. 

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

        -- Revision History
        REVISION    "201110021300Z"   -- October 02, 2011
        DESCRIPTION
           "Updated 6th revision of the
            draft of this MIB module published as
            draft-ietf-manet-smf-mib-03.txt. The changes
            made in this revision include:
              - Added some notes to the MIB module
              - Clarified and defined default settings
            "
        REVISION    "201101161300Z"   -- January 16, 2011
        DESCRIPTION
           "Updated 5th revision of the
            draft of this MIB module published as
            draft-ietf-manet-smf-mib-02.txt. The changes
            made in this revision include:
              - Added the Notification Group and cleaned
                up the Conformance section
              - Completed the TEXTUAL CONVENTION for the
                smfOpMode.
              - Completed the Description clauses of 
                several objects within the MIB.
              - Removed the routerPriority object.
              - Added the definition of a smfRouterID
                object and associated smfRouterIDAddrType
                object.
            "
        REVISION    "200910261300Z"   -- October 26, 2009
        DESCRIPTION
           "Updated draft of this MIB module published as
            draft-ietf-manet-smf-mib-01.txt. A few changes
            were made in the development of this draft.
            Specifically, the following changes were made:
               - Updated the textual material, included
                 section on IMPORTS, relationship to other
                 MIBs, etc.
           "
        REVISION    "200904211300Z"   -- April 21, 2009
        DESCRIPTION
           "Updated draft of this MIB module published as
            draft-ietf-manet-smf-mib-00.txt. A few changes
            were made in the development of this draft.
            Specifically, the following changes were made:
               - Removed the smfGatewayFilterTable from this
                 draft.  It is a useful construct, e.g.,
                 an IPTABLES-MIB, but might best be handled
                 as a seperate MIB and worked within a
                 security focused working group. 
               - Removed the smfReportsGroup. This capability
                 is being replaced with a new and more general
                 method for offline reporting.  This is being
                 worked as a new MIB module refered to as the
                 REPORT-MIB.
               - Rev'd as a new MANET WG document.
           "
        REVISION    "200902271300Z"   -- February 27, 2009
        DESCRIPTION
           "Updated draft of this MIB module published as
            draft-cole-manet-smf-mib-02.txt. Fairly extensive
            revisions and additions to this MIB were made
            in this version. Specifically, the following
            changes were made in development of this version:
               - added a Capabilities Group within the Objects
                 Group to allow the device to report supported
                 capabilities, e.g., RSSAs supported.
               - added administrative status objects for device
                 and interfaces
               - added multicast address forwarding tables, both
                 for configured (within Configuration Group) and
                 discovered (within the State Group).
               - added additional Performance counters related
                 to DPD functions.
               - Split up the performance counters into IPv4
                 and IPv6, for both global and per interface
                 statistics.
               - Split out the reports capability into a seperate
                 Reports Group under the Objects Group.
           "
        REVISION    "200811031300Z"   -- November 03, 2008
        DESCRIPTION
           "Updated draft of this MIB module published as
            draft-cole-manet-smf-mib-01.txt. Added gateway filter
            table and reports capabilities following rmon."
        REVISION    "200807071200Z"   -- July 07, 2008
        DESCRIPTION
           "Initial draft of this MIB module published as
            draft-cole-manet-smf-mib-00.txt."
        -- RFC-Editor assigns XXXX
        ::= { experimental 998 }   -- to be assigned by IANA



   --
   -- TEXTUAL CONVENTIONs
   --

   SmfStatus ::= TEXTUAL-CONVENTION
       STATUS       current
       DESCRIPTION
          "An indication of the operability of a SMF
          function or feature.  For example, the status
          of an interface: 'enabled' indicates that
          it is performing SMF functions,
          and 'disabled' indicates that it is not."
       SYNTAX  INTEGER { 
                        enabled (1), 
                        disabled (2) 
               }

   SmfOpModeID ::= TEXTUAL-CONVENTION
       STATUS       current
       DESCRIPTION
           "An index that identifies through reference to a specific
            SMF operations mode.  There are basically three styles
            of SMF operation with reduced relay sets: 

              Independent operation - SMF performs its own relay
                  set selection using information from an associated 
                  MANET NHDP process.

              CDS-aware unicast routing operation - a coexistent 
                  unicast routing protocol provides dynamic relay 
                  set state based upon its own control plane 
                  CDS or neighborhood discovery information.

              Cross-layer operation -  SMF operates using
                  neighborhood status and triggers from a 
                  cross-layer information base for dynamic relay 
                  set selection and maintenance
           "
       SYNTAX  INTEGER { 
                        independent (1), 
                        routing (2),
                        crossLayer (3)
                        -- future (4-255) 
               }

   SmfRssaID ::= TEXTUAL-CONVENTION
       STATUS       current
       DESCRIPTION
           "An index that identifies through reference to a specific
            RSSA algorithms.  Several are currently defined
            in the appendix of
           "
       SYNTAX      INTEGER {
                           cF(1),
                           sMPR(2),
                           eCDS(3),
                           mprCDS(4)
                           -- future(5-127)
                           -- noStdAction(128-239)
                           -- experimental(240-255)
                   }



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

   smfMIBNotifications OBJECT IDENTIFIER ::= { manetSmfMIB 0 }
   smfMIBObjects       OBJECT IDENTIFIER ::= { manetSmfMIB 1 }
   smfMIBConformance   OBJECT IDENTIFIER ::= { manetSmfMIB 2 }



   --
   -- smfMIBObjects Assignments:
   --      smfCapabilitiesGroup  - 1
   --      smfConfigurationGroup - 2
   --      smfStateGroup         - 3
   --      smfPerformanceGroup   - 4
   --

   --
   -- smfCapabilitiesGroup
   --
   --    This group contains the SMF objects that identify specific
   --    capabilities within this device related to SMF functions.
   --

   smfCapabilitiesGroup  OBJECT IDENTIFIER ::= { smfMIBObjects 1 }

  --
   -- SMF Operational Mode Capabilities Table
   --

   smfOpModeCapabilitiesTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF SmfOpModeCapabilitiesEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "The smfOpModeCapabilitiesTable identifies the
            resident set of SMF Operational Modes on this
            router.
           "
       ::= { smfCapabilitiesGroup 1 }

   smfOpModeCapabilitiesEntry OBJECT-TYPE
       SYNTAX      SmfOpModeCapabilitiesEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "Information about a particular operational
            mode.
           "
       INDEX   { smfOpModeCapabilitiesID }
       ::= { smfOpModeCapabilitiesTable 1 }

   SmfOpModeCapabilitiesEntry ::= SEQUENCE {
         smfOpModeCapabilitiesID              SmfOpModeID,
         smfOpModeCapabilitiesName            SnmpAdminString,
         smfOpModeCapabilitiesReference       SnmpAdminString
   }

   smfOpModeCapabilitiesID     OBJECT-TYPE
       SYNTAX      SmfOpModeID
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "The index for this entry.  This object identifies
            the particular operational mode for this device.
           "
       ::= { smfOpModeCapabilitiesEntry 1 }

   smfOpModeCapabilitiesName OBJECT-TYPE
       SYNTAX      SnmpAdminString
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The textual name of this operational
            mode.  Current operational modes include:
            Independent Mode, CDS-aware Routing Mode,
            and Cross-layer Mode.  Others may be defined
            in future revisions of [SMF].
           "
       ::= { smfOpModeCapabilitiesEntry 2 }

   smfOpModeCapabilitiesReference OBJECT-TYPE
       SYNTAX      SnmpAdminString
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "This object contains a reference to the document
            that defines this operational mode.
           "
       ::= { smfOpModeCapabilitiesEntry 3 }


   --
   -- SMF RSSA Capabilities Table
   --

   smfRssaCapabilitiesTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF SmfRssaCapabilitiesEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "The smfRssaCapabilitiesTable contains 
            reference to the specific set of RSSAs
            currently supported on this device.
           "
       ::= { smfCapabilitiesGroup 2 }

   smfRssaCapabilitiesEntry OBJECT-TYPE
       SYNTAX      SmfRssaCapabilitiesEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "Information about a particular RSSA
            algorithm."
       INDEX   { smfRssaCapabilitiesID }
       ::= { smfRssaCapabilitiesTable 1 }

   SmfRssaCapabilitiesEntry ::= SEQUENCE {
         smfRssaCapabilitiesID              SmfRssaID,
         smfRssaCapabilitiesName            SnmpAdminString,
         smfRssaCapabilitiesReference       SnmpAdminString
   }

   smfRssaCapabilitiesID     OBJECT-TYPE
       SYNTAX      SmfRssaID
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "The index for this entry.  This object identifies
            the particular RSSA algorithm in this MIB 
            module.  Example RSSAs are found in the
            appendix of [SMF].  The default for this is the
            Classical Flooding algorithm.  All compliant
            SMF forwarders must support Classical Flooding.
            Hence, at least one entry in this table must
            exist with a smfRssaCapabilitiesID of '1'."
       DEFVAL { 1 }
       ::= { smfRssaCapabilitiesEntry 1 }

   smfRssaCapabilitiesName OBJECT-TYPE
       SYNTAX      SnmpAdminString
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The textual name of this RSSA algorithm.
            Currently defined names are:
                Classical Flooding - cF,
                Source-based MultiPoint
                    Relay - sMPR,
                Essential Connecting Dominating
                    Set - eCDS,
                MultiPoint Relay Connected
                    Dominating Set - mprCDS.
           "
       ::= { smfRssaCapabilitiesEntry 2 }

   smfRssaCapabilitiesReference OBJECT-TYPE
       SYNTAX      SnmpAdminString
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "This object contains a published reference 
            to the document that defines this algorithm.
           "
       ::= { smfRssaCapabilitiesEntry 3 }




   --
   -- smfConfigurationGroup
   --
   --    This group contains the SMF objects that configure specific
   --    options that determine the overall performance and operation
   --    of the multicast forwarding process for the router device
   --    and its interfaces.
   --

   smfConfigurationGroup  OBJECT IDENTIFIER ::= { smfMIBObjects 2 }

   smfAdminStatus  OBJECT-TYPE
      SYNTAX      SmfStatus
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "The configured status of the SMF process
          on this device.  Enabled(1) means that
          SMF is configured to run on this device.
          Disabled(2) mean that the SMF process
          is configured off.

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

   smfRouterIDAddrType  OBJECT-TYPE
      SYNTAX      InetAddressType
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "The address type of the address used for
          SMF ID of this router as specified
          in the 'smfRouterID' next.

          This can be set by the management station,
          the smfRouterID must be a routable address
          assigned to this router.  If the management
          station does not assign this value, then the
          router should choose the highest routable
          IP address assigned to this router.

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

   smfRouterID  OBJECT-TYPE
      SYNTAX      InetAddress
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "The IP address used as the SMF router ID.
          This can be set by the management station.
          If not explicitly set, then the device
          should select a routable IP address
          assigned to this router for use as
          the 'smfRouterID'.

          The smfRouterID is a logical identification 
          that MUST be consistent across interoperating 
          SMF neighborhoods and it is RECOMMENDED to be 
          chosen as the numerically largest address 
          contained in a node's 'Neighbor Address List'
          as defined in NHDP.  A smfRouterID MUST be 
          unique within the scope of the operating 
          MANET network regardless of the method used 
          for selecting it.

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

   smfConfiguredOpMode  OBJECT-TYPE
      SYNTAX      INTEGER {
                          withNHDP(1),
                          cdsAwareRouting(2),
                          crossLayer(3),
                          other(4)
                          }
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "The SMF RSS node operational mode as defined
          in the TEXTUAL CONVENTION for `SmfOpModeID'
          and in [SMF]..

          The value withNHDP(1) indicates Independent
          Mode of operation.

          The value cdsAwareRouting(2) indicates 
          CDS-aware Routing Mode of operation.

          The value crossLayer(3) indicates 
          Cross-layer Mode of operation.

          The default value for this object is
          withNHDP(1).

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


   smfConfiguredRssa  OBJECT-TYPE
      SYNTAX      SmfRssaID
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "The SMF RSS currently operational algorithm
          as defined in the TEXTUAL CONVENTION for
          `SmfRssaID' and in [SMF].

           The defluat value for this object is
           cF(1), i.e., Classical Flooding.

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

   smfRssaMember  OBJECT-TYPE
      SYNTAX      INTEGER {
                          potential(1),
                          always(2),
                          never(3)
                          }
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "The RSSA downselects a set of forwarders for
          multicast forwarding.  Sometimes it is useful
          to force an agent to be included or excluded
          from the resulting RSS.  This object is a
          switch to allow for this behavior.

          The value potential(1) allows the selected
          RSSA to determine if this agent is included
          or excluded from the RSS.

          The value always(1) forces the selected
          RSSA include this agent in the RSS.

          The value never(3) forces the selected
          RSSA to exclude this agent from the RSS.

          The default setting for this object is
          'potential(1)'.  Other settings could pose
          operational risks under certain conditions.

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

   smfIpv4Dpd  OBJECT-TYPE
      SYNTAX      INTEGER {
                          hashBased(1),
                          identificationBased(2)
                          }
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "The current method for IPv4 duplicate packet
          detection.

          The value hashBased(1) indicates that the
          routers duplicate packet detection is based
          upon comparing a hash over the packet fields.
          This is the default setting for this object.

          The value identificationBased(2)
          indicates that the duplicate packet
          detection relies upon header information
          in the multicast packets to identify 
          previously received packets.

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

   smfIpv6Dpd  OBJECT-TYPE
      SYNTAX      INTEGER {
                          hashBased(1),
                          identificationBased(2)
                          }
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "The current method for IPv6 duplicate packet
          detection.

          The values indicate the type of method used
          for duplicate packet detection as described 
          the previous description for the object
          `smfIpv4Dpd'.

          The default value for this object is
          hashBased(1).

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

   smfMaxPktLifetime  OBJECT-TYPE
      SYNTAX      Integer32 (0..65535)
      UNITS       "Seconds"
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "The estimate of the network packet
          traversal time.

          This object is persistent and when written
          the entity SHOULD save the change to 
          non-volatile storage.
         "
      DEFVAL { 60 }
   ::= { smfConfigurationGroup 9 }

   smfDpdMaxMemorySize  OBJECT-TYPE
      SYNTAX      Integer32 (0..65535)
      UNITS       "Kilo-Bytes"
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "The locally reserved memory for storage
          of cached DPD records for both IPv4 and
          IPv6 methods.

          The local SMF device should protect itself
          against the SNMP manager from requesting
          too large a memory value.  If this is the case,
          an error indication should be returned in response
          to the SNMP SET request.

          This object is persistent and when written
          the entity SHOULD save the change to 
          non-volatile storage.
         "
      DEFVAL { 1024 }
   ::= { smfConfigurationGroup 10 }

   smfDpdEntryMaxLifetime  OBJECT-TYPE
      SYNTAX      Integer32 (0..65525)
      UNITS       "Seconds"
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "The maximum lifetime of a cached DPD
          record in the local device storage.

          If the memory is running low prior to the 
          MaxLifetimes being exceeded, the local SMF 
          devices should purge the oldest records first.

          This object is persistent and when written
          the entity SHOULD save the change to 
          non-volatile storage.
         "
      DEFVAL { 600 }
   ::= { smfConfigurationGroup 11 }


   --
   -- Configuration of messages to be included in 
   -- NHDP message exchanges in support of SMF
   -- operations.
   --

   smfNhdpRssaMesgTLVIncluded  OBJECT-TYPE
      SYNTAX      TruthValue
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "Indicates whether the associated NHDP messages
          include the RSSA Message TLV, or not.  This
          is an optional SMF operational setting. 
          The value true(1) indicates that this TLV is
          included; the value false(2) indicates that it
          is not included.

          It is RECOMMENDED that the RSSA Message TLV
          be included in the NHDP messages.

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

   smfNhdpRssaAddrBlockTLVIncluded  OBJECT-TYPE
      SYNTAX      TruthValue
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "Indicates whether the associated NHDP messages
          include the RSSA Address Block TLV, or not.
          This is an optional SMF operational setting.
          The value true(1) indicates that this TLV is
          included; the value false(2) indicates that it
          is not included.

          The smfNhdpRssaAddrBlockTLVIncluded is optional 
          in all cases as it depends on the existence of 
          an address block which may not be present.  
          If this SMF device is configured with NHDP,
          then this object should be set to 'true(1)'.

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



   --
   -- Table identifying configured multicast addresses to be forwarded.
   --

   smfConfiguredAddrForwardingTable  OBJECT-TYPE
      SYNTAX     SEQUENCE OF SmfConfiguredAddrForwardingEntry
      MAX-ACCESS not-accessible
      STATUS     current
      DESCRIPTION
         "The (conceptual) table containing information on multicast
          addresses which are to be forwarded by the SMF process.

          Entries in this table are configured.  As well, addresses
          to be forwarded by the SMF device can be dynamically
          discovered by other means.  The corresponding state 
          table, smfDiscoveredAddrForwardingTable, contains
          these additional, dynamically discovered address for
          forwarding.

          Each row is associated with a range of multicast 
          addresses, and ranges for different rows must be disjoint.

          The objects in this table are persistent and when written
          the entity SHOULD save the change to 
          non-volatile storage.
         "
   ::= { smfConfigurationGroup 15 }

   smfConfiguredAddrForwardingEntry OBJECT-TYPE
      SYNTAX     SmfConfiguredAddrForwardingEntry
      MAX-ACCESS not-accessible
      STATUS     current
      DESCRIPTION
         "An entry (conceptual row) containing the information on a
          particular multicast scope."
      INDEX { smfConfiguredAddrForwardingAddrType, 
              smfConfiguredAddrForwardingFirstAddr }
      ::= { smfConfiguredAddrForwardingTable 1 }

   SmfConfiguredAddrForwardingEntry ::= SEQUENCE {
      smfConfiguredAddrForwardingAddrType      InetAddressType,
      smfConfiguredAddrForwardingFirstAddr     InetAddress,
      smfConfiguredAddrForwardingLastAddr      InetAddress,
      smfConfiguredAddrForwardingStatus        RowStatus
   }

   smfConfiguredAddrForwardingAddrType OBJECT-TYPE
      SYNTAX     InetAddressType
      MAX-ACCESS not-accessible
      STATUS     current
      DESCRIPTION
         "The type of the addresses in the multicast forwarding
          range.  Legal values correspond to the subset of 
          address families for which multicast address allocation 
          is supported."
   ::= { smfConfiguredAddrForwardingEntry 1 }

   smfConfiguredAddrForwardingFirstAddr OBJECT-TYPE
      SYNTAX     InetAddress (SIZE(0..20))
      MAX-ACCESS not-accessible
      STATUS     current
      DESCRIPTION
         "The first address in the multicast scope range.  The type
          of this address is determined by the value of the
          smfConfiguredAddrForwardingAddrType object."
   ::= { smfConfiguredAddrForwardingEntry 2 }

   smfConfiguredAddrForwardingLastAddr OBJECT-TYPE
      SYNTAX     InetAddress (SIZE(0..20))
      MAX-ACCESS read-create
      STATUS     current
      DESCRIPTION
         "The last address in the multicast scope range.  
          The type of this address is determined by the 
          value of the smfConfiguredAddrForwardingAddrType 
          object."
   ::= { smfConfiguredAddrForwardingEntry 3 }

   smfConfiguredAddrForwardingStatus OBJECT-TYPE
      SYNTAX     RowStatus
      MAX-ACCESS read-create
      STATUS     current
      DESCRIPTION
         "The status of this row, by which new entries may be
          created, or old entries deleted from this table.  If write
          access is supported, the other writable objects in this
          table may be modified even while the status is `active'."
   ::= { smfConfiguredAddrForwardingEntry 4 }



   --
   -- SMF Interfaces Configuration Table
   --

   smfInterfaceTable  OBJECT-TYPE
      SYNTAX      SEQUENCE OF SmfInterfaceEntry
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
         "The SMF Interface Table describes the SMF
          interfaces that are participating in the 
          SMF packet forwarding process. The ifIndex is 
          from the interfaces group defined in the 
          Interfaces Group MIB.

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

   smfInterfaceEntry OBJECT-TYPE
      SYNTAX      SmfInterfaceEntry
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
         "The SMF interface entry describes one SMF
          interface as indexed by its ifIndex."
      INDEX { smfIfIndex }
   ::= { smfInterfaceTable 1 }

   SmfInterfaceEntry ::=
      SEQUENCE {
         smfIfIndex        InterfaceIndexOrZero, 
         smfIfAdminStatus  SmfStatus,
         smfIfRowStatus    RowStatus
         }

   smfIfIndex  OBJECT-TYPE
      SYNTAX      InterfaceIndexOrZero
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "The ifIndex for this SMF interface."
      ::= { smfInterfaceEntry 1 }

   smfIfAdminStatus OBJECT-TYPE
      SYNTAX      SmfStatus
      MAX-ACCESS  read-create
      STATUS      current
      DESCRIPTION
          "The SMF interface's administrative status.
          The value 'enabled' denotes that the interface
          is running the SMF forwarding process.
          The value 'disabled' denotes that the interface is
          external to the SMF forwarding process.
          "
      ::= { smfInterfaceEntry 2 }

   smfIfRowStatus  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."
   ::= { smfInterfaceEntry 3 }



   --
   -- smfStateGroup
   --
   --    Contains information describing the current state of the SMF
   --    process such as the current inclusion in the RS or not.
   --

   smfStateGroup  OBJECT IDENTIFIER ::= { smfMIBObjects 3 }

   smfNodeRsStatusIncluded  OBJECT-TYPE
      SYNTAX      TruthValue
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "The current status of the SMF node in the context of
          the MANETs relay set. A value of true(1) indicates
          that the node is currently part of the MANET Relay
          Set. A value of false(2) indicates that the node
          is currently not part of the MANET Relay Set."
   ::= { smfStateGroup 1 }

   smfDpdMemoryOverflow  OBJECT-TYPE
      SYNTAX      Counter32
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "The number of times that the memory for caching
          records for DPD overran and records had to be flushed.
          The number of records to be flushed upon a buffer
          overflow is an implementation specific decision.
         "
   ::= { smfStateGroup 2 }



   --
   -- Dynamically Discovered Multicast Addr Table
   --

   smfDiscoveredAddrForwardingTable  OBJECT-TYPE
      SYNTAX     SEQUENCE OF SmfDiscoveredAddrForwardingEntry
      MAX-ACCESS not-accessible
      STATUS     current
      DESCRIPTION
         "This state  table, smfDiscoveredAddrForwardingTable
          contains additional, dynamically discovered address
          for forwarding.

          Each row is associated with a range of 
          multicast addresses, and ranges for different rows 
          must be disjoint.
         "
   ::= { smfStateGroup 3 }

   smfDiscoveredAddrForwardingEntry OBJECT-TYPE
      SYNTAX     SmfDiscoveredAddrForwardingEntry
      MAX-ACCESS not-accessible
      STATUS     current
      DESCRIPTION
         "An entry (conceptual row) containing the information on a
          particular multicast scope."
      INDEX { smfDiscoveredAddrForwardingAddrType, 
              smfDiscoveredAddrForwardingFirstAddr }
      ::= { smfDiscoveredAddrForwardingTable 1 }

   SmfDiscoveredAddrForwardingEntry ::= SEQUENCE {
      smfDiscoveredAddrForwardingAddrType   InetAddressType,
      smfDiscoveredAddrForwardingFirstAddr  InetAddress,
      smfDiscoveredAddrForwardingLastAddr   InetAddress
   }

   smfDiscoveredAddrForwardingAddrType OBJECT-TYPE
      SYNTAX     InetAddressType
      MAX-ACCESS not-accessible
      STATUS     current
      DESCRIPTION
         "The type of the addresses in the multicast forwarding
          range.  Legal values correspond to the subset of 
          address families for which multicast address allocation 
          is supported."
   ::= { smfDiscoveredAddrForwardingEntry 1 }

   smfDiscoveredAddrForwardingFirstAddr OBJECT-TYPE
      SYNTAX     InetAddress (SIZE(0..20))
      MAX-ACCESS not-accessible
      STATUS     current
      DESCRIPTION
         "The first address in the multicast scope range.  The type
          of this address is determined by the value of the
          smfConfiguredAddrForwardingAddrType object."
   ::= { smfDiscoveredAddrForwardingEntry 2 }

   smfDiscoveredAddrForwardingLastAddr OBJECT-TYPE
      SYNTAX     InetAddress (SIZE(0..20))
      MAX-ACCESS read-create
      STATUS     current
      DESCRIPTION
         "The last address in the multicast scope range.  
          The type of this address is determined by the 
          value of the smfConfiguredAddrForwardingAddrType 
          object."
   ::= { smfDiscoveredAddrForwardingEntry 3 }


   --
   -- SMF Neighbor Table
   --

   smfNeighborTable  OBJECT-TYPE
      SYNTAX       SEQUENCE OF SmfNeighborEntry
      MAX-ACCESS   not-accessible
      STATUS       current
      DESCRIPTION
         "The SMF NeighborTable describes the
          current neighbor nodes, their address
          and SMF RSSA and the interface on which
          they can be reached."
      REFERENCE
         "Simplified Multicast Forwarding for MANET 
          (SMF), Macker, J., July 2009. 
          Section 7: SMF Neighborhood Discovery 
          Requirements."
   ::= { smfStateGroup 4 }

   smfNeighborEntry  OBJECT-TYPE
      SYNTAX       SmfNeighborEntry
      MAX-ACCESS   not-accessible
      STATUS       current
      DESCRIPTION
         "The SMF Neighbor Table contains the
          set of one-hop neighbors, the interface
          they are reachable on and the SMF RSSA
          they are currently running."
      INDEX { smfNeighborIpAddrType,
              smfNeighborIpAddr,
              smfNeighborPrefixLen }
   ::= { smfNeighborTable 1 }

   SmfNeighborEntry ::=
      SEQUENCE {
         smfNeighborIpAddrType        InetAddressType,
         smfNeighborIpAddr            InetAddress,
         smfNeighborPrefixLen         InetAddressPrefixLength,
         smfNeighborRSSA              SmfRssaID,
         smfNeighborNextHopInterface  InterfaceIndexOrZero
         }

   smfNeighborIpAddrType  OBJECT-TYPE
      SYNTAX      InetAddressType
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
         "The neighbor IP address type."
   ::= { smfNeighborEntry 1 }

   smfNeighborIpAddr  OBJECT-TYPE
      SYNTAX      InetAddress
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
         "The neighbor Inet IPv4 or IPv6 address."
   ::= { smfNeighborEntry 2 }

   smfNeighborPrefixLen  OBJECT-TYPE
      SYNTAX      InetAddressPrefixLength
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
         "The prefix length. This is a decimal value that
          indicates the number of contiguous, higher-order
          bits of the address that make up the network
          portion of the address."
   ::= { smfNeighborEntry 3 }

   smfNeighborRSSA  OBJECT-TYPE
      SYNTAX       SmfRssaID
      MAX-ACCESS   read-only
      STATUS       current
      DESCRIPTION
         "The current RSSA running on the neighbor.
          The list is identical to that described
          above for the smfRssa object."
   ::= { smfNeighborEntry 4 }

   smfNeighborNextHopInterface OBJECT-TYPE
      SYNTAX       InterfaceIndexOrZero
      MAX-ACCESS   read-only
      STATUS       current
      DESCRIPTION
         "The interface ifIndex over which the
          neighbor is reachable in one-hop."
   ::= { smfNeighborEntry 5 }




   --
   -- SMF Performance Group
   --
   --    Contains objects which help to characterize the
   --    performance of the SMF RSSA process, such as statistics
   --    counters. There are two types of SMF RSSA statistics:
   --    global counters and per interface counters.
   --

   smfPerformanceGroup  OBJECT IDENTIFIER ::= { smfMIBObjects 4 }

   smfGlobalPerfGroup  OBJECT IDENTIFIER ::= { smfPerformanceGroup 1 }

   --
   -- IPv4 packet counters
   --

   smfIpv4MultiPktsRecvTotal  OBJECT-TYPE
      SYNTAX      Counter32
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "A counter of the total number of
          multicast IPv4 packets received by the
          device."
   ::= { smfGlobalPerfGroup 1 }

   smfIpv4MultiPktsForwardedTotal  OBJECT-TYPE
      SYNTAX      Counter32
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "A counter of the total number of
          multicast IPv4 packets forwarded by the
          device."
   ::= { smfGlobalPerfGroup 2 }

   smfIpv4DuplMultiPktsDetectedTotal  OBJECT-TYPE
      SYNTAX      Counter32
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "A counter of the total number of duplicate
          multicast IPv4 packets detected by the
          device."
   ::= { smfGlobalPerfGroup 3 }

   smfIpv4DroppedMultiPktsTTLExceededTotal  OBJECT-TYPE
      SYNTAX      Counter32
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "A counter of the total number of dropped
          multicast IPv4 packets by the
          device due to TTL exceeded."
   ::= { smfGlobalPerfGroup 4 }

   smfIpv4TTLLargerThanPreviousTotal  OBJECT-TYPE
      SYNTAX      Counter32
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "A counter of the total number of IPv4 packets
          recieved which have a TTL larger than that
          of a previously received identical packet.
         "
   ::= { smfGlobalPerfGroup 5 }

   --
   -- IPv6 packet counters
   --

   smfIpv6MultiPktsRecvTotal  OBJECT-TYPE
      SYNTAX      Counter32
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "A counter of the total number of
          multicast IPv6 packets received by the
          device."
   ::= { smfGlobalPerfGroup 6 }

   smfIpv6MultiPktsForwardedTotal  OBJECT-TYPE
      SYNTAX      Counter32
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "A counter of the total number of
          multicast IPv6 packets forwarded by the
          device."
   ::= { smfGlobalPerfGroup 7 }

   smfIpv6DuplMultiPktsDetectedTotal  OBJECT-TYPE
      SYNTAX      Counter32
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "A counter of the total number of duplicate
          multicast IPv6 packets detected by the
          device."
   ::= { smfGlobalPerfGroup 8 }

   smfIpv6DroppedMultiPktsTTLExceededTotal  OBJECT-TYPE
      SYNTAX      Counter32
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "A counter of the total number of dropped
          multicast IPv6 packets by the
          device due to TTL exceeded."
   ::= { smfGlobalPerfGroup 9 }

   smfIpv6TTLLargerThanPreviousTotal  OBJECT-TYPE
      SYNTAX      Counter32
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "A counter of the total number of IPv6 packets
          recieved which have a TTL larger than that
          of a previously recived identical packet.
         "
   ::= { smfGlobalPerfGroup 10 }

   smfIpv6HAVAssistsReqdTotal  OBJECT-TYPE
      SYNTAX      Counter32
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "A counter of the total number of IPv6 packets
          recieved which required the HAV assist for DPD.
         "
   ::= { smfGlobalPerfGroup 11 }

   smfIpv6DpdHeaderInsertionsTotal  OBJECT-TYPE
      SYNTAX      Counter32
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "A counter of the total number of IPv6 packets
          recieved which the device inserted the
          DPD header option.
         "
   ::= { smfGlobalPerfGroup 12 }


   --
   -- Per SMF Interface Performance Table
   --

   smfInterfacePerfGroup OBJECT IDENTIFIER ::= { smfPerformanceGroup 2 }

   smfIpv4InterfacePerfTable OBJECT-TYPE
      SYNTAX       SEQUENCE OF SmfIpv4InterfacePerfEntry
      MAX-ACCESS   not-accessible
      STATUS       current
      DESCRIPTION
         "The SMF Interface Performance Table
          describes the SMF statistics per
          interface."
   ::= { smfInterfacePerfGroup 1 }

   smfIpv4InterfacePerfEntry OBJECT-TYPE
      SYNTAX       SmfIpv4InterfacePerfEntry
      MAX-ACCESS   not-accessible
      STATUS       current
      DESCRIPTION
         "The SMF Interface Performance entry
          describes the statistics for a particular
          node interface."
      INDEX { smfIpv4IfPerfIfIndex }
   ::= { smfIpv4InterfacePerfTable 1 }

   SmfIpv4InterfacePerfEntry ::=
      SEQUENCE {
         smfIpv4IfPerfIfIndex                    InterfaceIndexOrZero,
         smfIpv4MultiPktsRecvPerIf               Counter32,
         smfIpv4MultiPktsForwardedPerIf          Counter32,
         smfIpv4DuplMultiPktsDetectedPerIf       Counter32,
         smfIpv4DroppedMultiPktsTTLExceededPerIf Counter32,
         smfIpv4TTLLargerThanPreviousPerIf       Counter32
         }

   smfIpv4IfPerfIfIndex  OBJECT-TYPE
      SYNTAX      InterfaceIndexOrZero
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
         "The ifIndex for this node interface
          that is collecting this set of
          performance management statistics."
   ::= { smfIpv4InterfacePerfEntry 1 }

   smfIpv4MultiPktsRecvPerIf  OBJECT-TYPE
      SYNTAX      Counter32
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "A counter of the number of
          multicast IP packets received by the
          device on this interface."
   ::= { smfIpv4InterfacePerfEntry 2 }

   smfIpv4MultiPktsForwardedPerIf  OBJECT-TYPE
      SYNTAX      Counter32
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "A counter of the number of
          multicast IP packets forwarded by the
          device on this interface."
   ::= { smfIpv4InterfacePerfEntry 3 }

   smfIpv4DuplMultiPktsDetectedPerIf  OBJECT-TYPE
      SYNTAX      Counter32
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "A counter of the number of duplicate
          multicast IP packets detected by the
          device on this interface."
   ::= { smfIpv4InterfacePerfEntry 4 }

   smfIpv4DroppedMultiPktsTTLExceededPerIf  OBJECT-TYPE
      SYNTAX      Counter32
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "A counter of the total number of dropped
          multicast IPv4 packets by the
          device due to TTL exceeded."
   ::= { smfIpv4InterfacePerfEntry 5 }

   smfIpv4TTLLargerThanPreviousPerIf  OBJECT-TYPE
      SYNTAX      Counter32
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "A counter of the total number of IPv4 packets
          recieved which have a TTL larger than that
          of a previously recived identical packet.
         "
   ::= { smfIpv4InterfacePerfEntry 6 }


   smfIpv6InterfacePerfTable OBJECT-TYPE
      SYNTAX       SEQUENCE OF SmfIpv6InterfacePerfEntry
      MAX-ACCESS   not-accessible
      STATUS       current
      DESCRIPTION
         "The SMF Interface Performance Table
          describes the SMF statistics per
          interface."
   ::= { smfInterfacePerfGroup 2 }

   smfIpv6InterfacePerfEntry OBJECT-TYPE
      SYNTAX       SmfIpv6InterfacePerfEntry
      MAX-ACCESS   not-accessible
      STATUS       current
      DESCRIPTION
         "The SMF Interface Performance entry
          describes the statistics for a particular
          node interface."
      INDEX { smfIpv6IfPerfIfIndex }
   ::= { smfIpv6InterfacePerfTable 1 }

   SmfIpv6InterfacePerfEntry ::=
      SEQUENCE {
         smfIpv6IfPerfIfIndex                    InterfaceIndexOrZero,
         smfIpv6MultiPktsRecvPerIf               Counter32,
         smfIpv6MultiPktsForwardedPerIf          Counter32,
         smfIpv6DuplMultiPktsDetectedPerIf       Counter32,
         smfIpv6DroppedMultiPktsTTLExceededPerIf Counter32,
         smfIpv6TTLLargerThanPreviousPerIf       Counter32,
         smfIpv6HAVAssistsReqdPerIf              Counter32,
         smfIpv6DpdHeaderInsertionsPerIf         Counter32
         }

   smfIpv6IfPerfIfIndex  OBJECT-TYPE
      SYNTAX      InterfaceIndexOrZero
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
         "The ifIndex for this node interface
          that is collecting this set of
          performance management statistics.

          For packets generated locally at
          this node, performance counters
          are assigned to the loopback
          interface.
         "
   ::= { smfIpv6InterfacePerfEntry 1 }

   smfIpv6MultiPktsRecvPerIf  OBJECT-TYPE
      SYNTAX      Counter32
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "A counter of the number of
          multicast IP packets received by the
          device on this interface."
   ::= { smfIpv6InterfacePerfEntry 2 }

   smfIpv6MultiPktsForwardedPerIf  OBJECT-TYPE
      SYNTAX      Counter32
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "A counter of the number of
          multicast IP packets forwarded by the
          device on this interface."
   ::= { smfIpv6InterfacePerfEntry 3 }

   smfIpv6DuplMultiPktsDetectedPerIf  OBJECT-TYPE
      SYNTAX      Counter32
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "A counter of the number of duplicate
          multicast IP packets detected by the
          device on this interface."
   ::= { smfIpv6InterfacePerfEntry 4 }

   smfIpv6DroppedMultiPktsTTLExceededPerIf  OBJECT-TYPE
      SYNTAX      Counter32
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "A counter of the number of dropped
          multicast IP packets by the
          device on this interface due to TTL
          exceeded."
   ::= { smfIpv6InterfacePerfEntry 5 }

   smfIpv6TTLLargerThanPreviousPerIf  OBJECT-TYPE
      SYNTAX      Counter32
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "A counter of the total number of IPv6 packets
          recieved which have a TTL larger than that
          of a previously recived identical packet.
         "
   ::= { smfIpv6InterfacePerfEntry 6 }

   smfIpv6HAVAssistsReqdPerIf  OBJECT-TYPE
      SYNTAX      Counter32
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "A counter of the total number of IPv6 packets
          recieved which required the HAV assist for DPD.
         "
   ::= { smfIpv6InterfacePerfEntry 7 }

   smfIpv6DpdHeaderInsertionsPerIf  OBJECT-TYPE
      SYNTAX      Counter32
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "A counter of the total number of IPv6 packets
          recieved which the device inserted the
          DPD header option.
         "
   ::= { smfIpv6InterfacePerfEntry 8 }



   --
   -- Notifications
   --

smfMIBNotifControl OBJECT IDENTIFIER ::= { smfMIBNotifications 1 }
smfMIBNotifObjects OBJECT IDENTIFIER ::= { smfMIBNotifications 2 }
smfMIBNotifStates  OBJECT IDENTIFIER ::= { smfMIBNotifications 3 }


   -- smfMIBNotifControl
   smfSetNotification 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 SMF MIB 
             notifications. This object is used to enable 
             and disable specific SMF MIB notifications where 
             a 1 in the bit field represents enabled. The
             right-most bit (least significant) represents 
             notification 0.

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

   smfDpdMemoryOverflowThreshold OBJECT-TYPE
          SYNTAX       Integer32 (0..255)
          MAX-ACCESS   read-write
          STATUS       current
          DESCRIPTION
             "A threshold value for the
              `smfDpdmemoryOverflowEvents' object.  
              If the number of occurences exceeds
              this threshold within the previous 
              number of seconds
              'smfDpdMemoryOverflowWindow',
              then the `smfDpdMemoryOverflowEvent'
              notification is sent.
             "
           ::= { smfMIBNotifControl 2 }

   smfDpdMemoryOverflowWindow OBJECT-TYPE
          SYNTAX       TimeTicks
          MAX-ACCESS   read-write
          STATUS       current
          DESCRIPTION
             "A time window value for the
              `smfDpdmemoryOverflowEvents' object.  
              If the number of occurences exceeds
              the `smfDpdMemoryOverflowThreshold'
              within the previous number of seconds
              'smfDpdMemoryOverflowWindow',
              then the `smfDpdMemoryOverflowEvent'
              notification is sent.
             "
           ::= { smfMIBNotifControl 3 }

   smfIpv4DuplMultiPktsDetectedTotalThreshold OBJECT-TYPE
          SYNTAX       Integer32 (0..255)
          MAX-ACCESS   read-write
          STATUS       current
          DESCRIPTION
             "A threshold value for the
              `smfIpv4DuplMultiPktsDetectedTotal' 
              object.  If the number of occurences 
              exceeds this threshold within the 
              previous number of seconds
              `smfIpv4DuplMultiPktsDetectedTotalWindow',
              then the 
              `smfIpv4DuplMultiPktsDetectedTotalEvent'
              notification is sent.
             "
           ::= { smfMIBNotifControl 4 }

   smfIpv4DuplMultiPktsDetectedTotalWindow OBJECT-TYPE
          SYNTAX       TimeTicks
          MAX-ACCESS   read-write
          STATUS       current
          DESCRIPTION
             "A time window value for the
              `smfIpv4DuplMultiPktsDetectedTotalEvents' 
              object.  If the number of occurences 
              exceeds the 
              `smfIpv4DuplMultiPktsDetectedTotalThreshold'
              within the previous number of seconds
              'smfIpv4DuplMultiPktsDetectedTotalWindow',
              then the 
              `smfIpv4DuplMultiPktsDetectedTotalEvent'
              notification is sent.
             "
           ::= { smfMIBNotifControl 5 }

   smfIpv6DuplMultiPktsDetectedTotalThreshold OBJECT-TYPE
          SYNTAX       Integer32 (0..255)
          MAX-ACCESS   read-write
          STATUS       current
          DESCRIPTION
             "A threshold value for the
              `smfIpv6DuplMultiPktsDetectedTotal' 
              object.  If the number of occurences 
              exceeds this threshold within the 
              previous number of seconds
              `smfIpv6DuplMultiPktsDetectedTotalWindow',
              then the 
              `smfIpv6DuplMultiPktsDetectedTotalEvent'
              notification is sent.
             "
           ::= { smfMIBNotifControl 6 }

   smfIpv6DuplMultiPktsDetectedTotalWindow OBJECT-TYPE
          SYNTAX       TimeTicks
          MAX-ACCESS   read-write
          STATUS       current
          DESCRIPTION
             "A time window value for the
              `smfIpv6DuplMultiPktsDetectedTotalEvents' 
              object.  If the number of occurences 
              exceeds the 
              `smfIpv6DuplMultiPktsDetectedTotalThreshold'
              within the previous number of seconds
              'smfIpv6DuplMultiPktsDetectedTotalWindow',
              then the 
              `smfIpv6DuplMultiPktsDetectedTotalEvent'
              notification is sent.
             "
           ::= { smfMIBNotifControl 7 }



   -- smfMIBNotifObjects
   
   smfAdminStatusChange NOTIFICATION-TYPE
          OBJECTS { smfRouterIDAddrType, -- The originator of
                                     --     the notification.
                    smfRouterID,     -- The originator of
                                     --     the notification.
                    smfAdminStatus   -- The new status of the
                                     --     SMF process.
                  }
          STATUS       current
          DESCRIPTION
             "smfAdminStatusChange is a notification sent when a 
              the 'smfAdminStatus' object changes.
             "
          ::= { smfMIBNotifObjects 1 }

   smfConfiguredOpModeChange NOTIFICATION-TYPE
          OBJECTS { smfRouterIDAddrType, -- The originator of
                                     --     the notification.
                    smfRouterID,     -- The originator of
                                     --     the notification.
                    smfConfiguredOpMode  -- The new Operations
                                     --     Mode of the SMF 
                                     --     process.
                  }
          STATUS       current
          DESCRIPTION
             "smfConfiguredOpModeChange is a notification 
              sent when a the 'smfConfiguredOpMode' object 
              changes.
             "
          ::= { smfMIBNotifObjects 2 }

   smfConfiguredRssaChange NOTIFICATION-TYPE
          OBJECTS { smfRouterIDAddrType, -- The originator of
                                     --     the notification.
                    smfRouterID,     -- The originator of
                                     --     the notification.
                    smfConfiguredRssa -- The new RSSA for
                                     --     the SMF process.
                  }
          STATUS       current
          DESCRIPTION
             "smfAdminStatusChange is a notification sent when a 
              the 'smfConfiguredRssa' object changes.
             "
          ::= { smfMIBNotifObjects 3 }

   smfIfAdminStatusChange NOTIFICATION-TYPE
          OBJECTS { smfRouterIDAddrType, -- The originator of
                                     --     the notification.
                    smfRouterID,      -- The originator of
                                     --     the notification.
                    smfIfIndex,      -- The interface whose
                                     --     status has changed.
                    smfIfAdminStatus   -- The new status of the
                                     --     SMF interface.
                  }
          STATUS       current
          DESCRIPTION
             "smfIfAdminStatusChange is a notification sent when a 
              the 'smfIfAdminStatus' object changes.
             "
          ::= { smfMIBNotifObjects 4 }

    smfDpdMemoryOverflowEvent NOTIFICATION-TYPE
          OBJECTS { smfRouterIDAddrType, -- The originator of
                                     --     the notification.
                    smfRouterID,     -- The originator of
                                     --     the notification.
                    smfDpdMemoryOverflow -- The counter of
                                     --     the overflows.
             }
          STATUS       current
          DESCRIPTION
             "smfDpdMemoryOverflowEvents is sent when the
              number of memory overflow events exceeds the
              the 'smfDpdMemoryOverflowThreshold' within the
              previous number of seconds defined by the
              'smfDpdMemoryOverflowWindow'.
             "
          ::= { smfMIBNotifObjects 5 }

   smfIpv4DuplMultiPktsDetectedTotalEvents NOTIFICATION-TYPE
          OBJECTS { smfRouterIDAddrType, -- The originator of
                                     --     the notification.
                    smfRouterID,     -- The originator of
                                     --     the notification.
                    smfIpv4DuplMultiPktsDetectedTotal -- The
                                     --     counter of detected
                                     --     duplicates.
             }
          STATUS       current
          DESCRIPTION
             "smfIpv4DuplMultiPktsDetectedTotal is a 
              notification sent when the number of
              IPv4 duplicate packets detected exceeds the
              'smfIpv4DuplMultiPktsDetectedTotalThreshold'
              during the previous number of seconds
              'smfIpv4DuplPktsDetectedTotalWindow'.
             "
          ::= { smfMIBNotifObjects 6 }

   smfIpv6DuplMultiPktsDetectedTotalEvents NOTIFICATION-TYPE
          OBJECTS { smfRouterIDAddrType, -- The originator of
                                     --     the notification.
                    smfRouterID,     -- The originator of
                                     --     the notification.
                    smfIpv6DuplMultiPktsDetectedTotal -- The
                                     --     counter of detected
                                     --     duplicates.
             }
          STATUS       current
          DESCRIPTION
             "smfIpv6DuplMultiPktsDetectedTotal is a 
              notification sent when the number of
              IPv6 duplicate packets detected exceeds the
              'smfIpv6DuplMultiPktsDetectedTotalThreshold'
              during the previous number of seconds
              'smfIpv6DuplPktsDetectedTotalWindow'.
             "
          ::= { smfMIBNotifObjects 7 }

          


    -- smfMIBNotifStates
    --   is empty.




   --
   -- Compliance Statements
   --

   smfCompliances  OBJECT IDENTIFIER ::= { smfMIBConformance 1 }
   smfMIBGroups    OBJECT IDENTIFIER ::= { smfMIBConformance 2 }

   smfBasicCompliance  MODULE-COMPLIANCE
      STATUS current
      DESCRIPTION "The basic implementation requirements for 
                   managed network entities that implement
                   the SMF RSSA process." 
      MODULE  -- this module
      MANDATORY-GROUPS { smfCapabObjectsGroup,
                         smfConfigObjectsGroup }
   ::= { smfCompliances 1 }  

   smfFullCompliance MODULE-COMPLIANCE
      STATUS current
      DESCRIPTION "The full implementation requirements for
                   managed network entities that implement
                   the SMF RSSA process."
      MODULE  -- this module
      MANDATORY-GROUPS { smfCapabObjectsGroup,
                         smfConfigObjectsGroup,
                         smfStateObjectsGroup,
                         smfPerfObjectsGroup,
                         smfNotifObjectsGroup,
                         smfNotificationsGroup
                       }
   ::= { smfCompliances 2 }  

   --
   -- Units of Conformance
   --

   smfCapabObjectsGroup OBJECT-GROUP
      OBJECTS {
              smfOpModeCapabilitiesName,
              smfOpModeCapabilitiesReference,

              smfRssaCapabilitiesName,
              smfRssaCapabilitiesReference
      }
      STATUS  current
      DESCRIPTION
         "Set of SMF configuration objects implemented
          in this module."
   ::= { smfMIBGroups 1 }

   smfConfigObjectsGroup OBJECT-GROUP
      OBJECTS {
              smfAdminStatus,
              smfRouterIDAddrType,
              smfRouterID,
              smfIfIndex,
              smfConfiguredOpMode,
              smfConfiguredRssa,
              smfRssaMember,
              smfIpv4Dpd, 
              smfIpv6Dpd,
              smfMaxPktLifetime,
              smfDpdMaxMemorySize,
              smfDpdEntryMaxLifetime,
              smfNhdpRssaMesgTLVIncluded,
              smfNhdpRssaAddrBlockTLVIncluded,

              smfConfiguredAddrForwardingLastAddr,
              smfConfiguredAddrForwardingStatus,

              smfIfAdminStatus,
              smfIfRowStatus
      }
      STATUS  current
      DESCRIPTION
         "Set of SMF configuration objects implemented
          in this module."
   ::= { smfMIBGroups 2 }

   smfStateObjectsGroup  OBJECT-GROUP
      OBJECTS {
              smfNodeRsStatusIncluded,
              smfDpdMemoryOverflow,

              smfDiscoveredAddrForwardingLastAddr,

              smfNeighborRSSA,
              smfNeighborNextHopInterface
      }
      STATUS  current
      DESCRIPTION
         "Set of SMF state objects implemented
          in this module."
   ::= { smfMIBGroups 3 }

   smfPerfObjectsGroup  OBJECT-GROUP
      OBJECTS {
              smfIpv4MultiPktsRecvTotal,
              smfIpv4MultiPktsForwardedTotal,
              smfIpv4DuplMultiPktsDetectedTotal,     
              smfIpv4DroppedMultiPktsTTLExceededTotal,     
              smfIpv4TTLLargerThanPreviousTotal,

              smfIpv6MultiPktsRecvTotal,
              smfIpv6MultiPktsForwardedTotal,
              smfIpv6DuplMultiPktsDetectedTotal,     
              smfIpv6DroppedMultiPktsTTLExceededTotal,     
              smfIpv6TTLLargerThanPreviousTotal,
              smfIpv6HAVAssistsReqdTotal,
              smfIpv6DpdHeaderInsertionsTotal,

              smfIpv4MultiPktsRecvPerIf,
              smfIpv4MultiPktsForwardedPerIf,
              smfIpv4DuplMultiPktsDetectedPerIf,
              smfIpv4DroppedMultiPktsTTLExceededPerIf,
              smfIpv4TTLLargerThanPreviousPerIf,

              smfIpv6MultiPktsRecvPerIf,
              smfIpv6MultiPktsForwardedPerIf,
              smfIpv6DuplMultiPktsDetectedPerIf,
              smfIpv6DroppedMultiPktsTTLExceededPerIf,
              smfIpv6TTLLargerThanPreviousPerIf,
              smfIpv6HAVAssistsReqdPerIf,
              smfIpv6DpdHeaderInsertionsPerIf
      }
      STATUS  current
      DESCRIPTION
         "Set of SMF performance objects implemented
          in this module by total and per interface."
   ::= { smfMIBGroups 4 }

   smfNotifObjectsGroup  OBJECT-GROUP
      OBJECTS {
              smfSetNotification,
              smfDpdMemoryOverflowThreshold,
              smfDpdMemoryOverflowWindow,
              smfIpv4DuplMultiPktsDetectedTotalThreshold,
              smfIpv4DuplMultiPktsDetectedTotalWindow,
              smfIpv6DuplMultiPktsDetectedTotalThreshold,
              smfIpv6DuplMultiPktsDetectedTotalWindow
      }
      STATUS  current
      DESCRIPTION
         "Set of SMF notification control
          objects implemented in this module."
   ::= { smfMIBGroups 5 }

   smfNotificationsGroup  NOTIFICATION-GROUP
      NOTIFICATIONS {
              smfAdminStatusChange,
              smfConfiguredOpModeChange,
              smfConfiguredRssaChange,
              smfIfAdminStatusChange,
              smfDpdMemoryOverflowEvent,
              smfIpv4DuplMultiPktsDetectedTotalEvents,
              smfIpv6DuplMultiPktsDetectedTotalEvents
      }
      STATUS  current
      DESCRIPTION
         "Set of SMF notifications implemented
          in this module."
   ::= { smfMIBGroups 6 }



   END

	]]></artwork>
      </figure>
    </section>

    <section title="Security Considerations">
      <t>This section discusses security implications of the choices made in this
         SMF-MIB module.</t>

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

      <t><list style="symbols">
          <t>'smfAdminStatus' - this writable configuration object controls the 
             operational status of the SMF process.  If this setting is configured
             inconsistently across the MANET multicasting domain, then delivery of
             multicast data may be inconsistent across the domain; some nodes may 
             not receive multicast data intended for them.</t>

          <t>'smfRouterIDAddrType' and 'smfRouterID' - these writable 
             configuration objects define the 
             ID of the SMF process.  These objects should be configured
             with a routable address defined on the local SMF device.
             The smfRouterID is a logical identification 
             that MUST be consistent across interoperating 
             SMF neighborhoods and it is RECOMMENDED to be 
             chosen as the numerically largest address 
             contained in a node's 'Neighbor Address List'
             as defined in NHDP.  A smfRouterID MUST be 
             unique within the scope of the operating 
             MANET network regardless of the method used 
             for selecting it.</t>

          <t>'smfConfiguredOpMode' - this writable configuration objects define the 
             operational mode of the SMF process.  The operational mode
             defines how the SMF process develops its local estimate of the CDS.</t>

          <t>'smfConfiguredRssa' - this writable configuration object sets the specific 
             Reduced Set Selection Algorithm (RSSA) for the SMF process.  If this
             object is set inconsistently across the MANET domain, multicast
             delivery of data will fail.</t>

          <t>'smfRssaMember' - this writable configuration object sets the 'interest'
             of the local SMF node in participating in the CDS.  Setting this
             object to 'never(3)' on a highly highly connected device could lead
             to frequent island formation.  Setting this object to 'always(2)'
             could support data ex-filtration from the MANET domain.</t>

          <t>'smfIpv4Dpd' - this writable configuration object sets the duplicate
             packet detection method for forwarding of IPv4 multicast packets.</t>

          <t>'smfIpv6Dpd' - this writable configuration object sets the duplicate
             packet detection method for forwarding of IPv6 multicast packets.</t>

          <t>'smfMaxPktLifetime' - this writable configuration object sets the 
             estimate of the network packet traversal time.  If set too small,
             this could lead to poor multicast data delivery ratios throughout
             the MANET domain.</t>

          <t>'smfDpdMaxMemorySize' - this writable configuration object sets the 
             memory storage size (in Kilo-Bytes) for the cached DPD records
             for the combined IPv4 and IPv6 methods.  If set too small this
             could lead to poor performance of the duplicate packet protection
             algorithms and lead to inefficient resource, e.g., link, utilization
             within the MANET domain.  The local SMF device should protect 
             itself against memory overruns in the event that too large a
             setting is requested.</t>

          <t>'smfDpdEntryMaxLifetime' - this writable configuration object sets the 
             maximum lifetime (in seconds) for the cached DPD records
             for the combined IPv4 and IPv6 methods.  If the memory 
             is running low prior to the MaxLifetimes being exceeded, the
             local SMF devices should purge the oldest records first.</t>

          <t>'smfNhdpRssaMesgTLVIncluded' - this writable configuration object 
             indicates whether the associated NHDP messages include the
             the RSSA Message TLV, or not.  It is highly RECOMMENDED that
             this object be set to 'true(1)'.</t>

          <t>'smfNhdpRssaAddrBlockTLVIncluded' - this writable configuration object 
             indicates whether the associated NHDP messages include the
             the RSSA Address Block TLV, or not.  
             The smfNhdpRssaAddrBlockTLVIncluded is optional 
             in all cases as it depends on the existence of 
             an address block which may not be present.  
             If this SMF device is configured with NHDP,
             then this object should be set to 'true(1)'.</t>

          <t>'smfConfiguredAddrForwardingTable' - the writable configuration objects
             in this table indicate which multicast IP address are to be 
             forwarded by this SMF node.  Misconfiguration of rows within
             this table can limit the ability of this SMF device to
             forward multicast data.</t> 

          <t>'smfInterfaceTable' - the writable configuration objects
             in this table indicate which SMF node interfaces are  
             participating in the SMF packet forwarding process.
             Misconfiguration of rows within
             this table can limit the ability of this SMF device to
             forward multicast data.</t> 
        </list></t>


      <t>Some of the readable objects in this MIB module (i.e., objects with a
      MAX-ACCESS other than not-accessible) may be considered sensitive or
      vulnerable in some network environments. It is thus important to control
      even GET and/or NOTIFY access to these objects and possibly to even
      encrypt the values of these objects when sending them over the network
      via SNMP. These are the tables and objects and their
      sensitivity/vulnerability: 
        <list style="symbols">
          <t>'smfNodeRsStatusIncluded' - this readable state object
             indicates that this SMF node is part of the CDS, or not.
             Being part of the CDS makes this node a distinguished device.
             It could be exploited for data ex-filtration, or denial of
             service attacks.</t> 

          <t>'smfDiscoveredAddrForwardingTable' - the readable state
             objects in this table indicate which, dynamically discovered,
             multicast IP address are to be forwarded by this SMF node.</t> 

          <t>'smfNeighborTable' - the readable state objects
             in this table indicate current neighbor nodes to
             this SMF node.  Exposing this information to an attacker
             could allow the attacker easier access to the larger
             MANET domain.</t> 
        </list></t>

      <t>The remainder of the objects in the SMF-MIB are performance counter objects.
         While these give an indication of the activity of the SMF process on this node,
         it is not expected that exposing these values pose a security risk
         to the MANET network.</t>

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

      <t>It is RECOMMENDED that implementers consider the security features as
         provided by the SNMPv3 framework (see <xref target="RFC3410"></xref>,
         section 8), including full support for the SNMPv3 cryptographic
         mechanisms (for authentication and privacy).</t>

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

    <section title="IANA Considerations">
<!--      <t>[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.</t>

      <t>[TODO] select an option and provide the necessary details.</t>

      <t>Option #1:</t>

      <figure>
        <preamble></preamble>

        <artwork><![CDATA[
     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  { experimental XXX }
      	]]></artwork>

        <postamble></postamble>
      </figure>

      <t></t>

      <t>Option #2:</t>

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

      <t>Note well: prior to official assignment by the IANA, a draft document
      MUST use placeholders (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.</t>

      <t>Option #3:</t>

      If no IANA work is required, an explicit note must be included.

      <t>This memo includes no request to IANA.</t>
-->


      <t>Editor's Note (to be removed prior to publication): the IANA is
            requested to assign a value for "XXXX" under the 'experimental' subtree and	
            to record the assignment in the SMI Numbers registry. When the	
            assignment has been made, the RFC Editor is asked to replace "XXXX"	
            (here and in the MIB module) with the assigned value and to remove	this note.	
            
            Note well: prior to official assignment by the IANA, a draft document	
            MUST use placeholders (such as "XXXX" above) rather than actual	
            numbers. See RFC4181 Section 4.5 for an example of how this is done	
			in a draft MIB module.</t>


    </section>

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

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

<!--    <section title="Acknowledgements">
      <t></t>
    </section> -->
  </middle>

  <back>
    <!-- References Section -->

    <!-- Section 4.7f of [RFC2223bis] specifies the requirements for the
   references sections.  In particular, there MUST be separate lists of
   normative and informative references, each in a separate section.
   The style SHOULD follow that of recently published RFCs.

   The standard MIB boilerplate available at
   http://www.ops.ietf.org/mib-boilerplate.html includes lists of
   normative and informative references that MUST appear in all IETF
   specifications that contain MIB modules.  If items from other MIB
   modules appear in an IMPORTS statement in the Definitions section,
   then the specifications containing those MIB modules MUST be included
   in the list of normative references.  When items are imported from an
   IANA-maintained MIB module the corresponding normative reference
   SHALL point to the on-line version of that MIB module.  It is the
   policy of the RFC Editor that all references must be cited in the
   text;  such citations MUST appear in the overview section where
   documents containing imported definitions (other those already
   mentioned in the MIB boilerplate) are required to be mentioned (cf.
   Section 3.2).

In general, each normative reference SHOULD point to the most recent
version of the specification in question.
-->

    <references title="Normative References">
      <!-- <t>[TODO] rfc2629, 2863, 3418, and 4181 are normative references that
      are required only to support this template, and which can be removed
      from your final document, if not used for other purposes.</t>-->

      <!--
      &rfc2629;
      &rfc4181;
-->

      &rfc2863;

      &rfc3411;

      &rfc3418;

      &rfc4001;

      <!--  <t>[TODO] rfc2119, 2578, 2579, and 2580 are required to support MIB
      module boilerplate text.</t> -->

      &rfc2119;

      &rfc2578;

      &rfc2579;

      &rfc2580;

      &SMF;

      <!--  <t>[TODO]: Add your own normative references.</t>-->
      <!--<reference anchor="SMF">
        <front>
          <title>Simplified Multicast Forwarding</title>
          <author initials="J." surname="Macker">
            <organization></organization>
          </author>
          <date month="March" day="06" year="2010" />
        </front>
        <seriesInfo name='Internet-Draft' value='draft-ietf-manet-smf-10' />
        <format type='TXT' target='http://www.ietf.org/internet-drafts/draft-ietf-manet-smf-10.txt' />
      </reference>
      -->
    


    </references>

    <references title="Informative References">
      <!-- <t>[TODO] RFC3410 is required to support the boilerplate text.</t>-->

      &rfc3410;

      <!-- <t>[TODO] Add your own informative references</t>-->
    </references>

    <!--
<section anchor="appendix" title="Appendix A">
	<t>You can add appendices just as regular sections, the only
difference is that they go under "back" element, and get letters 
instead of numbers</t>
</section>
-->

    <section title="Change Log ">
      <t>This section tracks the revision history in the development
         of this SMF-MIB.  It will be removed from the final version
         of this document.</t>

      <t>These changes were made from draft-ietf-manet-smf-mib-02 to
         draft-ietf-manet-smf-mib-03. </t>
      <t><list style="numbers">
         <t>Clarified and added discussion of default values
            for several of the configuration objects within the MIB.</t>
         <t>Added the security section.</t>
       </list></t>

      <t>These changes were made from draft-ietf-manet-smf-mib-01 to
         draft-ietf-manet-smf-mib-02. </t>
      <t><list style="numbers">
         <t>Added the NotificationGroup to the MIB and updated
            the ConformanceGroup.</t>
         <t>Added the definition of an smfRouterID to the MIB.
            This is later used in the Notifications to indicate
            the origin of the event to the management station.</t>
         <t>Removed the Router Priority object as this was used
            only in the eCDS algorithm and hence should be contained
            within the future eCDS-MIB.</t>
         <t>Cleaned up the TEXTUAL CONVENTION for the
            `SmfOpMode'.</t>
         <t>Filled in some of the missing text in various object
            descriptions.</t>
       </list></t>

      <t>These changes were made from draft-ietf-manet-smf-mib-00 to
         draft-ietf-manet-dsmf-mib-01. </t>
      <t><list style="numbers">
          <t>Editorial changes to the textual material.  These included the
             addition of the paragraphs on TEXTUAL-CONVENTIONS defined
             and imported into this MIB and relationships to other
             MIBs.</t>
          <t>Identified those objects in the SMF-MIB requiring
             non-volatile storage.</t>
          <t>Changed the name of the TEXTUAL-CONVENTION 'Status', defined within
             this MIB to 'SmfStatus'.</t>
       </list></t>

    </section>

    <section title="Open Issues">
      <t>This section contains the set of open issues related to the
      development and design of the SMF-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.</t>

      <t>
        <list style="numbers">
          <t>A careful review by the working group.</t>
        </list>
      </t>
    </section>

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

             <artwork><![CDATA[
***************************************************************
* 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-smf-xx.txt.  This           *
* need to be replaced with the XXX RFC number.                *
*                                                             *
***************************************************************
              ]]></artwork>
           <postamble></postamble>
        </figure>
     </section>

  </back>
</rfc>

