PIM WG                                                          B. Joshi
Internet-Draft                                 Infosys Technologies Ltd.
Expires: February 24, May 2, 2007                                          R. Bijlani
                                                           Cisco Systems
                                                         August 23,
                                                        October 29, 2006

                        PIM Bootstrap Router MIB
                     draft-ietf-pim-bsr-mib-00.txt
                     draft-ietf-pim-bsr-mib-01.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 February 24, May 2, 2007.

Copyright Notice

   Copyright (C) The Internet Society (2006).

Abstract

   This document 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 Bootstrap Router (BSR) mechanism for PIM.

Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
   2.  The Internet-Standard Management Framework . . . . . . . . . .  3
   3.  Conventions  . . . . . . . . . . . . . . . . . . . . . . . . .  3
   4.  Overview . . . . . . . . . . . . . . . . . . . . . . . . . . .  3
   5.  Definitions  . . . . . . . . . . . . . . . . . . . . . . . . .  4
   6.  Security Considerations  . . . . . . . . . . . . . . . . . . . 17
   7.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 19
   8.  Acknowledgments  . . . . . . . . . . . . . . . . . . . . . . . 19
   9.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 19
     9.1.  Normative References . . . . . . . . . . . . . . . . . . . 19
     9.2.  Informative References . . . . . . . . . . . . . . . . . . 20
   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 21
   Intellectual Property and Copyright Statements . . . . . . . . . . 22

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
   Bootstrap Router (BSR) mechanism for PIM.  [I-D.ietf-pim-sm-v2-new],
   [I-D.ietf-pim-sm-bsr].  [RFC4601], [I-D.ietf-pim-
   sm-bsr].

   This document was created by moving some of the PIM BSR specific MIB
   tables from one of the earlier version of PIM MIB draft [I-D.ietf-
   pim-mib-v2].

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
   [RFC2580].

3.  Conventions

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

4.  Overview

   This MIB module contains four tables.  The tables are:

   1.  The BSR Candidate-RP Table, which contains one row for each
       multicast group address prefix for which the local router is to
       advertise itself as a Candidate-RP.

   2.  The BSR Elected BSR RP-Set Table, which contains one row for each
       Group-to-RP mapping that was received in C-RP advertisements.

   3.  The BSR Candidate-BSR Table, which contains one row for each
       Candidate-BSR configuration for the local router.

   4.  The BSR Elected BSR Table, which contains one row for each
       elected BSR.

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

5.  Definitions

   PIM-BSR-MIB DEFINITIONS ::= BEGIN

   IMPORTS
       MODULE-IDENTITY, OBJECT-TYPE,
       NOTIFICATION-TYPE,
       mib-2, Unsigned32, TimeTicks     FROM SNMPv2-SMI
       RowStatus, TruthValue            FROM SNMPv2-TC
       MODULE-COMPLIANCE, OBJECT-GROUP,
       NOTIFICATION-GROUP               FROM SNMPv2-CONF
       InetAddressType,
       InetAddressPrefixLength,
       InetAddress,
       InetZoneIndex                    FROM INET-ADDRESS-MIB;

   pimBsrMIB MODULE-IDENTITY
       LAST-UPDATED "200610230000Z" -- 23 October 2006
       ORGANIZATION "IETF PIM Working Group"
       CONTACT-INFO
               "Email: pim@ietf.org"
       DESCRIPTION
               "The MIB module for management of the Bootstrap Router
               (BSR) mechanism for PIM routers.

               Copyright (C) The Internet Society (2006).  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     "200608230000Z"     "200610230000Z" -- 23 August October 2006
       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

   --
   -- Top-level structure
   --

   pimBsrMIBObjects

   pimBsrNotifications   OBJECT IDENTIFIER ::= { pimBsrMIB 0 }
   pimBsrObjects         OBJECT IDENTIFIER ::= { pimBsrMIB 1 }
   pimBsrTraps

   --
   -- Conformance Information
   --

   pimBsrConformance OBJECT IDENTIFIER ::= { pimBsrMIBObjects 0 pimBsrMIB 2 }
   pimBsr
   pimBsrCompliances OBJECT IDENTIFIER ::= { pimBsrMIBObjects pimBsrConformance 1 }
   pimBsrGroups      OBJECT IDENTIFIER ::= { pimBsrConformance 2 }

   --
   -- The BSR Candidate-RP Table
   --

   bsrCandidateRPTable

   pimBsrCandidateRPTable OBJECT-TYPE
       SYNTAX     SEQUENCE OF BsrCandidateRPEntry PimBsrCandidateRPEntry
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
               "The (conceptual) table listing the IP multicast group
               prefixes for which the local router is to advertise
               itself as a Candidate-RP."
       ::= { pimBsr pimBsrObjects 1 }

   bsrCandidateRPEntry

   pimBsrCandidateRPEntry OBJECT-TYPE
       SYNTAX     BsrCandidateRPEntry     PimBsrCandidateRPEntry
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
               "An entry (conceptual row) in the bsrCandidateRPTable."
                pimBsrCandidateRPTable."
       INDEX      { bsrCandidateRPAddressType,
                    bsrCandidateRPAddress,
                    bsrCandidateRPGroupAddress,
                    bsrCandidateRPGroupPrefixLength pimBsrCandidateRPAddressType,
                    pimBsrCandidateRPAddress,
                    pimBsrCandidateRPGroupAddress,
                    pimBsrCandidateRPGroupPrefixLength }
       ::= { bsrCandidateRPTable pimBsrCandidateRPTable 1 }

   BsrCandidateRPEntry

   PimBsrCandidateRPEntry ::= SEQUENCE {
       bsrCandidateRPAddressType
       pimBsrCandidateRPAddressType       InetAddressType,
       bsrCandidateRPAddress
       pimBsrCandidateRPAddress           InetAddress,
       bsrCandidateRPGroupAddress
       pimBsrCandidateRPGroupAddress      InetAddress,
       bsrCandidateRPGroupPrefixLength
       pimBsrCandidateRPGroupPrefixLength InetAddressPrefixLength,
       bsrCandidateRPBidir
       pimBsrCandidateRPBidir             TruthValue,
       bsrCandidateRPAdvTimer
       pimBsrCandidateRPAdvTimer          TimeTicks,
       bsrCandidateRPPriority
       pimBsrCandidateRPPriority          Unsigned32,
       bsrCandidateRPAdvInterval
       pimBsrCandidateRPAdvInterval       Unsigned32,
       bsrCandidateRPHoldtime
       pimBsrCandidateRPHoldtime          Unsigned32,
       bsrCandidateRPStatus
       pimBsrCandidateRPStatus            RowStatus
   }

   bsrCandidateRPAddressType

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

   bsrCandidateRPAddress

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

   bsrCandidateRPGroupAddress

   pimBsrCandidateRPGroupAddress OBJECT-TYPE
       SYNTAX     InetAddress (SIZE (4|8|16|20))
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
               "The IP multicast group address which, that, when combined with
               the corresponding value of
               bsrCandidateRPGroupPrefixLength,
               pimBsrCandidateRPGroupPrefixLength, identifies a group
               prefix for which the local router will advertise itself
               as a Candidate-RP. The InetAddressType is given by the
               bsrCandidateRPAddressType
               pimBsrCandidateRPAddressType object."
       ::= { bsrCandidateRPEntry pimBsrCandidateRPEntry 3 }

   bsrCandidateRPGroupPrefixLength

   pimBsrCandidateRPGroupPrefixLength OBJECT-TYPE
       SYNTAX     InetAddressPrefixLength (4..128)
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
               "The multicast group address mask which, that, when combined
               with the corresponding value of
               bsrCandidateRPGroupAddress,
               pimBsrCandidateRPGroupAddress, identifies a group prefix
               for which the local router will advertise itself as a
               Candidate-RP.  The InetAddressType is given by the
               bsrCandidateRPAddressType
               pimBsrCandidateRPAddressType object."
       ::= { bsrCandidateRPEntry pimBsrCandidateRPEntry 4 }

   bsrCandidateRPBidir
   pimBsrCandidateRPBidir OBJECT-TYPE
       SYNTAX     TruthValue
       MAX-ACCESS read-create
       STATUS     current
       DESCRIPTION
               "If this object is set to TRUE, this group range is
               advertised with this RP as a BIDIR-PIM group range. If
               it is set to FALSE, it is advertised as a PIM-SM group
               range."
       DEFVAL { false }
       ::= { bsrCandidateRPEntry pimBsrCandidateRPEntry 5 }

   bsrCandidateRPAdvTimer

   pimBsrCandidateRPAdvTimer OBJECT-TYPE
       SYNTAX     TimeTicks
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
               "The time remaining before the local router next sends
               a Candidate-RP-Advertisement to the elected BSR for
               this zone."
       ::= { bsrCandidateRPEntry pimBsrCandidateRPEntry 6 }

   bsrCandidateRPPriority

   pimBsrCandidateRPPriority OBJECT-TYPE
       SYNTAX     Unsigned32 (0..255)
       MAX-ACCESS read-create
       STATUS     current
       DESCRIPTION
               "The priority for this Candidate RP advertised in
                Candidate-RP-Advertisements."
       REFERENCE "I-D.ietf-pim-sm-bsr section 3.2"
       DEFVAL { 192 }
       ::= { bsrCandidateRPEntry pimBsrCandidateRPEntry 7 }

   bsrCandidateRPAdvInterval

   pimBsrCandidateRPAdvInterval OBJECT-TYPE
       SYNTAX     Unsigned32 (0..26214)
       MAX-ACCESS read-create
       STATUS     current
       DESCRIPTION
               "A Candidate RP generates Candidate-RP-Advertisements
               periodically. This object represents the time interval
               in seconds between two consecutive advertisements."

       REFERENCE "I-D.ietf-pim-sm-bsr section 3.2 and section 5"
       DEFVAL { 60 }

       ::= { bsrCandidateRPEntry pimBsrCandidateRPEntry 8 }

   bsrCandidateRPHoldtime

   pimBsrCandidateRPHoldtime OBJECT-TYPE
       SYNTAX     Unsigned32 (0..65535)
       MAX-ACCESS read-create
       STATUS     current
       DESCRIPTION
               "Holdtime for this Candidate RP. The amount of time (in
               seconds) this Candidate-RP entry is valid."

       REFERENCE "I-D.ietf-pim-sm-bsr section 4.2"
       DEFVAL { 150 }

       ::= { bsrCandidateRPEntry pimBsrCandidateRPEntry 9 }

   bsrCandidateRPStatus

   pimBsrCandidateRPStatus OBJECT-TYPE
       SYNTAX     RowStatus
       MAX-ACCESS read-create
       STATUS     current
       DESCRIPTION
               "The status of this row, by which new entries may be
               created, or old entries deleted from this table."

       ::= { bsrCandidateRPEntry pimBsrCandidateRPEntry 10 }

   --
   -- The BSR Elected BSR RP-Set Table
   --

   bsrElectedBSRRPSetTable

   pimBsrElectedBSRRPSetTable OBJECT-TYPE
       SYNTAX     SEQUENCE OF BsrElectedBSRRPSetEntry PimBsrElectedBSRRPSetEntry
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
               "The (conceptual) table listing BSR-specific information
               about PIM group mappings learned via C-RP advertisements
               or created locally using configurations. This table is
               maintained only on the Elected BSR.

               An Elected BSR uses this table to create Bootstrap
               Messages after applying a local policy to include some
               or all of the group mappings in this table."

       ::= { pimBsr pimBsrObjects 2 }

   bsrElectedBSRRPSetEntry

   pimBsrElectedBSRRPSetEntry OBJECT-TYPE
       SYNTAX     BsrElectedBSRRPSetEntry     PimBsrElectedBSRRPSetEntry
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
               "An entry (conceptual row) in the
                bsrElectedBSRRPSetTable."
                pimBsrElectedBSRRPSetTable."
       INDEX      { bsrElectedBSRGrpMappingAddrType,
                    bsrElectedBSRGrpMappingGrpAddr,
                    bsrElectedBSRGrpMappingGrpPrefixLen,
                    bsrElectedBSRGrpMappingRPAddr pimBsrElectedBSRGrpMappingAddrType,
                    pimBsrElectedBSRGrpMappingGrpAddr,
                    pimBsrElectedBSRGrpMappingGrpPrefixLen,
                    pimBsrElectedBSRGrpMappingRPAddr }
       ::= { bsrElectedBSRRPSetTable pimBsrElectedBSRRPSetTable 1 }
   BsrElectedBSRRPSetEntry

   PimBsrElectedBSRRPSetEntry ::= SEQUENCE {
       bsrElectedBSRGrpMappingAddrType
       pimBsrElectedBSRGrpMappingAddrType      InetAddressType,
       bsrElectedBSRGrpMappingGrpAddr
       pimBsrElectedBSRGrpMappingGrpAddr       InetAddress,
       bsrElectedBSRGrpMappingGrpPrefixLen
       pimBsrElectedBSRGrpMappingGrpPrefixLen  InetAddressPrefixLength,
       bsrElectedBSRGrpMappingRPAddr
       pimBsrElectedBSRGrpMappingRPAddr        InetAddress,
       bsrElectedBSRRPSetPriority
       pimBsrElectedBSRRPSetPriority           Unsigned32,
       bsrElectedBSRRPSetHoldtime
       pimBsrElectedBSRRPSetHoldtime           Unsigned32,
       bsrElectedBSRRPSetExpiryTime
       pimBsrElectedBSRRPSetExpiryTime         TimeTicks,
       bsrElectedBSRRPSetGrpBidir
       pimBsrElectedBSRRPSetGrpBidir           TruthValue
   }

   bsrElectedBSRGrpMappingAddrType

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

   bsrElectedBSRGrpMappingGrpAddr

   pimBsrElectedBSRGrpMappingGrpAddr 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 bsrElectedBSRGrpMappingGrpPrefixLen, pimBsrElectedBSRGrpMappingGrpPrefixLen, gives the
               group prefix for this mapping.  The InetAddressType is
               given by the bsrElectedBSRGrpMappingAddrType pimBsrElectedBSRGrpMappingAddrType object.

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

   bsrElectedBSRGrpMappingGrpPrefixLen

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

   bsrElectedBSRGrpMappingRPAddr

   pimBsrElectedBSRGrpMappingRPAddr 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. The InetAddressType is given by the
               bsrElectedBSRGrpMappingAddrType
               pimBsrElectedBSRGrpMappingAddrType object."
       ::= { bsrElectedBSRRPSetEntry pimBsrElectedBSRRPSetEntry 5 }

   bsrElectedBSRRPSetPriority

   pimBsrElectedBSRRPSetPriority OBJECT-TYPE
       SYNTAX     Unsigned32 (0..255)
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
               "The priority for RP". RP. Numerically higher values for
               this object indicate lower priorities, with the value
               zero denoting the highest priority."
       REFERENCE "I-D.ietf-pim-sm-bsr section 4.1"
       ::= { bsrElectedBSRRPSetEntry pimBsrElectedBSRRPSetEntry 6 }

   bsrElectedBSRRPSetHoldtime

   pimBsrElectedBSRRPSetHoldtime OBJECT-TYPE
       SYNTAX     Unsigned32 (0..65535)
       UNITS      "seconds"
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
               "The holdtime for RP"
       REFERENCE "I-D.ietf-pim-sm-bsr section 4.1"
       ::= { bsrElectedBSRRPSetEntry pimBsrElectedBSRRPSetEntry 7 }

   bsrElectedBSRRPSetExpiryTime

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

   bsrElectedBSRRPSetGrpBidir

   pimBsrElectedBSRRPSetGrpBidir OBJECT-TYPE
       SYNTAX     TruthValue
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
               "If this object is TRUE, this group range with this
               RP is a BIDIR-PIM group range. If it is set to FALSE,
               it is a PIM-SM group range."
       ::= { bsrElectedBSRRPSetEntry pimBsrElectedBSRRPSetEntry 9 }

   --
   -- The BSR Candidate-BSR Table
   --

   bsrCandidateBSRTable

   pimBsrCandidateBSRTable OBJECT-TYPE
       SYNTAX     SEQUENCE OF BsrCandidateBSREntry PimBsrCandidateBSREntry
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
               "The (conceptual) table containing Candidate-BSR
               configuration for the local router.  The table contains
               one row for each zone for which the local router is
               to advertise itself as a Candidate-BSR."
       ::= { pimBsr pimBsrObjects 3 }

   bsrCandidateBSREntry

   pimBsrCandidateBSREntry OBJECT-TYPE
       SYNTAX     BsrCandidateBSREntry     PimBsrCandidateBSREntry
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
               "An entry (conceptual row) in the bsrCandidateBSRTable."
               pimBsrCandidateBSRTable."
       INDEX      { bsrCandidateBSRZoneIndex pimBsrCandidateBSRZoneIndex }
       ::= { bsrCandidateBSRTable pimBsrCandidateBSRTable 1 }

   BsrCandidateBSREntry

   PimBsrCandidateBSREntry ::= SEQUENCE {
       bsrCandidateBSRZoneIndex
       pimBsrCandidateBSRZoneIndex        InetZoneIndex,
       bsrCandidateBSRAddressType
       pimBsrCandidateBSRAddressType      InetAddressType,
       bsrCandidateBSRAddress
       pimBsrCandidateBSRAddress          InetAddress,
       bsrCandidateBSRPriority
       pimBsrCandidateBSRPriority         Unsigned32,
       bsrCandidateBSRHashMaskLength
       pimBsrCandidateBSRHashMaskLength   Unsigned32,
       bsrCandidateBSRElectedBSR
       pimBsrCandidateBSRElectedBSR       TruthValue,
       bsrCandidateBSRBootstrapTimer
       pimBsrCandidateBSRBootstrapTimer   TimeTicks,
       bsrCandidateBSRStatus
       pimBsrCandidateBSRStatus           RowStatus
   }

   bsrCandidateBSRZoneIndex

   pimBsrCandidateBSRZoneIndex OBJECT-TYPE
       SYNTAX     InetZoneIndex
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
               "The zone index uniquely identifies the zone on
               a device with to which this Candidate BSR is attached.
               There is one entry for each zone in ipMcastZoneTable.
               Scope-level information for this zone can be extracted
               from ipMcastZoneTable in IP MCAST MIB"
       ::= { bsrCandidateBSREntry pimBsrCandidateBSREntry 1 }

   bsrCandidateBSRAddressType

   pimBsrCandidateBSRAddressType OBJECT-TYPE
       SYNTAX     InetAddressType
       MAX-ACCESS read-create
       STATUS     current
       DESCRIPTION
               "The address type of the Candidate-BSR."
       ::= { bsrCandidateBSREntry pimBsrCandidateBSREntry 2 }

   bsrCandidateBSRAddress

   pimBsrCandidateBSRAddress OBJECT-TYPE
       SYNTAX     InetAddress
       MAX-ACCESS read-create
       STATUS     current
       DESCRIPTION
               "The (unicast) address which that the local router will
               use to advertise itself as a Candidate-BSR.  The
               InetAddressType is given by the
               bsrCandidateBSRAddressType
               pimBsrCandidateBSRAddressType object."
       ::= { bsrCandidateBSREntry pimBsrCandidateBSREntry 3 }

   bsrCandidateBSRPriority

   pimBsrCandidateBSRPriority OBJECT-TYPE
       SYNTAX     Unsigned32 (0..255)
       MAX-ACCESS read-create
       STATUS     current
       DESCRIPTION
               "The priority value for the local router as a
               Candidate-BSR for this zone. Numerically higher
               values for this object indicate higher priorities."
       DEFVAL { 0 }
       ::= { bsrCandidateBSREntry pimBsrCandidateBSREntry 4 }

   bsrCandidateBSRHashMaskLength

   pimBsrCandidateBSRHashMaskLength OBJECT-TYPE
       SYNTAX     Unsigned32 (0..128)
       MAX-ACCESS read-create
       STATUS     current
       DESCRIPTION
               "The hash mask length (used in the RP hash function)
               that the local router will advertise in its Bootstrap
               messages for this zone.  This object defaults
               to 30 if bsrCandidateBSRAddressType pimBsrCandidateBSRAddressType is 'ipv4' or
               'ipv4z' , and defaults to 126 if bsrCandidateBSRAddressType
               pimBsrCandidateBSRAddressType is 'ipv6' or 'ipv6z'."
       ::= { bsrCandidateBSREntry pimBsrCandidateBSREntry 5 }
   bsrCandidateBSRElectedBSR

   pimBsrCandidateBSRElectedBSR OBJECT-TYPE
       SYNTAX     TruthValue
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
               "Whether the local router is the elected BSR for this
               zone."
       ::= { bsrCandidateBSREntry pimBsrCandidateBSREntry 6 }

   bsrCandidateBSRBootstrapTimer

   pimBsrCandidateBSRBootstrapTimer OBJECT-TYPE
       SYNTAX     TimeTicks
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
               "The time remaining before the local router next
               originates a Bootstrap message for this zone.
               Value of this object is zero if
               bsrCandidateBSRElectedBSR
               pimBsrCandidateBSRElectedBSR is 'FALSE'."
       ::= { bsrCandidateBSREntry pimBsrCandidateBSREntry 7 }

   bsrCandidateBSRStatus

   pimBsrCandidateBSRStatus OBJECT-TYPE
       SYNTAX     RowStatus
       MAX-ACCESS read-create
       STATUS     current
       DESCRIPTION
               "The status of this row, by which new entries may
               be created, or old entries deleted from this table."
       ::= { bsrCandidateBSREntry pimBsrCandidateBSREntry 8 }

   --
   -- The BSR Elected-BSR Table
   --

   bsrElectedBSRTable

   pimBsrElectedBSRTable OBJECT-TYPE
       SYNTAX     SEQUENCE OF BsrElectedBSREntry PimBsrElectedBSREntry
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
               "The (conceptual) table containing information about
               elected BSRs.  The table contains one row for each
               zone for which there is an elected BSR."
       ::= { pimBsr pimBsrObjects 4 }

   bsrElectedBSREntry

   pimBsrElectedBSREntry OBJECT-TYPE
       SYNTAX     BsrElectedBSREntry     PimBsrElectedBSREntry
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
               "An entry (conceptual row) in the bsrElectedBSRTable."
                pimBsrElectedBSRTable."
       INDEX      { bsrElectedBSRZoneIndex pimBsrElectedBSRZoneIndex }
       ::= { bsrElectedBSRTable pimBsrElectedBSRTable 1 }

   BsrElectedBSREntry

   PimBsrElectedBSREntry ::= SEQUENCE {
       bsrElectedBSRZoneIndex
       pimBsrElectedBSRZoneIndex        InetZoneIndex,
       bsrElectedBSRAddressType
       pimBsrElectedBSRAddressType      InetAddressType,
       bsrElectedBSRAddress
       pimBsrElectedBSRAddress          InetAddress,
       bsrElectedBSRPriority
       pimBsrElectedBSRPriority         Unsigned32,
       bsrElectedBSRHashMaskLength
       pimBsrElectedBSRHashMaskLength   Unsigned32,
       bsrElectedBSRExpiryTime
       pimBsrElectedBSRExpiryTime       TimeTicks
   }

   bsrElectedBSRZoneIndex

   pimBsrElectedBSRZoneIndex OBJECT-TYPE
       SYNTAX     InetZoneIndex
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
               "The zone index uniquely identifies the zone on a
               device with to which this Elected BSR is attached. There
               is one entry for each zone in ipMcastZoneTable.
               Scope-level information for this zone can be extracted
               from ipMcastZoneTable in IP MCAST MIB" MIB."
       ::= { bsrElectedBSREntry pimBsrElectedBSREntry 1 }

   bsrElectedBSRAddressType

   pimBsrElectedBSRAddressType OBJECT-TYPE
       SYNTAX     InetAddressType
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION
               "The address type of the elected BSR."
       ::= { bsrElectedBSREntry pimBsrElectedBSREntry 2 }

   bsrElectedBSRAddress

   pimBsrElectedBSRAddress OBJECT-TYPE
       SYNTAX     InetAddress (SIZE (4|8|16|20))
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
               "The (unicast) address of the elected BSR.  The
               InetAddressType is given by the bsrElectedBSRAddressType
               pimBsrElectedBSRAddressType object."
       ::= { bsrElectedBSREntry pimBsrElectedBSREntry 3 }

   bsrElectedBSRPriority

   pimBsrElectedBSRPriority OBJECT-TYPE
       SYNTAX     Unsigned32 (0..255)
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
               "The priority value for the elected BSR for this address
               type.  Numerically higher values for this object indicate
               higher priorities."
       ::= { bsrElectedBSREntry pimBsrElectedBSREntry 4 }

   bsrElectedBSRHashMaskLength

   pimBsrElectedBSRHashMaskLength OBJECT-TYPE
       SYNTAX     Unsigned32 (0..128)
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
               "The hash mask length (used in the RP hash function)
               advertised by the elected BSR for this zone."
       ::= { bsrElectedBSREntry pimBsrElectedBSREntry 5 }

   bsrElectedBSRExpiryTime

   pimBsrElectedBSRExpiryTime OBJECT-TYPE
       SYNTAX     TimeTicks
       MAX-ACCESS read-only
       STATUS     current
       DESCRIPTION
               "The minimum time remaining before the elected BSR for
               this zone will be declared down."
       ::= { bsrElectedBSREntry pimBsrElectedBSREntry 6 }

   --
   -- PIM BSR Traps Notifications
   --

   bsrElectedBSRLostElection

   pimBsrElectedBSRLostElection   NOTIFICATION-TYPE
       OBJECTS { bsrCandidateBSRElectedBSR pimBsrCandidateBSRElectedBSR }
       STATUS     current
       DESCRIPTION
               "A bsrElectedBSRLostElection trap pimBsrElectedBSRLostElection notification should be
               generated when current E-BSR lost election to a new
               Candidate BSR. Only an E-BSR should generate this trap.
               notification.

               This notification is generated when
               bsrCandidateBSRElectedBSR
               pimBsrCandidateBSRElectedBSR becomes FALSE."

       REFERENCE "I-D.ietf-pim-sm-bsr section 3.1"
       ::= { pimBsrTraps pimBsrNotifications 1 }

   bsrCandidateBSRWinElection

   pimBsrCandidateBSRWinElection   NOTIFICATION-TYPE
       OBJECTS { bsrCandidateBSRElectedBSR pimBsrCandidateBSRElectedBSR }
       STATUS     current
       DESCRIPTION
               "A bsrCandidateBSRWinElection trap pimBsrCandidateBSRWinElection notification should be
               generated when a C-BSR wins BSR Election. Only an
               E-BSR should generate this trap. notification.

               This notification is generated when
               bsrCandidateBSRElectedBSR
               pimBsrCandidateBSRElectedBSR becomes TRUE" TRUE."

       REFERENCE "I-D.ietf-pim-sm-bsr section 3.1"
       ::= { pimBsrTraps 2 }

   --
   -- Conformance Information
   --

   pimBsrMIBConformance OBJECT IDENTIFIER ::= { pimBsrMIB 2 }
   pimBsrMIBCompliances OBJECT IDENTIFIER ::= { pimBsrMIBConformance 1 }
   pimBsrMIBGroups      OBJECT IDENTIFIER ::= { pimBsrMIBConformance pimBsrNotifications 2 }

   --
   -- Compliance Statements
   --

   pimBsrMIBCompliance

   pimBsrCompliance MODULE-COMPLIANCE
       STATUS  current
       DESCRIPTION
               "The compliance statement for PIM routers which that implement
               the Bootstrap Router (BSR) mechanism."
       MODULE  -- this module
       MANDATORY-GROUPS { pimBsrObjectGroup }

         GROUP   pimBsrDiagnosticsGroup
         DESCRIPTION
             "This group is optional."

       ::= { pimBsrMIBCompliances pimBsrCompliances 1 }

   --
   -- Units of Conformance
   --

   pimBsrObjectGroup OBJECT-GROUP
       OBJECTS { bsrCandidateRPBidir,
                 bsrCandidateRPAdvTimer,
                 bsrCandidateRPPriority,
                 bsrCandidateRPAdvInterval,
                 bsrCandidateRPHoldtime,
                 bsrCandidateRPStatus,
                 bsrElectedBSRRPSetPriority,
                 bsrElectedBSRRPSetHoldtime,
                 bsrElectedBSRRPSetExpiryTime,
                 bsrElectedBSRRPSetGrpBidir,
                 bsrCandidateBSRAddress,
                 bsrCandidateBSRPriority,
                 bsrCandidateBSRHashMaskLength,
                 bsrCandidateBSRElectedBSR,
                 bsrCandidateBSRBootstrapTimer,
                 bsrCandidateBSRStatus,
                 bsrElectedBSRAddress,
                 bsrElectedBSRPriority,
                 bsrElectedBSRHashMaskLength,
                 bsrElectedBSRExpiryTime pimBsrCandidateRPBidir,
                 pimBsrCandidateRPAdvTimer,
                 pimBsrCandidateRPPriority,
                 pimBsrCandidateRPAdvInterval,
                 pimBsrCandidateRPHoldtime,
                 pimBsrCandidateRPStatus,
                 pimBsrElectedBSRRPSetPriority,
                 pimBsrElectedBSRRPSetHoldtime,
                 pimBsrElectedBSRRPSetExpiryTime,
                 pimBsrElectedBSRRPSetGrpBidir,
                 pimBsrCandidateBSRAddress,
                 pimBsrCandidateBSRPriority,
                 pimBsrCandidateBSRHashMaskLength,
                 pimBsrCandidateBSRElectedBSR,
                 pimBsrCandidateBSRBootstrapTimer,
                 pimBsrCandidateBSRStatus,
                 pimBsrElectedBSRAddress,
                 pimBsrElectedBSRPriority,
                 pimBsrElectedBSRHashMaskLength,
                 pimBsrElectedBSRExpiryTime }
       STATUS  current
       DESCRIPTION
               "A collection of objects for managing the Bootstrap
               Router (BSR) mechanism for PIM routers."
       ::= { pimBsrMIBGroups pimBsrGroups 1 }

   pimBsrDiagnosticsGroup NOTIFICATION-GROUP
       NOTIFICATIONS  { bsrElectedBSRLostElection,
                        bsrCandidateBSRWinElection pimBsrElectedBSRLostElection,
                        pimBsrCandidateBSRWinElection }
       STATUS  current
       DESCRIPTION
               "Objects providing additional diagnostics related to
               the Bootstrap Router (BSR) mechanism for PIM routers."
       ::= { pimBsrMIBGroups pimBsrGroups 2 }

   END

6.  Security Considerations

   SNMP versions prior to SNMPv3 did not include adequate security.
   Even if the network itself is secure (for example by using IPSec),
   there is still no control over whom who on the secure network is allowed
   to access (read/change/create/delete) the objects in this MIB module.
   The support for SET operations in a non-secure environment without
   proper protection can have a negative effect on network operations.

   In this MIB module, possible effects that can be induced by SET
   operations on writable objects include:

   o  A new Candidate BSR with high priority or modification of priority
      of an existing candidate BSR can takeover take over the functionality of
      Elected BSR BSR, which can prevent and disrupt the services.

   o  A new Candidate RP with lower priority or modification of priority
      of an existing Candidate RP can force other routers to select
      itself for a particular group prefix.  This can prevent and
      disrupt the services provided through this group prefix.

   The following are the read-write and read-create objects defined in
   this MIB module:

   bsrCandidateRPBidir
   bsrCandidateRPPriority
   bsrCandidateRPAdvInterval
   bsrCandidateRPHoldtime
   bsrCandidateBSRAddressType
   bsrCandidateBSRAddress
   bsrCandidateBSRPriority
   bsrCandidateBSRHashMaskLength

   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.

   In this MIB module, possible effects that can be induced by GET
   and/or NOTIFY operations include:

   o  Determination of Elected BSR, Candidate BSRs and Candidate RPs in
      the Multicast Network topology.  This information may be sensitive
      and may be used in preparation for DoS attacks including any of
      the attacks described above.

   SNMP versions prior to SNMPv3 did not include adequate security.
   Even if the network itself is secure (for example by using IPSec),
   there is still no control over whom on the secure network is allowed
   to access (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 access (read/change/create/delete) them.

7.  IANA Considerations

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

8.  Acknowledgments

   This MIB module is based on the original work in
   [I-D.ietf-pim-mib-v2] by R. Sivaramu, J. Lingard and B. Joshi.

   Many thanks to Stig, Stig Venaas, Nidhi and Bhaskar, David Mcwalter Mcwalter, David
   Harrington and J. W. Atwood for their feedback on this MIB module.

   Suggested IPv6 multicast MIBs by R. Sivaramu and R. Raghunarayan have
   been used for comparison while editing this MIB module.

9.  References

9.1.  Normative References

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

   [RFC2365]  Meyer, D., "Administratively Scoped IP Multicast", BCP 23,
              RFC 2365, July 1998.

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

   [RFC4601]  Fenner, B., Handley, M., Holbrook, H., and I. Kouvelas,
              "Protocol Independent Multicast - Sparse Mode (PIM-SM):
              Protocol Specification (Revised)",
              draft-ietf-pim-sm-v2-new-12 (work in progress),
              March RFC 4601, August 2006.

   [I-D.ietf-pim-mib-v2]
              Lingard, J., "Protocol Independent Multicast MIB",
              draft-ietf-pim-mib-v2-06 (work in progress), April 2006.

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

   [I-D.ietf-mboned-ip-mcast-mib]
              McWalter, D., "IP Multicast MIB",
              draft-ietf-mboned-ip-mcast-mib-03 (work in progress),
              August 2006.

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

Authors' Addresses

   Bharat joshi Joshi
   Infosys Technologies Ltd.
   44 Electronics City, Hosur Road
   Bangalore  560 100
   India

   Email: bharat_joshi@infosys.com
   URI:   http://www.infosys.com/

   Raina Bijlani
   Cisco Systems
   170 W.Tasman Drive
   San Jose  CA 95134
   USA

   Email: rainab@cisco.com

Intellectual Property Statement

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

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

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

Disclaimer of Validity

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

Copyright Statement

   Copyright (C) The Internet Society (2006).  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.