PIM-BSR-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE,
    NOTIFICATION-TYPE,
    mib-2, Unsigned32, TimeTicks     FROM SNMPv2-SMI
    RowStatus, TruthValue,
    StorageType                      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 "200805280000Z" -- 28 May 2008
    ORGANIZATION
            "IETF Protocol Independent Multicast (PIM) Working Group"
    CONTACT-INFO
            "Email: pim@ietf.org
             WG charter:
             http://www.ietf.org/html.charters/pim-charter.html"
    DESCRIPTION
            "The MIB module for management of the Bootstrap Router
            (BSR) mechanism for PIM routers.

            Copyright (C) The IETF Trust (2008).  This version
            of this MIB module is part of RFC 5240; see the RFC
            itself for full legal notices."
    REVISION     "200805280000Z" -- 28 May 2008
    DESCRIPTION  "Initial version, published as RFC 5240."
    ::= { mib-2 172 }

--
-- Top-level structure
--

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

--
-- Conformance Information
--

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

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

pimBsrCandidateRPTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF 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."
    ::= { pimBsrObjects 1 }

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

PimBsrCandidateRPEntry ::= SEQUENCE {
    pimBsrCandidateRPAddressType       InetAddressType,
    pimBsrCandidateRPAddress           InetAddress,
    pimBsrCandidateRPGroupAddress      InetAddress,
    pimBsrCandidateRPGroupPrefixLength InetAddressPrefixLength,
    pimBsrCandidateRPBidir             TruthValue,
    pimBsrCandidateRPAdvTimer          TimeTicks,
    pimBsrCandidateRPPriority          Unsigned32,
    pimBsrCandidateRPAdvInterval       Unsigned32,
    pimBsrCandidateRPHoldtime          Unsigned32,
    pimBsrCandidateRPStatus            RowStatus,
    pimBsrCandidateRPStorageType       StorageType
}

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

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

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

            This address object is only significant up to
            pimBsrCandidateRPGroupPrefixLength 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."
    ::= { pimBsrCandidateRPEntry 3 }

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

            pimBsrCandidateRPAddressType object."
    ::= { pimBsrCandidateRPEntry 4 }

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 }
    ::= { pimBsrCandidateRPEntry 5 }

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

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 "RFC 5059, section 3.2"
    DEFVAL { 192 }
    ::= { pimBsrCandidateRPEntry 7 }

pimBsrCandidateRPAdvInterval OBJECT-TYPE
    SYNTAX     Unsigned32 (1..26214)
    UNITS      "seconds"
    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 "RFC 5059, sections 3.2 and 5"
    DEFVAL { 60 }
    ::= { pimBsrCandidateRPEntry 8 }

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

            This object's value can be zero only when this C-RP is
            shutting down."
    REFERENCE "RFC 5059, section 4.2"
    DEFVAL { 150 }
    ::= { pimBsrCandidateRPEntry 9 }

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.

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

            All writable objects in this entry can be modified
            when the status of this entry is active(1)."
    ::= { pimBsrCandidateRPEntry 10 }

pimBsrCandidateRPStorageType OBJECT-TYPE
    SYNTAX     StorageType
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The storage type for this row.  Rows having the value
            'permanent' need not allow write-access to any columnar
            objects in the row."
      DEFVAL { nonVolatile }
   ::= { pimBsrCandidateRPEntry 11 }

--

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

pimBsrElectedBSRRPSetTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF 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."
    ::= { pimBsrObjects 2 }

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

PimBsrElectedBSRRPSetEntry ::= SEQUENCE {
    pimBsrElectedBSRGrpMappingAddrType      InetAddressType,
    pimBsrElectedBSRGrpMappingGrpAddr       InetAddress,
    pimBsrElectedBSRGrpMappingGrpPrefixLen  InetAddressPrefixLength,
    pimBsrElectedBSRGrpMappingRPAddr        InetAddress,
    pimBsrElectedBSRRPSetPriority           Unsigned32,
    pimBsrElectedBSRRPSetHoldtime           Unsigned32,
    pimBsrElectedBSRRPSetExpiryTime         TimeTicks,
    pimBsrElectedBSRRPSetGrpBidir           TruthValue
}

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

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

            This address object is only significant up to
            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."
    ::= { pimBsrElectedBSRRPSetEntry 3 }

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

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
            pimBsrElectedBSRGrpMappingAddrType object."
    ::= { pimBsrElectedBSRRPSetEntry 5 }

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

pimBsrElectedBSRRPSetHoldtime OBJECT-TYPE
    SYNTAX     Unsigned32 (0..65535)
    UNITS      "seconds"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The holdtime for RP"
    REFERENCE "RFC 5059, section 4.1"
    ::= { pimBsrElectedBSRRPSetEntry 7 }

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

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

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

pimBsrCandidateBSRTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF 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."
    ::= { pimBsrObjects 3 }

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

PimBsrCandidateBSREntry ::= SEQUENCE {
    pimBsrCandidateBSRZoneIndex        InetZoneIndex,
    pimBsrCandidateBSRAddressType      InetAddressType,
    pimBsrCandidateBSRAddress          InetAddress,
    pimBsrCandidateBSRPriority         Unsigned32,
    pimBsrCandidateBSRHashMaskLength   Unsigned32,
    pimBsrCandidateBSRElectedBSR       TruthValue,
    pimBsrCandidateBSRBootstrapTimer   TimeTicks,
    pimBsrCandidateBSRStatus           RowStatus,
    pimBsrCandidateBSRStorageType      StorageType
}

pimBsrCandidateBSRZoneIndex OBJECT-TYPE
    SYNTAX     InetZoneIndex (1..4294967295)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The zone index uniquely identifies the zone on a
            device 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 Multicast MIB [RFC5132].

            Zero is a special value used to request the default zone
            for a given scope.  Zero is not a valid value for this
            object."
    ::= { pimBsrCandidateBSREntry 1 }

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

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

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 }
    ::= { pimBsrCandidateBSREntry 4 }

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 pimBsrCandidateBSRAddressType is 'ipv4' or
            'ipv4z' , and defaults to 126 if
            pimBsrCandidateBSRAddressType is 'ipv6' or 'ipv6z'."
    ::= { pimBsrCandidateBSREntry 5 }

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

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
            pimBsrCandidateBSRElectedBSR is 'FALSE'."
    ::= { pimBsrCandidateBSREntry 7 }

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.

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

            All writable objects in this entry can be modified
            when the status of this entry is active(1)."
    ::= { pimBsrCandidateBSREntry 8 }

pimBsrCandidateBSRStorageType OBJECT-TYPE
    SYNTAX     StorageType
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The storage type for this row.  Rows having the value
            'permanent' need not allow write-access to any columnar
            objects in the row."
      DEFVAL { nonVolatile }
   ::= { pimBsrCandidateBSREntry 9 }

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

pimBsrElectedBSRTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF 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."
    ::= { pimBsrObjects 4 }

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

PimBsrElectedBSREntry ::= SEQUENCE {
    pimBsrElectedBSRZoneIndex        InetZoneIndex,
    pimBsrElectedBSRAddressType      InetAddressType,
    pimBsrElectedBSRAddress          InetAddress,
    pimBsrElectedBSRPriority         Unsigned32,
    pimBsrElectedBSRHashMaskLength   Unsigned32,
    pimBsrElectedBSRExpiryTime       TimeTicks
}

pimBsrElectedBSRZoneIndex OBJECT-TYPE
    SYNTAX     InetZoneIndex (1..4294967295)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The zone index uniquely identifies the zone on a
            device 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 Multicast MIB [RFC5132].

            Zero is a special value used to request the default zone
            for a given scope.  Zero is not a valid value for this
            object."
    ::= { pimBsrElectedBSREntry 1 }

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

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
            pimBsrElectedBSRAddressType object."
    ::= { pimBsrElectedBSREntry 3 }

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

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

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

--
-- PIM BSR Notifications
--

pimBsrElectedBSRLostElection   NOTIFICATION-TYPE
    OBJECTS { pimBsrElectedBSRAddressType,
              pimBsrElectedBSRAddress,
              pimBsrElectedBSRPriority }
    STATUS     current
    DESCRIPTION
            "A pimBsrElectedBSRLostElection notification should be
            generated when current E-BSR lost election to a new
            Candidate-BSR.  Only an E-BSR should generate this
            notification.

            This notification is generated when
            pimBsrCandidateBSRElectedBSR becomes FALSE."
    REFERENCE "RFC 5059, section 3.1"
    ::= { pimBsrNotifications 1 }

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

            This notification is generated when
            pimBsrCandidateBSRElectedBSR becomes TRUE."
    REFERENCE "RFC 5059, section 3.1"
    ::= { pimBsrNotifications 2 }

--
-- Compliance Statements
--

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

      GROUP   pimBsrDiagnosticsGroup
      DESCRIPTION
          "This group is optional."
    ::= { pimBsrCompliances 1 }

--
-- Units of Conformance
--

pimBsrObjectGroup OBJECT-GROUP

    OBJECTS { pimBsrCandidateRPBidir,
              pimBsrCandidateRPAdvTimer,
              pimBsrCandidateRPPriority,
              pimBsrCandidateRPAdvInterval,
              pimBsrCandidateRPHoldtime,
              pimBsrCandidateRPStatus,
              pimBsrCandidateRPStorageType,
              pimBsrElectedBSRRPSetPriority,
              pimBsrElectedBSRRPSetHoldtime,
              pimBsrElectedBSRRPSetExpiryTime,
              pimBsrElectedBSRRPSetGrpBidir,
              pimBsrCandidateBSRAddress,
              pimBsrCandidateBSRAddressType,
              pimBsrCandidateBSRPriority,
              pimBsrCandidateBSRHashMaskLength,
              pimBsrCandidateBSRElectedBSR,
              pimBsrCandidateBSRBootstrapTimer,
              pimBsrCandidateBSRStatus,
              pimBsrCandidateBSRStorageType,
              pimBsrElectedBSRAddress,
              pimBsrElectedBSRAddressType,
              pimBsrElectedBSRPriority,
              pimBsrElectedBSRHashMaskLength,
              pimBsrElectedBSRExpiryTime }
    STATUS  current
    DESCRIPTION
            "A collection of objects for managing the Bootstrap
            Router (BSR) mechanism for PIM routers."
    ::= { pimBsrGroups 1 }

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

END
