-- Copyright (C) 2008-2014 Super Micro Computer Inc. All Rights Reserved

-- $Id: fspimstd.mib,v 1.10 2013/03/20 13:25:19 siva Exp $
SUPERMICRO-PIMCMN2-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE,
    NOTIFICATION-TYPE,
    Integer32, IpAddress, TimeTicks,
    Gauge32, Counter32, enterprises		     FROM SNMPv2-SMI
    TEXTUAL-CONVENTION, RowStatus, TruthValue,
    DisplayString		     FROM SNMPv2-TC
    InetAddressType, InetAddress                   FROM INET-ADDRESS-MIB
    InterfaceIndex                   FROM IF-MIB
    MODULE-COMPLIANCE, OBJECT-GROUP,
    NOTIFICATION-GROUP		     FROM SNMPv2-CONF;

fsPimStdMIB MODULE-IDENTITY
    LAST-UPDATED "201209050000Z"
    ORGANIZATION "Super Micro Computer Inc."
    CONTACT-INFO "support@Supermicro.com"
    DESCRIPTION	 "The MIB module for management of PIM Routers
                    Initial Version"
    REVISION "201209050000Z"
    DESCRIPTION	 "The MIB module for management of PIM Routers
                    Initial Version"
	 ::= { enterprises supermicro-computer-inc(10876) super-switch(101) basic(1) 114 }

fsPimStdMIBObjects OBJECT IDENTIFIER ::= { fsPimStdMIB 1 }   

fsPimStdScalars     OBJECT IDENTIFIER ::= { fsPimStdMIBObjects 1 }
fsPimStdTables     OBJECT IDENTIFIER ::= { fsPimStdMIBObjects 2 }


fsPimStdJoinPruneInterval OBJECT-TYPE
    SYNTAX     Integer32
    UNITS      "seconds"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The default interval at which periodic PIM-SM Join/Prune
            messages are to be sent."
    ::= { fsPimStdScalars 1 }

-- The PIM Interface Table

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

fsPimStdInterfaceEntry OBJECT-TYPE
    SYNTAX     FsPimStdInterfaceEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the pimInterfaceTable."
    INDEX      { fsPimStdInterfaceIfIndex, fsPimStdInterfaceAddrType}
    ::= { fsPimStdInterfaceTable 1 }

FsPimStdInterfaceEntry ::= SEQUENCE {

    fsPimStdInterfaceIfIndex            Integer32,
    fsPimStdInterfaceAddrType           InetAddressType,
    fsPimStdInterfaceAddress            InetAddress,
    fsPimStdInterfaceNetMaskLen         Integer32,
    fsPimStdInterfaceMode               INTEGER,
    fsPimStdInterfaceDR                 InetAddress,
    fsPimStdInterfaceHelloInterval      Integer32,
    fsPimStdInterfaceStatus             RowStatus,
    fsPimStdInterfaceJoinPruneInterval  Integer32,
    fsPimStdInterfaceCBSRPreference     Integer32
}

fsPimStdInterfaceIfIndex OBJECT-TYPE
    SYNTAX     Integer32 (1..65535)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The ifIndex value of this PIM interface."
    ::= { fsPimStdInterfaceEntry 1 }


fsPimStdInterfaceAddrType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
	    "The IP address type of the PIM Interface for which this entry
	    contains information."
    ::= { fsPimStdInterfaceEntry 2 }


fsPimStdInterfaceAddress OBJECT-TYPE
    SYNTAX     InetAddress
    MAX-ACCESS read-only
    STATUS     current

    DESCRIPTION
            "The IP address of the PIM interface."
    ::= { fsPimStdInterfaceEntry 3 }

fsPimStdInterfaceNetMaskLen OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The network mask for the IP address of the PIM interface."
    ::= { fsPimStdInterfaceEntry 4 }

fsPimStdInterfaceMode OBJECT-TYPE
    SYNTAX     INTEGER { dense(1), sparse(2), sparseDense(3) }
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The configured mode of this PIM interface.  A value of
            sparseDense is only valid for PIMv1."
    DEFVAL     { dense }
    ::= { fsPimStdInterfaceEntry 5 }

fsPimStdInterfaceDR OBJECT-TYPE
    SYNTAX     InetAddress
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The Designated Router on this PIM interface.  For point-to-
            point interfaces, this object has the value 0.0.0.0."
    ::= { fsPimStdInterfaceEntry 6 }

fsPimStdInterfaceHelloInterval OBJECT-TYPE
    SYNTAX     Integer32
    UNITS      "seconds"
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The frequency at which PIM Hello messages are transmitted
            on this interface."
    DEFVAL     { 30 }
    ::= { fsPimStdInterfaceEntry 7 }

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

fsPimStdInterfaceJoinPruneInterval OBJECT-TYPE
    SYNTAX     Integer32
    UNITS      "seconds"
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The frequency at which PIM Join/Prune messages are
            transmitted on this PIM interface.  The default value of
            this object is the pimJoinPruneInterval."
    ::= { fsPimStdInterfaceEntry 9 }

fsPimStdInterfaceCBSRPreference OBJECT-TYPE
    SYNTAX     Integer32 (-1..255)
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The preference value for the local interface as a candidate
            bootstrap router.  The value of -1 is used to indicate that
            the local interface is not a candidate BSR interface."
    DEFVAL     { 0 }
    ::= { fsPimStdInterfaceEntry 10 }


-- The PIM Neighbor Table

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

fsPimStdNeighborEntry OBJECT-TYPE
    SYNTAX     FsPimStdNeighborEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the pimNeighborTable."
    INDEX      { fsPimStdNeighborAddrType, fsPimStdNeighborAddress }
    ::= { fsPimStdNeighborTable 1 }

FsPimStdNeighborEntry ::= SEQUENCE {

    fsPimStdNeighborAddrType     InetAddressType,
    fsPimStdNeighborAddress      InetAddress,
    fsPimStdNeighborIfIndex      Integer32,
    fsPimStdNeighborUpTime       TimeTicks,
    fsPimStdNeighborExpiryTime   TimeTicks,
    fsPimStdNeighborMode         INTEGER
}

fsPimStdNeighborAddrType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
	    "The address Type of the PIM neighbor for which this entry
	    contains information."
    ::= { fsPimStdNeighborEntry 1 }


fsPimStdNeighborAddress OBJECT-TYPE
    SYNTAX     InetAddress
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The IP address of the PIM neighbor for which this entry
            contains information."
    ::= { fsPimStdNeighborEntry 2 }

fsPimStdNeighborIfIndex OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The value of ifIndex for the interface used to reach this
            PIM neighbor."
    ::= { fsPimStdNeighborEntry 3 }

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

fsPimStdNeighborExpiryTime OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The minimum time remaining before this PIM neighbor will be
            aged out."
    ::= { fsPimStdNeighborEntry 5 }

fsPimStdNeighborMode OBJECT-TYPE
    SYNTAX     INTEGER { dense(1), sparse(2) }
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
            "The active PIM mode of this neighbor.  This object is
            deprecated for PIMv2 routers since all neighbors on the
            interface must be either dense or sparse as determined by
            the protocol running on the interface."
    ::= { fsPimStdNeighborEntry 6 }

--
-- The PIM IP Multicast Route Table
--

fsPimStdIpMRouteTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF FsPimStdIpMRouteEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The (conceptual) table listing PIM-specific information on
            a subset of the rows of the ipMRouteTable defined in the IP
            Multicast MIB."
    ::= { fsPimStdTables 3 }

fsPimStdIpMRouteEntry OBJECT-TYPE
    SYNTAX     FsPimStdIpMRouteEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the pimIpMRouteTable.  There
            is one entry per entry in the ipMRouteTable whose incoming
            interface is running PIM."
    INDEX      { fsPimStdIpMRouteAddrType, fsPimStdIpMRouteGroup, fsPimStdIpMRouteSource, 
                 fsPimStdIpMRouteSourceMaskLen }
    ::= { fsPimStdIpMRouteTable 1 }

FsPimStdIpMRouteEntry ::= SEQUENCE {
    fsPimStdIpMRouteAddrType        InetAddressType,
    fsPimStdIpMRouteGroup           InetAddress,
    fsPimStdIpMRouteSource          InetAddress,
    fsPimStdIpMRouteSourceMaskLen   Integer32,
    fsPimStdIpMRouteUpstreamAssertTimer   TimeTicks,
    fsPimStdIpMRouteAssertMetric          Integer32,
    fsPimStdIpMRouteAssertMetricPref      Integer32,
    fsPimStdIpMRouteAssertRPTBit          TruthValue,
    fsPimStdIpMRouteFlags                 BITS
}

fsPimStdIpMRouteAddrType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
	    "The IP family in which the route belongs to."
    ::= { fsPimStdIpMRouteEntry 2 }

fsPimStdIpMRouteGroup OBJECT-TYPE
    SYNTAX     InetAddress
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
	    "The IP multicast group address for which this entry
	    contains multicast routing information."
    ::= { fsPimStdIpMRouteEntry 3 }

fsPimStdIpMRouteSource OBJECT-TYPE
    SYNTAX     InetAddress
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
	    "The network address which when combined with the
	    corresponding value of ipMRouteSourceMask identifies the
	    sources for which this entry contains multicast routing
	    information."
    ::= { fsPimStdIpMRouteEntry 4 }

fsPimStdIpMRouteSourceMaskLen OBJECT-TYPE
    SYNTAX     Integer32(0..128)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
	    "The network mask which when combined with the corresponding
	    value of ipMRouteSource identifies the sources for which
	    this entry contains multicast routing information."
    ::= { fsPimStdIpMRouteEntry 5 }


fsPimStdIpMRouteUpstreamAssertTimer OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The time remaining before the router changes its upstream
            neighbor back to its RPF neighbor.  This timer is called the
            Assert timer in the PIM Sparse and Dense mode specification.
            A value of 0 indicates that no Assert has changed the
            upstream neighbor away from the RPF neighbor."
    ::= { fsPimStdIpMRouteEntry 6 }

fsPimStdIpMRouteAssertMetric OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The metric advertised by the assert winner on the upstream
            interface, or 0 if no such assert is in received."
    ::= { fsPimStdIpMRouteEntry 7 }

fsPimStdIpMRouteAssertMetricPref OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The preference advertised by the assert winner on the
            upstream interface, or 0 if no such assert is in effect."
    ::= { fsPimStdIpMRouteEntry 8 }

fsPimStdIpMRouteAssertRPTBit OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The value of the RPT-bit advertised by the assert winner on
            the upstream interface, or false if no such assert is in
            effect."
    ::= { fsPimStdIpMRouteEntry 9 }

fsPimStdIpMRouteFlags OBJECT-TYPE
    SYNTAX     BITS {
                  rpt(0),
                  spt(1)
               }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "This object describes PIM-specific flags related to a
            multicast state entry.  See the PIM Sparse Mode
            specification for the meaning of the RPT and SPT bits."
    ::= { fsPimStdIpMRouteEntry 10 }

--
-- The PIM Next Hop Table
--

fsPimStdIpMRouteNextHopTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF FsPimStdIpMRouteNextHopEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The (conceptual) table listing PIM-specific information on
            a subset of the rows of the ipMRouteNextHopTable defined in
            the IP Multicast MIB."
    ::= { fsPimStdTables 4 }

fsPimStdIpMRouteNextHopEntry OBJECT-TYPE
    SYNTAX     FsPimStdIpMRouteNextHopEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the pimIpMRouteNextHopTable.
            There is one entry per entry in the ipMRouteNextHopTable
            whose interface is running PIM and whose
            ipMRouteNextHopState is pruned(1)."
    INDEX      { fsPimStdIpMRouteNextHopAddrType, fsPimStdIpMRouteNextHopGroup, 
                 fsPimStdIpMRouteNextHopSource, fsPimStdIpMRouteNextHopSourceMaskLen, 
                 fsPimStdIpMRouteNextHopIfIndex, fsPimStdIpMRouteNextHopAddress }
    ::= { fsPimStdIpMRouteNextHopTable 1 }

FsPimStdIpMRouteNextHopEntry ::= SEQUENCE {

    fsPimStdIpMRouteNextHopAddrType             InetAddressType,
    fsPimStdIpMRouteNextHopGroup		 InetAddress,
    fsPimStdIpMRouteNextHopSource		 InetAddress,
    fsPimStdIpMRouteNextHopSourceMaskLen	 Integer32,
    fsPimStdIpMRouteNextHopIfIndex		 Integer32,
    fsPimStdIpMRouteNextHopAddress		 InetAddress,
    fsPimStdIpMRouteNextHopPruneReason       INTEGER
}

fsPimStdIpMRouteNextHopAddrType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
	    "The IP family in which the Next hop address  belongs to."
    ::= { fsPimStdIpMRouteNextHopEntry  2 }
    
fsPimStdIpMRouteNextHopGroup OBJECT-TYPE
    SYNTAX     InetAddress
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
	    "The IP multicast group for which this entry specifies a
	    next-hop on an outgoing interface."
    ::= { fsPimStdIpMRouteNextHopEntry 3 }

fsPimStdIpMRouteNextHopSource OBJECT-TYPE
    SYNTAX     InetAddress
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
	    "The network address which when combined with the
	    corresponding value of fsPimCmnIpMRouteNextHopSourceMask identifies
	    the sources for which this entry specifies a next-hop on an
	    outgoing interface."
    ::= { fsPimStdIpMRouteNextHopEntry 4 }

fsPimStdIpMRouteNextHopSourceMaskLen OBJECT-TYPE
    SYNTAX     Integer32(0..128)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
	    "The network mask which when combined with the corresponding
	    value of fsPimCmnIpMRouteNextHopSource identifies the sources for
	    which this entry specifies a next-hop on an outgoing interface"
    ::= { fsPimStdIpMRouteNextHopEntry 5 }

fsPimStdIpMRouteNextHopIfIndex OBJECT-TYPE
    SYNTAX     Integer32 (1..65535)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
	    "The ifIndex value of the interface for the outgoing
	    interface for this next-hop."
    ::= { fsPimStdIpMRouteNextHopEntry 6 }

fsPimStdIpMRouteNextHopAddress OBJECT-TYPE
    SYNTAX     InetAddress
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
	    "The address of the next-hop specific to this entry.  For
	    most interfaces, this is identical to fsPimCmnIpMRouteNextHopGroup.
	    NBMA interfaces, however, may have multiple next-hop
	    addresses out a single outgoing interface."
    ::= { fsPimStdIpMRouteNextHopEntry 7 }

fsPimStdIpMRouteNextHopPruneReason OBJECT-TYPE
    SYNTAX     INTEGER {
                  other (1),
                  prune (2),
                  assert (3)
               }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "This object indicates why the downstream interface was
            pruned, whether in response to a PIM prune message or due to
            PIM Assert processing."
    ::= { fsPimStdIpMRouteNextHopEntry 8 }

-- The PIM RP Table

fsPimStdRPTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF FsPimStdRPEntry
    MAX-ACCESS not-accessible
    STATUS     deprecated
    DESCRIPTION
            "The (conceptual) table listing PIM version 1 information
            for the Rendezvous Points (RPs) for IP multicast groups.
            This table is deprecated since its function is replaced by
            the pimRPSetTable for PIM version 2."
    ::= { fsPimStdTables 5 }

fsPimStdRPEntry OBJECT-TYPE
    SYNTAX     FsPimStdRPEntry
    MAX-ACCESS not-accessible
    STATUS     deprecated
    DESCRIPTION
            "An entry (conceptual row) in the pimRPTable.  There is one
            entry per RP address for each IP multicast group."
    INDEX      { fsPimStdRPAddrType, fsPimStdRPGroupAddress, fsPimStdRPAddress }
    ::= { fsPimStdRPTable 1 }

FsPimStdRPEntry ::= SEQUENCE {
    fsPimStdRPAddrType  InetAddressType,
    fsPimStdRPGroupAddress    InetAddress,
    fsPimStdRPAddress         InetAddress,
    fsPimStdRPState           INTEGER,
    fsPimStdRPStateTimer      TimeTicks,
    fsPimStdRPLastChange      TimeTicks,
    fsPimStdRPRowStatus       RowStatus
}

fsPimStdRPAddrType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
	    "The IP Address type  in which the multicast group address, 
            and RP address belong to."
    ::= { fsPimStdRPEntry 1 }

fsPimStdRPGroupAddress OBJECT-TYPE
    SYNTAX     InetAddress
    MAX-ACCESS not-accessible
    STATUS     deprecated
    DESCRIPTION
            "The IP multicast group address for which this entry
            contains information about an RP."
    ::= { fsPimStdRPEntry 2 }

fsPimStdRPAddress OBJECT-TYPE
    SYNTAX     InetAddress
    MAX-ACCESS not-accessible
    STATUS     deprecated
    DESCRIPTION
            "The unicast address of the RP."
    ::= { fsPimStdRPEntry 3 }

fsPimStdRPState OBJECT-TYPE
    SYNTAX     INTEGER { up(1), down(2) }
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
            "The state of the RP."
    ::= { fsPimStdRPEntry 4 }

fsPimStdRPStateTimer OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
            "The minimum time remaining before the next state change.
            When pimRPState is up, this is the minimum time which must
            expire until it can be declared down.  When pimRPState is
            down, this is the time until it will be declared up (in
            order to retry)."
    ::= { fsPimStdRPEntry 5 }

fsPimStdRPLastChange OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
            "The value of sysUpTime at the time when the corresponding
            instance of pimRPState last changed its value."
    ::= { fsPimStdRPEntry 6 }

fsPimStdRPRowStatus OBJECT-TYPE
    SYNTAX     RowStatus
    MAX-ACCESS read-create
    STATUS     deprecated
    DESCRIPTION
            "The status of this row, by which new entries may be
            created, or old entries deleted from this table."
    ::= { fsPimStdRPEntry 7 }

-- The PIM RP-Set Table

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

fsPimStdRPSetEntry OBJECT-TYPE
    SYNTAX     FsPimStdRPSetEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the pimRPSetTable."
    INDEX      { fsPimStdRPSetComponent, fsPimStdRPSetAddrType, fsPimStdRPSetGroupAddress,
                 fsPimStdRPSetGroupMaskLen, fsPimStdRPSetAddress }
    ::= { fsPimStdRPSetTable 1 }

FsPimStdRPSetEntry ::= SEQUENCE {

    fsPimStdRPSetAddrType  InetAddressType,
    fsPimStdRPSetGroupAddress    InetAddress,
    fsPimStdRPSetGroupMaskLen    Integer32,
    fsPimStdRPSetAddress         InetAddress,
    fsPimStdRPSetHoldTime        Integer32,
    fsPimStdRPSetExpiryTime      TimeTicks,
    fsPimStdRPSetComponent       Integer32,
    fsPimStdRPSetPimMode         INTEGER
}

fsPimStdRPSetAddrType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The IP address type in which the RP address belongs to."
    ::= { fsPimStdRPSetEntry 1 }

fsPimStdRPSetGroupAddress OBJECT-TYPE
    SYNTAX     InetAddress
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The IP multicast group address which, when combined with
            pimRPSetGroupMask, gives the group prefix for which this
            entry contains information about the Candidate-RP."
    ::= { fsPimStdRPSetEntry 2 }

fsPimStdRPSetGroupMaskLen OBJECT-TYPE
    SYNTAX     Integer32 (0..128)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The multicast group address mask which, when combined with
            pimRPSetGroupAddress, gives the group prefix for which this
            entry contains information about the Candidate-RP."
    ::= { fsPimStdRPSetEntry 3 }

fsPimStdRPSetAddress OBJECT-TYPE
    SYNTAX     InetAddress
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The IP address of the Candidate-RP."
    ::= { fsPimStdRPSetEntry 4 }

fsPimStdRPSetHoldTime OBJECT-TYPE
    SYNTAX     Integer32 (0..255)
    UNITS      "seconds"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The holdtime of a Candidate-RP.  If the local router is not
            the BSR, this value is 0."
    ::= { fsPimStdRPSetEntry 5 }

fsPimStdRPSetExpiryTime OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The minimum time remaining before the Candidate-RP will be
            declared down.  If the local router is not the BSR, this
            value is 0."
    ::= { fsPimStdRPSetEntry 6 }

fsPimStdRPSetComponent OBJECT-TYPE
    SYNTAX     Integer32 (1..255)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            " A number uniquely identifying the component.  Each
            protocol instance connected to a separate domain should have
            a different index value."
    ::= { fsPimStdRPSetEntry 7 }
fsPimStdRPSetPimMode OBJECT-TYPE
    SYNTAX     INTEGER {
                        dm (1),
                        sm (2),
                        ssm (3),
                        bidir (4)
                        }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The value shows the PIM mode in the RP set entry"
    ::= { fsPimStdRPSetEntry 11 }

--
-- Note: { pim 8 } through { pim 10 } were used in older versions
-- of this MIB.  Since some earlier versions of this MIB have been
-- widely-deployed, these values must not be used in the future,
-- as long the MIB is rooted under { experimental 61 }.
--

-- The PIM Candidate-RP Table

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

fsPimStdCandidateRPEntry OBJECT-TYPE
    SYNTAX     FsPimStdCandidateRPEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the pimCandidateRPTable."
    INDEX      { fsPimStdCandidateRPAddrType,
                 fsPimStdCandidateRPGroupAddress,
                 fsPimStdCandidateRPGroupMaskLen }
    ::= { fsPimStdCandidateRPTable 1 }

FsPimStdCandidateRPEntry ::= SEQUENCE {

    fsPimStdCandidateRPAddrType   InetAddressType,
    fsPimStdCandidateRPGroupAddress    InetAddress,
    fsPimStdCandidateRPGroupMaskLen    Integer32,
    fsPimStdCandidateRPAddress         InetAddress,
    fsPimStdCandidateRPRowStatus       RowStatus
}

fsPimStdCandidateRPAddrType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
	    "The IP Address type  in which the multicast group address, 
            and RP address belong to."
    ::= { fsPimStdCandidateRPEntry 1 }

fsPimStdCandidateRPGroupAddress OBJECT-TYPE
    SYNTAX     InetAddress
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The IP multicast group address which, when combined with
            pimCandidateRPGroupMask, identifies a group prefix for which
            the local router will advertise itself as a Candidate-RP."
    ::= { fsPimStdCandidateRPEntry 2 }

fsPimStdCandidateRPGroupMaskLen OBJECT-TYPE
    SYNTAX     Integer32 (0..128)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The multicast group address mask which, when combined with
            pimCandidateRPGroupMask, identifies a group prefix for which
            the local router will advertise itself as a Candidate-RP."
    ::= { fsPimStdCandidateRPEntry 3 }

fsPimStdCandidateRPAddress OBJECT-TYPE
    SYNTAX     InetAddress
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The (unicast) address of the interface which will be
            advertised as a Candidate-RP."
    ::= { fsPimStdCandidateRPEntry 4 }

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

-- The PIM Component Table

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

fsPimStdComponentEntry OBJECT-TYPE
    SYNTAX     FsPimStdComponentEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the pimComponentTable."
    INDEX      { fsPimStdComponentIndex }
    ::= { fsPimStdComponentTable 1 }

FsPimStdComponentEntry ::= SEQUENCE {

    fsPimStdComponentIndex              Integer32,
    fsPimStdComponentBSRExpiryTime      TimeTicks,
    fsPimStdComponentCRPHoldTime        Integer32,
    fsPimStdComponentStatus             RowStatus,
    fsPimStdComponentScopeZoneName      DisplayString
}

fsPimStdComponentIndex OBJECT-TYPE
    SYNTAX     Integer32 (1..255)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A number uniquely identifying the component.  Each protocol
            instance connected to a separate domain should have a
            different index value.  Routers that only support membership
            in a single PIM-SM domain should use a pimComponentIndex
            value of 1."
    ::= { fsPimStdComponentEntry 1 }

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

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

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

fsPimStdComponentScopeZoneName OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
      " This object indicates the scope-zone associated with 
        a particular component"
    ::= { fsPimStdComponentEntry 5 }

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

fsPimStdComponentBSREntry OBJECT-TYPE
    SYNTAX     FsPimStdComponentBSREntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the pimComponentTable."
    INDEX      { fsPimStdComponentBSRIndex, fsPimStdComponentBSRAddrType}
    ::= { fsPimStdComponentBSRTable 1 }

FsPimStdComponentBSREntry ::= SEQUENCE {

    fsPimStdComponentBSRIndex              Integer32,
    fsPimStdComponentBSRAddrType           InetAddressType,
    fsPimStdComponentBSRAddress            InetAddress
}

fsPimStdComponentBSRIndex OBJECT-TYPE
    SYNTAX     Integer32 (1..255)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A number uniquely identifying the component."
    ::= { fsPimStdComponentBSREntry 1 }

fsPimStdComponentBSRAddrType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The address type of the bootstrap router (BSR) for the local
            PIM region."
    ::= { fsPimStdComponentBSREntry 2 }


fsPimStdComponentBSRAddress OBJECT-TYPE
    SYNTAX     InetAddress
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The IP address of the bootstrap router (BSR) for the local
            PIM region."
    ::= { fsPimStdComponentBSREntry 3 }

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

fsPimStdNbrSecAddressTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF FsPimStdNbrSecAddressEntry 
    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)."
    REFERENCE "RFC 4601 section 4.3.4"
    ::= { fsPimStdTables 10 }

fsPimStdNbrSecAddressEntry OBJECT-TYPE
    SYNTAX     FsPimStdNbrSecAddressEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the fsPimStdNbrSecAddressTable."
    INDEX      { fsPimStdNbrSecAddressIfIndex,
                 fsPimStdNbrSecAddressType,
                 fsPimStdNbrSecAddressPrimary,
                 fsPimStdNbrSecAddress }
    ::= { fsPimStdNbrSecAddressTable 1 }

FsPimStdNbrSecAddressEntry ::= SEQUENCE {

    fsPimStdNbrSecAddressIfIndex InterfaceIndex,
    fsPimStdNbrSecAddressType    InetAddressType,
    fsPimStdNbrSecAddressPrimary InetAddress,
    fsPimStdNbrSecAddress        InetAddress
}

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

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

fsPimStdNbrSecAddressPrimary 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 fsPimStdNbrSecAddressType
            object."
    ::= { fsPimStdNbrSecAddressEntry 3 }

fsPimStdNbrSecAddress 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 fsPimStdNbrSecAddressType
            object."
    ::= { fsPimStdNbrSecAddressEntry 4 }

END

