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

-- $Id: fspim.mib,v 1.12 2012/10/29 12:01:31 siva Exp $

-- Introduction

-- This document explains the propreitary MIB implemented for the PIM
-- product.

-- The proprietary MIB definitions, which mostly contains extra statistic
-- objects and few objects for configuring the threshold to switch over to
-- shortest path tree.

-- To the Standard MIB RFC2934.txt, few scalars and few
-- statistic objects are added


-- The scalars in this MIB

-- fsPimVersionString			This scalar holds the Software Version
--					number of the PIM protocol running in
--	          			    the router.


-- fsPimJoinPruneInterval			This scalar is same as defined in the
--					Standard MIB rfc2934.txt


-- fsPimSPTGroupThreshold			This scalar allows to configure the
--					threshold for switching over to
--					Shortest Path Tree. It is based
--				        on Bits per second.

-- fsPimSPTSourceThreshold		This scalar allows to configure the
--					threshold for switching over to
--				        Shortest path Tree. It is based on
--			                the Bits per Second.

-- fsPimSPTSwitchingPeriod		This scalar allows to configure the
--					period for which the threshold is
--				        computed.

-- fsPimSPTRpThreshold			This scalar allows to configure the
--					threshold at which shortest path trees
--				        are initiated for the RPT Route(s) that
--				        match this entry.

-- fsPimSPTRpSwitchingPeriod		This scalar allows to configure the
--					period for which the threshold is
--			         	computed.


-- The Tables in the MIB

-- fsPimInterfaceTable	     pimInterfaceTable is same as given in Standard MIB
--			     except for an object is added to monitor the number
--			     of packets discarded as invalid packet in this
--			     interface.

-- fsPimNeighborTable	     pimNeighborTable is same as given in Standard MIB
--			     except for few objects added for knowing the GenId
--	    		     and to monitor the number of packets discarded as
--			     invalid.

-- fsPimIpMRouteTable	     pimIpMRouteTable is same as given in Standard MIB
--			     except for few objects added for viewing the
--			     Multicast Route Table as given in the IPv4
--			     Multicast Routing MIB and an object to monitor
--			     number packets routed.

-- fsPimIpMRouteNextHopTable   pimIpMRouteNextHopTable is same as given in
--			     Standard MIB except for few objects added for
--			     viewing the next hop table.


-- fsPimCandidateRPTable	     pimCandidateRPTable is same as given in Standard
--			     MIB, except the RPPriority is added. 



-- Management Information Base for PIM Product

SUPERMICRO-PIM-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE,
    Integer32, IpAddress, TimeTicks,
    Counter32, enterprises		     FROM SNMPv2-SMI
    TEXTUAL-CONVENTION, RowStatus, TruthValue,
    DisplayString		     FROM SNMPv2-TC;

fsPimMIB MODULE-IDENTITY
--    LAST-UPDATED "200006050000Z"
    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) 20 }

-- Textual Convention
-- This Textual Convention enhance the readability of the specification.

Status            ::=     TEXTUAL-CONVENTION
        STATUS               current
        DESCRIPTION
                "The status of the fsPimGlobalDebug"
        SYNTAX               INTEGER    { enable(1), disable(2) }

-- The ID 20 for futurePim is temp not allocated one
-- future	       OBJECT IDENTIFIER ::= { enterprises 2076}
-- futurePim	       OBJECT IDENTIFIER ::= { future 20 }
-- fsPimMIB	       OBJECT IDENTIFIER ::= { futurePim 1 }


fsPimMIBObjects OBJECT IDENTIFIER ::= { fsPimMIB 1 }

futurePimScalars     OBJECT IDENTIFIER ::= { fsPimMIBObjects 1 }
futurePimTables     OBJECT IDENTIFIER ::= { fsPimMIBObjects 2 }
futurePimTraps     OBJECT IDENTIFIER ::= { fsPimMIBObjects 3 }


-- SCALAR_TABLE_BEGIN

fsPimVersionString      OBJECT-TYPE
    SYNTAX	    DisplayString
    MAX-ACCESS	    read-only
    STATUS	    current
    DESCRIPTION
	    "The version number of the PIM protocol in the router"
    ::= { futurePimScalars 1 }

--
-- Start of mib objects for data rate monitoring by the last hop router
--

fsPimSPTGroupThreshold	OBJECT-TYPE
    SYNTAX	      Integer32 (0..2147483647)
    MAX-ACCESS	      read-write
    STATUS	      current
    DESCRIPTION
	  "The threshold of data rate for any group when exceeded,
	   source specific counters are initiated for that particular group
	   It is based on number of bits per sec.
	  To initiate SPT switching counter, this threshold MUST be
	  configured"
    DEFVAL     { 0 }
    ::= { futurePimScalars 2 }

fsPimSPTSourceThreshold	OBJECT-TYPE
    SYNTAX	      Integer32 (0..2147483647)
    MAX-ACCESS	      read-write
    STATUS	      current
    DESCRIPTION
	  "The threshold of data rate for any source when exceeded,
           switching to Shortest Path Tree is initiated.
	   It is based on number of bits per sec.
           To switch to SPT, this threshold MUST be configured"
    DEFVAL     { 0 }
    ::= { futurePimScalars 3 }

fsPimSPTSwitchingPeriod  OBJECT-TYPE
    SYNTAX		 Integer32 (0..2147483647)
    MAX-ACCESS		 read-write
    STATUS		 current
    DESCRIPTION
	   "The period (in seconds)over which the data rate
            is to be monitored for intiating source specific
	     counting or initiating switch to shortest path tree.
	     Same period is used for monitoring data rate for
	     both source and group.
	  To switch to SPT, this period MUST be configured"
    DEFVAL     { 0 }
    ::= { futurePimScalars 4 }

--
-- End of mib objects for data rate monitoring by the last hop router
--


--
-- Start of mib objects for monitoring number of register message by the RP
--

fsPimSPTRpThreshold OBJECT-TYPE
    SYNTAX	      Integer32 (0..2147483647)
    MAX-ACCESS	      read-write
    STATUS	      current
    DESCRIPTION
      "The threshold at which the RP initiates switching to
		Source specific shortest path.It is based on number
		of registered packets received.
	   To switch to SPT, this threshold MUST be configured"
    DEFVAL     { 0 }
    ::= { futurePimScalars 5 }

fsPimSPTRpSwitchingPeriod OBJECT-TYPE
    SYNTAX	      Integer32 (0..2147483647)
    MAX-ACCESS	      read-write
    STATUS	      current
    DESCRIPTION
       "The period (in seconds) over which RP monitors
       register packets for switching to the source specific
       shortest path tree.
	    To switch to SPT, this period MUST be configured"
    DEFVAL     { 0 }
    ::= { futurePimScalars 6 }

--
-- End of mib objects for monitoring number of register message by the RP
--


--
-- Start of mib objects for Register stop rate limitation
--


fsPimRegStopRateLimitingPeriod     OBJECT-TYPE
    SYNTAX            Integer32(0..2147483647)
    MAX-ACCESS        read-write
    STATUS            current
    DESCRIPTION
           "The period (in seconds) over which RP monitors number of
            register packets after sending the register stop message
            to the source of the register message for rate limiting the
            sending of register stop message"
    DEFVAL     { 5 }
    ::= { futurePimScalars 7 }

--
-- End of mib objects for register stop rate limitation
--


fsPimMemoryAllocFailCount	     OBJECT-TYPE
    SYNTAX	      Integer32
    MAX-ACCESS	      read-only
    STATUS	      current
    DESCRIPTION
	    " This counter holds the number of memory allocation failures "
    ::= { futurePimScalars 8 }

fsPimGlobalTrace	  OBJECT-TYPE
	SYNTAX	      Integer32 (0..65535)
	MAX-ACCESS    read-write
	STATUS	      current
	DESCRIPTION
		" This is used to enable Trace Statements in PIM Module.
		A four byte integer value is specified for enabling the level
		of tracing.Each Bit in the four byte integer variable represents
		a level of Trace. The bits represents the levels as
		follows: 0 - Init and Shutdown, 1 - Management, 2 - Data Path,
		3 - Control Plane, 4 - packet Dump, 5 - All resources except
		buffer, 6 - All Failures, 7 - Buffer.  The remaining
		bits are unused. The combination of levels are also allowed.
		For example if the bits 1 and 2 are set, then the Trace
		statements related to management and Data Path will be printed.
		The administrator have to enter the corresponding integer value
		 for the bits set. For example if bits 1 and 2 are set then
		 admin has to give the value 6."
	DEFVAL	{ 0 }
	::= { futurePimScalars 9 }

fsPimGlobalDebug	 OBJECT-TYPE
	SYNTAX	      Integer32 (0..65535)
	MAX-ACCESS    read-write
	STATUS	      current
	DESCRIPTION
		" This is used to enable Debug statements in PIM.
                  A Four byte integer value is specified for enabling the 
                  level of debugging. Each bit in the four byte integer 
                  variable represents a level of debugging. The combination of 
                  levels are also allowed. The user have to enter the 
                  corresponding integer value for the bit set."
	DEFVAL	{ 0 }
	::= { futurePimScalars 10 }

fsPimPmbrStatus          OBJECT-TYPE
    SYNTAX            INTEGER { disable (1), enable (2) }
    MAX-ACCESS        read-write
    STATUS            current
    DESCRIPTION
            "The border bit which identifies the router as a border router"
    DEFVAL   { 1 }
    ::= { futurePimScalars 11 }

fsPimRouterMode          OBJECT-TYPE
    SYNTAX            INTEGER { ssmonly (1), smssm (2) }
    MAX-ACCESS        read-write
    STATUS            current
    DESCRIPTION
            "The Mode of the Pim-SM router (ssm_only or sm_ssm )"
    DEFVAL   { 2 }
    ::= { futurePimScalars 12 }

fsPimStaticRpEnabled           OBJECT-TYPE
    SYNTAX            INTEGER { disable (0),enabled(1) }
    MAX-ACCESS        read-write
    STATUS            current
    DESCRIPTION
            "The flag which indicating that static configuration of RP is 
available"

    DEFVAL   { 0 }
    ::= { futurePimScalars 13 }

fsPimStatus           OBJECT-TYPE
    SYNTAX     INTEGER { enabled(1), disabled(2) }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The enabled status of Multicast Routing by PIM on this router."
    ::= { futurePimScalars 14 }



-- SCALAR_TABLE_END


--
-- The PIM Interface Table
--

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

fsPimInterfaceEntry OBJECT-TYPE
    SYNTAX     FsPimInterfaceEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
	    "An entry (conceptual row) in the fsPimInterfaceTable."
    INDEX      { fsPimInterfaceIfIndex }
    ::= { fsPimInterfaceTable 1 }

FsPimInterfaceEntry ::= SEQUENCE {
    fsPimInterfaceIfIndex		   Integer32,
    fsPimInterfaceCompId              Integer32,
    fsPimInterfaceDRPriority         Unsigned32,
    fsPimInterfaceHelloHoldTime      Integer32,
    fsPimInterfaceLanPruneDelayPresent   INTEGER,
    fsPimInterfaceLanDelay               Integer32,
    fsPimInterfaceOverrideInterval       Integer32,
    fsPimInterfaceGenerationId           Integer32,
    fsPimInterfaceSuppressionInterval    Integer32,
    fsPimInterfaceAdminStatus            Integer32,
    fsPimInterfaceBorderBit              Integer32
}

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

fsPimInterfaceCompId OBJECT-TYPE
    SYNTAX     Integer32 (1..255)
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
          " This object is the component Id of the component to which the 
          interface belongs to"   
    DEFVAL     { 1 }
    ::= { fsPimInterfaceEntry 2 }      


fsPimInterfaceDRPriority    OBJECT-TYPE
    SYNTAX            Unsigned32
    MAX-ACCESS  read-write
    STATUS            current
    DESCRIPTION
            "The DR priority value configured for Hello message for that     
router per interface"
    DEFVAL     { 1 }
    ::= {fsPimInterfaceEntry 3 }

fsPimInterfaceHelloHoldTime            OBJECT-TYPE
    SYNTAX            Integer32 (1..65535)
    MAX-ACCESS        read-only
    STATUS            current
    DESCRIPTION
            "The hold time configured for the Hello message for that     
              router per interface"
     ::= { fsPimInterfaceEntry 4 }

fsPimInterfaceLanPruneDelayPresent     OBJECT-TYPE
    SYNTAX            INTEGER {disable (0), enable (1)}
    MAX-ACCESS  read-write
    STATUS            current
    DESCRIPTION
            "The LanPruneDelayPresent bit configured for the router per     
             interface"
    DEFVAL     { 0 }
    ::= { fsPimInterfaceEntry 5 }

fsPimInterfaceLanDelay      OBJECT-TYPE
    SYNTAX            Integer32 (0..65535)
    MAX-ACCESS        read-write
    STATUS            current
    DESCRIPTION
            "The LanPruneDelayPresent bit configured for the router per     
             interface"
    DEFVAL     { 0 }
    ::= { fsPimInterfaceEntry 6 }    

fsPimInterfaceOverrideInterval           OBJECT-TYPE
    SYNTAX            Integer32 (0..65535)
    MAX-ACCESS  read-write
    STATUS            current
    DESCRIPTION
            "The Override Interval configured for the router per interface"
    DEFVAL     { 0 }
    ::= { fsPimInterfaceEntry 7}

fsPimInterfaceGenerationId            OBJECT-TYPE
    SYNTAX          Integer32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
            "The Generation identifier of the router. This is used by
            neighbour routers to quickly detect router reboot and             
            synchronize RP-Set information and forwarding states by triggering         
            Bootstrap and Join/Prune messages to the rebooted router"
    ::= { fsPimInterfaceEntry 8 }

fsPimInterfaceSuppressionInterval OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The interface suppression period "
    ::= { fsPimInterfaceEntry 9 }    

fsPimInterfaceAdminStatus OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The interface Administrative Status "
    ::= { fsPimInterfaceEntry 10 }   
 
fsPimInterfaceBorderBit OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "This indicates this interface is border interface or not,
             1-- border interface, 0(default value)-- Normal interface."
    ::= { fsPimInterfaceEntry 11 }    

--
-- The PIM Neighbor Table
--

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

fsPimNeighborEntry OBJECT-TYPE
    SYNTAX     FsPimNeighborEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
	    "An entry (conceptual row) in the fsPimNeighborTable."
    INDEX      { fsPimNeighborAddress, fsPimNeighborCompId }
    ::= { fsPimNeighborTable 1 }

FsPimNeighborEntry ::= SEQUENCE {
    fsPimNeighborAddress	    IpAddress,
    fsPimNeighborCompId             Integer32,
    fsPimNeighborIfIndex	    Integer32,
    fsPimNeighborUpTime	    TimeTicks,
    fsPimNeighborExpiryTime   TimeTicks,
    fsPimNeighborGenerationId Integer32,
    fsPimNeighborLanDelay            Integer32,
    fsPimNeighborDRPriority          Unsigned32,
    fsPimNeighborOverrideInterval    Integer32
}

fsPimNeighborAddress OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
	    "The IP address of the PIM neighbor for which this entry
	    contains information."
    ::= { fsPimNeighborEntry 1 }

fsPimNeighborCompId OBJECT-TYPE
    SYNTAX     Integer32 (1..255)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
          " The component Id of this neighbor table "
    ::= { fsPimNeighborEntry 2 }      

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

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

fsPimNeighborExpiryTime OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
	    "The minimum time remaining before this PIM neighbor will be
	    aged out."
    ::= { fsPimNeighborEntry 5 }
    
fsPimNeighborGenerationId OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The Generation identifier of the router. This is used by
             neighbour routers to quickly detect router reboot and synchronize
             RP-Set information and forwarding states by triggering Bootstrap
             and Join/Prune messages to the rebooted router"
    ::= { fsPimNeighborEntry 6 }


fsPimNeighborLanDelay           OBJECT-TYPE
    SYNTAX            Integer32
    MAX-ACCESS        read-only
    STATUS            current
    DESCRIPTION
            "The LanDelay configured for this PIM neighbor"
    ::= { fsPimNeighborEntry 7 }

fsPimNeighborDRPriority             OBJECT-TYPE
    SYNTAX            Unsigned32
    MAX-ACCESS        read-only
    STATUS            current
    DESCRIPTION
            "The DR priority value configured for this PIM neighbor"
    ::= { fsPimNeighborEntry 8 }

fsPimNeighborOverrideInterval           OBJECT-TYPE
    SYNTAX            Integer32
    MAX-ACCESS        read-only
    STATUS            current
    DESCRIPTION
            "The Override Interval configured for this PIM neighbor"
    ::= { fsPimNeighborEntry 9}
    
--
-- The PIM IP Multicast Route Table
--

fsPimIpMRouteTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF FsPimIpMRouteEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
	    "The (conceptual) table listing PIM multicast routing information"
    ::= { futurePimTables 3 }

fsPimIpMRouteEntry OBJECT-TYPE
    SYNTAX     FsPimIpMRouteEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
	    "An entry (conceptual row) in the fsPimIpMRouteTable.	 There
	    is one entry for each incoming interface running PIM"
    INDEX      { fsPimIpMRouteCompId, fsPimIpMRouteGroup, fsPimIpMRouteSource, fsPimIpMRouteSourceMask }
    ::= { fsPimIpMRouteTable 1 }

FsPimIpMRouteEntry ::= SEQUENCE {
    fsPimIpMRouteCompId              Integer32,
    fsPimIpMRouteGroup		     IpAddress,
    fsPimIpMRouteSource		     IpAddress,
    fsPimIpMRouteSourceMask	     IpAddress,
    fsPimIpMRouteUpstreamNeighbor	     IpAddress,
    fsPimIpMRouteInIfIndex	     Integer32,
    fsPimIpMRouteUpTime		     TimeTicks,
    fsPimIpMRoutePkts		     Counter32,
    fsPimIpMRouteUpstreamAssertTimer   TimeTicks,
    fsPimIpMRouteAssertMetric	     Integer32,
    fsPimIpMRouteAssertMetricPref	     Integer32,
    fsPimIpMRouteAssertRPTBit	     TruthValue,
    fsPimIpMRouteTimerFlags	     Integer32,
    fsPimIpMRouteFlags		     Integer32
}

fsPimIpMRouteCompId OBJECT-TYPE
    SYNTAX     Integer32 (1..255)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
         "The component Id of this table"
    ::= { fsPimIpMRouteEntry 1 }     

fsPimIpMRouteGroup OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
	    "The IP multicast group address for which this entry
	    contains multicast routing information."
    ::= { fsPimIpMRouteEntry 2 }

fsPimIpMRouteSource OBJECT-TYPE
    SYNTAX     IpAddress
    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."
    ::= { fsPimIpMRouteEntry 3 }

fsPimIpMRouteSourceMask OBJECT-TYPE
    SYNTAX     IpAddress
    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."
    ::= { fsPimIpMRouteEntry 4 }

fsPimIpMRouteUpstreamNeighbor OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
	    "The address of the upstream neighbor (e.g., RPF neighbor)
	    from which IP datagrams from these sources to this multicast
	    address are received."
    ::= { fsPimIpMRouteEntry 5 }

fsPimIpMRouteInIfIndex OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
	    "The value of ifIndex for the interface on which IP
	    datagrams sent by these sources to this multicast address
	    are received."
    ::= { fsPimIpMRouteEntry 6 }

fsPimIpMRouteUpTime OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
	    "The time since the multicast routing information
	    represented by this entry was learned by the router."
    ::= { fsPimIpMRouteEntry 7 }

fsPimIpMRoutePkts OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
	    "The number of packets which this router has received from
	    these sources and addressed to this multicast group
	    address."
    ::= { fsPimIpMRouteEntry 8 }

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

fsPimIpMRouteAssertMetric 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."
    ::= { fsPimIpMRouteEntry 10 }

fsPimIpMRouteAssertMetricPref 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."
    ::= { fsPimIpMRouteEntry 11 }

fsPimIpMRouteAssertRPTBit 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."
    ::= { fsPimIpMRouteEntry 12 }

fsPimIpMRouteTimerFlags OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
	    "This object describes PIM-specific Timer flags related to a
	    Multicast Route Entry. If the bit is 1 indicates that timer 
            is started for that entry.  The bits corresponding to the 
            timers are as follows:
            0 - JP Suppression Timer, 1 - Oif Timer, 2 - Entry Timer,
            3 - Reg Suppression Timer, 4 - Assert Timer, 
            5 - RandomDelayJoin Timer.
            For example, If this object value is 3 (0000 0011), then
            it means that JPSuppression timer and  Oif timer are running.
            This is for both SM and DM. The bits which are not applicable 
            to DM/SM will be filled with 0 "
    ::= { fsPimIpMRouteEntry 13 }

fsPimIpMRouteFlags OBJECT-TYPE
    SYNTAX     Integer32
    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."
    ::= { fsPimIpMRouteEntry 14 }



--
-- The PIM Next Hop Table
--

fsPimIpMRouteNextHopTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF FsPimIpMRouteNextHopEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
	    "The (conceptual) table listing PIM information on the next hops
	    on outgoing interfaces for forwarding multicast datagrams"
    ::= { futurePimTables 4 }

fsPimIpMRouteNextHopEntry OBJECT-TYPE
    SYNTAX     FsPimIpMRouteNextHopEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
	    "An entry (conceptual row) in the fsPimIpMRouteNextHopTable.
	    There is one entry per entry in the ipMRouteNextHopTable
	    whose interface is running PIM and whose
	    fsPimIpMRouteNextHopState is pruned(1)."
    INDEX      { fsPimIpMRouteNextHopCompId,
                 fsPimIpMRouteNextHopGroup, fsPimIpMRouteNextHopSource,
		 fsPimIpMRouteNextHopSourceMask, fsPimIpMRouteNextHopIfIndex,
		 fsPimIpMRouteNextHopAddress }
    ::= { fsPimIpMRouteNextHopTable 1 }

FsPimIpMRouteNextHopEntry ::= SEQUENCE {
    fsPimIpMRouteNextHopCompId           Integer32,
    fsPimIpMRouteNextHopGroup		 IpAddress,
    fsPimIpMRouteNextHopSource		 IpAddress,
    fsPimIpMRouteNextHopSourceMask	 IpAddress,
    fsPimIpMRouteNextHopIfIndex		 Integer32,
    fsPimIpMRouteNextHopAddress		 IpAddress,
    fsPimIpMRouteNextHopPruneReason	 INTEGER,
    fsPimIpMRouteNextHopState		 INTEGER
}

fsPimIpMRouteNextHopCompId OBJECT-TYPE
    SYNTAX     Integer32 (1..255)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
         " The component Id for this table "
   ::= { fsPimIpMRouteNextHopEntry 1 }      
    
fsPimIpMRouteNextHopGroup OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
	    "The IP multicast group for which this entry specifies a
	    next-hop on an outgoing interface."
    ::= { fsPimIpMRouteNextHopEntry 2 }

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

fsPimIpMRouteNextHopSourceMask OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
	    "The network mask which when combined with the corresponding
	    value of fsPimIpMRouteNextHopSource identifies the sources for
	    which this entry specifies a next-hop on an outgoing interface"
    ::= { fsPimIpMRouteNextHopEntry 4 }

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

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

fsPimIpMRouteNextHopPruneReason OBJECT-TYPE
    SYNTAX     INTEGER {
                  forwarding (0),
		  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."
    ::= { fsPimIpMRouteNextHopEntry 7 }

fsPimIpMRouteNextHopState OBJECT-TYPE
    SYNTAX     INTEGER { pruned(1), forwarding(2) }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
	    "An indication of whether the outgoing interface and next-
	    hop represented by this entry is currently being used to
	    forward IP datagrams.  The value 'forwarding' indicates it
	    is currently being used; the value 'pruned' indicates it is
	    not."
    ::= { fsPimIpMRouteNextHopEntry 8 }


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

fsPimCandidateRPTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF FsPimCandidateRPEntry
    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 fsPimComponentCRPHoldTime 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 fsPimComponentCRPHoldTime is non-
	    zero)."
    ::= { futurePimTables 6 }

fsPimCandidateRPEntry OBJECT-TYPE
    SYNTAX     FsPimCandidateRPEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
	    "An entry (conceptual row) in the fsPimCandidateRPTable."
    INDEX      { fsPimCandidateRPCompId, 
                 fsPimCandidateRPGroupAddress,
		 fsPimCandidateRPGroupMask,
                 fsPimCandidateRPAddress}
    ::= { fsPimCandidateRPTable 1 }

FsPimCandidateRPEntry ::= SEQUENCE {
    fsPimCandidateRPCompId        Integer32,    
    fsPimCandidateRPGroupAddress	  IpAddress,
    fsPimCandidateRPGroupMask	  IpAddress,
    fsPimCandidateRPAddress	  IpAddress,
    fsPimCandidateRPPriority      Integer32, 
    fsPimCandidateRPRowStatus	  RowStatus
}

fsPimCandidateRPCompId OBJECT-TYPE
    SYNTAX     Integer32 (1..255)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
       "Component Id for this table "
    ::= { fsPimCandidateRPEntry 1 }    

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

fsPimCandidateRPGroupMask OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
	    "The multicast group address mask which, when combined with
	    fsPimCandidateRPGroupMask, identifies a group prefix for which
	    the local router will advertise itself as a Candidate-RP."
    ::= { fsPimCandidateRPEntry 3 }

fsPimCandidateRPAddress OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS not-accessible 
    STATUS     current
    DESCRIPTION
	    "The (unicast) address of the interface which will be
	    advertised as a Candidate-RP."
    ::= { fsPimCandidateRPEntry 4 }

fsPimCandidateRPPriority OBJECT-TYPE
    SYNTAX     Integer32  (0..255)
    MAX-ACCESS read-write 
    STATUS     current
    DESCRIPTION
	    "The priority of the interface which will be
	    advertised as a Candidate-RP."
    ::= { fsPimCandidateRPEntry 5 }

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


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

fsPimStaticRPSetTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF FsPimStaticRPSetEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The (conceptual) table listing the IP multicast groups for
            which the routers are available as the RP through static 
configuration."

    ::= { futurePimTables 7 }

fsPimStaticRPSetEntry OBJECT-TYPE
    SYNTAX     FsPimStaticRPSetEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the pimStaticRPSetTable."
    INDEX      { fsPimStaticRPSetCompId, fsPimStaticRPSetGroupAddress,
                 fsPimStaticRPSetGroupMask}
    ::= { fsPimStaticRPSetTable 1 }

FsPimStaticRPSetEntry ::= SEQUENCE {
    fsPimStaticRPSetCompId         Integer32, 
    fsPimStaticRPSetGroupAddress          IpAddress,
    fsPimStaticRPSetGroupMask     IpAddress,
    fsPimStaticRPAddress          IpAddress,
    fsPimStaticRPRowStatus        RowStatus
}    

fsPimStaticRPSetCompId OBJECT-TYPE
    SYNTAX     Integer32 (1..255)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
       "Component Id for this table "
    ::= { fsPimStaticRPSetEntry 1 }    

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

fsPimStaticRPSetGroupMask OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The IP multicast group address mask which, when combined with
            pimStaticRPSetGroupAddress, gives the group prefix for which this
            entry contains information about the RP."
    ::= { fsPimStaticRPSetEntry 3 }

fsPimStaticRPAddress OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The  address of the interface which will be
            static configured as the RP."
    ::= { fsPimStaticRPSetEntry 4 }

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

--
-- fsPimComponentModeTable
--


fsPimComponentModeTable OBJECT-TYPE

    SYNTAX     SEQUENCE OF FsPimComponentModeEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
	    "The (conceptual) table listing the components modes)."
    ::= { futurePimTables 8 }

fsPimComponentModeEntry OBJECT-TYPE
    SYNTAX     FsPimComponentModeEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
	    "An entry (conceptual row) in the fsPimComponentModeTable."
    INDEX      { fsPimComponentId }
    ::= { fsPimComponentModeTable 1 }

FsPimComponentModeEntry ::= SEQUENCE {
    fsPimComponentId          Integer32,    
    fsPimComponentMode	      INTEGER,
    fsPimCompGraftRetryCount  Integer32
}

fsPimComponentId OBJECT-TYPE
    SYNTAX     Integer32 (1..255)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
       "Component Id for this table "
    ::= { fsPimComponentModeEntry 1 }    

fsPimComponentMode OBJECT-TYPE
    SYNTAX     INTEGER {
                 dense (1),
		         sparse (2)
	           }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
	    "This object indicates the mode of the component. A value of 
         1 indicates the component is running in DM mode and value of 
         2 indicated that the component is running in DM mode"

    DEFVAL   { 2 }
    ::= { fsPimComponentModeEntry 2 }

fsPimCompGraftRetryCount         OBJECT-TYPE
    SYNTAX            Integer32 (0..255)
    MAX-ACCESS        read-write
    STATUS            current
    DESCRIPTION
            " The value indicates the number of retries that can be made to
              send the graft message"

    DEFVAL   { 1 }
    ::= { fsPimComponentModeEntry 3 }

-- Register Checksum Config Table

fsPimRegChkSumCfgTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF FsPimRegChkSumCfgEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The (conceptual) table listing RPs configured in CISCO Router"
    ::= { futurePimTables 9 }


fsPimRegChkSumCfgEntry OBJECT-TYPE
    SYNTAX     FsPimRegChkSumCfgEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the fsPimRegChkSumCfgTable."
    INDEX      {fsPimRegChkSumTblCompId, fsPimRegChkSumTblRPAddress }
    ::= { fsPimRegChkSumCfgTable 1 }

FsPimRegChkSumCfgEntry ::= SEQUENCE {
    fsPimRegChkSumTblCompId     Integer32,
    fsPimRegChkSumTblRPAddress  IpAddress,
    fsPimRPChkSumStatus         INTEGER
}

fsPimRegChkSumTblCompId OBJECT-TYPE
    SYNTAX     Integer32 (1..255)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
       "Component Id for this table, This configuration is valid
        only for a sparse mode component."
    ::= { fsPimRegChkSumCfgEntry 1 }

fsPimRegChkSumTblRPAddress OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The RP Address of the router to which the Register 
             checksum should be calculated."
    ::= { fsPimRegChkSumCfgEntry 2 }

fsPimRPChkSumStatus OBJECT-TYPE
    SYNTAX     INTEGER { enabled(1), disabled(2) }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The status of this Row, by which new entries may be created
            If the RowStatus is set, then the Register Message checksum
            should be calculated including the data packet other wise for
            for any RP address not part of this table checksum
            should be sent as per the draft-ietf-pim-sm-new-v2"
    ::= { fsPimRegChkSumCfgEntry 3 }


END

