MAGMA Working Group                                     J. Chesterfield,
Internet Draft                                                   Editor
draft-ietf-magma-mgmd-mib-11.txt                        U. of Cambridge
December 3, 2007                                          Computer Lab
Expires: May 3, 2008
Intended status: Proposed

                 Multicast Group Membership Discovery MIB


Status of this Memo

   By submitting this Internet-Draft, each author represents that any
   applicable patent or other IPR claims of which he or she is aware
   have been or will be disclosed, and any of which he or she becomes
   aware will be disclosed, in accordance with Section 6 of BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as Internet-
   Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt.

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.

   This Internet-Draft will expire on May 3, 2008.


Copyright Notice

   Copyright (C) The IETF Trust (2007).


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. Overview........................................................2
   4. Definitions.....................................................3


   Chesterfield           I-D - Expires May 2008            [Page 1]


               Multicast Group Membership Discovery MIB

   5. Security Considerations........................................30
   6. IANA Considerations............................................31
   7. Contributors...................................................31
   8. Acknowledgements...............................................32
   9. Author's Address...............................................33
   10. References....................................................33
   11. Full Copyright Statement......................................34

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 for IP version 6
   clients. This version of the MIB module obsoletes both RFC 2933
   [RFC2933] and RFC 3019 [RFC3019], incorporating a generic interface
   for both IGMP and MLD implementations, and changes to enable
   "source filtering" in multicast clients. The MIB module encompasses
   both router and host nodes with relevant management objects defined
   for each.

   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].

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. 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


   Chesterfield           I-D - Expires May 2008            [Page 2]


               Multicast Group Membership Discovery MIB

        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. The table is optimised for lookup by
        IP multicast group, e.g., for enumerating the interfaces
        per multicast group.

     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. The table is optimised for lookup by
        IP multicast group, e.g., for enumerating the interfaces
        per multicast group.

     5. the reverse MGMD Host Table which contains one row for each IP
        multicast group for which there are members on a particular
        interface on a host. The table differs from the Host cache
        table in that it is optimised for lookup by interface, e.g.,
        enumerating the multicast groups per interface.

     6. the reverse MGMD Router Table which contains one row for each
        IP multicast group for which there are members on a particular
        interface on a router. The table differs from the Router cache
        table in that it is optimised for lookup by interface, e.g.,
        enumerating the multicast groups per interface.

     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.

     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 would be scenarios where both terms might
   apply to a device, e.g. a router which 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 [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 module references InterfaceIndex and InterfaceIndexOrZero
   objects as defined in [RFC2863], the MIB module that decribes generic


   Chesterfield           I-D - Expires May 2008            [Page 3]


               Multicast Group Membership Discovery MIB

   objects for network interface sub-layers.

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

4. 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, StorageType           FROM SNMPv2-TC
    MODULE-COMPLIANCE, OBJECT-GROUP  FROM SNMPv2-CONF
    InterfaceIndexOrZero,
    InterfaceIndex                   FROM IF-MIB;

mgmdStdMIB MODULE-IDENTITY
    LAST-UPDATED "200710170000Z" -- Oct 17, 2007
    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
        "MAGMA CONTACT INFO
        www:   http://www.ietf.org/html.charters/magma-charter.html
        EMail: magma@ietf.org

        AUTHOR 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 Multicast Group Membership Discovery
         management.
        A new version of MGMD combining RFC 2933 and RFC 3019.
        Includes IGMPv3 and MLDv2 source filtering changes.

        Copyright (C) The Internet Society (2007).  This version
        of this MIB module is part of RFC yyyy;  see the RFC
        itself for full legal notices."
   -- RFC Ed.: replace yyyy with actual RFC number & remove this note
    REVISION "200710170000Z" -- Oct 17, 2007
    DESCRIPTION "This MIB module obsoletes both RFC 2933 [RFC2933]
                and RFC 3019 [RFC3019]"
    ::= { mib-2 XXX }


   Chesterfield           I-D - Expires May 2008            [Page 4]


               Multicast Group Membership Discovery MIB



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 on a host."
    ::= { 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,
    mgmdHostInterfaceStorageType           StorageType
}


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 which may be
            configured in both IPv4 and IPv6 modes."
    ::= { mgmdHostInterfaceEntry 1 }

mgmdHostInterfaceQuerierType OBJECT-TYPE


   Chesterfield           I-D - Expires May 2008            [Page 5]


               Multicast Group Membership Discovery MIB

    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 seen as the source address of IGMP or MLD
            Queries on the interface. The InetAddressType
            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.
            Upon agent restart, dynamically created rows must be
            instantiated corresponding to the interfaces which
            exist on the host and which support IGMP or MLD. The row
            status should be instantiated to reflect the active state
            of the interface.
            The mgmdHostInterfaceVersion object may only be modified
            when the row status is not active.
            The mgmdHostInterfaceVersion3Robustness object may be
            modified at any time."
    ::= { mgmdHostInterfaceEntry 4 }

mgmdHostInterfaceVersion OBJECT-TYPE
    SYNTAX     Unsigned32 (1..3)
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The maximum version of MGMD which 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)


   Chesterfield           I-D - Expires May 2008            [Page 6]


               Multicast Group Membership Discovery MIB

            or MLDv2 (for IPv6).
            This variable may only be set when the row status is not
            active."
    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 "[RFC2236] section 4 and [RFC3376] 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 "[RFC3376] section 7.2.1 and [RFC3810] section 8.2.1"
    DEFVAL     { 0 }
    ::= { mgmdHostInterfaceEntry 7 }

mgmdHostInterfaceVersion3Robustness OBJECT-TYPE
    SYNTAX     Unsigned32 (1..255)
    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.
            This variable may be set at any time, independent of
            whether the row status is active or inactive."
    REFERENCE "[RFC3376] section 8.1 and [RFC3810] section 9.14.1"
    DEFVAL     { 2 }
    ::= { mgmdHostInterfaceEntry 8 }


   Chesterfield           I-D - Expires May 2008            [Page 7]


               Multicast Group Membership Discovery MIB


mgmdHostInterfaceStorageType OBJECT-TYPE
    SYNTAX     StorageType
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The storage type for this conceptual row."
    ::= { mgmdHostInterfaceEntry 9 }


--
--  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 on a router."
    ::= { 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,


   Chesterfield           I-D - Expires May 2008            [Page 8]


               Multicast Group Membership Discovery MIB

    mgmdRouterInterfaceStorageType             StorageType
}


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 which 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 seen as the source address of IGMP or MLD
            Queries on the interface. The InetAddressType
            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.
            This variable may be set at any time, independent of
            whether the row status is active or inactive."
    DEFVAL     { 125 }
    ::= { mgmdRouterInterfaceEntry 4 }



   Chesterfield           I-D - Expires May 2008            [Page 9]


               Multicast Group Membership Discovery MIB

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.
            Upon agent restart, dynamically created columns must be
            instantiated correpsonding to the interfaces which
            exist on the router and which support IGMP or MLD. The row
            status should be instantiated to reflect the active state
            of the interface.
            The mgmdRouterInterfaceVersion and
            mgmdRouterInterfaceProxyIfIndex objects may only be modified
            when the row status is not active.
            The mgmdHostInterfaceVersionRobustness,
            mgmdRouterInterfaceLastMemberQueryInterval,
            mgmdRouterInterfaceQueryInterval and
            mgmdRouterInterfaceQueryMaxResponseTime objects may be
            modified at any time."
    ::= { mgmdRouterInterfaceEntry 5 }

mgmdRouterInterfaceVersion OBJECT-TYPE
    SYNTAX     Unsigned32 (1..3)
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The version of MGMD which 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.
            This variable may only be set when the row status is not
            active."
    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 v3 queries on this interface.
            This variable may be set at any time, independent of
            whether the row status is active or inactive."
    REFERENCE "[RFC3810] section 9.3(IPv6) and [RFC3376] section 8.3
              (IPv4)"


   Chesterfield           I-D - Expires May 2008            [Page 10]


               Multicast Group Membership Discovery MIB

    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


   Chesterfield           I-D - Expires May 2008            [Page 11]


               Multicast Group Membership Discovery MIB

    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
            mgmdV2RouterReadBaseMIBGroup and
            mgmdV2RouterWriteBaseMIBGroup
            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.
            This variable may only be set when the row status is not
            active."
    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.
            This variable may be set at any time, independent of
            whether the row status is active or inactive."
    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


   Chesterfield           I-D - Expires May 2008            [Page 12]


               Multicast Group Membership Discovery MIB

            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.
            This variable may be set at any time, independent of
            whether the row status is active or inactive."
    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 }

mgmdRouterInterfaceStorageType OBJECT-TYPE
    SYNTAX     StorageType
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The storage type for this conceptual row."
     ::= { mgmdRouterInterfaceEntry 19 }


--
--  The MGMD Host Cache Table
--

mgmdHostCacheTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF MgmdHostCacheEntry
    MAX-ACCESS not-accessible


   Chesterfield           I-D - Expires May 2008            [Page 13]


               Multicast Group Membership Discovery MIB

    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 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


   Chesterfield           I-D - Expires May 2008            [Page 14]


               Multicast Group Membership Discovery MIB

            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.0.0.0 for IPv4 or :: for IPv6. The
            InetAddressType 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


   Chesterfield           I-D - Expires May 2008            [Page 15]


               Multicast Group Membership Discovery MIB

    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         Unsigned32,
    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 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."


   Chesterfield           I-D - Expires May 2008            [Page 16]


               Multicast Group Membership Discovery MIB

    ::= { 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 a value of 0.0.0.0 for IPv4 or :: for IPv6. 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     Unsigned32  (1..4294967295)
    UNITS      "hundredths of a second"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "This value represents the time remaining
            before the Group Membership Interval state expires."
    ::= { 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


   Chesterfield           I-D - Expires May 2008            [Page 17]


               Multicast Group Membership Discovery MIB

            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 which
             are members of a particular group. This is an inverse
             lookup table for entries in the mgmdHostCacheTable."
    ::= { mgmdMIBObjects 5 }

mgmdInverseHostCacheEntry OBJECT-TYPE
    SYNTAX     MgmdInverseHostCacheEntry


   Chesterfield           I-D - Expires May 2008            [Page 18]


               Multicast Group Membership Discovery MIB

    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the
            mgmdInverseHostCacheTable."
    INDEX      { mgmdHostInterfaceIfIndex,
                 mgmdHostCacheAddressType,
                 mgmdHostCacheAddress}
    ::= { mgmdInverseHostCacheTable 1 }


MgmdInverseHostCacheEntry ::= SEQUENCE {
    mgmdHostInterfaceIfIndex               InterfaceIndex,
    mgmdHostCacheAddressType               InetAddressType,
    mgmdHostCacheAddress                   InetAddress
}


--
--  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 which
            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      { mgmdRouterInterfaceIfIndex,
                 mgmdRouterCacheAddressType,
                 mgmdRouterCacheAddress }
    ::= { mgmdInverseRouterCacheTable 1 }


MgmdInverseRouterCacheEntry ::= SEQUENCE {
    mgmdRouterInterfaceIfIndex            InterfaceIndex,
    mgmdRouterCacheAddressType            InetAddressType,
    mgmdRouterCacheAddress                InetAddress
}





   Chesterfield           I-D - Expires May 2008            [Page 19]


               Multicast Group Membership Discovery MIB

--
--  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


   Chesterfield           I-D - Expires May 2008            [Page 20]


               Multicast Group Membership Discovery MIB

    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      { mgmdRouterCacheAddressType, mgmdRouterCacheAddress,
                 mgmdRouterCacheIfIndex, mgmdRouterSrcListHostAddress }


   Chesterfield           I-D - Expires May 2008            [Page 21]


               Multicast Group Membership Discovery MIB

    ::= { mgmdRouterSrcListTable 1 }


MgmdRouterSrcListEntry ::= SEQUENCE {
    mgmdRouterCacheAddressType      InetAddressType,
    mgmdRouterCacheAddress          InetAddress,
    mgmdRouterCacheIfIndex          InterfaceIndex,
    mgmdRouterSrcListHostAddress    InetAddress,
    mgmdRouterSrcListExpire         TimeTicks
}

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

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 }


   Chesterfield           I-D - Expires May 2008            [Page 22]


               Multicast Group Membership Discovery MIB

    GROUP mgmdHostOptMIBGroup
    DESCRIPTION
            "Write access is not required."
    ::= { mgmdMIBCompliance 1 }

mgmdIgmpV1RouterReadMIBCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
            "A read-only compliance statement for routers running
            IGMPv1 [RFC1112] and implementing the MGMD MIB. IGMPv1
            routers must support the IPv4 address type "
    MODULE  -- this module
    GROUP mgmdRouterReadBaseMIBGroup
    DESCRIPTION
            "Read-only access required."
    ::= { mgmdMIBCompliance 2 }

mgmdIgmpV1RouterWriteMIBCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
            "A read-create compliance statement for routers running
            IGMPv1 [RFC1112] and implementing the MGMD MIB. IGMPv1
            routers must support the IPv4 address type "
    MODULE  -- this module
    GROUP mgmdRouterWriteBaseMIBGroup
    DESCRIPTION
            "Read-create access is required."
    ::= { mgmdMIBCompliance 3 }

mgmdIgmpV2HostReadMIBCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
            "A read-only compliance statement for hosts running IGMPv2
            [RFC2236] and implementing the MGMD MIB. IGMPv2 hosts must
            support the IPv4 address type"
    MODULE  -- this module
    MANDATORY-GROUPS { mgmdHostBaseMIBGroup ,
                       mgmdV2IgmpHostReadMIBGroup }
    GROUP   mgmdHostOptMIBGroup
    DESCRIPTION
            "Read-only access required."
    ::= { mgmdMIBCompliance 4 }

mgmdIgmpV2HostWriteMIBCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
            "A read-create compliance statement for hosts running
            IGMPv2 [RFC2236] and implementing the MGMD MIB. IGMPv2
            hosts must support the IPv4 address type"
    MODULE  -- this module
    GROUP   mgmdV2IgmpHostWriteMIBGroup
    DESCRIPTION
            "Read-create access is required."


   Chesterfield           I-D - Expires May 2008            [Page 23]


               Multicast Group Membership Discovery MIB

    ::= { mgmdMIBCompliance 5 }

mgmdIgmpV2RouterReadMIBCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
            "A read-only compliance statement for routers running
            IGMPv2 [RFC2236] and implementing the MGMD MIB. IGMPv2
            routers must support the IPv4 address type "
    MODULE  -- this module
    MANDATORY-GROUPS { mgmdRouterReadBaseMIBGroup,
                   mgmdV2RouterReadBaseMIBGroup
                     }
    GROUP   mgmdV2ProxyMIBGroup
    DESCRIPTION
            "Read-only access required."
    ::= { mgmdMIBCompliance 6 }

mgmdIgmpV2RouterWriteMIBCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
            "A read-create compliance statement for routers running
            IGMPv2 [RFC2236] and implementing the MGMD MIB. IGMPv2
            routers must support the IPv4 address type "
    MODULE  -- this module
    MANDATORY-GROUPS { mgmdRouterWriteBaseMIBGroup,
                   mgmdV2RouterWriteBaseMIBGroup
                     }
    GROUP   mgmdV2ProxyMIBGroup
    DESCRIPTION
            "Read-create access is required."
    ::= { mgmdMIBCompliance 7 }

mgmdMldV1HostMIBCompliance MODULE-COMPLIANCE
    STATUS  current

    DESCRIPTION
            "A read-only compliance statement for hosts running MLDv1
            [RFC2710] and implementing the MGMD MIB. MLDv1 hosts must
            support the IPv6 address type."
    MODULE  -- this module
    MANDATORY-GROUPS { mgmdHostBaseMIBGroup }
    GROUP    mgmdHostOptMIBGroup
    DESCRIPTION
            "Read-only access required."
    ::= { mgmdMIBCompliance 8 }

mgmdMldV1RouterReadMIBCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
            "A read-only compliance statement for routers running MLDv1
            [RFC2710] and implementing the MGMD MIB. MLDv1 routers
            must support the IPv6 address type."
    MODULE  -- this module


   Chesterfield           I-D - Expires May 2008            [Page 24]


               Multicast Group Membership Discovery MIB

    MANDATORY-GROUPS { mgmdRouterReadBaseMIBGroup,
                       mgmdV2RouterReadBaseMIBGroup
                     }
    GROUP   mgmdV2ProxyMIBGroup
    DESCRIPTION
            "Read-only access required."
    ::= { mgmdMIBCompliance 9 }

mgmdMldV1RouterWriteMIBCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
            "A read-create compliance statement for routers running
            MLDv1 [RFC2710] and implementing the MGMD MIB. MLDv1
            routers must support the IPv6 address type."
    MODULE  -- this module
    MANDATORY-GROUPS { mgmdRouterWriteBaseMIBGroup,
                       mgmdV2RouterWriteBaseMIBGroup
                     }
    GROUP    mgmdV2ProxyMIBGroup
    DESCRIPTION
            "Read-create access is required."
    ::= { mgmdMIBCompliance 10 }

mgmdIgmpV3HostReadMIBCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
            "The compliance statement for hosts running IGMPv3
            [RFC3376] and implementing the MGMD MIB. IGMPv3 hosts
            must support the IPv4 address type."
    MODULE  -- this module
    MANDATORY-GROUPS { mgmdHostBaseMIBGroup,
                       mgmdV2IgmpHostReadMIBGroup,
                       mgmdV3HostReadMIBGroup
                     }
    GROUP   mgmdHostOptMIBGroup
    DESCRIPTION
            "Read-only access is required."
    ::= { mgmdMIBCompliance 11 }

mgmdIgmpV3HostWriteMIBCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
            "The compliance statement for hosts running IGMPv3
            [RFC3376] and implementing the MGMD MIB. IGMPv3 hosts
            must support the IPv4 address type."
    MODULE  -- this module
    MANDATORY-GROUPS { mgmdV2IgmpHostWriteMIBGroup,
                       mgmdV3HostWriteMIBGroup
                     }
    GROUP   mgmdHostOptMIBGroup
    DESCRIPTION
            "Read-create access is required."
    ::= { mgmdMIBCompliance 12 }


   Chesterfield           I-D - Expires May 2008            [Page 25]


               Multicast Group Membership Discovery MIB


mgmdIgmpV3RouterReadMIBCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
            "A read-only compliance statement for routers running
            IGMPv3 [RFC3376] and implementing the MGMD MIB. IGMPv3
            routers must support the IPv4 address type."
    MODULE  -- this module
    MANDATORY-GROUPS { mgmdRouterReadBaseMIBGroup,
                       mgmdV2RouterReadBaseMIBGroup,
                       mgmdV3RouterMIBGroup
                     }
    GROUP   mgmdV2ProxyMIBGroup
    DESCRIPTION
            "Read-only access required."
    ::= { mgmdMIBCompliance 13 }

mgmdIgmpV3RouterWriteMIBCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
            "A read-create compliance statement for routers running
            IGMPv3 [RFC3376] and implementing the MGMD MIB. IGMPv3
            routers must support the IPv4 address type."
    MODULE  -- this module
    MANDATORY-GROUPS { mgmdRouterWriteBaseMIBGroup,
                       mgmdV2RouterWriteBaseMIBGroup
                     }
    GROUP   mgmdV2ProxyMIBGroup
    DESCRIPTION
            "Read-create access is required."
    ::= { mgmdMIBCompliance 14 }

mgmdMldV2HostReadMIBCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
            "A read-only compliance statement for hosts running MLDv2
            and implementing the MGMD MIB. MLDv2 hosts must support
            the IPv6 address type."
    MODULE  -- this module
    MANDATORY-GROUPS { mgmdHostBaseMIBGroup,
                       mgmdV3HostReadMIBGroup
                     }
    GROUP   mgmdHostOptMIBGroup
    DESCRIPTION
            "Read-only access required."
    ::= { mgmdMIBCompliance 15 }

mgmdMldV2HostWriteMIBCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
            "A read-create compliance statement for hosts running MLDv2
            and implementing the MGMD MIB. MLDv2 hosts must support
            the IPv6 address type."


   Chesterfield           I-D - Expires May 2008            [Page 26]


               Multicast Group Membership Discovery MIB

    MODULE  -- this module
    GROUP   mgmdV3HostWriteMIBGroup
    DESCRIPTION
            "Read-create access is required."
    ::= { mgmdMIBCompliance 16 }

mgmdMldV2RouterReadMIBCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
            "A read-only compliance statement for routers running MLDv2
            and implementing the MGMD MIB. MLDv2 routers must
            support the IPv6 address type."
    MODULE  -- this module
    MANDATORY-GROUPS { mgmdRouterReadBaseMIBGroup,
                       mgmdV2RouterReadBaseMIBGroup,
                       mgmdV3RouterMIBGroup
                     }
    GROUP   mgmdV2ProxyMIBGroup
    DESCRIPTION
            "Read-only access required."
    ::= { mgmdMIBCompliance 17 }

mgmdMldV2RouterWriteMIBCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
            "A read-create compliance statement for routers running
            MLDv2 and implementing the MGMD MIB. MLDv2 routers must
            support the IPv6 address type."
    MODULE  -- this module
    MANDATORY-GROUPS { mgmdRouterWriteBaseMIBGroup,
                       mgmdV2RouterWriteBaseMIBGroup
                     }
    GROUP   mgmdV2ProxyMIBGroup
    DESCRIPTION
            "Read-create access is required."
    ::= { mgmdMIBCompliance 18 }



-- units of conformance

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

mgmdRouterWriteBaseMIBGroup OBJECT-GROUP
    OBJECTS { mgmdRouterInterfaceStatus,
              mgmdRouterInterfaceStorageType,


   Chesterfield           I-D - Expires May 2008            [Page 27]


               Multicast Group Membership Discovery MIB

              mgmdRouterInterfaceQueryInterval
            }
    STATUS  current
    DESCRIPTION
            "The basic collection of read-create objects providing
            management of MGMD version 1, 2 or 3 for routers."
    ::= { mgmdMIBGroups 2 }

mgmdRouterReadBaseMIBGroup OBJECT-GROUP
    OBJECTS { mgmdRouterCacheUpTime, mgmdRouterCacheExpiryTime,
              mgmdRouterInterfaceJoins, mgmdRouterInterfaceGroups,
              mgmdRouterCacheLastReporter,
              mgmdRouterInterfaceQuerierUpTime,
              mgmdRouterInterfaceQuerierExpiryTime,
              mgmdRouterInterfaceQuerier
            }
    STATUS  current
    DESCRIPTION
            "The basic collection of read-only objects providing
            management of MGMD version 1, 2 or 3 for routers."
    ::= { mgmdMIBGroups 3 }

mgmdV2IgmpHostWriteMIBGroup OBJECT-GROUP
    OBJECTS { mgmdHostInterfaceVersion
            }
    STATUS  current
    DESCRIPTION
            "A collection of additional read-create objects for
            management of IGMP version 2 in hosts for MGMD version
            2 compliance."
    ::= { mgmdMIBGroups 4 }

mgmdV2IgmpHostReadMIBGroup 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 5 }

mgmdHostOptMIBGroup OBJECT-GROUP
    OBJECTS { mgmdHostCacheLastReporter, mgmdHostCacheUpTime,
              mgmdHostInterfaceQuerier }
    STATUS  current
    DESCRIPTION
            "A collection of optional read-only objects for MGMD hosts.
            Supporting this group can be especially useful in an
            environment with a router which does not support the MGMD
            MIB."
    ::= { mgmdMIBGroups 6 }



   Chesterfield           I-D - Expires May 2008            [Page 28]


               Multicast Group Membership Discovery MIB

mgmdV2RouterWriteBaseMIBGroup OBJECT-GROUP
    OBJECTS { mgmdRouterInterfaceVersion,
              mgmdRouterInterfaceQueryMaxResponseTime,
              mgmdRouterInterfaceRobustness,
              mgmdRouterInterfaceLastMemberQueryInterval
            }
    STATUS  current
    DESCRIPTION
            "A collection of additional read-create objects for
            management of MGMD version 2 in routers."
    ::= { mgmdMIBGroups 8 }

mgmdV2RouterReadBaseMIBGroup OBJECT-GROUP
    OBJECTS { mgmdRouterInterfaceWrongVersionQueries,
              mgmdRouterInterfaceLastMemberQueryCount,
              mgmdRouterInterfaceStartupQueryCount,
              mgmdRouterInterfaceStartupQueryInterval,
              mgmdRouterCacheVersion1HostTimer
            }
    STATUS  current
    DESCRIPTION
            "A collection of additional read-only objects for
            management of MGMD version 2 in routers."
    ::= { mgmdMIBGroups 9 }

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

mgmdV3HostWriteMIBGroup OBJECT-GROUP
    OBJECTS { mgmdHostInterfaceVersion3Robustness }
    STATUS  current
    DESCRIPTION
            "A collection of additional read-create objects for
            management of MGMD version 3 in hosts."
    ::= { mgmdMIBGroups 12 }

mgmdV3HostReadMIBGroup OBJECT-GROUP
    OBJECTS { mgmdHostInterfaceVersion2QuerierTimer,
              mgmdHostCacheSourceFilterMode,
              mgmdHostInterfaceVersion3Robustness,
              mgmdHostSrcListExpire
            }
    STATUS  current
    DESCRIPTION
            "A collection of additional read-only objects for
            management of MGMD version 3 in hosts."
    ::= { mgmdMIBGroups 13 }



   Chesterfield           I-D - Expires May 2008            [Page 29]


               Multicast Group Membership Discovery MIB

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 14 }

END



5. Security Considerations

   There are a number of management objects defined in this MIB module
   with a MAX-ACCESS clause of 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.  Access to read-only variables furthermore can
   present a security vulnerability. Retrieving information on group
   membership, interface reporting interval times etc.., can provide
   useful data to a targetted attack, or data mining operation without
   the administrator or user's knowledge. These are the tables and
   objects and their sensitivity/vulnerability:

   a) The mgmdHostInterfaceTable provides a RowStatus variable
   (mgmdHostInterfaceStatus) with read-create access. Unauthorised
   access to the RowStatus variable can enable or disable multicast
   access on that interface thereby causing a denial of service
   vulnerability. Additional read-create variables are the
   mgmdHostInterfaceVersion and the mgmdHostInterfaceVersion3Robustness,
   both of which might be used to cause denial of service to certain
   or all hosts on attached interface.
   Access to read-only objects can also provide a
   large amount of feedback to an attacker on group membership and
   multicast network activity of the host.
   b) The mgmdRouterInterfaceTable provides a RowStatus variable
   (mgmdRouterInterfaceStatus) with read-create access. Unauthorised
   access to the RowStatus variable can enable or disable multicast
   access on that interface thereby causing a denial of service
   vulnerability both to directly connected hosts and traffic being
   routed through the device. Additional read-create variables are the
   mgmdRouterInterfaceQueryInterval, mgmdHostInterfaceVersionRobustness,
   mgmdRouterInterfaceLastMemberQueryInterval,
   mgmdRouterInterfaceQueryMaxResponseTime,
   the mgmdRouterInterfaceVersion and mgmdRouterInterfaceProxyIfIndex,
   all of which might be used to cause disruption to hosts and/or
   multicast traffic, at the worst causing a denial of service.


   Chesterfield           I-D - Expires May 2008            [Page 30]


               Multicast Group Membership Discovery MIB

   Access to read-only objects, as with the host interface table,
   can provide feedback to an attacker on group membership and
   multicast network activity on the router and its interfaces. Such
   data might well serve as input to the formulation of alternative
   attacks.
   c) All other tables provide only read access to objects, however
   the use of such data can still provide a security vulnerability.
   Information on group membership, IP addresses, protocol versioning
   etc.. can be used to provide input into formulating alternative
   attacks on hosts, routers and the applications that generate or
   receive multicast traffic.

   SNMP versions prior to SNMPv3 did not include strong 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 (see View-Based Access Control for SNMP
   [RFC3415]).

   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 [RFC3414]).

   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.


6. IANA Considerations

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

   Descriptor        OBJECT IDENTIFIER value
   ----------        -----------------------

   mgmdStdtMIB  { mib-2 XXX }

   Editor's Note (to be removed prior to publication):  the IANA is
   requested to assign a value for "XXX" under the 'mib-2' subtree
   and to record the assignment in the SMI Numbers registry.  When
   the assignment has been made, the RFC Editor is asked to replace
   "XXX" (here and in the MIB module) with the assigned value and to
   remove this note.

7. Contributors

   The authors of RFC 2933 and RFC 3019 from which this document is


   Chesterfield           I-D - Expires May 2008            [Page 31]


               Multicast Group Membership Discovery MIB

   derived are:

      Keith McCloghrie
      cisco Systems, Inc.
      170 West Tasman Drive
      San Jose, CA  95134-1706

      Phone:  408 526 5260
      EMail: kzm@cisco.com


      Dino Farinacci
      Procket Networks
      3850 North First Street
      San Jose, CA 95134

      Phone:  408-954-7909
      Email: dino@procket.com

      Dave Thaler
      Microsoft Corporation
      One Microsoft Way
      Redmond, WA  48105-6399

      Phone:  425 703 8835
      EMail: dthaler@microsoft.com


      Brian Haberman
      Nortel Networks
      4309 Emperor Blvd.
      Suite 200
      Durham, NC 27703
      USA

      Phone: 919-992-4439
      EMail: haberman@nortelnetworks.com


      Randy Worzella
      IBM Corporation
      800 Park Office Drive
      Research Triangle Park,
      NC 27709
      USA

      Phone: 919-254-2202
      EMail: worzella@us.ibm.com


8. Acknowledgements

   Special thanks to James Lingard for detailed comments on the


   Chesterfield           I-D - Expires May 2008            [Page 32]


               Multicast Group Membership Discovery MIB

   draft, also to Bill Fenner, Brian Haberman and Dave Thaler for
   feedback and suggestions regarding the MIB.


9. Author's Address

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


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", RFC 2119, March 1997

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

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

    [RFC2579] McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J.,
        Rose, M. and S. Waldbusser, "Textual Conventions for
        SMIv2", STD 58, RFC 2579, April 1999.

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

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

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

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

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



   Chesterfield           I-D - Expires May 2008            [Page 33]


               Multicast Group Membership Discovery MIB

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


10.2 Informative References

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

    [RFC3019] Haberman, B., Worzella, R., "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.

    [RFC3414] Blumenthal, U., Wijnen, B., "User-based Security Model
        (USM) for version 3 of the Simple Network Management Protocol
        (SNMPv3)", RFC 3414, December 2002.

    [RFC3415] Wijnen, B., Presuhn, R., McCloghrie, "View-based Access
        Control Model (VACM) for the Simple Network Management
        Protocol (SNMP)", RFC 3415, December 2002.

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

11. Full Copyright Statement

Copyright (C) The IETF Trust (2007).

This document is subject to the rights, licenses and restrictions
contained in BCP 78, and except as set forth therein, the authors
retain all their rights.

This document and the information contained herein are provided
on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE
REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE
IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL
WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY
WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE
ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS
FOR A PARTICULAR PURPOSE.

Intellectual Property Rights Notice

The IETF takes no position regarding the validity or scope of any
Intellectual Property Rights or other rights that might be claimed
to pertain to the implementation or use of the technology


   Chesterfield           I-D - Expires May 2008            [Page 34]


               Multicast Group Membership Discovery MIB

described in this document or the extent to which any license
under such rights might or might not be available; nor does it
represent that it has made any independent effort to identify any
such rights.  Information on the procedures with respect to rights
in RFC documents can be found in BCP 78 and BCP 79.

Copies of IPR disclosures made to the IETF Secretariat and any
assurances of licenses to be made available, or the result of an
attempt made to obtain a general license or permission for the use
of such proprietary rights by implementers or users of this
specification can be obtained from the IETF on-line IPR repository
at http://www.ietf.org/ipr.

The IETF invites any interested party to bring to its attention
any copyrights, patents or patent applications, or other
proprietary rights that may cover technology that may be required
to implement this standard.  Please address the information to the
IETF at ietf-ipr@ietf.org.





































   Chesterfield          I-D - Expires March 2008          [Page 35]