-- *****************************************************************
-- MY-IGMPFILTERINGPROFILE-MIB.mib:  My IGMP profiles MIB file
--
-- $Copyright$
-- 
-- *****************************************************************
--
DES7200-IGMP-FILTERINGPROFILE-MIB DEFINITIONS ::= BEGIN

IMPORTS
        MODULE-IDENTITY,
        OBJECT-TYPE,
        NOTIFICATION-TYPE,
        Integer32,
        IpAddress
                FROM SNMPv2-SMI
        DisplayString,
        RowStatus
                FROM SNMPv2-TC              
        VlanId
                FROM Q-BRIDGE-MIB
        MODULE-COMPLIANCE,
        OBJECT-GROUP,
        NOTIFICATION-GROUP
                FROM SNMPv2-CONF
        IfIndex
                FROM DES7200-TC
        EnabledStatus 
                FROM P-BRIDGE-MIB
        myMgmt
                FROM DES7200-SMI;

myIgmpFilteringProfileMIB MODULE-IDENTITY
        LAST-UPDATED "200312090000Z"
        ORGANIZATION "$Company$"
        CONTACT-INFO
                " 
                Tel: $Telephone$ 

                E-mail: $E-mail$"
        DESCRIPTION
                "This module defines my IGMP filtering profile mibs."
        REVISION      "200312090000Z"
        DESCRIPTION
                "Initial version of this MIB module."
        ::= { myMgmt 37}

myIgmpFilteringProfileMIBObjects OBJECT IDENTIFIER ::= { myIgmpFilteringProfileMIB 1 }

myIgmpFilteringMaxProfiles OBJECT-TYPE
        SYNTAX     Unsigned32
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
            "Indicates the maximum number of profiles supported by
            this device.  A value of zero indicates no limitation on
            the number of profiles."
        ::= { myIgmpFilteringProfileMIBObjects 1 }
        
myIgmpFilteringProfileActionTable OBJECT-TYPE
        SYNTAX SEQUENCE OF MyIgmpFilteringProfileActionEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "profile action table."
        ::= { myIgmpFilteringProfileMIBObjects 2}
    
myIgmpFilteringProfileActionEntry OBJECT-TYPE
        SYNTAX MyIgmpFilteringProfileActionEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "list of profile table"
        INDEX { myIgmpFilteringProfileIndex }         
        ::= { myIgmpFilteringProfileActionTable 1}
        
MyIgmpFilteringProfileActionEntry ::= 
        SEQUENCE {
        myIgmpFilteringProfileIndex Unsigned32,
        myIgmpFilteringProfileAction INTEGER,
        myIgmpFilteringProfileStatus INTEGER
        }

myIgmpFilteringProfileIndex OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION     
            ""
        ::= { myIgmpFilteringProfileActionEntry 1}  
        
myIgmpFilteringProfileAction OBJECT-TYPE
        SYNTAX INTEGER {
            permit(1),
	    deny(2)
	}
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION     
            "This object defines the action of this profile.
	     
	     If the object is set to deny(2):
             then all IGMP reports associated to IP multicast
             groups included in the profile identified by
             myIgmpFilteringProfileIndex will be dropped.

             If the object is set to permit(1):
             then all IGMP reports associated to IP multicast
             groups not included in the profile identified by
             myIgmpFilteringProfileIndex will be dropped."                        
        ::= { myIgmpFilteringProfileActionEntry 2}     
        
myIgmpFilteringProfileStatus OBJECT-TYPE
        SYNTAX INTEGER{
        	valid(1),
        	invalid(2)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION     
            "set this object to invalid(2) will remove current item"
        ::= { myIgmpFilteringProfileActionEntry 3}          

myIgmpFilteringProfileRangeTable OBJECT-TYPE
        SYNTAX SEQUENCE OF MyIgmpFilteringProfileRangeEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "IGMP filtering profile range table"
        ::= { myIgmpFilteringProfileMIBObjects 3}        
    
myIgmpFilteringProfileRangeEntry OBJECT-TYPE
        SYNTAX MyIgmpFilteringProfileRangeEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "list of profile table"
        INDEX { myIgmpFilteringProfileRangeIndex,
        	myIgmpFilteringProfieRangeMyAddress }         
        ::= { myIgmpFilteringProfileRangeTable 1}
        
MyIgmpFilteringProfileRangeEntry ::= 
        SEQUENCE {
        myIgmpFilteringProfileRangeIndex Unsigned32,
        myIgmpFilteringProfieRangeMyAddress IpAddress,
        myIgmpFilteringProfieRangeEndAddress IpAddress,  
        myIgmpFilteringProfileRangeStatus RowStatus      
        }

myIgmpFilteringProfileRangeIndex OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION     
            ""
        ::= { myIgmpFilteringProfileRangeEntry 1}               

myIgmpFilteringProfieRangeMyAddress OBJECT-TYPE
        SYNTAX IpAddress
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "This object describes the my of the IP multicast 
             group address of a contiguous range which will be
             subjected to filtering operation."
        ::= { myIgmpFilteringProfileRangeEntry 2 }      
        
myIgmpFilteringProfieRangeEndAddress OBJECT-TYPE
        SYNTAX IpAddress
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "This object indicates the type of Internet
	     address used to determine the end address 
	     of IP multicast group for a profile."
        ::= { myIgmpFilteringProfileRangeEntry 3 }     
        
myIgmpFilteringProfileRangeStatus OBJECT-TYPE
        SYNTAX RowStatus
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "the item status"
        ::= { myIgmpFilteringProfileRangeEntry 4 }            
        
myIgmpFilteringProfileMIBConformance OBJECT IDENTIFIER ::= { myIgmpFilteringProfileMIB 2 }
myIgmpFilteringProfileMIBCompliances OBJECT IDENTIFIER ::= { myIgmpFilteringProfileMIBConformance 1 }
myIgmpFilteringProfileMIBGroups      OBJECT IDENTIFIER ::= { myIgmpFilteringProfileMIBConformance 2 }


-- compliance statements

myIgmpFilteringProfileMIBCompliance MODULE-COMPLIANCE
        STATUS  current
        DESCRIPTION
                "The compliance statement for entities which implement
                the My Igmp filtering profile MIB"
        MODULE  -- this module
                MANDATORY-GROUPS { myIgmpFilteringProfileMIBGroup
                 }
        ::= { myIgmpFilteringProfileMIBCompliances 1 }
                
-- units of conformance

myIgmpFilteringProfileMIBGroup OBJECT-GROUP
        OBJECTS {
        	myIgmpFilteringMaxProfiles,
        	myIgmpFilteringProfileIndex,
        	myIgmpFilteringProfileAction,
        	myIgmpFilteringProfileStatus,
        	myIgmpFilteringProfileRangeIndex,
		myIgmpFilteringProfieRangeMyAddress,
		myIgmpFilteringProfieRangeEndAddress,
		myIgmpFilteringProfileRangeStatus
        }
        STATUS  current
        DESCRIPTION
                "A collection of objects providing Igmp filtering profile configure ."
        ::= { myIgmpFilteringProfileMIBGroups 1 }
        
END
