-- *****************************************************************
-- MY-DVMRP-MIB.mib:  my Dvmrp MIB file
--
-- $Copyright$
-- 
-- *****************************************************************


MY-DVMRPINTEROPERABILITY-MIB DEFINITIONS ::= BEGIN

    IMPORTS
        MODULE-IDENTITY, OBJECT-TYPE, experimental, Counter32, Gauge32,
        Integer32, IpAddress, TimeTicks  FROM SNMPv2-SMI
        RowStatus, DisplayString,TruthValue            FROM SNMPv2-TC
        InterfaceIndex                   FROM IF-MIB
        EnabledStatus 
        FROM P-BRIDGE-MIB 
        myMgmt
        FROM MY-SMI
        MODULE-COMPLIANCE, OBJECT-GROUP  FROM SNMPv2-CONF;
 
myDvmrpMIB MODULE-IDENTITY
    LAST-UPDATED "200301200000Z"
    ORGANIZATION "$Company$"
    CONTACT-INFO
        " 
        Tel: $Telephone$ 
         
        E-mail: $E-mail$"
    DESCRIPTION
        "This module defines my dvmrp mibs."
    REVISION      "200301200000Z"
    DESCRIPTION
        "Initial version of this MIB module."
    ::= { myMgmt 29}

myDvmrpMIBObjects OBJECT IDENTIFIER ::= { myDvmrpMIB 1 }

myDvmrpGroup OBJECT IDENTIFIER  ::= {  myDvmrpMIBObjects 1 }

myDvmrpRouteLimit      OBJECT-TYPE
    SYNTAX      Unsigned32(0..2147483647)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
             "Number of DVMRP routes that can be advertised."
    DEFVAL{7000}
    ::= { myDvmrpGroup 1 }

myDvmrpRoutehogNotification   OBJECT-TYPE
    SYNTAX      Unsigned32(1..2147483647)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Number of routes allowed before a syslog message 
         is triggered."
    DEFVAL{10000}
    ::= { myDvmrpGroup 2 }
   
  --
  --  The my-DVMRP Interface Table
  --
myDvmrpInterfaceTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF MyDvmrpInterfaceEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The (conceptual) table listing the interfaces on
         which Dvmrp is enabled."
    ::= {  myDvmrpMIBObjects 2 }
  
myDvmrpInterfaceEntry OBJECT-TYPE
    SYNTAX     MyDvmrpInterfaceEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "An entry (conceptual row) representing an
         interface on which Dvmrp is enabled."
    INDEX      { myDvmrpInterfaceIfIndex }
    ::= { myDvmrpInterfaceTable 1 }

             
MyDvmrpInterfaceEntry ::= SEQUENCE {
    myDvmrpInterfaceIfIndex		            InterfaceIndex,                                                                      
    myDvmrpInterfaceDefaultInformation       Integer32,-- 0-default 1-originate2-only
    myDvmrpInterfaceUnicastRoutingStatus     EnabledStatus, 
    myDvmrpInterfaceRejectNonPrunersStatus   EnabledStatus,      
    myDvmrpInterfaceAutoSummaryStatus        EnabledStatus,
    myDvmrpInterfaceRtsRec                   Integer32,
    myDvmrpInterfacePoisonReverseRtsRec      Integer32,
    myDvmrpInterfaceUniRtAdvertised          Integer32,
    myDvmrpInterfaceDvmrpRtAdvertised        Integer32
    }

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

myDvmrpInterfaceDefaultInformation     OBJECT-TYPE   
    SYNTAX     Integer32{default(0),originate(1),only(2)}
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "originate means Other routes more specific 
         than 0.0.0.0 may be advertised,only means 
         No DVMRP routes other than 0.0.0.0 are 
         advertised.Default means Disable the command."
    DEFVAL{0}
    ::= { myDvmrpInterfaceEntry 2 }

myDvmrpInterfaceUnicastRoutingStatus  OBJECT-TYPE   
    SYNTAX     EnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Enable DVMRP unicast routing (to send and receive DVMRP routes).
         This feature is disabled by default."
    DEFVAL{disabled}
    ::= { myDvmrpInterfaceEntry 3 }

myDvmrpInterfaceRejectNonPrunersStatus  OBJECT-TYPE   
    SYNTAX     EnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Prevent peering with nonpruning DVMRP neighbors."
    DEFVAL{disabled}
    ::= { myDvmrpInterfaceEntry 4 }

myDvmrpInterfaceAutoSummaryStatus  OBJECT-TYPE
    SYNTAX      EnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Disable or Enabled DVMRP autosummarization."
    DEFVAL{enabled}
    ::= { myDvmrpInterfaceEntry 5 }

myDvmrpInterfaceRtsRec  OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of received Dvmrp Routes."
    ::= { myDvmrpInterfaceEntry 6 }

myDvmrpInterfacePoisonReverseRtsRec  OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of received poison-reverse Routes."
    ::= { myDvmrpInterfaceEntry 7}

myDvmrpInterfaceUniRtAdvertised  OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of Advertised unicast Routes."
    ::= { myDvmrpInterfaceEntry 8}

myDvmrpInterfaceDvmrpRtAdvertised  OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of Advertised dvmrp Routes."
    ::= { myDvmrpInterfaceEntry 9}

--
--metric-offset Table
--

myDvmrpMetricOffsetTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF MyDvmrpMetricOffsetEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The (conceptual) table listing the MetricOffset on
         which Dvmrp is enabled."
    ::= {  myDvmrpMIBObjects 3 }
  
myDvmrpMetricOffsetEntry OBJECT-TYPE
    SYNTAX     MyDvmrpMetricOffsetEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "An entry (conceptual row) representing an
         MetricOffset on which Dvmrp is enabled."
    INDEX      { myDvmrpMetricOffsetIfIndex,myDvmrpMetricOffsetInOrOut }
    ::= { myDvmrpMetricOffsetTable 1 }
              
MyDvmrpMetricOffsetEntry ::= SEQUENCE {
    myDvmrpMetricOffsetIfIndex	    InterfaceIndex,
    myDvmrpMetricOffsetInOrOut       Integer32,
    myDvmrpMetricOffsetIncrement     Integer32  --(1-31)
    }
    
myDvmrpMetricOffsetIfIndex OBJECT-TYPE
    SYNTAX     InterfaceIndex
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The ifIndex value of this Dvmrp interface."
    ::= { myDvmrpMetricOffsetEntry 1 }

myDvmrpMetricOffsetInOrOut  OBJECT-TYPE
    SYNTAX      Integer32{in(1),out(2)}
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "in means Specifies that the increment value is added to
         incoming DVMRP reports and is reported in mrinfo replies.
         out means Specifies that the increment value is added to
         outgoing DVMRP reports for routes from the DVMRP routing
         table."
    ::= { myDvmrpMetricOffsetEntry 2}

myDvmrpMetricOffsetIncrement  OBJECT-TYPE
    SYNTAX      Integer32(0..31)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Value added to the metric of a DVMRP route advertised in 
         a report message,the default increment value for incoming 
         routes is 1,the range is 1 to 31; and the default for outgoing 
         routes is 0,the range is 0 to 31."
    DEFVAL{1}
    ::= { myDvmrpMetricOffsetEntry 3 }
  
--
--Summary Table
--
myDvmrpSummaryTable     OBJECT-TYPE
    SYNTAX     SEQUENCE OF MyDvmrpSummaryEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The (conceptual) table listing the Summary on
         which Dvmrp is enabled."
    ::= {  myDvmrpMIBObjects 4 }
  
myDvmrpSummaryEntry OBJECT-TYPE
    SYNTAX     MyDvmrpSummaryEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "An entry (conceptual row) representing 
         Summary enabled."
    INDEX      { myDvmrpIfIndex, myDvmrpSummaryAddress,
                 myDvmrpSummaryMask }
    ::= { myDvmrpSummaryTable 1 }
              
MyDvmrpSummaryEntry ::= SEQUENCE {      
    myDvmrpIfIndex                  InterfaceIndex, 
    myDvmrpSummaryAddress           IpAddress,
    myDvmrpSummaryMask              IpAddress,
    myDvmrpSummaryMetric            Integer32,--(1-32) 
    myDvmrpSummaryStatus            RowStatus          
    }
    
myDvmrpIfIndex OBJECT-TYPE
    SYNTAX     InterfaceIndex
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The ifIndex value of this Dvmrp interface."
    ::= { myDvmrpSummaryEntry 1 }
    
myDvmrpSummaryAddress   OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Summary IP address that is advertised instead of 
         the more specific route."
    ::= { myDvmrpSummaryEntry 2 }

myDvmrpSummaryMask    OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Mask on the summary IP address."
    ::= { myDvmrpSummaryEntry 3 }

myDvmrpSummaryMetric  OBJECT-TYPE
    SYNTAX      Integer32(1..32)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Metric that is advertised with the summary address."
    DEFVAL{1}
    ::= { myDvmrpSummaryEntry 4 }

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

--
--Metric Table
--
myDvmrpMetricTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF MyDvmrpMetricEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The (conceptual) table listing the interfaces on
         which Dvmrp is enabled."
    ::= {  myDvmrpMIBObjects 5 }
  
myDvmrpMetricEntry OBJECT-TYPE
    SYNTAX     MyDvmrpMetricEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "An entry (conceptual row) of myDvmrpMetricTable."
    INDEX      {myDvmrpMetricIfIndex,myDvmrpMetric,
                myDvmrpMetricProtocolId}
    ::= { myDvmrpMetricTable 1 }

MyDvmrpMetricEntry ::= SEQUENCE {
    myDvmrpMetricIfIndex		               InterfaceIndex,            
    myDvmrpMetric                            Integer32,--0-32
    myDvmrpMetricListAclName                 DisplayString,
    myDvmrpMetricProtocolId                  Integer32,  
    myDvmrpMetricStatus                      RowStatus
    }

myDvmrpMetricIfIndex OBJECT-TYPE
    SYNTAX     InterfaceIndex
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The ifIndex value of this Dvmrp interface."
    ::= { myDvmrpMetricEntry 1 }
    
myDvmrpMetric      OBJECT-TYPE
    SYNTAX     Integer32(0..32)
    MAX-ACCESS  not-accessible
    STATUS     current
    DESCRIPTION
        "Metric associated with a set of destinations for 
         DVMRP reports.  A value of 0 means that the route 
         is not advertised. A value of 32 is equivalent to 
         infinity (unreachable)."
    ::= { myDvmrpMetricEntry 2 }

myDvmrpMetricListAclName   OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS  read-create
    STATUS     current
    DESCRIPTION
        "The name of an access list,only the multicast destinations that
         match the access list are reported with the configured metric."
   ::= { myDvmrpMetricEntry 3 }
   
myDvmrpMetricProtocolId       OBJECT-TYPE
    SYNTAX     Integer32{ default(0),ospf(1), rip(2), static(3),dvmrp(4) }
    MAX-ACCESS  not-accessible
    STATUS     current
    DESCRIPTION
        "The number of Protocol Id,only routes learned by the specified 
         routing protocol are advertised in DVMRP report messages."
    DEFVAL {0}
    ::= { myDvmrpMetricEntry 4 }

myDvmrpMetricStatus    OBJECT-TYPE
    SYNTAX     RowStatus
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The status of this entry.  Creating the entry enables Dvmrp Metric; 
         destroying the entry disables Dvmrp Metric."
    ::= { myDvmrpMetricEntry 5}
 
myDvmrpRouteTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF MyDvmrpRouteEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The (conceptual) table listing the interfaces on
         which Dvmrp is enabled."
    ::= {  myDvmrpMIBObjects 6}
  
myDvmrpRouteEntry OBJECT-TYPE
    SYNTAX     MyDvmrpRouteEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "An entry (conceptual row) of myDvmrpRouteTable."
    INDEX      { myDvmrpRouteIpAddress,myDvmrpRouteInterface  }
    ::= { myDvmrpRouteTable 1 }

MyDvmrpRouteEntry ::= SEQUENCE {
    myDvmrpRouteIpAddress        IpAddress,
    myDvmrpRouteInterface        InterfaceIndex,
    myDvmrpRouteDistance         Integer32,
    myDvmrpRouteMetric           Integer32,
    myDvmrpRouteUptime           TimeTicks,
    myDvmrpRouteExpires          TimeTicks,
    myDvmrpRouteNextHopAddress   IpAddress,
    myDvmrpRouteNextHopInterface InterfaceIndex,
    myDvmrpRouteStatus           EnabledStatus
    }

myDvmrpRouteIpAddress  OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Clears the longest matched route."         
    ::= {  myDvmrpRouteEntry 1 }

myDvmrpRouteInterface  OBJECT-TYPE
    SYNTAX     InterfaceIndex
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The interface number of Dvmrp Route."
    ::= {  myDvmrpRouteEntry 2 }

myDvmrpRouteDistance  OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "For distance, enter the administrative distance to the
         destination. By default, the administrative distance for DVMRP
         routes is 0 and take precedence over unicast routing table routes. If
         you have two paths to a source, one through unicast routing (using
         PIM as the multicast routing protocol) and another using DVMRP,
         and if you want to use the PIM path, increase the administrative
         distance for DVMRP routes. The range is 0 to 255."
    ::= {  myDvmrpRouteEntry 3 }

myDvmrpRouteMetric  OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Metric associated with a set of destinations for 
         DVMRP reports.  A value of 0 means that the route 
         is not advertised. A value of 32 is equivalent to 
         infinity (unreachable)."
    ::= {  myDvmrpRouteEntry 4 }

myDvmrpRouteUptime  OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "How long (in hours, minutes, and seconds) that the route has been in
         the DVMRP routing table."
    ::= {  myDvmrpRouteEntry 5 }

myDvmrpRouteExpires  OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "How long (in hours, minutes, and seconds) until the entry is removed
         from the DVMRP routing table."
    ::= {  myDvmrpRouteEntry 6 }

myDvmrpRouteNextHopAddress  OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The address of next hop."
    ::= {  myDvmrpRouteEntry 7 }

myDvmrpRouteNextHopInterface  OBJECT-TYPE
      SYNTAX     InterfaceIndex
      MAX-ACCESS read-only
      STATUS     current
      DESCRIPTION
         "The ifindex of next hop."
      ::= {  myDvmrpRouteEntry 8 }

myDvmrpRouteStatus OBJECT-TYPE
    SYNTAX     EnabledStatus
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "The status of this entry.  only be used to 
         destroy the entry disables Dvmrp Route,the
         satuss of enabled will destroy all entry and
         disabled only destroy one entry associate with
         myDvmrpRouteIpAddress and myDvmrpRouteInterface."
    ::= { myDvmrpRouteEntry 9 }

--
-- Notification 
--
myDvmrpTraps  OBJECT IDENTIFIER ::= { myDvmrpMIBObjects 7 }
myDvmrpRouteInformation NOTIFICATION-TYPE   
    STATUS             current
    DESCRIPTION
        "A myDvmrpRouteInformation trap signifies the
        Number of routes is more than The limit of 
        myDvmrpRoutehogNotification in one minute,
        then the trap should be generated."
    ::= { myDvmrpTraps 1 }


-- units of conformance

myDvmrpMIBConformance OBJECT IDENTIFIER ::= { myDvmrpMIB 2 }
myDvmrpMIBCompliances OBJECT IDENTIFIER ::= { myDvmrpMIBConformance 1 }
myDvmrpMIBGroups      OBJECT IDENTIFIER ::= { myDvmrpMIBConformance 2 }


-- compliance statements

myDvmrpMIBCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
        "The compliance statement for entities which implement
         the My DVMRP MIB"
    MODULE  -- this module
    MANDATORY-GROUPS {
        myDvmrpBaseMIBGroup,    
        myDvmrpInterfaceMIBGroup,
        myDvmrpMetricOffsetMIBGroup,
        myDvmrpSummaryMIBGroup,
        myDvmrpMetricMIBGroup,
        myDvmrpRouteMIBGroup
        }
    ::= { myDvmrpMIBCompliances 1 }
                
-- conformance information

myDvmrpBaseMIBGroup OBJECT-GROUP
    OBJECTS {
    myDvmrpRouteLimit,
    myDvmrpRoutehogNotification
    }
    STATUS  current
    DESCRIPTION
        "A collection of general objects providing DVMRP managment."
    ::= { myDvmrpMIBGroups 1 }

myDvmrpInterfaceMIBGroup OBJECT-GROUP
    OBJECTS {
    myDvmrpInterfaceIfIndex,                                                                      
    myDvmrpInterfaceDefaultInformation,
    myDvmrpInterfaceUnicastRoutingStatus, 
    myDvmrpInterfaceRejectNonPrunersStatus,      
    myDvmrpInterfaceAutoSummaryStatus,
    myDvmrpInterfaceRtsRec,
    myDvmrpInterfacePoisonReverseRtsRec,
    myDvmrpInterfaceUniRtAdvertised,
    myDvmrpInterfaceDvmrpRtAdvertised
    }
    STATUS  current
    DESCRIPTION
        "A collection of DVMRP interface managment."
    ::= { myDvmrpMIBGroups 2 }
    
myDvmrpMetricOffsetMIBGroup OBJECT-GROUP
    OBJECTS {
    myDvmrpMetricOffsetIfIndex,
    myDvmrpMetricOffsetInOrOut,
    myDvmrpMetricOffsetIncrement
    }
    STATUS  current
    DESCRIPTION
        "A collection of DVMRP metric offset objects."
    ::= { myDvmrpMIBGroups 3 }
    
myDvmrpSummaryMIBGroup OBJECT-GROUP
    OBJECTS {
    myDvmrpIfIndex, 
    myDvmrpSummaryAddress,
    myDvmrpSummaryMask,
    myDvmrpSummaryMetric, 
    myDvmrpSummaryStatus   
    }
    STATUS  current
    DESCRIPTION
        "A collection of DVMRP summary objects."
    ::= { myDvmrpMIBGroups 4 }
 
myDvmrpMetricMIBGroup OBJECT-GROUP
    OBJECTS {
    myDvmrpMetricIfIndex,            
    myDvmrpMetric,
    myDvmrpMetricListAclName,
    myDvmrpMetricProtocolId,  
    myDvmrpMetricStatus
    }
    STATUS  current
    DESCRIPTION
        "A collection of DVMRP metric objects."
    ::= { myDvmrpMIBGroups 5 }
    
myDvmrpRouteMIBGroup OBJECT-GROUP
    OBJECTS {
    myDvmrpRouteIpAddress,
    myDvmrpRouteInterface,
    myDvmrpRouteDistance,
    myDvmrpRouteMetric,
    myDvmrpRouteUptime,
    myDvmrpRouteExpires,
    myDvmrpRouteNextHopAddress,
    myDvmrpRouteNextHopInterface,
    myDvmrpRouteStatus
    }
    STATUS  current
    DESCRIPTION
        "A collection of DVMRP route objects."
    ::= { myDvmrpMIBGroups 6 }                

END




    
    
               
                                                 
