IDMR Working Group Keith McCloghrie INTERNET-DRAFT Dino Farinacci Expires August 1998 cisco Systems Dave Thaler University of Michigan 18 February 1998 Internet Group Management Protocol MIB 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 IGMPv1 [5] or IGMPv2 [11]. Draft IGMP MIB February 1998 2. Revision History A record of changes which will be removed before publication. 18 February 1998 (1) added igmpInterfaceProxyIfIndex to manage IGMP proxies. (2) added igmpInterfaceLastMembQueryIntvl. 18 July 1997 (1) deprecated igmpInterfaceLeaves and added igmpInterfaceGroups to replace it. (2) deprecated igmpInterfaceQuerierPresentTimeout and added igmpInterfaceRobustness to replace it since the former must be derived from the latter per the IGMPv2 spec. (3) replaced igmpBaseVersion2MIBGroup with igmpHostVersion2MIBGroup to avoid requiring igmpInterfaceVersion1QuerierTimer at routers. (4) deprecated igmpInterfaceLeaveEnabled (5) added compliance statements for IGMPv2 hosts and routers 26 November 1996 (1) moved igmpInterfaceVersion1HostTimer to igmpCacheVersion1HostTimer. (2) added igmpInterfaceVersion1QuerierTimer, igmpInterfaceWrongVersionQueries, and igmpInterfaceJoins. (3) added default value for igmpInterfaceQueryMaxResponseTime. (4) moved igmpInterfaceVersion from igmpBaseVersion2MIBGroup to igmpRouterVersion2MIBGroup. 9 June 1996 (1) added support for IGMP version 2. Expires August 1998 [Page 2] Draft IGMP MIB February 1998 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 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 August 1998 [Page 3] Draft IGMP MIB February 1998 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 August 1998 [Page 4] Draft IGMP MIB February 1998 5. Definitions IGMP-MIB DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, OBJECT-TYPE, experimental, Counter32, Gauge32, Integer32, IpAddress, TimeTicks FROM SNMPv2-SMI RowStatus, TruthValue FROM SNMPv2-TC MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF; igmpMIB MODULE-IDENTITY LAST-UPDATED "9802181330Z" 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 August 1998 [Page 5] Draft IGMP MIB February 1998 -- -- 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, -- deprecated igmpInterfaceLeaveEnabled TruthValue, -- deprecated igmpInterfaceVersion1QuerierTimer Integer32, igmpInterfaceWrongVersionQueries Counter32, igmpInterfaceJoins Counter32, igmpInterfaceLeaves Counter32, -- deprecated igmpInterfaceGroups Gauge32, igmpInterfaceRobustness Integer32, igmpInterfaceProxyIfIndex Integer32, igmpInterfaceLastMembQueryIntvl Integer32 } igmpInterfaceIfIndex OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS not-accessible Expires August 1998 [Page 6] Draft IGMP MIB February 1998 STATUS current DESCRIPTION "The ifIndex value of the interface for which IGMP is enabled." ::= { igmpInterfaceEntry 1 } 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 Expires August 1998 [Page 7] Draft IGMP MIB February 1998 this interface is attached." ::= { igmpInterfaceEntry 5 } igmpInterfaceQueryMaxResponseTime OBJECT-TYPE SYNTAX Integer32 UNITS "seconds" MAX-ACCESS read-create STATUS current DESCRIPTION "The maximum query response time advertised in IGMPv2 queries on this interface." DEFVAL { 10 } ::= { igmpInterfaceEntry 6 } igmpInterfaceQuerierPresentTimeout OBJECT-TYPE SYNTAX Integer32 UNITS "seconds" MAX-ACCESS read-create STATUS deprecated 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. This object is now deprecated, since its value can be derived from igmpInterfaceRobustness." DEFVAL { 255 } ::= { igmpInterfaceEntry 7 } igmpInterfaceLeaveEnabled OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-create STATUS deprecated DESCRIPTION "An indication of whether the processing of IGMPv2 Leave messages is enabled on this interface. This object is now deprecated since it must be true when igmpInterfaceVersion is version2, and must be false when it is version1 to comply with the IGMP specfication." DEFVAL { true } ::= { igmpInterfaceEntry 8 } igmpInterfaceVersion1QuerierTimer OBJECT-TYPE SYNTAX Integer32 UNITS "seconds" MAX-ACCESS read-only Expires August 1998 [Page 8] Draft IGMP MIB February 1998 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 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 deprecated 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. This object is deprecated since its value cannot be usefully compared with igmpInterfaceJoins to get the number of groups joined. Instead, igmpInterfaceGroups gives the number of groups joined, which may be compared with igmpInterfaceJoins to derive the number of leaves." Expires August 1998 [Page 9] Draft IGMP MIB February 1998 ::= { igmpInterfaceEntry 12 } igmpInterfaceGroups OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "The current number of entries for this interface in the Cache Table." ::= { igmpInterfaceEntry 13 } igmpInterfaceRobustness OBJECT-TYPE SYNTAX Integer32 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 is robust to (Robustness Variable-1) packet losses." DEFVAL { 2 } ::= { igmpInterfaceEntry 14 } igmpInterfaceLastMembQueryIntvl OBJECT-TYPE SYNTAX Integer32 UNITS "tenths of seconds" MAX-ACCESS read-create STATUS current DESCRIPTION "The Last Member Query Interval is the Max Response Time inserted into Group-Specific Queries sent in response to Leave Group messages, and is also the amount of time between Group-Specific Query messages. This value may be tuned to modify the leave latency of the network. A reduced value results in reduced time to detect the loss of the last member of a group." DEFVAL { 10 } ::= { igmpInterfaceEntry 15 } igmpInterfaceProxyIfIndex OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-create STATUS current DESCRIPTION "Some devices implement a form of IGMP proxying whereby Expires August 1998 [Page 10] Draft IGMP MIB February 1998 memberships learned on the interface represented by this row, cause IGMP Host Membership Reports to be sent on the interface whose ifIndex value is given by this object. Such a device would implement the igmpV2RouterMIBGroup only on its router interfaces (those interfaces whose ifIndex value is given by this object on some interface). Typically, the value of this object is 0, indicating that no proxying is being done." DEFVAL { 0 } ::= { igmpInterfaceEntry 16 } -- -- 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 } Expires August 1998 [Page 11] Draft IGMP MIB February 1998 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 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 Expires August 1998 [Page 12] Draft IGMP MIB February 1998 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 } 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 August 1998 [Page 13] Draft IGMP MIB February 1998 -- conformance information igmpMIBConformance OBJECT IDENTIFIER ::= { igmpMIB 2 } igmpMIBCompliances OBJECT IDENTIFIER ::= { igmpMIBConformance 1 } igmpMIBGroups OBJECT IDENTIFIER ::= { igmpMIBConformance 2 } -- compliance statements igmpV1HostMIBCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "The compliance statement for hosts running IGMPv1 and implementing the IGMP MIB." MODULE -- this module MANDATORY-GROUPS { igmpBaseMIBGroup } OBJECT igmpInterfaceStatus MIN-ACCESS read-only DESCRIPTION "Write access is not required." ::= { igmpMIBCompliances 1 } igmpV1RouterMIBCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "The compliance statement for routers running IGMPv1 and implementing the IGMP MIB." MODULE -- this module MANDATORY-GROUPS { igmpBaseMIBGroup, igmpRouterMIBGroup } OBJECT igmpInterfaceStatus MIN-ACCESS read-only DESCRIPTION "Write access is not required." ::= { igmpMIBCompliances 2 } igmpV2HostMIBCompliance MODULE-COMPLIANCE STATUS current Expires August 1998 [Page 14] Draft IGMP MIB February 1998 DESCRIPTION "The compliance statement for hosts running IGMPv2 and implementing the IGMP MIB." MODULE -- this module MANDATORY-GROUPS { igmpBaseMIBGroup, igmpV2HostMIBGroup } OBJECT igmpInterfaceStatus MIN-ACCESS read-only DESCRIPTION "Write access is not required." ::= { igmpMIBCompliances 3 } igmpV2RouterMIBCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "The compliance statement for routers running IGMPv2 and implementing the IGMP MIB." MODULE -- this module MANDATORY-GROUPS { igmpBaseMIBGroup, igmpRouterMIBGroup, igmpV2RouterMIBGroup } OBJECT igmpInterfaceStatus MIN-ACCESS read-only DESCRIPTION "Write access is not required." ::= { igmpMIBCompliances 4 } -- 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 August 1998 [Page 15] Draft IGMP MIB February 1998 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 } igmpV2HostMIBGroup OBJECT-GROUP OBJECTS { igmpInterfaceQuerier, igmpInterfaceVersion1QuerierTimer } STATUS current DESCRIPTION "A collection of additional objects for management of IGMP version 2 in hosts." ::= { igmpMIBGroups 3 } igmpRouterVersion2MIBGroup OBJECT-GROUP OBJECTS { igmpInterfaceVersion, igmpInterfaceQueryMaxResponseTime, igmpInterfaceQuerierPresentTimeout, igmpInterfaceLeaveEnabled, igmpInterfaceWrongVersionQueries, igmpInterfaceJoins, igmpInterfaceLeaves, igmpCacheVersion1HostTimer } STATUS deprecated DESCRIPTION "A collection of additional objects for management of IGMP version 2 in routers. This group has been obsoleted by igmpV2RouterMIBGroup." ::= { igmpMIBGroups 4 } igmpV2RouterMIBGroup OBJECT-GROUP OBJECTS { igmpInterfaceVersion, igmpInterfaceQuerier, igmpInterfaceQueryMaxResponseTime, igmpInterfaceRobustness, igmpInterfaceWrongVersionQueries, igmpInterfaceJoins, igmpInterfaceGroups, igmpInterfaceLastMembQueryIntvl, Expires August 1998 [Page 16] Draft IGMP MIB February 1998 igmpCacheVersion1HostTimer } STATUS current DESCRIPTION "A collection of additional objects for management of IGMP version 2 in routers." ::= { igmpMIBGroups 5 } igmpV2ProxyMIBGroup OBJECT-GROUP OBJECTS { igmpInterfaceProxyIfIndex } STATUS current DESCRIPTION "A collection of additional objects for management of IGMP proxy devices." ::= { igmpMIBGroups 6 } END Expires August 1998 [Page 17] Draft IGMP MIB February 1998 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", RFC 2117, June 1997. [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 version 2) Multicast Routing: Protocol Specification", RFC 2189, September 1997. [11] Fenner, W., "Internet Group Management Protocol, Version 2", RFC 2236, November 1997. Expires August 1998 [Page 18] Draft IGMP MIB February 1998 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 August 1998 [Page 19] Draft IGMP MIB February 1998 Table of Contents 1 Introduction .................................................... 1 2 Revision History ................................................ 2 3 The SNMP Network Management Framework ........................... 3 3.1 Object Definitions ............................................ 3 4 Overview ........................................................ 4 5 Definitions ..................................................... 5 6 References ...................................................... 18 7 Security Considerations ......................................... 19 8 Author's Address ................................................ 19 Expires August 1998 [Page 20]