IDMR Working Group                                   Keith McCloghrie
INTERNET-DRAFT                                         Dino Farinacci
Expires May 1997                                        cisco Systems     |
                                                          Dave Thaler     |
                                               University of Michigan     |
                                                     26 November 1996     |



                 Internet Group Management Protocol MIB
                   <draft-ietf-idmr-igmp-mib-04.txt>                      |





Status of this Memo

This document is an Internet Draft.  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 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 a "work in progress".


1.  Introduction

This memo defines an experimental portion of the Management Information
Base (MIB) for use with network management protocols in the Internet
community.  In particular, it describes managed objects used for
managing the Internet Group Management Protocol (IGMP).  All of this MIB
module is applicable to IP multicast routers [6,7,8,9,10]; a subset is    |
applicable to hosts implementing IGMP [5].



















Draft                           IGMP MIB                   November 1996


2.  Revision History

A record of changes which will be removed before publication.

26 November                                                              |

(1)  moved igmpInterfaceVersion1HostTimer to igmpCacheVersion1HostTimer. |

(2)  added igmpInterfaceVersion1QuerierTimer,                            |
     igmpInterfaceWrongVersionQueries, igmpInterfaceJoins, and           |
     igmpInterfaceLeaves.                                                |

(3)  added default values for igmpInterfaceQueryMaxResponseTime and      |
     igmpInterfaceQuerierPresentTimeout.                                 |

(4)  moved igmpInterfaceVersion from igmpBaseVersion2MIBGroup to         |
     igmpRouterVersion2MIBGroup.                                         |

9 June

(1)  added support for IGMP version 2.


3.  The SNMP Network Management Framework

The SNMP Network Management Framework presently consists of three major
components.  They are:

o    RFC 1902 [1] which defines the SMI, the mechanisms used for
     describing and naming objects for the purpose of management.

o    STD 17, RFC 1213 [2] defines MIB-II, the core set of managed
     objects for the Internet suite of protocols.

o    RFC 1157 [3] and RFC 1905 [4] which define two versions of the
     protocol used for network access to managed objects.

The Framework permits new objects to be defined for the purpose of
experimentation and evaluation.


3.1.  Object Definitions

Managed objects are accessed via a virtual information store, termed the
Management Information Base or MIB.  Objects in the MIB are defined





Expires May 1997                                                [Page 2]


Draft                           IGMP MIB                   November 1996


using the subset of Abstract Syntax Notation One (ASN.1) defined in the
SMI.  In particular, each object type is named by an OBJECT IDENTIFIER,
an administratively assigned name.  The object type together with an
object instance serves to uniquely identify a specific instantiation of
the object.  For human convenience, we often use a textual string,
termed the descriptor, to refer to the object type.












































Expires May 1997                                                [Page 3]


Draft                           IGMP MIB                   November 1996


4.  Overview

This MIB module contains two tables:

(1)  the IGMP Interface Table which contains one row for each interface
     on which IGMP is enabled, and

(2)  the IGMP Cache Table which contains one row for each IP multicast
     group for which there are members on a particular interface.

Both tables are intended to be implemented by hosts and routers, but
some columnar objects in each table apply only to routers.






































Expires May 1997                                                [Page 4]


Draft                           IGMP MIB                   November 1996


5.  Definitions

IGMP-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, experimental, Counter32,               |
    Integer32, IpAddress, TimeTicks  FROM SNMPv2-SMI
    RowStatus, TruthValue            FROM SNMPv2-TC
    MODULE-COMPLIANCE, OBJECT-GROUP  FROM SNMPv2-CONF;


igmpMIB MODULE-IDENTITY
    LAST-UPDATED "9504281659Z"
    ORGANIZATION "IETF IDMR Working Group."
    CONTACT-INFO
            " Keith McCloghrie
              Cisco Systems, Inc.
              170 West Tasman Drive
              San Jose, CA  95134-1706
              US

              Phone: +1 408 526 5260
              EMail: kzm@cisco.com"
    DESCRIPTION
            "The MIB module for IGMP Management."
    ::= { experimental 59 }


igmpMIBObjects     OBJECT IDENTIFIER ::= { igmpMIB 1 }

igmp      OBJECT IDENTIFIER ::= { igmpMIBObjects 1 }



















Expires May 1997                                                [Page 5]


Draft                           IGMP MIB                   November 1996


--
--  The IGMP Interface Table
--

igmpInterfaceTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF IgmpInterfaceEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The (conceptual) table listing the interfaces on which IGMP
            is enabled."
    ::= { igmp 1 }

igmpInterfaceEntry OBJECT-TYPE
    SYNTAX     IgmpInterfaceEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) representing an interface on
            which IGMP is enabled."
    INDEX      { igmpInterfaceIfIndex }
    ::= { igmpInterfaceTable 1 }

IgmpInterfaceEntry ::= SEQUENCE {
    igmpInterfaceIfIndex               Integer32,
    igmpInterfaceQueryInterval         Integer32,
    igmpInterfaceStatus                RowStatus,
    igmpInterfaceVersion               INTEGER,
    igmpInterfaceQuerier               IpAddress,
    igmpInterfaceQueryMaxResponseTime  Integer32,
    igmpInterfaceQuerierPresentTimeout Integer32,
    igmpInterfaceLeaveEnabled          TruthValue,
    igmpInterfaceVersion1QuerierTimer  Integer32,                        |
    igmpInterfaceWrongVersionQueries   Counter32,                        |
    igmpInterfaceJoins                 Counter32,                        |
    igmpInterfaceLeaves                Counter32                         |
}

igmpInterfaceIfIndex OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The interface for which IGMP is enabled."
    ::= { igmpInterfaceEntry 1 }





Expires May 1997                                                [Page 6]


Draft                           IGMP MIB                   November 1996


igmpInterfaceQueryInterval OBJECT-TYPE
    SYNTAX     Integer32
    UNITS      "seconds"
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The frequency at which IGMP Host-Query packets are
            transmitted on this interface."
    DEFVAL     { 125 }
    ::= { igmpInterfaceEntry 2 }

igmpInterfaceStatus OBJECT-TYPE
    SYNTAX     RowStatus
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The activation of a row enables IGMP on the interface.  The
            destruction of a row disables IGMP on the interface."
    ::= { igmpInterfaceEntry 3 }

igmpInterfaceVersion OBJECT-TYPE
    SYNTAX     INTEGER { version1(1), version2(2) }
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The version of IGMP which is running on this interface.
            This object can be used to configure a router capable of
            running either value.  For IGMP to function correctly, all   |
            routers on a LAN must be configured to run the same version  |
            of IGMP on that LAN."                                        |
    DEFVAL     { version2 }
    ::= { igmpInterfaceEntry 4 }

igmpInterfaceQuerier OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The address of the IGMP Querier on the IP subnet to which
            this interface is attached."
    ::= { igmpInterfaceEntry 5 }

igmpInterfaceQueryMaxResponseTime OBJECT-TYPE
    SYNTAX     Integer32
    UNITS      "seconds"





Expires May 1997                                                [Page 7]


Draft                           IGMP MIB                   November 1996


    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The maximum query response time advertised in IGMPv2
            queries on this interface.  Smaller values allow a router to
            prune groups faster."
    DEFVAL     { 10 }                                                    |
    ::= { igmpInterfaceEntry 6 }

igmpInterfaceQuerierPresentTimeout OBJECT-TYPE
    SYNTAX     Integer32
    UNITS      "seconds"
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "A timeout interval.  If no IGMPv2 queries are heard on this
            interface within this timeout interval, the local router
            will take over the Querier on the IP subnet to which this
            interface is attached."
    DEFVAL     { 255 }                                                   |
    ::= { igmpInterfaceEntry 7 }

igmpInterfaceLeaveEnabled OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "An indication of whether the processing of IGMPv2 Leave
            messages is enabled on this interface."
    DEFVAL    { true }
    ::= { igmpInterfaceEntry 8 }

igmpInterfaceVersion1QuerierTimer OBJECT-TYPE                            |
    SYNTAX     Integer32                                                 |
    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."                                         |
    ::= { igmpInterfaceEntry 9 }                                         |

igmpInterfaceWrongVersionQueries OBJECT-TYPE                             |
    SYNTAX     Counter32                                                 |





Expires May 1997                                                [Page 8]


Draft                           IGMP MIB                   November 1996


    MAX-ACCESS read-only                                                 |
    STATUS     current                                                   |
    DESCRIPTION                                                          |
            "The number of queries received whose IGMP version does not  |
            match igmpInterfaceVersion.   IGMP requires that all routers |
            on a LAN be configured to run the same version of IGMP.      |
            Thus, if any queries are received with the wrong version,    |
            this indicates a configuration error."                       |
    ::= { igmpInterfaceEntry 10 }                                        |

igmpInterfaceJoins OBJECT-TYPE                                           |
    SYNTAX     Counter32                                                 |
    MAX-ACCESS read-only                                                 |
    STATUS     current                                                   |
    DESCRIPTION                                                          |
            "The number of times a group membership has been added on    |
            this interface; that is, the number of times an entry for    |
            this interface has been added to the Cache Table.  This      |
            object gives an indication of the amount of IGMP activity    |
            over time."                                                  |
    ::= { igmpInterfaceEntry 11 }                                        |

igmpInterfaceLeaves OBJECT-TYPE                                          |
    SYNTAX     Counter32                                                 |
    MAX-ACCESS read-only                                                 |
    STATUS     current                                                   |
    DESCRIPTION                                                          |
            "The number of times a group membership has been removed     |
            from this interface; that is, the number of times an entry   |
            for this interface has been deleted from the Cache Table.    |
            The difference between this and igmpInterfaceJoins indicates |
            the current number of entries in the Cache Table."           |
    ::= { igmpInterfaceEntry 12 }                                        |

















Expires May 1997                                                [Page 9]


Draft                           IGMP MIB                   November 1996


--
--  The IGMP Cache Table
--

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

igmpCacheEntry OBJECT-TYPE
    SYNTAX     IgmpCacheEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the igmpCacheTable."
    INDEX      { igmpCacheAddress, igmpCacheIfIndex }
    ::= { igmpCacheTable 1 }

IgmpCacheEntry ::= SEQUENCE {
    igmpCacheAddress            IpAddress,
    igmpCacheIfIndex            Integer32,
    igmpCacheSelf               TruthValue,
    igmpCacheLastReporter       IpAddress,
    igmpCacheUpTime             TimeTicks,
    igmpCacheExpiryTime         TimeTicks,
    igmpCacheStatus             RowStatus,
    igmpCacheVersion1HostTimer  Integer32                                |
}

igmpCacheAddress OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The IP multicast group address for which this entry
            contains information."
    ::= { igmpCacheEntry 1 }

igmpCacheIfIndex OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS not-accessible





Expires May 1997                                               [Page 10]


Draft                           IGMP MIB                   November 1996


    STATUS     current
    DESCRIPTION
            "The interface for which this entry contains information for
            an IP multicast group address."
    ::= { igmpCacheEntry 2 }

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

igmpCacheLastReporter OBJECT-TYPE
    SYNTAX     IpAddress
    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.0.0.0."
    ::= { igmpCacheEntry 4 }

igmpCacheUpTime OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The time since the system joined this group address, or
            zero if the system is not currently a member."
    ::= { igmpCacheEntry 5 }

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






Expires May 1997                                               [Page 11]


Draft                           IGMP MIB                   November 1996


igmpCacheStatus OBJECT-TYPE
    SYNTAX     RowStatus
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The status of this entry."
    ::= { igmpCacheEntry 7 }

igmpCacheVersion1HostTimer OBJECT-TYPE                                   |
    SYNTAX     Integer32
    UNITS      "seconds"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The time remaining until the local router will assume that
            there are no longer any IGMP version 1 members on the IP     |
            subnet attached to this interface.  Upon hearing any IGMPv1
            Membership Report, this value is reset to the group
            membership timer.  While this time remaining is non-zero,
            the local router ignores any IGMPv2 Leave messages for this  |
            group that it receives on this interface."                   |
    ::= { igmpCacheEntry 8 }




























Expires May 1997                                               [Page 12]


Draft                           IGMP MIB                   November 1996


-- conformance information

igmpMIBConformance
               OBJECT IDENTIFIER ::= { igmpMIB 2 }
igmpMIBCompliances
               OBJECT IDENTIFIER ::= { igmpMIBConformance 1 }
igmpMIBGroups  OBJECT IDENTIFIER ::= { igmpMIBConformance 2 }


-- compliance statements

igmpHostMIBCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
            "The compliance statement for hosts implementing the IGMP
            MIB."
    MODULE  -- this module
        MANDATORY-GROUPS { igmpBaseMIBGroup }

    ::= { igmpMIBCompliances 1 }


igmpRouterMIBCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
            "The compliance statement for routers implementing the IGMP
            MIB."
    MODULE  -- this module
        MANDATORY-GROUPS { igmpBaseMIBGroup,
                           igmpRouterMIBGroup
                         }
    ::= { igmpMIBCompliances 2 }


-- units of conformance

igmpBaseMIBGroup OBJECT-GROUP
    OBJECTS { igmpCacheSelf, igmpCacheLastReporter,
              igmpCacheStatus, igmpInterfaceStatus
            }
    STATUS  current
    DESCRIPTION
            "The basic collection of objects providing management of
            IGMP version 1 or 2."
    ::= { igmpMIBGroups 1 }





Expires May 1997                                               [Page 13]


Draft                           IGMP MIB                   November 1996


igmpRouterMIBGroup OBJECT-GROUP
    OBJECTS { igmpCacheUpTime, igmpCacheExpiryTime,
              igmpInterfaceQueryInterval
            }
    STATUS  current
    DESCRIPTION
            "A collection of additional objects for management of IGMP
            version 1 or 2 in routers."
    ::= { igmpMIBGroups 2 }


igmpBaseVersion2MIBGroup OBJECT-GROUP
    OBJECTS { igmpInterfaceQuerier,
              igmpInterfaceVersion1QuerierTimer                          |
            }
    STATUS  current
    DESCRIPTION
            "A collection of additional objects for management of IGMP
            version 2."
    ::= { igmpMIBGroups 3 }

igmpRouterVersion2MIBGroup OBJECT-GROUP
    OBJECTS { igmpInterfaceVersion,                                      |
              igmpInterfaceQueryMaxResponseTime,
              igmpInterfaceQuerierPresentTimeout,
              igmpInterfaceLeaveEnabled,
              igmpInterfaceWrongVersionQueries,                          |
              igmpInterfaceJoins, igmpInterfaceLeaves,                   |
              igmpCacheVersion1HostTimer                                 |
            }
    STATUS  current
    DESCRIPTION
            "A collection of additional objects for management of IGMP
            version 2 in routers."
    ::= { igmpMIBGroups 4 }

END













Expires May 1997                                               [Page 14]


Draft                           IGMP MIB                   November 1996


6.  References

[1]  SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M., and
     S. Waldbusser, "Structure of Management Information for version 2
     of the Simple Network Management Protocol (SNMPv2)", RFC 1902,
     January 1996.

[2]  McCloghrie, K., and M. Rose, Editors, "Management Information Base
     for Network Management of TCP/IP-based internets: MIB-II", STD 17,
     RFC 1213, March 1991.

[3]  Case, J., Fedor, M., Schoffstall, M., and J. Davin, "Simple Network
     Management Protocol", RFC 1157, May 1990.

[4]  SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M., and
     S. Waldbusser, "Protocol Operations for version 2 of the Simple
     Network Management Protocol (SNMPv2)", RFC 1905, January 1996.

[5]  Deering, S., "Host Extensions for IP Multicasting", RFC 1112,
     Stanford University, August 1989.

[6]  Waitzman, D., Partridge, C., and S.E. Deering, "Distance Vector
     Multicast Routing Protocol", RFC 1075, Bolt Beranek and Newman,
     Stanford University, November 1988.

[7]  Estrin, D., Farinacci, D., Helmy, A., Thaler, D., Deering, S.,      |
     Handley, M., Jacobson, V., Liu, C., and P. Sharma, "Protocol        |
     Independent Multicast - Sparse Mode (PIM-SM): Protocol              |
     Specification", November 1996.                                      |

[8]  Estrin, D., Farinacci, D., Jacobson, V., Liu, C., Wei, L., Sharma,  |
     P, and Helmy, A., "Protocol Independent Multicast-Dense Mode (PIM-  |
     DM): Protocol Specification", January 1996.                         |

[9]  Moy, J., "Multicast Extensions to OSPF", RFC 1584, Proteon, March
     1994.

[10] Ballardie, A. J., "Core Based Trees (CBT) Multicast: Architectural
     Overview and Specification", University College London, November
     1994.










Expires May 1997                                               [Page 15]


Draft                           IGMP MIB                   November 1996


7.  Security Considerations

Security issues are not discussed in this memo.


8.  Author's Address

     Keith McCloghrie
     cisco Systems, Inc.
     170 West Tasman Drive
     San Jose, CA  95134-1706
     Phone: +1 408 526 5260
     EMail: kzm@cisco.com

     Dino Farinacci
     cisco Systems, Inc.
     170 West Tasman Drive
     San Jose, CA  95134-1706
     Phone: +1 408 526 4696
     EMail: dino@cisco.com

     Dave Thaler
     Department of Electrical Engineering and Computer Science
     University of Michigan
     1301 Beal Ave.
     Ann Arbor, MI 48109-2122
     Phone: +1 313 763 5243
     EMail: thalerd@eecs.umich.edu






















Expires May 1997                                               [Page 16]


Draft                           IGMP MIB                   November 1996


Table of Contents


1 Introduction ....................................................    1
2 Revision History ................................................    2
3 The SNMP Network Management Framework ...........................    2
3.1 Object Definitions ............................................    2
4 Overview ........................................................    4
5 Definitions .....................................................    5
6 References ......................................................   15
7 Security Considerations .........................................   16
8 Author's Address ................................................   16






































Expires May 1997                                               [Page 17]