<?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 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 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="std" docName="draft-cole-manet-smf-mib-01" ipr="full3978">
  <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>Johns Hopkins University</organization>

      <address>
        <postal>
          <street>11100 Johns Hopkins Road, Room 257</street>

          <city>Laurel</city>

          <region>Maryland</region>

          <code>21073</code>

          <country>USA</country>
        </postal>

        <phone>+1 443 778 6951</phone>

        <email>robert.cole@jhuapl.edu</email>

        <uri>http://www.cs.jhu.edu/~rgcole/</uri>
      </address>
    </author>

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

      <address>
        <postal>
          <street>XXX Street</street>

          <city>Washington</city>

          <region>D.C.</region>

          <code>20375</code>

          <country>USA</country>
        </postal>

        <email>macker@itd.nrl.navy.mil</email>

        <phone>+1 xxx xxx-xxxx</phone>
      </address>
    </author>

    <author fullname="Brian Adamson" initials="B.A." surname="Adamson">
      <organization>Navy Research Laboratory</organization>

      <address>
        <postal>
          <street>XXX Street</street>

          <city>Washington</city>

          <region>D.C.</region>

          <code>20375</code>

          <country>USA</country>
        </postal>

        <email>adamson@itd.nrl.navy.mil</email>

        <phone>+1 xxx xxx-xxxx</phone>
      </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>

        <phone>+1 xxx xxx-xxxx</phone>
      </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. The SMF MIB also reports
      state information, performance metrics, and notifications. In addition
      to configuration, this additional state and performance information is
      useful to management stations troubleshooting 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>. SMF provides multicast duplicate
      packet detection (DPD) and supports algorithms for constructing an
      estimate of a mobile ad hoc network (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 management stations 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 CDS-based relay sets. 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 routers' 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" />) 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>

        <artwork><![CDATA[

                       Possible L2 Trigger/Information
                                      |
                                      |
    ______________              ______|_____         __________________
   |    MANET     |            |            |       |                  |
   | Neighborhood |            | Relay Set  |       | Other Heuristics |
   |  Discovery   |------------| Selection  |-------| (Preference,etc) |
   |   Protocol   | neighbor   | Algorithm  |       |                  |
   |______________|   info     |____________|       |__________________|
          \                              /
           \                            /
    neighbor\                          / Dynamic Relay
      info*  \      ____________      /    Set Status
              \    |    SMF     |    / (State, {neighbor info})
               `---| Relay Set  |---'
                   |   State    |
                ---|____________|
               /
              /
    ______________
   |  Coexistent  |
   |    MANET     |
   |   Unicast    |
   |   Process    |
   |______________|


Figure 1: SMF Relay Set Control Options 
        ]]></artwork>
      </section>

      <section title="Terms">
        <t>The following definitions apply throughout this document:</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>
      </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>

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

        <list style="symbols">
          <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>smfMIBConformance - defines minimal and full conformance of
        implementations to this SMF MIB.</t>
      </list>

      <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 used in the SMF MIB are as follows. The
        RowStatus textual convention is imported from RFC 2579 <xref
        target="RFC2579" />.</t>

        <!--The SmfInterfaceOperStatus is defined within the SMF MIB.
           This contains the current operational status of the
           SMF interface.</t>-->
      </section>

      <section title="The Configuration Group">
        <t>The SMF device is configured with a set of controls. The list of
        configuration controls for the SMF device follow.</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>NHDP RSSA Message TLV - if NHDP mode is selected, then is the
          RSSA Message TLV included in the NHDP exchanges. (Question: Is this
          and the following two TLVs optional and are they included as a group
          or independently of one another?)</t>

          <t>NHDP RSSA Address Block TLV - if NHDP mode is selected, then is
          the RSSA Address Block TLV included in the NHDP exchanges.</t>

          <t>Router Priority TLV - if NHDP mode is selected, then is the
          Router Priority TLV included in the NHDP exchanges.</t>
        </list>
      </section>

      <section title="The State Group">
        <t>The State Subtree reports current state information.</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>
      </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: (Note: Need to have a discussion of
        the important and measurable events related to SMF RSSA multicast
        performance.) (Note: Do we need to break these out by type, i.e., v4
        versus v6?) <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>

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

              <t>Multicast packets forwarded</t>

              <t>Duplicate multicast packets detected</t>
            </list>
          </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.
        This group is currently empty.</t>
      </section>
    </section>

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

      <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="Relationship to the IF-MIB">
        <t>[TODO] This section is included as an example; If the MIB module is
        not an adjunct of the Interface MIB, then this section should be
        removed.</t>
      </section>

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

        <t>The following SMF-MIB module IMPORTS objects from SNMPv2-SMI <xref
        target="RFC2578"></xref>, SNMPv2-TC <xref target="RFC2579"></xref>,
        SNMPv2-CONF <xref target="RFC2580"></xref>, and IF-MIB <xref
        target="RFC2863"></xref></t>
      </section>
    </section>

    <!-- Definitions section -->

    <!-- This section contains the MIB module(s) defined by the specification.
         These MIB modules MUST be written in SMIv2 [RFC2578] [RFC2579]
         [RFC2580].

         See Section 4 of RFC 4181 for guidelines on SMIv2 usage.

	 See Appendix C of RFC 4181 for suggested naming conventions

         A list of tools that can help automate the process of 
         checking mib definitions can be found at 
         http://www.ops.ietf.org/mib-review-tools.html
    -->

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

      <figure>
        <artwork><![CDATA[

   MANET-SMF-MIB DEFINITIONS ::= BEGIN

   IMPORTS
      MODULE-IDENTITY, OBJECT-TYPE,
      Counter32, mib-2
         FROM SNMPv2-SMI                          -- [RFC2578]
      TruthValue
         FROM SNMPv2-TC                           -- [RFC2579]
      MODULE-COMPLIANCE, OBJECT-GROUP
         FROM SNMPv2-CONF                         -- [RFC2580]
      InterfaceIndex
         FROM IF-MIB                              -- [RFC2863]
      InetAddress, InetAddressType,
      InetAddressPrefixLength
         FROM INET-ADDRESS-MIB                    -- [RFC4001]
      ;

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

                     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: Macker, J.(ed.), 
          Simplified Multicast Forwarding draft-ietf-manet-smf-07,
          February 25, 2008. 

          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    "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
        ::= { mib-2 998 }   -- to be assigned by IANA

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

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

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

   smfOperationalMode  OBJECT-TYPE
      SYNTAX      INTEGER {
                          withNHDP(1),
                          cdsAwareRouting(2),
                          crossLayer(3)
                          }
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "The SMF RSS node operational mode.

          The value withNHDP(1) indicates ...
          The value cdsAwareRouting(2) indicates ...
          The value crossLayer(3) indicates... ."
   ::= { smfConfigurationGroup 1 }

   --
   -- Note: Would like to develop a capabilities Table listing
   -- the supported RSSA's.  Need to figure out a good way to
   -- assciate specific RSSA algorithm configuration settings
   -- with the different RSSA's supported. This would replace
   -- the following smfRSSA, smfIpv4Dpd and smfIpv6Dpd objects.
   --

   smfRssa  OBJECT-TYPE
      SYNTAX      INTEGER {
                          cF(1),
                          sMPR(2),
                          eCDS(3),
                          mprCDS(4)
                          -- future(5-127)
                          -- noStdAction(128-239)
                          -- experimental(240-255)
                          }
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "The SMF RSS operational algorithm.

          The value cf(1) indicates ...

          The value experimental(240-255) indicates... ."
   ::= { smfConfigurationGroup 2 }

   smfRssMember  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."
   ::= { smfConfigurationGroup 3 }

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

          The value 'hashBased(2) indicates... ."
   ::= { smfConfigurationGroup 4 }

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

          The value 'hashBased(2) indicates... ."
   ::= { smfConfigurationGroup 5 }

   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."
   ::= { smfConfigurationGroup 6 }

   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."
   ::= { smfConfigurationGroup 7 }

   smfNhdpRouterPriorityTLVIncluded  OBJECT-TYPE
      SYNTAX      TruthValue
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "Indicates whether the associated NHDP messages
          include the RSSA Router Priority 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."
     ::= { smfConfigurationGroup 8 }


   --
   -- SMF Gateway Filter Table
   --

   smfGatewayFilterTable OBJECT-TYPE
      SYNTAX       SEQUENCE OF SmfGatewayFilterEntry
      MAX-ACCESS   not-accessible
      STATUS       obsolete
      DESCRIPTION
         "The SMF Gateway can be configured to filter
          multicast packets into and outof the SMF
          MANET domain.  This table defines the filter
          rules which define packet matching and
          related actions.  The rules are in order ..."
      REFERENCE
         "The SMF draft."
   ::= { smfConfigurationGroup 9 }

   smfGatewayFilterEntry  OBJECT-TYPE
      SYNTAX      SmfGatewayFilterEntry
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
         "A single entry in the smfGatewayFilterTable."
      REFERENCE
         "The SMF draft."
      INDEX { smfGatewayFilterIf,
              smfGatewayFilterIfDirection }
   ::= { smfResponsibleAddrTable 1 }

   SmfResponsibleAddrEntry ::=
      SEQUENCE {
         smfGatewayFilterIf
            InterfaceIndex,
         smfGatewayFilterIfDirection
            INTEGER,
         smfGatewayFilterRuleRank
            INTEGER,
         smfGatewayFilterDestAddrType
            InetAddressType,
         smfGatewayFilterDestAddr
            InetAddress,
         smfGatewayFilterDestAddrPrefixLen
            InetAddressPrefixLength,
         smfGatewayFilterSrcAddrType
            InetAddressType,
         smfGatewayFilterSrcAddr
            InetAddress,
         smfGatewayFilterSrcAddrPrefixLen
            InetAddressPrefixLength,
         smfGatewayFilterProtocolNumber
            INTEGER,
         smfGatewayFilterDestPortNumber
            INTEGER,
         smfGatewayFilterAction
            INTEGER,
         smfGatewayFilterRowStatus
            RowStatus
         }

   smfGatewayFilterIfIndex  OBJECT-TYPE
      SYNTAX      InterfaceIndex
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
         "The ifIndex for this node interface
          that is filtering this rule."
   ::= { smfGatewayFilterEntry 1 }

   smfGatewayFilterIfDirection  OBJECT-TYPE
      SYNTAX      INTEGER
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
         "The ifIndex direction for this interface
          filtering rule."
   ::= { smfGatewayFilterEntry 2 }

   smfGatewayFilterRuleRank  OBJECT-TYPE
      SYNTAX      INTEGER
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
         "The rank of the rule specified in
          this entry."
      REFERENCE
         "The SMF draft."
   ::= { smfGatewayFilterEntry 3 }

   smfGatewayFilterDestAddrType  OBJECT-TYPE
      SYNTAX      InetAddressType
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
         "The type of the DestAddr, as defined
          in the InetAddress MIB [RFC 4001]."
      REFERENCE
         "The SMF draft."
   ::= { smfGatewayFilterEntry 4 }

   smfGatewayFilterDestAddr  OBJECT-TYPE
      SYNTAX      InetAddress
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
         "The destination IP address of this rule. The type
          of this address is determined by the value of the
          smfGatewayFilterDestAddrType object."
      REFERENCE
         "The SMF draft."
   ::= { smfGatewayFilterEntry 5 }

   smfGatewayFilterDestAddrPrefixLen  OBJECT-TYPE
      SYNTAX      InetAddressPrefixLength
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
         "Indicates the number of leading one bits that form the
          mask to be logical-ANDed with the destination address
          before being compared to the value in the 
          smfGatewayFilterDestAddr field."
      REFERENCE
         "The SMF draft."
   ::= { smfGatewayFilterEntry 6 }

   smfGatewayFilterSrcAddrType  OBJECT-TYPE
      SYNTAX      InetAddressType
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
         "The type of the SrcAddr, as defined
          in the InetAddress MIB [RFC 4001]."
      REFERENCE
         "The SMF draft."
   ::= { smfGatewayFilterEntry 7 }

   smfGatewayFilterSrcAddr  OBJECT-TYPE
      SYNTAX      InetAddress
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
         "The source IP address of this rule. The type
          of this address is determined by the value of the
          smfGatewayFilterSrcAddrType object."
      REFERENCE
         "The SMF draft."
   ::= { smfGatewayFilterEntry 8 }

   smfGatewayFilterSrcAddrPrefixLen  OBJECT-TYPE
      SYNTAX      InetAddressPrefixLength
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
         "Indicates the number of leading one bits that form the
          mask to be logical-ANDed with the destination address
          before being compared to the value in the 
          smfGatewayFilterSrcAddr field."
      REFERENCE
         "The SMF draft."
   ::= { smfGatewayFilterEntry 9 }

   smfGatewayFilterSrcAddr  OBJECT-TYPE
      SYNTAX      InetAddress
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
         "The source IP address of this rule. The type
          of this address is determined by the value of the
          smfGatewayFilterSrcAddrType object."
      REFERENCE
         "The SMF draft."
   ::= { smfGatewayFilterEntry 10 }

   smfGatewayFilterProtocolNumber  OBJECT-TYPE
      SYNTAX      INTEGER
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "The Protocol Number defined in RFC 5237."
   ::= { smfGatewayFilterEntry 11 }


   smfGatewayFilterDestPortNumber  OBJECT-TYPE
      SYNTAX      INTEGER
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "The destination Port Number defined in
          RFC XXXX."
   ::= { smfGatewayFilterEntry 12 }

   smfGatewayFilterAction  OBJECT-TYPE
      SYNTAX      INTEGER
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "The action to be taken if the rule is
          matched."
          RFC XXXX."
   ::= { smfGatewayFilterEntry 13 }

   smfGatewayFilterRowStatus  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."
   ::= { smfGatewayFilterEntry 14 }



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

   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 }


   --
   -- 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., February 2008. 
          Section 7: SMF Neighborhood Discovery 
          Requirements."
   ::= { smfStateGroup 2 }

   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
            INTEGER,
         smfNeighborNextHopInterface
            InterfaceIndex
         }

   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       INTEGER {
                           cF(1),
                           sMPR(2),
                           eCDS(3),
                           mprCDS(4)
                           -- future(5-127)
                           -- noStdAction(128-239)
                           -- experimental(240-255)
                           }
      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       InterfaceIndex
      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 3 }

   smfGlobalPerfGroup  OBJECT IDENTIFIER ::= { smfPerformanceGroup 1 }

   --
   --  Note: There may be other objects we wish to track.  These may
   --        include counters of HASH collisions, metrics related
   --        to average, min or max number of neighbors, and other
   --        objects.  These are TBD.
   --

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

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

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

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


   --
   -- Per SMF Interface Performance Table
   --

   smfInterfacePerfGroup OBJECT IDENTIFIER ::= {smfPerformanceGroup 2}

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

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

   SmfInterfacePerfEntry ::=
      SEQUENCE {
         smfIfPerfIfIndex
            InterfaceIndex,
         smfMultiPktsRecvPerIf
            Counter32,
         smfMultiPktsForwardedPerIf
            Counter32,
         smfDuplMultiPktsDetectedPerIf
            Counter32
         }

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

   smfMultiPktsRecvPerIf  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."
   ::= { smfInterfacePerfEntry 2 }

   smfMultiPktsForwardedPerIf  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."
   ::= { smfInterfacePerfEntry 3 }

   smfDuplMultiPktsDetectedPerIf  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."
   ::= { smfInterfacePerfEntry 4 }

   smfDroppedMultiPktsTTLExceededPerIf  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."
   ::= { smfInterfacePerfEntry 5 }


   --
   -- Reports Control
   --     This and the following tables are modeled
   --     after the report control and collection
   --     capabilities found in RMON II, RFC XXXX  
   
   --
   -- Note: Starting down this road only for general performance
   -- measures first.  If desireable, then will add reports for
   -- IF specific measurements.
   --

   smfReportsGroup  OBJECT IDENTIFIER ::= { smfMIBObjects 4 }

   smfGenReportCntrlTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF SmfGenReportCntrlEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "The smfGenReportCntrlTable is the controlling entry
           that manages the population of studies in the
           Report for selected time intervals.

           Note that this is not like the typical RMON
           controlTable and dataTable in which each entry creates
           its own data table.  Each entry in this table enables the
           creation of multiple data tables on a study basis.  For each
           interval, the study is updated in place, and the current
           data content of the table becomes invalid.

           The control table entries are persistent across
           system reboots."
       ::= { smfReportsGroup 1 }

   smfGenReportCntrlEntry OBJECT-TYPE
       SYNTAX      SmfGenReportCntrlEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "A conceptual row in the smfGenReportCntrlTable.

           An example of the indexing of this entry is
           smfGenReportCntrInterval.1"
       INDEX { smfGenReportCntrlIndex }
       ::= { smfGenReportCntrlTable 1 }

   SmfGenReportCntrlEntry ::= SEQUENCE {
       smfGenReportCntrlIndex               Unsigned32,
       smfGenReportCntrlInterval            Unsigned32,
       smfGenReportCntrlReqSize             Unsigned32,
       smfGenReportCntrlGrantedSize         Unsigned32,
       smfGenReportCntrlReqReports          Unsigned32,
       smfGenReportCntrlGrantedReports      Unsigned32,
       smfGenReportCntrlStartTime           TimeStamp,
       smfGenReportCntrlReportNumber        Unsigned32,
       smfGenReportCntrlInsertsDenied       Counter32,
       smfGenReportCntrlOwner               OwnerString,
       smfGenReportCntrlStorageType         StorageType,
       smfGenReportCntrlStatus              RowStatus
   }

   smfGenReportCntrlIndex OBJECT-TYPE
       SYNTAX      Unsigned32 (1..65535)
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "An index that uniquely identifies an entry in the
           smfGenReportCntrlTable.  Each such entry defines a unique
           report whose results are placed in the smfGenReportTable on
           behalf of this smfGenReportCntrlEntry."
       ::= { smfGenReportCntrlEntry 1 }


   smfGenReportCntrlInterval OBJECT-TYPE
       SYNTAX      Unsigned32
       UNITS       "Seconds"
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
          "The interval in seconds over which data is accumulated before
           being aggregated into a report in the smfGenReportTable.
           All reports with the same smfGenReportCntrlIndex will be
           based on the same interval.

           This object may not be modified if the associated
           smfGenReportCntrlStatus object is equal to active(1)."
       DEFVAL { 3600 }
       ::= { smfGenReportCntrlEntry 2 }

   smfGenReportCntrlReqSize OBJECT-TYPE
       SYNTAX      Unsigned32
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The maximum number of Client and Server combination
           entries requested for this report.

           When this object is created or modified, the probe
           should set smfGenReportCntrlGrantedSize as closely to this
           object as is possible for the particular probe
           implementation and available resources.

           It is important to note that this value is the number of
           requested entries in the smfGenReportTable only.

           This object may not be modified if the associated
           smfGenReportCntrlStatus object is equal to active(1)."
       ::= { smfGenReportCntrlEntry 3 }

   smfGenReportCntrlGrantedSize OBJECT-TYPE
       SYNTAX      Unsigned32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The maximum number of performance entries in this report.

           When the associated smfGenReportCntrlReqSize object is
           created or modified, the probe should set this
           object as closely to the requested value as is
           possible for the particular implementation and
           available resources.  The probe must not lower this
           value except as a result of a set to the associated
           smfGenReportCntrlReqSize object.

           It is an implementation-specific matter as to whether
           zero-valued entries are available."
       ::= { smfGenReportCntrlEntry 4 }

   smfGenReportCntrlReqReports OBJECT-TYPE
       SYNTAX      Unsigned32 (1..65535)
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The number of saved reports requested to be allocated on
           behalf of this entry.

           This object may not be modified if the associated
           smfGenReportCntrlStatus object is equal to active(1)."
       ::= { smfGenReportCntrlEntry 5 }

   smfGenReportCntrlGrantedReports OBJECT-TYPE
       SYNTAX      Unsigned32 (0..65535)
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The number of saved reports the agent has allocated based
           on the requested amount in smfGenReportCntrlReqReports.
           Because each report can have many entries, the total number
           of entries allocated will be this number multiplied by the
           value of smfGenReportCntrlGrantedSize, or by 1 if that
           object doesn't exist.

           When the associated smfGenReportCntrlReqReports object is
           created or modified, the agent should set this object as
           closely to the requested value as is possible for the
           particular implementation and available resources.  When
           considering available resources, the agent must consider its
           ability to allocate this many reports, each with the number
           of entries represented by smfGenReportCntrlGrantedSize, or
           by 1 if that object doesn't exist.

           Note that although the storage required for each report may
           fluctuate due to changing conditions, the agent must continue
           to have storage available to satisfy the full report size for
           all reports, when necessary.  Further, the agent must not
           lower this value except as a result of a set to the
           associated smfGenReportCntrlReqSize object."
       ::= { smfGenReportCntrlEntry 6 }

   smfGenReportCntrlStartTime OBJECT-TYPE
       SYNTAX      TimeStamp
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The value of sysUpTime when the system began processing the
           report in progress.  Note that the report in progress is not
           available.

           This object may be used by the management station to figure
           out the start time for all previous reports saved for this
           smfGenReportCntrlEntry, as reports are started at fixed
           intervals."
       ::= { smfGenReportCntrlEntry 7 }

   smfGenReportCntrlReportNumber OBJECT-TYPE
       SYNTAX      Unsigned32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The number of the report in progress.  When an
           smfGenReportCntrlEntry is activated, the first report will
           be numbered zero."
       ::= { smfGenReportCntrlEntry 8 }

   smfGenReportCntrlInsertsDenied OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The number of attempts to add an entry to reports for
           this SmfGenReportCntrlEntry that failed because the number
           of entries would have exceeded smfGenReportCntrlGrantedSize.

           This number is valuable in determining if enough entries have
           been allocated for reports in light of fluctuating network
           usage.  Note that an entry that is denied will often be
           attempted again, so this number will not predict the exact
           number of additional entries needed, but it can be used to
           understand the relative magnitude of the problem.

           Also note that there is no ordering specified for the entries
           in the report; thus, there are no rules for which entries
           will be omitted when not enough entries are available.  As a
           consequence, the agent is not required to delete 'least
           valuable' entries first."
       ::= { smfGenReportCntrlEntry 9 }

   smfGenReportCntrlOwner OBJECT-TYPE
       SYNTAX      OwnerString
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The entity that configured this entry and is
           therefore using the resources assigned to it.

           This object may not be modified if the associated
           smfGenReportCntrlStatus object is equal to active(1)."
       ::= { smfGenReportCntrlEntry 10 }

   smfGenReportCntrlStorageType OBJECT-TYPE
       SYNTAX      StorageType
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The storage type of this smfGenReportCntrlEntry.  If the
           value of this object is 'permanent', no objects in this row
           need to be writable."
       ::= { smfGenReportCntrlEntry 11 }

   smfGenReportCntrlStatus OBJECT-TYPE
       SYNTAX      RowStatus
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
           "The status of this performance control entry.

           An entry may not exist in the active state unless each
           object in the entry has an appropriate value.

           Once this object is set to active(1), no objects in the
           smfGenReportCntrlTable can be changed.

           If this object is not equal to active(1), all associated
           entries in the smfGenReportTable shall be deleted."
       ::= { smfGenReportCntrlEntry 12 }


   --
   -- Reports
   --

   smfGenReportTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF SmfGenReportEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "This table contains 
           studies for each of the control table entries in
           smfGenReportCntrlTable.  These studies are
           provided based on the selections and parameters
           found for the entry in the
           smfGenReportCntrlTable.

           The performance counter are the same as those
           specified in the smfPerformanceGroup."
       ::= { smfReportsGroup 2 }

   smfGenReportEntry OBJECT-TYPE
       SYNTAX      SmfGenReportEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "A conceptual row in the smfGenReportTable.

           The smfGenReportCntrlIndex value in the index identifies the
           smfGenReportCntrlEntry on whose behalf this entry was
           created.

           The smfGenReportIndex value in the index identifies which
           report (in the series of reports) this entry is a part of.

           An example of the indexing of this entry is
           smfGenReportMultiPktsForwarded.3.15"
       INDEX { smfGenReportCntrlIndex,
               smfGenReportIndex
             }
       ::= { smfGenReportTable 1 }

   SmfGenReportEntry ::= SEQUENCE {
       smfGenReportIndex                    Unsigned32,
       smfGenReportMultiPktsRecvTot         ZeroBasedCounter32,
       smfGenReportMultiPktsForwardedTot    ZeroBasedCounter32,
       smfGenReportDuplMultiPktsDetected    ZeroBasedCounter32,
   }

   smfGenReportIndex  OBJECT-TYPE
       SYNTAX      Unsigned32 (1..2147483647)
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "The value of smfGenReportCntrlNumber for the report to
           which this entry belongs."
       ::= { smfGenReportEntry 1 }

   smfGenReportMultiPktsRecvTot  OBJECT-TYPE
       SYNTAX      ZeroBasedCounter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The count of the total number of ...."
       ::= { smfGenReportEntry 2 }

   smfGenReportMultiPktsForwardedTot  OBJECT-TYPE
       SYNTAX      ZeroBasedCounter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The count of the total number of ...."
       ::= { smfGenReportEntry 3 }

   smfGenReportDuplMultiPktsDetectedTot  OBJECT-TYPE
       SYNTAX      ZeroBasedCounter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The count of the total number of ...."
       ::= { smfGenReportEntry 4 }

   smfGenReportDroppedMultiPktsTTLExceededTot  OBJECT-TYPE
       SYNTAX      ZeroBasedCounter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The count of the total number of ...."
       ::= { smfGenReportEntry 5 }


   --
   -- Notifications
   --

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



   --
   -- Compliance Statements
   --

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


   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 { 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 { smfConfigObjectsGroup,
                         smfStateObjectsGroup,
                         smfPerfObjectsGroup }
   ::= { smfCompliances 2 }  

   --
   -- Units of Conformance
   --

   smfConfigObjectsGroup OBJECT-GROUP
      OBJECTS {
              smfOperationalMode,
              smfRssa,
              smfIpv4Dpd, 
              smfIpv6Dpd,
              smfNhdpRssaMesgTLVIncluded,
              smfNhdpRssaAddrBlockTLVIncluded,
              smfNhdpRouterPriorityTLVIncluded
      }
      STATUS  current
      DESCRIPTION
         "Set of SMF configuration objects implemented
          in this module."
   ::= { smfMIBGroups 1 }

   smfStateObjectsGroup  OBJECT-GROUP
      OBJECTS {
              smfNodeRsStatusIncluded,
              smfNeighborRSSA,
              smfNeighborNextHopInterface
      }
      STATUS  current
      DESCRIPTION
         "Set of SMF state objects implemented
          in this module."
   ::= { smfMIBGroups 2 }

   smfPerfObjectsGroup  OBJECT-GROUP
      OBJECTS {
              smfMultiPktsRecvTotal,
              smfMultiPktsForwardedTotal,
              smfDuplMultiPktsDetectedTotal,     
              smfDroppedMultiPktsTTLExceededTotal,     
              smfMultiPktsRecvPerIf,
              smfMultiPktsForwardedPerIf,
              smfDuplMultiPktsDetectedPerIf,
              smfDroppedMultiPktsTTLExceededPerIf
      }
      STATUS  current
      DESCRIPTION
         "Set of SMF performance objects implemented
          in this module by total and per interface."
   ::= { smfMIBGroups 3 }

   END

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

    <section title="Security Considerations">
      <!--[TODO] Remember to consider security from the start. -->

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

      <t></t>

      <t>[TODO] if you have any read-write and/or read-create objects, please
      include the following boilerplate paragraph.</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>[TODO] writeable MIB objects that could be especially disruptive
          if abused MUST be explicitly listed by name and the associated
          security risks MUST be spelled out; RFC 2669 has a very good
          example.</t>

          <t>[TODO] list the writable tables and objects and state why they
          are sensitive.</t>
        </list></t>

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

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

      <t>[TODO] if you have any sensitive readable objects, please include the
      following boilerplate paragraph.</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>[TODO] you must explicitly list by name any readable objects that
          are sensitive or vulnerable and the associated security risks MUST
          be spelled out (for instance, if they might reveal customer
          information or violate personal privacy laws such as those of the
          European Union if exposed to unauthorized parties)</t>

          <t>[TODO] list the tables and objects and state why they are
          sensitive.</t>
        </list></t>

      <t>[TODO] discuss what security the protocol used to carry the
      information should have. The following three boilerplate paragraphs
      should not be changed without very good reason. Changes will almost
      certainly require justification during IESG review.</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  { mib-2 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>
    </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>

      <t><!--[TODO] Change this section to mention contributors to your 
             MIB module document.--></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;

      &rfc3418;

      <!--  <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>-->
    </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>Not applicable to draft 00</t>

      <t>
        <list style="numbers">
          <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>Clarify handling of the NHDP TLV message inclusions?</t>

          <t>Can we develop a capabilities table for the supported RSSA algorithms?
          And, if so, can each supportted RSSA have a different set of configuration
          parameters?</t>

          <t>Is the Gateway Filter table appropriate for this MIB or should
          it be handled in a seperate MIB worked elsewhere?  How should this table
          be indexed and how should it represent the ordering of the rules (or
          chains)? Should this be greatly simplified? How do we handle null values
          in the rules?</t>

          <t>What are the additional performance objects to be included, e.g.,
          Hash collisions, max, min and average neighbor set?  How would average
          be determined?</t>

          <t>Is it useful to track the effectiveness of the coverage of the
          current RSSA?  Is it possible to track this?</t>

          <t>Complete notification group.</t>

          <t>Complete conformance group.</t>

          <t>Work on the relationship to other MIBs, IF-MIB, NHDP-MIB.</t>

          <t>Identify all objects requiring non-volatile storage in their
          DESCRIPTION clauses.</t>

          <t>Incorporate parameter relationship conditions into their
          DESCRIPTION clauses.</t>

          <t>Complete the security analysis and section.</t>

          <t>Cleanup all the [TODOs] from the MIB template.</t>
        </list>
      </t>
    </section>

    <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 />
    </figure>
  </back>
</rfc>
