INTERNET-DRAFT IGMPv3 for SSM H. Holbrook ExpiresJanuary 14,September 2, 2001 Cisco Systems B. CainMirror Image Internet 14 JulyCereva Networks 2 March 2000 Using IGMPv3 For Source-Specific Multicast<draft-holbrook-idmr-igmpv3-ssm-00.txt><draft-holbrook-idmr-igmpv3-ssm-01.txt> Status of this Memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. 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. 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 [RFC 2119]. Abstract This document describes changes to the Internet Group Management Protocol Version 3 (IGMPv3) [IGMPv3] to support source-specific multicast (SSM) [SSM]. 1. Overview and Rationale The Internet Group Management Protocol (IGMP) [RFC1112,IGMPv2,IGMPv3], is the standard mechanism for communicating IP multicast group membership requests from a host to its locally attached routers. IGMP version 3 (IGMPv3) [IGMPv3] provides the ability for a host to selectively request or filter traffic from individual sources within a multicast group. The IGMPv3 algorithms and message processing rules require small changes to support the source-specific multicast model. This document defines the modifications required to the host and router portions of IGMPv3 to support source-specific multicast. 2. IGMP Host Requirements for Source-Specific Multicast This document does not strictly requirethatthe IP layer ortheIGMP module of an IGMPv3-enabled host to treat SSM destination addresses specially.This document does requireFor correct operation of SSM, however, a host applicationsto:must - know the range of destination addresses that have SSM semantics - use ONLY the source-specific APIs to request delivery of packets sent to SSM destination addresses The 232/8 address range is currently allocated forSSM,SSM by IANA [IANA- ALLOCATION], however hosts and routers may be configured to force SSM semantics for otheraddresses, also. The mechanism for discovering whichaddresses as well. A IGMP module on a host or router SHOULD have a configuration mechanism to set the SSMsemantics is notaddress range(s). If this configuration option exists, it MUST default to the IANA-allocated SSM range. The mechanism for setting this configuration option MUST at least allow for manual configuration. Protocol mechanisms to set this option may be defined in subsequent documents. If a host that does not have thisdocument. Givenoption, applications on that host may be denied SSM service by other non-compliant applications on the same host or by other non-compliant hosts on the same network, as described below. It is strongly recommened that the multicast source filtering (MSF) APIs of [MSFAPI] be used to implement SSM. If the host IP module receives a non source-specific request for an SSM destination address, it SHOULD return an error to the application. If the host IP module is notrequired to know which addresses areconfigured with the SSMand which addresses are not,address range, theISMnon-source-specific (RFC 1112) APIsgenerallywill not return an error whenapplied topassed an SSM destination addresses.However, hostsOn these hosts, applicaitons that mistakenly use theISM (e.g., "join(G)") or the full IGMPv3wrong APIs (e.g.,"IPMulticastListen(G,EXCLUDE(S1))")"join(G)", or "IPMulticastListen(G,EXCLUDE(S1))" for IGMPv3) to request delivery of packets sent to an SSM address will not receive the requested service, as routers will refuse to process any such request, as per section 10.2. This section documents the behavior of hosts with respect to sending and receiving the following IGMP message types: - IGMPv1/v2 Reports - IGMPv3 Reports - IGMPv1/v2 Queries - IGMPv2 Leave - IGMPv2 Group Specific Query - IGMPv3 Group Specific Query - IGMPv3 Group-and-Source Specific Query 2.1. IGMPv1/v2 Reports A compliant host SHOULD NOT send IGMPv1 or IGMPv2 hostreport are not processedreports for SSM addresses.TheyIf an SSM-unaware IGMPv3-enabled host receives an IGMPv1 or IGMPv2 host report for SSM destination address G, its IGMP module willnot ever be seen, if other hosts onrevert to IGMPv1/v2 compatibility mode for address G. This will prevent theLAN agree about which addresses have SSM semantics. As long as hosts usehost from sending source-specific joins, and consequently the SSMAPIs for SSM addresses. IGMPv1 and IGMPv2 host reportsservice model will not besentprovided for destination address G. Therefore, it is important that the SSMaddresses.address range be used only in conjunction with the SSM APIs. 2.2. IGMPv3 Reports Source-specific multicast destination-and-source pairs (channels) are reported using IGMPv3 with the IGMPv3 INCLUDE report. A host implementation MAY report either one or multiple channels in a single IGMPv3 report. When source-specific channels are reported in an IGMPv3 Report, the report may contain one or more group records of the following types: - MODE_IS_INCLUDE as part of a Current-State Record - ALLOW_NEW_SOURCES as part of a State-Change Record - BLOCK_OLD_SOURCES as part of a State-Change Record The source list for any individual Group RecordMAYmay be of length one or more than one. If a host implementation so chooses, itMAYmay report both SSM destination addresses andISMRFC 1112 multicast (henceforth termed Any- Source Multicast or ASM as in [SSM]) destination addresses in the same message. If all applications on a host use the SSM APIs for SSM addresses, then a host would not normally send any of the following group record types for addresses in the source-specific range: - MODE_IS_EXCLUDE as part of a Current-State Record - CHANGE_TO_INCLUDE_MODE as part of a Filter-Mode-Change Record - CHANGE_TO_EXCLUDE_MODE as part of a Filter-Mode-Change Record EXCLUDE mode does not apply to SSM addresses, and the filter mode used for a SSM address should never change to or from EXCLUDE mode under correct application behavior. [Note: please see Section 4, Outstanding Issues.] A host that is configured with the SSM address range MUST NOT send any of the above record types for an SSM address. 2.3. IGMPv1/IGMPv2 Queries If an IGMPv1 or IGMPv2 query is received, the IGMPv3 protocol specification requires the host to revert to the older (IGMPv1 or IGMPv2) mode of operation for that destination address. If this occurs, the host will stop reporting source-specific subscriptions for that destination address and start using either IGMPv1 or IGMPv2 to report interest in the SSM destination address, unqualified by a source address. If this occurs, SSM semantics will no longer be applied for G.However, aA router compliant with this document would never generate an IGMPv1 or IGMPv2 query for an address in the SSM range, so this situation would only occur if some router is not compliant with this document for an address that the host believes to have SSM semantics.IfWhen a hostdoes revertreverts to an older version of operation for some destination address, it will no longer be able to send source-specific IGMPv3 messages anditapplications on that host will not be able to subscribe to SSM channels using that destination address. A host that is configured with the SSM address range MAY have a configuration optionthat allowsto allow it continue tosend source-specific reception requests andto refuse to revert to the older (IGMPv1 or IGMPv2) mode of operation for addresses in the source-specific range, even if an IGMPv1 or IGMPv2 query is heard. These problems only arise on a shared-medium link that has both SSM- aware and non-SSM-aware routers present. Therefore, it SHOULD be administratively assured that all routers on a given shared-medium network are compliant with this document. 2.4. IGMPv2 Leave IGMP Leave messages are not processed by hosts. IGMPv2 Leave messages are not sent for SSM addresses. 2.5. IGMPv2 Group Specific Query If a host receives an IGMPv2 Group Specific Query for an address intheits configured source-specific range, it MUST silently discard the query, even if the group listed matches the source-specific destination address of some locally subscribed source-specific group. The transmission of such a query indicates that the sender is not compliant with this document. 2.6. IGMPv3 Group Specific Query If a host receives an IGMPv3 Group-Specific Query intheits configured source-specific range, it MUST respond with a report if the group matches thesource- specificsource-specific destination address of any of its subscribed source-specific groups. Although in the current IGMPv3 protocol specification, routers would have no reason to send one, the semantics of such a query are well- defined in this range and future implementations may have reason to send such a query. Be liberal in what you accept. 2.7. IGMPv3 Group-and-Source Specific Query An IGMPv3 router will query a source-specific channel that a host has requested to leave (via a BLOCK_OLD_SOURCES record) with a group-and- source specific query. A host MUST respond to a group-and-source specific query for which the group and source in the query match match any channel for which the host has a subscription. Hosts MUST be able to process a query with multiple sources listed per group. 3. IGMP Router Requirements for Support Source-Specific Multicast Routers must be aware of the SSM address range. The 232/8 address range is currently allocated for SSM by IANA [IANA-ALLOCATION]. However, an SSM router may be configured to force SSM semantics for other addresses as well. If this configuration option exists, it MUST default to the IANA-allocated range. This section documents the behavior of routers with respect to the following types of IGMP messages for source-specific destination addresses: - IGMPv3 Reports - IGMPv3 General Query - IGMPv3 Group-Specific Query - IGMPv3 Group-and-Source Specific Query - IGMPv1/v2 Reports - IGMPv1/v2 Queries - IGMPv2 Leave 3.1. IGMPv3 Reports IGMPv3 Reports are used to report source-specific subscriptions in the SSM address range. If a router receives an IGMPv3 report that contains a group record for a destination address inthesource-specific range that matches one of the types listed below, then it MUST ignore that group record, however, it MUST process other group records within that same report. - Any Current-State Record with MODE_IS_EXCLUDE - A CHANGE_TO_INCLUDE_MODE Filter-Mode-Change Record - A CHANGE_TO_EXCLUDE_MODE Filter-Mode-Change Record 3.2. IGMPv3 General Queries IGMPv3 General Queries are used to periodically build the total desired membership state on a subnet. These queries are used for the same purpose in the source-specific address range -- no change in behavior is required.AAn SSM routerthat supports the source-specific multicast address rangesends periodic IGMPv3 General Queries as per the IGMPv3 specification. 3.3. IGMPv3 Group Specific Queries IGMPv3 routers that support source-specific multicast MAY send group- specific queries for addresses in the source-specific range, although, in the current IGMPv3 protocol spec, there is no scenario under which this would occur. 3.4. IGMPv3 Group-and-Source Specific Queries IGMPv3 Group-and-Source Specific Queries are used to verify that there are no locally attached listeners when a receiver has indicated that it is no longer interested in receiving traffic from a particular (S,G) pair. Group-and-Source Specific Queries are used within the source- specific address range when a router receives a BLOCK_OLD_SOURCES Record for one or more source-specific groups. 3.5. IGMPv1/v2 Reports An IGMPv1/v2 report for an address in the source-specific range could be sent by a host that does not support the source-specific model. A router MUST ignore all IGMPv1 and IGMPv2 reports in the source-specific address range and specifically MUST NOT use them to establish IP forwarding state. 3.6. IGMPv1/v2 Queries The IGMP querier on a shared-medium network is elected to be the one with lowest source IP address. Therefore, an IGMPv3 router will yield to an IGMPv1 or v2 querier with a lower IP address. IGMPv3 routers that lose the querier election to a lower version router MUST log an error, as per the IGMPv3 specification. However, IGMPv3 routers MUST NOT revert into previous version compatibility mode for the source-specific address range. An IGMPv3 router that loses the querier election to an IGMPv1 or v2 querier SHOULD continue to process source-specific reports in the source-specific address range. 3.7. IGMPv2 Leave An IGMPv2 Leave may be received for a source-specific address from a host that does not support the source-specific model. A router MUST ignore all IGMPv2 leaves in the source-specific address range. 4.Outstanding IssuesA Note on EXCLUDEmode does not applyMode [To be removed before going toSSM addresses, andthefilter mode used for a SSM address should never change to or from EXCLUDE mode under correct application behavior.IESG.] The IGMPv3 specificationindicatesformerly indicated that a host should convert to EXCLUDE mode operation when it no longer has enough memory to record INCLUDE mode requests.For SSM, itThis wouldbe preferable to return an error indication. However, as specified in this document, a host does not have any knowledge about the range of addresses that havecause SSMsemantics -- only a router has this information. One possible solution is to allow the application layerworking applications toprovide this information. In this solution,suddenly break when the router runs out of memory for subsequent joins. The IGMPv3IPMulticastListen API is extendedprotocol specification was subsequently changed toallowsay that a host MUST NOT transition torequest an INCLUDE-mode subscription that must not be converted to anEXCLUDE modesubscription if the router runsas a result of running out ofmemory.resources. 5. Acknowledgments The authors would like to thank Vince Laviano, Nidhi Bhaskar, and Steve Deering and for their input and careful review. 6. References [IGMPv3] Cain, B., Deering, S., and A. Thyagarajan, "Internet Group Management Protocol, Version 3," Work in Progress. [RFC1112] Deering, S., "Host Extensions for IP Multicasting," RFC 1112, August 1989. [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels," RFC 2119, March 1997. [IANA-ALLOCATION] Internet Assigned Numbers Authority, http://www.isi.edu/in-notes/iana/assignments/multicast-addresses. [IGMPv2] Fenner, W., "Internet Group Management Protocol, Version 2," RFC 2236, November 1997. [MSFAPI] Thaler, D., Fenner, B., and Quinn, B. "Socket Interface Extensions for Multicast Source Filters." Work in Progress. [SSM] Holbrook, H., and Cain, B., "Source-Specific Multicast for IP", Work in Progress. 7. Author's Address Hugh Holbrook Cisco Systems 170 W. Tasman Drive. San Jose, CA 95134 holbrook@cisco.com Brad CainNortelCereva Networksbcain@nortelnetworks.com3 Network Drive Marlborough, MA 01752 bcain@cereva.com This document expiresJanuary 14,September 2, 2001.