-- =============================================================================
-- Copyright (C) 2004 Paradyne Corporation.
-- =============================================================================

PDN-IGMP-STD-EXT-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, Counter32, Unsigned32
        FROM SNMPv2-SMI
    OBJECT-GROUP, MODULE-COMPLIANCE
        FROM SNMPv2-CONF
    igmpInterfaceEntry, igmpCacheEntry
        FROM IGMP-STD-MIB
    SwitchState
        FROM PDN-TC
    pdn-common
        FROM PDN-HEADER-MIB;
        
pdnIgmpStdExtMIB MODULE-IDENTITY
    LAST-UPDATED "200408170000Z"  -- Aug 17, 2004
    ORGANIZATION "Paradyne Networks
                  MIB Working Group
                  Other information about group editing the MIB."
    CONTACT-INFO "Paradyne Networks, Inc.
                  8545 126th Avenue North
                  Largo, FL 33733
                  www.paradyne.com
        
                  General Comments to: mibwg_team@paradyne.com

                  Editor(s)
                        Clay Sikes,
			Jesus Pinto"

    DESCRIPTION
        "This MIB module is a supplement to the IGMP-STD-MIB."

    REVISION "200408170000Z"  -- Aug 17, 2004
    DESCRIPTION "Added pdnIgmpGeneralQueryInterval object
		to configure this timer globally rather than
		per interface."

    REVISION "200401080000Z"  -- Jan 8, 2004
    DESCRIPTION "Added pdnIgmpSnoopingSelection to enabled/disable
		Igmp snooping on a system-wide basis."

    REVISION "200305060000Z"  -- May 6, 2003
    DESCRIPTION "Corrected a type where 
                 pdnIgmpIngerfaceLeaveJoinForwardingDelay should have
                 been pdnIgmpInterfaceLeaveJoinForwardingDelay."

    REVISION "200305010000Z"  -- May 1, 2003
    DESCRIPTION "Initial release."


::=  { pdn-common 47 }


pdnIgmpStdExtNotifications OBJECT IDENTIFIER ::= { pdnIgmpStdExtMIB 0 }
pdnIgmpStdExtObjects       OBJECT IDENTIFIER ::= { pdnIgmpStdExtMIB 1 }
pdnIgmpStdExtAFNs          OBJECT IDENTIFIER ::= { pdnIgmpStdExtMIB 2 }
pdnIgmpStdExtConformance   OBJECT IDENTIFIER ::= { pdnIgmpStdExtMIB 3 }

 

-- =============================================================================
-- ==                  MIB Objects                                            ==
-- =============================================================================


-- =====================================
-- == igmpInterfaceTable augmentation ==
-- =====================================

pdnIgmpInterfaceExtTable     OBJECT-TYPE
    SYNTAX      SEQUENCE OF PdnIgmpInterfaceExtEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "This table extends the igmpInterfaceTable."
    ::= { pdnIgmpStdExtObjects 1 }

pdnIgmpInterfaceExtEntry     OBJECT-TYPE
    SYNTAX      PdnIgmpInterfaceExtEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "An extended entry in the igmpInterfaceTable. Each entry corresonds
                to a particular interface."
    AUGMENTS     { igmpInterfaceEntry }
    ::= { pdnIgmpInterfaceExtTable 1 }

PdnIgmpInterfaceExtEntry ::=
    SEQUENCE {
        pdnIgmpInterfaceSnoopEnableDisable             SwitchState,
        pdnIgmpInterfaceLeaveDelay                     Unsigned32,
        pdnIgmpInterfaceLeaveJoinForwardingDelay       Unsigned32
    }

pdnIgmpInterfaceSnoopEnableDisable OBJECT-TYPE
    SYNTAX      SwitchState
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "This object specifies whether or not IGMP Snooping is 
                enabled or disabled.
                   enabled(1)  - IGMP Snooping is Enabled
                   disabled(2) - IGMP Snooping is Disabled"
    DEFVAL      { disabled }
    ::= { pdnIgmpInterfaceExtEntry 1 }

pdnIgmpInterfaceLeaveDelay OBJECT-TYPE
    SYNTAX      Unsigned32(0..255)
    UNITS       "tenths of a second"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "This object specifies the leave-delay period.

                This value is defened as the period of time during which a 
                multicast stream will continue to be forwarded on an interface 
                after receipt of an IGMP leave message for that stream."
    DEFVAL      { 3 }
    ::= { pdnIgmpInterfaceExtEntry 2 }


pdnIgmpInterfaceLeaveJoinForwardingDelay OBJECT-TYPE
    SYNTAX      Unsigned32(0..255)
    UNITS       "tenths of a second"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "This object specifies the leave-join-delay period.

                This value is defined as the period of time during which new 
                multicast streams will not be forwarded on a port following 
                the receipt of an IGMP Leave message."
    DEFVAL      { 3 }
    ::= { pdnIgmpInterfaceExtEntry 3 }



-- =====================================
-- == igmpCacheTable augmentation ==
-- =====================================

pdnIgmpCacheExtTable     OBJECT-TYPE
    SYNTAX      SEQUENCE OF PdnIgmpCacheExtEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "This table extends the igmpCacheTable."
    ::= { pdnIgmpStdExtObjects 2 }

pdnIgmpCacheExtEntry     OBJECT-TYPE
    SYNTAX      PdnIgmpCacheExtEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "An extended entry in the igmpCacheTable. Each entry corresonds
                to a particular IP Multicast Group Destination Address on a 
                particular interface."
    AUGMENTS     { igmpCacheEntry }
    ::= { pdnIgmpCacheExtTable 1 }

PdnIgmpCacheExtEntry ::=
    SEQUENCE {
        pdnIgmpCacheStatsMulticastPktsIn      Counter32,
        pdnIgmpCacheStatsMulticastPktsOut     Counter32,
        pdnIgmpCacheStatsIgmpQueriesIn        Counter32,
        pdnIgmpCacheStatsIgmpQueriesOut       Counter32,
        pdnIgmpCacheStatsIgmpReportsIn        Counter32,
        pdnIgmpCacheStatsIgmpReportsOut       Counter32,
        pdnIgmpCacheStatsIgmpLeavesIn         Counter32,
        pdnIgmpCacheStatsIgmpLeavesOut        Counter32
    }

pdnIgmpCacheStatsMulticastPktsIn OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The total number of IP Multicast packets received 
                excluding IGMP messages."
    ::= { pdnIgmpCacheExtEntry 1 }

pdnIgmpCacheStatsMulticastPktsOut OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The total number of IP Multicast packets transmitted
                excluding IGMP messages."
    ::= { pdnIgmpCacheExtEntry 2 }

pdnIgmpCacheStatsIgmpQueriesIn OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The total number of IGMP Query messages received."
    ::= { pdnIgmpCacheExtEntry 3 }

pdnIgmpCacheStatsIgmpQueriesOut OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The total number of IGMP Query messages transmitted."
    ::= { pdnIgmpCacheExtEntry 4 }

pdnIgmpCacheStatsIgmpReportsIn OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The total number of IGMP Report messages received."
    ::= { pdnIgmpCacheExtEntry 5 }

pdnIgmpCacheStatsIgmpReportsOut OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The total number of IGMP Report messages transmitted."
    ::= { pdnIgmpCacheExtEntry 6 }

pdnIgmpCacheStatsIgmpLeavesIn OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The total number of IGMP Leave messages received."
    ::= { pdnIgmpCacheExtEntry 7 }

pdnIgmpCacheStatsIgmpLeavesOut OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The total number of IGMP Leave messages transmitted."
    ::= { pdnIgmpCacheExtEntry 8 }

pdnIgmpSnoopingSelection OBJECT-TYPE  
    SYNTAX      SwitchState
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "This object specifies whether or not IGMP Snooping is 
                enabled or disabled on a system-wide basis.

                enabled(1)  - IGMP Snooping is Enabled  on the device
                disabled(2) - IGMP Snooping is Disabled on the device
		"

    DEFVAL      { disabled }
    ::= { pdnIgmpStdExtObjects 3 }


pdnIgmpGeneralQueryInterval OBJECT-TYPE
    SYNTAX     Unsigned32
    UNITS      "seconds"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "This object is similar to the igmpInterfaceQueryInterval
	object defined in RFC2933. However, it can be used to set
	a global value that applies to all the interfaces in the
	system with IGMP enabled.

	A value of zero disables this option and thus the agent
	shall employ the value configured in the 
	igmpInterfaceQueryInterval for each interface running
	IGMP. In the other hands, if this object is set to a value
	greater than zero, the value takes precedence over the
	value configured in the igmpInterfaceQueryInterval for 
	that interface.
	"
    DEFVAL     { 125 }
    ::= { pdnIgmpStdExtObjects 4 }

-- =============================================================================
-- == Conformance Information                                                 ==
-- =============================================================================

pdnIgmpStdExtCompliances    OBJECT IDENTIFIER ::= { pdnIgmpStdExtConformance 1 }
pdnIgmpStdExtGroups         OBJECT IDENTIFIER ::= { pdnIgmpStdExtConformance 2 }

-- ===========================
-- == Compliance Statements ==
-- ===========================

pdnIgmpStdExtMIBCompliance MODULE-COMPLIANCE
    STATUS      deprecated
    DESCRIPTION "The compliance statement for IP Multicast products which
                implement the pdnIpMcaseMIB."
    MODULE      -- this module
    -- No mandatory groups are specified

    -- This compliance is deprecated

    GROUP       pdnIgmpStdExtConfigGroup
    DESCRIPTION "This group is mandatory only for implementations which
                the relative parameters to be configured for IP 
                Multicast and IGMP operation."

    GROUP       pdnIgmpStdExtStatsGroup
    DESCRIPTION "This group is mandatory only for implementations which
                require additional IP Multicast statistics."

    GROUP       pdnIgmpStdExtGeneralConfigGroup
    DESCRIPTION "This group is optional."

    ::= { pdnIgmpStdExtCompliances 1 }

pdnIgmpStdExtMIBComplianceV2 MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION "The compliance statement for Ip products which
                implement the IGMP protocol."

    MODULE      -- this module
    -- No mandatory groups are specified

    GROUP       pdnIgmpStdExtConfigGroup
    DESCRIPTION "This group is mandatory only for implementations which
                the relative parameters to be configured for IP 
                Multicast and IGMP operation."

    GROUP       pdnIgmpStdExtStatsGroup
    DESCRIPTION "This group is mandatory only for implementations which
                require additional IP Multicast statistics."

    GROUP       pdnIgmpStdExtGeneralConfigGroupV2
    DESCRIPTION "This group is optional."
    ::= { pdnIgmpStdExtCompliances 2 }

-- ==========================
-- == Units of Conformance ==
-- ==========================

pdnIgmpStdExtObjGroups     OBJECT IDENTIFIER ::= { pdnIgmpStdExtGroups 1 }
pdnIgmpStdExtAfnGroups     OBJECT IDENTIFIER ::= { pdnIgmpStdExtGroups 2 }
pdnIgmpStdExtNtfyGroups    OBJECT IDENTIFIER ::= { pdnIgmpStdExtGroups 3 }


-- ===================
-- == Object Groups ==
-- ===================

pdnIgmpStdExtConfigGroup OBJECT-GROUP
    OBJECTS     {
                     pdnIgmpInterfaceSnoopEnableDisable,
                     pdnIgmpInterfaceLeaveDelay,
                     pdnIgmpInterfaceLeaveJoinForwardingDelay
    }
    STATUS      current
    DESCRIPTION "Objects grouped for configuring IP Multicast and
                IGMP parameters. "
    ::= { pdnIgmpStdExtObjGroups  1 }

pdnIgmpStdExtStatsGroup OBJECT-GROUP
    OBJECTS     {
                     pdnIgmpCacheStatsMulticastPktsIn,
                     pdnIgmpCacheStatsMulticastPktsOut,
                     pdnIgmpCacheStatsIgmpQueriesIn,
                     pdnIgmpCacheStatsIgmpQueriesOut,
                     pdnIgmpCacheStatsIgmpReportsIn,
                     pdnIgmpCacheStatsIgmpReportsOut,
                     pdnIgmpCacheStatsIgmpLeavesIn,
                     pdnIgmpCacheStatsIgmpLeavesOut
    }
    STATUS      current
    DESCRIPTION "Objects grouped for IP Multicast and IGMP Statistics."
    ::= { pdnIgmpStdExtObjGroups  2 }

pdnIgmpStdExtGeneralConfigGroup OBJECT-GROUP
    OBJECTS     {
                     pdnIgmpSnoopingSelection
    }
    STATUS      deprecated
    DESCRIPTION "Objects grouped for general configuring of IP Multicast
                and IGMP parameters. 
		
		This group has been deprecated in favor of 
		pdnIgmpStdExtGeneralConfigGroupV2.
		"
    ::= { pdnIgmpStdExtObjGroups  3 }

pdnIgmpStdExtGeneralConfigGroupV2 OBJECT-GROUP
    OBJECTS     {
                     pdnIgmpSnoopingSelection,
		     pdnIgmpGeneralQueryInterval
    }
    STATUS      current
    DESCRIPTION "Objects grouped for general configuring of IP Multicast
                and IGMP parameters. "
    ::= { pdnIgmpStdExtObjGroups  4 }


-- ==================================
-- == Accessible for Notify Groups ==
-- ==================================

-- None defined.


-- =========================
-- == Notification Groups ==
-- =========================

-- None defined.



-- =========
-- == END ==
-- =========
END
