SMF-MIB DEFINITIONS ::= BEGIN


   IMPORTS

      MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
      Counter32, Integer32, TimeTicks, experimental
         FROM SNMPv2-SMI                          -- RFC 2578

      TEXTUAL-CONVENTION, RowStatus, TruthValue
         FROM SNMPv2-TC                           -- RFC 2579







      MODULE-COMPLIANCE, OBJECT-GROUP,
      NOTIFICATION-GROUP
         FROM SNMPv2-CONF                         -- RFC 2580

      InterfaceIndexOrZero, ifName
         FROM IF-MIB                              -- RFC 2863

      SnmpAdminString
         FROM SNMP-FRAMEWORK-MIB                  -- RFC 3411

      InetAddress, InetAddressType,
      InetAddressPrefixLength
         FROM INET-ADDRESS-MIB                    -- RFC 4001

      IANAsmfOpModeIdTC,
      IANAsmfRssaIdTC
               FROM IANA-SMF-MIB
      ;

   smfMIB MODULE-IDENTITY
      LAST-UPDATED "201410100000Z"  -- October 10, 2014
      ORGANIZATION "IETF MANET Working Group"
      CONTACT-INFO
         "WG EMail:  manet@ietf.org

          WG Chairs: sratliff@cisco.com
                     jmacker@nrl.navy.mil

          Editors:   Robert G. Cole
                     US Army CERDEC
                     6010 Frankford Road
                     Aberdeen Proving Ground, MD 21005
                     USA
                     Phone: +1 443 395-8744
                     EMail: robert.g.cole@us.army.mil

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

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






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

          Macker, J., Ed., Simplified Multicast Forwarding, RFC 6621,
          May 2012.

          Copyright (c) 2014 IETF Trust and the persons identified as
          authors of the code.  All rights reserved.

          Redistribution and use in source and binary forms, with or
          without modification, is permitted pursuant to, and subject
          to the license terms contained in, the Simplified BSD License
          set forth in Section 4.c of the IETF Trust's Legal Provisions
          Relating to IETF Documents
          (http://trustee.ietf.org/license-info)."

        -- Revision History
        REVISION    "201410100000Z"   -- October 10, 2014
        DESCRIPTION
           "The first version of this MIB module,
            published as RFC 7367.
           "
        ::= { experimental 126 }

   --
   -- TEXTUAL CONVENTIONs
   --

   SmfStatus ::= TEXTUAL-CONVENTION
       STATUS       current
       DESCRIPTION
          "An indication of the operability of an SMF
          function or feature.  For example, the status
          of an interface: 'enabled' indicates that
          this interface is performing SMF functions
          and 'disabled' indicates that it is not.
          Similarly, for the status of the device:
          'enabled' indicates that the device has
          enabled the SMF functions on the device and
          'disabled' means that the device and all interfaces
          have disabled all SMF functions."
       SYNTAX  INTEGER {
                        enabled (1),
                        disabled (2)
               }
   --
   -- Top-Level Object Identifier Assignments





   --

   smfMIBNotifications OBJECT IDENTIFIER ::= { smfMIB 0 }
   smfMIBObjects       OBJECT IDENTIFIER ::= { smfMIB 1 }
   smfMIBConformance   OBJECT IDENTIFIER ::= { smfMIB 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 Capabilities Table
   --

   smfCapabilitiesTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF SmfCapabilitiesEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "The smfCapabilitiesTable identifies the
            resident set of SMF Operational Modes and
            RSSA combinations that can run on this
            forwarder."
       REFERENCE
          "See Section 7.2 'Reduced Relay Set Forwarding',
           Section 8.1.1 'SMF Message TLV Type', and
           the Appendices A, B, and C in
           RFC 6621 - 'Simplified Multicast Forwarding',
           Macker, J., May 2012."
       ::= { smfCapabilitiesGroup 1 }

   smfCapabilitiesEntry OBJECT-TYPE
       SYNTAX      SmfCapabilitiesEntry
       MAX-ACCESS  not-accessible
       STATUS      current





       DESCRIPTION
           "Information about a particular operational
            mode and RSSA combination.
           "
       INDEX   { smfCapabilitiesIndex }
       ::= { smfCapabilitiesTable 1 }

   SmfCapabilitiesEntry ::= SEQUENCE {
         smfCapabilitiesIndex                 Integer32,
         smfCapabilitiesOpModeID              IANAsmfOpModeIdTC,
         smfCapabilitiesRssaID                IANAsmfRssaIdTC
   }

   smfCapabilitiesIndex     OBJECT-TYPE
       SYNTAX      Integer32 (1..2147483647)
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "The index for this entry; a unique value,
            greater than zero, for each combination of
            a particular operational mode and RSSA
            available on this device.
            It is recommended that values are assigned
            contiguously starting from 1.

            Rows in this table are automatically
            populated by the entity's management system
            on initialization.

            By default, the agent should support at least the
            Classical Flooding 'cF' algorithm.  All compliant
            SMF forwarders must support Classical Flooding.
            Hence, the first entry in this table MUST exist
            and MUST be defined as:

               smfCapabilitiesIndex i '1'
               smfCapabilitiesOpModeID i 'cfOnly(1)'
               smfCapabilitiesRssaID i 'cF(1)'

            The value for each combination MUST remain
            constant at least from one re-initialization
            of the entity's management system to the
            next re-initialization."
       ::= { smfCapabilitiesEntry 1 }

   smfCapabilitiesOpModeID     OBJECT-TYPE
       SYNTAX      IANAsmfOpModeIdTC
       MAX-ACCESS  read-only





       STATUS      current
       DESCRIPTION
           "This object identifies
            the particular operational mode for this device."
       ::= { smfCapabilitiesEntry 2 }

   smfCapabilitiesRssaID     OBJECT-TYPE
       SYNTAX      IANAsmfRssaIdTC
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "This object identifies
            the particular RSSA algorithm in this MIB
            module.  Example RSSAs are found in the
            appendix of RFC 6621."
       REFERENCE
          "For example, see Section 8.1.1 'SMF Message TLV Type',
           and the Appendices A, B, and C in
           RFC 6621 - 'Simplified Multicast Forwarding',
           Macker, J., May 2012."
       ::= { smfCapabilitiesEntry 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 }

   smfCfgAdminStatus  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)' means that the SMF process
          is configured off.

          Prior to SMF functions being performed over
          specific interfaces, this object must first
          be 'enabled'.  If this object is 'disabled',
          then no SMF functions are being performed on





          the device and all smfCfgIfAdminStatus objects
          MUST also be set to 'disabled'.  When this
          object is changed from 'enabled' to 'disabled'
          by the manager, then all smfCfgIfAdminStatus
          objects MUST also be automatically set to
          'disabled' by the agent.

          The default value for this object SHOULD be
          'enabled'.

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

   smfCfgSmfSysUpTime OBJECT-TYPE
      SYNTAX  TimeTicks
      MAX-ACCESS  read-only
      STATUS  current
      DESCRIPTION
         "The time (in hundredths of a second) since the
          system SMF process was last re-initialized.
          The SMF process is re-initialized when the
          value of the 'smfCfgAdminStatus' object
          transitions to 'enabled' from either a prior
          value of 'disabled' or upon initialization
          of this device."
   ::= { smfConfigurationGroup 2 }

   smfCfgRouterIDAddrType  OBJECT-TYPE
      SYNTAX      InetAddressType { ipv4(1), ipv6(2) }
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "The address type of the address used for
          the SMF ID of this router as specified
          in the 'smfCfgRouterID' next.

          Only the values ipv4(1) and ipv6(2)
          are supported.

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






   smfCfgRouterID  OBJECT-TYPE
      SYNTAX      InetAddress (SIZE(4|16))
      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 'smfCfgRouterID'.

          The smfCfgRouterID is a logical identification
          that MUST be consistent across interoperable
          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.  An smfCfgRouterID 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."
      REFERENCE
         "For example, see

          Appendix A.1 'E-CDS Relay Set Selection Overview'

          and

          Appendix C.1 'MPR-CDS Relay Set Selection
          Overview' in

          RFC 6621 - 'Simplified Multicast Forwarding',
          Macker, J., Ed., May 2012."
    ::= { smfConfigurationGroup 4 }

   smfCfgOperationalMode  OBJECT-TYPE
      SYNTAX      Integer32 (1..2147483647)
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "The SMF RSS node operational mode and
          RSSA combination active on this
          local forwarder.  This object is defined
          to be equal to the smfCapabilitiesIndex,





          which identifies the specific active
          operational mode and RSSA.

          The default value for this object is
          '1', which corresponds to:

             smfCapabilitiesOpModeID i 'cfOnly(1)'
             smfCapabilitiesRssaID i 'cF(1)'

          This object is persistent and, when written,
          the entity SHOULD save the change to
          non-volatile storage."
      REFERENCE
          "See Section 7.2 'Reduced Relay Set Forwarding',
           and the Appendices A, B, and C in
           RFC 6621 - 'Simplified Multicast Forwarding',
           Macker, J., Ed., May 2012."
      DEFVAL { 1 }
   ::= { smfConfigurationGroup 5 }

   smfCfgRssaMember  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(2)' forces the selected
          RSSA to 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."
      REFERENCE
         "See Section 7 'Relay Set Selection' in
          RFC 6621 - 'Simplified Multicast Forwarding',
          Macker, J., Ed., May 2012."
      DEFVAL { potential }
   ::= { smfConfigurationGroup 6 }

   smfCfgIpv4Dpd  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
          router's 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."
      REFERENCE
         "See Section 6.2 'IPv4 Duplicate Packet
          Detection' in
          RFC 6621 - 'Simplified Multicast Forwarding',
          Macker, J., Ed., May 2012."
      DEFVAL { hashBased }
   ::= { smfConfigurationGroup 7 }

   smfCfgIpv6Dpd  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
          'smfCfgIpv4Dpd'.

          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."
      REFERENCE
         "See Section 6.1 'IPv6 Duplicate Packet
          Detection' in
          RFC 6621 - 'Simplified Multicast Forwarding',
          Macker, J., Ed., May 2012."
      DEFVAL { hashBased }
   ::= { smfConfigurationGroup 8 }

   smfCfgMaxPktLifetime  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."
      REFERENCE
         "See Section 6 'SMF Duplicate Packet
          Detection' in
          RFC 6621 - 'Simplified Multicast Forwarding',
          Macker, J., Ed., May 2012."
      DEFVAL { 60 }
   ::= { smfConfigurationGroup 9 }

   smfCfgDpdEntryMaxLifetime  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
          MaxLifetime 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."
      REFERENCE
         "See Section 6 'SMF Duplicate Packet
          Detection' in
          RFC 6621 - 'Simplified Multicast Forwarding',
          Macker, J., Ed., May 2012."
      DEFVAL { 600 }
   ::= { smfConfigurationGroup 10 }

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

   smfCfgNhdpRssaMesgTLVIncluded  OBJECT-TYPE
      SYNTAX      TruthValue
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "Indicates whether or not the associated NHDP
          messages include the RSSA Message TLV.  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."
      REFERENCE
         "See Section 8.1.1 'SMF Message TLV Type' in
          RFC 6621 - 'Simplified Multicast Forwarding',





          Macker, J., Ed., May 2012."
      DEFVAL { true }
   ::= { smfConfigurationGroup 11 }

   smfCfgNhdpRssaAddrBlockTLVIncluded  OBJECT-TYPE
      SYNTAX      TruthValue
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
         "Indicates whether or not the associated NHDP
          messages include the RSSA Address Block TLV.
          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 smfCfgNhdpRssaAddrBlockTLVIncluded is optional
          in all cases as it depends on the existence of
          an address block that 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."
      REFERENCE
         "See Section 8.1.2 'SMF Address Block TLV
          Type' in
          RFC 6621 - 'Simplified Multicast Forwarding',
          Macker, J., Ed., May 2012."
      DEFVAL { true }
   ::= { smfConfigurationGroup 12 }

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

   smfCfgAddrForwardingTable  OBJECT-TYPE
      SYNTAX     SEQUENCE OF SmfCfgAddrForwardingEntry
      MAX-ACCESS not-accessible
      STATUS     current
      DESCRIPTION
         "The smfCfgAddrForwardingTable is essentially a filter
          table (if populated) that identifies addresses/packets
          to be forwarded via the local SMF flooding process.
          The IP Multicast MIB module in RFC 5132 manages objects
          related to standard IP multicast, which could be running
          in parallel to SMF on the device.





          RFC 5132 manages traditional IP-based multicast (based
          upon multicast routing mechanisms).  The SMF-MIB module
          provides management for a MANET subnet-based flooding
          mechanism that may be used for multicast transport
          (through SMF broadcast) depending upon the MANET dynamics
          and other factors regarding the MANET subnet.  Further,
          they may coexist in certain MANET deployments
          using the smfCfgAddrForwardingTable to hand certain IP
          multicast addresses to the SMF process and other IP
          multicast packets to be forwarded by other
          multicast mechanisms that are IP route based.  SMF and
          the associated SMF-MIB module are experimental and these
          are some of the experiments to be had with SMF and
          the SMF-MIB module.

          This is the (conceptual) table containing information on
          multicast addresses that are to be forwarded by the SMF
          process.  This table represents an IP filters table for
          forwarding (or not) packets based upon their IP
          multicast address.

          The SMF process can be configured to forward only those
          multicast addresses found within the
          smfCfgAddrForwardingTable.  As such, addresses that are
          to be forwarded by the SMF process MUST be found within
          the address ranges configured within this table, unless
          this table is empty.

          Each row is associated with a range of multicast
          addresses, and ranges for different rows must be disjoint.
          Different rows MAY share a common
          smfCfgAddrForwardingGroupName to administratively
          associate different rows.

          The objects in this table are persistent and, when written,
          the entity SHOULD save the change to non-volatile storage."
      REFERENCE
         "See Section 9.1 'Forwarded Multicast Groups' in
          RFC 6621 - 'Simplified Multicast Forwarding',
          Macker, J., Ed., May 2012."
   ::= { smfConfigurationGroup 13 }

   smfCfgAddrForwardingEntry OBJECT-TYPE
      SYNTAX     SmfCfgAddrForwardingEntry
      MAX-ACCESS not-accessible
      STATUS     current
      DESCRIPTION
         "An entry (conceptual row) containing the information on a





          particular multicast scope."
      INDEX { smfCfgAddrForwardingIndex }
      ::= { smfCfgAddrForwardingTable 1 }

   SmfCfgAddrForwardingEntry ::= SEQUENCE {
      smfCfgAddrForwardingIndex         Integer32,
      smfCfgAddrForwardingGroupName     SnmpAdminString,
      smfCfgAddrForwardingAddrType      InetAddressType,
      smfCfgAddrForwardingAddress       InetAddress,
      smfCfgAddrForwardingAddrPrefixLength
                                        InetAddressPrefixLength,
      smfCfgAddrForwardingStatus        RowStatus
   }

   smfCfgAddrForwardingIndex     OBJECT-TYPE
      SYNTAX      Integer32 (1..2147483647)
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
         "This object identifies a unique entry
          for a forwarding group.  The index for
          this entry is a unique value,
          greater than zero, for each row.
          It is recommended that values are assigned
          contiguously starting from 1.

          The value for each row index MUST remain
          constant from one re-initialization
          of the entity's management system to the
          next re-initialization."
   ::= { smfCfgAddrForwardingEntry 1 }

   smfCfgAddrForwardingGroupName  OBJECT-TYPE
      SYNTAX      SnmpAdminString
      MAX-ACCESS  read-create
      STATUS      current
      DESCRIPTION
         "This object identifies a group name for a set of
          row entries in order to administratively associate
          a set of address ranges.

          If there is no group name or this object is
          otherwise not applicable, then this object contains
          a zero-length string.

          This object is persistent and, when written,
          the entity SHOULD save the change to
          non-volatile storage."





   ::= { smfCfgAddrForwardingEntry 2 }

   smfCfgAddrForwardingAddrType OBJECT-TYPE
      SYNTAX     InetAddressType { ipv4(1), ipv6(2) }
      MAX-ACCESS read-create
      STATUS     current
      DESCRIPTION
         "The type of the addresses in the multicast
          forwarding ranges identified by this table.

          Only the values ipv4(1) and ipv6(2) are
          supported.

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

   smfCfgAddrForwardingAddress OBJECT-TYPE
      SYNTAX     InetAddress (SIZE(4|16))
      MAX-ACCESS read-create
      STATUS     current
      DESCRIPTION
         "The multicast group address that, when
          combined with smfCfgAddrForwardingAddrPrefixLength,
          gives the group prefix for this forwarding range.
          The InetAddressType is given by
          smfCfgAddrForwardingAddrType.

          This address object is only significant up to
          smfCfgAddrForwardingAddrPrefixLength bits.  The
          remaining address bits are set to zero.  This is
          especially important for this index field.
          Any non-zero bits would signify an entirely
          different entry.

          Legal values correspond to the subset of address
          families for which multicast address allocation
          is supported.

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

   smfCfgAddrForwardingAddrPrefixLength OBJECT-TYPE
      SYNTAX     InetAddressPrefixLength
      MAX-ACCESS read-create





      STATUS     current
      DESCRIPTION
         "The length in bits of the mask that, when
          combined with smfCfgAddrForwardingAddress,
          gives the group prefix for this forwarding
          range.

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

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

   --
   -- SMF Interfaces Configuration Table
   --

   smfCfgInterfaceTable  OBJECT-TYPE
      SYNTAX      SEQUENCE OF SmfCfgInterfaceEntry
      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 module (RFC 2863).  As such,
          this table 'sparse augments' the ifTable
          specifically when SMF is to be configured to
          operate over this interface.

          A conceptual row in this table exists if and only
          if either a manager has explicitly created the row
          or there is an interface on the managed device
          that automatically supports and runs SMF as part
          of the device's initialization process.

          The manager creates a row in this table by setting
          the rowStatus to 'createAndGo' or 'createAndWait'.
          Row objects having associated DEFVAL clauses are





          automatically defined by the agent with these
          values during row creation, unless the manager
          explicitly defines these object values during the
          row creation.

          As the smfCfgInterfaceTable sparsely augments the
          IfTable.  Hence,

             + an entry cannot exist in smfCfgInterfaceTable
               without a corresponding entry in the ifTable.

             + if an entry in the ifTable is removed, the
               corresponding entry (if it exists) in the
               smfCfgInterfaceTable MUST be removed.

             + the smfCfgIfStatus can have a value of
               'enabled' or 'disabled' independent of the
               current value of the ifAdminStatus of the
               corresponding entry in the ifTable.

          The values of the objects smfCfgAdminStatus and
          smfCfgIfAdminStatus reflect the up-down status of
          the SMF process running on the device and on the
          specific interfaces, respectively.  Hence,

             + the value of the smfCfgAdminStatus can be
               'enabled' or 'disabled' reflecting the current
               running status of the SMF process on the device.

             + the value of the smfCfgIfAdminStatus can be
               'enabled' or 'disabled' if the value of the
               smfCfgAdminStatus is set to 'enabled'.

             + if the value of the smfCfgAdminStatus is
               'disabled', then the corresponding
               smfCfgIfAdminStatus objects MUST be set
               to 'disabled' in the smfCfgInterfaceTable.

             + once the value of the smfCfgAdminStatus changes
               from 'disabled' to 'enabled', it is up to the
               management system to make the corresponding
               changes to the smfCfgIfAdminStatus values
               back to 'enabled'.
          "
      REFERENCE
         "RFC 2863 - 'The Interfaces Group MIB', McCloghrie,
          K., and F. Kastenholtz, June 2000."
   ::= { smfConfigurationGroup 14 }





   smfCfgInterfaceEntry OBJECT-TYPE
      SYNTAX      SmfCfgInterfaceEntry
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
         "The SMF interface entry describes one SMF
          interface as indexed by its ifIndex.

          The objects in this table are persistent and, when
          written, the device SHOULD save the change to
          non-volatile storage.  For further information
          on the storage behavior for these objects, refer
          to the description for the smfCfgIfRowStatus
          object."
      INDEX { smfCfgIfIndex }
   ::= { smfCfgInterfaceTable 1 }

   SmfCfgInterfaceEntry ::=
      SEQUENCE {
         smfCfgIfIndex        InterfaceIndexOrZero,
         smfCfgIfAdminStatus  SmfStatus,
         smfCfgIfSmfUpTime    TimeTicks,
         smfCfgIfRowStatus    RowStatus
         }

   smfCfgIfIndex  OBJECT-TYPE
      SYNTAX      InterfaceIndexOrZero
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
         "The ifIndex for this SMF interface.  This value
          MUST correspond to an ifIndex referring
          to a valid entry in the Interfaces Table.
          If the manager attempts to create a row
          for which the ifIndex does not exist on the
          local device, then the agent SHOULD issue
          a return value of 'inconsistentValue' and
          the operation SHOULD fail."
      REFERENCE
         "RFC 2863 - 'The Interfaces Group MIB', McCloghrie,
          K., and F. Kastenholtz, June 2000."
      ::= { smfCfgInterfaceEntry 1 }

   smfCfgIfAdminStatus 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
         currently external to the SMF forwarding process.

         When the value of the smfCfgAdminStatus is
         'disabled', then the corresponding smfCfgIfAdminStatus
         objects MUST be set to 'disabled' in the
         smfCfgInterfaceTable.

         If this object is not equal to 'enabled', all associated
         entries in the 'smfPerfIpv4InterfacePerfTable' and the
         'smfPerfIpv6InterfacePerfTable' MUST be deleted.

     The default value for this object is 'enabled(1)'.

         This object SHOULD be persistent and when
         written the device SHOULD save the change to
         non-volatile storage."
      DEFVAL { enabled }
      ::= { smfCfgInterfaceEntry 2 }

   smfCfgIfSmfUpTime OBJECT-TYPE
      SYNTAX  TimeTicks
      MAX-ACCESS  read-only
      STATUS  current
      DESCRIPTION
         "The time (in hundredths of a second) since
         this interface SMF process was last
         re-initialized.  The interface SMF process is
         re-initialized when the value of the
         'smfCfgIfAdminStatus' object transitions to 'enabled'
         from either a prior value of 'disabled' or upon
         initialization of this interface or this device."
      ::= { smfCfgInterfaceEntry 3 }

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





          An entry may not exist in the 'active' state unless all
          objects in the entry have a defined appropriate value.  For
          objects with DEFVAL clauses, the management station
          does not need to specify the value of these objects in order
          for the row to transit to the 'active' state; the default
          value for these objects is used.  For objects that do not
          have DEFVAL clauses, the network manager MUST
          specify the value of these objects prior to this row
          transitioning to the 'active' state.

          When this object transitions to 'active', all objects
          in this row SHOULD be written to non-volatile (stable)
          storage.  Read-create objects in this row MAY be modified.
          When an object in a row with smfCfgIfRowStatus of 'active'
          is changed, then the updated value MUST be reflected in SMF
          and this new object value MUST be written to non-volatile
          storage."
      ::= { smfCfgInterfaceEntry 4 }

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

   smfStateNodeRsStatusIncluded  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."
      REFERENCE
         "See Section 7 'Relay Set Selection' in
          RFC 6621 - 'Simplified Multicast Forwarding',
          Macker, J., Ed., May 2012."
   ::= { smfStateGroup 1 }

   smfStateDpdMemoryOverflow  OBJECT-TYPE
      SYNTAX      Counter32
      UNITS       "DPD Records"
      MAX-ACCESS  read-only





      STATUS      current
      DESCRIPTION
         "The number of DPD records that had to be flushed to
          prevent memory overruns for caching of these records.
          The number of records to be flushed upon a buffer
          overflow is an implementation specific decision.

          There is the potential for a counter discontinuity
          in this object if the system SMF process has been
          disabled and later enabled.  In order to check for
          the occurrence of such a discontinuity when monitoring
          this counter object, it is recommended that the
          smfCfgSmfSysUpTime object also be monitored."
      REFERENCE
         "See Section 6 'SMF Duplicate Packet
          Detection' in
          RFC 6621 - 'Simplified Multicast Forwarding',
          Macker, J., Ed., May 2012."
   ::= { smfStateGroup 2 }

   --
   -- SMF Neighbor Table
   --

   smfStateNeighborTable  OBJECT-TYPE
      SYNTAX       SEQUENCE OF SmfStateNeighborEntry
      MAX-ACCESS   not-accessible
      STATUS       current
      DESCRIPTION
         "The SMF StateNeighborTable describes the
          current one-hop neighbor nodes, their address
          and SMF RSSA, and the interface on which
          they can be reached."
      REFERENCE
         "See Section 8 'SMF Neighborhood Discovery' and
          Section 8.1. 'SMF Relay Algorithm TLV
          Types' in
          RFC 6621 - 'Simplified Multicast Forwarding',
          Macker, J., Ed., May 2012."
   ::= { smfStateGroup 3 }

   smfStateNeighborEntry  OBJECT-TYPE
      SYNTAX       SmfStateNeighborEntry
      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 { smfStateNeighborIpAddrType,
              smfStateNeighborIpAddr,
              smfStateNeighborPrefixLen }
   ::= { smfStateNeighborTable 1 }

   SmfStateNeighborEntry ::=
      SEQUENCE {
         smfStateNeighborIpAddrType        InetAddressType,
         smfStateNeighborIpAddr            InetAddress,
         smfStateNeighborPrefixLen         InetAddressPrefixLength,
         smfStateNeighborRSSA              IANAsmfRssaIdTC,
         smfStateNeighborNextHopInterface  InterfaceIndexOrZero
         }

   smfStateNeighborIpAddrType  OBJECT-TYPE
      SYNTAX      InetAddressType { ipv4(1), ipv6(2) }
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
         "The one-hop neighbor IP address type.

          Only the values 'ipv4(1)' and
          'ipv6(2)' are supported."
   ::= { smfStateNeighborEntry 1 }

   smfStateNeighborIpAddr  OBJECT-TYPE
      SYNTAX      InetAddress (SIZE(4|16))
      MAX-ACCESS  not-accessible
      STATUS      current
      DESCRIPTION
         "The one-hop neighbor Inet IPv4 or IPv6
         address.

         Only IPv4 and IPv6 addresses
         are supported."
   ::= { smfStateNeighborEntry 2 }

   smfStateNeighborPrefixLen  OBJECT-TYPE
      SYNTAX      InetAddressPrefixLength
      UNITS       "bits"
      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."
   ::= { smfStateNeighborEntry 3 }

   smfStateNeighborRSSA  OBJECT-TYPE
      SYNTAX       IANAsmfRssaIdTC
      MAX-ACCESS   read-only
      STATUS       current
      DESCRIPTION
         "The current RSSA running on the neighbor."
   ::= { smfStateNeighborEntry 4 }

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

   --
   -- SMF Performance Group
   --
   --    Contains objects that 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.
   --
   --    It is an expectation that SMF devices will
   --    implement the standard IP-MIB module in RFC 4293.
   --    Exactly how to integrate SMF packet handling and
   --    management into the standard IP-MIB module management
   --    is part of the experiment.
   --
   --    The SMF-MIB module counters within the
   --    smfPerformanceGroup count packets handled by the
   --    system and interface local SMF process (as discussed
   --    above).  Not all IP (unicast and multicast) packets
   --    on a device interface are handled by the SMF process.
   --    So the counters are tracking different packet streams
   --    in the IP-MIB and SMF-MIB modules.
   --

   smfPerformanceGroup  OBJECT IDENTIFIER ::= { smfMIBObjects 4 }

   smfPerfGobalGroup  OBJECT IDENTIFIER ::= { smfPerformanceGroup 1 }

   --





   -- IPv4 packet counters
   --

   smfPerfIpv4MultiPktsRecvTotal  OBJECT-TYPE
      SYNTAX      Counter32
      UNITS       "Packets"
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "A counter of the total number of
          multicast IPv4 packets received by the
          device and delivered to the SMF process.

          There is the potential for a counter discontinuity
          in this object if the system SMF process has been
          disabled and later enabled.  In order to check for
          the occurrence of such a discontinuity when monitoring
          this counter object, it is recommended that the
          smfCfgSmfSysUpTime object also be monitored."
   ::= { smfPerfGobalGroup 1 }

   smfPerfIpv4MultiPktsForwardedTotal  OBJECT-TYPE
      SYNTAX      Counter32
      UNITS       "Packets"
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "A counter of the total number of
          multicast IPv4 packets forwarded by the
          device.

          There is the potential for a counter discontinuity
          in this object if the system SMF process has been
          disabled and later enabled.  In order to check for
          the occurrence of such a discontinuity when monitoring
          this counter object, it is recommended that the
          smfCfgSmfSysUpTime object also be monitored."
   ::= { smfPerfGobalGroup 2 }

   smfPerfIpv4DuplMultiPktsDetectedTotal  OBJECT-TYPE
      SYNTAX      Counter32
      UNITS       "Packets"
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "A counter of the total number of duplicate
          multicast IPv4 packets detected by the
          device.





          There is the potential for a counter discontinuity
          in this object if the system SMF process has been
          disabled and later enabled.  In order to check for
          the occurrence of such a discontinuity when monitoring
          this counter object, it is recommended that the
          smfCfgSmfSysUpTime object also be monitored."
      REFERENCE
         "See Section 6.2 'IPv4 Duplicate Packet
          Detection' in
          RFC 6621 - 'Simplified Multicast Forwarding',
          Macker, J., Ed., May 2012."
   ::= { smfPerfGobalGroup 3 }

   smfPerfIpv4DroppedMultiPktsTTLExceededTotal  OBJECT-TYPE
      SYNTAX      Counter32
      UNITS       "Packets"
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "A counter of the total number of dropped
          multicast IPv4 packets by the
          device due to Time to Live (TTL) exceeded.

          There is the potential for a counter discontinuity
          in this object if the system SMF process has been
          disabled and later enabled.  In order to check for
          the occurrence of such a discontinuity when monitoring
          this counter object, it is recommended that the
          smfCfgSmfSysUpTime object also be monitored."
      REFERENCE
         "See Section 5 'SMF Packet Processing and
          Forwarding' in
          RFC 6621 - 'Simplified Multicast Forwarding',
          Macker, J., Ed., May 2012."
   ::= { smfPerfGobalGroup 4 }

   smfPerfIpv4TTLLargerThanPreviousTotal  OBJECT-TYPE
      SYNTAX      Counter32
      UNITS       "Packets"
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "A counter of the total number of IPv4 packets
          received that have a TTL larger than that
          of a previously received identical packet.

          There is the potential for a counter discontinuity
          in this object if the system SMF process has been





          disabled and later enabled.  In order to check for
          the occurrence of such a discontinuity when monitoring
          this counter object, it is recommended that the
          smfCfgSmfSysUpTime object also be monitored."
      REFERENCE
         "See Section 5 'SMF Packet Processing and
          Forwarding' in
          RFC 6621 - 'Simplified Multicast Forwarding',
          Macker, J., Ed., May 2012."
   ::= { smfPerfGobalGroup 5 }

   --
   -- IPv6 packet counters
   --

   smfPerfIpv6MultiPktsRecvTotal  OBJECT-TYPE
      SYNTAX      Counter32
      UNITS       "Packets"
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "A counter of the total number of
          multicast IPv6 packets received by the
          device and delivered to the SMF process.

          There is the potential for a counter discontinuity
          in this object if the system SMF process has been
          disabled and later enabled.  In order to check for
          the occurrence of such a discontinuity when monitoring
          this counter object, it is recommended that the
          smfCfgSmfSysUpTime object also be monitored."
   ::= { smfPerfGobalGroup 6 }

   smfPerfIpv6MultiPktsForwardedTotal  OBJECT-TYPE
      SYNTAX      Counter32
      UNITS       "Packets"
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "A counter of the total number of
          multicast IPv6 packets forwarded by the
          device.

          There is the potential for a counter discontinuity
          in this object if the system SMF process has been
          disabled and later enabled.  In order to check for
          the occurrence of such a discontinuity when monitoring
          this counter object, it is recommended that the





          smfCfgSmfSysUpTime object also be monitored."
   ::= { smfPerfGobalGroup 7 }

   smfPerfIpv6DuplMultiPktsDetectedTotal  OBJECT-TYPE
      SYNTAX      Counter32
      UNITS       "Packets"
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "A counter of the total number of duplicate
          multicast IPv6 packets detected by the
          device.

          There is the potential for a counter discontinuity
          in this object if the system SMF process has been
          disabled and later enabled.  In order to check for
          the occurrence of such a discontinuity when monitoring
          this counter object, it is recommended that the
          smfCfgSmfSysUpTime object also be monitored."
      REFERENCE
         "See Section 6.1 'IPv6 Duplicate Packet
          Detection' in
          RFC 6621 - 'Simplified Multicast Forwarding',
          Macker, J., Ed., May 2012."
   ::= { smfPerfGobalGroup 8 }

   smfPerfIpv6DroppedMultiPktsTTLExceededTotal  OBJECT-TYPE
      SYNTAX      Counter32
      UNITS       "Packets"
      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.

          There is the potential for a counter discontinuity
          in this object if the system SMF process has been
          disabled and later enabled.  In order to check for
          the occurrence of such a discontinuity when monitoring
          this counter object, it is recommended that the
          smfCfgSmfSysUpTime object also be monitored."
      REFERENCE
         "See Section 5 'SMF Packet Processing and
          Forwarding' in
          RFC 6621 - 'Simplified Multicast Forwarding',
          Macker, J., Ed., May 2012."
   ::= { smfPerfGobalGroup 9 }





   smfPerfIpv6TTLLargerThanPreviousTotal  OBJECT-TYPE
      SYNTAX      Counter32
      UNITS       "Packets"
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "A counter of the total number of IPv6 packets
          received that have a TTL larger than that
          of a previously received identical packet.

          There is the potential for a counter discontinuity
          in this object if the system SMF process has been
          disabled and later enabled.  In order to check for
          the occurrence of such a discontinuity when monitoring
          this counter object, it is recommended that the
          smfCfgSmfSysUpTime object also be monitored."
      REFERENCE
         "See Section 5 'SMF Packet Processing and
          Forwarding' in
          RFC 6621 - 'Simplified Multicast Forwarding',
          Macker, J., Ed., May 2012."
   ::= { smfPerfGobalGroup 10 }

   smfPerfIpv6HAVAssistsReqdTotal  OBJECT-TYPE
      SYNTAX      Counter32
      UNITS       "Packets"
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "A counter of the total number of IPv6 packets
          received that required the Hash Assist Value (HAV)
          for DPD.

          There is the potential for a counter discontinuity
          in this object if the system SMF process has been
          disabled and later enabled.  In order to check for
          the occurrence of such a discontinuity when monitoring
          this counter object, it is recommended that the
          smfCfgSmfSysUpTime object also be monitored."
      REFERENCE
         "See Section 6.1.1 'IPv6 SMF_DPD Option Header' in
          RFC 6621 - 'Simplified Multicast Forwarding',
          Macker, J., Ed., May 2012."
   ::= { smfPerfGobalGroup 11 }

   smfPerfIpv6DpdHeaderInsertionsTotal  OBJECT-TYPE
      SYNTAX      Counter32
      UNITS       "Packets"





      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "A counter of the total number of IPv6 packets
          received that the device inserted the
          DPD header option.

          There is the potential for a counter discontinuity
          in this object if the system SMF process has been
          disabled and later enabled.  In order to check for
          the occurrence of such a discontinuity when monitoring
          this counter object, it is recommended that the
          smfCfgSmfSysUpTime object also be monitored."
      REFERENCE
         "See Section 6.1.2 'IPv6 Identification-Based
          DPD' in
          RFC 6621 - 'Simplified Multicast Forwarding',
          Macker, J., Ed., May 2012."
   ::= { smfPerfGobalGroup 12 }

   --
   -- Per SMF Interface Performance Table
   --

   smfPerfInterfaceGroup OBJECT IDENTIFIER ::= { smfPerformanceGroup 2 }

   smfPerfIpv4InterfacePerfTable OBJECT-TYPE
      SYNTAX       SEQUENCE OF SmfPerfIpv4InterfacePerfEntry
      MAX-ACCESS   not-accessible
      STATUS       current
      DESCRIPTION
         "The SMF Interface Performance Table
          describes the SMF counters per
          interface."
   ::= { smfPerfInterfaceGroup 1 }

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

   SmfPerfIpv4InterfacePerfEntry ::=





      SEQUENCE {
         smfPerfIpv4MultiPktsRecvPerIf               Counter32,
         smfPerfIpv4MultiPktsForwardedPerIf          Counter32,
         smfPerfIpv4DuplMultiPktsDetectedPerIf       Counter32,
         smfPerfIpv4DroppedMultiPktsTTLExceededPerIf Counter32,
         smfPerfIpv4TTLLargerThanPreviousPerIf       Counter32
         }

   smfPerfIpv4MultiPktsRecvPerIf  OBJECT-TYPE
      SYNTAX      Counter32
      UNITS       "Packets"
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "A counter of the number of multicast IP
          packets received by the SMF process on
          this device on this interface.

          There is the potential for a counter discontinuity
          in this object if the system SMF process has been
          disabled and later enabled on this interface.
          In order to check for the occurrence of such a
          discontinuity when monitoring this counter object,
          it is recommended that the smfCfgIfSmfUpTime
          object also be monitored."
   ::= { smfPerfIpv4InterfacePerfEntry 1 }

   smfPerfIpv4MultiPktsForwardedPerIf  OBJECT-TYPE
      SYNTAX      Counter32
      UNITS       "Packets"
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "A counter of the number of
          multicast IP packets forwarded by the
          SMF process on this device
          on this interface.

          There is the potential for a counter discontinuity
          in this object if the system SMF process has been
          disabled and later enabled on this interface.
          In order to check for the occurrence of such a
          discontinuity when monitoring this counter object,
          it is recommended that the smfCfgIfSmfUpTime
          object also be monitored."
   ::= { smfPerfIpv4InterfacePerfEntry 2 }

   smfPerfIpv4DuplMultiPktsDetectedPerIf  OBJECT-TYPE





      SYNTAX      Counter32
      UNITS       "Packets"
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "A counter of the number of duplicate
          multicast IP packets detected by the
          SMF process on this device
          on this interface.

          There is the potential for a counter discontinuity
          in this object if the system SMF process has been
          disabled and later enabled on this interface.
          In order to check for the occurrence of such a
          discontinuity when monitoring this counter object,
          it is recommended that the smfCfgIfSmfUpTime
          object also be monitored."
   ::= { smfPerfIpv4InterfacePerfEntry 3 }

   smfPerfIpv4DroppedMultiPktsTTLExceededPerIf  OBJECT-TYPE
      SYNTAX      Counter32
      UNITS       "Packets"
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "A counter of the total number of dropped
          multicast IPv4 packets by the SMF process
          on this device on this interface
          due to TTL exceeded.

          There is the potential for a counter discontinuity
          in this object if the system SMF process has been
          disabled and later enabled on this interface.
          In order to check for the occurrence of such a
          discontinuity when monitoring this counter object,
          it is recommended that the smfCfgIfSmfUpTime
          object also be monitored."
   ::= { smfPerfIpv4InterfacePerfEntry 4 }

   smfPerfIpv4TTLLargerThanPreviousPerIf  OBJECT-TYPE
      SYNTAX      Counter32
      UNITS       "Packets"
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "A counter of the total number of IPv4 packets
          received by the SMF process on this device
          on this interface that have a TTL larger than





          that of a previously received identical packet.

          There is the potential for a counter discontinuity
          in this object if the system SMF process has been
          disabled and later enabled on this interface.
          In order to check for the occurrence of such a
          discontinuity when monitoring this counter object,
          it is recommended that the smfCfgIfSmfUpTime
          object also be monitored."
   ::= { smfPerfIpv4InterfacePerfEntry 5 }

   smfPerfIpv6InterfacePerfTable OBJECT-TYPE
      SYNTAX       SEQUENCE OF SmfPerfIpv6InterfacePerfEntry
      MAX-ACCESS   not-accessible
      STATUS       current
      DESCRIPTION
         "The SMF Interface Performance Table
          describes the SMF counters per
          interface."
   ::= { smfPerfInterfaceGroup 2 }

   smfPerfIpv6InterfacePerfEntry OBJECT-TYPE
      SYNTAX       SmfPerfIpv6InterfacePerfEntry
      MAX-ACCESS   not-accessible
      STATUS       current
      DESCRIPTION
         "The SMF Interface Performance entry
          describes the counters for a particular
          node interface."
      INDEX { smfCfgIfIndex }
   ::= { smfPerfIpv6InterfacePerfTable 1 }

   SmfPerfIpv6InterfacePerfEntry ::=
      SEQUENCE {
         smfPerfIpv6MultiPktsRecvPerIf               Counter32,
         smfPerfIpv6MultiPktsForwardedPerIf          Counter32,
         smfPerfIpv6DuplMultiPktsDetectedPerIf       Counter32,
         smfPerfIpv6DroppedMultiPktsTTLExceededPerIf Counter32,
         smfPerfIpv6TTLLargerThanPreviousPerIf       Counter32,
         smfPerfIpv6HAVAssistsReqdPerIf              Counter32,
         smfPerfIpv6DpdHeaderInsertionsPerIf         Counter32
         }

   smfPerfIpv6MultiPktsRecvPerIf  OBJECT-TYPE
      SYNTAX      Counter32
      UNITS       "Packets"
      MAX-ACCESS  read-only
      STATUS      current





      DESCRIPTION
         "A counter of the number of
          multicast IP packets received by the
          SMF process on this device
          on this interface.

          There is the potential for a counter discontinuity
          in this object if the system SMF process has been
          disabled and later enabled on this interface.
          In order to check for the occurrence of such a
          discontinuity when monitoring this counter object,
          it is recommended that the smfCfgIfSmfUpTime
          object also be monitored."
   ::= { smfPerfIpv6InterfacePerfEntry 1 }

   smfPerfIpv6MultiPktsForwardedPerIf  OBJECT-TYPE
      SYNTAX      Counter32
      UNITS       "Packets"
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "A counter of the number of
          multicast IP packets forwarded by the
          SMF process on this device
          on this interface.

          There is the potential for a counter discontinuity
          in this object if the system SMF process has been
          disabled and later enabled on this interface.
          In order to check for the occurrence of such a
          discontinuity when monitoring this counter object,
          it is recommended that the smfCfgIfSmfUpTime
          object also be monitored."
   ::= { smfPerfIpv6InterfacePerfEntry 2 }

   smfPerfIpv6DuplMultiPktsDetectedPerIf  OBJECT-TYPE
      SYNTAX      Counter32
      UNITS       "Packets"
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "A counter of the number of duplicate
          multicast IP packets detected by the
          SMF process on this device
          on this interface.

          There is the potential for a counter discontinuity
          in this object if the system SMF process has been





          disabled and later enabled on this interface.
          In order to check for the occurrence of such a
          discontinuity when monitoring this counter object,
          it is recommended that the smfCfgIfSmfUpTime
          object also be monitored."
   ::= { smfPerfIpv6InterfacePerfEntry 3 }

   smfPerfIpv6DroppedMultiPktsTTLExceededPerIf  OBJECT-TYPE
      SYNTAX      Counter32
      UNITS       "Packets"
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "A counter of the number of dropped
          multicast IP packets by the
          SMF process on this device
          on this interface due to TTL
          exceeded.

          There is the potential for a counter discontinuity
          in this object if the system SMF process has been
          disabled and later enabled on this interface.
          In order to check for the occurrence of such a
          discontinuity when monitoring this counter object,
          it is recommended that the smfCfgIfSmfUpTime
          object also be monitored."
   ::= { smfPerfIpv6InterfacePerfEntry 4 }

   smfPerfIpv6TTLLargerThanPreviousPerIf  OBJECT-TYPE
      SYNTAX      Counter32
      UNITS       "Packets"
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "A counter of the total number of IPv6 packets
          received that have a TTL larger than that
          of a previously received identical packet
          by the SMF process on this device on this
          interface.

          There is the potential for a counter discontinuity
          in this object if the system SMF process has been
          disabled and later enabled on this interface.
          In order to check for the occurrence of such a
          discontinuity when monitoring this counter object,
          it is recommended that the smfCfgIfSmfUpTime
          object also be monitored."
   ::= { smfPerfIpv6InterfacePerfEntry 5 }





   smfPerfIpv6HAVAssistsReqdPerIf  OBJECT-TYPE
      SYNTAX      Counter32
      UNITS       "Packets"
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "A counter of the total number of IPv6 packets
          received by the SMF process on this device
          on this interface that required the
          HAV assist for DPD.

          There is the potential for a counter discontinuity
          in this object if the system SMF process has been
          disabled and later enabled on this interface.
          In order to check for the occurrence of such a
          discontinuity when monitoring this counter object,
          it is recommended that the smfCfgIfSmfUpTime
          object also be monitored."
   ::= { smfPerfIpv6InterfacePerfEntry 6 }

   smfPerfIpv6DpdHeaderInsertionsPerIf  OBJECT-TYPE
      SYNTAX      Counter32
      UNITS       "Packets"
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "A counter of the total number of IPv6 packets
          received by the SMF process on this device
          on this interface that the device inserted the
          DPD header option.

          There is the potential for a counter discontinuity
          in this object if the system SMF process has been
          disabled and later enabled on this interface.
          In order to check for the occurrence of such a
          discontinuity when monitoring this counter object,
          it is recommended that the smfCfgIfSmfUpTime
          object also be monitored."
   ::= { smfPerfIpv6InterfacePerfEntry 7 }

   --
   -- Notifications
   --

smfMIBNotifObjects OBJECT IDENTIFIER ::= { smfMIBNotifications 0 }
smfMIBNotifControl OBJECT IDENTIFIER ::= { smfMIBNotifications 1 }

   -- smfMIBNotifObjects





   smfNotifAdminStatusChange NOTIFICATION-TYPE
          OBJECTS { smfCfgRouterIDAddrType, -- The originator of
                                            --   the notification.
                    smfCfgRouterID,         -- The originator of
                                            --   the notification.
                    smfCfgAdminStatus       -- The new status of the
                                            --   SMF process.
                  }
          STATUS       current
          DESCRIPTION
             "smfCfgAdminStatusChange is a notification sent when
              the 'smfCfgAdminStatus' object changes."
          ::= { smfMIBNotifObjects 1 }

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

   smfNotifIfAdminStatusChange NOTIFICATION-TYPE
          OBJECTS { smfCfgRouterIDAddrType, -- The originator of
                                            --   the notification.
                    smfCfgRouterID,         -- The originator of
                                            --   the notification.
                    ifName,                 -- The interface whose
                                            --   status has changed.
                    smfCfgIfAdminStatus     -- The new status of the
                                            --   SMF interface.
                  }
          STATUS       current
          DESCRIPTION
             "smfCfgIfAdminStatusChange is a notification sent when
              the 'smfCfgIfAdminStatus' object changes."
          ::= { smfMIBNotifObjects 3 }

    smfNotifDpdMemoryOverflowEvent NOTIFICATION-TYPE
          OBJECTS { smfCfgRouterIDAddrType,   -- The originator of





                                              --   the notification.
                    smfCfgRouterID,           -- The originator of
                                              --   the notification.
                    smfStateDpdMemoryOverflow -- The counter of
                                              --   the overflows.
             }
          STATUS       current
          DESCRIPTION
             "smfNotifDpdMemoryOverflowEvents is sent when the
              number of memory overflow events exceeds
              the 'smfNotifDpdMemoryOverflowThreshold' within the
              previous number of seconds defined by the
              'smfNotifDpdMemoryOverflowWindow'."
          ::= { smfMIBNotifObjects 4 }

   -- smfMIBNotifControl
   smfNotifDpdMemoryOverflowThreshold OBJECT-TYPE
          SYNTAX       Integer32 (0..255)
          UNITS        "Events"
          MAX-ACCESS   read-write
          STATUS       current
          DESCRIPTION
             "A threshold value for the
              'smfNotifDpdmemoryOverflowEvents' object.
              If the number of occurrences exceeds
              this threshold within the previous
              number of seconds
              'smfNotifDpdMemoryOverflowWindow',
              then the 'smfNotifDpdMemoryOverflowEvent'
              notification is sent.

              The default value for this object is
              '1'."
          DEFVAL { 1 }
           ::= { smfMIBNotifControl 1 }

   smfNotifDpdMemoryOverflowWindow OBJECT-TYPE
          SYNTAX       TimeTicks
          MAX-ACCESS   read-write
          STATUS       current
          DESCRIPTION
             "A time window value for the
              'smfNotifDpdmemoryOverflowEvents' object.
              If the number of occurrences exceeds
              the 'smfNotifDpdMemoryOverflowThreshold'
              within the previous number of seconds
              'smfNotifDpdMemoryOverflowWindow',
              then the 'smfNotifDpdMemoryOverflowEvent'





              notification is sent.

              The default value for this object is
              '1'."
          DEFVAL { 1 }
           ::= { smfMIBNotifControl 2 }

   --
   -- 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 {
              smfCapabilitiesOpModeID,
              smfCapabilitiesRssaID
      }





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

   smfConfigObjectsGroup OBJECT-GROUP
      OBJECTS {
              smfCfgAdminStatus,
              smfCfgSmfSysUpTime,
              smfCfgRouterIDAddrType,
              smfCfgRouterID,
              smfCfgOperationalMode,
              smfCfgRssaMember,
              smfCfgIpv4Dpd,
              smfCfgIpv6Dpd,
              smfCfgMaxPktLifetime,
              smfCfgDpdEntryMaxLifetime,
              smfCfgNhdpRssaMesgTLVIncluded,
              smfCfgNhdpRssaAddrBlockTLVIncluded,

              smfCfgAddrForwardingGroupName,
              smfCfgAddrForwardingAddrType,
              smfCfgAddrForwardingAddress,
              smfCfgAddrForwardingAddrPrefixLength,
              smfCfgAddrForwardingStatus,

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

   smfStateObjectsGroup  OBJECT-GROUP
      OBJECTS {
              smfStateNodeRsStatusIncluded,
              smfStateDpdMemoryOverflow,

              smfStateNeighborRSSA,
              smfStateNeighborNextHopInterface
      }
      STATUS  current
      DESCRIPTION
         "Set of SMF state objects implemented





          in this module."
   ::= { smfMIBGroups 3 }

   smfPerfObjectsGroup  OBJECT-GROUP
      OBJECTS {
              smfPerfIpv4MultiPktsRecvTotal,
              smfPerfIpv4MultiPktsForwardedTotal,
              smfPerfIpv4DuplMultiPktsDetectedTotal,
              smfPerfIpv4DroppedMultiPktsTTLExceededTotal,
              smfPerfIpv4TTLLargerThanPreviousTotal,

              smfPerfIpv6MultiPktsRecvTotal,
              smfPerfIpv6MultiPktsForwardedTotal,
              smfPerfIpv6DuplMultiPktsDetectedTotal,
              smfPerfIpv6DroppedMultiPktsTTLExceededTotal,
              smfPerfIpv6TTLLargerThanPreviousTotal,
              smfPerfIpv6HAVAssistsReqdTotal,
              smfPerfIpv6DpdHeaderInsertionsTotal,

              smfPerfIpv4MultiPktsRecvPerIf,
              smfPerfIpv4MultiPktsForwardedPerIf,
              smfPerfIpv4DuplMultiPktsDetectedPerIf,
              smfPerfIpv4DroppedMultiPktsTTLExceededPerIf,
              smfPerfIpv4TTLLargerThanPreviousPerIf,
              smfPerfIpv6MultiPktsRecvPerIf,
              smfPerfIpv6MultiPktsForwardedPerIf,
              smfPerfIpv6DuplMultiPktsDetectedPerIf,
              smfPerfIpv6DroppedMultiPktsTTLExceededPerIf,
              smfPerfIpv6TTLLargerThanPreviousPerIf,
              smfPerfIpv6HAVAssistsReqdPerIf,
              smfPerfIpv6DpdHeaderInsertionsPerIf
      }
      STATUS  current
      DESCRIPTION
         "Set of SMF performance objects implemented
          in this module by total and per interface."
   ::= { smfMIBGroups 4 }

   smfNotifObjectsGroup  OBJECT-GROUP
      OBJECTS {
              smfNotifDpdMemoryOverflowThreshold,
              smfNotifDpdMemoryOverflowWindow
      }
      STATUS  current
      DESCRIPTION
         "Set of SMF notification control
          objects implemented in this module."
   ::= { smfMIBGroups 5 }





   smfNotificationsGroup  NOTIFICATION-GROUP
      NOTIFICATIONS {
              smfNotifAdminStatusChange,
              smfNotifConfiguredOpModeChange,
              smfNotifIfAdminStatusChange,
              smfNotifDpdMemoryOverflowEvent
      }
      STATUS  current
      DESCRIPTION
         "Set of SMF notifications implemented
          in this module."
   ::= { smfMIBGroups 6 }


   END


