RFC 5790 PROPOSED STANDARD MULTICAST · IGMP · ROUTING

Lightweight IGMPv3/MLDv2: Lightweight Internet Group Management Protocol Version 3 (IGMPv3) and Multicast Listener Discovery Version 2 (MLDv2) Protocols

A stripped-down subset of IGMPv3 and MLDv2 that drops the filter mode almost nobody uses.

On rfc-editor.org ↗
PUBLISHED
February 2010
AUTHORS
H. Liu, W. Cao, H. Asaeda
STREAM
IETF
RECORD TYPES USED BY LW-IGMPV3
ALLOW, BLOCK, TO_IN and TO_EX
FULL-VERSION RECORDS ELIMINATED
IS_IN and IS_EX with a non-empty source list
STATE KEPT PER GROUP
Multicast address, group timer and source records
QUERY RESPONSE DELAY
A random time bounded by the Max Resp Time from the query
OLDEST VERSIONS INTEROPERATED WITH
IGMPv1, IGMPv2 and MLDv1
STATE-CHANGE REPORT RETRANSMISSIONS
The Robustness Variable minus one more times
DOI
10.17487/RFC5790

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Internet Engineering Task Force (IETF)                            H. Liu
Request for Comments: 5790                                        W. Cao
Category: Standards Track                            Huawei Technologies
ISSN: 2070-1721                                                H. Asaeda
                                                         Keio University
                                                           February 2010


 Lightweight Internet Group Management Protocol Version 3 (IGMPv3) and
        Multicast Listener Discovery Version 2 (MLDv2) Protocols

Abstract

   This document describes lightweight IGMPv3 and MLDv2 protocols (LW-
   IGMPv3 and LW-MLDv2), which simplify the standard (full) versions of
   IGMPv3 and MLDv2.  The interoperability with the full versions and
   the previous versions of IGMP and MLD is also taken into account.

Status of This Memo

   This is an Internet Standards Track document.

   This document is a product of the Internet Engineering Task Force
   (IETF).  It represents the consensus of the IETF community.  It has
   received public review and has been approved for publication by the
   Internet Engineering Steering Group (IESG).  Further information on
   Internet Standards is available in Section 2 of RFC 5741.

   Information about the current status of this document, any errata,
   and how to provide feedback on it may be obtained at
   http://www.rfc-editor.org/info/rfc5790.

Copyright Notice

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

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

   This document may contain material from IETF Documents or IETF
   Contributions published or made publicly available before November
   10, 2008.  The person(s) controlling the copyright in some of this
   material may not have granted the IETF Trust the right to allow
   modifications of such material outside the IETF Standards Process.
   Without obtaining an adequate license from the person(s) controlling
   the copyright in such materials, this document may not be modified
   outside the IETF Standards Process, and derivative works of it may
   not be created outside the IETF Standards Process, except to format
   it for publication as an RFC or to translate it into languages other
   than English.

Table of Contents

   1. Introduction ....................................................3
   2. Terminology .....................................................4
   3. Simplification Method Overview ..................................4
      3.1. Behavior of Group Members ..................................5
      3.2. Behavior of Multicast Routers ..............................5
   4. LW-IGMPv3 Protocol for Group Members ............................6
      4.1. Query and Report Messages ..................................6
      4.2. Action on Change of Interface State ........................6
      4.3. Action on Reception of a Query .............................7
      4.4. LW-IGMPv3 Group Record Types ...............................7
   5. LW-IGMPv3 Protocol for Multicast Routers ........................9
      5.1. Group Timers and Source Timers in the Lightweight Version ..9
      5.2. Source-Specific Forwarding Rules ..........................10
      5.3. Reception of Current-State Records ........................10
      5.4. Reception of Source-List-Change and
           Filter-Mode-Change Records ................................12
   6. Interoperability ...............................................13
      6.1. Interoperation with the Full Version of IGMPv3/MLDv2 ......13
           6.1.1. Behavior of Group Members ..........................13
           6.1.2. Behavior of Multicast Routers ......................13
      6.2. Interoperation with IGMPv1/IGMPv2 .........................14
           6.2.1. Behavior of Group Members ..........................14
           6.2.2. Behavior of Multicast Routers ......................14
      6.3. Interoperation with MLDv1 .................................15
   7. Implementation Considerations ..................................15
      7.1. Implementation of Source-Specific Multicast ...............15
      7.2. Implementation of Multicast Source Filter (MSF) APIs ......16
   8. Security Considerations ........................................16
   9. Acknowledgements ...............................................16
   10. References ....................................................16
      10.1. Normative References .....................................16
      10.2. Informative References ...................................17

1.  Introduction

   IGMP version 3 [2] and MLD version 2 [3] implement source filtering
   capabilities that are not supported by their earlier versions, IGMPv1
   [4], IGMPv2 [5], and MLDv1 [6].  An IGMPv3- or MLDv2-capable host can
   tell its upstream router which group it would like to join by
   specifying which sources it does or does not intend to receive
   multicast traffic from.  IGMPv3 and MLDv2 add the capability for a
   multicast router to learn sources that are of interest or that are
   not of interest for a particular multicast address.  This information
   is used during forwarding of multicast data packets.

   INCLUDE and EXCLUDE filter-modes are introduced to support the source
   filtering function.  If a host wants to receive from specific
   sources, it sends an IGMPv3 or MLDv2 report with filter-mode set to
   INCLUDE.  If the host does not want to receive from some sources, it
   sends a report with filter-mode set to EXCLUDE.  A source-list for
   the given sources shall be included in the Report message.

   INCLUDE and EXCLUDE filter-modes are also defined in a multicast
   router to process the IGMPv3 or MLDv2 reports.  When a multicast
   router receives the Report messages from its downstream hosts, it
   forwards the corresponding multicast traffic by managing requested
   group and source addresses.  Group timers and source timers are used
   to maintain the forwarding state of desired groups and sources under
   certain filter-modes.  When a group report arrives or a certain timer
   expires, a multicast router may update the desired or undesired
   source-lists, reset related timer values, change filter-mode, or
   trigger group queries.  With all of the above factors correlating
   with each other, the determination rules become relatively complex,
   as the interface states could be frequently changed.

   The multicast filter-mode improves the ability of the multicast
   receiver to express its desires.  It is useful to support Source-
   Specific Multicast (SSM) [7] by specifying interesting source
   addresses with INCLUDE mode.  However, practical applications do not
   use EXCLUDE mode to block sources very often, because a user or
   application usually wants to specify desired source addresses, not
   undesired source addresses.  Even if a user explicitly refuses
   traffic from some sources in a group, when other users in the same
   shared network have an interest in these sources, the corresponding
   multicast traffic will still be forwarded to the network.  It is
   generally unnecessary to support the filtering function that blocks
   sources.

   This document proposes simplified versions of IGMPv3 and MLDv2, named
   Lightweight IGMPv3 and Lightweight MLDv2 (or LW-IGMPv3 and LW-MLDv2).
   LW-IGMPv3 and LW-MLDv2 are subsets of the standard IGMPv3 and MLDv2.

   They support both Any-Source Multicast (ASM) and SSM communications
   without a filtering function that blocks sources.  Not only are they
   compatible with the standard IGMPv3 and MLDv2, but also the protocol
   operations made by hosts and routers (or switches performing IGMPv3/
   MLDv2 snooping) are simplified to reduce the complicated operations.
   Since LW-IGMPv3 and LW-MLDv2 are fully compatible with IGMPv3 and
   MLDv2, hosts or routers that have implemented the full version do not
   need to implement or modify anything to cooperate with LW-IGMPv3/
   LW-MLDv2 hosts or routers.

2.  Terminology

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

   In addition, the following terms are used in this document.

   (*,G) join:
   An operation triggered by a host that wants to join a group G.  In
   this case, the host receives from all sources sending to group G.
   This is typical in ASM communication.

   (S,G) join:
   An operation triggered by a host that wants to join a group G,
   specifying a desired source S.  In this case, the host receives
   traffic only from source S sending to group G.

   INCLUDE (S,G) join:
   An operation triggered by a host that wants to join a group G under
   INCLUDE filter-mode, specifying a desired source S.  Same meaning as
   (S,G) join.

   EXCLUDE (*,G) join:
   An operation triggered by a host that wants to join a group G under
   EXCLUDE filter-mode.  Same meaning as (*,G) join.

   EXCLUDE (S,G) join:
   An operation triggered by a host that wants to join a group G under
   EXCLUDE filter-mode, specifying an undesired source S.  This
   operation is not supported by LW-IGMPv3/LW-MLDv2.

3.  Simplification Method Overview

   The principle is to simplify the host's and router's behavior as much
   as possible to improve efficiency, while guaranteeing
   interoperability with the full versions, and introducing no side
   effects on applications.

   For convenience, this document mainly discusses IGMPv3, since MLDv2
   inherits the same source filtering mechanism, but this document
   additionally shows MLDv2's unique specifications when needed.

3.1.  Behavior of Group Members

   LW-IGMPv3 inherits the service interface model of IGMPv3.

     IPMulticastListen ( socket, interface, multicast-address,
                         filter-mode, source-list )

   In the lightweight protocol, INCLUDE mode on the host part has the
   same usage as the full version for INCLUDE (S,G) join, while EXCLUDE
   mode on the host part is preserved only for excluding null source-
   lists, which denotes a (*,G) join as used by IGMPv2/IGMPv1/MLDv1.
   The detailed host operation of LW-IGMPv3/LW-MLDv2 is described in
   Section 4.

3.2.  Behavior of Multicast Routers

   In IGMPv3, router filter-mode is defined to optimize the state
   description of a group membership [2].  As a rule, once a member
   report is in EXCLUDE mode, the router filter-mode for the group will
   be set to EXCLUDE.  When all systems cease sending EXCLUDE mode
   reports, the filter-mode for that group may transit back to INCLUDE
   mode.  The group timer is used to identify such a transition.

   In LW-IGMPv3, hosts primarily send INCLUDE requests, and also can
   request an EXCLUDE (*,G) join, which can be interpreted by the router
   as a request to include all sources.  Without the more general form
   of EXCLUDE requests, it is unnecessary for the router to maintain the
   EXCLUDE filter-mode, and the state model for multicast routers can be
   simplified as:

      (multicast address, group timer, (source records))

   Here a group timer is kept to represent a (*,G) join.  Its basic
   behavior is: when a router receives a (*,G) join, it will set its
   group timer and keep the source-list for sources specified in the
   previously received source records.  When the group timer expires,
   the router may change to reception of the listed sources only.  The
   definition of the source record is the same as in the full version.

   The elimination of the filter-mode will greatly simplify the router
   behavior.  The details of router operation are described in
   Section 5.

4.  LW-IGMPv3 Protocol for Group Members

4.1.  Query and Report Messages

   LW-IGMPv3 uses the same two sets of messages, Query and Report
   messages, as the full version protocols.  There is no difference
   between the definition and usage of the Query message.  But the
   report types in lightweight protocols are reduced because an
   operation that triggers EXCLUDE (S,G) join is omitted.

   There are three Group Record Types defined in the full IGMPv3: the
   Current-State Record denoted by MODE_IS_INCLUDE (referred to as
   IS_IN) or MODE_IS_EXCLUDE (IS_EX), the Filter-Mode-Change Record
   denoted by CHANGE_TO_INCLUDE_MODE (TO_IN) or CHANGE_TO_EXCLUDE_MODE
   (TO_EX), and the Source-List-Change Record denoted by
   ALLOW_NEW_SOURCES (ALLOW) or BLOCK_OLD_SOURCES (BLOCK).  LW-IGMPv3
   inherits the actions on change of interface state and on reception of
   a query, but the IS_IN and IS_EX record types are eliminated and
   Current-State Records are replaced by other records.  The following
   sections explain the details.

4.2.  Action on Change of Interface State

   When the state of an interface of a group member host is changed, a
   State-Change Report for that interface is immediately transmitted
   from that interface.  The type and contents of the Group Record(s) in
   that report are determined by comparing the filter-mode and source-
   list for the affected multicast address before and after the change.
   While the requirements for the computation are the same as for the
   full version, in a lightweight version host the interface state
   change rules are simplified due to the reduction of message types.
   The contents of the new transmitted report are calculated as follows
   (Group Record Types are described in Section 4.4):

         Old State        New State        State-Change Report Sent
         -----------      -----------      ------------------------

         INCLUDE (A)      INCLUDE (B)      ALLOW(B-A), BLOCK(A-B)

         INCLUDE (A)      EXCLUDE ({})     TO_EX({})

         INCLUDE ({})     EXCLUDE ({})     TO_EX({})

         EXCLUDE ({})     INCLUDE (B)      TO_IN(B)

   As in the full version, to cover the possibility of the State-Change
   Report being missed by one or more multicast routers, it is
   retransmitted [Robustness Variable]-1 more times, at intervals chosen
   at random from the range (0, [Unsolicited Report Interval]).  (These
   values are defined in [2][3].)

4.3.  Action on Reception of a Query

   As in the full version, when a lightweight version host receives a
   query, it does not respond immediately.  Instead, it delays its
   response by a random amount of time, bounded by the Max Resp Time
   value derived from the Max Resp Code in the received Query message
   [2][3].  The system may receive a variety of queries on different
   interfaces and of different kinds (e.g., General Queries, Group-
   Specific Queries, and Group-and-Source-Specific Queries), each of
   which may require its own delayed response.

   Before scheduling a response to a query, the system must first
   consider previously scheduled pending responses and in many cases
   schedule a combined response.  Therefore, the lightweight version
   host must be able to maintain the following state:

    o A timer per interface for scheduling responses to General Queries.

    o A per-group and interface timer for scheduling responses to Group-
     Specific and Group-and-Source-Specific Queries.

    o A per-group and interface list of sources to be reported in the
     response to a Group-and-Source-Specific Query.

   LW-IGMPv3 inherits the full version's rules that are used to
   determine if a report needs to be scheduled.  The difference is
   regarding the simplification of EXCLUDE filter-mode and the type of
   report as detailed in Section 4.4.

4.4.  LW-IGMPv3 Group Record Types

   Among the Group Record Types defined in the full IGMPv3, several
   record types are not used in LW-IGMPv3 as some of the processes
   related to the filter-mode change to the EXCLUDE mode are eliminated
   and some of the Report messages are converged into a record having a
   null source address list.  All of the record types of Report messages
   used by the full and lightweight version protocols are shown as
   follows:

      IGMPv3       LW-IGMPv3    Comments
      ---------    ---------    -------------------------------------

      IS_EX({})    TO_EX({})    Query response for (*,G) join

      IS_EX(x)     N/A          Query response for EXCLUDE (x,G) join

      IS_IN(x)     ALLOW(x)     Query response for INCLUDE (x,G) join

      ALLOW(x)     ALLOW(x)     INCLUDE (x,G) join

      BLOCK(x)     BLOCK(x)     INCLUDE (x,G) leave

      TO_IN(x)     TO_IN(x)     Change to INCLUDE (x,G) join

      TO_IN({})    TO_IN({})    (*,G) leave

      TO_EX(x)     N/A          Change to EXCLUDE (x,G) join

      TO_EX({})    TO_EX({})    (*,G) join

   where "x" represents a non-null source address list and "({})"
   represents a null source address list.  For instance, IS_EX({}) means
   a report whose record type is IS_EX with a null source address list.
   "N/A" represents not applicable (or no use) because the corresponding
   operation should not occur in the lightweight version protocols.

   LW-IGMPv3 does not use EXCLUDE filter-mode with a non-null source
   address list.  A multicast router creates the same state when it
   receives a Report message containing either IS_EX({}) or TO_EX({})
   record types.  Therefore, LW-IGMPv3 integrates the IS_EX({})
   operation with the TO_EX({}) operation.

   When an LW-IGMPv3 host needs to make a query response for the state
   of INCLUDE (x,G) join, it makes a response whose message type is
   expressed with ALLOW(x), instead of using the IS_IN record type.
   Because the router's processing of the two messages is exactly the
   same, the IS_IN(x) type is eliminated for simplification.

   An LW-IGMPv3 host does not use EXCLUDE mode, while TO_IN and TO_EX
   records are used for example in the following situation: the host
   first launches an application (AP1) that requests INCLUDE (x,G) join,
   and sends ALLOW(x).  Then the host launches another application (AP2)
   that joins (*,G), and it sends TO_EX({}).  In this condition, when
   AP2 terminates but AP1 keeps working on the lightweight version host,
   the host sends a report with TO_IN(x) record type for [Robustness
   Variable] times.

   Although an LW-IGMPv3 host adopts the four message types (ALLOW,
   BLOCK, TO_IN, and TO_EX) for simplification, using IS_EX({}) and
   IS_IN(x) (respectively, instead of TO_EX({}) and ALLOW(x)) in
   response to queries is not inhibited.  This will not introduce the
   interoperation problem because the router process is, respectively,
   the same for the mentioned two message set, as long as the router
   implementation follows the rules given by full IGMPv3.

5.  LW-IGMPv3 Protocol for Multicast Routers

   The major difference between the full and lightweight version
   protocols on the router part is that in the lightweight version
   filter-mode is discarded and the function of the group timer is
   redefined.  The states maintained by the lightweight router are
   reduced and the protocol operation is greatly simplified.

5.1.  Group Timers and Source Timers in the Lightweight Version

   In lightweight and full IGMPv3 routers, a source timer is kept for
   each source record and it is updated when the source is present in a
   received report.  It indicates the validity of the source and needs
   to be referred to when the router takes its forwarding decision.

   The group timer being used in the full version of IGMPv3 for
   transitioning the router's filter-mode from EXCLUDE to INCLUDE is
   redefined in the lightweight protocols to identify the non-source-
   specific receiving state maintained for (*,G) join.  Once a group
   record of TO_EX({}) is received, the group timer is set to represent
   this (*,G) group join.  The expiration of the group timer indicates
   that there are no more listeners on the attached network for this
   (*,G) group.  Then if at this moment there are unexpired sources
   (whose source timers are greater than zero), the router will change
   to receiving traffic for those sources only.  The role of the group
   timer can be summarized as follows:

       Group Timer Value      Actions/Comments
       ------------------     --------------------------------------

       G_Timer > 0            All members in this group.

       G_Timer == 0           No more listeners to this (*,G) group.
                              If all source timers have expired, then
                              delete group record.  If there are
                              still source record timers running,
                              use those source records with running
                              timers as the source record state.

   The operation related to the group and source timers has some
   differences compared to the full IGMPv3.  In the full version, if a
   source timer expires under the EXCLUDE router filter-mode, its
   corresponding source record is not deleted until the group timer
   expires for indicating undesired sources.  In the lightweight
   version, since there is no need to keep such records for blocking
   specific sources, if a source timer expires, its source record should
   be deleted immediately, not waiting for the time-out of the group
   timer.

5.2.  Source-Specific Forwarding Rules

   A full version multicast router needs to consult IGMPv3 state
   information when it makes decisions on forwarding a datagram from a
   source, based on the router filter-mode and source timer.  In LW-
   IGMPv3, because of the absence of the router filter-mode, the group
   timer and source timer could be used for such decisions.  The
   forwarding suggestion made by LW-IGMPv3 to the routing protocols is
   summarized as follows:

       Group Timer    Source Timer          Action
       ------------   ------------------    -----------------------

       G_Timer == 0   S_Timer > 0           Suggest forwarding
                                            traffic from source

       G_Timer == 0   S_Timer == 0          Suggest stopping
                                            forwarding traffic from
                                            source and remove
                                            source record.  If there
                                            are no more source
                                            records for the group,
                                            delete group record

       G_Timer == 0   No Source Elements    Suggest not forwarding
                                            traffic from source

       G_Timer > 0    S_Timer >= 0          Suggest forwarding
                                            traffic from source

       G_Timer > 0    No Source Elements    Suggest forwarding
                                            traffic from source

5.3.  Reception of Current-State Records

   When receiving Current-State Records, the LW-IGMPv3 router resets its
   group or source timers and updates its source-list within the group.
   For source-specific group reception state (when G_Timer == 0 and
   S_Timer > 0), the source-list contains sources whose traffic will be
   forwarded by the router, while in non-source-specific group reception
   (when G_Timer > 0), the source-list remembers the valid sources to
   receive traffic from after toggling to source-specific reception
   state.

   Although the LW-IGMPv3 host only sends a subset of the messages of
   the full version, the LW-IGMPv3 router should be able to process as
   many messages as possible to be compatible with the full version
   host.  Note that if the report type is IS_EX(x) with a non-empty
   source-list, the router will treat it as the same type of report with
   an empty source-list.  The following table describes the action taken
   by a multicast router after receiving Current-State Records.  The
   notations have the same meaning as those in the full IGMPv3 protocol.

                       Old                     New
                       Source-                 Source-
        Group Timer    List     Report Rec'd   List     Actions
        ------------   ------   ------------   ------   -----------

        G_Timer == 0     A       IS_IN(B)       A+B     (B)=GMI

        G_Timer == 0     A       IS_EX({})       A      G_Timer=GMI

        G_Timer > 0      A       IS_IN(B)       A+B     (B)=GMI

        G_Timer > 0      A       IS_EX({})       A      G_Timer=GMI

   The above table could be further simplified since the processes are
   exactly the same for the two values of the G_Timer:

               Old                      New
               Source-                  Source-
               List     Report Rec'd    List     Actions
               ------   ------------    ------   -----------

                 A       IS_IN(B)        A+B     (B)=GMI

                 A       IS_EX({})        A      G_Timer=GMI

   Without EXCLUDE filter-mode, a router's process on receiving a
   Current-State Record is simple: when a router receives an IS_IN
   report, it appends the reported source addresses to the previous
   source-list with their source timers set to GMI.  Upon receiving an
   IS_EX({}) report, the router sets the non-source-specific receiving
   states by resetting the group timer value and keeps the previous
   source-list without modification.

5.4.  Reception of Source-List-Change and Filter-Mode-Change Records

   On receiving Source-List-Change and Filter-Mode-Change Records, the
   LW-IGMPv3 router needs to reset its group and source timers, update
   its source-list within the group, or trigger group queries.  The
   queries are sent by the router for the sources that are requested to
   be no longer forwarded to a group.  Note that if the report type is
   TO_EX(x) with a non-empty source-list, the router will treat it as
   the same type of report with an empty source-list.  The table below
   describes the state change and the actions that should be taken.

                      Old                     New
                      Source-                 Source-
       Group Timer    List     Report Rec'd   List     Actions
       ------------   ------   ------------   ------   -------------

       G_Timer == 0     A       ALLOW(B)       A+B     (B)=GMI

       G_Timer == 0     A       BLOCK(B)        A      Send Q(G,A*B)

       G_Timer == 0     A       TO_IN(B)       A+B     (B)=GMI
                                                       Send Q(G,A-B)

       G_Timer == 0     A       TO_EX({})       A      G_Timer=GMI

       G_Timer > 0      A       ALLOW(B)       A+B     (B)=GMI

       G_Timer > 0      A       BLOCK(B)        A      Send Q(G,A*B)

       G_Timer > 0      A       TO_IN(B)       A+B     (B)=GMI
                                                       SendQ(G,A-B)
                                                       Send Q(G)

       G_Timer > 0      A       TO_EX({})       A      G_Timer=GMI

   The table could be further simplified by merging duplicate lines:

          Old                     New
          Source-                 Source-
          List     Report Rec'd   List     Actions
          ------   ------------   ------   ----------------------

            A       ALLOW(B)       A+B     (B)=GMI

            A       BLOCK(B)        A      Send Q(G,A*B)

            A       TO_IN(B)       A+B     (B)=GMI
                                           Send Q(G,A-B)
                                           If G_Timer>0 Send Q(G)

            A       TO_EX({})       A      G_Timer=GMI

6.  Interoperability

   LW-IGMPv3/LW-MLDv2 hosts and routers must interoperate with hosts and
   routers of the full version [2][3].  Also, LW-IGMPv3/LW-MLDv2 hosts
   and routers must interoperate gracefully with hosts and routers
   running IGMPv1/v2 or MLDv1.

6.1.  Interoperation with the Full Version of IGMPv3/MLDv2

   LW-IGMPv3/LW-MLDv2 do not introduce any change on the message formats
   of the group Query and Report messages that the full version
   protocols use.

6.1.1.  Behavior of Group Members

   An LW-IGMPv3 host's compatibility mode is determined from the Host
   Compatibility Mode variable, which can be in one of three states:
   IGMPv1, IGMPv2, or IGMPv3.  When a lightweight host behaves on its
   interface as LW-IGMPv3, its Host Compatibility Mode of that interface
   is set to IGMPv3, and the host sends a subset of IGMPv3 Report
   messages, which can be recognized by a multicast router running the
   full or the lightweight IGMPv3 protocol on the same LAN.

6.1.2.  Behavior of Multicast Routers

   An LW-IGMPv3 or LW-MLDv2 router does not process directly IS_EX(x)
   and TO_EX(x) reports that are used by the full version.  When an LW-
   IGMPv3/LW-MLDv2 router receives these Report messages from full
   version hosts, it MUST translate them internally to IS_EX({}) and
   TO_EX({}) respectively and behave accordingly.

6.2.  Interoperation with IGMPv1/IGMPv2

   Since the lightweight protocols can be treated as a parallel version
   of the full version of IGMPv3/MLDv2, its compatibility principle and
   method with the older version are generally the same as that of full
   IGMPv3/MLDv2.

6.2.1.  Behavior of Group Members

   The Host Compatibility Mode of an interface is set to IGMPv2 and its
   IGMPv2 Querier Present timer is set to Older Version Querier Present
   Timeout seconds (defined in [2]) whenever an IGMPv2 General Query is
   received on that interface.  The Host Compatibility Mode of an
   interface is set to IGMPv1 and its IGMPv1 Querier Present timer is
   set to Older Version Querier Present Timeout seconds whenever an
   IGMPv1 Membership Query is received on that interface.

   In the presence of older version group members, LW-IGMPv3 hosts may
   allow its Report message to be suppressed by either an IGMPv1 or
   IGMPv2 membership report.  However, because the transmission of
   IGMPv1 or v2 packets reduces the capability of the LW-IGMPv3 system,
   as a potential protection mechanism, the choice to enable or disable
   the use of backward compatibility may be configurable.

6.2.2.  Behavior of Multicast Routers

   The behavior of an LW-IGMPv3 router when placed on a network where
   there are routers that have not been upgraded to IGMPv3 is exactly
   the same as for a full IGMPv3 router in this situation [2].

   A full IGMPv3 router uses Group Compatibility Mode (whose value is
   either of IGMPv1, IGMPv2, or IGMPv3) per group record to indicate
   which version of IGMP protocol it applies to the group.  This value
   is set according to the version of the received IGMP reports.  When
   Group Compatibility Mode is IGMPv3, the lightweight router performs
   the LW-IGMPv3 protocol for that group.

   When Group Compatibility Mode is IGMPv2, an LW-IGMPv3 router inherits
   this compatibility mechanism with the following rules:

                 IGMP Message          LW-IGMPv3 Equivalent
                --------------         --------------------

                  v2 Report                 TO_EX({})

                  v2 Leave                  TO_IN({})

   When Group Compatibility Mode is IGMPv1, an LW-IGMPv3 router
   internally translates the following IGMPv1 and IGMPv2 messages for
   that group to their LW-IGMPv3 equivalents:

                 IGMP Message          LW-IGMPv3 Equivalent
                --------------         --------------------

                  v1 Report                 TO_EX({})

                  v2 Report                 TO_EX({})

6.3.  Interoperation with MLDv1

   LW-MLDv2 hosts and routers MUST interoperate with hosts and routers
   running MLDv1.  The method is the same as described in Section 6.2.
   The difference is that when an LW-MLDv2 router has a MLDv1 listener
   on its network, it translates the following MLDv1 messages to their
   LW-MLDv2 equivalents:

                 MLDv1 Message         LW-MLDv2 Equivalent
                 -------------         -------------------

                   Report                  TO_EX({})

                   Done                    TO_IN({})

7.  Implementation Considerations

   The lightweight protocols require no additional procedure for the
   implementation of the related protocols or systems, e.g., IGMP/MLD
   snooping, multicast routing protocol, and operation of application
   sockets, while the processing loads on the switches and routers that
   run IGMPv3/MLDv2 (snooping) and multicast routing protocols may be
   greatly decreased.

7.1.  Implementation of Source-Specific Multicast

   [8] specifies the requirements for the implementation of Source-
   Specific Multicast (SSM) on IGMPv3/MLDv2 hosts and routers.  The
   lightweight protocol follows the same rules as given in [8] except
   for the change of the message types due to the simplification.

   An LW-IGMPv3/LW-MLDv2 host should not invoke (*,G) join (i.e.,
   TO_EX({})) and (*,G) leave (i.e., TO_IN({})) for applications whose
   multicast addresses are in the SSM address range.  An upstream LW-
   IGMPv3/LW-MLDv2 router MUST NOT establish forwarding state and MAY
   log an error on reception of them as described in [7].

7.2.  Implementation of Multicast Source Filter (MSF) APIs

   [9] defines the following Multicast Source Filter (MSF) APIs: (1)
   IPv4 Basic MSF APIs, (2) IPv4 Advanced MSF APIs, (3) Protocol-
   Independent Basic MSF APIs, and (4) Protocol-Independent Advanced MSF
   APIs.

   According to the MSF API definition, an LW-IGMPv3 host should
   implement either the IPv4 Basic MSF API or the Protocol-Independent
   Basic MSF API, and an LW-MLDv2 host should implement the Protocol-
   Independent Basic MSF API.  Other APIs, IPv4 Advanced MSF API and
   Protocol-Independent Advanced MSF API, are optional to implement in
   an LW-IGMPv3/LW-MLDv2 host.

8.  Security Considerations

   The security considerations are the same as that of the full version
   of IGMPv3/MLDv2.

9.  Acknowledgements

   The authors would like to thank MBONED and MAGMA working group
   members.  Special thanks is given to Marshall Eubanks, Guo Feng, Mark
   Fine, Alfred Hoenes, Prashant Jhingran, Bharat Joshi, Guo Tao, Wang
   Wendong, and Gong Xiangyang for their valuable suggestions and
   comments on this document.

10.  References

10.1.  Normative References

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

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

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

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

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

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

   [7]  Holbrook, H. and B. Cain, "Source-Specific Multicast for IP",
        RFC 4607, August 2006.

   [8]  Holbrook, H., Cain, B., and B. Haberman, "Using Internet Group
        Management Protocol Version 3 (IGMPv3) and Multicast Listener
        Discovery Protocol Version 2 (MLDv2) for Source-Specific
        Multicast", RFC 4604, August 2006.

10.2.  Informative References

   [9]  Thaler, D., Fenner, B., and B. Quinn, "Socket Interface
        Extensions for Multicast Source Filters", RFC 3678,
        January 2004.

Authors' Addresses

   Hui Liu
   Huawei Technologies Co., Ltd.
   Huawei Bld., No.3 Xinxi Rd.
   Shang-Di Information Industry Base
   Hai-Dian Distinct, Beijing  100085
   China

   EMail: Liuhui47967@huawei.com


   Wei Cao
   Huawei Technologies Co., Ltd.
   Huawei Bld., No.3 Xinxi Rd.
   Shang-Di Information Industry Base
   Hai-Dian Distinct, Beijing  100085
   China

   EMail: caowayne@huawei.com


   Hitoshi Asaeda
   Keio University
   Graduate School of Media and Governance
   5322 Endo
   Fujisawa, Kanagawa  252-8520
   Japan

   EMail: asaeda@wide.ad.jp

ISO Plain Language

On this page
PROBLEMIGMPv3 and MLDv2 let a host name the exact sources it wants from a multicast group. The cost is a filter mode with two settings, extra report record types and router state that changes often.
MECHANISMThe lightweight versions drop the EXCLUDE filter mode with a named source, keep only four report record types, and let the router keep one group timer and a list of source timers instead of a filter mode.
STATUS TODAYIt is a Proposed Standard from February 2010 that has not been obsoleted or updated. The message formats are unchanged, so lightweight and full implementations can sit on the same network.

§1Introduction

IGMP version 3, defined in RFC 3376, and MLD version 2, defined in RFC 3810, add source filtering that the earlier versions IGMPv1, IGMPv2 and MLDv1 do not have. A host running IGMPv3 or MLDv2 can tell its upstream router which group it wants to join by saying which sources it does or does not intend to receive multicast traffic from. In the other direction, a multicast router can learn which sources are of interest, and which are not, for a particular multicast address, and uses that information when forwarding multicast data packets.

That source filtering is built on two filter modes. If a host wants to receive from specific sources it sends a report with the filter mode set to INCLUDE. If it does not want to receive from some sources it sends a report with the filter mode set to EXCLUDE. A source list for the given sources is included in the Report message. A multicast router also uses the two filter modes when it processes those reports: it manages the requested group and source addresses and keeps group timers and source timers to maintain the forwarding state of the desired groups and sources under a given filter mode.

Those factors correlate with each other, so the rules become relatively complex, and the interface states could be changed frequently. The RFC's argument for simplifying is practical: applications do not often use EXCLUDE mode to block sources, because a user or application usually wants to specify the desired source addresses rather than the undesired ones. Even when a user explicitly refuses traffic from some sources in a group, other users on the same shared network may want those sources, and the traffic is forwarded to the network anyway. Blocking sources is generally unnecessary.

This RFC therefore proposes simplified versions of IGMPv3 and MLDv2, called Lightweight IGMPv3 and Lightweight MLDv2, or LW-IGMPv3 and LW-MLDv2. They are subsets of the standard versions. They support both Any-Source Multicast and Source-Specific Multicast communication without a filtering function that blocks sources, and the operations performed by hosts and routers, including switches that perform IGMPv3 or MLDv2 snooping, are simplified. Because the lightweight versions are fully compatible with the full ones, a host or router that has implemented the full version needs no change to cooperate with lightweight hosts or routers.

Multicast is one-to-many delivery: the sender sends once and every receiver gets the copy. IGMPv3 and MLDv2 let a receiver say which senders it wants. This RFC keeps that ability but removes the part almost nobody uses, which is naming senders to refuse.

§2The Four Ways to Join a Group

The RFC defines four join operations, and the difference between them is which senders the receiver ends up accepting.

A (*,G) join is triggered by a host that wants to join a group G. The host receives from all sources sending to group G. This is typical of Any-Source Multicast communication. An (S,G) join is triggered by a host that wants to join a group G and specifies a desired source S. The host receives traffic only from source S sending to group G.

An INCLUDE (S,G) join is the same as an (S,G) join: the host joins group G under INCLUDE filter mode and names source S as desired. An EXCLUDE (*,G) join is the same as a (*,G) join: the host joins group G under EXCLUDE filter mode. An EXCLUDE (S,G) join is a host joining group G under EXCLUDE filter mode while naming source S as undesired. This last operation is not supported by LW-IGMPv3 and LW-MLDv2.

In short, the lightweight protocols keep both ways of naming a sender you want, and both ways of joining without naming anyone, but drop the single way of naming a sender you do not want.

A receiver can ask for a group in two ways: take traffic from anyone sending to that group, or take traffic only from one named sender. The lightweight protocols allow both, and drop the third option of naming a sender to avoid.

§3The Simplification Method

The stated principle is to simplify the host's and the router's behavior as much as possible to improve efficiency, while guaranteeing interoperability with the full versions and introducing no side effects on applications. For convenience the RFC discusses IGMPv3, since MLDv2 inherits the same source filtering mechanism, but it also gives MLDv2's unique specifications where they differ.

Group members. LW-IGMPv3 inherits the service interface model of IGMPv3, which is the call IPMulticastListen(socket, interface, multicast-address, filter-mode, source-list). In the lightweight protocol, INCLUDE mode on the host side has the same use as the full version for an INCLUDE (S,G) join, while EXCLUDE mode is preserved only for excluding null source lists. A null source list denotes a (*,G) join, as used by IGMPv2, IGMPv1 and MLDv1. The one operation that disappears is the EXCLUDE (S,G) join.

Multicast routers. In IGMPv3 the router filter mode optimizes the state description of a group membership. As a rule, once a member report is in EXCLUDE mode the router filter mode for the group is set to EXCLUDE, and when all systems stop sending EXCLUDE mode reports the filter mode may move back to INCLUDE. The group timer identifies that transition.

In LW-IGMPv3, hosts primarily send INCLUDE requests and can also request an EXCLUDE (*,G) join, which the router can interpret as a request to include all sources. Without the more general form of EXCLUDE requests, the router no longer needs to maintain the EXCLUDE filter mode, and its state model reduces to a multicast address, a group timer and a set of source records. The group timer is kept to represent a (*,G) join: when the router receives a (*,G) join it sets its group timer and keeps the source list for sources named in previously received source records, and when the group timer expires the router may change to receiving the listed sources only. The definition of a source record is the same as in the full version.

The router no longer has to remember whether a group is in one of two modes. It keeps a timer for the group as a whole and a timer per sender, and that is enough to decide what to forward.

§4What Group Members Send

LW-IGMPv3 uses the same two sets of messages as the full version, Query and Report. There is no difference in the definition or use of the Query message. The report types are reduced, because the operation that triggers an EXCLUDE (S,G) join is omitted.

Full IGMPv3 defines three group record types. The Current-State Record is denoted by MODE_IS_INCLUDE, referred to as IS_IN, or MODE_IS_EXCLUDE, referred to as IS_EX. The Filter-Mode-Change Record is denoted by CHANGE_TO_INCLUDE_MODE, referred to as TO_IN, or CHANGE_TO_EXCLUDE_MODE, referred to as TO_EX. The Source-List-Change Record is denoted by ALLOW_NEW_SOURCES, referred to as ALLOW, or BLOCK_OLD_SOURCES, referred to as BLOCK. LW-IGMPv3 inherits the actions on a change of interface state and on the reception of a query, but the IS_IN and IS_EX record types are eliminated and Current-State Records are replaced by other records.

Change of interface state. When the state of an interface of a group member host changes, a State-Change Report for that interface is transmitted immediately from that interface. The type and contents of the group records in that report are worked out by comparing the filter mode and source list for the affected multicast address before and after the change. The requirements for the computation are the same as for the full version, but the rules are simpler because there are fewer message types. Moving from INCLUDE with source list A to INCLUDE with source list B sends ALLOW(B-A) and BLOCK(A-B). Moving from INCLUDE with source list A to EXCLUDE with an empty source list sends TO_EX({}), and so does moving from INCLUDE with an empty source list to EXCLUDE with an empty source list. Moving from EXCLUDE with an empty source list to INCLUDE with source list B sends TO_IN(B).

To cover the possibility of the State-Change Report being missed by one or more multicast routers, it is retransmitted the Robustness Variable minus one more times, at intervals chosen at random from the range zero to the Unsolicited Report Interval.

Reception of a query. As in the full version, a lightweight host does not answer a query immediately. It delays its response by a random amount of time bounded by the Max Resp Time derived from the Max Resp Code in the received Query message. The host may receive a variety of queries on different interfaces and of different kinds, such as General Queries, Group-Specific Queries and Group-and-Source-Specific Queries, each of which may require its own delayed response. Before scheduling a response the host must consider previously scheduled pending responses and in many cases schedule a combined response, so it must maintain a timer per interface for scheduling responses to General Queries, a per-group and interface timer for scheduling responses to Group-Specific and Group-and-Source-Specific Queries, and a per-group and interface list of sources to be reported in the response to a Group-and-Source-Specific Query.

Record types. The table below shows how the full and lightweight versions line up. The letter x stands for a non-empty source address list and ({}) stands for an empty one. The lightweight protocols do not use EXCLUDE filter mode with a non-empty source list, so the operations that would need it are marked as not applicable.

A host still sends the same two kinds of message: a query comes from the router and a report goes back. What changes is that the host now only uses four kinds of record inside a report, and the rules for working out which one to send are shorter.

How the full and lightweight group record types line up
Full IGMPv3 recordLW-IGMPv3 recordOperation it reports
IS_EX({})TO_EX({})Query response for a (*,G) join
IS_EX(x) THIS RFCNot usedQuery response for an EXCLUDE (x,G) join
IS_IN(x) THIS RFCALLOW(x)Query response for an INCLUDE (x,G) join
ALLOW(x)ALLOW(x)INCLUDE (x,G) join
BLOCK(x)BLOCK(x)INCLUDE (x,G) leave
TO_IN(x)TO_IN(x)Change to an INCLUDE (x,G) join
TO_IN({})TO_IN({})(*,G) leave
TO_EX(x) THIS RFCNot usedChange to an EXCLUDE (x,G) join
TO_EX({})TO_EX({})(*,G) join

§5What Multicast Routers Keep

The major difference between the full and the lightweight protocols on the router side is that in the lightweight version the filter mode is discarded and the function of the group timer is redefined. The states a lightweight router maintains are reduced and the protocol operation is greatly simplified.

Timers. In both the lightweight and the full IGMPv3 routers a source timer is kept for each source record and is updated when the source appears in a received report. It indicates the validity of the source and has to be consulted when the router takes its forwarding decision. The group timer, which in the full IGMPv3 is used for moving the router's filter mode from EXCLUDE to INCLUDE, is redefined in the lightweight protocols to identify the non-source-specific receiving state maintained for a (*,G) join. Once a group record of TO_EX({}) is received, the group timer is set to represent this (*,G) group join. When the group timer expires, there are no more listeners on the attached network for this (*,G) group. If at that moment there are unexpired sources, meaning source timers greater than zero, the router changes to receiving traffic for those sources only.

There is one difference from the full version in how the timers interact. In the full version, if a source timer expires while the router filter mode is EXCLUDE, its source record is not deleted until the group timer expires, because the record is needed to indicate undesired sources. In the lightweight version there is no need to keep such records for blocking specific sources, so an expired source timer means the source record is deleted immediately, without waiting for the group timer to time out.

Forwarding rules. A full version multicast router consults IGMPv3 state information when it decides whether to forward a datagram from a source, based on the router filter mode and the source timer. In LW-IGMPv3, because there is no filter mode, the group timer and the source timer are enough. The table below lists the suggestion the lightweight protocol gives to the routing protocols.

Receiving records. When the router receives Current-State Records it resets its group or source timers and updates its source list within the group. In the source-specific group reception state, where the group timer is zero and a source timer is greater than zero, the source list holds the sources whose traffic the router will forward. In the non-source-specific group reception state, where the group timer is greater than zero, the source list remembers the valid sources to receive traffic from after the router moves to source-specific reception.

Although the lightweight host only sends a subset of the messages of the full version, the lightweight router should be able to process as many messages as possible so that it stays compatible with a full version host. If the report type is IS_EX(x) with a non-empty source list, the router treats it as the same type of report with an empty source list. When the router receives an IS_IN report it appends the reported source addresses to the previous source list, with their source timers set to the Group Membership Interval. On receiving an IS_EX({}) report, the router sets the non-source-specific receiving state by resetting the group timer value and keeps the previous source list unmodified.

On receiving Source-List-Change and Filter-Mode-Change Records the router resets its group and source timers, updates its source list within the group, or triggers group queries. The queries are sent for the sources that are requested to be no longer forwarded to the group. If the report type is TO_EX(x) with a non-empty source list the router treats it as the same type with an empty source list. An ALLOW(B) report appends B to the source list and sets the source timers to the Group Membership Interval. A BLOCK(B) report leaves the source list unchanged and sends a group query for the sources in A*B, the sources that were in the list and are now being blocked. A TO_IN(B) report appends B to the source list, sets the source timers to the Group Membership Interval and sends a group query for A-B. When the group timer is greater than zero it also sends a general group query. A TO_EX({}) report leaves the source list unchanged and sets the group timer to the Group Membership Interval.

The router keeps two kinds of timer. One runs for the whole group and means there are still listeners who want traffic from anyone. One runs per sender and means that sender is still wanted. When the group timer runs out, the router forwards only from the senders whose own timers are still running.

Forwarding suggestions the lightweight router gives to the routing protocols
  • G_Timer == 0, S_Timer > 0Forward the source — Suggest forwarding traffic from the source.
  • G_Timer == 0, S_Timer == 0Stop forwarding — Suggest stopping forwarding traffic from the source and removing the source record. If no source records are left for the group, delete the group record.
  • G_Timer == 0, no source elementsDo not forward — Suggest not forwarding traffic from the source.
  • G_Timer > 0Forward the source — Suggest forwarding traffic from the source, whether or not a source timer is running.

§6Working with Other Versions

Lightweight hosts and routers must interoperate with hosts and routers running the full versions, and must interoperate gracefully with hosts and routers running IGMPv1, IGMPv2 or MLDv1. The lightweight protocols make no change to the message formats of the group Query and Report messages that the full versions use.

Hosts. A lightweight host's compatibility mode is held in the Host Compatibility Mode variable, which can be IGMPv1, IGMPv2 or IGMPv3. When a lightweight host behaves on its interface as LW-IGMPv3, the Host Compatibility Mode of that interface is set to IGMPv3 and the host sends a subset of the IGMPv3 Report messages, which a multicast router running the full or the lightweight protocol on the same LAN can recognize. The Host Compatibility Mode of an interface is set to IGMPv2, and its IGMPv2 Querier Present timer is set to the Older Version Querier Present Timeout seconds, whenever an IGMPv2 General Query is received on that interface. It is set to IGMPv1 in the same way when an IGMPv1 Membership Query is received.

In the presence of older version group members, a lightweight host may allow its Report message to be suppressed by an IGMPv1 or IGMPv2 membership report. Because transmitting IGMPv1 or IGMPv2 packets reduces the capability of the lightweight system, and this can act as a protection mechanism, the choice to enable or disable backward compatibility may be configurable.

Routers. A lightweight router does not process IS_EX(x) and TO_EX(x) reports directly. When it receives them from full version hosts it must translate them internally to IS_EX({}) and TO_EX({}) respectively and behave accordingly. A lightweight router placed on a network where some routers have not been upgraded to IGMPv3 behaves exactly as a full IGMPv3 router does in that situation.

A full IGMPv3 router keeps a Group Compatibility Mode per group record, whose value is IGMPv1, IGMPv2 or IGMPv3, to indicate which version of the IGMP protocol applies to that group. The value is set according to the version of the received reports. When the Group Compatibility Mode is IGMPv3, the lightweight router performs the lightweight protocol for that group. When it is IGMPv2, the router translates an IGMPv2 Report to TO_EX({}) and an IGMPv2 Leave to TO_IN({}). When it is IGMPv1, it translates an IGMPv1 Report and an IGMPv2 Report to TO_EX({}). For MLDv1 the method is the same, and an MLDv1 Report translates to TO_EX({}) and an MLDv1 Done to TO_IN({}).

The message formats do not change, so a lightweight device and a full device can talk to each other and to the same router. Where an older version sends a message the lightweight protocol does not have, the router rewrites it into the equivalent lightweight record.

Older messages rewritten into their lightweight equivalents
Message receivedLightweight equivalent
IGMPv1 ReportTO_EX({})
IGMPv2 ReportTO_EX({})
IGMPv2 LeaveTO_IN({})
MLDv1 ReportTO_EX({})
MLDv1 DoneTO_IN({})

§7Implementation Notes

The lightweight protocols require no additional procedure for the implementation of the related protocols or systems, such as IGMP and MLD snooping, the multicast routing protocol, and the operation of application sockets, while the processing load on the switches and routers that run IGMPv3 or MLDv2 snooping and the multicast routing protocols may be greatly decreased.

For Source-Specific Multicast, the lightweight protocol follows the same rules as RFC 4604 except for the change of message types due to the simplification. A lightweight host should not invoke a (*,G) join, that is TO_EX({}), or a (*,G) leave, that is TO_IN({}), for applications whose multicast addresses are in the SSM address range. An upstream lightweight router must not establish forwarding state on receiving them and may log an error.

For the Multicast Source Filter APIs, which are defined in RFC 3678, a lightweight IGMPv3 host should implement either the IPv4 Basic MSF API or the Protocol-Independent Basic MSF API, and a lightweight MLDv2 host should implement the Protocol-Independent Basic MSF API. The IPv4 Advanced MSF API and the Protocol-Independent Advanced MSF API are optional.

Nothing else in a switch or router has to change to run this. The rule that matters for applications is that a host should not ask for a whole group by name when the address is in the source-specific range, because the upstream router will refuse to set up forwarding state for it.

§8Security Considerations

The RFC states that the security considerations are the same as those of the full version of IGMPv3 and MLDv2, and adds nothing of its own.

This RFC adds no security rules. What applies is what already applied to the full IGMPv3 and MLDv2 protocols.

§9References