faqs.org - Internet FAQ Archives

RFC 5519 - Multicast Group Membership Discovery MIB


Or Display the document by number




Network Working Group                                    J. Chesterfield
Request for Comments: 5519                       University of Cambridge
Obsoletes: 2933, 3019                                   B. Haberman, Ed.
Category: Standards Track                                        JHU/APL
                                                              April 2009

                Multicast Group Membership Discovery MIB

Status of This Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the "Internet
   Official Protocol Standards" (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Copyright Notice

   Copyright (c) 2009 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents in effect on the date of
   publication of this document (http://trustee.ietf.org/license-info).
   Please review these documents carefully, as they describe your rights
   and restrictions with respect to this document.

Abstract

   This memo defines a portion of the Management Information Base (MIB)
   for use with network management protocols in the Internet community.
   In particular, it describes objects used for managing the Internet
   Group Management Protocol (IGMP) and the Multicast Listener Discovery
   (MLD) protocol.

Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  2
   2.  The Internet-Standard Management Framework . . . . . . . . . .  2
   3.  Conventions  . . . . . . . . . . . . . . . . . . . . . . . . .  3
   4.  Overview . . . . . . . . . . . . . . . . . . . . . . . . . . .  3
   5.  Definitions  . . . . . . . . . . . . . . . . . . . . . . . . .  4
   6.  Security Considerations  . . . . . . . . . . . . . . . . . . . 38
   7.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 39
   8.  Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 39
   9.  Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 40
   10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 40
     10.1.  Normative References  . . . . . . . . . . . . . . . . . . 40
     10.2.  Informative References  . . . . . . . . . . . . . . . . . 41

1.  Introduction

   This memo defines a portion of the Management Information Base (MIB)
   for use with network management protocols in the Internet community.
   In particular, it describes objects used for managing the Internet
   Group Management Protocol (IGMP) version 1 [RFC1112], version 2
   [RFC2236], or version 3 [RFC3376] and the Multicast Listener
   Discovery (MLD) protocol version 1 [RFC2710] or version 2 [RFC3810].
   Both protocols provide multicast membership discovery capability.
   IGMP pertains to IP version 4 clients, and MLD to IP version 6
   clients.  This version of the MIB obsoletes both RFC 2933 [RFC2933]
   and RFC 3019 [RFC3019], incorporating a generic interface for both
   IGMP and MLD implementations and incorporating changes to enable
   "source filtering" in multicast clients.  The MIB encompasses both
   router and host nodes with relevant management objects defined for
   each.

2.  The Internet-Standard Management Framework

   For a detailed overview of the documents that describe the current
   Internet-Standard Management Framework, please refer to section 7 of
   RFC 3410 [RFC3410].

   Managed objects are accessed via a virtual information store, termed
   the Management Information Base or MIB.  MIB objects are generally
   accessed through the Simple Network Management Protocol (SNMP).
   Objects in the MIB are defined using the mechanisms defined in the
   Structure of Management Information (SMI).  This memo specifies a MIB
   module that is compliant to the SMIv2, which is described in STD 58,
   RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] and STD 58, RFC 2580
   [RFC2580].

3.  Conventions

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in RFC 2119 [RFC2119].

4.  Overview

   This Multicast Group Membership Discovery (MGMD) MIB module contains
   eight tables:

   1.  the MGMD Host Interface Table, which contains one row for each
       interface on which IGMP or MLD is enabled on a host,

   2.  the MGMD Router Interface Table, which contains one row for each
       interface on which MGMD is enabled on a router,

   3.  the MGMD Host Cache Table, which contains one row for each IP
       multicast group for which there are members on a particular
       interface on a host,

   4.  the MGMD Router Cache Table, which contains one row for each IP
       multicast group for which there are members on a particular
       interface on a router,

   5.  the reverse MGMD Host Table, which contains one row for each
       interface for which there are active multicast groups on a host,

   6.  the reverse MGMD Router Table, which contains one row for each
       interface for which there are active multicast groups on a
       router,

   7.  the MGMD HostSrcList Table, which contains one row for each entry
       in the source filter record for an interface and multicast group
       pair on a host, and

   8.  the MGMD RouterSrcList Table, which contains one row for each
       entry in the source filter record for an interface and multicast
       group pair on a router.

   All tables are intended for EITHER router OR host functionality as
   indicated by the name and corresponding description, although it is
   anticipated that there will be scenarios where both terms might apply
   to a device, e.g., a router that joins a multicast group also as a
   host for measurement purposes.  The source list tables provide an
   extension to the cache tables to indicate the source-specific

   includes or excludes associated with each IP multicast group on each
   specific interface.  This functionality is only supported in IGMPv3-
   and MLDv2-capable nodes.

   Incorporated within the MGMD MIB tables are objects for the
   management of IGMP and MLD proxy devices as described in RFC 4605
   [RFC4605].  Proxy devices can be used in simple topologies where it
   is not necessary to run a full multicast routing protocol.  A proxy
   device can make forwarding decisions based on IGMP or MLD group
   membership activity.

   The MIB references InterfaceIndex and InterfaceIndexOrZero objects as
   defined in RFC 2863 [RFC2863], the MIB that describes generic objects
   for network interface sub-layers.

   Extensive references to the InetAddress and InetAddressType objects
   are made as defined in RFC 4001 [RFC4001].

5.  Definitions

MGMD-STD-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, mib-2, Counter32, Gauge32,
    Unsigned32, TimeTicks            FROM SNMPv2-SMI
    InetAddress, InetAddressType     FROM INET-ADDRESS-MIB
    RowStatus                        FROM SNMPv2-TC
    MODULE-COMPLIANCE, OBJECT-GROUP  FROM SNMPv2-CONF
    InterfaceIndexOrZero,
    InterfaceIndex                   FROM IF-MIB;

mgmdStdMIB MODULE-IDENTITY
    LAST-UPDATED "200903300000Z" -- March 30, 2009
    ORGANIZATION "INTERNET ENGINEERING TASK FORCE MULTICAST and
    ANYCAST GROUP MEMBERSHIP Working
        Group.
        www:   http://www.ietf.org/html.charters/magma-charter.html
        EMail: magma@ietf.org"
    CONTACT-INFO
        "Julian Chesterfield
        University of Cambridge,
        Computer Laboratory,
        15 JJ Thompson Avenue,
        Cambridge,
        CB3 0FD
        UK

        EMail: julian.chesterfield@cl.cam.ac.uk"

    DESCRIPTION
        "The MIB module for MGMD management.
        A new version of MGMD combining RFC 2933 and RFC 3019.
        Includes IGMPv3 and MLDv2 source filtering changes.

        Copyright (c) 2009 IETF Trust and the persons
        identified as authors of the code.  All rights reserved.

        Redistribution and use in source and binary forms, with or
        without modification, are permitted provided that the
        following conditions are met:

        - Redistributions of source code must retain the above copyright
          notice, this list of conditions and the following disclaimer.

        - Redistributions in binary form must reproduce the above
          copyright notice, this list of conditions and the following
          disclaimer in the documentation and/or other materials
          provided with the distribution.

        - Neither the name of Internet Society, IETF or IETF Trust,
          nor the names of specific contributors, may be used to endorse
          or promote products derived from this software without
          specific prior written permission.

        THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
        CONTRIBUTORS 'AS IS' AND ANY EXPRESS OR IMPLIED WARRANTIES,
        INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
        MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
        DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
        CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
        NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
        LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
        HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
        CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
        OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
        EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

        This version of this MIB module is part of RFC 5519;
        see the RFC itself for full legal notices."

    REVISION "200903300000Z" -- March 30, 2009
    DESCRIPTION
        "This MIB obsoletes both RFC 2933 and RFC 3019."

    ::= { mib-2 185 }

mgmdMIBObjects     OBJECT IDENTIFIER ::= { mgmdStdMIB 1 }

--
--  The MGMD Host Interface Table
--

mgmdHostInterfaceTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF MgmdHostInterfaceEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The (conceptual) table listing the interfaces on which
             IGMP or MLD is enabled."

    ::= { mgmdMIBObjects 1 }

mgmdHostInterfaceEntry OBJECT-TYPE
    SYNTAX     MgmdHostInterfaceEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) representing an interface on
            which IGMP or MLD is enabled."
    INDEX      { mgmdHostInterfaceIfIndex,
                 mgmdHostInterfaceQuerierType }

    ::= { mgmdHostInterfaceTable 1 }

MgmdHostInterfaceEntry ::= SEQUENCE {
    mgmdHostInterfaceIfIndex               InterfaceIndex,
    mgmdHostInterfaceQuerierType           InetAddressType,
    mgmdHostInterfaceQuerier               InetAddress,
    mgmdHostInterfaceStatus                RowStatus,
    mgmdHostInterfaceVersion               Unsigned32,
    mgmdHostInterfaceVersion1QuerierTimer  TimeTicks,
    mgmdHostInterfaceVersion2QuerierTimer  TimeTicks,
    mgmdHostInterfaceVersion3Robustness    Unsigned32
}

mgmdHostInterfaceIfIndex OBJECT-TYPE
    SYNTAX     InterfaceIndex
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The ifIndex value of the interface for which IGMP or MLD is
             enabled.  The table is indexed by the ifIndex value and the
             InetAddressType to allow for interfaces that may be
             configured in both IPv4 and IPv6 modes."

    ::= { mgmdHostInterfaceEntry 1 }

mgmdHostInterfaceQuerierType OBJECT-TYPE
    SYNTAX     InetAddressType { ipv4(1), ipv6(2) }
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The address type of this interface.  This entry along with
             the ifIndex value acts as an index to the mgmdHostInterface
             table.  A physical interface may be configured in multiple
             modes concurrently, e.g., in IPv4 and IPv6 modes connected
             to the same interface; however, the traffic is considered
             to be logically separate."

    ::= { mgmdHostInterfaceEntry 2 }

mgmdHostInterfaceQuerier OBJECT-TYPE
    SYNTAX     InetAddress (SIZE(4|16))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The address of the IGMP or MLD Querier on the IP subnet to
             which this interface is attached.  The InetAddressType,
             e.g., IPv4 or IPv6, is identified by the
             mgmdHostInterfaceQuerierType variable in the
             mgmdHostInterface table."

    ::= { mgmdHostInterfaceEntry 3 }

mgmdHostInterfaceStatus OBJECT-TYPE
    SYNTAX     RowStatus
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The activation of a row enables the host side of IGMP or
            MLD on the interface.  The destruction of a row disables
            the host side of IGMP or MLD on the interface."

    ::= { mgmdHostInterfaceEntry 4 }

mgmdHostInterfaceVersion OBJECT-TYPE
    SYNTAX     Unsigned32 (1..3)
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The maximum version of MGMD that the host can run on
            this interface.  A value of 1 is only applicable for IPv4,
            and indicates that the host only supports IGMPv1 on the

            interface.  A value of 2 indicates that the host also
            supports IGMPv2 (for IPv4) or MLDv1 (for IPv6).  A value of
            3 indicates that the host also supports IGMPv3 (for IPv4)
            or MLDv2 (for IPv6)."
    DEFVAL     { 3 }

    ::= { mgmdHostInterfaceEntry 5 }

mgmdHostInterfaceVersion1QuerierTimer OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The time remaining until the host assumes that there are
            no IGMPv1 routers present on the interface.  While this is
            non-zero, the host will reply to all queries with version 1
            membership reports.  This variable applies to IGMPv2 or 3
            hosts that are forced to run in v1 for compatibility with
            v1 routers present on the interface.  This object may only
            be present when the corresponding value of
            mgmdHostInterfaceQuerierType is ipv4."
    REFERENCE "RFC 2236, Section 4 and RFC 3376, Section 7.2.1"
    DEFVAL     { 0 }

    ::= { mgmdHostInterfaceEntry 6 }

mgmdHostInterfaceVersion2QuerierTimer OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The time remaining until the host assumes that there are
            no MGMDv2 routers present on the interface.  While this is
            non-zero, the host will reply to all queries with version 1
            or 2 membership reports.  This variable applies to MGMDv3
            hosts that are forced to run in v2 for compatibility with
            v2 hosts or routers present on the interface."
    REFERENCE "RFC 3376, Section 7.2.1 and RFC 3810, Section 8.2.1"
    DEFVAL     { 0 }

    ::= { mgmdHostInterfaceEntry 7 }

mgmdHostInterfaceVersion3Robustness OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-create
    STATUS     current

    DESCRIPTION
            "The robustness variable utilised by an MGMDv3 host in
            sending state-change reports for multicast routers.  To
            ensure the state-change report is not missed, the host
            retransmits the state-change report
            [mgmdHostInterfaceVersion3Robustness - 1] times.  The
            variable must be a non-zero value."
    REFERENCE "RFC 3376, Section 8.1 and RFC 3810, Section 9.14.1"
    DEFVAL     { 2 }

    ::= { mgmdHostInterfaceEntry 8 }

--
--  The MGMD Router Interface Table
--

mgmdRouterInterfaceTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF MgmdRouterInterfaceEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The (conceptual) table listing the interfaces on which
            IGMP or MLD is enabled."

    ::= { mgmdMIBObjects 2 }

mgmdRouterInterfaceEntry OBJECT-TYPE
    SYNTAX     MgmdRouterInterfaceEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) representing an interface on
            which IGMP or MLD is enabled."
    INDEX      { mgmdRouterInterfaceIfIndex,
                 mgmdRouterInterfaceQuerierType }

    ::= { mgmdRouterInterfaceTable 1 }

MgmdRouterInterfaceEntry ::= SEQUENCE {
    mgmdRouterInterfaceIfIndex                 InterfaceIndex,
    mgmdRouterInterfaceQuerierType             InetAddressType,
    mgmdRouterInterfaceQuerier                 InetAddress,
    mgmdRouterInterfaceQueryInterval           Unsigned32,
    mgmdRouterInterfaceStatus                  RowStatus,
    mgmdRouterInterfaceVersion                 Unsigned32,
    mgmdRouterInterfaceQueryMaxResponseTime    Unsigned32,
    mgmdRouterInterfaceQuerierUpTime           TimeTicks,
    mgmdRouterInterfaceQuerierExpiryTime       TimeTicks,

    mgmdRouterInterfaceWrongVersionQueries     Counter32,
    mgmdRouterInterfaceJoins                   Counter32,
    mgmdRouterInterfaceProxyIfIndex            InterfaceIndexOrZero,
    mgmdRouterInterfaceGroups                  Gauge32,
    mgmdRouterInterfaceRobustness              Unsigned32,
    mgmdRouterInterfaceLastMemberQueryInterval Unsigned32,
    mgmdRouterInterfaceLastMemberQueryCount    Unsigned32,
    mgmdRouterInterfaceStartupQueryCount       Unsigned32,
    mgmdRouterInterfaceStartupQueryInterval    Unsigned32
}

mgmdRouterInterfaceIfIndex OBJECT-TYPE
    SYNTAX     InterfaceIndex
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The ifIndex value of the interface for which IGMP or MLD
            is enabled.  The table is indexed by the ifIndex value and
            the InetAddressType to allow for interfaces that may be
            configured in both IPv4 and IPv6 modes."

    ::= { mgmdRouterInterfaceEntry 1 }

mgmdRouterInterfaceQuerierType OBJECT-TYPE
    SYNTAX     InetAddressType { ipv4(1), ipv6(2) }
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The address type of this interface.  This entry along with
            the ifIndex value acts as the index to the
            mgmdRouterInterface table.  A physical interface may be
            configured in multiple modes concurrently, e.g., in IPv4
            and IPv6 modes connected to the same interface; however,
            the traffic is considered to be logically separate."

    ::= { mgmdRouterInterfaceEntry 2 }

mgmdRouterInterfaceQuerier OBJECT-TYPE
    SYNTAX     InetAddress (SIZE(4|16))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The address of the IGMP or MLD Querier on the IP subnet to
            which this interface is attached.  The InetAddressType,
            e.g., IPv4 or IPv6, is identified by the
            mgmdRouterInterfaceQuerierType variable in the
            mgmdRouterInterface table."

    ::= { mgmdRouterInterfaceEntry 3 }

mgmdRouterInterfaceQueryInterval OBJECT-TYPE
    SYNTAX     Unsigned32 (1..31744)
    UNITS      "seconds"
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The frequency at which IGMP or MLD Host-Query packets are
            transmitted on this interface."
    DEFVAL     { 125 }

    ::= { mgmdRouterInterfaceEntry 4 }

mgmdRouterInterfaceStatus OBJECT-TYPE
    SYNTAX     RowStatus
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The activation of a row enables the router side of IGMP or
            MLD on the interface.  The destruction of a row disables
            the router side of IGMP or MLD on the interface."

    ::= { mgmdRouterInterfaceEntry 5 }

mgmdRouterInterfaceVersion OBJECT-TYPE
    SYNTAX     Unsigned32 (1..3)
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The version of MGMD that is running on this interface.
            Value 1 applies to IGMPv1 routers only.  Value 2 applies
            to IGMPv2 and MLDv1 routers, and value 3 applies to IGMPv3
            and MLDv2 routers.

            This object can be used to configure a router capable of
            running either version.  For IGMP and MLD to function
            correctly, all routers on a LAN must be configured to run
            the same version on that LAN."
    DEFVAL     { 3 }

    ::= { mgmdRouterInterfaceEntry 6 }

mgmdRouterInterfaceQueryMaxResponseTime OBJECT-TYPE
    SYNTAX     Unsigned32  (0..31744)
    UNITS      "tenths of seconds"
    MAX-ACCESS read-create
    STATUS     current

    DESCRIPTION
            "The maximum query response interval advertised in MGMDv2
            or IGMPv3 queries on this interface."
    REFERENCE "RFC 3810, Section 9.3"
    DEFVAL     { 100 }

    ::= { mgmdRouterInterfaceEntry 7 }

mgmdRouterInterfaceQuerierUpTime OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The time since mgmdRouterInterfaceQuerier was last
            changed."

    ::= { mgmdRouterInterfaceEntry 8 }

mgmdRouterInterfaceQuerierExpiryTime OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The amount of time remaining before the Other Querier
            Present Timer expires.  If the local system is the querier,
            the value of this object is zero."

    ::= { mgmdRouterInterfaceEntry 9 }

mgmdRouterInterfaceWrongVersionQueries OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of general queries received whose IGMP or MLD
            version does not match the equivalent
            mgmdRouterInterfaceVersion, over the lifetime of the row
            entry.  Both IGMP and MLD require that all routers on a LAN
            be configured to run the same version.  Thus, if any general
            queries are received with the wrong version, this indicates
            a configuration error."

    ::= { mgmdRouterInterfaceEntry 10 }

mgmdRouterInterfaceJoins 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 can give an indication of the amount of activity
            between samples over time."

    ::= { mgmdRouterInterfaceEntry 11 }

mgmdRouterInterfaceProxyIfIndex OBJECT-TYPE
    SYNTAX     InterfaceIndexOrZero
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "Some devices implement a form of IGMP or MLD proxying
            whereby memberships learned on the interface represented by
            this row cause Host Membership Reports to be sent on the
            interface whose ifIndex value is given by this object.
            Such a device would implement the mgmdV2RouterBaseMIBGroup
            only on its router interfaces (those interfaces with
            non-zero mgmdRouterInterfaceProxyIfIndex).  Typically, the
            value of this object is 0, indicating that no proxying is
            being done."
    DEFVAL     { 0 }

    ::= { mgmdRouterInterfaceEntry 12 }

mgmdRouterInterfaceGroups OBJECT-TYPE
    SYNTAX     Gauge32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The current number of entries for this interface in the
            mgmdRouterCacheTable."

    ::= { mgmdRouterInterfaceEntry 13 }

mgmdRouterInterfaceRobustness OBJECT-TYPE
    SYNTAX     Unsigned32 (1..255)
    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.  IGMP and
            MLD are robust to (Robustness Variable-1) packet losses."
    DEFVAL     { 2 }

    ::= { mgmdRouterInterfaceEntry 14 }

mgmdRouterInterfaceLastMemberQueryInterval OBJECT-TYPE
    SYNTAX     Unsigned32  (0..31744)
    UNITS      "tenths of seconds"
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The Last Member Query Interval is the Max Query Response
            Interval 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.  The value of this object is
            irrelevant if mgmdRouterInterfaceVersion is 1."
    DEFVAL     { 10 }

    ::= { mgmdRouterInterfaceEntry 15 }

mgmdRouterInterfaceLastMemberQueryCount OBJECT-TYPE
    SYNTAX     Unsigned32 (1..255)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Represents the number of group-specific and group-and-
            source-specific queries sent by the router before it assumes
            there are no local members."

    ::= { mgmdRouterInterfaceEntry 16 }

mgmdRouterInterfaceStartupQueryCount OBJECT-TYPE
    SYNTAX     Unsigned32 (1..255)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Represents the number of Queries sent out on startup,
            separated by the Startup Query Interval."

    ::= { mgmdRouterInterfaceEntry 17 }

mgmdRouterInterfaceStartupQueryInterval OBJECT-TYPE
    SYNTAX     Unsigned32 (0..31744)
    UNITS      "seconds"
    MAX-ACCESS read-only
    STATUS     current

    DESCRIPTION
            "This variable represents the interval between General
            Queries sent by a Querier on startup."

    ::= { mgmdRouterInterfaceEntry 18 }

--
--  The MGMD Host Cache Table
--

mgmdHostCacheTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF MgmdHostCacheEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The (conceptual) table listing the IP multicast groups for
             which the host is a member on a particular interface."

    ::= { mgmdMIBObjects 3 }

mgmdHostCacheEntry OBJECT-TYPE
    SYNTAX     MgmdHostCacheEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the mgmdHostCacheTable."
    INDEX      { mgmdHostCacheAddressType, mgmdHostCacheAddress,
                 mgmdHostCacheIfIndex }

    ::= { mgmdHostCacheTable 1 }

MgmdHostCacheEntry ::= SEQUENCE {
    mgmdHostCacheAddressType        InetAddressType,
    mgmdHostCacheAddress            InetAddress ,
    mgmdHostCacheIfIndex            InterfaceIndex,
    mgmdHostCacheUpTime             TimeTicks,
    mgmdHostCacheLastReporter       InetAddress,
    mgmdHostCacheSourceFilterMode   INTEGER
}

mgmdHostCacheAddressType OBJECT-TYPE
    SYNTAX     InetAddressType { ipv4(1), ipv6(2) }
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The address type of the mgmdHostCacheTable entry.  This
            value applies to both the mgmdHostCacheAddress and the
            mgmdHostCacheLastReporter entries."

    ::= { mgmdHostCacheEntry 1 }

mgmdHostCacheAddress OBJECT-TYPE
    SYNTAX      InetAddress (SIZE(4|16))
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The IP multicast group address for which this entry
            contains information.  The InetAddressType, e.g., IPv4 or
            IPv6, is identified by the mgmdHostCacheAddressType variable
            in the mgmdHostCache table."

    ::= { mgmdHostCacheEntry 2 }

mgmdHostCacheIfIndex OBJECT-TYPE
    SYNTAX     InterfaceIndex
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The interface for which this entry contains information
            for an IP multicast group address."

    ::= { mgmdHostCacheEntry 3 }

mgmdHostCacheUpTime OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The time elapsed since this entry was created."

    ::= { mgmdHostCacheEntry 4 }

mgmdHostCacheLastReporter OBJECT-TYPE
    SYNTAX     InetAddress (SIZE(4|16))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The IP address of the source of the last membership report
            received for this IP multicast group address on this
            interface.  If no membership report has been received, this
            object has a value of 0.  The InetAddressType, e.g., IPv4 or
            IPv6, is identified by the mgmdHostCacheAddressType variable
            in the mgmdHostCache table."

    ::= { mgmdHostCacheEntry 5 }

mgmdHostCacheSourceFilterMode OBJECT-TYPE

    SYNTAX     INTEGER {include (1),
                        exclude (2) }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The state in which the interface is currently set.  The
            value indicates the relevance of the corresponding source
            list entries in the mgmdHostSecListTable for MGMDv3
            interfaces."

    ::= { mgmdHostCacheEntry 6 }

--
--  The MGMD Router Cache Table
--

mgmdRouterCacheTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF MgmdRouterCacheEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The (conceptual) table listing the IP multicast groups for
            which there are members on a particular router interface."

    ::= { mgmdMIBObjects 4 }

mgmdRouterCacheEntry OBJECT-TYPE
    SYNTAX     MgmdRouterCacheEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the mgmdRouterCacheTable."

    INDEX      { mgmdRouterCacheAddressType, mgmdRouterCacheAddress,
                 mgmdRouterCacheIfIndex }

    ::= { mgmdRouterCacheTable 1 }

MgmdRouterCacheEntry ::= SEQUENCE {
    mgmdRouterCacheAddressType        InetAddressType,
    mgmdRouterCacheAddress            InetAddress,
    mgmdRouterCacheIfIndex            InterfaceIndex,
    mgmdRouterCacheLastReporter       InetAddress,
    mgmdRouterCacheUpTime             TimeTicks,
    mgmdRouterCacheExpiryTime         TimeTicks,
    mgmdRouterCacheExcludeModeExpiryTimer
                                      TimeTicks,
    mgmdRouterCacheVersion1HostTimer  TimeTicks,

    mgmdRouterCacheVersion2HostTimer  TimeTicks,
    mgmdRouterCacheSourceFilterMode   INTEGER
}

mgmdRouterCacheAddressType OBJECT-TYPE
    SYNTAX     InetAddressType { ipv4(1), ipv6(2) }
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The address type of the mgmdRouterCacheTable entry.  This
            value applies to both the mgmdRouterCacheAddress and the
            mgmdRouterCacheLastReporter entries."

    ::= { mgmdRouterCacheEntry 1 }

mgmdRouterCacheAddress OBJECT-TYPE
    SYNTAX      InetAddress (SIZE(4|16))
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The IP multicast group address for which this entry
            contains information.  The InetAddressType, e.g., IPv4 or
            IPv6, is identified by the mgmdRouterCacheAddressType
            variable in the mgmdRouterCache table."

    ::= { mgmdRouterCacheEntry 2 }

mgmdRouterCacheIfIndex OBJECT-TYPE
    SYNTAX     InterfaceIndex
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The interface for which this entry contains information
            for an IP multicast group address."

    ::= { mgmdRouterCacheEntry 3 }

mgmdRouterCacheLastReporter OBJECT-TYPE
    SYNTAX     InetAddress (SIZE(4|16))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The IP address of the source of the last membership report
            received for this IP multicast group address on this
            interface.  If no membership report has been received, this
            object has the value 0.  The InetAddressType, e.g., IPv4 or
            IPv6, is identified by the mgmdRouterCacheAddressType
            variable in the mgmdRouterCache table."

    ::= { mgmdRouterCacheEntry 4 }

mgmdRouterCacheUpTime OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The time elapsed since this entry was created."

    ::= { mgmdRouterCacheEntry 5 }

mgmdRouterCacheExpiryTime OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "This value represents the time remaining before the Group
            Membership Interval state expires.  The value must always be
            greater than or equal to 1."

    ::= { mgmdRouterCacheEntry 6 }

mgmdRouterCacheExcludeModeExpiryTimer OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "This value is applicable only to MGMDv3-compatible nodes
            and represents the time remaining before the interface
            EXCLUDE state expires and the interface state transitions
            to INCLUDE mode.  This value can never be greater than
            mgmdRouterCacheExpiryTime."

    ::= { mgmdRouterCacheEntry 7 }

mgmdRouterCacheVersion1HostTimer OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The time remaining until the local router will assume that
            there are no longer any MGMD version 1 members on the IP
            subnet attached to this interface.  This entry only applies
            to IGMPv1 hosts, and is not implemented for MLD.  Upon
            hearing any MGMDv1 Membership Report (IGMPv1 only), this
            value is reset to the group membership timer.  While this

            time remaining is non-zero, the local router ignores any
            MGMDv2 Leave messages (IGMPv2 only) for this group that it
            receives on this interface."

    ::= { mgmdRouterCacheEntry 8 }

mgmdRouterCacheVersion2HostTimer OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The time remaining until the local router will assume that
            there are no longer any MGMD version 2 members on the IP
            subnet attached to this interface.  This entry applies to
            both IGMP and MLD hosts.  Upon hearing any MGMDv2 Membership
            Report, this value is reset to the group membership timer.
            Assuming no MGMDv1 hosts have been detected, the local
            router does not ignore any MGMDv2 Leave messages for this
            group that it receives on this interface."

    ::= { mgmdRouterCacheEntry 9 }

mgmdRouterCacheSourceFilterMode OBJECT-TYPE
    SYNTAX     INTEGER {include (1),
                        exclude (2) }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The current cache state, applicable to MGMDv3-compatible
            nodes.  The value indicates whether the state is INCLUDE or
            EXCLUDE."

    ::= { mgmdRouterCacheEntry 10 }

--
--  The MGMD Inverse Host interface/cache lookup Table
--

mgmdInverseHostCacheTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF MgmdInverseHostCacheEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The (conceptual) table listing the interfaces that are
            members of a particular group.  This is an inverse lookup
            table for entries in the mgmdHostCacheTable."

    ::= { mgmdMIBObjects 5 }

mgmdInverseHostCacheEntry OBJECT-TYPE
    SYNTAX     MgmdInverseHostCacheEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the
            mgmdInverseHostCacheTable."
    INDEX      { mgmdInverseHostCacheIfIndex,
                 mgmdInverseHostCacheAddressType,
                 mgmdInverseHostCacheAddress}

    ::= { mgmdInverseHostCacheTable 1 }

MgmdInverseHostCacheEntry ::= SEQUENCE {
    mgmdInverseHostCacheIfIndex            InterfaceIndex,
    mgmdInverseHostCacheAddressType        InetAddressType,
    mgmdInverseHostCacheAddress            InetAddress
}

mgmdInverseHostCacheIfIndex OBJECT-TYPE
    SYNTAX     InterfaceIndex
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The interface for which this entry contains information."

    ::= { mgmdInverseHostCacheEntry 1 }

mgmdInverseHostCacheAddressType OBJECT-TYPE
    SYNTAX     InetAddressType { ipv4(1), ipv6(2) }
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The address type of the mgmdInverseHostCacheTable entry."

    ::= { mgmdInverseHostCacheEntry 2 }

mgmdInverseHostCacheAddress OBJECT-TYPE
    SYNTAX      InetAddress (SIZE(4|16))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The IP multicast group address for which this entry
            contains information about an interface.  The
            InetAddressType, e.g., IPv4 or IPv6, is identified by the
            mgmdInverseHostCacheAddressType variable in the
            mgmdInverseHostCache table."

    ::= { mgmdInverseHostCacheEntry 3 }

--
--  The MGMD Inverse Router interface/cache lookup Table
--

mgmdInverseRouterCacheTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF MgmdInverseRouterCacheEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The (conceptual) table listing the interfaces that
            are members of a particular group.  This is an inverse
            lookup table for entries in the mgmdRouterCacheTable."

    ::= { mgmdMIBObjects 6 }

mgmdInverseRouterCacheEntry OBJECT-TYPE
    SYNTAX     MgmdInverseRouterCacheEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the
            mgmdInverseRouterCacheTable."
    INDEX      { mgmdInverseRouterCacheIfIndex,
                 mgmdInverseRouterCacheAddressType,
                 mgmdInverseRouterCacheAddress }

    ::= { mgmdInverseRouterCacheTable 1 }

MgmdInverseRouterCacheEntry ::= SEQUENCE {
    mgmdInverseRouterCacheIfIndex            InterfaceIndex,
    mgmdInverseRouterCacheAddressType        InetAddressType,
    mgmdInverseRouterCacheAddress            InetAddress
}

mgmdInverseRouterCacheIfIndex OBJECT-TYPE
    SYNTAX     InterfaceIndex
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The interface for which this entry contains information
            for an IP multicast group address."

    ::= { mgmdInverseRouterCacheEntry 1 }

mgmdInverseRouterCacheAddressType OBJECT-TYPE
    SYNTAX     InetAddressType { ipv4(1), ipv6(2) }

    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The address type of the mgmdInverseRouterCacheTable entry."

    ::= { mgmdInverseRouterCacheEntry 2 }

mgmdInverseRouterCacheAddress OBJECT-TYPE
    SYNTAX      InetAddress (SIZE(4|16))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The IP multicast group address for which this entry
            contains information.  The InetAddressType, e.g., IPv4 or
            IPv6, is identified by the mgmdInverseRouterCacheAddressType
            variable in the mgmdInverseRouterCache table."

    ::= { mgmdInverseRouterCacheEntry 3 }

--
--  The MGMD Host Source list Table
--

mgmdHostSrcListTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF MgmdHostSrcListEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The (conceptual) table listing the Source List entries
             corresponding to each interface and multicast group pair
             on a host."

    ::= { mgmdMIBObjects 7 }

mgmdHostSrcListEntry OBJECT-TYPE
    SYNTAX     MgmdHostSrcListEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the mgmdHostSrcListTable."
    INDEX      { mgmdHostSrcListAddressType, mgmdHostSrcListAddress,
                 mgmdHostSrcListIfIndex, mgmdHostSrcListHostAddress }

    ::= { mgmdHostSrcListTable 1 }

MgmdHostSrcListEntry ::= SEQUENCE {
    mgmdHostSrcListAddressType      InetAddressType,
    mgmdHostSrcListAddress          InetAddress,

    mgmdHostSrcListIfIndex          InterfaceIndex,
    mgmdHostSrcListHostAddress      InetAddress,
    mgmdHostSrcListExpire           TimeTicks
}

mgmdHostSrcListAddressType OBJECT-TYPE
    SYNTAX     InetAddressType { ipv4(1), ipv6(2) }
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The address type of the InetAddress variables in this
            table.  This value applies to the mgmdHostSrcListHostAddress
            and mgmdHostSrcListAddress entries."

    ::= { mgmdHostSrcListEntry 1 }

mgmdHostSrcListAddress OBJECT-TYPE
    SYNTAX      InetAddress (SIZE(4|16))
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The IP multicast group address for which this entry
            contains information."

    ::= { mgmdHostSrcListEntry 2 }

mgmdHostSrcListIfIndex OBJECT-TYPE
    SYNTAX     InterfaceIndex
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The interface for which this entry contains information
            for an IP multicast group address."

    ::= { mgmdHostSrcListEntry 3 }

mgmdHostSrcListHostAddress OBJECT-TYPE
    SYNTAX      InetAddress (SIZE(4|16))
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The host address to which this entry corresponds.  The
            mgmdHostCacheSourceFilterMode value for this group address
            and interface indicates whether this host address is
            included or excluded."

    ::= { mgmdHostSrcListEntry 4 }

mgmdHostSrcListExpire OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "This value indicates the relevance of the SrcList entry,
            whereby a non-zero value indicates this is an INCLUDE state
            value, and a zero value indicates this to be an EXCLUDE
            state value."

    ::= { mgmdHostSrcListEntry 5 }

--
--  The MGMD Router Source list Table
--

mgmdRouterSrcListTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF MgmdRouterSrcListEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The (conceptual) table listing the Source List entries
            corresponding to each interface and multicast group pair on
            a Router."

    ::= { mgmdMIBObjects 8 }

mgmdRouterSrcListEntry OBJECT-TYPE
    SYNTAX     MgmdRouterSrcListEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the mgmdRouterSrcListTable."
    INDEX      { mgmdRouterSrcListAddressType,
                 mgmdRouterSrcListAddress,
                 mgmdRouterSrcListIfIndex,
                 mgmdRouterSrcListHostAddress }

    ::= { mgmdRouterSrcListTable 1 }

MgmdRouterSrcListEntry ::= SEQUENCE {
    mgmdRouterSrcListAddressType    InetAddressType,
    mgmdRouterSrcListAddress        InetAddress,
    mgmdRouterSrcListIfIndex        InterfaceIndex,
    mgmdRouterSrcListHostAddress    InetAddress,
    mgmdRouterSrcListExpire         TimeTicks
}

mgmdRouterSrcListAddressType OBJECT-TYPE
    SYNTAX     InetAddressType { ipv4(1), ipv6(2) }
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The address type of the InetAddress variables in this
            table.  This value applies to the
            mgmdRouterSrcListHostAddress and mgmdRouterSrcListAddress
            entries."

    ::= { mgmdRouterSrcListEntry 1 }

mgmdRouterSrcListAddress OBJECT-TYPE
    SYNTAX      InetAddress (SIZE(4|16))
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The IP multicast group address for which this entry
            contains information."

    ::= { mgmdRouterSrcListEntry 2 }

mgmdRouterSrcListIfIndex OBJECT-TYPE
    SYNTAX     InterfaceIndex
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The interface for which this entry contains information
            for an IP multicast group address."

    ::= { mgmdRouterSrcListEntry 3 }

mgmdRouterSrcListHostAddress OBJECT-TYPE
    SYNTAX      InetAddress (SIZE(4|16))
    MAX-ACCESS  not-accessible
    STATUS     current
    DESCRIPTION
            "The host address to which this entry corresponds.  The
            mgmdRouterCacheSourceFilterMode value for this group address
            and interface indicates whether this host address is
            included or excluded."

    ::= { mgmdRouterSrcListEntry 4 }

mgmdRouterSrcListExpire OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current

    DESCRIPTION
            "This value indicates the relevance of the SrcList entry,
            whereby a non-zero value indicates this is an INCLUDE state
            value, and a zero value indicates this to be an EXCLUDE
            state value."

    ::= { mgmdRouterSrcListEntry 5 }

-- conformance information

mgmdMIBConformance OBJECT IDENTIFIER ::= { mgmdStdMIB 2 }
mgmdMIBCompliance  OBJECT IDENTIFIER ::= { mgmdMIBConformance 1 }
mgmdMIBGroups      OBJECT IDENTIFIER ::= { mgmdMIBConformance 2 }

-- Protocol Version Conformance

-- Read Compliance statement for IGMPv1 Hosts
-- IGMPv1 only supports the IPv4 Address Family

mgmdIgmpV1HostReadMIBCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
            "A read-only compliance statement for hosts running IGMPv1
            [RFC1112] and implementing the MGMD MIB.  IGMPv1 hosts must
            support the IPv4 address type."
    MODULE  -- this module
    MANDATORY-GROUPS { mgmdHostBaseMIBGroup }

    OBJECT mgmdHostInterfaceStatus
    SYNTAX RowStatus {active(1)}
    MIN-ACCESS read-only
    DESCRIPTION
            "Read-write or read-create access is not required and only
             the value 'active(1)' needs to be supported."

    OBJECT mgmdHostInterfaceVersion
    SYNTAX Unsigned32 (1)
    MIN-ACCESS read-only
    DESCRIPTION
            "Write access is not required.  Only version 1 needs to be
             supported."

    GROUP mgmdHostExtendedMIBGroup
    DESCRIPTION
            "Supporting this group can be especially useful in
             an environment with a router that does not support the
             MGMD MIB."

    ::= { mgmdMIBCompliance 1 }

-- Read Compliance statement for IGMPv1 Routers
-- IGMPv1 only supports the IPv4 Address Family

mgmdIgmpV1RouterReadMIBCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
            "A read-only compliance statement for routers running
            IGMPv1 [RFC1112] and implementing the MGMD MIB.  IGMPv1
            routers only support the IPv4 address type.

            Non-accessible index objects that only need IPv4
            support are:

            OBJECT mgmdRouterCacheAddressType
            SYNTAX InetAddressType { ipv4(1) }

            OBJECT mgmdRouterCacheAddress
            SYNTAX InetAddress (SIZE(4))

            OBJECT mgmdRouterInterfaceQuerierType
            SYNTAX InetAddressType { ipv4(1) }

            OBJECT mgmdInverseRouterCacheAddressType
            SYNTAX InetAddressType { ipv4(1) }
            "

    MODULE  -- this module
    MANDATORY-GROUPS { mgmdRouterBaseMIBGroup }

    OBJECT mgmdRouterCacheLastReporter
    SYNTAX InetAddress (SIZE(4))
    DESCRIPTION
            "IGMPv1 routers only support IPv4 addresses."

    OBJECT mgmdRouterInterfaceQuerier
    SYNTAX InetAddress (SIZE(4))
    DESCRIPTION
            "IGMPv1 routers only support IPv4 addresses."

    OBJECT mgmdInverseRouterCacheAddress
    SYNTAX InetAddress (SIZE(4))
    DESCRIPTION
            "IGMPv1 routers only support IPv4 addresses."

    OBJECT mgmdRouterInterfaceVersion
    SYNTAX Unsigned32 (1)

    MIN-ACCESS read-only
    DESCRIPTION
            "Write access is not required.  Only version 1 needs to
             be supported."

    OBJECT mgmdRouterInterfaceStatus
    SYNTAX RowStatus {active(1)}
    MIN-ACCESS read-only
    DESCRIPTION
            "Read-write or read-create access is not required and only
             the value 'active(1)' needs to be supported."

    OBJECT mgmdRouterInterfaceQueryInterval
    MIN-ACCESS read-only
    DESCRIPTION
            "Write access is not required."

    ::= { mgmdMIBCompliance 2 }

-- Write Compliance statement for IGMPv1 Routers
-- IGMPv1 only supports the IPv4 Address Family

mgmdIgmpV1RouterWriteMIBCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
            "A read-create compliance statement for routers running
            IGMPv1 [RFC1112] and implementing the MGMD MIB.  IGMPv1
            routers only support the IPv4 address type.

            Non-accessible index objects that only need IPv4
            support are:

            OBJECT mgmdRouterCacheAddressType
            SYNTAX InetAddressType { ipv4(1) }

            OBJECT mgmdRouterCacheAddress
            SYNTAX InetAddress (SIZE(4))

            OBJECT mgmdRouterInterfaceQuerierType
            SYNTAX InetAddressType { ipv4(1) }

            OBJECT mgmdInverseRouterCacheAddressType
            SYNTAX InetAddressType { ipv4(1) }
            "
    MODULE  -- this module
    MANDATORY-GROUPS { mgmdRouterBaseMIBGroup }

    OBJECT mgmdRouterCacheLastReporter
    SYNTAX InetAddress (SIZE(4))
    DESCRIPTION
            "Only IPv4 addresses needed for IGMPv1 router support."

    OBJECT mgmdRouterInterfaceQuerier
    SYNTAX InetAddress (SIZE(4))
    DESCRIPTION
            "Only IPv4 addresses needed for IGMPv1 router support."

    OBJECT mgmdInverseRouterCacheAddress
    SYNTAX InetAddress (SIZE(4))
    DESCRIPTION
            "Only IPv4 addresses needed for IGMPv1 router support."

    OBJECT mgmdRouterInterfaceVersion
    SYNTAX Unsigned32 (1)
    DESCRIPTION
            "Write access is not required.  Only version 1 needs to
             be supported."

    ::= { mgmdMIBCompliance 3 }

-- Read Compliance statement for IGMPv2 and MLDv1 Hosts
-- IGMPv2 only supports the IPv4 Address Family
-- MLDv1 only supports the IPv6 Address Family

mgmdIgmpV2MldV1HostReadMIBCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
            "A read-only compliance statement for hosts running IGMPv2
            [RFC2236] or MLDv1 [RFC2710] and implementing the MGMD
            MIB.  IGMPv2 hosts only support the IPv4 address type and
            MLDv1 hosts only support the IPv6 address type."
    MODULE  -- this module
    MANDATORY-GROUPS { mgmdHostBaseMIBGroup,
                       mgmdV2HostMIBGroup
                     }

    OBJECT mgmdHostInterfaceStatus
    SYNTAX RowStatus {active(1)}
    MIN-ACCESS read-only
    DESCRIPTION
            "Read-write or read-create access is not required and only
             the value 'active(1)' needs to be supported."

    OBJECT mgmdHostInterfaceVersion
    SYNTAX Unsigned32 (1..2)

    MIN-ACCESS read-only
    DESCRIPTION
            "Write access is not required.  Only versions 1 and 2 need
             to be supported."

    GROUP   mgmdHostExtendedMIBGroup
    DESCRIPTION
            "Supporting this group can be especially useful in an
             environment with a router that does not support the
             MGMD MIB."

    ::= { mgmdMIBCompliance 4 }

-- Write Compliance statement for IGMPv2 and MLDv1 Hosts
-- IGMPv2 only supports the IPv4 Address Family
-- MLDv1 only supports the IPv6 Address Family

mgmdIgmpV2MldV1HostWriteMIBCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
            "A read-create compliance statement for hosts running
            IGMPv2 [RFC2236] or MLDv1 [RFC2710] and implementing
            the MGMD MIB.  IGMPv2 hosts only support the IPv4 address
            type and MLDv1 hosts only support the IPv6 address type."
    MODULE  -- this module
    MANDATORY-GROUPS { mgmdHostBaseMIBGroup,
                       mgmdV2HostMIBGroup }
    OBJECT mgmdHostInterfaceVersion
    SYNTAX Unsigned32 (1..2)
    DESCRIPTION
            "Only versions 1 and 2 need to be supported."

    ::= { mgmdMIBCompliance 5 }

-- Read Compliance statement for IGMPv2 and MLDv1 Routers
-- IGMPv2 only supports the IPv4 Address Family
-- MLDv1 only supports the IPv6 Address Family

mgmdIgmpV2MldV1RouterReadMIBCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
            "A read-only compliance statement for routers running
            IGMPv2 [RFC2236] or MLDv1 [RFC2710] and implementing
            the MGMD MIB.  IGMPv2 routers only support the IPv4
            address type and MLDv1 routers only support the IPv6
            address type."
    MODULE  -- this module
    MANDATORY-GROUPS { mgmdRouterBaseMIBGroup,

                       mgmdV2RouterBaseMIBGroup
                     }

    OBJECT mgmdRouterInterfaceLastMemberQueryInterval
    MIN-ACCESS read-only
    DESCRIPTION
            "Write access is not required."

    OBJECT mgmdRouterInterfaceRobustness
    MIN-ACCESS read-only
    DESCRIPTION
            "Write access is not required."

    OBJECT mgmdRouterInterfaceQueryMaxResponseTime
    MIN-ACCESS read-only
    DESCRIPTION
            "Write access is not required."

    OBJECT mgmdRouterInterfaceVersion
    SYNTAX Unsigned32 (1..2)
    MIN-ACCESS read-only
    DESCRIPTION
            "Write access is not required.  Only versions 1 and 2
             need to be supported."

    OBJECT mgmdRouterInterfaceStatus
    SYNTAX RowStatus {active(1)}
    MIN-ACCESS read-only
    DESCRIPTION
            "Read-write or read-create access is not required and only
             the value 'active(1)' needs to be supported."

    OBJECT mgmdRouterInterfaceQueryInterval
    MIN-ACCESS read-only
    DESCRIPTION
            "Write access is not required."

    GROUP   mgmdV2ProxyMIBGroup
    DESCRIPTION
            "Write access is not required."

    ::= { mgmdMIBCompliance 6 }

-- Write Compliance statement for IGMPv2, IGMPv3, MLDv1, and MLDv2
--   Routers
-- IGMPv2 and IGMPv3 only support the IPv4 Address Family
-- MLDv1 and MLDv2 only support the IPv6 Address Family

mgmdIgmpV2V3MldV1V2RouterWriteMIBCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
            "A read-create compliance statement for routers running
            IGMPv2 [RFC2236], IGMPv3 [RFC3376], MLDv1 [RFC2710], or
            MLDv2 [RFC3810] and implementing the MGMD MIB.  IGMPv2 and
            IGMPv3 routers only support the IPv4 address type, while
            MLDv1 and MLDv2 routers only support the IPv6 address type."
    MODULE  -- this module
    MANDATORY-GROUPS { mgmdRouterBaseMIBGroup,
                       mgmdV2RouterBaseMIBGroup
                     }

    GROUP   mgmdV2ProxyMIBGroup
    DESCRIPTION
            "Read-create access is required."

    ::= { mgmdMIBCompliance 7 }

-- Read Compliance statement for IGMPv2, IGMPv3, MLDv1, and MLDv2 Hosts
-- IGMPv2 and IGMPv3 only support the IPv4 Address Family
-- MLDv1 and MLDv2 only support the IPv6 Address Family

mgmdIgmpV3MldV2HostReadMIBCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
            "The compliance statement for hosts running IGMPv3
            [RFC3376] or MLDv2 [RFC3810] and implementing the
            MGMD MIB.  IGMPv3 hosts only support the IPv4 address
            type and MLDv2 hosts only support the IPv6 address type."
    MODULE  -- this module
    MANDATORY-GROUPS { mgmdHostBaseMIBGroup,
                       mgmdV2HostMIBGroup,
                       mgmdV3HostMIBGroup
                     }

    OBJECT mgmdHostInterfaceVersion
    MIN-ACCESS read-only
    DESCRIPTION
            "Write access is not required."

    OBJECT mgmdHostInterfaceStatus
    SYNTAX RowStatus {active(1)}
    MIN-ACCESS read-only
    DESCRIPTION
            "Read-write or read-create access is not required and only
             the value 'active(1)' needs to be supported."

    OBJECT  mgmdHostInterfaceVersion3Robustness
    MIN-ACCESS read-only
    DESCRIPTION
            "Write access is not required."

    GROUP   mgmdHostExtendedMIBGroup
    DESCRIPTION
            "Supporting this group can be especially useful in
             an environment with a router that does not support the
             MGMD MIB."

    ::= { mgmdMIBCompliance 8 }

-- Write Compliance statement for IGMPv2, IGMPv3, MLDv1, and MLDv2 Hosts
-- IGMPv2 and IGMPv3 only support the IPv4 Address Family
-- MLDv1 and MLDv2 only support the IPv6 Address Family

mgmdIgmpV3MldV2HostWriteMIBCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
            "The compliance statement for hosts running IGMPv3
            [RFC3376] or MLDv2 [RFC3810] and implementing the
            MGMD MIB.  IGMPv3 hosts only support the IPv4 address
            type and MLDv2 hosts only support the IPv6 address type."
    MODULE  -- this module
    MANDATORY-GROUPS { mgmdHostBaseMIBGroup,
                       mgmdV2HostMIBGroup,

                       mgmdV3HostMIBGroup
                     }

    GROUP   mgmdHostExtendedMIBGroup
    DESCRIPTION
            "Supporting this group can be especially useful in
             an environment with a router that does not support the
             MGMD MIB."

    ::= { mgmdMIBCompliance 9 }

-- Read Compliance statement for IGMPv2, IGMPv3, MLDv1, and MLDv2
--   Routers
-- IGMPv2 and IGMPv3 only support the IPv4 Address Family
-- MLDv1 and MLDv2 only support the IPv6 Address Family

mgmdIgmpV3MldV2RouterReadMIBCompliance MODULE-COMPLIANCE
    STATUS  current

    DESCRIPTION
            "A read-only compliance statement for routers running
            IGMPv3 [RFC3376] or MLDv2 [RFC3810] and implementing
            the MGMD MIB.  IGMPv3 routers only support the IPv4
            address type and MLDv2 routers only support the IPv6
            address type."
    MODULE  -- this module
    MANDATORY-GROUPS { mgmdRouterBaseMIBGroup,
                       mgmdV2RouterBaseMIBGroup,
                       mgmdV3RouterMIBGroup
                     }

    OBJECT mgmdRouterInterfaceLastMemberQueryInterval
    MIN-ACCESS read-only
    DESCRIPTION
            "Write access is not required."

    OBJECT mgmdRouterInterfaceRobustness
    MIN-ACCESS read-only
    DESCRIPTION
            "Write access is not required."

    OBJECT mgmdRouterInterfaceQueryMaxResponseTime
    MIN-ACCESS read-only
    DESCRIPTION
            "Write access is not required."

    OBJECT mgmdRouterInterfaceVersion
    MIN-ACCESS read-only
    DESCRIPTION
            "Write access is not required."

    OBJECT mgmdRouterInterfaceStatus
    SYNTAX RowStatus {active(1)}
    MIN-ACCESS read-only
    DESCRIPTION
            "Read-write or read-create access is not required and only
             the value 'active(1)' needs to be supported."

    OBJECT mgmdRouterInterfaceQueryInterval
    MIN-ACCESS read-only
    DESCRIPTION
            "Write access is not required."

    GROUP   mgmdV2ProxyMIBGroup
    DESCRIPTION
            "Write access is not required."

    ::= { mgmdMIBCompliance 10 }

-- units of conformance

mgmdHostBaseMIBGroup OBJECT-GROUP
    OBJECTS { mgmdHostInterfaceStatus,
              mgmdHostInterfaceVersion
            }
    STATUS  current
    DESCRIPTION
            "The basic collection of objects providing management of
            MGMD version 1, 2, or 3 for hosts."

    ::= { mgmdMIBGroups 1 }

mgmdRouterBaseMIBGroup OBJECT-GROUP
    OBJECTS { mgmdRouterInterfaceStatus,
              mgmdRouterInterfaceQueryInterval,
              mgmdRouterCacheUpTime, mgmdRouterCacheExpiryTime,
              mgmdRouterInterfaceVersion,
              mgmdRouterInterfaceJoins, mgmdRouterInterfaceGroups,
              mgmdRouterCacheLastReporter,
              mgmdRouterInterfaceQuerierUpTime,
              mgmdRouterInterfaceQuerierExpiryTime,
              mgmdRouterInterfaceQuerier,
              mgmdInverseRouterCacheAddress
            }
    STATUS  current
    DESCRIPTION
            "The basic collection of objects providing management of
            MGMD version 1, 2, or 3 for routers."

    ::= { mgmdMIBGroups 2 }

mgmdV2HostMIBGroup OBJECT-GROUP
    OBJECTS { mgmdHostInterfaceVersion1QuerierTimer
            }
    STATUS  current
    DESCRIPTION
            "A collection of additional read-only objects for management
            of IGMP version 2 in hosts for MGMD version 2 compliance."

    ::= { mgmdMIBGroups 3 }

mgmdHostExtendedMIBGroup OBJECT-GROUP
    OBJECTS { mgmdHostCacheLastReporter, mgmdHostCacheUpTime,
              mgmdHostInterfaceQuerier, mgmdInverseHostCacheAddress }
    STATUS  current

    DESCRIPTION
            "A collection of optional objects for MGMD hosts."

    ::= { mgmdMIBGroups 4 }

mgmdV2RouterBaseMIBGroup OBJECT-GROUP
    OBJECTS { mgmdRouterInterfaceWrongVersionQueries,
              mgmdRouterInterfaceLastMemberQueryCount,
              mgmdRouterInterfaceStartupQueryCount,
              mgmdRouterInterfaceStartupQueryInterval,
              mgmdRouterCacheVersion1HostTimer,
              mgmdRouterInterfaceQueryMaxResponseTime,
              mgmdRouterInterfaceRobustness,
              mgmdRouterInterfaceLastMemberQueryInterval
            }
    STATUS  current
    DESCRIPTION
            "A collection of additional read-only objects for
            management of MGMD version 2 in routers."

    ::= { mgmdMIBGroups 5 }

mgmdV2ProxyMIBGroup OBJECT-GROUP
    OBJECTS { mgmdRouterInterfaceProxyIfIndex }
    STATUS  current
    DESCRIPTION
            "A collection of additional read-create objects for
            management of MGMD proxy devices."

    ::= { mgmdMIBGroups 6 }

mgmdV3HostMIBGroup OBJECT-GROUP
    OBJECTS { mgmdHostInterfaceVersion2QuerierTimer,
              mgmdHostCacheSourceFilterMode,
              mgmdHostInterfaceVersion3Robustness,
              mgmdHostSrcListExpire
            }
    STATUS  current
    DESCRIPTION
            "A collection of additional objects for
            management of MGMD version 3 in hosts."

    ::= { mgmdMIBGroups 7 }

mgmdV3RouterMIBGroup OBJECT-GROUP
    OBJECTS { mgmdRouterCacheSourceFilterMode,
              mgmdRouterCacheVersion2HostTimer,
              mgmdRouterCacheExcludeModeExpiryTimer,

              mgmdRouterSrcListExpire
            }
    STATUS  current
    DESCRIPTION
            "A collection of additional read-only objects for
            management of MGMD version 3 in routers."

    ::= { mgmdMIBGroups 8 }

END

6.  Security Considerations

   There are a number of management objects defined in this MIB module
   with a MAX-ACCESS clause of read-write and/or read-create.  Such
   objects may be considered sensitive or vulnerable in some network
   environments.  The support for SET operations in a non-secure
   environment without proper protection can have a negative effect on
   network operations.  These are the tables and objects and their
   sensitivity/vulnerability:

   o  The mgmdRouterInterfaceTable provides read-create access to 2
      values: the mgmdRouterInterfaceStatus and the
      mgmdRouterInterfaceQueryInterval.  The mgmdRouterInterfaceStatus
      presents a remote user with the ability to enable or disable
      multicast support on a given router interface, and therefore
      presents a significant denial-of-service vulnerability.  The
      mgmdRouterInterfaceQueryInterval controls the frequency with which
      host-query packets are sent, providing less of a vulnerability,
      but still requiring secure access control.

   o  The mgmdRouterCacheTable also provides access to read-create
      objects.  The mgmdRouterInterfaceVersion controls the protocol
      conformance of an interface, and is therefore a potential denial-
      of-service vulnerability.  The
      mgmdRouterInterfaceQueryMaxResponseTime, the
      mgmdRouterInterfaceRobustness, and the
      mgmdRouterInterfaceLastMemberQueryInterval are all tuning
      parameters to control the characteristic of the host-query
      packets.  Compromise of these objects can potentially be
      disruptive to local multicast communication.

   o  The mgmdHostInterfaceTable provides a read-create object, the
      mgmdHostInterfaceVersion3Robustness, which controls the robustness
      of the interface to packet loss.  Disabling robustness in the face
      of packet loss could cause denial of service to hosts; however, in
      general this presents a low risk.

   SNMP versions prior to SNMPv3 did not include adequate security.
   Even if the network itself is secure (for example by using IPsec),
   even then, there is no control as to who on the secure network is
   allowed to access and GET/SET (read/change/create/delete) the objects
   in this MIB module.

   It is RECOMMENDED that implementers consider the security features as
   provided by the SNMPv3 framework (see [RFC3410], section 8),
   including full support for the SNMPv3 cryptographic mechanisms (for
   authentication and privacy).

   Further, deployment of SNMP versions prior to SNMPv3 is NOT
   RECOMMENDED.  Instead, it is RECOMMENDED to deploy SNMPv3 and to
   enable cryptographic security.  It is then a customer/operator
   responsibility to ensure that the SNMP entity giving access to an
   instance of this MIB module is properly configured to give access to
   the objects only to those principals (users) that have legitimate
   rights to indeed GET or SET (change/create/delete) them.

7.  IANA Considerations

   This MIB introduces a new term to refer to two existing multicast
   protocols: Multicast Group Membership Discovery.  It encompasses both
   the IPv4 Multicast discovery protocol, IGMP, and the IPv6 Multicast
   discovery protocol, MLD, as defined in RFCs 2933 [RFC2933] and 3019
   [RFC3019], respectively.

        The MIB module in this document uses the following IANA-assigned
        OBJECT IDENTIFIER value recorded in the SMI Numbers registry:

        Descriptor        OBJECT IDENTIFIER value
        ----------        -----------------------
        mgmdStdMIB        { mib-2 185 }

8.  Contributors

   The authors of RFC 2933 [RFC2933] and RFC 3019 [RFC3019] from which
   this document is derived are:

      Keith McCloghrie

      Dino Farinacci

      Dave Thaler

      Brian Haberman

      Randy Worzella

9.  Acknowledgements

   Special thanks to James Lingard, Bill Fenner, and Dave Thaler for
   detailed comments on the MIB.

   Bert Wijnen deserves special recognition for his exhaustive reviews
   and constructive feedback on SNMP and SMI issues related to this MIB.

10.  References

10.1.  Normative References

   [RFC1112]  Deering, S., "Host extensions for IP multicasting", STD 5,
              RFC 1112, August 1989.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC2236]  Fenner, W., "Internet Group Management Protocol, Version
              2", RFC 2236, November 1997.

   [RFC2578]  McCloghrie, K., Ed., Perkins, D., Ed., and J.
              Schoenwaelder, Ed., "Structure of Management Information
              Version 2 (SMIv2)", STD 58, RFC 2578, April 1999.

   [RFC2579]  McCloghrie, K., Ed., Perkins, D., Ed., and J.
              Schoenwaelder, Ed., "Textual Conventions for SMIv2",
              STD 58, RFC 2579, April 1999.

   [RFC2580]  McCloghrie, K., Perkins, D., and J. Schoenwaelder,
              "Conformance Statements for SMIv2", STD 58, RFC 2580,
              April 1999.

   [RFC2710]  Deering, S., Fenner, W., and B. Haberman, "Multicast
              Listener Discovery (MLD) for IPv6", RFC 2710,
              October 1999.

   [RFC2863]  McCloghrie, K. and F. Kastenholz, "The Interfaces Group
              MIB", RFC 2863, June 2000.

   [RFC3376]  Cain, B., Deering, S., Kouvelas, I., Fenner, B., and A.
              Thyagarajan, "Internet Group Management Protocol, Version
              3", RFC 3376, October 2002.

   [RFC3810]  Vida, R. and L. Costa, "Multicast Listener Discovery
              Version 2 (MLDv2) for IPv6", RFC 3810, June 2004.

   [RFC4001]  Daniele, M., Haberman, B., Routhier, S., and J.
              Schoenwaelder, "Textual Conventions for Internet Network
              Addresses", RFC 4001, February 2005.

10.2.  Informative References

   [RFC2933]  McCloghrie, K., Farinacci, D., and D. Thaler, "Internet
              Group Management Protocol MIB", RFC 2933, October 2000.

   [RFC3019]  Haberman, B. and R. Worzella, "IP Version 6 Management
              Information Base for The Multicast Listener Discovery
              Protocol", RFC 3019, January 2001.

   [RFC3410]  Case, J., Mundy, R., Partain, D., and B. Stewart,
              "Introduction and Applicability Statements for Internet-
              Standard Management Framework", RFC 3410, December 2002.

   [RFC4605]  Fenner, B., He, H., Haberman, B., and H. Sandick,
              "Internet Group Management Protocol (IGMP) / Multicast
              Listener Discovery (MLD)-Based Multicast Forwarding
              ("IGMP/MLD Proxying")", RFC 4605, August 2006.

Authors' Addresses

   Julian Chesterfield
   University of Cambridge
   15 JJ Thompson Avenue
   Cambridge CB3 0FD
   UK

   EMail: julian.chesterfield@cl.cam.ac.uk

   Brian Haberman (editor)
   Johns Hopkins University / Applied Physics Laboratory
   11100 Johns Hopkins Road
   Laurel, MD  20723
   USA

   EMail: brian@innovationslab.net

 

User Contributions:

Comment about this RFC, ask questions, or add new information about this topic: