Internet Engineering Task Force                                   PIM-WG
INTERNET-DRAFT                                                    Editor
draft-ietf-pim-mib-v2-01.txt                           Jonathan Nicholas
                                                                ITT A/CD
                                                           November 2002
                                                        Expires May 2003
PIM WG                                                       R. Sivaramu
Internet-Draft                                             Cisco Systems
Expires: October 31, 2005                                     J. Lingard
                                                     Data Connection Ltd
                                                                B. Joshi
                                                Infosys Technologies Ltd
                                                          April 29, 2005

                   Protocol Independent Multicast MIB
                      draft-ietf-pim-mib-v2-02.txt

Status of this Document

This document Memo

   By submitting this Internet-Draft, each author represents that any
   applicable patent or other IPR claims of which he or she is an Internet-Draft aware
   have been or will be disclosed, and is any of which he or she becomes
   aware will be disclosed, in full conformance accordance with all
provisions of Section 10 6 of RFC2026. BCP 79.

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

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet- Drafts Internet-Drafts as reference
   material or to cite them other than as "work in progress."

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

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

   This document is a product of the IETF PIM WG.  Comments should be
addressed to the authors, or the WG's mailing list at
pim@catarina.usc.edu. Internet-Draft will expire on October 31, 2005.

Copyright Notice

   Copyright (C) The Internet Society (2005).

Abstract

   This memo defines a portion of the Management Information Base (MIB)
   for use with network management protocols in the Internet community.
   In particular, it describes managed objects used for managing the
   Protocol Independent Multicast (PIM) protocol. protocols (PIM-SM and BIDIR-
   PIM).  This document obsoletes RFC 2934.

Table of Contents

   1

   1.  Introduction .................................................  2
   2 . . . . . . . . . . . . . . . . . . . . . . . . .  3
   2.  The SNMP Network Internet-Standard Management Framework ........................  2 . . . . . . . . . .  3
   3.  Overview ..................................................... . . . . . . . . . . . . . . . . . . . . . . . . . . .  3
   4
   4.  Definitions ..................................................  . . . . . . . . . . . . . . . . . . . . . . . . .  4
   5
   5.  Security Considerations ...................................... 29
   6  . . . . . . . . . . . . . . . . . . . 39
   6.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 40
   7.  Acknowledgements ............................................. 30
   7 . . . . . . . . . . . . . . . . . . . . . . . 40
   8.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 40
     8.1   Normative References . . . . . . . . . . . . . . . . . . . 40
     8.2   Informative References . . . . . . . . . . . . . . . . . . 41
       Authors' Addresses ........................................... 30
   8 References ................................................... 30 . . . . . . . . . . . . . . . . . . . . . . 41
       Intellectual Property and Copyright Statements . . . . . . . . 43

1.  Introduction

   This memo defines a portion of the Management Information Base (MIB)
   for use with network management protocols in the Internet community.
   In particular, it describes managed objects used for managing the
   Protocol Independent Multicast (PIM) protocol [18,19].

2.  The SNMP Network Management Framework

The SNMP Management Framework presently consists of five major
components:

* An overall architecture, described in RFC 2571 [1].

* Mechanisms for describing and naming objects protocols (PIM-SM [I-D.ietf-pim-
   sm-v2-new] and events BIDIR-PIM [I-D.ietf-pim-bidir]).

   This document obsoletes RFC 2934 [RFC2934].  RFC 2934 defined an
   experimental MIB module for managing the
  purpose of management. PIM protocols.  The first version of MIB
   module defined by this Structure of
  Management Information (SMI) is called SMIv1 and described in STD 16,
  RFC 1155 [2], STD 16, RFC 1212 [3] and RFC 1215 [4].  The second
  version, called SMIv2, document is described in STD 58, RFC 2578 [5], STD 58,
  RFC 2579 [6] and STD 58, RFC 2580 [7].

* Message protocols for transferring management information.  The first
  version a complete re-working of the SNMP message protocol is called SNMPv1 and described
  in STD 15, MIB
   module from RFC 1157 [8].  A second version of 2934, with major changes that include the SNMP message
  protocol, which is not an Internet standards track protocol, following.

   o  This MIB module is called
  SNMPv2c and described in RFC 1901 [9] and RFC 1906 [10].  The third
  version independent of IP version, whereas RFC 2934
      only supported IPv4.

   o  This MIB module includes support for managing BIDIR-PIM.

   o  This MIB module does not include support for managing PIM-DM.

   o  This MIB module does not include support for managing PIM-SM v1.

   o  This MIB module does not depend on the message protocol is called SNMPv3 and described IPv4 Multicast Routing MIB
      defined in RFC 1906 [10], RFC 2572 [11] and RFC 2574 [12].

* Protocol operations for accessing management information. 2932 [RFC2932].

   The first
  set of protocol operations key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED",  "MAY", and associated PDU formats is described "OPTIONAL" in
  STD 15, RFC 1157 [8].  A second set of protocol operations and
  associated PDU formats is this
   document are to be interpreted as described in RFC 1905 [13].

* A set 2119 [RFC2119].

2.  The Internet-Standard Management Framework

   For a detailed overview of fundamental applications described in RFC 2573 [14] and the
  view-based access control mechanism described in documents that describe the current
   Internet-Standard Management Framework, please refer to section 7 of
   RFC 2575 [15]. 3410 [RFC3410].

   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 SMI.
   Structure of Management Information (SMI).  This memo specifies a MIB
   module that is compliant to the SMIv2.  A MIB
conforming to the SMIv1 can be produced through the appropriate
translations.  The resulting translated MIB must be semantically
equivalent, except where objects or events are omitted because no
translation SMIv2, which is possible (use of Counter64).  Some machine readable
information in SMIv2 will be converted into textual descriptions described in
SMIv1 during the translation process.  However, this loss of machine
readable information is not considered to change the semantics of the
MIB. STD 58,
   RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] and STD 58, RFC 2580
   [RFC2580].

3.  Overview

   This MIB module contains one scalar and eight tables.  Some of the
objects in these tables are deprecated.  This MIB following tables.

   1.  The PIM Interface Table, which contains deprecated
objects since they are necessary one row per IP version
       for managing PIMv1 routers, but PIMv1
itself each interface of the router which is obsoleted by PIM v2 [18,19].

The tables contained in this MIB are:

   (1) running PIM.

   2.  The PIM Interface Table Neighbor Table, which contains one row for each of the
       router's PIM interfaces.

   (2) neighbors.

   3.  The PIM Neighbor Table Secondary Address Table, which contains one row
       for each secondary address advertised by each of the router's PIM
       neighbors.

   (3)

   4.  The PIM IP Multicast Route Table Table, which contains one row for each
       multicast routing entry whose incoming interface is running created by PIM.

   (4)

   5.  The PIM Next Hop Table Table, which contains one row for each outgoing
       interface list entry in the multicast routing table whose
       interface is running PIM, and whose state is pruned.

   (5) PIM.

   6.  The (deprecated) PIM RP Table Bidir DF-Election Table, which contains the PIM (version 1)
        information one row per
       interface for each Rendezvous Point (RP) for IP multicast groups which Bidirectional-
       PIM Designated Forwarder (DF) election state is common to all RPs
        of a group.

   (6) maintained.

   7.  The PIM RP-Set Table Table, which contains the PIM (version 2) information
        for sets of candidate about all the
       available Rendezvous Points (RPs) for IP multicast group addresses with
       particular address prefixes.

   (7)

   8.  The PIM Candidate-RP Table Table, which contains the IP multicast groups group
       prefixes for which the local router is to advertise itself as a
       Candidate-RP.
        If this table is empty, then the local router advertises itself
        as a Candidate-RP for all groups.

   (8)

   9.  The PIM Component Table Scope Zone Table, which contains one row for each of the
       admin scoped zones in the PIM
        domains domain to which the router is
       connected.

   This MIB module uses textual conventions defined in the IF-MIB
   [RFC2863] and the INET-ADDRESS-MIB [RFC4001].

4.  Definitions

PIM-MIB

PIM-STD-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, experimental, mib-2,
    NOTIFICATION-TYPE,
    Integer32, IpAddress,
    Unsigned32, TimeTicks            FROM SNMPv2-SMI
    RowStatus, TruthValue            FROM SNMPv2-TC
    MODULE-COMPLIANCE, OBJECT-GROUP,
    NOTIFICATION-GROUP               FROM SNMPv2-CONF
    ipMRouteGroup, ipMRouteSource,
    ipMRouteSourceMask, ipMRouteNextHopGroup,
    ipMRouteNextHopSource, ipMRouteNextHopSourceMask,
    ipMRouteNextHopIfIndex,
    ipMRouteNextHopAddress           FROM IPMROUTE-STD-MIB
    InterfaceIndexOrZero,
    InterfaceIndex                   FROM IF-MIB;

pimMIB IF-MIB
    InetAddressType,
    InetAddressPrefixLength,
    InetAddress, InetVersion         FROM INET-ADDRESS-MIB;

pimStdMIB MODULE-IDENTITY
    LAST-UPDATED "200210280000Z" "200504290000Z" -- October 28, 2002 April 29, 2005
    ORGANIZATION "IETF PIM Working Group." Group"
    CONTACT-INFO
            " Jonathan Nicholas
              ITT Industries
              Aerospace/Communications Division
              100 Kingsland Rd
              Clifton, NJ 07014

              Phone: +1 973 284 2019
              EMail: jonathan.nicholas@itt.com"
            "Email: pim@ietf.org"
    DESCRIPTION
            "The MIB module for management of PIM routers." routers.

            Copyright (C) The Internet Society (2005).  This version of
            this MIB module is part of RFC yyyy; see the RFC itself for
            full legal notices."
-- RFC Ed.: replace yyyy with actual RFC number & remove this note
    REVISION     "200009280000Z"     "200404290000Z" -- September 28, 2000 April 29, 2005
    DESCRIPTION  "Initial version, published as RFC 2934."
    REVISION     "200210280000Z" yyyy."
-- October 28, 2002
    DESCRIPTION
            "Revised November 4, 2002." RFC Ed.: replace yyyy with actual RFC number & remove this note
    ::= { experimental 61 mib-2 XXX }
-- RFC Ed.: replace XXX with IANA-assigned number & remove this note

pimMIBObjects OBJECT IDENTIFIER ::= { pimMIB pimStdMIB 1 }
pimTraps      OBJECT IDENTIFIER ::= { pimMIBObjects 0 }
pim           OBJECT IDENTIFIER ::= { pimMIBObjects 1 }
pimJoinPruneInterval OBJECT-TYPE
    SYNTAX     Integer32
    UNITS      "seconds"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The default interval at which periodic PIM-SM Join/Prune
            messages are to be sent."
    DEFVAL { 60 }
    ::= { pim 1 }

--
-- The PIM Interface Table
--

pimInterfaceTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF PimInterfaceEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The (conceptual) table listing the router's PIM interfaces.
            IGMP and
            PIM are is enabled on all interfaces listed in this table."
    ::= { pim 2 1 }

pimInterfaceEntry OBJECT-TYPE
    SYNTAX     PimInterfaceEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the pimInterfaceTable."
    INDEX      { pimInterfaceIfIndex pimInterfaceIfIndex,
                 pimInterfaceIPVersion }

    ::= { pimInterfaceTable 1 }

PimInterfaceEntry ::= SEQUENCE {
    pimInterfaceIfIndex              InterfaceIndex,
    pimInterfaceIPVersion            InetVersion,
    pimInterfaceAddressType          InetAddressType,
    pimInterfaceAddress            IpAddress,
    pimInterfaceNetMask            IpAddress,
    pimInterfaceMode               INTEGER,              InetAddress,
    pimInterfaceNetMaskLength        InetAddressPrefixLength,
    pimInterfaceDR                 IpAddress,                   InetAddress,
    pimInterfaceHelloInterval      Integer32,
    pimInterfaceStatus             RowStatus,
    pimInterfaceJoinPruneInterval  Integer32,
    pimInterfaceCBSRPreference     Integer32,        Unsigned32,
    pimInterfaceTrigHelloInterval  Integer32,    Unsigned32,
    pimInterfaceJoinPruneInterval    Unsigned32,
    pimInterfaceDFElectionRobustness Unsigned32,
    pimInterfaceHelloHoldtime      Integer32,
    pimInterfaceLanPruneDelay      BITS,        Unsigned32,
    pimInterfaceJoinPruneHoldtime    Unsigned32,
    pimInterfaceUseLanPruneDelay     TruthValue,
    pimInterfacePropagationDelay   Integer32,     Unsigned32,
    pimInterfaceOverrideInterval   Integer32,
    pimInterfaceGenerationID       BITS,
    pimInterfaceJoinPruneHoldtime  Integer32,
    pimInterfaceGraftRetryInterval Integer32,
    pimInterfaceMaxGraftRetries    Integer32,
    pimInterfaceSRTTLThreshold     Integer32,
    pimInterfaceLanDelayEnabled     Unsigned32,
    pimInterfaceUseGenerationID      TruthValue,
    pimInterfaceSRCapable
    pimInterfaceGenerationIDValue    Unsigned32,
    pimInterfaceUseDRPriority        TruthValue,
    pimInterfaceDRPriority         Integer32           Unsigned32,
    pimInterfaceLanDelayEnabled      TruthValue,
    pimInterfaceEffectPropagDelay    Unsigned32,
    pimInterfaceEffectOverrideIvl    Unsigned32,
    pimInterfaceSuppressionEnabled   TruthValue,
    pimInterfaceBidirCapable         TruthValue,
    pimInterfaceDRPriorityEnabled    TruthValue,
    pimInterfaceBSRBorder            TruthValue,
    pimInterfaceStatus               RowStatus
}

pimInterfaceIfIndex OBJECT-TYPE
    SYNTAX     InterfaceIndex
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The ifIndex value of this PIM interface."
    ::= { pimInterfaceEntry 1 }

pimInterfaceAddress

pimInterfaceIPVersion OBJECT-TYPE
    SYNTAX     IpAddress     InetVersion
    MAX-ACCESS read-only not-accessible
    STATUS     current
    DESCRIPTION
            "The IP address version of the this PIM interface." interface.  A physical interface
            may be configured in multiple modes concurrently, e.g. IPv4
            and IPv6, however the traffic is considered to be logically
            separate."
    ::= { pimInterfaceEntry 2 }

pimInterfaceNetMask

pimInterfaceAddressType OBJECT-TYPE
    SYNTAX     IpAddress     InetAddressType
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The network mask for the IP address type of the this PIM interface."
    ::= { pimInterfaceEntry 3 }

pimInterfaceMode

pimInterfaceAddress OBJECT-TYPE
    SYNTAX     INTEGER     InetAddress (SIZE (4|16|20))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The primary IP address of this router on this PIM
            interface.  The InetAddressType is given by the
            pimInterfaceAddressType object."
    ::= { dense(1), sparse(2), sparseDense(3) pimInterfaceEntry 4 }

pimInterfaceNetMaskLength OBJECT-TYPE
    SYNTAX     InetAddressPrefixLength
    MAX-ACCESS read-create read-only
    STATUS     current
    DESCRIPTION
            "The configured mode network mask length for the primary IP address of this
            router on this PIM interface.  The InetAddressType is given
            by the pimInterfaceAddressType object.  A value of
            sparseDense 0
            indicates that the network mask length is only valid for PIMv1."
    DEFVAL     { dense } unknown."
    ::= { pimInterfaceEntry 4 5 }

pimInterfaceDR OBJECT-TYPE
    SYNTAX     IpAddress     InetAddress (SIZE (4|16|20))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The primary IP address of the Designated Router on this PIM interface."
            interface.  The InetAddressType is given by the
            pimInterfaceAddressType object."
    ::= { pimInterfaceEntry 5 6 }

pimInterfaceHelloInterval OBJECT-TYPE
    SYNTAX     Integer32     Unsigned32 (0..18000)
    UNITS      "seconds"
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The frequency at which PIM Hello messages are transmitted
            on this interface.  This object corresponds to the
            'Hello_Period' timer value defined in the PIM-SM
            specification [I-D.ietf-pim-sm-v2-new].  A value of 0
            represents an 'infinite' interval, and indicates that
            periodic PIM Hello messages should not be sent on this
            interface."
    DEFVAL { 30 }
    ::= { pimInterfaceEntry 6 7 }

pimInterfaceStatus

pimInterfaceTrigHelloInterval OBJECT-TYPE
    SYNTAX     RowStatus     Unsigned32 (0..60)
    UNITS      "seconds"
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The status of maximum time before this entry.  Creating the entry enables router sends a triggered PIM
            Hello message on this interface.  This object corresponds to
            the interface; destroying 'Trigered_Hello_Delay' timer value defined in the entry disables PIM-SM
            specification [I-D.ietf-pim-sm-v2-new].  A value of 0 has
            no special meaning and indicates that triggered PIM on the
            interface." Hello
            messages should always be sent immediately."
    DEFVAL { 5 }
    ::= { pimInterfaceEntry 7 8 }

pimInterfaceJoinPruneInterval OBJECT-TYPE
    SYNTAX     Integer32     Unsigned32 (0..18000)
    UNITS      "seconds"
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The frequency at which this router sends PIM Join/Prune
            messages are
            transmitted on this PIM interface.  The default value of
            this  This object is corresponds to
            the pimJoinPruneInterval."
    ::= { pimInterfaceEntry 8 }

pimInterfaceCBSRPreference OBJECT-TYPE
    SYNTAX     Integer32 (-1..255)
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The preference 't_periodic' timer value for defined in the local interface as a candidate
            bootstrap router.  The PIM-SM
            specification [I-D.ietf-pim-sm-v2-new].  A value of -1 is used to indicate 0
            represents an 'infinite' interval, and indicates that
            the local interface is
            periodic PIM Join/Prune messages should not a candidate BSR be sent on this
            interface."
    DEFVAL { 0 60 }
    ::= { pimInterfaceEntry 9 }

pimInterfaceTrigHelloInterval

pimInterfaceDFElectionRobustness OBJECT-TYPE
    SYNTAX Integer32
    UNITS "seconds"     Unsigned32
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The maximum time before a triggered minimum number of PIM Hello message
                 is transmitted DF-Election messages that must be
            lost in order for DF election on this interface." interface to fail."

    DEFVAL { 5 3 }
    ::= { pimInterfaceEntry 10 }

pimInterfaceHelloHoldtime OBJECT-TYPE
    SYNTAX Integer32     Unsigned32 (0..65535)
    UNITS      "seconds"
    MAX-ACCESS read-create read-only
    STATUS     current
    DESCRIPTION
            "The value set in the Holdtime field of PIM Hello messages
            transmitted on this interface.  This should be  A value of 65535 represents
            an 'infinite' holdtime.  Implementations are recommended
            to use a holdtime that is 3.5 times the value of pimInterfaceHelloInterval."
            pimInterfaceHelloInterval, or 65535 if
            pimInterfaceHelloInterval is set to 0."
    DEFVAL { 105 }
    ::= { pimInterfaceEntry 11 }

pimInterfaceLanPruneDelay

pimInterfaceJoinPruneHoldtime OBJECT-TYPE
    SYNTAX BITS { off (0),     Unsigned32 (0..65535)
    UNITS      "seconds"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The value inserted into the Holdtime field of a PIM
            Join/Prune message sent on (1) this interface.  A value of 65535
            represents an 'infinite' holdtime.  Implementations are
            recommended to use a holdtime that is 3.5 times the value of
            pimInterfaceJoinPruneInterval, or 65535 if
            pimInterfaceJoinPruneInterval is set to 0."
    DEFVAL { 210 }
    ::= { pimInterfaceEntry 12 }

pimInterfaceUseLanPruneDelay OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION "Turns
            "Whether or not this router includes the LAN Prune Delay Option off and on
            option in the PIM Hello messages it sends on this
            interface."
    DEFVAL { on true }
    ::= { pimInterfaceEntry 12 13 }

pimInterfacePropagationDelay OBJECT-TYPE
    SYNTAX Integer32     Unsigned32 (0..32767)
    UNITS      "milliseconds"
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The value inserted this router inserts into the LAN Prune Delay Propagation_Delay
            field of a the LAN Prune Delay option in the PIM Hello
            messages it sends on this interface." interface.  This object is only
            used if pimInterfaceUseLanPruneDelay is set to TRUE.
            Implementations should enforce a lower bound on the
            permitted values for this object to allow for scheduling and
            processing delays within the local router."
    DEFVAL { 500 }
    ::= { pimInterfaceEntry 13 14 }

pimInterfaceOverrideInterval OBJECT-TYPE
    SYNTAX Integer32     Unsigned32 (0..65535)
    UNITS      "milliseconds"
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The value inserted this router inserts into the Override Interval Override_Interval
            field of
                 a the LAN Prune Delay option in the PIM Hello
            messages it sends on this interface." interface.  This object is only
            used if pimInterfaceUseLanPruneDelay is set to TRUE."
    DEFVAL { 2500 }
    ::= { pimInterfaceEntry 14 15 }

pimInterfaceGenerationID

pimInterfaceUseGenerationID OBJECT-TYPE
    SYNTAX BITS { off (0), on (1) }     TruthValue
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION "Turns
            "Whether or not this router includes the Generation ID Option off and on
            option in the PIM Hello messages it sends on this
            interface."
    DEFVAL { off true }
    ::= { pimInterfaceEntry 15 16 }

pimInterfaceJoinPruneHoldtime OBJECT_TYPE

pimInterfaceGenerationIDValue OBJECT-TYPE
    SYNTAX Integer32 (0..65535)
    UNITS "seconds"     Unsigned32
    MAX-ACCESS read-create read-only
    STATUS     current
    DESCRIPTION
            "The value of the Generation ID this router inserted into in the Holdtime field of a Join/
                 Prune
            last PIM Hello message it sent on this interface.  The value should
                 be 3.5 times pimInterfaceJoinPruneInterval."
    DEFVAL { 210 }  This
            object is 0 if pimInterfaceUseGenerationID is set to FALSE."
    ::= { pimInterfaceEntry 16 17 }

pimInterfaceGraftRetryInterval

pimInterfaceUseDRPriority OBJECT-TYPE
    SYNTAX Integer32
    UNITS "seconds"     TruthValue
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION "The interval a PIM
            "Whether or not this router waits for a Graft Ack before
                 resending a Graft includes the DR Priority option
            in the PIM Hello messages it sends on this interface."
    DEFVAL { 3 true }
    ::= { pimInterfaceEntry 17 18 }

pimInterfaceMaxGraftRetries

pimInterfaceDRPriority OBJECT-TYPE
    SYNTAX Integer32     Unsigned32
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The maximum number of times this router will resend a
                 Graft Designated Router Priority value inserted into the DR
            Priority option on this interface." interface.  Numerically higher
            values for this object indicate higher priorities.  This
            object is only used if pimInterfaceUseDRPriority is set to
            TRUE."
    DEFVAL { 2 1 }
    ::= { pimInterfaceEntry 18 19 }

pimInterfaceSRTTLThreshold

pimInterfaceLanDelayEnabled OBJECT-TYPE
    SYNTAX Integer32     TruthValue
    MAX-ACCESS read-create read-only
    STATUS     current
    DESCRIPTION
            "Evaluates to TRUE if all routers on this interface are
            using the LAN Prune Delay option."
    ::= { pimInterfaceEntry 20 }

pimInterfaceEffectPropagDelay OBJECT-TYPE
    SYNTAX     Unsigned32 (0..32767)
    UNITS      "milliseconds"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The Time To Live in a PIM-DM State Refresh message at
                 which it is not forwarded Effective Propagation Delay on this interface."
    DEFVAL interface.  This
            object is always 500 if pimInterfaceLanDelayEnabled is
            FALSE."
    ::= { 0 pimInterfaceEntry 21 }

pimInterfaceEffectOverrideIvl OBJECT-TYPE
    SYNTAX     Unsigned32 (0..65535)
    UNITS      "milliseconds"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The Effective Override Interval on this interface.  This
            object is always 2500 if pimInterfaceLanDelayEnabled is
            FALSE."
    ::= { pimInterfaceEntry 19 22 }

pimInterfaceSuppressionEnabled OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Whether join suppression is enabled on this interface.
            This object is always TRUE if pimInterfaceLanDelayEnabled is
            FALSE."
    ::= { pimInterfaceEntry 23 }

pimInterfaceBidirCapable OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Evaluates to TRUE if all routers on this interface are
            using the LAN Prune Delay Option." Bidirectional-PIM Capable option."
    ::= { pimInterfaceEntry 20 24 }

pimInterfaceSRCapable

pimInterfaceDRPriorityEnabled OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Evaluates to TRUE if all routers on this interface are
            using the State Refresh Capable Option." DR Priority option."
    ::= { pimInterfaceEntry 21 25 }

pimInterfaceDRPriority

pimInterfaceBSRBorder OBJECT-TYPE
    SYNTAX Integer32     TruthValue
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION "The Designater Router Priority inserted into the DR
                 priority option on
            "Whether or not this interface." interface acts as a border for all PIM
            Bootstrap messages."
    DEFVAL { 1 false }
    ::= { pimInterfaceEntry 22 26 }

pimInterfaceStatus OBJECT-TYPE
    SYNTAX     RowStatus
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The status of this entry.  Creating the entry enables PIM
            on the interface; destroying the entry disables PIM on the
            interface."
    ::= { pimInterfaceEntry 27 }

--
-- The PIM Neighbor Table
--

pimNeighborTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF PimNeighborEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The (conceptual) table listing the router's PIM neighbors."
    ::= { pim 3 2 }

pimNeighborEntry OBJECT-TYPE
    SYNTAX     PimNeighborEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the pimNeighborTable."
    INDEX      { pimNeighborIfIndex,
                 pimNeighborAddressType,
                 pimNeighborAddress }
    ::= { pimNeighborTable 1 }

PimNeighborEntry ::= SEQUENCE {
    pimNeighborAddress          IpAddress,
    pimNeighborIfIndex              InterfaceIndex,
    pimNeighborAddressType          InetAddressType,
    pimNeighborAddress              InetAddress,
    pimNeighborUpTime               TimeTicks,
    pimNeighborExpiryTime           TimeTicks,
    pimNeighborMode             INTEGER,
    pimNeighborLanPruneDelay    Integer32,
    pimNeighborLanPruneDelayPresent TruthValue,
    pimNeighborPropagationDelay     Unsigned32,
    pimNeighborOverrideInterval Integer32,     Unsigned32,
    pimNeighborTBit             BITS,
    pimNeighborSRCapable                 TruthValue,
    pimNeighborDRPresent        TruthValue
    pimNeighborGenerationIDPresent  TruthValue,
    pimNeighborGenerationIDValue    Unsigned32,
    pimNeighborBidirCapable         TruthValue,
    pimNeighborDRPriorityPresent    TruthValue,
    pimNeighborDRPriority           Unsigned32
}
pimNeighborAddress

pimNeighborIfIndex OBJECT-TYPE
    SYNTAX     IpAddress     InterfaceIndex
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The IP address value of the PIM neighbor ifIndex for which the interface used to reach this entry
            contains information."
            PIM neighbor."
    ::= { pimNeighborEntry 1 }

pimNeighborIfIndex

pimNeighborAddressType OBJECT-TYPE
    SYNTAX     InterfaceIndex     InetAddressType
    MAX-ACCESS read-only not-accessible
    STATUS     current
    DESCRIPTION
            "The value address type of ifIndex for the interface used to reach this PIM neighbor."
    ::= { pimNeighborEntry 2 }

pimNeighborAddress OBJECT-TYPE
    SYNTAX     InetAddress (SIZE (4|16|20))
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The primary IP address of this PIM neighbor.  The
            InetAddressType is given by the pimNeighborAddressType
            object."
    ::= { pimNeighborEntry 3 }

pimNeighborUpTime OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The time since this PIM neighbor (last) became a neighbor
            of the local router."
    ::= { pimNeighborEntry 3 4 }

pimNeighborExpiryTime OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The minimum time remaining before this PIM neighbor will
            be aged out.  The value zero indicates that this PIM
            neighbor will never be aged out."
    ::= { pimNeighborEntry 4 5 }

pimNeighborMode

pimNeighborLanPruneDelayPresent OBJECT-TYPE
    SYNTAX     INTEGER { dense(1), sparse(2) }     TruthValue
    MAX-ACCESS read-only
    STATUS     deprecated     current
    DESCRIPTION
            "The active PIM mode of
            "Evaluates to TRUE if this neighbor.  This object neighbor is
            deprecated for PIMv2 routers since all neighbors on the
            interface must be either dense or sparse as determined by
            the protocol running on using the interface." LAN Prune
            Delay option."
    ::= { pimNeighborEntry 5 6 }

pimNeighborLANPruneDelay

pimNeighborPropagationDelay OBJECT-TYPE
    SYNTAX Integer32     Unsigned32 (0..32767)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The value of LAN Prune Delay the Propagation_Delay field of the LAN Prune
            Delay Option option received from this neighbor.  A value of  This object is
            always 0 indicates that no LAN Prune Delay Option was
                 received from this neigbor." if pimNeighborLanPruneDelayPresent is FALSE."
    ::= { pimNeighborEntry 6 7 }

pimNeighborOverrideInterval OBJECT-TYPE
    SYNTAX Integer32     Unsigned32 (0..65535)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The value of Override Interval the Override_Interval field of the LAN Prune
            Delay Option option received from this neighbor.  A value of  This object is
            always 0 indicates that no LAN Prune Delay Option was
                 received from this neigbor." if pimNeighborLanPruneDelayPresent is FALSE."
    ::= { pimNeighborEntry 7 8 }

pimNeighborTBit OBJECT-TYPE
    SYNTAX BITS     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION "The value of
            "Whether the T bit field of was set in the LAN Prune Delay Option option
            received from this neighbor.  The T bit specifies the
            ability of the neighbor to disable join suppression." suppression.  This
            object is always TRUE if pimNeighborLanPruneDelayPresent is
            FALSE."
    ::= { pimNeighborEntry 8 9 }

pimNeighborSRCapable

pimNeighborGenerationIDPresent OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Evaluates to TRUE if this neighbor is using the State
                 Refresh Generation
            ID option."
    ::= { pimNeighborEntry 10 }

pimNeighborGenerationIDValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The value of the Generation ID from the last PIM Hello
            message received from this neighbor.  This object is always
            0 if pimNeighborGenerationIDPresent is FALSE."
    ::= { pimNeighborEntry 11 }

pimNeighborBidirCapable OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Evaluates to TRUE if this neighbor is using the
            Bidirectional-PIM Capable Option." option."
    ::= { pimNeighborEntry 9 12 }

pimNeighborDRPresent

pimNeighborDRPriorityPresent OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Evaluates to TRUE if this neighbor is using the DR Priority
            option."
    ::= { pimNeighborEntry 13 }

pimNeighborDRPriority OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The value of the Designated Router Option." Priority from the last
            PIM Hello message received from this neighbor.  This object
            is always 0 if pimNeighborDRPriorityPresent is FALSE."
    ::= { pimNeighborEntry 10 14 }

--
-- The PIM IP Multicast Route Neighbor Secondary Address Table
--

pimIpMRouteTable

pimNbrSecAddressTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF PimIpMRouteEntry PimNbrSecAddressEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The (conceptual) table listing PIM-specific information on the secondary addresses
            advertised by each PIM neighbor (on a subset of the rows of
            the ipMRouteTable pimNeighborTable defined in the IP
            Multicast MIB." above)."
    ::= { pim 4 3 }

pimIpMRouteEntry

pimNbrSecAddressEntry OBJECT-TYPE
    SYNTAX     PimIpMRouteEntry     PimNbrSecAddressEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the pimIpMRouteTable.  There pimNbrSecAddressTable."
    INDEX      { pimNbrSecAddressIfIndex,
                 pimNbrSecAddressType,
                 pimNbrSecAddressPrimary,
                 pimNbrSecAddress }
    ::= { pimNbrSecAddressTable 1 }

PimNbrSecAddressEntry ::= SEQUENCE {
    pimNbrSecAddressIfIndex InterfaceIndex,
    pimNbrSecAddressType    InetAddressType,
    pimNbrSecAddressPrimary InetAddress,
    pimNbrSecAddress        InetAddress
}

pimNbrSecAddressIfIndex OBJECT-TYPE
    SYNTAX     InterfaceIndex
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The value of ifIndex for the interface used to reach this
            PIM neighbor."
    ::= { pimNbrSecAddressEntry 1 }

pimNbrSecAddressType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The address type of this PIM neighbor."
    ::= { pimNbrSecAddressEntry 2 }

pimNbrSecAddressPrimary OBJECT-TYPE
    SYNTAX     InetAddress (SIZE (4|16|20))
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The primary IP address of this PIM neighbor.  The
            InetAddressType is given by the pimNbrSecAddressType
            object."
    ::= { pimNbrSecAddressEntry 3 }

pimNbrSecAddress OBJECT-TYPE
    SYNTAX     InetAddress (SIZE (4|16|20))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The secondary IP address of this PIM neighbor.  The
            InetAddressType is given by the pimNbrSecAddressType
            object."
    ::= { pimNbrSecAddressEntry 4 }

--
-- The PIM Multicast Route Table
--

pimMRouteTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF PimMRouteEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The (conceptual) table listing one row for each multicast
            routing entry per created by PIM."
    ::= { pim 4 }

pimMRouteEntry OBJECT-TYPE
    SYNTAX     PimMRouteEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the ipMRouteTable whose incoming
            interface is running PIM." pimMRouteTable."
    INDEX      { ipMRouteGroup, ipMRouteSource, ipMRouteSourceMask pimMRouteAddressType,
                 pimMRouteGroup,
                 pimMRouteSource,
                 pimMRouteSourcePrefixLength }
    ::= { pimIpMRouteTable pimMRouteTable 1 }

PimIpMRouteEntry

PimMRouteEntry ::= SEQUENCE {
    pimIpMRouteUpstreamAssertTimer
    pimMRouteAddressType           InetAddressType,
    pimMRouteGroup                 InetAddress,
    pimMRouteSource                InetAddress,
    pimMRouteSourcePrefixLength    InetAddressPrefixLength,
    pimMRouteUpTime                TimeTicks,
    pimIpMRouteAssertMetric          Integer32,
    pimIpMRouteAssertMetricPref      Integer32,
    pimIpMRouteAssertRPTBit          TruthValue,
    pimIpMRouteFlags                 BITS,
    pimIpMRouteRPFNeighbor           IpAddress,
    pimIpMRouteSourceTimer
    pimMRouteExpiryTime            TimeTicks,
    pimMRouteType                  INTEGER,
    pimMRouteRPAddress             InetAddress,
    pimMRouteRPFIfIndex            InterfaceIndexOrZero,
    pimMRouteRPFNeighbor           InetAddress,
    pimMRouteUpstreamAssertTimer   TimeTicks,
    pimIpMRouteOriginatorSRTTL       Integer32
    pimMRouteAssertRPTBit          TruthValue,
    pimMRouteAssertMetricPref      Unsigned32,
    pimMRouteAssertMetric          Unsigned32,
    pimMRouteFlags                 BITS
}

pimMRouteAddressType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The address type of this multicast routing entry."
    ::= { pimMRouteEntry 1 }

pimMRouteGroup OBJECT-TYPE
    SYNTAX     InetAddress (SIZE (4|16|20))
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The IP multicast group address for which this entry
            contains multicast routing information.  The InetAddressType
            is given by the pimMRouteAddressType object."
    ::= { pimMRouteEntry 2 }

pimMRouteSource OBJECT-TYPE
    SYNTAX     InetAddress (SIZE (4|16|20))
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The IP address which when combined with the corresponding
            value of pimMRouteSourcePrefixLength identifies the sources
            for which this entry contains multicast routing information.
            The InetAddressType is given by the pimMRouteAddressType
            object."
    ::= { pimMRouteEntry 3 }

pimMRouteSourcePrefixLength OBJECT-TYPE
    SYNTAX     InetAddressPrefixLength
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The prefix length which when combined with the
            corresponding value of pimMRouteSource identifies the
            sources for which this entry contains multicast routing
            information.  The InetAddressType is given by the
            pimMRouteAddressType object.  A value of zero indicates that
            this entry contains multicast routing information for all
            sources."
    ::= { pimMRouteEntry 4 }

pimMRouteUpTime OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The time since this multicast routing entry was created by
            the local router."
    ::= { pimMRouteEntry 5 }

pimMRouteExpiryTime OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The minimum time remaining before this entry will be aged
            out.  The value zero indicates that this entry will never be
            aged out."
    ::= { pimMRouteEntry 6 }

pimMRouteType OBJECT-TYPE
    SYNTAX     INTEGER {
                  ssm (1),
                  asm (2),
                  bidir (3)
               }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "This object indicates whether this entry represents an SSM
            (Source Specific Multicast, used with PIM-SM), ASM
            (Any Source Multicast, used with PIM-SM) or a BIDIR-PIM
            route."
    ::= { pimMRouteEntry 7 }

pimMRouteRPAddress OBJECT-TYPE
    SYNTAX     InetAddress (SIZE (4|16|20))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The address of the Rendezvous Point (RP) for the group
            represented by pimMRouteGroup.  The InetAddressType is given
            by the pimMRouteAddressType object.  This object is zero if
            pimMRouteType is 'ssm', or if the RP address is unknown."
    ::= { pimMRouteEntry 8 }

pimMRouteRPFIfIndex OBJECT-TYPE
    SYNTAX     InterfaceIndexOrZero
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The value of ifIndex for the RPF interface, from which IP
            datagrams sent by these sources to this multicast group
            address are accepted, or zero if the RPF interface is
            unknown."
    ::= { pimMRouteEntry 9 }

pimIpMRouteUpstreamAssertTimer

pimMRouteRPFNeighbor OBJECT-TYPE
    SYNTAX     InetAddress (SIZE (4|16|20))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The address of the RPF neighbor, from which IP datagrams
            sent by these sources to this multicast group address are
            received, or zero if the RPF neighbor is unknown or is not
            a PIM neighbor.  The InetAddressType is given by the
            pimMRouteAddressType object."
    ::= { pimMRouteEntry 10 }

pimMRouteUpstreamAssertTimer OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The time remaining before the router changes its upstream
            neighbor back to its RPF neighbor.  This timer is called the
            Assert timer Timer in the PIM Sparse and Dense mode specification. PIM-SM specification
            [I-D.ietf-pim-sm-v2-new].  A value of 0 zero indicates that no Assert
            assert has changed the upstream neighbor away from the RPF
            neighbor."
    ::= { pimIpMRouteEntry 1 pimMRouteEntry 11 }

pimIpMRouteAssertMetric

pimMRouteAssertRPTBit OBJECT-TYPE
    SYNTAX     Integer32     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The metric value of the RPT bit advertised by the assert winner Assert Winner on
            the upstream interface, or 0 FALSE if no such assert is in received."
            effect."
    ::= { pimIpMRouteEntry 2 pimMRouteEntry 12 }

pimIpMRouteAssertMetricPref

pimMRouteAssertMetricPref OBJECT-TYPE
    SYNTAX     Integer32     Unsigned32 (0..2147483647)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The metric preference advertised by the assert winner Assert Winner on
            the upstream interface, or 0 zero if no such assert is in
            effect."
    ::= { pimIpMRouteEntry 3 pimMRouteEntry 13 }

pimIpMRouteAssertRPTBit

pimMRouteAssertMetric OBJECT-TYPE
    SYNTAX     TruthValue     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The value of the RPT-bit metric advertised by the assert winner Assert Winner on the upstream
            interface, or false zero if no such assert is in effect."
    ::= { pimIpMRouteEntry 4 pimMRouteEntry 14 }

pimIpMRouteFlags

pimMRouteFlags OBJECT-TYPE
    SYNTAX     BITS {
                  rpt(0),
                  spt(1)
               }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "This object describes PIM-specific flags related to a
            multicast state routing entry.  See the PIM Sparse Mode PIM-SM specification
            [I-D.ietf-pim-sm-v2-new] for the meaning of the RPT and SPT
            bits."
    ::= { pimIpMRouteEntry 5 pimMRouteEntry 15 }

pimIpMRouteRPFNeighbor

--
-- The PIM Next Hop Table
--

pimMRouteNextHopTable OBJECT-TYPE
    SYNTAX IpAddress     SEQUENCE OF PimMRouteNextHopEntry
    MAX-ACCESS read-only not-accessible
    STATUS     current
    DESCRIPTION
            "The (conceptual) table containing information on outgoing
            interfaces for routing IP Address of the multicast datagrams, on which PIM
            Join/Prunes have been received."
    ::= { pim 5 }

pimMRouteNextHopEntry OBJECT-TYPE
    SYNTAX     PimMRouteNextHopEntry
    MAX-ACCESS not-accessible
    STATUS     current RPF neighbor.  If there
                 is an upstream Assert Winner, it will be the RPF
                 neighbor.  Otherwise, the RPF neighbor will be
    DESCRIPTION
            "An entry (conceptual row) in the next hop indicated by unicast routing." pimMRouteNextHopTable."
    INDEX      { pimMRouteNextHopAddressType,
                 pimMRouteNextHopGroup,
                 pimMRouteNextHopSource,
                 pimMRouteNextHopSourcePrefixLength,
                 pimMRouteNextHopIfIndex }
    ::= { pimIpMRouteEntry 6 pimMRouteNextHopTable 1 }

PimMRouteNextHopEntry ::= SEQUENCE {
    pimMRouteNextHopAddressType        InetAddressType,
    pimMRouteNextHopGroup              InetAddress,
    pimMRouteNextHopSource             InetAddress,
    pimMRouteNextHopSourcePrefixLength InetAddressPrefixLength,
    pimMRouteNextHopIfIndex            InterfaceIndex,
    pimMRouteNextHopUpTime             TimeTicks,
    pimMRouteNextHopForwarding         TruthValue,
    pimMRouteNextHopJoinPruneTimer     TimeTicks,
    pimMRouteNextHopAssertWinner       InetAddress,
    pimMRouteNextHopAssertTimer        TimeTicks,
    pimMRouteNextHopAssertRPTBit       TruthValue,
    pimMRouteNextHopAssertMetricPref   Unsigned32,
    pimMRouteNextHopAssertMetric       Unsigned32
}

pimIpMRouteSourceTimer

pimMRouteNextHopAddressType OBJECT-TYPE
    SYNTAX TimeTicks     InetAddressType
    MAX-ACCESS read-only not-accessible
    STATUS     current
    DESCRIPTION
            "The time before this router ceases originating State
                 Refresh messages for address type of this route." multicast routing entry."
    ::= { pimIpMRouteEntry 7 pimMRouteNextHopEntry 1 }

pimIpMRouteOriginatorSRTTL

pimMRouteNextHopGroup OBJECT-TYPE
    SYNTAX Integer32
    MAX_ACCESS read-only     InetAddress (SIZE (4|16|20))
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The TTL used in State Refresh messages originated by
                 this router IP multicast group for which this route." entry specifies an
            outgoing interface.  The InetAddressType is given by the
            pimMRouteNextHopAddressType object."
    ::= { pimIpMRouteEntry 8 pimMRouteNextHopEntry 2 }

--
-- The PIM Next Hop Table
--

pimIpMRouteNextHopTable

pimMRouteNextHopSource OBJECT-TYPE
    SYNTAX     SEQUENCE OF PimIpMRouteNextHopEntry     InetAddress (SIZE (4|16|20))
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The (conceptual) table listing PIM-specific information on
            a subset of network address which when combined with the rows
            corresponding value of pimMRouteNextHopSourcePrefixLength
            identifies the ipMRouteNextHopTable defined in sources for which this entry specifies an
            outgoing interface.  The InetAddressType is given by the IP Multicast MIB."
            pimMRouteNextHopAddressType object."
    ::= { pim 7 pimMRouteNextHopEntry 3 }
pimIpMRouteNextHopEntry

pimMRouteNextHopSourcePrefixLength OBJECT-TYPE
    SYNTAX     PimIpMRouteNextHopEntry     InetAddressPrefixLength
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in
            "The network prefix length which when combined with the pimIpMRouteNextHopTable.
            There is one entry per
            corresponding value of pimMRouteNextHopSource identifies the
            sources for which this entry in specifies an outgoing
            interface.  The InetAddressType is given by the ipMRouteNextHopTable
            whose
            pimMRouteNextHopAddressType object.  A value of zero
            indicates that this entry specifies an outgoing interface is running PIM and whose
            ipMRouteNextHopState is pruned(1)."
    INDEX      { ipMRouteNextHopGroup, ipMRouteNextHopSource,
                 ipMRouteNextHopSourceMask, ipMRouteNextHopIfIndex,
                 ipMRouteNextHopAddress }
            for all sources."
    ::= { pimIpMRouteNextHopTable 1 pimMRouteNextHopEntry 4 }

PimIpMRouteNextHopEntry

pimMRouteNextHopIfIndex OBJECT-TYPE
    SYNTAX     InterfaceIndex
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The ifIndex value of the outgoing interface."
    ::= SEQUENCE {
    pimIpMRouteNextHopPruneReason       INTEGER,
    pimIpMRouteNextHopAssertWinner      IpAddress,
    pimIpMRouteNextHopAssertTimer       TimeTicks,
    pimIpMRouteNextHopAssertMetric      Integer32,
    pimIpMRouteNextHopAssertMetricPref  Integer32,
    pimIpMRouteNextHopJoinPruneTimer    TimeTicks pimMRouteNextHopEntry 5 }
pimIpMRouteNextHopPruneReason

pimMRouteNextHopUpTime OBJECT-TYPE
    SYNTAX     INTEGER     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The time since this entry was created by the local router."
    ::= {
                  other (1),
                  prune (2),
                  assert (3) pimMRouteNextHopEntry 6 }

pimMRouteNextHopForwarding OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "This object indicates why
            "Evaluates to TRUE if the downstream outgoing interface was
            pruned, whether in response to a PIM prune message or due represented by
            this entry is currently being used to
            PIM Assert processing." forward IP datagrams."
    ::= { pimIpMRouteNextHopEntry 2 pimMRouteNextHopEntry 7 }

pimIpMRouteNextHopAssertWinner

pimMRouteNextHopJoinPruneTimer OBJECT-TYPE
    SYNTAX IpAddress     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The time remaining before the local router ceases
            forwarding on this interface."
    ::= { pimMRouteNextHopEntry 8 }

pimMRouteNextHopAssertWinner OBJECT-TYPE
    SYNTAX     InetAddress (SIZE (4|16|20))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The IP Address address of the Assert Winner." Winner, or zero if no assert
            is in effect.  The InetAddressType is given by the
            pimMRouteNextHopAddressType object."
    ::= { pimIpMRouteNextHopEntry 3 pimMRouteNextHopEntry 9 }

pimIpMRouteNextHopAssertTimer

pimMRouteNextHopAssertTimer OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The time remaining before the PIM router leaves the current
            Assert state.  A value of 0 indicates that the router is in
            the No Info NoInfo state."
    ::= { pimIpMRouteNextHopEntry 4 pimMRouteNextHopEntry 10 }
pimIpMRouteNextHopAssertMetric

pimMRouteNextHopAssertRPTBit OBJECT-TYPE
    SYNTAX Integer32     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The metric value of the RPT bit advertised by the Assert Winner." Winner,
            or FALSE if no assert is in effect."
    ::= { pimIpMRouteNextHopEntry 5 pimMRouteNextHopEntry 11 }

pimIpMRouteNextHopAssertMetricPref

pimMRouteNextHopAssertMetricPref OBJECT-TYPE
    SYNTAX Integer32     Unsigned32 (0..2147483647)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The metric preference advertised by the Assert Winner." Winner, or
            zero if no assert is in effect."
    ::= { pimIpMRouteNextHopEntry 6 pimMRouteNextHopEntry 12 }

pimIpMRouteNextHopJoinPruneTimer

pimMRouteNextHopAssertMetric OBJECT-TYPE
    SYNTAX TimeTicks     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The time remaining before metric advertised by the PIM router reverts to
                 default operation on this interface.  PIM-SM will
                 cease forwarding, PIM-DM will resume forwarding."
    ::= { pimIpMRouteNextHopEntry 7 }ss, pimRPAddress } Assert Winner, or zero if no
            assert is in effect."
    ::= { pimRPTable 1 pimMRouteNextHopEntry 13 }

--
-- The PIM RP Bidir DF-Election Table

pimRPTable
--

pimBidirDFElectionTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF PimRPEntry PimBidirDFElectionEntry
    MAX-ACCESS not-accessible
    STATUS     deprecated     current
    DESCRIPTION
            "The (conceptual) table listing PIM version 1 information
            for the Rendezvous Points (RPs) per-RP Designated
            Forwarder (DF) Election state for IP multicast groups.
            This table is deprecated since its function is replaced by
            the pimRPSetTable each interface for PIM version 2." all the
            RPs in BIDIR mode."
    ::= { pim 5 6 }

pimRPEntry

pimBidirDFElectionEntry OBJECT-TYPE
    SYNTAX     PimRPEntry     PimBidirDFElectionEntry
    MAX-ACCESS not-accessible
    STATUS     deprecated     current
    DESCRIPTION
            "An entry (conceptual row) in the pimRPTable.  There is one
            entry per RP address for each IP multicast group." pimBidirDFElectionTable."
    INDEX      { pimRPGroupAddre
PimRPEntry pimBidirDFElectionAddressType,
                 pimBidirDFElectionRPAddress,
                 pimBidirDFElectionIfIndex }
    ::= { pimBidirDFElectionTable 1 }

PimBidirDFElectionEntry ::= SEQUENCE {
    pimRPGroupAddress    IpAddress,
    pimRPAddress         IpAddress,
    pimRPState           INTEGER,
    pimRPStateTimer      TimeTicks,
    pimRPLastChange
    pimBidirDFElectionAddressType       InetAddressType,
    pimBidirDFElectionRPAddress         InetAddress,
    pimBidirDFElectionIfIndex           InterfaceIndex,
    pimBidirDFElectionWinnerAddress     InetAddress,
    pimBidirDFElectionWinnerUpTime      TimeTicks,
    pimRPRowStatus       RowStatus
    pimBidirDFElectionWinnerMetricPref  Unsigned32,
    pimBidirDFElectionWinnerMetric      Unsigned32,
    pimBidirDFElectionState             INTEGER,
    pimBidirDFElectionStateTimer        TimeTicks
}

pimRPGroupAddress

pimBidirDFElectionAddressType OBJECT-TYPE
    SYNTAX     IpAddress     InetAddressType
    MAX-ACCESS not-accessible
    STATUS     deprecated     current
    DESCRIPTION
            "The IP multicast group address type of the RP for which this entry
            contains information about an RP." the DF state is being
            maintained."
    ::= { pimRPEntry pimBidirDFElectionEntry 1 }

pimRPAddress

pimBidirDFElectionRPAddress OBJECT-TYPE
    SYNTAX     IpAddress     InetAddress (SIZE (4|16|20))
    MAX-ACCESS not-accessible
    STATUS     deprecated     current
    DESCRIPTION
            "The unicast IP address of the RP." RP for which the DF state is being
            maintained.  The InetAddressType is given by the
            pimBidirDFElectionAddressType object."
    ::= { pimRPEntry pimBidirDFElectionEntry 2 }

pimRPState

pimBidirDFElectionIfIndex OBJECT-TYPE
    SYNTAX     INTEGER     InterfaceIndex
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The value of ifIndex for the interface for which the DF
            state is being maintained."
    ::= { up(1), down(2) pimBidirDFElectionEntry 3 }

pimBidirDFElectionWinnerAddress OBJECT-TYPE
    SYNTAX     InetAddress (SIZE (4|16|20))
    MAX-ACCESS read-only
    STATUS     deprecated     current
    DESCRIPTION
            "The state primary IP address of the RP." winner of the DF Election
            process.  The InetAddressType is given by the
            pimBidirDFElectionAddressType object.  A value of zero
            indicates there is currently no DF."
    ::= { pimRPEntry 3 pimBidirDFElectionEntry 4 }

pimRPStateTimer

pimBidirDFElectionWinnerUpTime OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     deprecated     current
    DESCRIPTION
            "The minimum time remaining before since the next state change.
            When pimRPState is up, this is current winner (last) became elected as
            the minimum time which must
            expire until it can be declared down.  When pimRPState is
            down, DF for this RP."
    ::= { pimBidirDFElectionEntry 5 }

pimBidirDFElectionWinnerMetricPref OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The metric preference advertised by the DF Winner, or zero
            if there is currently no DF."
    ::= { pimBidirDFElectionEntry 6 }

pimBidirDFElectionWinnerMetric OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The metric advertised by the time until it will be declared up (in
            order to retry)." DF Winner, or zero if there is
            currently no DF."
    ::= { pimRPEntry 4 pimBidirDFElectionEntry 7 }

pimRPLastChange

pimBidirDFElectionState OBJECT-TYPE
    SYNTAX     TimeTicks     INTEGER {
                  dfOffer(1),
                  dfLose(2),
                  dfWinner(3),
                  dfBackoff(4)
               }
    MAX-ACCESS read-only
    STATUS     deprecated     current
    DESCRIPTION
            "The value state of sysUpTime at this interface with respect to DF-Election for
            this RP.  The states correspond to the time when ones defined in the corresponding
            instance of pimRPState last changed its value."
            BIDIR-PIM specification [I-D.ietf-pim-bidir]."
    ::= { pimRPEntry 5 pimBidirDFElectionEntry 8 }

pimRPRowStatus

pimBidirDFElectionStateTimer OBJECT-TYPE
    SYNTAX     RowStatus     TimeTicks
    MAX-ACCESS read-create read-only
    STATUS     deprecated     current
    DESCRIPTION
            "The status of this row, by minimum time remaining after which new entries may be
            created, or old entries deleted from this table." the local router
            will expire the current DF state represented by
            pimBidirDFElectionState."
    ::= { pimRPEntry 6 pimBidirDFElectionEntry 9 }

--
-- The PIM RP-Set Table
--

pimRPSetTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF PimRPSetEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The (conceptual) table listing PIM information for
            candidate
            available Rendezvous Points (RPs) for IP multicast groups.
            When the local router is the BSR, this information is
            obtained from received Candidate-RP-Advertisements.  When
            the local router is not the BSR, this information is
            obtained from received RP-Set messages." groups."
    ::= { pim 6 7 }

pimRPSetEntry OBJECT-TYPE
    SYNTAX     PimRPSetEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the pimRPSetTable."
    INDEX      { pimRPSetComponent,
                 pimRPSetAddressType,
                 pimRPSetGroupAddress,
                 pimRPSetGroupMask, pimRPSetAddress
                 pimRPSetGroupPrefixLength,
                 pimRPSetRPType,
                 pimRPSetRPAddress }
    ::= { pimRPSetTable 1 }

PimRPSetEntry ::= SEQUENCE {
    pimRPSetComponent         Unsigned32,
    pimRPSetAddressType       InetAddressType,
    pimRPSetGroupAddress    IpAddress,
    pimRPSetGroupMask       IpAddress,
    pimRPSetAddress         IpAddress,
    pimRPSetHoldTime        Integer32,      InetAddress,
    pimRPSetGroupPrefixLength InetAddressPrefixLength,
    pimRPSetRPType            INTEGER,
    pimRPSetRPAddress         InetAddress,
    pimRPSetBidirGroup        TruthValue,
    pimRPSetPriority          Unsigned32,
    pimRPSetHoldtime          Unsigned32,
    pimRPSetExpiryTime        TimeTicks,
    pimRPSetRPActive          TruthValue
}

pimRPSetComponent       Integer32 OBJECT-TYPE
    SYNTAX     Unsigned32 (1..255)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A number uniquely identifying the component.  Each protocol
            instance connected to a separate domain should have a
            different index value."
    ::= { pimRPSetEntry 1 }

pimRPSetAddressType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The address type of the IP multicast group."
    ::= { pimRPSetEntry 2 }

pimRPSetGroupAddress OBJECT-TYPE
    SYNTAX     IpAddress     InetAddress (SIZE (4|16|20))
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The IP multicast group address which, when combined with
            pimRPSetGroupMask,
            the corresponding value of pimRPSetGroupPrefixLength, gives
            the group prefix for which this entry contains information
            about the Candidate-RP." RP.  The InetAddressType is given by the
            pimRPSetAddressType object."
    ::= { pimRPSetEntry 1 3 }

pimRPSetGroupMask

pimRPSetGroupPrefixLength OBJECT-TYPE
    SYNTAX     IpAddress     InetAddressPrefixLength
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The multicast group address mask prefix length which, when combined
            with the corresponding value of pimRPSetGroupAddress, gives
            the group prefix for which this entry contains information
            about the Candidate-RP." RP.  The InetAddressType is given by the
            pimRPSetAddressType object.  A value of zero is not
            permitted for this object."
    ::= { pimRPSetEntry 2 4 }

pimRPSetAddress

pimRPSetRPType OBJECT-TYPE
    SYNTAX     IpAddress     INTEGER {
                  static (1),
                  bsr (2),
                  embedded (3),
                  other (4)
               }
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "This object indicates how the RP was learnt.  'static'
            means from local configuration, 'bsr' means the PIM
            Bootstrap Router (BSR) mechanism
            [I-D.ietf-pim-sm-bsr], 'embedded' means the Embedded-RP
            mechanism [RFC3956] where the RP address is embedded in the
            multicast group address, and 'other' means any other
            mechanism."
    ::= { pimRPSetEntry 5 }

pimRPSetRPAddress OBJECT-TYPE
    SYNTAX     InetAddress (SIZE (4|16|20))
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The IP address of the Candidate-RP." RP.  The InetAddressType is given by
            the pimRPSetAddressType object."

    ::= { pimRPSetEntry 3 6 }

pimRPSetBidirGroup OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Evaluates to TRUE if groups belonging to the group prefix
            in this entry are to be used with BIDIR-PIM."
    ::= { pimRPSetEntry 7 }

pimRPSetHoldTime

pimRPSetPriority OBJECT-TYPE
    SYNTAX     Integer32     Unsigned32 (0..255)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The RP Priority in the PIM Candidate-RP-Advertisement
            message or PIM Bootstrap message by which this RP was
            learned.  Numerically higher values for this object indicate
            lower priorities, with the value zero denoting the highest
            priority.  This object is 0 if pimRPSetRPType is not 'bsr'."
    ::= { pimRPSetEntry 8 }

pimRPSetHoldtime OBJECT-TYPE
    SYNTAX     Unsigned32 (0..65535)
    UNITS      "seconds"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The holdtime of a Candidate-RP.  If the local router is not
            the BSR, this value RP entry.  This object is 0." 0 if
            pimRPSetRPType is not 'bsr'."
    ::= { pimRPSetEntry 4 9 }

pimRPSetExpiryTime OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The minimum time remaining before the Candidate-RP RP denoted by this
            entry will be declared down.  If the local router is not the BSR, this  The value is 0." zero indicates that
            the RP will never be declared down."
    ::= { pimRPSetEntry 5 10 }

pimRPSetComponent

pimRPSetRPActive OBJECT-TYPE
    SYNTAX     Integer32 (1..255)     TruthValue
    MAX-ACCESS not-accessible read-only
    STATUS     current
    DESCRIPTION
            " A number uniquely identifying the component.  Each
            protocol instance connected
            "Evaluates to a separate domain should have
            a different index value."
    ::= { pimRPSetEntry 6 }

--
-- Note: { pim 8 } through { pim 10 } were used TRUE if the RP in older versions
-- of this MIB.  Since some earlier versions of this MIB have been
-- widely-deployed, these values must not be used in entry is the future,
-- as long currently
            active RP for the MIB is rooted under group range."
    ::= { experimental 61 }. pimRPSetEntry 11 }

--
-- The PIM Candidate-RP Table
--

pimCandidateRPTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF PimCandidateRPEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The (conceptual) table listing the IP multicast groups for
            which the local router is to advertise itself as a
            Candidate-RP when the value of pimComponentCRPHoldTime is
            non-zero.  If this table is empty, then the local router
            will advertise itself as a Candidate-RP for all groups
            (providing the value of pimComponentCRPHoldTime is non-
            zero)."
            Candidate-RP."
    ::= { pim 11 8 }

pimCandidateRPEntry OBJECT-TYPE
    SYNTAX     PimCandidateRPEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the pimCandidateRPTable."
    INDEX      { pimCandidateRPAddressType,
                 pimCandidateRPAddress,
                 pimCandidateRPGroupAddress,
                 pimCandidateRPGroupMask
                 pimCandidateRPGroupPrefixLength }
    ::= { pimCandidateRPTable 1 }

PimCandidateRPEntry ::= SEQUENCE {
    pimCandidateRPGroupAddress    IpAddress,
    pimCandidateRPGroupMask       IpAddress,
    pimCandidateRPAddressType       InetAddressType,
    pimCandidateRPAddress         IpAddress,
    pimCandidateRPRowStatus           InetAddress,
    pimCandidateRPGroupAddress      InetAddress,
    pimCandidateRPGroupPrefixLength InetAddressPrefixLength,
    pimCandidateRPBidir             TruthValue,
    pimCandidateRPStatus            RowStatus
}

pimCandidateRPAddressType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The address type of the Candidate-RP."
    ::= { pimCandidateRPEntry 1 }

pimCandidateRPAddress OBJECT-TYPE
    SYNTAX     InetAddress (SIZE (4|16|20))
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The (unicast) address which will be advertised as a
            Candidate-RP.  The InetAddressType is given by
            the pimCandidateRPAddressType object."
    ::= { pimCandidateRPEntry 2 }

pimCandidateRPGroupAddress OBJECT-TYPE
    SYNTAX     IpAddress     InetAddress (SIZE (4|16|20))
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The IP multicast group address which, when combined with
            pimCandidateRPGroupMask,
            the corresponding value of pimCandidateRPGroupPrefixLength,
            identifies a group prefix for which the local router will
            advertise itself as a Candidate-RP." Candidate-RP.  The InetAddressType is
            given by the pimCandidateRPAddressType object."
    ::= { pimCandidateRPEntry 1 3 }

pimCandidateRPGroupMask

pimCandidateRPGroupPrefixLength OBJECT-TYPE
    SYNTAX     IpAddress     InetAddressPrefixLength
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The multicast group address mask which, when combined with
            the corresponding value of pimCandidateRPGroupMask,
            identifies a group prefix for which the local router will
            advertise itself as a Candidate-RP." Candidate-RP.  The InetAddressType is
            given by the pimCandidateRPAddressType object.  A value of
            zero is not permitted for this object."
    ::= { pimCandidateRPEntry 2 4 }

pimCandidateRPAddress

pimCandidateRPBidir OBJECT-TYPE
    SYNTAX     IpAddress     TruthValue
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The (unicast) address of the interface which will be
            "If this object is set to TRUE, this group range is
            advertised to this RP as a Candidate-RP." BIDIR-PIM group range.  If it is
            set to FALSE, it is advertised as a PIM-SM group range."
    ::= { pimCandidateRPEntry 3 5 }

pimCandidateRPRowStatus

pimCandidateRPStatus 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."
    ::= { pimCandidateRPEntry 4 6 }

--
-- The PIM Component Scope Zone Table

pimComponentTable
--

pimScopeZoneTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF PimComponentEntry PimScopeZoneEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The (conceptual) table containing objects specific to a PIM
            scoped region within a PIM-SM domain.  One row exists for
            each scoped zone in each domain to which the router is
            connected.  A PIM-SM domain scoped zone is defined as an area of the
            network over which Bootstrap messages are forwarded.
            Typically,
            within a PIM-SM router will be a member of exactly one
            domain.  This table also supports, however, routers domain over which
            may form a border between two PIM-SM domains and do not
            forward PIM Bootstrap messages between them." for
            the group range belonging to the scope are forwarded."
    ::= { pim 12 9 }

pimComponentEntry

pimScopeZoneEntry OBJECT-TYPE
    SYNTAX     PimComponentEntry     PimScopeZoneEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the pimComponentTable." pimScopeZoneTable."
    INDEX      { pimComponentIndex pimScopeZoneId }
    ::= { pimComponentTable pimScopeZoneTable 1 }

PimComponentEntry

PimScopeZoneEntry ::= SEQUENCE {
    pimComponentIndex              Integer32,
    pimComponentBSRAddress         IpAddress,
    pimComponentBSRExpiryTime
    pimScopeZoneId                   Unsigned32,
    pimScopeZoneCandidateBSR         TruthValue,
    pimScopeZoneCandidateBSRPriority Unsigned32,
    pimScopeZoneBSRAddressType       InetAddressType,
    pimScopeZoneBSRAddress           InetAddress,
    pimScopeZoneBSRExpiryTime        TimeTicks,
    pimComponentCRPHoldTime        Integer32,
    pimComponentStatus
    pimScopeZoneStatus               RowStatus
}
pimComponentIndex

pimScopeZoneId OBJECT-TYPE
    SYNTAX     Integer32     Unsigned32 (1..255)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A number uniquely identifying an admin scoped zone within a
            domain."

    ::= { pimScopeZoneEntry 1 }

pimScopeZoneCandidateBSR OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "Whether or not the component.  Each protocol
            instance connected to local router is a separate domain should have Candidate-BSR."
    DEFVAL { false }
    ::= { pimScopeZoneEntry 2 }

pimScopeZoneCandidateBSRPriority OBJECT-TYPE
    SYNTAX     Unsigned32 (0..255)
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The priority value for the local router as a
            different index value.  Routers that Candidate-BSR.
            Numerically higher values for this object indicate higher
            priorities.  This object is only support membership
            in a single PIM-SM domain should use a pimComponentIndex
            value used if
            pimScopeZoneCandidateBSR is TRUE."
    DEFVAL { 0 }
    ::= { pimScopeZoneEntry 3 }

pimScopeZoneBSRAddressType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The type of address of 1." the bootstrap router (BSR) for the
            local PIM scoped zone."
    ::= { pimComponentEntry 1 pimScopeZoneEntry 4 }

pimComponentBSRAddress

pimScopeZoneBSRAddress OBJECT-TYPE
    SYNTAX     IpAddress     InetAddress (SIZE (4|16|20))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The IP address of the bootstrap router (BSR) for the local PIM region."
            scoped zone.  The InetAddressType is given by the
            pimScopeZoneBSRAddressType object."
    ::= { pimComponentEntry 2 pimScopeZoneEntry 5 }

pimComponentBSRExpiryTime

pimScopeZoneBSRExpiryTime OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The minimum time remaining before the bootstrap router in
            the local domain scoped zone will be declared down.  For candidate
            BSRs, this is the time until the component sends an RP-Set a PIM
            Bootstrap message.  For other routers, this is the time
            until it may accept an RP-Set a PIM Bootstrap message from a lower
            candidate BSR."
    ::= { pimComponentEntry 3 }

pimComponentCRPHoldTime OBJECT-TYPE
    SYNTAX     Integer32 (0..255)
    UNITS      "seconds"
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The holdtime of the component when it is a candidate RP in
            the local domain.  The value of 0 is used to indicate that
            the local system is not a Candidate-RP."
    DEFVAL     { 0 }
    ::= { pimComponentEntry 4 pimScopeZoneEntry 6 }

pimComponentStatus

pimScopeZoneStatus OBJECT-TYPE
    SYNTAX     RowStatus
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The status of this entry.  Creating the entry creates
            another protocol instance; destroying the entry disables a
            protocol instance."
    ::= { pimComponentEntry 5 pimScopeZoneEntry 7 }

-- PIM State Refresh Objects

pimSourceLifetime OBJECT-TYPE
    SYNTAX Integer32
    UNITS "seconds"
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION "The maximum time this router will continue to
                 originate State Refresh messages in the absence of
                 traffic from the source itself."
    DEFVAL { 210 }
    ::= { pim 13 }

pimStateRefreshInterval OBJECT-TYPE
    SYNTAX Integer32 (1..255)
    UNITS "seconds"
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION "The interval between successive State Refresh
                 messages originated by this router."
    DEFVAL { 60 }
    ::= { pim 14 }

pimStateRefreshLimitInterval OBJECT-TYPE
    SYNTAX TimeTicks
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION "This router will not forward successive State Refresh
                 messages received at less than this interval."
    DEFVAL { 0 }
    ::= { pim 15 }

pimStateRefreshTimeToLive OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION "The TTL to be used by this router's originated State
                 Refresh messages if the data packet's TTL is not
                 recorded."
    DEFVAL { 16 }
::= { pim 16 }
-- PIM Traps
--

pimNeighborLoss NOTIFICATION-TYPE
    OBJECTS {
       pimNeighborIfIndex pimNeighborUpTime }
    STATUS     current
    DESCRIPTION
            "A pimNeighborLoss trap signifies the loss of an adjacency
            with a neighbor.  This trap should be generated when the
            neighbor timer expires, and the router has no other
            neighbors on the same interface with the same IP version and
            a lower IP address than itself."
    ::= { pimTraps 1 }

-- conformance information
-- Conformance Information
--

pimMIBConformance OBJECT IDENTIFIER ::= { pimMIB pimStdMIB 2 }
pimMIBCompliances OBJECT IDENTIFIER ::= { pimMIBConformance 1 }
pimMIBGroups      OBJECT IDENTIFIER ::= { pimMIBConformance 2 }

-- compliance statements

pimV1MIBCompliance MODULE-COMPLIANCE
    STATUS  deprecated
    DESCRIPTION
            "The compliance statement for routers running PIMv1 and
            implementing the PIM MIB."
    MODULE
-- this module
        MANDATORY-GROUPS { pimV1MIBGroup }

    ::= { pimMIBCompliances 1 }

pimSparseV2MIBCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
            "The compliance statement for routers running PIM Sparse
            Mode and implementing the PIM MIB."
    MODULE Compliance Statements
-- this module
    MANDATORY-GROUPS { pimV2MIBGroup }

    GROUP      pimV2CandidateRPMIBGroup
    DESCRIPTION
            "This group is mandatory if the router is capable of being a
            Candidate RP."

    OBJECT     pimInterfaceStatus
    MIN-ACCESS read-only
    DESCRIPTION
             "Write access is not required."
    ::= { pimMIBCompliances 2 }

pimDenseV2MIBCompliance

pimMIBCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
            "The compliance statement for routers running PIM Dense Mode
            and implementing routers which implement
            the PIM MIB."
    MODULE  -- this module
    MANDATORY-GROUPS { pimDenseV2MIBGroup pimNotificationGroup,
                       pimObjectGroup }

    OBJECT     pimInterfaceStatus
    MIN-ACCESS read-only
    DESCRIPTION
             "Write access is not required."
    ::= { pimMIBCompliances 3 1 }

-- units
-- Units of conformance Conformance
--

pimNotificationGroup NOTIFICATION-GROUP
    NOTIFICATIONS { pimNeighborLoss }
    STATUS  current
    DESCRIPTION
            "A collection of notifications for signaling important PIM
            events."
    ::= { pimMIBGroups 1 }

pimV2MIBGroup

pimObjectGroup OBJECT-GROUP
    OBJECTS { pimJoinPruneInterval, pimInterfaceIfIndex, pimInterfaceAddressType,
              pimInterfaceAddress, pimInterfaceNetMask,
              pimInterfaceMode,
              pimInterfaceNetMaskLength,
              pimInterfaceDR,
              pimInterfaceHelloInterval, pimInterfaceStatus,
              pimInterfaceJoinPruneInterval,
              pimInterfaceCBSRPreference,
              pimInterfaceTrigHelloInterval,
              pimInterfaceJoinPruneInterval,
              pimInterfaceDFElectionRobustness,
              pimInterfaceHelloHoldtime, pimInterfaceLanPruneDelay,
              pimInterfaceJoinPruneHoldtime,
              pimInterfaceUseLanPruneDelay,
              pimInterfacePropagationDelay,
              pimInterfaceOverrideInterval, pimInterfaceGenerationID,
              pimInterfaceJoinPruneHoldtime,
              pimInterfaceLanDelayEnabled,
              pimInterfaceUseGenerationID,
              pimInterfaceGenerationIDValue,
              pimInterfaceUseDRPriority,
              pimInterfaceDRPriority,
              pimNeighborAddress, pimNeighborInterfaceIfIndex,
              pimInterfaceLanDelayEnabled,
              pimInterfaceEffectPropagDelay,
              pimInterfaceEffectOverrideIvl,
              pimInterfaceSuppressionEnabled,
              pimInterfaceBidirCapable,
              pimInterfaceDRPriorityEnabled,
              pimInterfaceBSRBorder,
              pimInterfaceStatus,
              pimNeighborUpTime,
              pimNeighborExpiryTime,
              pimNeighborLANPruneDelay,
              pimNeighborLanPruneDelayPresent,
              pimNeighborPropagationDelay,
              pimNeighborOverrideInterval,
              pimNeighborTBit, pimNeighborDRPresent,
              pimIpMRouteUpstreamAssertTimer, pimIpMRouteAssertMetric,
              pimIpMRouteIpRouteAssertMetricPref,
              pimIpMRouteAssertRPTBit, pimIpMRouteFlags,
              pimIpMRouteRPFNeighbor, pimIpMRouteNextHopPruneReason,
              pimRPSetGroupAddress, pimRPSetGroupMask, pimRPSetAddress,
              pimRPSetHoldTime,
              pimNeighborGenerationIDPresent,
              pimNeighborGenerationIDValue,
              pimNeighborBidirCapable,
              pimNeighborDRPriorityPresent,
              pimNeighborDRPriority,
              pimNbrSecAddress,
              pimMRouteUpTime,
              pimMRouteExpiryTime,
              pimMRouteType,
              pimMRouteRPAddress,
              pimMRouteRPFIfIndex,
              pimMRouteRPFNeighbor,
              pimMRouteUpstreamAssertTimer,
              pimMRouteAssertRPTBit,
              pimMRouteAssertMetricPref,
              pimMRouteAssertMetric,
              pimMRouteFlags,
              pimMRouteNextHopUpTime,
              pimMRouteNextHopForwarding,
              pimMRouteNextHopJoinPruneTimer,
              pimMRouteNextHopAssertWinner,
              pimMRouteNextHopAssertTimer,
              pimMRouteNextHopAssertRPTBit,
              pimMRouteNextHopAssertMetricPref,
              pimMRouteNextHopAssertMetric,
              pimBidirDFElectionWinnerAddress,
              pimBidirDFElectionWinnerUpTime,
              pimBidirDFElectionWinnerMetricPref,
              pimBidirDFElectionWinnerMetric,
              pimBidirDFElectionState,
              pimBidirDFElectionStateTimer,
              pimRPSetBidirGroup,
              pimRPSetPriority,
              pimRPSetHoldtime,
              pimRPSetExpiryTime, pimRPSetComponent,
              pimComponentBSRAddress, pimComponentBSRExpiryTime,
              pimComponentCRPHoldTime, pimComponentStatus
              pimRPSetRPActive,
              pimCandidateRPBidir,
              pimCandidateRPStatus,
              pimScopeZoneCandidateBSR,
              pimScopeZoneCandidateBSRPriority,
              pimScopeZoneBSRAddressType,
              pimScopeZoneBSRAddress,
              pimScopeZoneBSRExpiryTime,
              pimScopeZoneStatus }
    STATUS  current
    DESCRIPTION
            "A collection of objects to support management of for managing PIM Sparse
            Mode (version 2) routers."
    ::= { pimMIBGroups 2 }

pimDenseV2MIBGroup OBJECT-GROUP
    OBJECTS { pimInterfaceIfIndex, pimInterfaceAddress,
              pimInterfaceNetMask, pimInterfaceHelloInterval,
              pimInterfaceStatus, pimInterfaceTrigHelloInterval,
              pimInterfaceHelloHoldtime, pimInterfaceLanPruneDelay,
              pimInterfacePropagationDelay, pimInterfaceOverrideInterval,
              pimInterfaceGenerationID, pimInterfaceJoinPruneHoldtime,
              pimInterfaceGraftRetryInterval,
              pimInterfaceMaxGraftRetries, pimInterfaceSRTTLThreshold,
              pimInterfaceLanDelayEnabled, pimInterfaceSRCapable,
              pimNeighborIfIndex, pimNeighborUpTime,
              pimNeighborExpiryTime, pimNeighborLANPruneDelay,
              pimNeighborOverrideInterval, pimNeighborSRCapable,
              pimIpMRouteSourceTimer, pimIpMRouteOriginatorSRTTL,
              pimSourceLifetime, pimStateRefreshInterval,
              pimStateRefreshLimitInterval, pimStateRefreshTimeToLive
            }
    STATUS  current
    DESCRIPTION
            "A collection of objects to support management of PIM Dense
            Mode (version 2) routers."
    ::= { pimMIBGroups 5 }

pimV2CandidateRPMIBGroup OBJECT-GROUP
    OBJECTS { pimCandidateRPAddress,
              pimCandidateRPRowStatus
            }
    STATUS  current
    DESCRIPTION
            "A collection of objects to support configuration of which
            groups a router is to advertise itself as a Candidate-RP."
    ::= { pimMIBGroups 3 }

pimV1MIBGroup OBJECT-GROUP
    OBJECTS { pimJoinPruneInterval, pimNeighborIfIndex,
              pimNeighborUpTime, pimNeighborExpiryTime,
              pimNeighborMode,
              pimInterfaceAddress, pimInterfaceNetMask,
              pimInterfaceJoinPruneInterval, pimInterfaceStatus,
              pimInterfaceMode, pimInterfaceDR,
              pimInterfaceHelloInterval,
              pimRPState, pimRPStateTimer,
              pimRPLastChange, pimRPRowStatus
            }
    STATUS  deprecated
    DESCRIPTION
            "A collection of objects to support management of PIM
            (version 1) routers."
    ::= { pimMIBGroups 4 }

pimNextHopGroup OBJECT-GROUP
    OBJECTS { pimIpMRouteNextHopPruneReason,
              pimIpMRouteNextHopAssertWinner,
              pimIpMRouteNextHopAssertTimer,
              pimIpMRouteNextHopAssertMetric,
              pimIpMRouteNextHopAssertMetricPref,
              pimIpMRouteNextHopJoinPruneTimer
            }
    STATUS  current
    DESCRIPTION
            "A collection of optional objects to provide per-next hop
            information for diagnostic purposes.  Supporting this group
            may add a large number of instances to a tree walk, but the
            information in this group can be extremely useful in
            tracking down multicast connectivity problems."
    ::= { pimMIBGroups 6 }

pimAssertGroup OBJECT-GROUP
    OBJECTS { pimIpMRouteAssertMetric, pimIpMRouteAssertMetricPref,
              pimIpMRouteAssertRPTBit, pimIpMRouteRPFNeighbor}
    STATUS  current
    DESCRIPTION
            "A collection of optional objects to provide extra
            information about the assert election process.  There is no
            protocol reason to keep such information, but some
            implementations may already keep this information and make
            it available.  These objects can also be very useful in
            debugging connectivity or duplicate packet problems,
            especially if the assert winner does not support the PIM and
            IP Multicast MIBs."
    ::= { pimMIBGroups 7 }

END

5.  Security Considerations

   This MIB contains readable objects whose values provide information
   related to multicast routing, including information on the network
   topology.

   There are also a number of management objects that have defined in this MIB module
   with a MAX-ACCESS clause of read-write and/or read-create, which allow an administrator
   to configure PIM in the router.

   While unauthorized access to the readable objects is relatively
   innocuous, unauthorized access to the write-able read-create.  Such
   objects could cause
   a denial of service.  Hence, the 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.

   SNMPv1 by itself  These are the tables and objects and their
   sensitivity/vulnerability:

   TODO.

   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 such an insecure environment. thus important to
   control even GET and/or NOTIFY access to these objects and possibly
   to even encrypt the values of these objects when sending them over
   the network via SNMP.  These are the tables and objects and their
   sensitivity/vulnerability:

   TODO.

   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 SET (change/create/delete) GET/SET (read/change/create/delete) the objects
   in this MIB. MIB module.

   It is recommended RECOMMENDED that the implementers consider the security features as
   provided by the SNMPv3 framework.  Specifically, the use
   of framework (see [RFC3410], section 8),
   including full support for the User-based Security Model RFC 2274 [12] SNMPv3 cryptographic mechanisms (for
   authentication and the View-based
   Access Control Model RFC 2275 [15] privacy).

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

6.  IANA Considerations

   PIM-STD-MIB should be rooted under the mib-2 subtree.  IANA is
   requested to assign { mib-2 XXX } to the PIM-STD-MIB module specified
   in this document.

7.  Acknowledgements

   This MIB module is based on the original work in RFC 2934 [RFC2934]
   by K. McCloghrie, D. Farinacci, D. Thaler and W. Fenner and has been
   updated based on feedback from the IETF's Protocol Independent
   Multicast (PIM) Working Group.

7.  Authors' Addresses

   Jonathan Nicholas
   ITT Industries
   Aerospace/Communications Division
   100 Kingsland Rd
   Clifton, NJ  07014

   Phone: +1 973 284 2019
   EMail: Jonathan.Nicholas@itt.com was the editor of early versions of this document.

8.  References

   [1]  Wijnen, B., Harrington, D. and R. Presuhn, "An Architecture for
        Describing SNMP Management Frameworks", RFC 2571, April 1999.

   [2]  Rose, M. and K. McCloghrie, "Structure and Identification of
        Management Information

8.1  Normative References

   [RFC2119]  Bradner, S., "Key words for TCP/IP-based Internets", STD 16, RFC
        1155, May 1990.

   [3]  Rose, M. and K. McCloghrie, "Concise MIB Definitions", STD 16, use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 1212, 2119, March 1991.

   [4]  Rose, M., "A Convention 1997.

   [RFC2434]  Narten, T. and H. Alvestrand, "Guidelines for Defining Traps for use with the
        SNMP", Writing an
              IANA Considerations Section in RFCs", BCP 26, RFC 1215, March 1991.

   [5] 2434,
              October 1998.

   [RFC2578]  McCloghrie, K., Ed., Perkins, D., Schoenwaelder, J., Case, J., Rose,
        M. Ed., and S. Waldbusser, J.
              Schoenwaelder, Ed., "Structure of Management Information
              Version 2 (SMIv2)", STD 58, RFC 2578, April 1999.

   [6]

   [RFC2579]  McCloghrie, K., Ed., Perkins, D., Schoenwaelder, J., Case, J., Rose,
        M. Ed., and S. Waldbusser, J.
              Schoenwaelder, Ed., "Textual Conventions for SMIv2",
              STD 58, RFC 2579, April 1999.

   [7]

   [RFC2580]  McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J., Rose,
        M. and S. Waldbusser, J. Schoenwaelder,
              "Conformance Statements for SMIv2", STD 58, RFC 2580,
              April 1999.

   [8]  Case, J., Fedor, M., Schoffstall, M. and J. Davin, "Simple
        Network Management Protocol", STD 15, RFC 1157, May 1990.

   [9]  Case, J.,

   [RFC2863]  McCloghrie, K., Rose, M. K. and S. Waldbusser,
        "Introduction to Community-based SNMPv2", F. Kastenholz, "The Interfaces Group
              MIB", RFC 1901, January
        1996.

   [10] Case, J., McCloghrie, K., Rose, M. 2863, June 2000.

   [RFC4001]  Daniele, M., Haberman, B., Routhier, S., and S. Waldbusser, "Transport
        Mappings J.
              Schoenwaelder, "Textual Conventions for Version 2 of the Simple Internet Network Management Protocol
        (SNMPv2)",
              Addresses", RFC 1906, January 1996.

   [11] Case, J., Harrington D., Presuhn R. 4001, February 2005.

   [I-D.ietf-pim-sm-v2-new]
              Fenner, B., Handley, M., Holbrook, H., and B. Wijnen, "Message
        Processing I. Kouvelas,
              "Protocol Independent Multicast - Sparse Mode PIM-SM):

              Protocol Specification  (Revised)",
              draft-ietf-pim-sm-v2-new-11 (work in progress),
              October 2004.

   [I-D.ietf-pim-bidir]
              Handley, M., Kouvelas, I., Speakman, T., and Dispatching for the Simple Network Management L. Vicisano,
              "Bi-directional Protocol (SNMP)", RFC 2572, April 1999.

   [12] Blumenthal, U. Independent Multicast (BIDIR-
              PIM)", draft-ietf-pim-bidir-07 (work in progress),
              March 2005.

   [I-D.ietf-pim-sm-bsr]
              Bhaskar, N., "Bootstrap Router (BSR) Mechanism for PIM",
              draft-ietf-pim-sm-bsr-05 (work in progress),
              February 2005.

   [RFC3956]  Savola, P. and B. Wijnen, "User-based Security Model (USM)
        for version 3 of Haberman, "Embedding the Simple Network Management Protocol
        (SNMPv3)", Rendezvous
              Point (RP) Address in an IPv6 Multicast Address",
              RFC 2574, April 1999.

   [13] 3956, November 2004.

8.2  Informative References

   [RFC3410]  Case, J., McCloghrie, K., Rose, M. and S. Waldbusser, "Protocol
        Operations for Version 2 of the Simple Network Management
        Protocol (SNMPv2)", RFC 1905, January 1996.

   [14] Levi, Mundy, R., Partain, D., Meyer, P. and B. Stewart, "SNMPv3 Applications", RFC
        2573, April 1999.

   [15] Wijnen, B., Presuhn, R.
              "Introduction and K. McCloghrie, "View-based Access
        Control Model (VACM) Applicability Statements for the Simple Network Internet-
              Standard Management Protocol
        (SNMP)", Framework", RFC 2575, April 1999.

   [18] Estrin, D., Farinacci, D., Helmy, A., Thaler, D., Deering, S.,
        Handley, M., Jacobson, V., Liu, C., Sharma, P. and L. Wei,
        "Protocol Independent Multicast - Sparse Mode (PIM-SM): Protocol
        Specification", RFC 2362, June 1998.

   [19] Adams, A., Nicholas, J., Siadak, W., "Protocol Independent
        Multicast - Dense Mode (PIM-DM): Protocol Specification
        (Revised)", draft-ietf-pim-dm-new-v2-02.txt, work in progress.

   [20] 3410, December 2002.

   [RFC2932]  McCloghrie, K., Farinacci, D. D., and D. Thaler, "IPv4
              Multicast Routing MIB", RFC 2932, October 2000.

   [21] Fenner, W., Handley, M., Holbrook, H., Kouvelas, I.,
        "Protocol Independent Multicast - Sparse Mode (PIM-SM)", draft-
        ietf-pim-sm-v2-new-05.txt, work in progress.

   [22]

   [RFC2934]  McCloghrie, K., Farinacci, D., Thaler, D., and B. Fenner, W.,
              "Protocol Independent Multicast MIB for IPv4", RFC 2934,
              October 2000.

Authors' Addresses

   Raghava Sivaramu
   Cisco Systems
   425 E. Tasman Drive
   San Jose  CA 95134
   USA

   Email: raghava@cisco.com
   James Lingard
   Data Connection Ltd
   100 Church Street
   Enfield  EN2 6BQ
   United Kingdom

   Email: james.lingard@dataconnection.com

   Bharat Joshi
   Infosys Technologies Ltd
   Electronic City
   Bangalore  560 100
   India

   Email: bharat_joshi@infosys.com

Intellectual Property Statement

   The IETF takes no position regarding the validity or scope of any
   Intellectual Property Rights or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; nor does it represent that it has
   made any independent effort to identify any such rights.  Information
   on the procedures with respect to rights in RFC documents can be
   found in BCP 78 and BCP 79.

   Copies of IPR disclosures made to the IETF Secretariat and any
   assurances of licenses to be made available, or the result of an
   attempt made to obtain a general license or permission for the use of
   such proprietary rights by implementers or users of this
   specification can be obtained from the IETF on-line IPR repository at
   http://www.ietf.org/ipr.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights that may cover technology that may be required to implement
   this standard.  Please address the information to the IETF at
   ietf-ipr@ietf.org.

Disclaimer of Validity

   This document and the information contained herein are provided on an
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
   ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
   INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
   INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Copyright Statement

   Copyright (C) The Internet Society (2005).  This document is subject
   to the rights, licenses and restrictions contained in BCP 78, and
   except as set forth therein, the authors retain all their rights.

Acknowledgment

   Funding for the RFC Editor function is currently provided by the
   Internet Society.