BAY-STACK-IPV6-MLD-SNOOPING-MIB DEFINITIONS ::= BEGIN

IMPORTS
    OBJECT-TYPE, MODULE-IDENTITY, Integer32, Unsigned32, Counter32, Gauge32, TimeTicks
        FROM SNMPv2-SMI
    RowStatus, TruthValue, DisplayString
        FROM SNMPv2-TC
    bayStackMibs
        FROM SYNOPTICS-ROOT-MIB
    InterfaceIndex, InterfaceIndexOrZero
        FROM IF-MIB
    InetAddressIPv6             
        FROM INET-ADDRESS-MIB
    PortSet
        FROM RAPID-CITY
    PortList
        FROM Q-BRIDGE-MIB;

bayStackIpv6MldSnoopingMib MODULE-IDENTITY
      LAST-UPDATED "201602240000Z"
      ORGANIZATION "Avaya"
      CONTACT-INFO "avaya.com"
      DESCRIPTION
              "This MIB module is used for IPv6 MLD Snooping configuration." 

      REVISION     "201602240000Z" -- 24 February 2016
      DESCRIPTION
             "Ver 8:  Added bsIpv6MldSnoopingGroupCount, bsIpv6MldSnoopingStreamCount and bsIpv6MldSnoopingAvailableMulticastEntriesCount scalar objects"

      REVISION     "201508100000Z" -- 10 August 2015
      DESCRIPTION
             "Ver 7:  Added bsIpv6MldStreamTable; Added stream option for bsIpv6MldSnoopingInterfaceFlush and bsIpv6MldSnoopingFlush objects"

      REVISION     "201505290000Z" -- 29 May 2015
      DESCRIPTION
             "Ver 6:  Corrected MIB compiling errors."

      REVISION     "201501220000Z"  -- January 22, 2015
      DESCRIPTION
              "Ver 5:  Inverted the syntaxes for bsIpv6MldSnoopingProxyCacheType and bsIpv6MldSnoopingProxyCacheMode objects"

      REVISION     "201410230000Z"  -- October 23, 2014
      DESCRIPTION
              "Ver 4:  Added bsIpv6MldSnoopingInterfaceFlushPorts object, bsIpv6MldSnoopingFlushPorts scalar object"

      REVISION     "201408110000Z"  -- August 11, 2014
      DESCRIPTION
              "Ver 3:  Added bsIpv6MldSnoopingProxyCacheTable, bsIpv6MldSnoopingInterfaceFlush object, bsIpv6MldSnoopingFlush scalar object;
                       Updated bsIpv6MldSnoopingInterfaceOperationalVersion, bsIpv6MldSnoopingInterfaceSendQuery, bsIpv6MldSnoopingInterfaceProxy objects descriptions"

      REVISION     "201401160000Z"  -- January 16, 2014
      DESCRIPTION
              "Ver 2:  Added bsIpv6MldSnoopingInterfaceOperationalVersion, bsIpv6MldSnoopingInterfaceSendQuery, bsIpv6MldSnoopingInterfaceProxy"

      REVISION     "201301220000Z"  -- January 22, 2013
      DESCRIPTION
              "Ver 1:  Initial version."
      ::= { bayStackMibs 44 }

bsIpv6MldSnoopingNotifications
    OBJECT IDENTIFIER ::= { bayStackIpv6MldSnoopingMib 0 }
bsIpv6MldSnoopingObjects
    OBJECT IDENTIFIER ::= { bayStackIpv6MldSnoopingMib 1 }
bsIpv6MldSnoopingScalars
    OBJECT IDENTIFIER ::= { bayStackIpv6MldSnoopingMib 2 }

--
--  The IPv6 MLD Snooping Interface Table
--

bsIpv6MldSnoopingInterfaceTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF BsIpv6MldSnoopingInterfaceEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
             "The (conceptual) table listing IPv6 MLD Snooping interfaces."
    ::= { bsIpv6MldSnoopingObjects 1 }

bsIpv6MldSnoopingInterfaceEntry OBJECT-TYPE
    SYNTAX     BsIpv6MldSnoopingInterfaceEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) representing an IPv6 MLD Snooping interface."
    INDEX      { bsIpv6MldSnoopingInterfaceIfIndex }
    ::= { bsIpv6MldSnoopingInterfaceTable 1 }

BsIpv6MldSnoopingInterfaceEntry ::= SEQUENCE {
    bsIpv6MldSnoopingInterfaceIfIndex                         InterfaceIndex,
    bsIpv6MldSnoopingInterfaceQueryInterval                   Unsigned32,
    bsIpv6MldSnoopingInterfaceStatus                          RowStatus,
    bsIpv6MldSnoopingInterfaceVersion                         Unsigned32,
    bsIpv6MldSnoopingInterfaceQuerier                         InetAddressIPv6,
    bsIpv6MldSnoopingInterfaceQueryMaxResponseDelay           Unsigned32,
    bsIpv6MldSnoopingInterfaceJoins                           Counter32,
    bsIpv6MldSnoopingInterfaceGroups                          Gauge32,
    bsIpv6MldSnoopingInterfaceRobustness                      Unsigned32,
    bsIpv6MldSnoopingInterfaceLastListenQueryIntvl            Unsigned32,
    bsIpv6MldSnoopingInterfaceProxyIfIndex                    InterfaceIndexOrZero,
    bsIpv6MldSnoopingInterfaceQuerierUpTime                   TimeTicks,
    bsIpv6MldSnoopingInterfaceQuerierExpiryTime               TimeTicks,
    bsIpv6MldSnoopingInterfaceEnabled                         TruthValue,
    bsIpv6MldSnoopingInterfaceIgmpMRouterPorts                PortSet,
    bsIpv6MldSnoopingInterfaceIgmpActiveMRouterPorts          PortSet,
    bsIpv6MldSnoopingInterfaceIgmpMRouterExpiration           Integer32,
    bsIpv6MldSnoopingInterfaceOperationalVersion              Unsigned32,
    bsIpv6MldSnoopingInterfaceSendQuery                       TruthValue,
    bsIpv6MldSnoopingInterfaceProxy                           TruthValue,
    bsIpv6MldSnoopingInterfaceFlush                           INTEGER,
    bsIpv6MldSnoopingInterfaceFlushPorts                      PortSet
}

bsIpv6MldSnoopingInterfaceIfIndex OBJECT-TYPE
    SYNTAX     InterfaceIndex
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The internetwork-layer interface value of the interface
         for which IPv6 MLD Snooping is enabled."
    ::= { bsIpv6MldSnoopingInterfaceEntry 1 }

bsIpv6MldSnoopingInterfaceQueryInterval OBJECT-TYPE
    SYNTAX     Unsigned32
    UNITS      "seconds"
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The frequency at which IPv6 MLD Snooping Host-Query packets 
         are transmitted on this interface."
    DEFVAL     { 125 }
    ::= { bsIpv6MldSnoopingInterfaceEntry 2 }

bsIpv6MldSnoopingInterfaceStatus OBJECT-TYPE
    SYNTAX     RowStatus
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "Row status for create/delete."
    ::= { bsIpv6MldSnoopingInterfaceEntry 3 }

bsIpv6MldSnoopingInterfaceVersion OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The version of IPv6 MLD Snooping which is running on this interface.
         This object is a place holder to allow for new versions
         of MLD to be introduced.  Version 1 of MLD is defined
         in RFC 2710."
    DEFVAL     { 1 }
    ::= { bsIpv6MldSnoopingInterfaceEntry 4 }

bsIpv6MldSnoopingInterfaceQuerier OBJECT-TYPE
    SYNTAX     InetAddressIPv6 (SIZE (16))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The address of the IPv6 MLD Snooping Querier on the IPv6 subnet to
         which this interface is attached."
    ::= { bsIpv6MldSnoopingInterfaceEntry 5 }

bsIpv6MldSnoopingInterfaceQueryMaxResponseDelay OBJECT-TYPE
    SYNTAX     Unsigned32
    UNITS      "seconds"
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The maximum query response time advertised in IPv6 MLD Snooping
         queries on this interface."
    DEFVAL     { 10 }
    ::= { bsIpv6MldSnoopingInterfaceEntry 6 }

bsIpv6MldSnoopingInterfaceJoins 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 MLD activity
          over time."
    ::= { bsIpv6MldSnoopingInterfaceEntry 7 }

bsIpv6MldSnoopingInterfaceGroups OBJECT-TYPE
    SYNTAX     Gauge32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The current number of entries for this interface in the
         Cache Table."
    ::= { bsIpv6MldSnoopingInterfaceEntry 8 }

bsIpv6MldSnoopingInterfaceRobustness OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-create
    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. IPv6 
         MLD Snooping is robust to (Robustness Variable-1) packet
         losses. The discussion of the Robustness Variable is in 
         Section 7.1 of RFC 2710."
    DEFVAL     { 2 }
    ::= { bsIpv6MldSnoopingInterfaceEntry 9 }

bsIpv6MldSnoopingInterfaceLastListenQueryIntvl OBJECT-TYPE
    SYNTAX     Unsigned32
    UNITS      "seconds"
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The Last Member Query Interval is the Max Response
         Delay 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."
    DEFVAL     { 1 }
    ::= { bsIpv6MldSnoopingInterfaceEntry 10 }

bsIpv6MldSnoopingInterfaceProxyIfIndex OBJECT-TYPE
    SYNTAX     InterfaceIndexOrZero
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "Some devices implement a form of MLD proxying whereby
         memberships learned on the interface represented by this
         row, cause MLD Multicast Listener Reports to be sent on
         the internetwork-layer interface identified by this
         object.  Such a device would implement mldRouterMIBGroup
         only on its router interfaces (those interfaces with
         non-zero mldInterfaceProxyIfIndex).  Typically, the
         value of this object is 0, indicating that no proxying
         is being done."
    DEFVAL     { 0 }
    ::= { bsIpv6MldSnoopingInterfaceEntry 11 }

bsIpv6MldSnoopingInterfaceQuerierUpTime OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The time since mldInterfaceQuerier was last changed."
    ::= { bsIpv6MldSnoopingInterfaceEntry 12 }

bsIpv6MldSnoopingInterfaceQuerierExpiryTime OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The time remaining before the Other Querier Present
         Timer expires.  If the local system is the querier,
         the value of this object is zero."
    ::= { bsIpv6MldSnoopingInterfaceEntry 13 }

bsIpv6MldSnoopingInterfaceEnabled OBJECT-TYPE
    SYNTAX      TruthValue    
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object controls whether IPv6 MLD Snooping is enabled on this interface."
    DEFVAL { false }    
    ::= { bsIpv6MldSnoopingInterfaceEntry 14 }

bsIpv6MldSnoopingInterfaceIgmpMRouterPorts OBJECT-TYPE
    SYNTAX      PortSet    
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The set of ports in this interface that provide
         connectivity to an IPv6 Multicast router."
    ::= { bsIpv6MldSnoopingInterfaceEntry 15 }

bsIpv6MldSnoopingInterfaceIgmpActiveMRouterPorts OBJECT-TYPE
    SYNTAX      PortSet    
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The set of active ports in this interface that provide
         connectivity to an IPv6 Multicast router."
    ::= { bsIpv6MldSnoopingInterfaceEntry 16 }

bsIpv6MldSnoopingInterfaceIgmpMRouterExpiration OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Multicast querier router aging time out."
    ::= { bsIpv6MldSnoopingInterfaceEntry 17 }

bsIpv6MldSnoopingInterfaceOperationalVersion OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The operational version of IPv6 MLD Snooping
         which is running on this interface at the moment."
    ::= { bsIpv6MldSnoopingInterfaceEntry 18 }

bsIpv6MldSnoopingInterfaceSendQuery OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object controls whether IPv6 MLD Send-Query
         is enabled on this interface."
    ::= { bsIpv6MldSnoopingInterfaceEntry 19 }

bsIpv6MldSnoopingInterfaceProxy OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object controls whether IPv6 MLD Proxy
         is enabled on this interface."
    ::= { bsIpv6MldSnoopingInterfaceEntry 20 }

bsIpv6MldSnoopingInterfaceFlush OBJECT-TYPE
    SYNTAX     INTEGER {
                   noAction(1),
                   groups(2),
                   mrouters(3),
                   all(4),
                   streams(5)
               }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to remove MLD members
         from this interface.
         noAction(1) value is returned at read.
         all(4) value is used to flush groups and mrouters."
    ::= { bsIpv6MldSnoopingInterfaceEntry 21 }

bsIpv6MldSnoopingInterfaceFlushPorts OBJECT-TYPE
    SYNTAX      PortSet    
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The set of ports in this interface that are going to be flushed.
         An empty port set is returned at read."
    ::= { bsIpv6MldSnoopingInterfaceEntry 22 }


--
--  The IPv6 MLD Snooping Cache Table
--

bsIpv6MldSnoopingCacheTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF BsIpv6MldSnoopingCacheEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The (conceptual) table listing the IPv6 multicast
         groups for which there are members on a particular
         interface."
    ::= { bsIpv6MldSnoopingObjects 2 }

bsIpv6MldSnoopingCacheEntry OBJECT-TYPE
    SYNTAX     BsIpv6MldSnoopingCacheEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "An entry (conceptual row) in the bsIpv6MldSnoopingCacheTable."
    INDEX      { bsIpv6MldSnoopingCacheAddress, bsIpv6MldSnoopingCacheIfIndex }
    ::= { bsIpv6MldSnoopingCacheTable 1 }

BsIpv6MldSnoopingCacheEntry ::= SEQUENCE {
    bsIpv6MldSnoopingCacheAddress            InetAddressIPv6,
    bsIpv6MldSnoopingCacheIfIndex            InterfaceIndex,
    bsIpv6MldSnoopingCacheSelf               TruthValue,
    bsIpv6MldSnoopingCacheLastReporter       InetAddressIPv6,
    bsIpv6MldSnoopingCacheUpTime             TimeTicks,
    bsIpv6MldSnoopingCacheExpiryTime         TimeTicks,
    bsIpv6MldSnoopingCacheStatus             RowStatus,
    bsIpv6MldSnoopingCacheType               INTEGER
}

bsIpv6MldSnoopingCacheAddress OBJECT-TYPE
    SYNTAX     InetAddressIPv6 (SIZE (16))
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The IPv6 multicast group address for which this entry
         contains information."
    ::= { bsIpv6MldSnoopingCacheEntry 1 }

bsIpv6MldSnoopingCacheIfIndex OBJECT-TYPE
    SYNTAX     InterfaceIndex
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The internetwork-layer interface for which this entry
         contains information for an IPv6 multicast group
         address."
    ::= { bsIpv6MldSnoopingCacheEntry 2 }

bsIpv6MldSnoopingCacheSelf OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "An indication of whether the local system is a member of
         this group address on this interface."
    DEFVAL     { true }
    ::= { bsIpv6MldSnoopingCacheEntry 3 }

bsIpv6MldSnoopingCacheLastReporter OBJECT-TYPE
    SYNTAX     InetAddressIPv6 (SIZE (16))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The IPv6 address of the source of the last membership
         report received for this IPv6 Multicast group address on
         this interface.  If no membership report has been
         received, this object has the value 0::0."
    ::= { bsIpv6MldSnoopingCacheEntry 4 }

bsIpv6MldSnoopingCacheUpTime OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The time elapsed since this entry was created."
    ::= { bsIpv6MldSnoopingCacheEntry 5 }

bsIpv6MldSnoopingCacheExpiryTime OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The minimum amount of time remaining before this entry
         will be aged out.  A value of 0 indicates that the entry
         is only present because bsIpv6MldSnoopingCacheSelf is true 
         and that if the router left the group, this entry would 
         be aged out immediately.  Note that some implementations 
         may process Membership Reports from the local system in 
         the same way as reports from other hosts, so a value of 
         0 is not required."
    ::= { bsIpv6MldSnoopingCacheEntry 6 }

bsIpv6MldSnoopingCacheStatus OBJECT-TYPE
    SYNTAX     RowStatus
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The status of this row, by which new entries may be
         created, or existing entries deleted from this table."
    ::= { bsIpv6MldSnoopingCacheEntry 7 }

bsIpv6MldSnoopingCacheType OBJECT-TYPE
    SYNTAX     INTEGER {
                   other(1),        -- none of the following
                   dynamic(2),
                   static(3)
               }
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
        "The type of this entry."
    ::= { bsIpv6MldSnoopingCacheEntry 8 }


--
--  The IPv6 MLD Snooping IGMP group Table
--

bsIpv6MldSnoopingIgmpGroupTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF BsIpv6MldSnoopingIgmpGroupEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The (conceptual) table listing IPv6 MLD Snooping 
         IGMP groups."
    ::= { bsIpv6MldSnoopingObjects 3 }

bsIpv6MldSnoopingIgmpGroupEntry OBJECT-TYPE
    SYNTAX     BsIpv6MldSnoopingIgmpGroupEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "An entry (conceptual row) representing an IPv6 MLD Snooping IGMP group."
    INDEX      { bsIpv6MldSnoopingIgmpGroupIpv6Address, 
                 bsIpv6MldSnoopingIgmpGroupMembers, 
                 bsIpv6MldSnoopingIgmpGroupSourceAddress, 
                 bsIpv6MldSnoopingIgmpGroupIfIndex }
    ::= { bsIpv6MldSnoopingIgmpGroupTable 1 }

BsIpv6MldSnoopingIgmpGroupEntry ::=
SEQUENCE {
        bsIpv6MldSnoopingIgmpGroupIpv6Address     InetAddressIPv6,
        bsIpv6MldSnoopingIgmpGroupMembers         InetAddressIPv6,
        bsIpv6MldSnoopingIgmpGroupSourceAddress   InetAddressIPv6,
        bsIpv6MldSnoopingIgmpGroupIfIndex         InterfaceIndex,
        bsIpv6MldSnoopingIgmpGroupInPort          PortList,
        bsIpv6MldSnoopingIgmpGroupExpiration      Integer32,
        bsIpv6MldSnoopingIgmpGroupUserId          DisplayString,
        bsIpv6MldSnoopingIgmpGroupType            INTEGER,
        bsIpv6MldSnoopingIgmpGroupMode            INTEGER,
        bsIpv6MldSnoopingIgmpGroupVersion         INTEGER
}

bsIpv6MldSnoopingIgmpGroupIpv6Address OBJECT-TYPE
    SYNTAX          InetAddressIPv6 (SIZE (16))
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION     
        "Multicast group Address (Class D) that others
         want to join. A group address can be the same
         for many incoming ports."
    ::= { bsIpv6MldSnoopingIgmpGroupEntry 1 }

bsIpv6MldSnoopingIgmpGroupMembers OBJECT-TYPE
    SYNTAX          InetAddressIPv6 (SIZE (16))
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION     
        "IPv6 Address of a source that has sent group
         report wishing to join this group."
    ::= { bsIpv6MldSnoopingIgmpGroupEntry 2 }

bsIpv6MldSnoopingIgmpGroupSourceAddress OBJECT-TYPE
    SYNTAX          InetAddressIPv6 (SIZE (16))
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION     
        "IPv6 Address of the source."
    ::= { bsIpv6MldSnoopingIgmpGroupEntry 3 }

bsIpv6MldSnoopingIgmpGroupIfIndex OBJECT-TYPE
    SYNTAX          InterfaceIndex
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION     
        "An unique value to identify a physical
         interface or a logical interface (VLAN),
         which has received Group reports from various
         sources."
    ::= { bsIpv6MldSnoopingIgmpGroupEntry 4 }

bsIpv6MldSnoopingIgmpGroupInPort OBJECT-TYPE
    SYNTAX          PortList
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION     
        "Value to identify physical interfaces or 
         logical interfaces (VLANs), which has received
         Group reports from various sources."
    ::= { bsIpv6MldSnoopingIgmpGroupEntry 5 }

bsIpv6MldSnoopingIgmpGroupExpiration OBJECT-TYPE
    SYNTAX          Integer32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION    
        "Time left before the group report expired on this
         port. Only one of this variable port. This
         variable is updated upon receiving a group report."
    ::= { bsIpv6MldSnoopingIgmpGroupEntry 6 }

bsIpv6MldSnoopingIgmpGroupUserId OBJECT-TYPE
    SYNTAX          DisplayString (SIZE(0..32))
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION     
        "User-id sending this group."
    ::= { bsIpv6MldSnoopingIgmpGroupEntry 7 }

bsIpv6MldSnoopingIgmpGroupType OBJECT-TYPE
    SYNTAX          INTEGER {
                        other(1),        -- none of the following
                        dynamic(2),
                        static(3)
                    }
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION     
        "The type of this entry."
    ::= { bsIpv6MldSnoopingIgmpGroupEntry 8 }

bsIpv6MldSnoopingIgmpGroupMode OBJECT-TYPE
    SYNTAX          INTEGER {
                        received(1),
                        include(2),
                        exclude(3)
                    }
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION     
        "Address mode."
    ::= { bsIpv6MldSnoopingIgmpGroupEntry 9 }

bsIpv6MldSnoopingIgmpGroupVersion OBJECT-TYPE
    SYNTAX          INTEGER {
                        version1(1),
                        version2(2)
                    }
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION     
        "Group version."
    DEFVAL { version1 }
    ::= { bsIpv6MldSnoopingIgmpGroupEntry 10 }


--
--  The IPv6 MLD Snooping Proxy Cache Table
--

bsIpv6MldSnoopingProxyCacheTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF BsIpv6MldSnoopingProxyCacheEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The (conceptual) table listing the IPv6 multicast
         groups for which the switch is registered in order to 
         receive the multicast traffic."
    ::= { bsIpv6MldSnoopingObjects 4 }

bsIpv6MldSnoopingProxyCacheEntry OBJECT-TYPE
    SYNTAX     BsIpv6MldSnoopingProxyCacheEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "An entry (conceptual row) in the bsIpv6MldSnoopingProxyCacheTable."
    INDEX      { bsIpv6MldSnoopingProxyCacheIfIndex,
                 bsIpv6MldSnoopingProxyCacheGroupAddress,
                 bsIpv6MldSnoopingProxyCacheSourceAddress }
    ::= { bsIpv6MldSnoopingProxyCacheTable 1 }

BsIpv6MldSnoopingProxyCacheEntry ::= SEQUENCE {
    bsIpv6MldSnoopingProxyCacheIfIndex        InterfaceIndex,
    bsIpv6MldSnoopingProxyCacheGroupAddress   InetAddressIPv6,
    bsIpv6MldSnoopingProxyCacheSourceAddress  InetAddressIPv6,
    bsIpv6MldSnoopingProxyCacheVersion        INTEGER,
    bsIpv6MldSnoopingProxyCacheType           INTEGER,
    bsIpv6MldSnoopingProxyCacheMode           INTEGER
}

bsIpv6MldSnoopingProxyCacheIfIndex OBJECT-TYPE
    SYNTAX          InterfaceIndex
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION     
        "An unique value to identify a logical interface (VLAN) which is
         registered as MLD host for receiving multicast traffic"
    ::= { bsIpv6MldSnoopingProxyCacheEntry 1 }

bsIpv6MldSnoopingProxyCacheGroupAddress OBJECT-TYPE
    SYNTAX          InetAddressIPv6 (SIZE (16))
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION     
        "The IPv6 destination address of the multicast
         traffic that the interface is registered for receiving it."
    ::= { bsIpv6MldSnoopingProxyCacheEntry 2 }

bsIpv6MldSnoopingProxyCacheSourceAddress OBJECT-TYPE
    SYNTAX          InetAddressIPv6 (SIZE (16))
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION     
        "The IPv6 source address of the multicast
         traffic that the interface is registered for receiving it."
    ::= { bsIpv6MldSnoopingProxyCacheEntry 3 }

bsIpv6MldSnoopingProxyCacheVersion OBJECT-TYPE
    SYNTAX          INTEGER {
                        version1(1),
                        version2(2)
                    }
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION     
        "Interface proxy version."
    ::= { bsIpv6MldSnoopingProxyCacheEntry 4 }

bsIpv6MldSnoopingProxyCacheType OBJECT-TYPE
    SYNTAX          INTEGER {
                        static(1),
                        dynamic(2)
                    }
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION     
        "The entry registration type (static or dynamic)."
    ::= { bsIpv6MldSnoopingProxyCacheEntry 5 }

bsIpv6MldSnoopingProxyCacheMode OBJECT-TYPE
    SYNTAX          INTEGER {
                        version1(1),
                        include(2),
                        exclude(3)
                    }
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION     
        "Proxy mode for MLDv2 entries.
         version1(1) value is returned for MLDv1 entries"
    ::= { bsIpv6MldSnoopingProxyCacheEntry 6 }


--
--  The IPv6 MLD Stream Table
--

bsIpv6MldStreamTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF BsIpv6MldStreamEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "The (conceptual) table listing the IPv6 multicast streams from the network."
    ::= { bsIpv6MldSnoopingObjects 5 }

bsIpv6MldStreamEntry OBJECT-TYPE
    SYNTAX     BsIpv6MldStreamEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "An entry (conceptual row) in the bsIpv6MldSnoopingProxyCacheTable."
    INDEX      { bsIpv6MldStreamVlanIfIndex,
                 bsIpv6MldStreamGroupAddress,
                 bsIpv6MldStreamSourceAddress }
    ::= { bsIpv6MldStreamTable 1 }

BsIpv6MldStreamEntry ::= SEQUENCE {
    bsIpv6MldStreamVlanIfIndex         InterfaceIndex,
    bsIpv6MldStreamGroupAddress        InetAddressIPv6,
    bsIpv6MldStreamSourceAddress       InetAddressIPv6,
    bsIpv6MldStreamInPortIfIndex       InterfaceIndex,
    bsIpv6MldStreamExpiration          TimeTicks
}

bsIpv6MldStreamVlanIfIndex OBJECT-TYPE
    SYNTAX          InterfaceIndex
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION     
        "An unique value to identify a MLD logical interface (VLAN) which
         is receiving multicast traffic"
    ::= { bsIpv6MldStreamEntry 1 }

bsIpv6MldStreamGroupAddress OBJECT-TYPE
    SYNTAX          InetAddressIPv6 (SIZE (16))
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION     
        "The IPv6 destination address of the multicast
         traffic that the interface receives it"
    ::= { bsIpv6MldStreamEntry 2 }

bsIpv6MldStreamSourceAddress OBJECT-TYPE
    SYNTAX          InetAddressIPv6 (SIZE (16))
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION     
        "The IPv6 source address of the multicast
         traffic that the interface receives it"
    ::= { bsIpv6MldStreamEntry 3 }

bsIpv6MldStreamInPortIfIndex OBJECT-TYPE
    SYNTAX          InterfaceIndex
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION     
        "An unique value to identify the ingress port which
         is receiving the multicast traffic"
    ::= { bsIpv6MldStreamEntry 4 }

bsIpv6MldStreamExpiration OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The minimum amount of time remaining
         before this entry will be aged out"
    ::= { bsIpv6MldStreamEntry 5 }


--
--  The IPv6 MLD Snooping Scalars
--

bsIpv6MldSnoopingFlush OBJECT-TYPE
    SYNTAX     INTEGER {
                   noAction(1),
                   groups(2),
                   mrouters(3),
                   all(4),
                   streams(5)
               }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to remove MLD members
         from all the interfaces.
         noAction(1) value is returned at read.
         all(4) value is used to flush groups and mrouters."
    ::= { bsIpv6MldSnoopingScalars 1 }

bsIpv6MldSnoopingFlushPorts OBJECT-TYPE
    SYNTAX      PortSet    
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The set of ports from all interfaces that are going to be flushed.
         An empty port set is returned at read."
    ::= { bsIpv6MldSnoopingScalars 2 }

bsIpv6MldSnoopingGroupCount OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of the registered MLD groups"
    ::= { bsIpv6MldSnoopingScalars 3 }

bsIpv6MldSnoopingStreamCount OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of the registered IPv6 multicast streams"
    ::= { bsIpv6MldSnoopingScalars 4 }

bsIpv6MldSnoopingAvailableMulticastEntriesCount OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The number of the available multicast entries"
    ::= { bsIpv6MldSnoopingScalars 5 }

END
