--*****************************************************************
-- This mib was extracted from rfc2933
--
-- $Copyright$
-- 
-- *****************************************************************

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

myIgmpMIBObjects OBJECT IDENTIFIER ::= { myIgmpMIB 1 }  
myIgmpTraps      OBJECT IDENTIFIER ::= { myIgmpMIBObjects 3 }
--
--  The MY-IGMP Interface Table
--
myIgmpInterfaceTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF MyIgmpInterfaceEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The (conceptual) table listing the interfaces on
         which IGMP is enabled."
    ::= {  myIgmpMIBObjects 1 }

myIgmpInterfaceEntry OBJECT-TYPE
    SYNTAX     MyIgmpInterfaceEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "An entry (conceptual row) representing an
         interface on which IGMP is enabled."
    INDEX      { myIgmpInterfaceIfIndex }
    ::= { myIgmpInterfaceTable 1 }
              
MyIgmpInterfaceEntry ::= SEQUENCE {
    myIgmpInterfaceIfIndex		               Integer32 ,
    myIgmpInterfaceQueryInterval	            Unsigned32,
	 myIgmpInterfaceVersion		               Unsigned32,
	 myIgmpInterfaceQuerier		               IpAddress,
	 myIgmpInterfaceQueryMaxResponseTime      Unsigned32,
	 myIgmpInterfaceQuerierUpTime             TimeTicks,
    myIgmpInterfaceQuerierExpiryTime         TimeTicks,
    myIgmpInterfaceVersion1QuerierTimer      TimeTicks,
    myIgmpInterfaceWrongVersionQueries       Counter32,
    myIgmpInterfaceJoins		               Counter32,
    myIgmpInterfaceProxyIfIndex              InterfaceIndexOrZero,
    myIgmpInterfaceGroups                    Gauge32,            
    myIgmpInterfaceRobustness                Unsigned32,
	 myIgmpInterfaceLastMembQueryIntvl        Unsigned32,
	 myIgmpInterfaceQuerierPresentTimeout     Integer32,           	
	 myIgmpInterfaceLeaves		               Counter32,		   
	 myIgmpInterfaceAccessGroupAclName        DisplayString,
	 myIgmpInterfaceEnabled                   EnabledStatus,
	 myIgmpInterfaceHostVersion               Unsigned32	                          
    }
 
myIgmpInterfaceIfIndex OBJECT-TYPE
    SYNTAX     InterfaceIndex
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The ifIndex value of the interface for which IGMP is
         enabled."
    ::= { myIgmpInterfaceEntry 1 }

myIgmpInterfaceQueryInterval OBJECT-TYPE
    SYNTAX     Unsigned32(1..65535)
    UNITS      "seconds"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "The frequency at which IGMP Host-Query packets are
         transmitted on this interface."
    DEFVAL     { 125 }  
    ::= { myIgmpInterfaceEntry 2 }
    
myIgmpInterfaceVersion OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "The version of IGMP which is running on this interface.
         This object can be used to configure a router capable of
         running either value.  For IGMP to function correctly, all
         routers on a LAN must be configured to run the same version
         of IGMP on that LAN."
    DEFVAL     { 2 }
    ::= { myIgmpInterfaceEntry 3 }  
    
myIgmpInterfaceQuerier OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The address of the IGMP Querier on the IP subnet to which           
         this interface is attached."
    ::= { myIgmpInterfaceEntry 4 }
        
myIgmpInterfaceQueryMaxResponseTime OBJECT-TYPE
    SYNTAX     Unsigned32 (10..250)
    UNITS      "tenths of seconds"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "The maximum query response time advertised in IGMPv2
         queries on this interface."
    DEFVAL     { 100 }
    ::= { myIgmpInterfaceEntry 5 }   

myIgmpInterfaceQuerierUpTime OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The time since starIgmpInterfaceQuerier was last changed."
    ::= { myIgmpInterfaceEntry 6 }

myIgmpInterfaceQuerierExpiryTime OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The amount of time remaining before the Other Querier
         Present Timer expires.  If the local system is the querier,
         the value of this object is zero."
    ::= { myIgmpInterfaceEntry 7 }
    
myIgmpInterfaceVersion1QuerierTimer OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The time remaining until the host assumes that there are no
         IGMPv1 routers present on the interface.  While this is non-
         zero, the host will reply to all queries with version 1
         membership reports."
    ::= { myIgmpInterfaceEntry 8} 
 
myIgmpInterfaceWrongVersionQueries OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION 
        "The number of queries received whose IGMP version does not
         match igmpInterfaceVersion, over the lifetime of the row
         entry.  IGMP requires that all routers on a LAN be
         configured to run the same version of IGMP.  Thus, if any
         queries are received with the wrong version, this indicates
         a configuration error."
    ::= { myIgmpInterfaceEntry 9 }

myIgmpInterfaceJoins OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The number of times a group membership has been added on
         this interface; that is, the number of times an entry for
         this interface has been added to the Cache Table.  This
         object gives an indication of the amount of IGMP activity
         over the lifetime of the row entry."
    ::= { myIgmpInterfaceEntry 10 } 

myIgmpInterfaceProxyIfIndex OBJECT-TYPE
    SYNTAX     InterfaceIndexOrZero
    MAX-ACCESS read-only
    STATUS     obsolete
    DESCRIPTION
        "Some devices implement a form of IGMP proxying whereby
         memberships learned on the interface represented by this
         row, cause IGMP Host Membership Reports to be sent on the
         interface whose ifIndex value is given by this object.  Such
         a device would implement the igmpV2RouterMIBGroup only on
         its router interfaces (those interfaces with non-zero
         igmpInterfaceProxyIfIndex).  Typically, the value of this
         object is 0, indicating that no proxying is being done."
    DEFVAL     { 0 }
    ::= { myIgmpInterfaceEntry 11 } 

myIgmpInterfaceGroups OBJECT-TYPE
    SYNTAX     Gauge32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The current number of entries for this interface in the
         Cache Table."
    ::= { myIgmpInterfaceEntry 12 }
     
myIgmpInterfaceRobustness OBJECT-TYPE
    SYNTAX     Unsigned32 (1..255)
    MAX-ACCESS read-write     
    STATUS     current
    DESCRIPTION
        "The Robustness Variable allows tuning for the expected
         packet loss on a subnet.  If a subnet is expected to be
         lossy, the Robustness Variable may be increased.  IGMP is
         robust to (Robustness Variable-1) packet losses."
    DEFVAL     { 2 }
    ::= { myIgmpInterfaceEntry 13 }
  
myIgmpInterfaceLastMembQueryIntvl OBJECT-TYPE
    SYNTAX     Unsigned32 (1..655)
    UNITS      "tenths of seconds"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "The Last Member Query Interval is the Max Response Time
         inserted into Group-Specific Queries sent in response to
         Leave Group messages, and is also the amount of time between
         Group-Specific Query messages.  This value may be tuned to
         modify the leave latency of the network.  A reduced value
         results in reduced time to detect the loss of the last
         member of a group.  The value of this object is irrelevant
         if igmpInterfaceVersion is 1."
    DEFVAL     { 10 }
    ::= { myIgmpInterfaceEntry 14 }    
 
myIgmpInterfaceQuerierPresentTimeout OBJECT-TYPE
      SYNTAX     Integer32(60..300)
      UNITS      "seconds"
      MAX-ACCESS read-write
      STATUS     current
      DESCRIPTION
          "A timeout interval.  If no IGMPv2 queries are heard on this
	        interface within this timeout interval, the local router
	        will take over the Querier on the IP subnet to which this
	        interface is attached."
      DEFVAL     { 265 }
      ::= { myIgmpInterfaceEntry 15 }

myIgmpInterfaceLeaves OBJECT-TYPE
      SYNTAX     Counter32
      MAX-ACCESS read-only
      STATUS     current
      DESCRIPTION
          "The number of times a group membership has been removed
	        from this interface; that is, the number of times an entry
	        for this interface has been deleted from the Cache Table."
      ::= { myIgmpInterfaceEntry 16 }

myIgmpInterfaceAccessGroupAclName   OBJECT-TYPE    
      SYNTAX     DisplayString
      MAX-ACCESS read-write
      STATUS     current
      DESCRIPTION
          "To control the multicast groups that hosts on the subnet 
           serviced by an interface can join,Defalut value means 
           allow all multicast groups can join."
      DEFVAL {""}
      ::= { myIgmpInterfaceEntry 17 }

myIgmpInterfaceEnabled    OBJECT-TYPE
    SYNTAX    EnabledStatus
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Evaluates to Enable if  this interface are
         running IGMP."    
    ::= { myIgmpInterfaceEntry 18 }

myIgmpInterfaceHostVersion OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The version of Host which is running on this interface."   
    ::= { myIgmpInterfaceEntry 19 }  

--
--my igmp interface static Table
--
myIgmpInterfaceStaticTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF MyIgmpInterfaceStaticEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The (conceptual) table listing the interfaces on
         which IGMP is enabled."
    ::= {  myIgmpMIBObjects 2 }

myIgmpInterfaceStaticEntry OBJECT-TYPE
    SYNTAX     MyIgmpInterfaceStaticEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "An entry (conceptual row) representing an
         interface on which IGMP is enabled."
    INDEX      { myIgmpInterfaceStaticInterface,
                 myIgmpInterfaceStaticGroupAddress }
    ::= { myIgmpInterfaceStaticTable 1 }

MyIgmpInterfaceStaticEntry  ::= SEQUENCE {
    myIgmpInterfaceStaticInterface       InterfaceIndex,
    myIgmpInterfaceStaticGroupAddress    IpAddress,       
    myIgmpInterfaceStaticStatus          RowStatus
    }

myIgmpInterfaceStaticInterface   OBJECT-TYPE    
    SYNTAX     InterfaceIndex
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The index of interface."    
    ::= { myIgmpInterfaceStaticEntry 1 }

myIgmpInterfaceStaticGroupAddress   OBJECT-TYPE    
    SYNTAX     IpAddress
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "configed the static group address, the multilayer switch 
         does not accept the packets itself, but only forwards them."    
    ::= { myIgmpInterfaceStaticEntry 2 }

myIgmpInterfaceStaticStatus OBJECT-TYPE
    SYNTAX     RowStatus
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The status of this entry.  Creating the entry enables Igmp static table; 
         destroying the entry disables Igmp static table."
    ::= { myIgmpInterfaceStaticEntry 3}

--
-- Notification 
--
myIgmpVersionConflicted    NOTIFICATION-TYPE
    OBJECTS {
       myIgmpInterfaceIfIndex,
       myIgmpInterfaceVersion,
       myIgmpInterfaceHostVersion
    }
    STATUS             current
    DESCRIPTION
        "A myIgmpVersionErr trap signifies version is 
         different in the interface with host.This trap 
         should be generated when interface run  version 
         IGMPV1 and reported by host which run version IGMPV2.
         also when interface run version IGMPV2 and reported 
         by host which run version IGMPV1."
    ::= { myIgmpTraps 1 }

-- units of conformance

myIgmpMIBConformance OBJECT IDENTIFIER ::= { myIgmpMIB 2 }
myIgmpMIBCompliances OBJECT IDENTIFIER ::= { myIgmpMIBConformance 1 }
myIgmpMIBGroups      OBJECT IDENTIFIER ::= { myIgmpMIBConformance 2 }

-- compliance statements
myIgmpMIBCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
        "The compliance statement for entities which implement
         the My IGMP MIB"
    MODULE  -- this module
    MANDATORY-GROUPS {
        myIgmpInterfaceMIBGroup,    
        myIgmpInterfaceStaticMIBGroup
        }
    ::= { myIgmpMIBCompliances 1 }

-- conformance information

myIgmpInterfaceMIBGroup OBJECT-GROUP
    OBJECTS {
    myIgmpInterfaceIfIndex,
    myIgmpInterfaceQueryInterval,
	 myIgmpInterfaceVersion,
	 myIgmpInterfaceQuerier,
	 myIgmpInterfaceQueryMaxResponseTime,
	 myIgmpInterfaceQuerierUpTime,
    myIgmpInterfaceQuerierExpiryTime,
    myIgmpInterfaceVersion1QuerierTimer,
    myIgmpInterfaceWrongVersionQueries,
    myIgmpInterfaceJoins,
    myIgmpInterfaceProxyIfIndex,
    myIgmpInterfaceGroups,            
    myIgmpInterfaceRobustness,
	 myIgmpInterfaceLastMembQueryIntvl,
	 myIgmpInterfaceQuerierPresentTimeout,           	
	 myIgmpInterfaceLeaves,		   
	 myIgmpInterfaceAccessGroupAclName,
	 myIgmpInterfaceEnabled,
	 myIgmpInterfaceHostVersion	 
    }
    STATUS  current
    DESCRIPTION
        "A collection of IGMP interface managment."
    ::= { myIgmpMIBGroups 1 }

myIgmpInterfaceStaticMIBGroup OBJECT-GROUP
    OBJECTS {
    myIgmpInterfaceStaticInterface,
    myIgmpInterfaceStaticGroupAddress,       
    myIgmpInterfaceStaticStatus
    }
    STATUS  current
    DESCRIPTION
        "A collection of IGMP interface static managment."
    ::= { myIgmpMIBGroups 2 }
    
-- -------------------------------------------------------------
-- Compliance statements
-- -------------------------------------------------------------
igmpExternCompliance MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
        "The compliance statement for device support of IGMP
         services."
         
    MODULE
        OBJECT           myIgmpInterfaceQueryInterval
        SYNTAX           Unsigned32(1..65535)
        DESCRIPTION     "The Scope is 1-65535."
         
        OBJECT           myIgmpInterfaceQueryMaxResponseTime
        SYNTAX           Unsigned32(10..250)
        DESCRIPTION     "The Scope is 10-250."         
        
        OBJECT           myIgmpInterfaceLastMembQueryIntvl
        SYNTAX           Unsigned32(1..655)
        DESCRIPTION     "The Scope is 1-655." 
        
        OBJECT           myIgmpInterfaceQuerierPresentTimeout
        SYNTAX           Unsigned32(60..300)
        DESCRIPTION      "The Scope is 60-300."                 
                             
    ::= { myIgmpMIBCompliances 2 }


END
     
     
     
