PIM WG                                                       R. Sivaramu
Internet-Draft                                             Cisco Systems
Expires: April 7, 2006                                        J. Lingard
                                                             D. McWalter
                                                     Data Connection Ltd
                                                                B. Joshi
                                                Infosys Technologies Ltd
                                                         October 4, 2005


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

Status of this Memo

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

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

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

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

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

   This Internet-Draft will expire on April 7, 2006.

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) protocols (PIM-SM and BIDIR-



Sivaramu, et al.          Expires April 7, 2006                 [Page 1]


Internet-Draft                   PIM MIB                    October 2005


   PIM).  This document is part of work in progress to obsolete RFC
   2934, and is to be preferred where the two documents overlap.  This
   document does not obsolete RFC 2934.

Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
   2.  The Internet-Standard Management Framework . . . . . . . . . .  3
   3.  Overview . . . . . . . . . . . . . . . . . . . . . . . . . . .  4
   4.  Definitions  . . . . . . . . . . . . . . . . . . . . . . . . .  5
   5.  Security Considerations  . . . . . . . . . . . . . . . . . . . 68
   6.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 74
   7.  Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 74
   8.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 74
     8.1   Normative References . . . . . . . . . . . . . . . . . . . 74
     8.2   Informative References . . . . . . . . . . . . . . . . . . 75
       Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 76
       Intellectual Property and Copyright Statements . . . . . . . . 77

































Sivaramu, et al.          Expires April 7, 2006                 [Page 2]


Internet-Draft                   PIM MIB                    October 2005


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) protocols (PIM-SM [I-D.ietf-pim-
   sm-v2-new] and BIDIR-PIM [I-D.ietf-pim-bidir]).

   This document is part of work in progress to obsolete RFC 2934
   [RFC2934].  RFC 2934 defined an experimental MIB module for managing
   the PIM protocols.  The MIB module defined by this document is a re-
   working of the MIB module from RFC 2934, with major changes that
   include the following.

   o  This MIB module is 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 IPv4 Multicast Routing MIB
      defined in RFC 2932 [RFC2932].

   o  This MIB module includes support for configuring static RPs.

   o  This MIB module includes support for configuring anycast RPs
      [I-D.ietf-pim-anycast-rp]>.

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED",  "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in RFC 2119 [RFC2119].

2.  The Internet-Standard Management Framework

   For a detailed overview of the documents that describe the current
   Internet-Standard Management Framework, please refer to section 7 of
   RFC 3410 [RFC3410].

   Managed objects are accessed via a virtual information store, termed
   the Management Information Base or MIB.  MIB objects are generally
   accessed through the Simple Network Management Protocol (SNMP).
   Objects in the MIB are defined using the mechanisms defined in the
   Structure of Management Information (SMI).  This memo specifies a MIB
   module that is compliant to the SMIv2, which is described in STD 58,
   RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] and STD 58, RFC 2580



Sivaramu, et al.          Expires April 7, 2006                 [Page 3]


Internet-Draft                   PIM MIB                    October 2005


   [RFC2580].

3.  Overview

   This MIB module contains the following tables.

   1.   The PIM Interface Table, which contains one row per IP version
        for each interface of the router which is running PIM.

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

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

   4.   The PIM (*,G) State Table, which contains one row for each group
        for which PIM has (*,G) state.

   5.   The PIM (*,G,I) State Table, which contains one row for each
        group and interface for which PIM has interface-specific (*,G)
        state.

   6.   The PIM (S,G) State Table, which contains one row for each
        source and group for which PIM has (S,G) state.

   7.   The PIM (S,G,I) State Table, which contains one row for each
        source, group and interface for which PIM has interface-specific
        (S,G) state.

   8.   The PIM (S,G,rpt) State Table, which contains one row for each
        source and group for which PIM has (S,G,rpt) state.

   9.   The PIM (S,G,rpt,I) State Table, which contains one row for each
        source, group and interface for which PIM has interface-specific
        (S,G,rpt) state.

   10.  The PIM Bidir DF-Election Table, which contains one row per
        interface for each Rendezvous Point (RP) for which
        Bidirectional-PIM Designated Forwarder (DF) election state is
        maintained.

   11.  The PIM Static RP Table, which contains one row per range of
        multicast group addresses for which a particular configured RP
        should be used.

   12.  The PIM Group Mapping Table, which contains one row for each
        mapping from a multicast group address prefix to the PIM mode



Sivaramu, et al.          Expires April 7, 2006                 [Page 4]


Internet-Draft                   PIM MIB                    October 2005


        and RP address to use for groups within that group prefix,
        regardless of the source of the group mapping information.

   13.  The PIM Anycast-RP Set Table, which contains one row for each RP
        within each Anycast-RP set of which the local router is a
        member.

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

4.  Definitions

PIM-STD-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, mib-2,
    NOTIFICATION-TYPE,
    Unsigned32, Gauge32, TimeTicks   FROM SNMPv2-SMI
    TEXTUAL-CONVENTION,
    RowStatus, TruthValue            FROM SNMPv2-TC
    MODULE-COMPLIANCE, OBJECT-GROUP,
    NOTIFICATION-GROUP               FROM SNMPv2-CONF
    InterfaceIndexOrZero,
    InterfaceIndex                   FROM IF-MIB
    InetAddressType,
    InetAddressPrefixLength,
    InetAddress, InetVersion         FROM INET-ADDRESS-MIB
    IANAipRouteProtocol              FROM IANA-RTPROTO-MIB;

pimStdMIB MODULE-IDENTITY
    LAST-UPDATED "200510040000Z" -- 4 October 2005
    ORGANIZATION "IETF PIM Working Group"
    CONTACT-INFO
            "Email: pim@ietf.org"
    DESCRIPTION
            "The MIB module for management of PIM 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     "200510040000Z" -- 4 October 2005
    DESCRIPTION  "Initial version, published as RFC yyyy."
-- RFC Ed.: replace yyyy with actual RFC number & remove this note
    ::= { mib-2 XXX }
-- RFC Ed.: replace XXX with IANA-assigned number & remove this note

--



Sivaramu, et al.          Expires April 7, 2006                 [Page 5]


Internet-Draft                   PIM MIB                    October 2005


-- Textual Conventions
--

PimMode ::= TEXTUAL-CONVENTION
    STATUS     current
    DESCRIPTION
            "The PIM mode in which a group is operating.

            none(1)      The group is not using PIM, which may be the
                         case if, for example, it is a link-local or
                         unroutable group address.

            ssm(2)       Source-Specific Multicast (SSM) with PIM Sparse
                         Mode.

            asm(3)       Any Source Multicast (ASM), with PIM Sparse
                         Mode.

            bidir(4)     Bi-directional PIM.

            dm(5)        PIM Dense Mode.

            other(6)     Any other PIM mode."

    SYNTAX     INTEGER {
                  none(1),
                  ssm(2),
                  asm(3),
                  bidir(4),
                  dm(5),
                  other(6)
               }

PimGroupMappingOriginType ::= TEXTUAL-CONVENTION
    STATUS     current
    DESCRIPTION
            "The mechanism by which a PIM group mapping was learned.

            fixed(1)     Link-local or unroutable group mappings.

            configRp(2)  Local static RP configuration.

            configSsm(3) Local SSM Group configuration.

            bsr(4)       The PIM Bootstrap Router (BSR) mechanism.

            autoRP(5)    Cisco's Auto-RP mechanism.




Sivaramu, et al.          Expires April 7, 2006                 [Page 6]


Internet-Draft                   PIM MIB                    October 2005


            embedded(6)  The Embedded-RP mechanism where the RP address
                         is embedded in the multicast group address.

            other(7)     Any other mechanism."

    REFERENCE "RFC 3956, I-D.ietf-pim-sm-bsr"
    SYNTAX     INTEGER {
                  fixed(1),
                  configRp(2),
                  configSsm(3),
                  bsr(4),
                  autoRP(5),
                  embedded(6),
                  other(7)
               }

--
-- Top-level structure
--

pimMIBObjects OBJECT IDENTIFIER ::= { pimStdMIB 1 }
pimTraps      OBJECT IDENTIFIER ::= { pimMIBObjects 0 }
pim           OBJECT IDENTIFIER ::= { pimMIBObjects 1 }

pimKeepalivePeriod OBJECT-TYPE
    SYNTAX     Unsigned32 (0..65535)
    UNITS      "seconds"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The duration of the Keepalive Timer.  This is the period
            during which the PIM router will maintain (S,G) state in the
            absence of explicit (S,G) local membership or (S,G) join
            messages received to maintain it.  This timer period is
            called the Keepalive_Period in the PIM-SM specification."
    REFERENCE "I-D.ietf-pim-sm-v2-new section 4.11"
    DEFVAL { 210 }
    ::= { pim 14 }

pimRegisterSuppressionTime OBJECT-TYPE
    SYNTAX     Unsigned32 (0..65535)
    UNITS      "seconds"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The duration of the Register Suppression Timer.  This is
            the period during which a PIM Designated Router (DR) stops
            sending Register-encapsulated data to the Rendezvous Point



Sivaramu, et al.          Expires April 7, 2006                 [Page 7]


Internet-Draft                   PIM MIB                    October 2005


            (RP) after receiving a Register-Stop message.  This object
            is used to run timers both at the DR and at the RP.  This
            timer period is called the Register_Suppression_Time in the
            PIM-SM specification."
    REFERENCE "I-D.ietf-pim-sm-v2-new section 4.11"
    DEFVAL { 60 }
    ::= { pim 15 }

pimStarGEntries OBJECT-TYPE
    SYNTAX     Gauge32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of entries in the pimStarGTable."
    ::= { pim 16 }

pimStarGIEntries OBJECT-TYPE
    SYNTAX     Gauge32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of entries in the pimStarGITable."
    ::= { pim 17 }

pimSGEntries OBJECT-TYPE
    SYNTAX     Gauge32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of entries in the pimSGTable."
    ::= { pim 18 }

pimSGIEntries OBJECT-TYPE
    SYNTAX     Gauge32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of entries in the pimSGITable."
    ::= { pim 19 }

pimSGRptEntries OBJECT-TYPE
    SYNTAX     Gauge32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of entries in the pimSGRptTable."
    ::= { pim 20 }




Sivaramu, et al.          Expires April 7, 2006                 [Page 8]


Internet-Draft                   PIM MIB                    October 2005


pimSGRptIEntries OBJECT-TYPE
    SYNTAX     Gauge32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of entries in the pimSGRptITable."
    ::= { pim 21 }

--
-- 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.
            PIM is enabled on all interfaces listed in this table."
    ::= { pim 1 }

pimInterfaceEntry OBJECT-TYPE
    SYNTAX     PimInterfaceEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the pimInterfaceTable.  This
            entry is preserved on agent restart."
    INDEX      { pimInterfaceIfIndex,
                 pimInterfaceIPVersion }
    ::= { pimInterfaceTable 1 }

PimInterfaceEntry ::= SEQUENCE {
    pimInterfaceIfIndex              InterfaceIndex,
    pimInterfaceIPVersion            InetVersion,
    pimInterfaceAddressType          InetAddressType,
    pimInterfaceAddress              InetAddress,
    pimInterfaceDR                   InetAddress,
    pimInterfaceHelloInterval        Unsigned32,
    pimInterfaceTrigHelloInterval    Unsigned32,
    pimInterfaceJoinPruneInterval    Unsigned32,
    pimInterfaceDFElectionRobustness Unsigned32,
    pimInterfaceHelloHoldtime        Unsigned32,
    pimInterfaceJoinPruneHoldtime    Unsigned32,
    pimInterfacePropagationDelay     Unsigned32,
    pimInterfaceOverrideInterval     Unsigned32,
    pimInterfaceGenerationIDValue    Unsigned32,
    pimInterfaceDRPriority           Unsigned32,



Sivaramu, et al.          Expires April 7, 2006                 [Page 9]


Internet-Draft                   PIM MIB                    October 2005


    pimInterfaceLanDelayEnabled      TruthValue,
    pimInterfaceEffectPropagDelay    Unsigned32,
    pimInterfaceEffectOverrideIvl    Unsigned32,
    pimInterfaceSuppressionEnabled   TruthValue,
    pimInterfaceBidirCapable         TruthValue,
    pimInterfaceDRPriorityEnabled    TruthValue,
    pimInterfaceDomainBorder         TruthValue,
    pimInterfaceStatus               RowStatus,
    pimInterfaceStubInterface        TruthValue
}

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

pimInterfaceIPVersion OBJECT-TYPE
    SYNTAX     InetVersion
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The IP version of this PIM 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 }

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

pimInterfaceAddress OBJECT-TYPE
    SYNTAX     InetAddress (SIZE (4|8|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."
    ::= { pimInterfaceEntry 4 }




Sivaramu, et al.          Expires April 7, 2006                [Page 10]


Internet-Draft                   PIM MIB                    October 2005


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

pimInterfaceHelloInterval OBJECT-TYPE
    SYNTAX     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.  A value of zero represents an 'infinite'
            interval, and indicates that periodic PIM Hello messages
            should not be sent on this interface."
    REFERENCE "I-D.ietf-pim-sm-v2-new section 4.11"
    DEFVAL { 30 }
    ::= { pimInterfaceEntry 6 }

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

pimInterfaceJoinPruneInterval OBJECT-TYPE
    SYNTAX     Unsigned32 (0..18000)
    UNITS      "seconds"
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION



Sivaramu, et al.          Expires April 7, 2006                [Page 11]


Internet-Draft                   PIM MIB                    October 2005


            "The frequency at which this router sends PIM Join/Prune
            messages on this PIM interface.  This object corresponds to
            the 't_periodic' timer value defined in the PIM-SM
            specification.  A value of zero represents an 'infinite'
            interval, and indicates that periodic PIM Join/Prune
            messages should not be sent on this interface."
    REFERENCE "I-D.ietf-pim-sm-v2-new section 4.11"
    DEFVAL { 60 }
    ::= { pimInterfaceEntry 8 }

pimInterfaceDFElectionRobustness OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The minimum number of PIM DF-Election messages that must be
            lost in order for DF election on this interface to fail."
    DEFVAL { 3 }
    ::= { pimInterfaceEntry 9 }

pimInterfaceHelloHoldtime OBJECT-TYPE
    SYNTAX     Unsigned32 (0..65535)
    UNITS      "seconds"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The value set in the Holdtime field of PIM Hello messages
            transmitted on 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
            pimInterfaceHelloInterval, or 65535 if
            pimInterfaceHelloInterval is set to zero."
    DEFVAL { 105 }
    ::= { pimInterfaceEntry 10 }

pimInterfaceJoinPruneHoldtime OBJECT-TYPE
    SYNTAX     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 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 zero."
    DEFVAL { 210 }



Sivaramu, et al.          Expires April 7, 2006                [Page 12]


Internet-Draft                   PIM MIB                    October 2005


    ::= { pimInterfaceEntry 11 }

pimInterfacePropagationDelay OBJECT-TYPE
    SYNTAX     Unsigned32 (0..32767)
    UNITS      "milliseconds"
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The expected propagation delay between PIM routers on this
            network or link.

            This router inserts this value into the Propagation_Delay
            field of the LAN Prune Delay option in the PIM Hello
            messages sent on this interface.  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 12 }

pimInterfaceOverrideInterval OBJECT-TYPE
    SYNTAX     Unsigned32 (0..65535)
    UNITS      "milliseconds"
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The value this router inserts into the Override_Interval
            field of the LAN Prune Delay option in the PIM Hello
            messages it sends on this interface.

            When overriding a prune, PIM routers pick a random timer
            duration up to the value of this object.  The more PIM
            routers that are active on a network, the more likely it is
            that the prune will be overridden after a small proportion
            of this time has elapsed.

            The more PIM routers are active on this network, the larger
            this object should be to obtain an optimal spread of prune
            override latencies."
    REFERENCE "I-D.ietf-pim-sm-v2-new section 4.3.3"
    DEFVAL { 2500 }
    ::= { pimInterfaceEntry 13 }

pimInterfaceGenerationIDValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION



Sivaramu, et al.          Expires April 7, 2006                [Page 13]


Internet-Draft                   PIM MIB                    October 2005


            "The value of the Generation ID this router inserted in the
            last PIM Hello message it sent on this interface."
    ::= { pimInterfaceEntry 14 }

pimInterfaceDRPriority OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The Designated Router Priority value inserted into the DR
            Priority option on this interface.  Numerically higher
            values for this object indicate higher priorities."
    DEFVAL { 1 }
    ::= { pimInterfaceEntry 15 }

pimInterfaceLanDelayEnabled 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."
    ::= { pimInterfaceEntry 16 }

pimInterfaceEffectPropagDelay OBJECT-TYPE
    SYNTAX     Unsigned32 (0..32767)
    UNITS      "milliseconds"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The Effective Propagation Delay on this interface.  This
            object is always 500 if pimInterfaceLanDelayEnabled is
            FALSE."
    ::= { pimInterfaceEntry 17 }

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

pimInterfaceSuppressionEnabled OBJECT-TYPE
    SYNTAX     TruthValue



Sivaramu, et al.          Expires April 7, 2006                [Page 14]


Internet-Draft                   PIM MIB                    October 2005


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

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

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

pimInterfaceDomainBorder OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "Whether or not this interface is a PIM domain border.  This
            includes acting as a border for PIM Bootstrap Router (BSR)
            messages, if the BSR mechanism is in use."
    DEFVAL { false }
    ::= { pimInterfaceEntry 22 }

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.

            This status object can be set to active(1) without setting
            any other columnar objects in this entry.



Sivaramu, et al.          Expires April 7, 2006                [Page 15]


Internet-Draft                   PIM MIB                    October 2005


            All writeable objects in this entry can be modified when the
            status of this entry is active(1)."
    ::= { pimInterfaceEntry 23 }

pimInterfaceStubInterface OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "Whether this interface is a 'stub interface'.  If this
            object is set to TRUE, then no PIM packets are sent out this
            interface, and any received PIM packets are ignored.

            Setting this object to TRUE is a security measure for
            interfaces towards untrusted hosts.  This allows an
            interface to be configured for use with IGMP or MGMD, while
            also protecting the PIM router from forged PIM messages on
            the interface.

            To communicate with other PIM routers using this interface,
            this object must remain set to FALSE.

            Changing the value of this object while the interface is
            operational causes the interface to be deactivated and
            then reactivated."
    DEFVAL { false }
    ::= { pimInterfaceEntry 24 }

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

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



Sivaramu, et al.          Expires April 7, 2006                [Page 16]


Internet-Draft                   PIM MIB                    October 2005


                 pimNeighborAddress }
    ::= { pimNeighborTable 1 }

PimNeighborEntry ::= SEQUENCE {
    pimNeighborIfIndex              InterfaceIndex,
    pimNeighborAddressType          InetAddressType,
    pimNeighborAddress              InetAddress,
    pimNeighborUpTime               TimeTicks,
    pimNeighborExpiryTime           TimeTicks,
    pimNeighborLanPruneDelayPresent TruthValue,
    pimNeighborPropagationDelay     Unsigned32,
    pimNeighborOverrideInterval     Unsigned32,
    pimNeighborTBit                 TruthValue,
    pimNeighborGenerationIDPresent  TruthValue,
    pimNeighborGenerationIDValue    Unsigned32,
    pimNeighborBidirCapable         TruthValue,
    pimNeighborDRPriorityPresent    TruthValue,
    pimNeighborDRPriority           Unsigned32
}

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

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

pimNeighborAddress OBJECT-TYPE
    SYNTAX     InetAddress (SIZE (4|8|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



Sivaramu, et al.          Expires April 7, 2006                [Page 17]


Internet-Draft                   PIM MIB                    October 2005


    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The time since this PIM neighbor (last) became a neighbor
            of the local router."
    ::= { pimNeighborEntry 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 5 }

pimNeighborLanPruneDelayPresent OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Evaluates to TRUE if this neighbor is using the LAN Prune
            Delay option."
    ::= { pimNeighborEntry 6 }

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

pimNeighborOverrideInterval OBJECT-TYPE
    SYNTAX     Unsigned32 (0..65535)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The value of the Override_Interval field of the LAN Prune
            Delay option received from this neighbor.  This object is
            always zero if pimNeighborLanPruneDelayPresent is FALSE."
    ::= { pimNeighborEntry 8 }

pimNeighborTBit OBJECT-TYPE



Sivaramu, et al.          Expires April 7, 2006                [Page 18]


Internet-Draft                   PIM MIB                    October 2005


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

pimNeighborGenerationIDPresent OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Evaluates to TRUE if this neighbor is using the 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
            zero 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."
    ::= { pimNeighborEntry 12 }

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 }




Sivaramu, et al.          Expires April 7, 2006                [Page 19]


Internet-Draft                   PIM MIB                    October 2005


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

--
-- The PIM Neighbor Secondary Address Table
--

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

pimNbrSecAddressEntry OBJECT-TYPE
    SYNTAX     PimNbrSecAddressEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the 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



Sivaramu, et al.          Expires April 7, 2006                [Page 20]


Internet-Draft                   PIM MIB                    October 2005


            "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|8|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|8|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 (*,G) State Table
--

pimStarGTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF PimStarGEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The (conceptual) table listing the non-interface specific
            (*,G) state that PIM has."
    ::= { pim 4 }

pimStarGEntry OBJECT-TYPE
    SYNTAX     PimStarGEntry
    MAX-ACCESS not-accessible



Sivaramu, et al.          Expires April 7, 2006                [Page 21]


Internet-Draft                   PIM MIB                    October 2005


    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the pimStarGTable."
    INDEX      { pimStarGAddressType,
                 pimStarGGrpAddress }
    ::= { pimStarGTable 1 }

PimStarGEntry ::= SEQUENCE {
    pimStarGAddressType             InetAddressType,
    pimStarGGrpAddress              InetAddress,
    pimStarGUpTime                  TimeTicks,
    pimStarGPimMode                 PimMode,
    pimStarGRPAddressType           InetAddressType,
    pimStarGRPAddress               InetAddress,
    pimStarGPimModeOrigin           PimGroupMappingOriginType,
    pimStarGRPIsLocal               TruthValue,
    pimStarGUpstreamJoinState       INTEGER,
    pimStarGUpstreamJoinTimer       TimeTicks,
    pimStarGUpstreamNeighborType    InetAddressType,
    pimStarGUpstreamNeighbor        InetAddress,
    pimStarGRPFIfIndex              InterfaceIndexOrZero,
    pimStarGRPFNextHopType          InetAddressType,
    pimStarGRPFNextHop              InetAddress,
    pimStarGRPFRouteProtocol        IANAipRouteProtocol,
    pimStarGRPFRouteAddress         InetAddress,
    pimStarGRPFRoutePrefixLength    InetAddressPrefixLength,
    pimStarGRPFRouteMetricPref      Unsigned32,
    pimStarGRPFRouteMetric          Unsigned32
}

pimStarGAddressType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The address type of this multicast group."
    ::= { pimStarGEntry 1 }

pimStarGGrpAddress OBJECT-TYPE
    SYNTAX     InetAddress (SIZE (4|8|16|20))
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The multicast group address.  The InetAddressType is given
            by the pimStarGAddressType object."
    ::= { pimStarGEntry 2 }

pimStarGUpTime OBJECT-TYPE



Sivaramu, et al.          Expires April 7, 2006                [Page 22]


Internet-Draft                   PIM MIB                    October 2005


    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The time since this entry was created by the local router."
    ::= { pimStarGEntry 3 }

pimStarGPimMode OBJECT-TYPE
    SYNTAX     PimMode { asm(3), bidir(4) }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Whether this entry represents an ASM (Any Source Multicast,
            used with PIM-SM) or BIDIR-PIM group."
    ::= { pimStarGEntry 4 }

pimStarGRPAddressType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The address type of the Rendezvous Point (RP), or
            unknown(0) if the RP address is unknown."
    ::= { pimStarGEntry 5 }

pimStarGRPAddress OBJECT-TYPE
    SYNTAX     InetAddress (SIZE (0|4|16|20))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The address of the Rendezvous Point (RP) for the group.
            The InetAddressType is given by the pimStarGRPAddressType."
    ::= { pimStarGEntry 6 }

pimStarGPimModeOrigin OBJECT-TYPE
    SYNTAX     PimGroupMappingOriginType
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The mechanism by which the PIM mode and RP for the group
            were learned."
    ::= { pimStarGEntry 7 }

pimStarGRPIsLocal OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION



Sivaramu, et al.          Expires April 7, 2006                [Page 23]


Internet-Draft                   PIM MIB                    October 2005


            "Whether the local router is the RP for the group."
    ::= { pimStarGEntry 8 }

pimStarGUpstreamJoinState OBJECT-TYPE
    SYNTAX     INTEGER {
                  notJoined (1),
                  joined (2)
               }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Whether the local router should join the RP tree for the
            group.  This corresponds to the state of the upstream (*,G)
            state machine in the PIM-SM specification."
    REFERENCE "I-D.ietf-pim-sm-v2-new section 4.5.6"
    ::= { pimStarGEntry 9 }

pimStarGUpstreamJoinTimer OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The time remaining before the local router next sends a
            periodic (*,G) Join message on pimStarGRPFIfIndex.  This
            timer is called the (*,G) Upstream Join Timer in the PIM-SM
            specification.  This object is zero if the timer is not
            running."
    REFERENCE "I-D.ietf-pim-sm-v2-new section 4.10"
    ::= { pimStarGEntry 10 }

pimStarGUpstreamNeighborType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The primary address type of the upstream neighbor, or
            unknown(0) if the upstream neighbor address is unknown or is
            not a PIM neighbor."
    ::= { pimStarGEntry 11 }

pimStarGUpstreamNeighbor OBJECT-TYPE
    SYNTAX     InetAddress (SIZE (0|4|16|20))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The primary address of the neighbor on pimStarGRPFIfIndex
            that the local router is sending periodic (*,G) Join
            messages to.  The InetAddressType is given by the



Sivaramu, et al.          Expires April 7, 2006                [Page 24]


Internet-Draft                   PIM MIB                    October 2005


            pimStarGUpstreamNeighborType object.  This address is called
            RPF'(*,G) in the PIM-SM specification."
    REFERENCE "I-D.ietf-pim-sm-v2-new section 4.1.6"
    ::= { pimStarGEntry 12 }

pimStarGRPFIfIndex OBJECT-TYPE
    SYNTAX     InterfaceIndexOrZero
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The value of ifIndex for the RPF interface towards the RP,
            or zero if the RPF interface is unknown."
    ::= { pimStarGEntry 13 }

pimStarGRPFNextHopType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The address type of the RPF next hop towards the RP, or
            unknown(0) if the RPF next hop is unknown."
    ::= { pimStarGEntry 14 }

pimStarGRPFNextHop OBJECT-TYPE
    SYNTAX     InetAddress (SIZE (0|4|16|20))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The address of the RPF next hop towards the RP.  The
            InetAddressType is given by the pimStarGRPFNextHopType
            object.  This address is called MRIB.next_hop(RP(G))
            in the PIM-SM specification."
    REFERENCE "I-D.ietf-pim-sm-v2-new section 4.5.5"
    ::= { pimStarGEntry 15 }

pimStarGRPFRouteProtocol OBJECT-TYPE
    SYNTAX     IANAipRouteProtocol
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The routing mechanism via which the route used to find the
            RPF interface towards the RP was learned."
    ::= { pimStarGEntry 16 }

pimStarGRPFRouteAddress OBJECT-TYPE
    SYNTAX     InetAddress (SIZE (0|4|16|20))
    MAX-ACCESS read-only
    STATUS     current



Sivaramu, et al.          Expires April 7, 2006                [Page 25]


Internet-Draft                   PIM MIB                    October 2005


    DESCRIPTION
            "The IP address which when combined with the corresponding
            value of pimStarGRPFRoutePrefixLength identifies the route
            used to find the RPF interface towards the RP.  The
            InetAddressType is given by the pimStarGRPFNextHopType
            object.

            This address object is only significant up to
            pimStarGRPFRoutePrefixLength bits.  The remainder of the
            address bits are zero."
    ::= { pimStarGEntry 17 }

pimStarGRPFRoutePrefixLength OBJECT-TYPE
    SYNTAX     InetAddressPrefixLength
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The prefix length which when combined with the
            corresponding value of pimStarGRPFRouteAddress identifies
            the route used to find the RPF interface towards the RP.
            The InetAddressType is given by the pimStarGRPFNextHopType
            object."
    ::= { pimStarGEntry 18 }

pimStarGRPFRouteMetricPref OBJECT-TYPE
    SYNTAX     Unsigned32 (0..2147483647)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The metric preference of the route used to find the RPF
            interface towards the RP."
    ::= { pimStarGEntry 19 }

pimStarGRPFRouteMetric OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The routing metric of the route used to find the RPF
            interface towards the RP."
    ::= { pimStarGEntry 20 }

--
-- The PIM (*,G,I) State Table
--

pimStarGITable OBJECT-TYPE
    SYNTAX     SEQUENCE OF PimStarGIEntry



Sivaramu, et al.          Expires April 7, 2006                [Page 26]


Internet-Draft                   PIM MIB                    October 2005


    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The (conceptual) table listing the interface-specific (*,G)
            state that PIM has."
    ::= { pim 5 }

pimStarGIEntry OBJECT-TYPE
    SYNTAX     PimStarGIEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the pimStarGITable."
    INDEX      { pimStarGAddressType,
                 pimStarGGrpAddress,
                 pimStarGIIfIndex }
    ::= { pimStarGITable 1 }

PimStarGIEntry ::= SEQUENCE {
    pimStarGIIfIndex                 InterfaceIndex,
    pimStarGIUpTime                  TimeTicks,
    pimStarGILocalMembership         TruthValue,
    pimStarGIJoinPruneState          INTEGER,
    pimStarGIPrunePendingTimer       TimeTicks,
    pimStarGIJoinExpiryTimer         TimeTicks,
    pimStarGIAssertState             INTEGER,
    pimStarGIAssertTimer             TimeTicks,
    pimStarGIAssertWinnerAddressType InetAddressType,
    pimStarGIAssertWinnerAddress     InetAddress,
    pimStarGIAssertWinnerMetricPref  Unsigned32,
    pimStarGIAssertWinnerMetric      Unsigned32
}

pimStarGIIfIndex OBJECT-TYPE
    SYNTAX     InterfaceIndex
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The ifIndex of the interface that this entry corresponds
            to."
    ::= { pimStarGIEntry 1 }

pimStarGIUpTime OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The time since this entry was created by the local router."



Sivaramu, et al.          Expires April 7, 2006                [Page 27]


Internet-Draft                   PIM MIB                    October 2005


    ::= { pimStarGIEntry 2 }

pimStarGILocalMembership OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Whether the local router has (*,G) local membership on this
            interface (resulting from a mechanism such as IGMP or MLD).
            This corresponds to local_receiver_include(*,G,I) in the
            PIM-SM specification."
    REFERENCE "I-D.ietf-pim-sm-v2-new section 4.1.6"
    ::= { pimStarGIEntry 3 }

pimStarGIJoinPruneState OBJECT-TYPE
    SYNTAX     INTEGER {
                  noInfo (1),
                  join (2),
                  prunePending (3)
               }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The state resulting from (*,G) Join/Prune messages
            received on this interface.  This corresponds to the state
            of the downstream per-interface (*,G) state machine in the
            PIM-SM specification."
    REFERENCE "I-D.ietf-pim-sm-v2-new section 4.5.2"
    ::= { pimStarGIEntry 4 }

pimStarGIPrunePendingTimer OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The time remaining before the local router acts on a (*,G)
            Prune message received on this interface, during which the
            router is waiting to see whether another downstream router
            will override the Prune message.  This timer is called the
            (*,G) Prune-Pending Timer in the PIM-SM specification.  This
            object is zero if the timer is not running."
    REFERENCE "I-D.ietf-pim-sm-v2-new section 4.5.1"
    ::= { pimStarGIEntry 5 }

pimStarGIJoinExpiryTimer OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current



Sivaramu, et al.          Expires April 7, 2006                [Page 28]


Internet-Draft                   PIM MIB                    October 2005


    DESCRIPTION
            "The time remaining before (*,G) Join state for this
            interface expires.  This timer is called the (*,G) Join
            Expiry Timer in the PIM-SM specification.  This object is
            zero if the timer is not running.  A value of 'FFFFFFFF'h
            indicates an infinite expiry time."
    REFERENCE "I-D.ietf-pim-sm-v2-new section 4.10"
    ::= { pimStarGIEntry 6 }

pimStarGIAssertState OBJECT-TYPE
    SYNTAX     INTEGER {
                  noInfo (1),
                  iAmAssertWinner (2),
                  iAmAssertLoser (3)
               }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The (*,G) Assert state for this interface.  This
            corresponds to the state of the per-interface (*,G) Assert
            state machine in the PIM-SM specification.  If
            pimStarGPimMode is 'bidir', this object must be 'noInfo'."
    REFERENCE "I-D.ietf-pim-sm-v2-new section 4.6.2"
    ::= { pimStarGIEntry 7 }

pimStarGIAssertTimer OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "If pimStarGIAssertState is 'iAmAssertWinner', this is the
            time remaining before the local router next sends a (*,G)
            Assert message on this interface.  If pimStarGIAssertState
            is 'iAmAssertLoser', this is the time remaining before the
            (*,G) Assert state expires.  If pimStarGIAssertState is
            'noInfo', this is zero.  This timer is called the (*,G)
            Assert Timer in the PIM-SM specification."
    REFERENCE "I-D.ietf-pim-sm-v2-new section 4.6.2"
    ::= { pimStarGIEntry 8 }

pimStarGIAssertWinnerAddressType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "If pimStarGIAssertState is 'iAmAssertLoser', this is the
            address type of the assert winner; otherwise, this object is
            unknown(0)."



Sivaramu, et al.          Expires April 7, 2006                [Page 29]


Internet-Draft                   PIM MIB                    October 2005


    ::= { pimStarGIEntry 9 }

pimStarGIAssertWinnerAddress OBJECT-TYPE
    SYNTAX     InetAddress (SIZE (0|4|16|20))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "If pimStarGIAssertState is 'iAmAssertLoser', this is the
            address of the assert winner.  The InetAddressType is given
            by the pimStarGIAssertWinnerAddressType object."
    ::= { pimStarGIEntry 10 }

pimStarGIAssertWinnerMetricPref OBJECT-TYPE
    SYNTAX     Unsigned32 (0..2147483647)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "If pimStarGIAssertState is 'iAmAssertLoser', this is the
            metric preference of the route to the RP advertised by the
            assert winner; otherwise, this object is zero."
    ::= { pimStarGIEntry 11 }

pimStarGIAssertWinnerMetric OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "If pimStarGIAssertState is 'iAmAssertLoser', this is the
            routing metric of the route to the RP advertised by the
            assert winner; otherwise, this object is zero."
    ::= { pimStarGIEntry 12 }

--
-- The PIM (S,G) State Table
--

pimSGTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF PimSGEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The (conceptual) table listing the non-interface specific
            (S,G) state that PIM has."
    ::= { pim 6 }

pimSGEntry OBJECT-TYPE
    SYNTAX     PimSGEntry
    MAX-ACCESS not-accessible



Sivaramu, et al.          Expires April 7, 2006                [Page 30]


Internet-Draft                   PIM MIB                    October 2005


    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the pimSGTable."
    INDEX      { pimSGAddressType,
                 pimSGGrpAddress,
                 pimSGSrcAddress }
    ::= { pimSGTable 1 }

PimSGEntry ::= SEQUENCE {
    pimSGAddressType               InetAddressType,
    pimSGGrpAddress                InetAddress,
    pimSGSrcAddress                InetAddress,
    pimSGUpTime                    TimeTicks,
    pimSGPimMode                   PimMode,
    pimSGUpstreamJoinState         INTEGER,
    pimSGUpstreamJoinTimer         TimeTicks,
    pimSGUpstreamNeighbor          InetAddress,
    pimSGRPFIfIndex                InterfaceIndexOrZero,
    pimSGRPFNextHopType            InetAddressType,
    pimSGRPFNextHop                InetAddress,
    pimSGRPFRouteProtocol          IANAipRouteProtocol,
    pimSGRPFRouteAddress           InetAddress,
    pimSGRPFRoutePrefixLength      InetAddressPrefixLength,
    pimSGRPFRouteMetricPref        Unsigned32,
    pimSGRPFRouteMetric            Unsigned32,
    pimSGSPTBit                    TruthValue,
    pimSGKeepaliveTimer            TimeTicks,
    pimSGDRRegisterState           INTEGER,
    pimSGDRRegisterStopTimer       TimeTicks,
    pimSGRPRegisterPMBRAddressType InetAddressType,
    pimSGRPRegisterPMBRAddress     InetAddress
}

pimSGAddressType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The address type of the source and multicast group for this
            entry."
    ::= { pimSGEntry 1 }

pimSGGrpAddress OBJECT-TYPE
    SYNTAX     InetAddress (SIZE (4|8|16|20))
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The multicast group address for this entry.  The



Sivaramu, et al.          Expires April 7, 2006                [Page 31]


Internet-Draft                   PIM MIB                    October 2005


            InetAddressType is given by the pimSGAddressType object."
    ::= { pimSGEntry 2 }

pimSGSrcAddress OBJECT-TYPE
    SYNTAX     InetAddress (SIZE (4|8|16|20))
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The source address for this entry.  The InetAddressType is
            given by the pimSGAddressType object."
    ::= { pimSGEntry 3 }

pimSGUpTime OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The time since this entry was created by the local router."
    ::= { pimSGEntry 4 }

pimSGPimMode OBJECT-TYPE
    SYNTAX     PimMode { ssm(2), asm(3) }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Whether pimSGGrpAddress is an SSM (Source Specific
            Multicast, used with PIM-SM) or ASM (Any Source Multicast,
            used with PIM-SM) group."
    ::= { pimSGEntry 5 }

pimSGUpstreamJoinState OBJECT-TYPE
    SYNTAX     INTEGER {
                  notJoined (1),
                  joined (2)
               }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Whether the local router should join the shortest-path tree
            for the source and group represented by this entry.  This
            corresponds to the state of the upstream (S,G) state machine
            in the PIM-SM specification."
    REFERENCE "I-D.ietf-pim-sm-v2-new section 4.5.7"
    ::= { pimSGEntry 6 }

pimSGUpstreamJoinTimer OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only



Sivaramu, et al.          Expires April 7, 2006                [Page 32]


Internet-Draft                   PIM MIB                    October 2005


    STATUS     current
    DESCRIPTION
            "The time remaining before the local router next sends a
            periodic (S,G) Join message on pimSGRPFIfIndex.  This timer
            is called the (S,G) Upstream Join Timer in the PIM-SM
            specification.  This object is zero if the timer is not
            running."
    REFERENCE "I-D.ietf-pim-sm-v2-new section 4.10 and 4.11"
    ::= { pimSGEntry 7 }

pimSGUpstreamNeighbor OBJECT-TYPE
    SYNTAX     InetAddress (SIZE (4|8|16|20))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The primary address of the neighbor on pimSGRPFIfIndex that
            the local router is sending periodic (S,G) Join messages to.
            This is zero if the RPF next hop is unknown or is not a
            PIM neighbor.  The InetAddressType is given by the
            pimSGAddressType object.  This address is called RPF'(S,G)
            in the PIM-SM specification."
    REFERENCE "I-D.ietf-pim-sm-v2-new section 4.1.6"
    ::= { pimSGEntry 8 }

pimSGRPFIfIndex OBJECT-TYPE
    SYNTAX     InterfaceIndexOrZero
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The value of ifIndex for the RPF interface towards the
            source, or zero if the RPF interface is unknown."
    ::= { pimSGEntry 9 }

pimSGRPFNextHopType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The address type of the RPF next hop towards the source, or
            unknown(0) if the RPF next hop is unknown."
    ::= { pimSGEntry 10 }

pimSGRPFNextHop OBJECT-TYPE
    SYNTAX     InetAddress (SIZE (4|8|16|20))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The address of the RPF next hop towards the source.  The



Sivaramu, et al.          Expires April 7, 2006                [Page 33]


Internet-Draft                   PIM MIB                    October 2005


            InetAddressType is given by the pimSGRPFNextHopType.  This
            address is called MRIB.next_hop(S) in the PIM-SM
            specification."
    REFERENCE "I-D.ietf-pim-sm-v2-new section 4.5.5"
    ::= { pimSGEntry 11 }

pimSGRPFRouteProtocol OBJECT-TYPE
    SYNTAX     IANAipRouteProtocol
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The routing mechanism via which the route used to find the
            RPF interface towards the source was learned."
    ::= { pimSGEntry 12 }

pimSGRPFRouteAddress OBJECT-TYPE
    SYNTAX     InetAddress (SIZE (4|8|16|20))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The IP address which when combined with the corresponding
            value of pimSGRPFRoutePrefixLength identifies the route used
            to find the RPF interface towards the source.  The
            InetAddressType is given by the pimSGRPFNextHopType object.

            This address object is only significant up to
            pimSGRPFRoutePrefixLength bits.  The remainder of the
            address bits are zero."
    ::= { pimSGEntry 13 }

pimSGRPFRoutePrefixLength OBJECT-TYPE
    SYNTAX     InetAddressPrefixLength
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The prefix length which when combined with the
            corresponding value of pimSGRPFRouteAddress identifies the
            route used to find the RPF interface towards the source.
            The InetAddressType is given by the pimSGRPFNextHopType
            object."
    ::= { pimSGEntry 14 }

pimSGRPFRouteMetricPref OBJECT-TYPE
    SYNTAX     Unsigned32 (0..2147483647)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The metric preference of the route used to find the RPF



Sivaramu, et al.          Expires April 7, 2006                [Page 34]


Internet-Draft                   PIM MIB                    October 2005


            interface towards the source."
    ::= { pimSGEntry 15 }

pimSGRPFRouteMetric OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The routing metric of the route used to find the RPF
            interface towards the source."
    ::= { pimSGEntry 16 }

pimSGSPTBit OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Whether the SPT bit is set; and therefore whether
            forwarding is taking place on the shortest-path tree."
    ::= { pimSGEntry 17 }

pimSGKeepaliveTimer OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The time remaining before, in the absence of explicit (S,G)
            local membership or (S,G) Join messages received to maintain
            it, this (S,G) state expires.  This timer is called the
            (S,G) Keepalive Timer in the PIM-SM specification."
    REFERENCE "I-D.ietf-pim-sm-v2-new section 4.1.4"
    ::= { pimSGEntry 18 }

pimSGDRRegisterState OBJECT-TYPE
    SYNTAX     INTEGER {
                  noInfo (1),
                  join (2),
                  joinPending (3),
                  prune (4)
               }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Whether the local router should encapsulate (S,G) data
            packets in Register messages and send them to the RP.  This
            corresponds to the state of the per-(S,G) Register state
            machine in the PIM-SM specification.  This object is always
            'noInfo' unless pimSGPimMode is 'asm'."



Sivaramu, et al.          Expires April 7, 2006                [Page 35]


Internet-Draft                   PIM MIB                    October 2005


    REFERENCE "I-D.ietf-pim-sm-v2-new section 4.4.1"
    ::= { pimSGEntry 19 }

pimSGDRRegisterStopTimer OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "If pimSGDRRegisterState is 'prune', this is the time
            remaining before the local router sends a Null-Register
            message to the RP.  If pimSGDRRegisterState is
            'joinPending', this is the time remaining before the local
            router resumes encapsulating data packets and sending them
            to the RP.  Otherwise, this is zero.  This timer is called
            the Register-Stop Timer in the PIM-SM specification."
    REFERENCE "I-D.ietf-pim-sm-v2-new section 4.4"
    ::= { pimSGEntry 20 }

pimSGRPRegisterPMBRAddressType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The address type of the first PIM Multicast Border Router
            to send a Register message with the Border bit set.  This
            object is unknown(0) if the local router is not the RP for
            the group."
    ::= { pimSGEntry 21 }

pimSGRPRegisterPMBRAddress OBJECT-TYPE
    SYNTAX     InetAddress (SIZE (0|4|16|20))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The IP address of the first PIM Multicast Border Router to
            send a Register message with the Border bit set.  The
            InetAddressType is given by the
            pimSGRPRegisterPMBRAddressType object."
    ::= { pimSGEntry 22 }

--
-- The PIM (S,G,I) State Table
--

pimSGITable OBJECT-TYPE
    SYNTAX     SEQUENCE OF PimSGIEntry
    MAX-ACCESS not-accessible
    STATUS     current



Sivaramu, et al.          Expires April 7, 2006                [Page 36]


Internet-Draft                   PIM MIB                    October 2005


    DESCRIPTION
            "The (conceptual) table listing the interface-specific (S,G)
            state that PIM has."
    ::= { pim 7 }

pimSGIEntry OBJECT-TYPE
    SYNTAX     PimSGIEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the pimSGITable."
    INDEX      { pimSGAddressType,
                 pimSGGrpAddress,
                 pimSGSrcAddress,
                 pimSGIIfIndex }
    ::= { pimSGITable 1 }

PimSGIEntry ::= SEQUENCE {
    pimSGIIfIndex                 InterfaceIndex,
    pimSGIUpTime                  TimeTicks,
    pimSGILocalMembership         TruthValue,
    pimSGIJoinPruneState          INTEGER,
    pimSGIPrunePendingTimer       TimeTicks,
    pimSGIJoinExpiryTimer         TimeTicks,
    pimSGIAssertState             INTEGER,
    pimSGIAssertTimer             TimeTicks,
    pimSGIAssertWinnerAddressType InetAddressType,
    pimSGIAssertWinnerAddress     InetAddress,
    pimSGIAssertWinnerMetricPref  Unsigned32,
    pimSGIAssertWinnerMetric      Unsigned32
}

pimSGIIfIndex OBJECT-TYPE
    SYNTAX     InterfaceIndex
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The ifIndex of the interface that this entry corresponds
            to."
    ::= { pimSGIEntry 1 }

pimSGIUpTime OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The time since this entry was created by the local router."
    ::= { pimSGIEntry 2 }



Sivaramu, et al.          Expires April 7, 2006                [Page 37]


Internet-Draft                   PIM MIB                    October 2005


pimSGILocalMembership OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Whether the local router has (S,G) local membership on this
            interface (resulting from a mechanism such as IGMPv3 or
            MLDv2).  This corresponds to local_receiver_include(S,G,I)
            in the PIM-SM specification."
    REFERENCE "I-D.ietf-pim-sm-v2-new section 4.1.6, 4.6.1 and 4.6.2"
    ::= { pimSGIEntry 3 }

pimSGIJoinPruneState OBJECT-TYPE
    SYNTAX     INTEGER {
                  noInfo (1),
                  join (2),
                  prunePending (3)
               }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The state resulting from (S,G) Join/Prune messages
            received on this interface.  This corresponds to the state
            of the downstream per-interface (S,G) state machine in the
            PIM-SM specification."
    REFERENCE "I-D.ietf-pim-sm-v2-new section 4.5.3"
    ::= { pimSGIEntry 4 }

pimSGIPrunePendingTimer OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The time remaining before the local router acts on an (S,G)
            Prune message received on this interface, during which the
            router is waiting to see whether another downstream router
            will override the Prune message.  This timer is called the
            (S,G) Prune-Pending Timer in the PIM-SM specification.  This
            object is zero if the timer is not running."
    REFERENCE "I-D.ietf-pim-sm-v2-new section 4.5.3 and 4.5.4"
    ::= { pimSGIEntry 5 }

pimSGIJoinExpiryTimer OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The time remaining before (S,G) Join state for this



Sivaramu, et al.          Expires April 7, 2006                [Page 38]


Internet-Draft                   PIM MIB                    October 2005


            interface expires.  This timer is called the (S,G) Join
            Expiry Timer in the PIM-SM specification.  This object is
            zero if the timer is not running.  A value of 'FFFFFFFF'h
            indicates an infinite expiry time."
    REFERENCE "I-D.ietf-pim-sm-v2-new section 4.10"
    ::= { pimSGIEntry 6 }

pimSGIAssertState OBJECT-TYPE
    SYNTAX     INTEGER {
                  noInfo (1),
                  iAmAssertWinner (2),
                  iAmAssertLoser (3)
               }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The (S,G) Assert state for this interface.  This
            corresponds to the state of the per-interface (S,G) Assert
            state machine in the PIM-SM specification."
    REFERENCE "I-D.ietf-pim-sm-v2-new section 4.6.1"
    ::= { pimSGIEntry 7 }

pimSGIAssertTimer OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "If pimSGIAssertState is 'iAmAssertWinner', this is the time
            remaining before the local router next sends a (S,G) Assert
            message on this interface.  If pimSGIAssertState is
            'iAmAssertLoser', this is the time remaining before the
            (S,G) Assert state expires.  If pimSGIAssertState is
            'noInfo', this is zero.  This timer is called the (S,G)
            Assert Timer in the PIM-SM specification."
    REFERENCE "I-D.ietf-pim-sm-v2-new section 4.6.1"
    ::= { pimSGIEntry 8 }

pimSGIAssertWinnerAddressType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "If pimSGIAssertState is 'iAmAssertLoser', this is the
            address type of the assert winner; otherwise, this object is
            unknown(0)."
    ::= { pimSGIEntry 9 }

pimSGIAssertWinnerAddress OBJECT-TYPE



Sivaramu, et al.          Expires April 7, 2006                [Page 39]


Internet-Draft                   PIM MIB                    October 2005


    SYNTAX     InetAddress (SIZE (0|4|16|20))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "If pimSGIAssertState is 'iAmAssertLoser', this is the
            address of the assert winner.  The InetAddressType is given
            by the pimSGIAssertWinnerAddressType object."
    ::= { pimSGIEntry 10 }

pimSGIAssertWinnerMetricPref OBJECT-TYPE
    SYNTAX     Unsigned32 (0..2147483647)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "If pimSGIAssertState is 'iAmAssertLoser', this is the
            metric preference of the route to the source advertised by
            the assert winner; otherwise, this object is zero."
    ::= { pimSGIEntry 11 }

pimSGIAssertWinnerMetric OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "If pimSGIAssertState is 'iAmAssertLoser', this is the
            routing metric of the route to the source advertised by the
            assert winner; otherwise, this object is zero."
    ::= { pimSGIEntry 12 }

--
-- The PIM (S,G,rpt) State Table
--

pimSGRptTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF PimSGRptEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The (conceptual) table listing the non-interface specific
            (S,G,rpt) state that PIM has."
    ::= { pim 8 }

pimSGRptEntry OBJECT-TYPE
    SYNTAX     PimSGRptEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the pimSGRptTable."



Sivaramu, et al.          Expires April 7, 2006                [Page 40]


Internet-Draft                   PIM MIB                    October 2005


    INDEX      { pimStarGAddressType,
                 pimStarGGrpAddress,
                 pimSGRptSrcAddress }
    ::= { pimSGRptTable 1 }

PimSGRptEntry ::= SEQUENCE {
    pimSGRptSrcAddress             InetAddress,
    pimSGRptUpTime                 TimeTicks,
    pimSGRptUpstreamPruneState     INTEGER,
    pimSGRptUpstreamOverrideTimer  TimeTicks
}

pimSGRptSrcAddress OBJECT-TYPE
    SYNTAX     InetAddress (SIZE (4|8|16|20))
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The source address for this entry.  The InetAddressType is
            given by the pimStarGAddressType object."
    ::= { pimSGRptEntry 1 }

pimSGRptUpTime OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The time since this entry was created by the local router."
    ::= { pimSGRptEntry 2 }

pimSGRptUpstreamPruneState OBJECT-TYPE
    SYNTAX     INTEGER {
                  rptNotJoined (1),
                  pruned (2),
                  notPruned (3)
               }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Whether the local router should prune the source off the RP
            tree.  This corresponds to the state of the upstream
            (S,G,rpt) state machine for triggered messages in the PIM-SM
            specification."
    REFERENCE "I-D.ietf-pim-sm-v2-new section 4.5.9"
    ::= { pimSGRptEntry 3 }

pimSGRptUpstreamOverrideTimer OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only



Sivaramu, et al.          Expires April 7, 2006                [Page 41]


Internet-Draft                   PIM MIB                    October 2005


    STATUS     current
    DESCRIPTION
            "The time remaining before the local router sends a
            triggered (S,G,rpt) Join message on pimStarGRPFIfIndex.
            This timer is called the (S,G,rpt) Upstream Override Timer
            in the PIM-SM specification.  This object is zero if the
            timer is not running."
    REFERENCE "I-D.ietf-pim-sm-v2-new section 4.5.9"
    ::= { pimSGRptEntry 4 }

--
-- The PIM (S,G,rpt,I) State Table
--

pimSGRptITable OBJECT-TYPE
    SYNTAX     SEQUENCE OF PimSGRptIEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The (conceptual) table listing the interface-specific
            (S,G,rpt) state that PIM has."
    ::= { pim 9 }

pimSGRptIEntry OBJECT-TYPE
    SYNTAX     PimSGRptIEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the pimSGRptITable."
    INDEX      { pimStarGAddressType,
                 pimStarGGrpAddress,
                 pimSGRptSrcAddress,
                 pimSGRptIIfIndex }
    ::= { pimSGRptITable 1 }

PimSGRptIEntry ::= SEQUENCE {
    pimSGRptIIfIndex            InterfaceIndex,
    pimSGRptIUpTime             TimeTicks,
    pimSGRptILocalMembership    TruthValue,
    pimSGRptIJoinPruneState     INTEGER,
    pimSGRptIPrunePendingTimer  TimeTicks,
    pimSGRptIPruneExpiryTimer   TimeTicks
}

pimSGRptIIfIndex OBJECT-TYPE
    SYNTAX     InterfaceIndex
    MAX-ACCESS not-accessible
    STATUS     current



Sivaramu, et al.          Expires April 7, 2006                [Page 42]


Internet-Draft                   PIM MIB                    October 2005


    DESCRIPTION
            "The ifIndex of the interface that this entry corresponds
            to."
    ::= { pimSGRptIEntry 1 }

pimSGRptIUpTime OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The time since this entry was created by the local router."
    ::= { pimSGRptIEntry 2 }

pimSGRptILocalMembership OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Whether the local router has both (*,G) include local
            membership and (S,G) exclude local membership on this
            interface (resulting from a mechanism such as IGMPv3 or
            MLDv2).  This corresponds to local_receiver_exclude(S,G,I)
            in the PIM-SM specification."
    REFERENCE "I-D.ietf-pim-sm-v2-new section 4.1.6"
    ::= { pimSGRptIEntry 3 }

pimSGRptIJoinPruneState OBJECT-TYPE
    SYNTAX     INTEGER {
                  noInfo (1),
                  prune (2),
                  prunePending (3)
               }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The state resulting from (S,G,rpt) Join/Prune messages
            received on this interface.  This corresponds to the state
            of the downstream per-interface (S,G,rpt) state machine in
            the PIM-SM specification."
    REFERENCE "I-D.ietf-pim-sm-v2-new section 4.5.4"
    ::= { pimSGRptIEntry 4 }

pimSGRptIPrunePendingTimer OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The time remaining before the local router starts pruning



Sivaramu, et al.          Expires April 7, 2006                [Page 43]


Internet-Draft                   PIM MIB                    October 2005


            this source off the RP tree.  This timer is called the
            (S,G,rpt) Prune-Pending Timer in the PIM-SM specification.
            This object is zero if the timer is not running."
    REFERENCE "I-D.ietf-pim-sm-v2-new section 4.5.4"
    ::= { pimSGRptIEntry 5 }

pimSGRptIPruneExpiryTimer OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The time remaining before (S,G,rpt) Prune state for this
            interface expires.  This timer is called the (S,G,rpt)
            Prune Expiry Timer in the PIM-SM specification.  This object
            is zero if the timer is not running.  A value of 'FFFFFFFF'h
            indicates an infinite expiry time."
    REFERENCE "I-D.ietf-pim-sm-v2-new section 4.5.4"
    ::= { pimSGRptIEntry 6 }

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

pimBidirDFElectionTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF PimBidirDFElectionEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The (conceptual) table listing the per-RP Designated
            Forwarder (DF) Election state for each interface for all the
            RPs in BIDIR mode."
    ::= { pim 10 }

pimBidirDFElectionEntry OBJECT-TYPE
    SYNTAX     PimBidirDFElectionEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the pimBidirDFElectionTable."
    INDEX      { pimBidirDFElectionAddressType,
                 pimBidirDFElectionRPAddress,
                 pimBidirDFElectionIfIndex }
    ::= { pimBidirDFElectionTable 1 }

PimBidirDFElectionEntry ::= SEQUENCE {
    pimBidirDFElectionAddressType       InetAddressType,
    pimBidirDFElectionRPAddress         InetAddress,
    pimBidirDFElectionIfIndex           InterfaceIndex,



Sivaramu, et al.          Expires April 7, 2006                [Page 44]


Internet-Draft                   PIM MIB                    October 2005


    pimBidirDFElectionWinnerAddressType InetAddressType,
    pimBidirDFElectionWinnerAddress     InetAddress,
    pimBidirDFElectionWinnerUpTime      TimeTicks,
    pimBidirDFElectionWinnerMetricPref  Unsigned32,
    pimBidirDFElectionWinnerMetric      Unsigned32,
    pimBidirDFElectionState             INTEGER,
    pimBidirDFElectionStateTimer        TimeTicks
}

pimBidirDFElectionAddressType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The address type of the RP for which the DF state is being
            maintained."
    ::= { pimBidirDFElectionEntry 1 }

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

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

pimBidirDFElectionWinnerAddressType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The primary address type of the winner of the DF Election
            process.  A value of unknown(0) indicates there is currently
            no DF."
    ::= { pimBidirDFElectionEntry 4 }

pimBidirDFElectionWinnerAddress OBJECT-TYPE



Sivaramu, et al.          Expires April 7, 2006                [Page 45]


Internet-Draft                   PIM MIB                    October 2005


    SYNTAX     InetAddress (SIZE (0|4|16|20))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The primary IP address of the winner of the DF Election
            process.  The InetAddressType is given by the
            pimBidirDFElectionWinnderAddressType object."
    ::= { pimBidirDFElectionEntry 5 }

pimBidirDFElectionWinnerUpTime OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The time since the current winner (last) became elected as
            the DF for this RP."
    ::= { pimBidirDFElectionEntry 6 }

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

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

pimBidirDFElectionState OBJECT-TYPE
    SYNTAX     INTEGER {
                  dfOffer(1),
                  dfLose(2),
                  dfWinner(3),
                  dfBackoff(4)
               }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The state of this interface with respect to DF-Election for
            this RP.  The states correspond to the ones defined in the



Sivaramu, et al.          Expires April 7, 2006                [Page 46]


Internet-Draft                   PIM MIB                    October 2005


            BIDIR-PIM specification."
    REFERENCE "I-D.ietf-pim-bidir-07 section 3.5.3.1"
    ::= { pimBidirDFElectionEntry 9 }

pimBidirDFElectionStateTimer OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The minimum time remaining after which the local router
            will expire the current DF state represented by
            pimBidirDFElectionState."
    ::= { pimBidirDFElectionEntry 10 }

--
-- The PIM Static RP Table
--

pimStaticRPTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF PimStaticRPEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "This table is used to create and manage static
            configuration of RPs.

            If the group prefixes configured for two or more rows in
            this table overlap, the row with the greatest value of
            pimStaticRPGrpPrefixLength is used for the overlapping
            range."
    ::= { pim 11 }

pimStaticRPEntry OBJECT-TYPE
    SYNTAX     PimStaticRPEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the pimStaticRPTable.  This
            entry is preserved on agent restart."
    INDEX      { pimStaticRPAddressType,
                 pimStaticRPGrpAddress,
                 pimStaticRPGrpPrefixLength }
    ::= { pimStaticRPTable 1 }

PimStaticRPEntry ::= SEQUENCE {
    pimStaticRPAddressType      InetAddressType,
    pimStaticRPGrpAddress       InetAddress,
    pimStaticRPGrpPrefixLength  InetAddressPrefixLength,



Sivaramu, et al.          Expires April 7, 2006                [Page 47]


Internet-Draft                   PIM MIB                    October 2005


    pimStaticRPRPAddress        InetAddress,
    pimStaticRPPimMode          PimMode,
    pimStaticRPOverrideDynamic  TruthValue,
    pimStaticRPRowStatus        RowStatus,
    pimStaticRPPrecedence       Unsigned32
}

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

pimStaticRPGrpAddress OBJECT-TYPE
    SYNTAX     InetAddress (SIZE (4|8|16|20))
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The multicast group address which, when combined with
            pimStaticRPGrpPrefixLength, gives the group prefix for this
            entry.  The InetAddressType is given by the
            pimStaticRPAddressType object.

            This address object is only significant up to
            pimSGRPFRoutePrefixLength bits.  The remainder of the
            address bits are zero.  This is especially important for
            this index field, which is part of the index of this entry.
            Any non-zero bits would signify an entirely different
            entry."
    ::= { pimStaticRPEntry 2 }

pimStaticRPGrpPrefixLength OBJECT-TYPE
    SYNTAX     InetAddressPrefixLength (4..128)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The multicast group prefix length, which, when combined
            with pimStaticRPGrpAddress, gives the group prefix for this
            entry.  The InetAddressType is given by the
            pimStaticRPAddressType object.  If pimStaticRPAddressType is
            'ipv4' or 'ipv4z', this object must be in the range 4..32.
            If pimStaticRPGrpAddressType is 'ipv6' or 'ipv6z', this
            object must be in the range 8..128."
    ::= { pimStaticRPEntry 3 }

pimStaticRPRPAddress OBJECT-TYPE



Sivaramu, et al.          Expires April 7, 2006                [Page 48]


Internet-Draft                   PIM MIB                    October 2005


    SYNTAX     InetAddress (SIZE (4|8|16|20))
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The IP address of the RP to be used for groups within this
            group prefix.  The InetAddressType is given by the
            pimStaticRPAddressType object."
    ::= { pimStaticRPEntry 4 }

pimStaticRPPimMode OBJECT-TYPE
    SYNTAX     PimMode { ssm(2), asm(3), bidir(4) }
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The PIM mode to be used for groups in this group prefix.

            If this object is set to ssm(2), then pimStaticRPRPAddress
            must be set to zero.  No RP operations are ever possible for
            PIM Mode SSM."
    DEFVAL { asm }
    ::= { pimStaticRPEntry 5 }

pimStaticRPOverrideDynamic OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "Whether this static RP configuration overrides RP
            information learned dynamically for groups in this group
            prefix."
    DEFVAL { false }
    ::= { pimStaticRPEntry 6 }

pimStaticRPRowStatus OBJECT-TYPE
    SYNTAX     RowStatus
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The status of this row, by which rows in this table can
            be created and destroyed.

            This status object cannot be set to active(1) before valid
            values have been written to pimStaticRPRPAddress.

            All writeable objects in this entry can be modified when the
            status of this entry is active(1)."
    ::= { pimStaticRPEntry 7 }




Sivaramu, et al.          Expires April 7, 2006                [Page 49]


Internet-Draft                   PIM MIB                    October 2005


pimStaticRPPrecedence OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The value for pimGroupMappingPrecedence to be used for this
            static RP configuration.  This allows fine control over
            which configuration is overridden by this static
            configuration.

            If this object is present, then pimStaticRPOverrideDynamic
            is ignored.

            The absolute values of this object have a significance only
            on the local router and do not need to be coordinated with
            other routers.  A setting of this object may have different
            effects when applied to other routers.

            Do not use this object unless fine control of static RP
            behavior on the local router is required."
    ::= { pimStaticRPEntry 8 }

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

pimAnycastRPSetTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF PimAnycastRPSetEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "This table is used to create and manage Anycast-RP via PIM
            Register messages, as opposed to via other protocols such as
            MSDP.

            Entries must be configured in this table if and only if the
            local router is a member of one or more Anycast-RP sets,
            that is, one or more Anycast-RP addresses are assigned to
            the local router.  Note that if using static RP
            configuration, this is in addition to, not instead of, the
            pimStaticRPTable entries that must be configured for the
            Anycast-RPs.

            The set of rows with the same values of both
            pimAnycastRPSetAddressType and pimAnycastRPSetAnycastAddress
            corresponds to the Anycast-RP set for that Anycast-RP
            address.




Sivaramu, et al.          Expires April 7, 2006                [Page 50]


Internet-Draft                   PIM MIB                    October 2005


            When an Anycast-RP set configuration is active, one entry
            per pimAnycastRPSetAnycastAddress corresponds to the local
            router.  The local router is identified by the
            pimAnycastRpSetLocalRouter object.  That entry determines
            the source address used by the local router when forwarding
            PIM Register messages within the Anycast-RP set."
    REFERENCE "I-D.ietf-pim-anycast-rp-04"
    ::= { pim 12 }

pimAnycastRPSetEntry OBJECT-TYPE
    SYNTAX     PimAnycastRPSetEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry corresponds to a single router within a particular
            Anycast-RP set.  This entry is preserved on agent restart."
    INDEX      { pimAnycastRPSetAddressType,
                 pimAnycastRPSetAnycastAddress,
                 pimAnycastRPSetRouterAddress }
    ::= { pimAnycastRPSetTable 1 }

PimAnycastRPSetEntry ::= SEQUENCE {
    pimAnycastRPSetAddressType     InetAddressType,
    pimAnycastRPSetAnycastAddress  InetAddress,
    pimAnycastRPSetRouterAddress   InetAddress,
    pimAnycastRPSetRowStatus       RowStatus,
    pimAnycastRPSetLocalRouter     TruthValue
}

pimAnycastRPSetAddressType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The address type of the Anycast-RP address and router
            address."
    ::= { pimAnycastRPSetEntry 1 }

pimAnycastRPSetAnycastAddress OBJECT-TYPE
    SYNTAX     InetAddress (SIZE (4|8|16|20))
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The Anycast-RP address.  The InetAddressType is given by
            the pimAnycastRPSetAddressType object."
    ::= { pimAnycastRPSetEntry 2 }

pimAnycastRPSetRouterAddress OBJECT-TYPE



Sivaramu, et al.          Expires April 7, 2006                [Page 51]


Internet-Draft                   PIM MIB                    October 2005


    SYNTAX     InetAddress (SIZE (4|8|16|20))
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The address of a router that is a member of the Anycast-RP
            set.  The InetAddressType is given by the
            pimAnycastRPSetAddressType object.

            This address differs from pimAnycastRPSetAnycastAddress.
            Equal values for these two addresses in a single entry is
            not permitted.  That would cause a Register loop."
    ::= { pimAnycastRPSetEntry 3 }

pimAnycastRPSetRowStatus OBJECT-TYPE
    SYNTAX     RowStatus
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The status of this row, by which rows in this table can
            be created and destroyed.  There are no other other
            writeable columnar objects in this entry."
    ::= { pimAnycastRPSetEntry 4 }

pimAnycastRPSetLocalRouter OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Whether this entry corresponds to the local router."
    ::= { pimAnycastRPSetEntry 5 }

--
-- The PIM Group Mapping Table
--

pimGroupMappingTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF PimGroupMappingEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The (conceptual) table listing mappings from multicast
            group prefixes to the PIM mode and RP address to use for
            groups within that group prefix.

            Rows in this table are created for a variety of reasons,
            indicated by the value of the pimGroupMappingOrigin object.

            -  Rows with a pimGroupMappingOrigin value of 'fixed' are



Sivaramu, et al.          Expires April 7, 2006                [Page 52]


Internet-Draft                   PIM MIB                    October 2005


               created automatically by the router at startup, to
               correspond to the well-defined prefixes of link-local and
               unroutable group addresses.  These rows are never
               destroyed.

            -  Rows with a pimGroupMappingOrigin value of 'embedded' are
               created by the router to correspond to group prefixes
               that are to be treated as being in Embedded-RP format.

            -  Rows with a pimGroupMappingOrigin value of 'configRp' are
               created and destroyed as a result of rows in the
               pimStaticRPTable being created and destroyed.

            -  Rows with a pimGroupMappingOrigin value of 'configSsm'
               are created and destroyed as a result of configuration of
               SSM address ranges to the local router.

            -  Rows with a pimGroupMappingOrigin value of 'bsr' are
               created as a result of running the PIM Bootstrap Router
               (BSR) mechanism.  If the local router is not the elected
               BSR, these rows are created to correspond to group
               prefixes in the PIM Bootstrap messages received from the
               elected BSR.  If the local router is the elected BSR,
               these rows are created to correspond to group prefixes in
               the PIM Bootstrap messages that the local router sends.
               In either case, these rows are destroyed when the group
               prefixes are timed out by the BSR mechanism.

            -  Rows with a pimGroupMappingOrigin value of 'other' are
               created and destroyed according to some other mechanism
               not specified here.

            Given the collection of rows in this table at any point in
            time, the PIM mode and RP address to use for a particular
            group is determined using the following algorithm.

            1. From the set of all rows, the subset whose group prefix
               contains the group in question are selected.

            2. If there are no such rows, the behavior is undefined.

            3. If there is at least one such row, from the selected
               subset of rows, the subset that have the lowest value
               of pimGroupMappingPrecedence are selected.

            4. From the selected subset of rows, the subset that have
               the greatest value of pimGroupMappingGrpPrefixLength are
               selected.



Sivaramu, et al.          Expires April 7, 2006                [Page 53]


Internet-Draft                   PIM MIB                    October 2005


            5. If there are multiple selected rows, the subset that have
               the highest precedence (the lowest numerical value for
               pimGroupMappingPrecedence) are selected.

            6. If there are multiple selected rows, the row selected is
               implementation dependent; the implementation might or
               might not apply the PIM hash function to select the row.

            7. The group mode to use is given by the value of
               pimGroupMappingPimMode from the single selected row; the
               RP to use is given by the value of
               pimGroupMappingRPAddress, unless pimGroupMappingOrigin is
               'embedded', in which case the RP is extracted from the
               group address in question."
    REFERENCE "RFC 3956"
    ::= { pim 13 }

pimGroupMappingEntry OBJECT-TYPE
    SYNTAX     PimGroupMappingEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the pimGroupMappingTable."
    INDEX      { pimGroupMappingOrigin,
                 pimGroupMappingAddressType,
                 pimGroupMappingGrpAddress,
                 pimGroupMappingGrpPrefixLength,
                 pimGroupMappingRPAddress }
    ::= { pimGroupMappingTable 1 }

PimGroupMappingEntry ::= SEQUENCE {
    pimGroupMappingOrigin           PimGroupMappingOriginType,
    pimGroupMappingAddressType      InetAddressType,
    pimGroupMappingGrpAddress       InetAddress,
    pimGroupMappingGrpPrefixLength  InetAddressPrefixLength,
    pimGroupMappingRPAddress        InetAddress,
    pimGroupMappingPimMode          PimMode,
    pimGroupMappingPrecedence       Unsigned32
}

pimGroupMappingOrigin OBJECT-TYPE
    SYNTAX     PimGroupMappingOriginType
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The mechanism by which this group mapping was learned."
    ::= { pimGroupMappingEntry 1 }




Sivaramu, et al.          Expires April 7, 2006                [Page 54]


Internet-Draft                   PIM MIB                    October 2005


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

pimGroupMappingGrpAddress OBJECT-TYPE
    SYNTAX     InetAddress (SIZE (4|8|16|20))
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The IP multicast group address which, when combined with
            pimGroupMappingGrpPrefixLength, gives the group prefix for
            this mapping.  The InetAddressType is given by the
            pimGroupMappingAddressType object.

            This address object is only significant up to
            pimGroupMappingGrpPrefixLength bits.  The remainder of the
            address bits are zero.  This is especially important for
            this index field, which is part of the index of this entry.
            Any non-zero bits would signify an entirely different
            entry."
    ::= { pimGroupMappingEntry 3 }

pimGroupMappingGrpPrefixLength OBJECT-TYPE
    SYNTAX     InetAddressPrefixLength (4..128)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The multicast group prefix length, which, when combined
            with pimGroupMappingGrpAddress, gives the group prefix for
            this mapping.  The InetAddressType is given by the
            pimGroupMappingAddressType object.  If
            pimGroupMappingAddressType is 'ipv4' or 'ipv4z', this
            object must be in the range 4..32.  If
            pimGroupMappingAddressType is 'ipv6' or 'ipv6z', this object
            must be in the range 8..128."
    ::= { pimGroupMappingEntry 4 }

pimGroupMappingRPAddress OBJECT-TYPE
    SYNTAX     InetAddress (SIZE (4|8|16|20))
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The IP address of the RP to be used for groups within this
            group prefix, or zero if no RP is to be used or if the RP



Sivaramu, et al.          Expires April 7, 2006                [Page 55]


Internet-Draft                   PIM MIB                    October 2005


            address is unknown.  The InetAddressType is given by the
            pimGroupMappingAddressType object.  This object must be zero
            if pimGroupMappingPimMode is 'ssm', or if
            pimGroupMappingOrigin is 'embedded'."
    ::= { pimGroupMappingEntry 5 }

pimGroupMappingPimMode OBJECT-TYPE
    SYNTAX     PimMode
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The PIM mode to be used for groups in this group prefix."
    ::= { pimGroupMappingEntry 6 }

pimGroupMappingPrecedence OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The precedence of this row, used in the algorithm that
            determines which row applies to a given group address
            (described above).  Numerically higher values for this
            object indicate lower precedences, with the value zero
            denoting the highest precedence.

            The absolute values of this object have a significance only
            on the local router and do not need to be coordinated with
            other routers."
    ::= { pimGroupMappingEntry 7 }

--
-- PIM Traps
--

pimNeighborLoss NOTIFICATION-TYPE
    OBJECTS { 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 }

pimUnexpectedRegisterAddressType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-only



Sivaramu, et al.          Expires April 7, 2006                [Page 56]


Internet-Draft                   PIM MIB                    October 2005


    STATUS      current
    DESCRIPTION
            "The address type stored in pimUnexpectedRegisterOrigin,
            pimUnexpectedRegisterGroup and pimUnexpectedRegisterRp.

            If no unexpected Register messages have been received, then
            this object is set to unknown(0)."
    ::= { pimTraps 2 }

pimUnexpectedRegisterOrigin OBJECT-TYPE
    SYNTAX      InetAddress (SIZE (0|4|8|16|20))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The source address of the last unexpected Register message
            received by this device."
    ::= { pimTraps 3 }

pimUnexpectedRegisterGroup OBJECT-TYPE
    SYNTAX      InetAddress (SIZE (0|4|8|16|20))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The IP multicast group address to which the last unexpected
            Register message received by this device was addressed."
    ::= { pimTraps 4 }

pimUnexpectedRegisterRp OBJECT-TYPE
    SYNTAX      InetAddress (SIZE (0|4|8|16|20))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The RP address to which the last unexpected Register
            message received by this device was delivered."
    ::= { pimTraps 5 }

pimUnexpectedRegister NOTIFICATION-TYPE
    OBJECTS { pimGroupMappingPimMode,
              pimUnexpectedRegisterAddressType,
              pimUnexpectedRegisterOrigin,
              pimUnexpectedRegisterGroup,
              pimUnexpectedRegisterRp
            }
    STATUS      current
    DESCRIPTION
            "A pimUnexpectedRegister trap signifies that an unexpected
            Register message was received by this device.  This
            indicates that the originating router and this router have



Sivaramu, et al.          Expires April 7, 2006                [Page 57]


Internet-Draft                   PIM MIB                    October 2005


            different Group to RP mappings.

            This trap may also signify that this router believes the
            group address to be within the SSM range, but the origin
            of the Register has implied ASM usage by sending this
            Register message.

            If the local router has one or more Group to RP mappings
            for this group, then the object pimGroupMappingPimMode
            specifies the mapping currently being used (the one with
            the lowest value for pimGroupMappingPrecedence).

            If the local router has no Group to RP mapping for this
            group, them the object pimGroupMappingPimMode is absent.

            This trap may indicate a transient condition while new RP
            mappings are propagating through the network.  If it
            occurs repeatedly over an extended period, then there is a
            persisting configuration error that requires correction.

            The effect is that multicast data is being discarded,
            because this router discards the unexpected Register
            messages.  The discarded data is from a source directly
            connected to pimUnexpectedRegisterOrigin, and is addressed
            to pimUnexpectedRegisterGroup.

            The condition that causes this trap can occur very
            frequently.  Routers may choose to limit the rate at which
            pimUnexpectedRegister is sent."
    REFERENCE "I-D.ietf-pim-sm-v2-new section 4.4.2"
    ::= { pimTraps 6 }

pimUnexpectedJoinPruneAddressType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The address type stored in pimUnexpectedJoinPruneOrigin,
            pimUnexpectedJoinPruneGroup and pimUnexpectedJoinPrune.

            If no unexpected Join/Prune messages have been received,
            this object is set to unknown(0)."
    ::= { pimTraps 7 }

pimUnexpectedJoinPruneOrigin OBJECT-TYPE
    SYNTAX      InetAddress (SIZE (0|4|8|16|20))
    MAX-ACCESS  read-only
    STATUS      current



Sivaramu, et al.          Expires April 7, 2006                [Page 58]


Internet-Draft                   PIM MIB                    October 2005


    DESCRIPTION
            "The source address of the last unexpected Join/Prune
            message received by this device."
    ::= { pimTraps 8 }

pimUnexpectedJoinPruneGroup OBJECT-TYPE
    SYNTAX      InetAddress (SIZE (0|4|8|16|20))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The IP multicast group address carried in the last
            unexpected Join/Prune message received by this device."
    ::= { pimTraps 9 }

pimUnexpectedJoinPruneRp OBJECT-TYPE
    SYNTAX      InetAddress (SIZE (0|4|8|16|20))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The RP address carried in the last unexpected Join/Prune
            message received by this device."
    ::= { pimTraps 10 }

pimUnexpectedJoinPrune NOTIFICATION-TYPE
    OBJECTS { pimGroupMappingPimMode,
              pimUnexpectedJoinPruneAddressType,
              pimUnexpectedJoinPruneOrigin,
              pimUnexpectedJoinPruneGroup,
              pimUnexpectedJoinPruneRp,
              pimNeighborUpTime
            }
    STATUS      current
    DESCRIPTION
            "A pimUnexpectedJoinPrune trap signifies that an
            unexpected Join/Prune message was received by this device.
            This indicates that this router and one of its neighbors
            have different Group to RP mappings.

            This trap may also signify that this router believes the
            group address to be within the SSM range, but the origin
            of the JoinPrune has implied ASM usage by sending this
            Join/Prune(*,G).

            If the local router has one or more Group to RP mappings
            for this group, then the object pimGroupMappingPimMode
            specifies the mapping currently being used (the one with
            the lowest value for pimGroupMappingPrecedence).




Sivaramu, et al.          Expires April 7, 2006                [Page 59]


Internet-Draft                   PIM MIB                    October 2005


            If the local router has no Group to RP mapping for this
            group, them the object pimGroupMappingPimMode is absent.

            If the neighbor that sent this Join/Prune is known, then
            it is identified by pimNeighborUpTime.  Otherwise
            pimNeighborUpTime is absent.

            This trap may indicate a transient condition while new RP
            mappings are propagating through the network.  If it
            occurs repeatedly over an extended period, then there is a
            persisting configuration error that requires correction.

            The effect is that ASM multicast data will not reach
            listeners below the neighbor identified by pimNeighborUpTime
            because this router will ignore the Join/Prune request.

            The condition that causes this trap can occur very
            frequently.  Routers may choose to limit the rate at which
            pimUnexpectedJoinPrune is sent."
    REFERENCE "I-D.ietf-pim-sm-v2-new section 4.5.2"
    ::= { pimTraps 11 }

pimRPMappingChangeType OBJECT-TYPE
    SYNTAX      INTEGER { newMapping(1),
                          deletedMapping(2),
                          modifiedOldMapping(3),
                          modifiedNewMapping(4),
                          highestPrecedenceOldMapping(5),
                          highestPrecedenceNewMapping(6)
                        }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The operation that resulted in the most recent
            pimRPMappingChange notification.

            o newMapping indicates that a new mapping has been added
              into the pimGroupMappingTable, and that this new entry is
              now the highest precedence mapping for the group.

            o deletedMapping indicates that a mapping has been
              deleted from the pimGroupMappingTable, and that the
              deleted entry was the highest precedence mapping for the
              group.  If there are other entries for this group, then
              this is immediately followed by an additional notification
              of type highestPrecedenceNewMapping.

            o modifiedOldMapping indicates that the mapping that had the



Sivaramu, et al.          Expires April 7, 2006                [Page 60]


Internet-Draft                   PIM MIB                    October 2005


              highest precedence is being modified.  This is
              immediately followed by an additional notification of type
              modifiedNewMapping or highestPrecedenceNewMapping
              containing the new RP address.

            o modifiedNewMapping indicates the mapping that has the
              highest precedence has just been modified.  This
              immediately follows a notification of type
              modifiedOldMapping or highestPrecedenceOldMapping.

            o highestPrecedenceOldMapping is similar to
              modifiedOldMapping, but the old mapping entry is not being
              modified.  This notification states that it is no longer
              the active mapping, because another mapping now has the
              highest precedence.  This is immediately followed by an
              additional notification of type newMapping or
              modifiedNewMapping containing the new RP address.

            o highestPrecedenceNewMapping is similar to
              modifiedNewMapping, but the new mapping entry has not been
              modified.  This notification states that an existing entry
              is now the active mapping, because another mapping has
              been deleted or reduced in precedence.  This notification
              immediately follows a notification of type deletedMapping
              or modifiedOldMapping."
    ::= { pimTraps 12 }

pimRPMappingChange NOTIFICATION-TYPE
    OBJECTS { pimGroupMappingPimMode,
              pimGroupMappingPrecedence,
              pimRPMappingChangeType
            }
    STATUS      current
    DESCRIPTION
            "A pimRPMappingChange trap signifies a change in the active
            RP Mapping on this device.  The type of change is indicated
            by pimRPMappingChangeType.

            Not all changes to the pimGroupMappingTable cause a
            pimRPMappingChange trap.  Only those changes that modify the
            pimGroupMappingEntry with the highest precedence for a
            group (lowest value of pimGroupMappingPrecedence) cause
            traps.

            Traps with pimRPMappingChangeType set to deletedMapping,
            modifiedOldMapping or highestPrecedenceOldMapping always
            contain an old RP mapping that is about to be replaced.




Sivaramu, et al.          Expires April 7, 2006                [Page 61]


Internet-Draft                   PIM MIB                    October 2005


            Traps with pimRPMappingChangeType set to newMapping,
            modifiedNewMapping or highestPrecedenceNewMapping always
            contain the new RP mapping that is now in use.

            The condition that causes this trap can occur frequently.
            Routers may choose to limit the rate at which
            pimRPMappingChange is sent."
    ::= { pimTraps 13 }

pimDRElection NOTIFICATION-TYPE
    OBJECTS { pimInterfaceDR }
    STATUS      current
    DESCRIPTION
            "A pimDRElection trap signifies that a new DR has been
            elected on a network.

            This trap is only sent if the router is elected as the new
            DR, or if the router was the DR before this election.

            A router may choose not to send this trap until it has sent
            a periodic Hello on this interface.  At the time when the
            first periodic Hello is sent, a router may choose to
            send a pimDRElection trap if it is the DR at that time.
            This suppresses misleading pimDRElection traps during router
            startup and reboot."
    REFERENCE "I-D.ietf-pim-sm-v2-new section 4.3.2"
    ::= { pimTraps 14 }

--
-- Conformance Information
--

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

--
-- Compliance Statements
--

pimMIBCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
            "The compliance statement for the PIM MIB."
    MODULE  -- this module
    MANDATORY-GROUPS { pimTopologyGroup }
    ::= { pimMIBCompliances 1 }




Sivaramu, et al.          Expires April 7, 2006                [Page 62]


Internet-Draft                   PIM MIB                    October 2005


--
-- Units of Conformance
--

pimTopologyGroup OBJECT-GROUP
    OBJECTS { pimInterfaceAddressType,
              pimInterfaceAddress,
              pimInterfaceDR,
              pimInterfaceHelloHoldtime,
              pimInterfaceJoinPruneHoldtime,
              pimInterfaceGenerationIDValue,
              pimInterfaceLanDelayEnabled,
              pimInterfaceEffectPropagDelay,
              pimInterfaceEffectOverrideIvl,
              pimInterfaceSuppressionEnabled,
              pimInterfaceBidirCapable,
              pimInterfaceDRPriorityEnabled,
              pimNeighborUpTime,
              pimNeighborExpiryTime,
              pimNeighborLanPruneDelayPresent,
              pimNeighborPropagationDelay,
              pimNeighborOverrideInterval,
              pimNeighborTBit,
              pimNeighborGenerationIDPresent,
              pimNeighborGenerationIDValue,
              pimNeighborBidirCapable,
              pimNeighborDRPriorityPresent,
              pimNeighborDRPriority,
              pimNbrSecAddress
            }
    STATUS  current
    DESCRIPTION
            "A collection of read-only objects used to report local PIM
            topology."
    ::= { pimMIBGroups 1 }

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

pimTuningParametersGroup OBJECT-GROUP
    OBJECTS { pimKeepalivePeriod,
              pimRegisterSuppressionTime,
              pimInterfaceHelloInterval,



Sivaramu, et al.          Expires April 7, 2006                [Page 63]


Internet-Draft                   PIM MIB                    October 2005


              pimInterfaceTrigHelloInterval,
              pimInterfaceJoinPruneInterval,
              pimInterfacePropagationDelay,
              pimInterfaceOverrideInterval,
              pimInterfaceDRPriority,
              pimInterfaceDomainBorder,
              pimInterfaceStatus,
              pimInterfaceStubInterface
            }
    STATUS  current
    DESCRIPTION
            "A collection of writeable objects used to configure PIM
            behavior and to tune performance."
    ::= { pimMIBGroups 3 }

pimRouterStatisticsGroup OBJECT-GROUP
    OBJECTS { pimStarGEntries,
              pimStarGIEntries,
              pimSGEntries,
              pimSGIEntries,
              pimSGRptEntries,
              pimSGRptIEntries
            }
    STATUS  current
    DESCRIPTION
            "A collection of statistics global to the PIM router."
    ::= { pimMIBGroups 4 }

pimSsmGroup OBJECT-GROUP
    OBJECTS { pimSGUpTime,
              pimSGPimMode,
              pimSGUpstreamJoinState,
              pimSGUpstreamJoinTimer,
              pimSGUpstreamNeighbor,
              pimSGRPFIfIndex,
              pimSGRPFNextHopType,
              pimSGRPFNextHop,
              pimSGRPFRouteProtocol,
              pimSGRPFRouteAddress,
              pimSGRPFRoutePrefixLength,
              pimSGRPFRouteMetricPref,
              pimSGRPFRouteMetric,
              pimSGSPTBit,
              pimSGKeepaliveTimer,
              pimSGDRRegisterState,
              pimSGDRRegisterStopTimer,
              pimSGRPRegisterPMBRAddressType,
              pimSGRPRegisterPMBRAddress,



Sivaramu, et al.          Expires April 7, 2006                [Page 64]


Internet-Draft                   PIM MIB                    October 2005


              pimSGIUpTime,
              pimSGILocalMembership,
              pimSGIJoinPruneState,
              pimSGIPrunePendingTimer,
              pimSGIJoinExpiryTimer,
              pimSGIAssertState,
              pimSGIAssertTimer,
              pimSGIAssertWinnerAddressType,
              pimSGIAssertWinnerAddress,
              pimSGIAssertWinnerMetricPref,
              pimSGIAssertWinnerMetric
            }
    STATUS  current
    DESCRIPTION
            "A collection of objects to support management of PIM
            routers running the PIM SSM (Source Specific Multicast)
            protocol, in PIM mode SM (Sparse Mode)."
    ::= { pimMIBGroups 5 }

pimRPConfigGroup OBJECT-GROUP
    OBJECTS { pimStaticRPRPAddress,
              pimStaticRPPimMode,
              pimStaticRPOverrideDynamic,
              pimStaticRPRowStatus,
              pimGroupMappingPimMode,
              pimGroupMappingPrecedence
            }
    STATUS  current
    DESCRIPTION
            "A collection of objects to support configuration of RPs
            (Rendezvous Points) and Group Mappings."
    ::= { pimMIBGroups 6 }

pimSmGroup OBJECT-GROUP
    OBJECTS { pimStarGUpTime,
              pimStarGPimMode,
              pimStarGRPAddressType,
              pimStarGRPAddress,
              pimStarGPimModeOrigin,
              pimStarGRPIsLocal,
              pimStarGUpstreamJoinState,
              pimStarGUpstreamJoinTimer,
              pimStarGUpstreamNeighborType,
              pimStarGUpstreamNeighbor,
              pimStarGRPFIfIndex,
              pimStarGRPFNextHopType,
              pimStarGRPFNextHop,
              pimStarGRPFRouteProtocol,



Sivaramu, et al.          Expires April 7, 2006                [Page 65]


Internet-Draft                   PIM MIB                    October 2005


              pimStarGRPFRouteAddress,
              pimStarGRPFRoutePrefixLength,
              pimStarGRPFRouteMetricPref,
              pimStarGRPFRouteMetric,
              pimStarGIUpTime,
              pimStarGILocalMembership,
              pimStarGIJoinPruneState,
              pimStarGIPrunePendingTimer,
              pimStarGIJoinExpiryTimer,
              pimStarGIAssertState,
              pimStarGIAssertTimer,
              pimStarGIAssertWinnerAddressType,
              pimStarGIAssertWinnerAddress,
              pimStarGIAssertWinnerMetricPref,
              pimStarGIAssertWinnerMetric,
              pimSGRptUpTime,
              pimSGRptUpstreamPruneState,
              pimSGRptUpstreamOverrideTimer,
              pimSGRptIUpTime,
              pimSGRptILocalMembership,
              pimSGRptIJoinPruneState,
              pimSGRptIPrunePendingTimer,
              pimSGRptIPruneExpiryTimer
            }
    STATUS  current
    DESCRIPTION
            "A collection of objects to support management of PIM
            routers running PIM-SM (Sparse Mode).  The groups
            pimSsmGroup and pimRPConfigGroup are also required."
    ::= { pimMIBGroups 7 }

pimBidirGroup OBJECT-GROUP
    OBJECTS { pimInterfaceDFElectionRobustness,
              pimBidirDFElectionWinnerAddressType,
              pimBidirDFElectionWinnerAddress,
              pimBidirDFElectionWinnerUpTime,
              pimBidirDFElectionWinnerMetricPref,
              pimBidirDFElectionWinnerMetric,
              pimBidirDFElectionState,
              pimBidirDFElectionStateTimer
            }
    STATUS  current
    DESCRIPTION
            "A collection of objects to support management of PIM
            routers running BIDIR mode.  The groups pimSsmGroup,
            pimSmGroup and pimRPConfigGroup are also required."
    ::= { pimMIBGroups 8 }




Sivaramu, et al.          Expires April 7, 2006                [Page 66]


Internet-Draft                   PIM MIB                    October 2005


pimAnycastRpGroup OBJECT-GROUP
    OBJECTS { pimAnycastRPSetRowStatus,
              pimAnycastRPSetLocalRouter
            }
    STATUS  current
    DESCRIPTION
            "A collection of objects to support management of the PIM
            Anycast-RP mechanism."
    ::= { pimMIBGroups 9 }

pimStaticRPPrecedenceGroup OBJECT-GROUP
    OBJECTS { pimStaticRPPrecedence }
    STATUS  current
    DESCRIPTION
            "A collection of objects to allow fine control of
            interactions between static RP configuration and
            dynamically acquired group to RP mappings."
    ::= { pimMIBGroups 10 }

pimNetMgmtNotificationObjects OBJECT-GROUP
    OBJECTS { pimUnexpectedRegisterAddressType,
              pimUnexpectedRegisterOrigin,
              pimUnexpectedRegisterGroup,
              pimUnexpectedRegisterRp,
              pimUnexpectedJoinPruneAddressType,
              pimUnexpectedJoinPruneOrigin,
              pimUnexpectedJoinPruneGroup,
              pimUnexpectedJoinPruneRp,
              pimRPMappingChangeType
            }
    STATUS  current
    DESCRIPTION
            "Objects required by notification for signaling PIM network
            management events."
    ::= { pimMIBGroups 11 }

pimNetMgmtNotificationGroup NOTIFICATION-GROUP
    NOTIFICATIONS { pimUnexpectedRegister,
                    pimUnexpectedJoinPrune,
                    pimRPMappingChange,
                    pimDRElection
                  }
    STATUS  current
    DESCRIPTION
            "A collection of notifications for signaling PIM network
            management events."
    ::= { pimMIBGroups 12 }




Sivaramu, et al.          Expires April 7, 2006                [Page 67]


Internet-Draft                   PIM MIB                    October 2005


END


5.  Security Considerations

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

   The following tables and objects could be employed to modify
   multicast routing behavior in a way that prevents or disrupts
   services provided by the network, including (but not limited to)
   multicast data traffic delivery.

   The following tables and objects may also be used to modify multicast
   routing behavior in order to intercept or subvert any information
   that is carried by the network.  For example, attacks can be
   envisaged that would pass nominated multicast data streams through a
   nominated location, without the sources or listeners becoming aware
   of this subversion.

   pimKeepalivePeriod
   pimRegisterSuppressionTime
   pimInterfaceTable
   pimInterfaceEntry
   pimInterfaceHelloInterval
   pimInterfaceTrigHelloInterval
   pimInterfaceJoinPruneInterval
   pimInterfaceDFElectionRobustness
   pimInterfacePropagationDelay
   pimInterfaceOverrideInterval
   pimInterfaceDomainBorder
   pimInterfaceStatus
   pimInterfaceStubInterface
   pimStaticRPTable
   pimStaticRPEntry
   pimStaticRPAddressType
   pimStaticRPGrpAddress
   pimStaticRPGrpPrefixLength
   pimStaticRPRPAddress
   pimStaticRPPimMode
   pimStaticRPOverrideDynamic
   pimStaticRPRowStatus
   pimStaticRPPrecedence



Sivaramu, et al.          Expires April 7, 2006                [Page 68]


Internet-Draft                   PIM MIB                    October 2005


   pimAnycastRPSetTable
   pimAnycastRPSetEntry
   pimAnycastRPSetAddressType
   pimAnycastRPSetAnycastAddress
   pimAnycastRPSetRouterAddress
   pimAnycastRPSetRowStatus
   pimAnycastRPSetLocalRouter

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

   The following tables and objects could be employed to determine the
   topology, disposition, and composition of the network.  This
   information may be commercially sensitive, and may also be used in
   preparation for attacks, including any of the attacks described
   above.

   The following tables and objects may also be used to determine
   whether multicast data is flowing in the network, or has flowed
   recently.  They may also be used to determine the network location of
   senders and recipients.  An attacker can apply 'traffic analysis' to
   this data.  In some cases, the information revealed by traffic
   analyses can be as damaging as full knowledge of the data being
   transported.

   pimKeepalivePeriod
   pimRegisterSuppressionTime
   pimStarGEntries
   pimStarGIEntries
   pimSGEntries
   pimSGIEntries
   pimSGRptEntries
   pimSGRptIEntries
   pimInterfaceTable
   pimInterfaceEntry
   pimInterfaceIfIndex
   pimInterfaceIPVersion
   pimInterfaceAddressType
   pimInterfaceAddress
   pimInterfaceDR
   pimInterfaceHelloInterval
   pimInterfaceTrigHelloInterval
   pimInterfaceJoinPruneInterval



Sivaramu, et al.          Expires April 7, 2006                [Page 69]


Internet-Draft                   PIM MIB                    October 2005


   pimInterfaceDFElectionRobustness
   pimInterfaceHelloHoldtime
   pimInterfaceJoinPruneHoldtime
   pimInterfacePropagationDelay
   pimInterfaceOverrideInterval
   pimInterfaceGenerationIDValue
   pimInterfaceDRPriority
   pimInterfaceLanDelayEnabled
   pimInterfaceEffectPropagDelay
   pimInterfaceEffectOverrideIvl
   pimInterfaceSuppressionEnabled
   pimInterfaceBidirCapable
   pimInterfaceDRPriorityEnabled
   pimInterfaceDomainBorder
   pimInterfaceStatus
   pimInterfaceStubInterface
   pimNeighborTable
   pimNeighborEntry
   pimNeighborIfIndex
   pimNeighborAddressType
   pimNeighborAddress
   pimNeighborUpTime
   pimNeighborExpiryTime
   pimNeighborLanPruneDelayPresent
   pimNeighborPropagationDelay
   pimNeighborOverrideInterval
   pimNeighborTBit
   pimNeighborGenerationIDPresent
   pimNeighborGenerationIDValue
   pimNeighborBidirCapable
   pimNeighborDRPriorityPresent
   pimNeighborDRPriority
   pimNbrSecAddressTable
   pimNbrSecAddressEntry
   pimNbrSecAddressIfIndex
   pimNbrSecAddressType
   pimNbrSecAddressPrimary
   pimNbrSecAddress
   pimStarGTable
   pimStarGEntry
   pimStarGAddressType
   pimStarGGrpAddress
   pimStarGUpTime
   pimStarGPimMode
   pimStarGRPAddressType
   pimStarGRPAddress
   pimStarGPimModeOrigin
   pimStarGRPIsLocal



Sivaramu, et al.          Expires April 7, 2006                [Page 70]


Internet-Draft                   PIM MIB                    October 2005


   pimStarGUpstreamJoinState
   pimStarGUpstreamJoinTimer
   pimStarGUpstreamNeighborType
   pimStarGUpstreamNeighbor
   pimStarGRPFIfIndex
   pimStarGRPFNextHopType
   pimStarGRPFNextHop
   pimStarGRPFRouteProtocol
   pimStarGRPFRouteAddress
   pimStarGRPFRoutePrefixLength
   pimStarGRPFRouteMetricPref
   pimStarGRPFRouteMetric
   pimStarGITable
   pimStarGIEntry
   pimStarGIIfIndex
   pimStarGIUpTime
   pimStarGILocalMembership
   pimStarGIJoinPruneState
   pimStarGIPrunePendingTimer
   pimStarGIJoinExpiryTimer
   pimStarGIAssertState
   pimStarGIAssertTimer
   pimStarGIAssertWinnerAddressType
   pimStarGIAssertWinnerAddress
   pimStarGIAssertWinnerMetricPref
   pimStarGIAssertWinnerMetric
   pimSGTable
   pimSGEntry
   pimSGAddressType
   pimSGGrpAddress
   pimSGSrcAddress
   pimSGUpTime
   pimSGPimMode
   pimSGUpstreamJoinState
   pimSGUpstreamJoinTimer
   pimSGUpstreamNeighbor
   pimSGRPFIfIndex
   pimSGRPFNextHopType
   pimSGRPFNextHop
   pimSGRPFRouteProtocol
   pimSGRPFRouteAddress
   pimSGRPFRoutePrefixLength
   pimSGRPFRouteMetricPref
   pimSGRPFRouteMetric
   pimSGSPTBit
   pimSGKeepaliveTimer
   pimSGDRRegisterState
   pimSGDRRegisterStopTimer



Sivaramu, et al.          Expires April 7, 2006                [Page 71]


Internet-Draft                   PIM MIB                    October 2005


   pimSGRPRegisterPMBRAddressType
   pimSGRPRegisterPMBRAddress
   pimSGITable
   pimSGIEntry
   pimSGIIfIndex
   pimSGIUpTime
   pimSGILocalMembership
   pimSGIJoinPruneState
   pimSGIPrunePendingTimer
   pimSGIJoinExpiryTimer
   pimSGIAssertState
   pimSGIAssertTimer
   pimSGIAssertWinnerAddressType
   pimSGIAssertWinnerAddress
   pimSGIAssertWinnerMetricPref
   pimSGIAssertWinnerMetric
   pimSGRptTable
   pimSGRptEntry
   pimSGRptSrcAddress
   pimSGRptUpTime
   pimSGRptUpstreamPruneState
   pimSGRptUpstreamOverrideTimer
   pimSGRptITable
   pimSGRptIEntry
   pimSGRptIIfIndex
   pimSGRptIUpTime
   pimSGRptILocalMembership
   pimSGRptIJoinPruneState
   pimSGRptIPrunePendingTimer
   pimSGRptIPruneExpiryTimer
   pimBidirDFElectionTable
   pimBidirDFElectionEntry
   pimBidirDFElectionAddressType
   pimBidirDFElectionRPAddress
   pimBidirDFElectionIfIndex
   pimBidirDFElectionWinnerAddressType
   pimBidirDFElectionWinnerAddress
   pimBidirDFElectionWinnerUpTime
   pimBidirDFElectionWinnerMetricPref
   pimBidirDFElectionWinnerMetric
   pimBidirDFElectionState
   pimBidirDFElectionStateTimer
   pimStaticRPTable
   pimStaticRPEntry
   pimStaticRPAddressType
   pimStaticRPGrpAddress
   pimStaticRPGrpPrefixLength
   pimStaticRPRPAddress



Sivaramu, et al.          Expires April 7, 2006                [Page 72]


Internet-Draft                   PIM MIB                    October 2005


   pimStaticRPPimMode
   pimStaticRPOverrideDynamic
   pimStaticRPRowStatus
   pimStaticRPPrecedence
   pimAnycastRPSetTable
   pimAnycastRPSetEntry
   pimAnycastRPSetAddressType
   pimAnycastRPSetAnycastAddress
   pimAnycastRPSetRouterAddress
   pimAnycastRPSetRowStatus
   pimAnycastRPSetLocalRouter
   pimGroupMappingTable
   pimGroupMappingEntry
   pimGroupMappingOrigin
   pimGroupMappingAddressType
   pimGroupMappingGrpAddress
   pimGroupMappingGrpPrefixLength
   pimGroupMappingRPAddress
   pimGroupMappingPimMode
   pimGroupMappingPrecedence
   pimUnexpectedRegisterAddressType
   pimUnexpectedRegisterOrigin
   pimUnexpectedRegisterGroup
   pimUnexpectedRegisterRp
   pimUnexpectedJoinPruneAddressType
   pimUnexpectedJoinPruneOrigin
   pimUnexpectedJoinPruneGroup
   pimUnexpectedJoinPruneRp
   pimRPMappingChangeType

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

   It is RECOMMENDED that implementers consider the security features as
   provided by the SNMPv3 framework (see [RFC3410], section 8),
   including full support for the SNMPv3 cryptographic mechanisms (for
   authentication and privacy).

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



Sivaramu, et al.          Expires April 7, 2006                [Page 73]


Internet-Draft                   PIM MIB                    October 2005


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.

   Jonathan Nicholas was the editor of early versions of this document.

8.  References

8.1  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC2434]  Narten, T. and H. Alvestrand, "Guidelines for Writing an
              IANA Considerations Section in RFCs", BCP 26, RFC 2434,
              October 1998.

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

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

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

   [RFC2863]  McCloghrie, K. and F. Kastenholz, "The Interfaces Group
              MIB", RFC 2863, June 2000.

   [RFC4001]  Daniele, M., Haberman, B., Routhier, S., and J.
              Schoenwaelder, "Textual Conventions for Internet Network
              Addresses", RFC 4001, February 2005.

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



Sivaramu, et al.          Expires April 7, 2006                [Page 74]


Internet-Draft                   PIM MIB                    October 2005


              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 L. Vicisano,
              "Bi-directional Protocol 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.

   [I-D.ietf-pim-anycast-rp]
              Farinacci, D., and Cai, Y., "Anycast-RP using PIM",
              draft-ietf-pim-anycast-rp-04 (work in progress),
              August 2005.

   [RFC3569]  Bhattacharyya, S., "An Overview of Source-Specific
              Multicast (SSM)", RFC 3569, July 2003.

   [RFC3956]  Savola, P. and B. Haberman, "Embedding the Rendezvous
              Point (RP) Address in an IPv6 Multicast Address",
              RFC 3956, November 2004.

8.2  Informative References

   [RFC3410]  Case, J., Mundy, R., Partain, D., and B. Stewart,
              "Introduction and Applicability Statements for Internet-
              Standard Management Framework", RFC 3410, December 2002.

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

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

   [I-D.mcwalter-ip-mcast-mib]
              McWalter, D., Thaler, D., and Kessler, A.,
              "IP Multicast MIB" draft-mcwalter-ip-mcast-mib-00,
              (work in progress), September 2005.







Sivaramu, et al.          Expires April 7, 2006                [Page 75]


Internet-Draft                   PIM MIB                    October 2005


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


   David McWalter
   Data Connection Ltd
   100 Church Street
   Enfield  EN2 6BQ
   United Kingdom

   Email: dmcw@dataconnection.com


   Bharat Joshi
   Infosys Technologies Ltd
   Electronic City
   Bangalore  560 100
   India

   Email: bharat_joshi@infosys.com















Sivaramu, et al.          Expires April 7, 2006                [Page 76]


Internet-Draft                   PIM MIB                    October 2005


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.




Sivaramu, et al.          Expires April 7, 2006                [Page 77]