ADTRAN-GENIGMP-MIB

-- TITLE:     The ADTRAN IGMP MIB
-- PRODUCT:   ADTRAN Ethernet DSLAM Products
-- VERSION:   1.1
-- DATE:      05/19/09
-- AUTHOR:    Joey Boyd
-- STATUS:    PRELIMINARY

-- This MIB defines the object identifiers (OIDs) for the
-- ADTRAN GENIGMP MIB objects

-- HISTORY:
-- 04/29/09 jlb   STATUS: PRELIMINARY.
-- 05/19/09 rmz   STATUS: PRELIMINARY.
--                Added ability to delete IGMP EVC Slot table entry via
--                adGenIGMPEVCSlotDelete.
-- 05/20/09 aed   Add IMPLIED keyword to variable-length string indexes.  Make the indexes not-accessible.
-- 06/25/09 rmz   Changed all read-write with read-create in adGenIGMPEVCSlotTable.
--                Replaced adGenIGMPEVCSlotDelete with adGenIGMPEVCSlotRowStatus.
--                Added adGenIGMPEVCSlotStatus and adGenIGMPEVCSlotLastError.
-- 05/14/10 rmz   Added adGenIGMPEVCMapMulticastACLMode and adGenIGMPEVCMapMulticastACLName to
--                adGenIGMPEVCMapTable.
-- 06/07/10 rmz   Added IMPLIED keyword to adGenIGMPEVCMapEntry index.
-- DO NOT MAKE HISTORY COMMENTS HERE!!!! Revision history now in REVISION/DESCRIPTION clauses below

-- ******************************************************************************************
DEFINITIONS ::= BEGIN

--==================================================================================================================

IMPORTS

    adGenIGMP,
    adGenIGMPID
        FROM ADTRAN-SHARED-CND-SYSTEM-MIB

    OBJECT-TYPE,
    MODULE-IDENTITY,
    Integer32,
    IpAddress
        FROM SNMPv2-SMI

    DisplayString,
    RowStatus
        FROM SNMPv2-TC

    InterfaceIndex,
    ifIndex
        FROM IF-MIB

    adGenEVCName
        FROM ADTRAN-GENEVC-MIB

    adGenEthernetDslamFlowName
        FROM ADTRAN-ETHERNET-DSLAM-FLOW-MIB

    adGenSlotInfoIndex
        FROM ADTRAN-GENSLOT-MIB
    ;

--==================================================================================================================

    adGenIGMPMIB MODULE-IDENTITY
    LAST-UPDATED "201305020000Z"
    ORGANIZATION "Adtran, Inc."
    CONTACT-INFO
        "CND Tech Support
         Postal: ADTRAN, Inc.
                 901 Explorer Blvd.
                 Huntsville, AL  35806
                 Tel: +1 800 726-8663
                 Fax: +1 256 963 6217
                 E-mail: support@adtran.com"
    DESCRIPTION
       "This MIB defines the objects for the IGMP MIB."

   REVISION "201305020000Z"
   DESCRIPTION "Added adGenIGMPEVCMapAuthentication to AdGenIGMPEVCMapEntry"

   REVISION "201302200000Z"
   DESCRIPTION "Added new enum in adGenIGMPEVCMapMode to enable IGMP forking"

   REVISION "201302040000Z"
   DESCRIPTION "Added adGenIGMPEVCVersion to adGenIGMPEVCEntry"

    REVISION "201006070000Z"
    DESCRIPTION "Created"
    ::= { adGenIGMPID 1 }

--==================================================================================================================

    adGenIGMPProvisioning                OBJECT IDENTIFIER ::= {adGenIGMP 1}

--==================================================================================================================

    adGenIGMPEVCTable OBJECT-TYPE
      SYNTAX  SEQUENCE OF AdGenIGMPEVCEntry
      MAX-ACCESS  not-accessible
      STATUS  current
      DESCRIPTION
         "The IGMP EVC table."
      ::= { adGenIGMPProvisioning 1 }

    adGenIGMPEVCEntry OBJECT-TYPE
      SYNTAX  AdGenIGMPEVCEntry
      MAX-ACCESS  not-accessible
      STATUS  current
      DESCRIPTION
         "An entry in the IGMP EVC table."
      INDEX  { IMPLIED adGenEVCName }
      ::= { adGenIGMPEVCTable 1 }

    AdGenIGMPEVCEntry ::=
      SEQUENCE {
            adGenIGMPEVCPriority
                INTEGER,
            adGenIGMPEVCVersion
                INTEGER
      }

    adGenIGMPEVCPriority OBJECT-TYPE
      SYNTAX        INTEGER (0..7)
      MAX-ACCESS    read-write
      STATUS        current
      DESCRIPTION
         "The p-bit value used on all IGMP traffic egressing the
          specified EVC."
      ::= { adGenIGMPEVCEntry 1 }
      
    adGenIGMPEVCVersion OBJECT-TYPE
       SYNTAX       INTEGER
                    {
                        v2     (2),
                        v3lite (3)
                    }

       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
           "The IGMP Version associated with the specified EVC."
       DEFVAL { v2 }
       ::= { adGenIGMPEVCEntry 2}

--==================================================================================================================
    adGenIGMPEVCSlotTable OBJECT-TYPE
      SYNTAX  SEQUENCE OF AdGenIGMPEVCSlotEntry
      MAX-ACCESS  not-accessible
      STATUS  current
      DESCRIPTION
         "The IGMP EVC Slot table."
      ::= { adGenIGMPProvisioning 2 }

    adGenIGMPEVCSlotEntry OBJECT-TYPE
      SYNTAX  AdGenIGMPEVCSlotEntry
      MAX-ACCESS  not-accessible
      STATUS  current
      DESCRIPTION
         "An entry in the IGMP EVC Slot table."
      INDEX  { adGenSlotInfoIndex, IMPLIED adGenEVCName }
      ::= { adGenIGMPEVCSlotTable 1 }

    AdGenIGMPEVCSlotEntry ::=
       SEQUENCE {
            adGenIGMPEVCSlotHostIP
                IpAddress,
            adGenIGMPEVCSlotLastMemberQueryInterval
                INTEGER,
            adGenIGMPEVCSlotLastMemberQueryCount
                INTEGER,
            adGenIGMPEVCSlotMode
                INTEGER,
            adGenIGMPEVCSlotRowStatus
                RowStatus,
            adGenIGMPEVCSlotStatus
                DisplayString,
            adGenIGMPEVCSlotLastError
                DisplayString
       }

    adGenIGMPEVCSlotHostIP OBJECT-TYPE
       SYNTAX       IpAddress
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "The source IP address that is placed in IGMP messages destined
           for the network. This value only applies when IGMP is in proxy mode."
       ::= { adGenIGMPEVCSlotEntry 1 }

    adGenIGMPEVCSlotLastMemberQueryInterval OBJECT-TYPE
       SYNTAX       INTEGER (100..65535)
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "Last Member Query Interval in milliseconds.
           This is the amount of time between Queries.  Low
           value results in faster detection of missed leaves."
       ::= { adGenIGMPEVCSlotEntry 2}

    adGenIGMPEVCSlotLastMemberQueryCount OBJECT-TYPE
       SYNTAX       INTEGER (1..255)
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "Last Member Query Count. This is the number of queries
           before declaring no membership of a group (channel)."
       ::= { adGenIGMPEVCSlotEntry 3}

    adGenIGMPEVCSlotMode OBJECT-TYPE
       SYNTAX       INTEGER
                    {
                        snooping(1),
                        proxy(2),
                        transparent(3)
                    }
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
          "The IGMP Mode associated with each EVC in each slot."
       ::= { adGenIGMPEVCSlotEntry 4}

      adGenIGMPEVCSlotRowStatus OBJECT-TYPE
         SYNTAX  RowStatus
         MAX-ACCESS  read-create
         STATUS  current
         DESCRIPTION
           "This object is used to create a new row or delete an
            existing row in the IGMP EVC/slot table. A GET will
            always return 'active'."
         ::= { adGenIGMPEVCSlotEntry 5}

      adGenIGMPEVCSlotStatus OBJECT-TYPE
         SYNTAX  DisplayString
         MAX-ACCESS  read-only
         STATUS  current
         DESCRIPTION
            "This variable provides the IGMP status accessiated with this EVC on the
             specified slot.  If there is no error, the IGMP status will be 'running'.
             If there is an error and the IGMP provisioning cannot be applied, then
             adGenIGMPEVCSlotStatus will provide more details about the error."
         ::= { adGenIGMPEVCSlotEntry 6}

      adGenIGMPEVCSlotLastError OBJECT-TYPE
          SYNTAX         DisplayString
          MAX-ACCESS     read-only
          STATUS         current
          DESCRIPTION
             "This string describes the last error experienced
              for this particular entry in the table."
          ::= { adGenIGMPEVCSlotEntry 7 }
          
--==================================================================================================================

    adGenIGMPEVCMapTable OBJECT-TYPE
       SYNTAX  SEQUENCE OF AdGenIGMPEVCMapEntry
       MAX-ACCESS  not-accessible
       STATUS  current
       DESCRIPTION
          "The IGMP EVC Map table."
       ::= { adGenIGMPProvisioning 3 }

    adGenIGMPEVCMapEntry OBJECT-TYPE
       SYNTAX  AdGenIGMPEVCMapEntry
       MAX-ACCESS  not-accessible
       STATUS  current
       DESCRIPTION
          "An entry in the IGMP EVC Map table."
       INDEX  { adGenSlotInfoIndex, IMPLIED adGenEthernetDslamFlowName }
       ::= { adGenIGMPEVCMapTable 1 }

    AdGenIGMPEVCMapEntry ::=
       SEQUENCE {
            adGenIGMPEVCMapMode
                INTEGER,
            adGenIGMPEVCMapMaxMulticastBandwidth
                Integer32,
            adGenIGMPEVCMapMaxMulticastBandwidthEnable
                INTEGER,
            adGenIGMPEVCMapMaxMulticastGroups
                Integer32,
            adGenIGMPEVCMapMaxMulticastGroupsEnable
                INTEGER,
            adGenIGMPEVCMapRouterIP
                IpAddress,
            adGenIGMPEVCMapImmediateLeave
                INTEGER,
            adGenIGMPEVCMapMulticastACLMode
                INTEGER,
            adGenIGMPEVCMapMulticastACLName
                DisplayString,
            adGenIGMPEVCMapAuthentication
                INTEGER
       }

    adGenIGMPEVCMapMode   OBJECT-TYPE
       SYNTAX       INTEGER
                    {
                        processingEnabled(1),
                        block(2),
                        transparent(3),
                        forking(4)
                    }
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
         "The IGMP Mode associated with each EVC map."
       ::= { adGenIGMPEVCMapEntry 1 }

    adGenIGMPEVCMapMaxMulticastBandwidth OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "Specify the maximum downstream bandwidth(kbps) available for this flow.
           This value is only considered if multicast bandwidth is enabled."
       ::= { adGenIGMPEVCMapEntry 2 }

    adGenIGMPEVCMapMaxMulticastBandwidthEnable OBJECT-TYPE
       SYNTAX       INTEGER
                    {
                        enabled(1),
                        disabled(2)
                    }
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "When enabled joins for multicast streams by the subscriber are checked to make
           sure that the maximum multicast bandwidth will not be exceeded by the join."
       ::= { adGenIGMPEVCMapEntry 3 }

    adGenIGMPEVCMapMaxMulticastGroups OBJECT-TYPE
       SYNTAX       Integer32
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "Specify the maximum number of multicast groups
           allowed in this map."
       ::= { adGenIGMPEVCMapEntry 4 }

    adGenIGMPEVCMapMaxMulticastGroupsEnable OBJECT-TYPE
       SYNTAX       INTEGER
                    {
                        enabled(1),
                        disabled(2)
                    }
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "When enabled joins for multicast streams by the subscriber are checked to make
           sure that the maximum number of multicast groups will not be
           exceeded by the join."
       ::= { adGenIGMPEVCMapEntry 5 }

    adGenIGMPEVCMapRouterIP OBJECT-TYPE
       SYNTAX       IpAddress
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "The source IP address that the DSLAM places in IGMP messages destined
           for the subscriber. This value only applies when IGMP is in proxy mode."
       ::= { adGenIGMPEVCMapEntry 6 }

    adGenIGMPEVCMapImmediateLeave OBJECT-TYPE
       SYNTAX       INTEGER
                    {
                        enabled(1),
                        disabled(2),
                        notApplicable(3)
                    }
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "Enable/disable Immediate Leave if applicable; 'notApplicable' otherwise."
       ::= { adGenIGMPEVCMapEntry 7 }

    adGenIGMPEVCMapMulticastACLMode OBJECT-TYPE
       SYNTAX       INTEGER
                    {
                        permit(1),
                        deny(2),
                        disabled(3)
                    }
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "Set the IP multicast access control list (ACL) mode. The value of 'permit' means
           that only multicast IP addresses indicated by the IP multicast ACL are allowed.
           The value of 'deny' means that all multicast IP addresses except those indicated
           by the IP multicast ACL are allowed. The value of 'disabled' indicates all IP
           multicast addresses are allowed."
       ::= { adGenIGMPEVCMapEntry 8 }

    adGenIGMPEVCMapMulticastACLName OBJECT-TYPE
       SYNTAX       DisplayString (SIZE(1..32))
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "Selects the IP multicast access control list (ACL). This value is ignored if
           adGenIGMPEVCMapMulticastACLMode is 'disabled'."
       ::= { adGenIGMPEVCMapEntry 9 }

    adGenIGMPEVCMapAuthentication OBJECT-TYPE
       SYNTAX       INTEGER
                    {
                        enabled(1),
                        disabled(2)
                    }
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
          "Indicates whether or not IGMP authentication is performed for this EVC map. Default value is enabled."
       ::= { adGenIGMPEVCMapEntry 10 }

END

