ELTEX-MES-eltMesIpMulticast-MIB DEFINITIONS ::= BEGIN

-- Title:      Eltex MES Multicast Ip Configuration
-- Version:    1.3
-- Date:       20 Dec 2017

IMPORTS
    InterfaceIndex                                       FROM IF-MIB
    TEXTUAL-CONVENTION,
    RowStatus, DisplayString, TimeStamp,TruthValue,
    MacAddress                                           FROM SNMPv2-TC
    MODULE-IDENTITY, OBJECT-TYPE,
    Unsigned32, IpAddress                                FROM SNMPv2-SMI
    eltMesIpMulticast                                    FROM ELTEX-MES
    igmpInterfaceEntry                                   FROM IGMP-STD-MIB
    InetAddress, InetAddressType                         FROM INET-ADDRESS-MIB;

--
-- Profile table
--

eltIgmpMldSnoopProfileTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF EltIgmpMldSnoopProfileEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The table lists the igmp mld snooping profiles."
    ::= { eltMesIpMulticast 1 }

eltIgmpMldSnoopProfileEntry OBJECT-TYPE
    SYNTAX      EltIgmpMldSnoopProfileEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing igmp mld snooping profile information"
    INDEX { eltIgmpMldSnoopProfileIndex }
    ::= { eltIgmpMldSnoopProfileTable 1 }

ProfileAction ::= TEXTUAL-CONVENTION
    STATUS  current
    DESCRIPTION
        "Specifies one of 2 profile actions:
         1- deny.
         2- permit."
    SYNTAX  INTEGER {
         deny(1),
         permit(2)
         }

EltIgmpMldSnoopProfileEntry ::= SEQUENCE {
    eltIgmpMldSnoopProfileIndex               INTEGER,
    eltIgmpMldSnoopProfileName                DisplayString,
    eltIgmpMldSnoopProfileAction              ProfileAction,
    eltIgmpMldSnoopProfileStatus              RowStatus
}

eltIgmpMldSnoopProfileIndex OBJECT-TYPE
    SYNTAX INTEGER
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "An arbitrary incremental index for the profiles table. Zero for next free index."
    ::= { eltIgmpMldSnoopProfileEntry 1 }

eltIgmpMldSnoopProfileName OBJECT-TYPE
    SYNTAX DisplayString(SIZE(0..32))
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "Name of profile."
    ::= { eltIgmpMldSnoopProfileEntry 2 }

eltIgmpMldSnoopProfileAction OBJECT-TYPE
    SYNTAX ProfileAction
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "Type of profile."
    ::= { eltIgmpMldSnoopProfileEntry 3 }

eltIgmpMldSnoopProfileStatus OBJECT-TYPE
    SYNTAX  RowStatus
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
       "The status of a table entry.
        Only three statuses are aceptable: CreateAndGo to create,
        Active to update,Destroy to delete. All other values cause error."
    ::= { eltIgmpMldSnoopProfileEntry 4 }

--
-- Profile Index table
--

eltIgmpMldSnoopProfileGetIndexTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF EltIgmpMldSnoopProfileGetIndexEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The table lists the igmp mld snooping profile indexes and names."
    ::= { eltMesIpMulticast 2 }

eltIgmpMldSnoopProfileGetIndexEntry OBJECT-TYPE
    SYNTAX      EltIgmpMldSnoopProfileGetIndexEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing igmp mld snooping profile index and name"
    INDEX { eltIgmpMldSnoopProfileGetIndexName }
    ::= { eltIgmpMldSnoopProfileGetIndexTable 1 }

EltIgmpMldSnoopProfileGetIndexEntry ::= SEQUENCE {
    eltIgmpMldSnoopProfileGetIndexName                DisplayString,
    eltIgmpMldSnoopProfileGetIndexIndex               INTEGER,
    eltIgmpMldSnoopProfileGetIndexNextFreeIndex       INTEGER
}

eltIgmpMldSnoopProfileGetIndexName OBJECT-TYPE
    SYNTAX DisplayString(SIZE(0..32))
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "Name of profile."
    ::= { eltIgmpMldSnoopProfileGetIndexEntry 1 }

eltIgmpMldSnoopProfileGetIndexIndex OBJECT-TYPE
    SYNTAX INTEGER
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Index of profile."
    ::= { eltIgmpMldSnoopProfileGetIndexEntry 2 }

eltIgmpMldSnoopProfileGetIndexNextFreeIndex OBJECT-TYPE
    SYNTAX INTEGER
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Next free index of profile if eltIgmpMldSnoopProfileGetIndexIndex is zero."
    ::= { eltIgmpMldSnoopProfileGetIndexEntry 3 }

--
-- Filter table
--

eltIgmpMldSnoopFilterTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF EltIgmpMldSnoopFilterEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The table lists the igmp mld snooping filters."
    ::= { eltMesIpMulticast 3 }

eltIgmpMldSnoopFilterEntry OBJECT-TYPE
    SYNTAX      EltIgmpMldSnoopFilterEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing igmp mld snooping filter information."
    INDEX { eltIgmpMldSnoopFilterIndex, eltIgmpMldSnoopFilterProfileIndex }
    ::= { eltIgmpMldSnoopFilterTable 1 }

FilterType ::= TEXTUAL-CONVENTION
    STATUS  current
    DESCRIPTION
        "Specifies one of 2 filter types:
         1- ip.
         2- ipv6."
    SYNTAX  INTEGER {
         ip(1),
         ipv6(2)
         }

EltIgmpMldSnoopFilterEntry ::= SEQUENCE {
    eltIgmpMldSnoopFilterIndex                INTEGER,
    eltIgmpMldSnoopFilterProfileIndex         INTEGER,
    eltIgmpMldSnoopFilterType                 FilterType,
    eltIgmpMldSnoopFilterStartIp              OCTET STRING,
    eltIgmpMldSnoopFilterEndIp                OCTET STRING,
    eltIgmpMldSnoopFilterStatus               RowStatus
}

eltIgmpMldSnoopFilterIndex OBJECT-TYPE
    SYNTAX INTEGER
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "An arbitrary incremental index for the filter table. Zero for next free index."
    ::= { eltIgmpMldSnoopFilterEntry 1 }

eltIgmpMldSnoopFilterProfileIndex OBJECT-TYPE
    SYNTAX INTEGER
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "An index of profile for the filter table."
    ::= { eltIgmpMldSnoopFilterEntry 2 }

eltIgmpMldSnoopFilterType OBJECT-TYPE
    SYNTAX FilterType
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "Type of filer."
    ::= { eltIgmpMldSnoopFilterEntry 3 }

eltIgmpMldSnoopFilterStartIp OBJECT-TYPE
    SYNTAX     OCTET STRING(SIZE(0..32))
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The start group address can be IPv4/IPv6 depending of eltIgmpMldSnoopFilterType."
    ::= { eltIgmpMldSnoopFilterEntry 4 }

eltIgmpMldSnoopFilterEndIp OBJECT-TYPE
    SYNTAX     OCTET STRING(SIZE(0..32))
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The end group address can be IPv4/IPv6 depending of eltIgmpMldSnoopFilterType."
    ::= { eltIgmpMldSnoopFilterEntry 5 }

eltIgmpMldSnoopFilterStatus OBJECT-TYPE
    SYNTAX  RowStatus
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
       "The status of a table entry.
        Only three statuses are aceptable: CreateAndGo to create,
        Destroy to delete. All other values cause error."
    ::= { eltIgmpMldSnoopFilterEntry 6 }


--
-- Filter Index table
--

eltIgmpMldSnoopFilterGetIndexTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF EltIgmpMldSnoopFilterGetIndexEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The table lists the igmp mld snooping filter indexes and names."
    ::= { eltMesIpMulticast 4 }

eltIgmpMldSnoopFilterGetIndexEntry OBJECT-TYPE
    SYNTAX      EltIgmpMldSnoopFilterGetIndexEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing igmp mld snooping filter index and name"
    INDEX { eltIgmpMldSnoopFilterGetIndexProfileIndex,
            eltIgmpMldSnoopFilterGetIndexType,
            eltIgmpMldSnoopFilterGetIndexStartIp,
            eltIgmpMldSnoopFilterGetIndexEndIp }
    ::= { eltIgmpMldSnoopFilterGetIndexTable 1 }

EltIgmpMldSnoopFilterGetIndexEntry ::= SEQUENCE {
    eltIgmpMldSnoopFilterGetIndexProfileIndex         INTEGER,
    eltIgmpMldSnoopFilterGetIndexType                 FilterType,
    eltIgmpMldSnoopFilterGetIndexStartIp              OCTET STRING,
    eltIgmpMldSnoopFilterGetIndexEndIp                OCTET STRING,
    eltIgmpMldSnoopFilterGetIndexIndex                INTEGER,
    eltIgmpMldSnoopFilterGetIndexNextFreeIndex        INTEGER
}

eltIgmpMldSnoopFilterGetIndexProfileIndex OBJECT-TYPE
    SYNTAX INTEGER
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "An index of profile for the filter table."
    ::= { eltIgmpMldSnoopFilterGetIndexEntry 1 }

eltIgmpMldSnoopFilterGetIndexType OBJECT-TYPE
    SYNTAX FilterType
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "Type of filer."
    ::= { eltIgmpMldSnoopFilterGetIndexEntry 2 }

eltIgmpMldSnoopFilterGetIndexStartIp OBJECT-TYPE
    SYNTAX     OCTET STRING(SIZE(0..32))
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The start group address can be IPv4/IPv6 depending of eltIgmpMldSnoopFilterGetIndexType."
    ::= { eltIgmpMldSnoopFilterGetIndexEntry 3 }

eltIgmpMldSnoopFilterGetIndexEndIp OBJECT-TYPE
    SYNTAX     OCTET STRING(SIZE(0..32))
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The end group address can be IPv4/IPv6 depending of eltIgmpMldSnoopFilterGetIndexType."
    ::= { eltIgmpMldSnoopFilterGetIndexEntry 4 }

eltIgmpMldSnoopFilterGetIndexIndex OBJECT-TYPE
    SYNTAX INTEGER
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Index of filter."
    ::= { eltIgmpMldSnoopFilterGetIndexEntry 5 }

eltIgmpMldSnoopFilterGetIndexNextFreeIndex OBJECT-TYPE
    SYNTAX INTEGER
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Next free index of filter if eltIgmpMldSnoopFilterGetIndexIndex is zero."
    ::= { eltIgmpMldSnoopFilterGetIndexEntry 6 }

--
-- Interface profile table
--

eltIgmpMldSnoopIfProfileTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF EltIgmpMldSnoopIfProfileEntry
    MAX-ACCESS  not-accessible
    STATUS      deprecated
    DESCRIPTION
        "The table lists the igmp mld snooping profiles."
    ::= { eltMesIpMulticast 5 }

eltIgmpMldSnoopIfProfileEntry OBJECT-TYPE
    SYNTAX      EltIgmpMldSnoopIfProfileEntry
    MAX-ACCESS  not-accessible
    STATUS      deprecated
    DESCRIPTION
        "An entry containing assignment of igmp mld snooping profile to interface."
    INDEX { eltIgmpMldSnoopIfProfileIfIndex }
    ::= { eltIgmpMldSnoopIfProfileTable 1 }

EltIgmpMldSnoopIfProfileEntry ::= SEQUENCE {
    eltIgmpMldSnoopIfProfileIfIndex               InterfaceIndex,
    eltIgmpMldSnoopIfProfileProfileIndex          INTEGER
}

eltIgmpMldSnoopIfProfileIfIndex OBJECT-TYPE
    SYNTAX InterfaceIndex
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "Interface index."
    ::= { eltIgmpMldSnoopIfProfileEntry 1 }

eltIgmpMldSnoopIfProfileProfileIndex OBJECT-TYPE
    SYNTAX INTEGER
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "Index of profile."
    ::= { eltIgmpMldSnoopIfProfileEntry 2 }

--
-- Interface max groups table
--

eltIgmpMldSnoopIfMaxGroupsTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF EltIgmpMldSnoopIfMaxGroupsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The table lists the max groups of igmp mld snooping per interface."
    ::= { eltMesIpMulticast 6 }

eltIgmpMldSnoopIfMaxGroupsEntry OBJECT-TYPE
    SYNTAX      EltIgmpMldSnoopIfMaxGroupsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing number of max groups of igmp mld snooping per interface."
    INDEX { eltIgmpMldSnoopIfMaxGroupsIfIndex }
    ::= { eltIgmpMldSnoopIfMaxGroupsTable 1 }

EltIgmpMldSnoopIfMaxGroupsEntry ::= SEQUENCE {
    eltIgmpMldSnoopIfMaxGroupsIfIndex        InterfaceIndex,
    eltIgmpMldSnoopIfMaxGroupsMaxCount       INTEGER,
    eltIgmpMldSnoopIfMaxGroupsCount          INTEGER
}

eltIgmpMldSnoopIfMaxGroupsIfIndex OBJECT-TYPE
    SYNTAX InterfaceIndex
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "Interface index."
    ::= { eltIgmpMldSnoopIfMaxGroupsEntry 1 }

eltIgmpMldSnoopIfMaxGroupsMaxCount OBJECT-TYPE
    SYNTAX INTEGER
    MAX-ACCESS read-write
    STATUS current
    DEFVAL { 0 }
    DESCRIPTION
        "Max groups count."
    ::= { eltIgmpMldSnoopIfMaxGroupsEntry 2 }

eltIgmpMldSnoopIfMaxGroupsCount OBJECT-TYPE
    SYNTAX INTEGER
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Registered groups count."
    ::= { eltIgmpMldSnoopIfMaxGroupsEntry 3 }

--
-- Advcanced interface profile table
--

eltIgmpMldSnoopIfProfileExtTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF EltIgmpMldSnoopIfProfileExtEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The table lists the igmp mld snooping profiles."
    ::= { eltMesIpMulticast 7 }

eltIgmpMldSnoopIfProfileExtEntry OBJECT-TYPE
    SYNTAX      EltIgmpMldSnoopIfProfileExtEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing assignment of igmp mld snooping profile to interface."
    INDEX { eltIgmpMldSnoopIfProfileExtIfIndex, eltIgmpMldSnoopIfProfileExtProfileIndex }
    ::= { eltIgmpMldSnoopIfProfileExtTable 1 }

EltIgmpMldSnoopIfProfileExtEntry ::= SEQUENCE {
    eltIgmpMldSnoopIfProfileExtIfIndex               InterfaceIndex,
    eltIgmpMldSnoopIfProfileExtProfileIndex          INTEGER,
    eltIgmpMldSnoopIfProfileExtRowStatus             RowStatus
}

eltIgmpMldSnoopIfProfileExtIfIndex OBJECT-TYPE
    SYNTAX InterfaceIndex
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "Interface index."
    ::= { eltIgmpMldSnoopIfProfileExtEntry 1 }

eltIgmpMldSnoopIfProfileExtProfileIndex OBJECT-TYPE
    SYNTAX INTEGER
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "Index of profile."
    ::= { eltIgmpMldSnoopIfProfileExtEntry 2 }

eltIgmpMldSnoopIfProfileExtRowStatus OBJECT-TYPE
    SYNTAX RowStatus
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "Status of profile."
    ::= { eltIgmpMldSnoopIfProfileExtEntry 3 }
    

--
-- Authentication table
--

EltIgmpMldSnoopAuthType  ::= TEXTUAL-CONVENTION
   STATUS current
   DESCRIPTION    "IGMP/MLD snooping authorization type.
   					none   - no authorization;
   					radius - authorization with radius server."
   SYNTAX INTEGER {
      none(0),
      radius(1)
}

EltIgmpMldSnoopAuthStatusType  ::= TEXTUAL-CONVENTION
   STATUS current
   DESCRIPTION    "Status of IGMP/MLD snooping authorization.
   					waiting - wait response from server;
   					forward - authorization is successfull;
   					discard - access denied by server;
   					timeout - timeout of response from server."
   SYNTAX INTEGER {
      waiting(0),
      forward(1),
      discard(2),
      timeout(3)
}

eltIgmpMldSnoopIfAuthTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF EltIgmpMldSnoopIfAuthEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The table lists the IGMP/MLD snooping authorization configuration."
    ::= { eltMesIpMulticast 8 }

eltIgmpMldSnoopIfAuthEntry OBJECT-TYPE
    SYNTAX      EltIgmpMldSnoopIfAuthEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing assignment of IGMP/MLD snooping authorization config per interface."
    INDEX { eltIgmpMldSnoopAuthIfIndex }
    ::= { eltIgmpMldSnoopIfAuthTable 1 }

EltIgmpMldSnoopIfAuthEntry ::= SEQUENCE {
    eltIgmpMldSnoopAuthIfIndex                       InterfaceIndex,
    eltIgmpMldSnoopAuthEnable                        TruthValue,
    eltIgmpMldSnoopAuthRequired                      TruthValue,
    eltIgmpMldSnoopAuthForwardFirst                  TruthValue,
    eltIgmpMldSnoopAuthRowStatus                     RowStatus

}

eltIgmpMldSnoopAuthIfIndex OBJECT-TYPE
    SYNTAX InterfaceIndex
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "Interface index."
    ::= { eltIgmpMldSnoopIfAuthEntry 1 }

eltIgmpMldSnoopAuthEnable OBJECT-TYPE
    SYNTAX TruthValue
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "Enable authentication."
    DEFVAL { false }
    ::= { eltIgmpMldSnoopIfAuthEntry 2 }

eltIgmpMldSnoopAuthRequired OBJECT-TYPE
    SYNTAX TruthValue
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "If enabled - discard all IGMP report 
        messages in case when all authorization 
        servers are unavailable."
    DEFVAL { false }
    ::= { eltIgmpMldSnoopIfAuthEntry 3 }

eltIgmpMldSnoopAuthForwardFirst OBJECT-TYPE
    SYNTAX TruthValue
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "Add IGMP/MLD snooping entry before recieve response from authorization server."
    DEFVAL { false }
    ::= { eltIgmpMldSnoopIfAuthEntry 4 }

eltIgmpMldSnoopAuthRowStatus OBJECT-TYPE
    SYNTAX RowStatus
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "Status of auth config entry."
    ::= { eltIgmpMldSnoopIfAuthEntry 5 }

--
-- Authentication cache table
--

eltIgmpMldSnoopAuthCacheTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF EltIgmpMldSnoopAuthCacheEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The table lists the IGMP/MLD snooping authorization cache information."
    ::= { eltMesIpMulticast 9 }

EltIgmpMldSnoopAuthCacheEntry ::= SEQUENCE {
    eltIgmpMldSnoopAuthCacheMac                      MacAddress,
    eltIgmpMldSnoopAuthCacheIfIndex                  InterfaceIndex,
    eltIgmpMldSnoopAuthCacheGroup                    OCTET STRING,
    eltIgmpMldSnoopAuthCacheClientAddr               OCTET STRING,
    eltIgmpMldSnoopAuthCacheRadiusAddr               OCTET STRING,
    eltIgmpMldSnoopAutCacheTimeStamp                 TimeStamp,
    eltIgmpMldSnoopAuthCacheStatus                   EltIgmpMldSnoopAuthStatusType,
    eltIgmpMldSnoopAuthRowCacheStatus                RowStatus

}

eltIgmpMldSnoopAuthCacheEntry OBJECT-TYPE
    SYNTAX      EltIgmpMldSnoopAuthCacheEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing assignment of IGMP/MLD snooping entry authorization cache info."
    INDEX { eltIgmpMldSnoopAuthCacheMac, eltIgmpMldSnoopAuthCacheIfIndex,  eltIgmpMldSnoopAuthCacheGroup, eltIgmpMldSnoopAuthCacheClientAddr}
    ::= { eltIgmpMldSnoopAuthCacheTable 1 }


eltIgmpMldSnoopAuthCacheMac OBJECT-TYPE
    SYNTAX MacAddress
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "MAC address."
    ::= { eltIgmpMldSnoopAuthCacheEntry 1 }

eltIgmpMldSnoopAuthCacheIfIndex OBJECT-TYPE
    SYNTAX InterfaceIndex
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Interface index."
    ::= { eltIgmpMldSnoopAuthCacheEntry 2 }

eltIgmpMldSnoopAuthCacheClientAddr OBJECT-TYPE
    SYNTAX OCTET STRING
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Client address."
    ::= { eltIgmpMldSnoopAuthCacheEntry 3 }

eltIgmpMldSnoopAuthCacheGroup OBJECT-TYPE
    SYNTAX OCTET STRING
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "IGMP group address."
    ::= { eltIgmpMldSnoopAuthCacheEntry 4 }

eltIgmpMldSnoopAuthCacheRadiusAddr OBJECT-TYPE
    SYNTAX OCTET STRING
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Radius server address."
    ::= { eltIgmpMldSnoopAuthCacheEntry 5 }


eltIgmpMldSnoopAutCacheTimeStamp OBJECT-TYPE
    SYNTAX TimeStamp
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Time of creating entry in seconds since system startup."
    ::= { eltIgmpMldSnoopAuthCacheEntry 6 }

eltIgmpMldSnoopAuthCacheStatus OBJECT-TYPE
    SYNTAX EltIgmpMldSnoopAuthStatusType
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Status of IGMP/MLD report authorization 
        (see EltIgmpMldSnoopAuthStatusType descriprion)."
    ::= { eltIgmpMldSnoopAuthCacheEntry 7 }

eltIgmpMldSnoopAuthRowCacheStatus OBJECT-TYPE
    SYNTAX RowStatus
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Status of authorization entry."
    ::= { eltIgmpMldSnoopAuthCacheEntry 8 }

eltIgmpMldSnoopAuthCacheTimeout  OBJECT-TYPE
    SYNTAX  INTEGER(0..10000)
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
        " IGMP + Radius cache timeout in mins."
    DEFVAL { 0 }
    ::= { eltMesIpMulticast 10 }

--
-- IGMP static group membership
--

AdminStatus ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
       "The desired administrative state of a MIB row."
    SYNTAX      INTEGER {
                  adminStatusUp(1),
                  adminStatusDown(2)
                }

eltMesIgmp OBJECT IDENTIFIER ::= { eltMesIpMulticast 11 }

eltIgmpStaticMembershipStarGTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF EltIgmpStaticMembershipStarGEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "This table is used to statically configure exclude mode
                state on a particular interface - i.e. group memberships
                that do not specify a source address.
                Group memberships associated with objects in this table
                persist regardless of matching dynamic memberships learned
                over IGMP or MLD."
    ::= { eltMesIgmp 1 }

eltIgmpStaticMembershipStarGEntry OBJECT-TYPE
    SYNTAX      EltIgmpStaticMembershipStarGEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
           "An entry (conceptual row) in the eltIgmpStaticMembershipStarGTable."
    INDEX { eltIgmpStaticMembershipStarGAddressType,
            eltIgmpStaticMembershipStarGAddress,
            eltIgmpStaticMembershipStarGIfIndex}
    ::= { eltIgmpStaticMembershipStarGTable 1 }

EltIgmpStaticMembershipStarGEntry ::= SEQUENCE {
    eltIgmpStaticMembershipStarGAddressType               InetAddressType,
    eltIgmpStaticMembershipStarGAddress                   InetAddress,
    eltIgmpStaticMembershipStarGIfIndex                   InterfaceIndex,
    eltIgmpStaticMembershipStarGRowStatus                 RowStatus,
    eltIgmpStaticMembershipStarGAdminStatus               AdminStatus
}

eltIgmpStaticMembershipStarGAddressType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "The address type (IPv4 or IPv6) of this entry.  This must
             match the address type supported by the entity
             (eltIgmpStaticMembershipStarGAddressType)."
    ::= { eltIgmpStaticMembershipStarGEntry 1 }

eltIgmpStaticMembershipStarGAddress OBJECT-TYPE
    SYNTAX      InetAddress (SIZE(4|16))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The IP multicast group address which this entry is
                 associated with.  The InetAddressType is identified by
                 eltIgmpStaticMembershipStarGAddressType."
    ::= { eltIgmpStaticMembershipStarGEntry 2 }

eltIgmpStaticMembershipStarGIfIndex OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The interface which this entry is associated with."
    ::= { eltIgmpStaticMembershipStarGEntry 3 }

eltIgmpStaticMembershipStarGRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Used to create and delete the entry."
    ::= { eltIgmpStaticMembershipStarGEntry 4 }

eltIgmpStaticMembershipStarGAdminStatus OBJECT-TYPE
    SYNTAX      AdminStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The desired administrative state of the entry."
    DEFVAL      { adminStatusUp }
    ::= { eltIgmpStaticMembershipStarGEntry 5 }

  eltIgmpStaticMembershipSGTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF EltIgmpStaticMembershipSGEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "This table is used to statically configure include mode
             state on a particular interface - i.e. group memberships
             with a particular source address.

             Group memberships associated with objects in this table
             persist regardless of matching dynamic memberships learned
             over IGMP or MLD."
    ::= { eltMesIgmp 2 }

eltIgmpStaticMembershipSGEntry OBJECT-TYPE
    SYNTAX      EltIgmpStaticMembershipSGEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
           "An entry (conceptual row) in the eltIgmpStaticMembershipSGTable."
    INDEX { eltIgmpStaticMembershipSGAddressType,
            eltIgmpStaticMembershipSGAddress,
            eltIgmpStaticMembershipSGIfIndex,
            eltIgmpStaticMembershipSGSrcAddress  }

    ::= { eltIgmpStaticMembershipSGTable 1 }

EltIgmpStaticMembershipSGEntry ::= SEQUENCE {
    eltIgmpStaticMembershipSGAddressType             InetAddressType,
    eltIgmpStaticMembershipSGAddress                 InetAddress,
    eltIgmpStaticMembershipSGIfIndex                 InterfaceIndex,
    eltIgmpStaticMembershipSGSrcAddress              InetAddress,
    eltIgmpStaticMembershipSGRowStatus               RowStatus,
    eltIgmpStaticMembershipSGAdminStatus             AdminStatus
}

eltIgmpStaticMembershipSGAddressType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "The address type (IPv4 or IPv6) of this entry.  This must
             match the address type supported by the entity
             (eltIgmpStaticMembershipSGAddressType)."
    ::= { eltIgmpStaticMembershipSGEntry 1 }

eltIgmpStaticMembershipSGAddress OBJECT-TYPE
    SYNTAX      InetAddress (SIZE(4|16))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The IP multicast group address which this entry is
                 associated with.  The InetAddressType is identified by
                 eltIgmpStaticMembershipSGAddressType."
    ::= { eltIgmpStaticMembershipSGEntry 2 }

eltIgmpStaticMembershipSGIfIndex OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "The interface which this entry is associated with."
    ::= { eltIgmpStaticMembershipSGEntry 3 }

eltIgmpStaticMembershipSGSrcAddress  OBJECT-TYPE
    SYNTAX      InetAddress (SIZE(4|16))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "The host address which this entry is associated with -
             i.e. the source of multicast traffic that this membership
             includes.

             The InetAddressType is identified by
             eltIgmpStaticMembershipSGAddressType."
    ::= { eltIgmpStaticMembershipSGEntry 4 }

eltIgmpStaticMembershipSGRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "Used to create and delete the entry."
    ::= { eltIgmpStaticMembershipSGEntry 5 }

eltIgmpStaticMembershipSGAdminStatus OBJECT-TYPE
    SYNTAX      AdminStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The desired administrative state of the entry."
    DEFVAL      { adminStatusUp }
    ::= { eltIgmpStaticMembershipSGEntry 6 }


--
-- IGMP proxy QoS params
--

eltIgmpMldProxyQosParamsTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF EltIgmpMldProxyQosParamsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The table lists QoS params for IGMP-proxy interfaces."
    ::= { eltMesIpMulticast 13 }

eltIgmpMldProxyQosParamsEntry OBJECT-TYPE
    SYNTAX      EltIgmpMldProxyQosParamsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing QoS params for IGMP-proxy interface."
    INDEX    { eltIgmpMldProxyQosParamsIfIndex, eltIgmpMldProxyQosParamsType }
    ::= { eltIgmpMldProxyQosParamsTable 1 }
    
EltIgmpMldProxyQosParamsEntry ::= SEQUENCE {
    eltIgmpMldProxyQosParamsIfIndex      InterfaceIndex,
    eltIgmpMldProxyQosParamsType         INTEGER,
    eltIgmpMldProxyQosParamsCos          INTEGER,
    eltIgmpMldProxyQosParamsDscp         INTEGER,
    eltIgmpMldProxyQosParamsStatus       RowStatus
}

eltIgmpMldProxyQosParamsIfIndex OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Interface index."
    ::= { eltIgmpMldProxyQosParamsEntry 1 }

eltIgmpMldProxyQosParamsType OBJECT-TYPE
    SYNTAX     INTEGER { ipv4(1), ipv6(2) }
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The address type of this interface."
    ::= { eltIgmpMldProxyQosParamsEntry 2 }

eltIgmpMldProxyQosParamsCos OBJECT-TYPE
    SYNTAX      INTEGER(0..7 | 255)
    MAX-ACCESS  read-write
    STATUS      current
    DEFVAL      {255}
    DESCRIPTION
        "IEEE 802.1p traffic class of IGMP-packets sended by
        IGMP proxy to this interface. 255 - no changed."
    ::= { eltIgmpMldProxyQosParamsEntry 3 }

eltIgmpMldProxyQosParamsDscp OBJECT-TYPE
    SYNTAX      INTEGER(0..63 | 255)
    MAX-ACCESS  read-write
    STATUS      current
    DEFVAL      {255}
    DESCRIPTION
        "The six bits of the DiffServ field in IGMP-packets sended by
        IGMP proxy to this interface. 255 - no changed."
    ::= { eltIgmpMldProxyQosParamsEntry 4 }
    
eltIgmpMldProxyQosParamsStatus OBJECT-TYPE
    SYNTAX RowStatus
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "Status of QoS params entry."
    ::= { eltIgmpMldProxyQosParamsEntry 5 }


END

