<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC2119 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC8174 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
<!ENTITY RFC9251 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.9251.xml">
<!ENTITY RFC2236 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2236.xml">
<!ENTITY RFC3376 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3376.xml">
<!ENTITY RFC3810 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3810.xml">
<!ENTITY I-D.ietf-bess-rfc7432bis SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-bess-rfc7432bis.xml">
<!ENTITY RFC7432 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7432.xml">
<!ENTITY I-D.ietf-bess-evpn-fast-df-recovery SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-bess-evpn-fast-df-recovery.xml">
]>
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="std" docName="draft-rd-bess-evpn-mcast-leave-update-00"
     ipr="trust200902" submissionType="IETF">
  <!--Generated by id2xml 1.5.0 on 2019-12-01T14:22:31Z -->

  <?rfc strict="yes"?>

  <?rfc compact="yes"?>

  <?rfc subcompact="no"?>

  <?rfc symrefs="yes"?>

  <?rfc sortrefs="no"?>

  <?rfc text-list-symbols="o-*+"?>

  <?rfc toc="yes"?>

  <front>
    <title abbrev="EVPN Multicast Leave Synch Update">Ethernet VPN (EVPN)
    Multicast Leave Synch Route Update</title>

    <author fullname="J. Rabadan" initials="J." role="editor"
            surname="Rabadan">
      <organization>Nokia</organization>

      <address>
        <postal>
          <street>520 Almanor Avenue</street>

          <city>Sunnyvale</city>

          <region>CA</region>

          <code>94085</code>

          <country>USA</country>
        </postal>

        <email>jorge.rabadan@nokia.com</email>
      </address>
    </author>

    <author fullname="O. Dornon" initials="O." surname="Dornon">
      <organization>Nokia</organization>

      <address>
        <postal>
          <street/>

          <city>Antwerp</city>

          <region/>

          <code/>

          <country>Belgium</country>
        </postal>

        <email>olivier.dornon@nokia.com</email>
      </address>
    </author>

    <date day="8" month="July" year="2024"/>

    <workgroup>BESS Workgroup</workgroup>

    <abstract>
      <t>The Internet Group Management Protocol (IGMP) and Multicast Listener
      Discovery (MLD) Proxies for Ethernet VPN (EVPN) specification describes
      the procedures to synchronize IGMP/MLD membership report and leave group
      states in all the PEs that are attached to the same Ethernet Segment. In
      particular, the Multicast Leave Synch route described in the same
      specification, synchronizes the leave procedures on all the members of
      the Ethernet Segment, for a multicast group and for an amount of time
      (the Maximum Response Time). The use of the Maximum Response Time may be
      different depending on whether the local state was created by IGMPv2,
      IGMPv3 or MLDv2. In addition, the Maximum Response Time advertised in
      the Multicast Leave Synch route needs to account for the time that it
      takes for the route to be propagated in the network, which might not be
      easy to predict. This document clarifies the use of the Maximum Response
      Time and updates the procedures for the Multicast Leave Synch route.</t>
    </abstract>
  </front>

  <middle>
    <section anchor="sect-1" title="Introduction">
      <t>The Internet Group Management Protocol (IGMP) and Multicast Listener
      Discovery (MLD) Proxies for Ethernet VPN (EVPN) specification <xref
      target="RFC9251"/> describes the procedures to synchronize IGMP/MLD
      membership report and leave group states in all the PEs that are
      attached to the same Ethernet Segment. In particular, the Multicast
      Leave Synch route described in the same specification, synchronizes the
      leave procedures on all the members of the Ethernet Segment, for a
      multicast group and for an amount of time (the Maximum Response Time).
      The Maximum Response Time is defined as the duration of the (x,G) leave
      group synchronization procedure.</t>

      <t>The use of the Maximum Response Time may be different depending on
      whether the local state was created by IGMPv2, IGMPv3 or MLDv2. In
      addition, the Maximum Response Time advertised in the Multicast Leave
      Synch route needs to account for the time that it takes for the route to
      be propagated in the network, which might not be easy to predict. This
      document clarifies the use of the Maximum Response Time and updates the
      procedures for the Multicast Leave Synch route.</t>
    </section>

    <section anchor="sect-2" title="Conventions used in this document">
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
      "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
      "OPTIONAL" in this document are to be interpreted as described in BCP 14
      <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when,
      they appear in all capitals, as shown here.</t>
    </section>

    <section anchor="sect-3" title="Terminology">
      <t>This section summarizes the terminology that is used throughout the
      rest of the document.</t>

      <t><list style="symbols">
          <t>DF and non-DF: Designated Forwarder and non-Designated
          Forwarder</t>

          <t>SMET: Selective Multicast Ethernet Tag route</t>

          <t>LMQC and LMQI: Last Member Query Count and Last Member Query
          Interval</t>
        </list></t>
    </section>

    <section anchor="sect-4"
             title="IGMP/MLD Leave Group Synchronization Issues">
      <t>The IGMP/MLD Leave Group Synchronization procedures are described in
      <xref target="RFC9251"/> section 6.2. A summary of the procedures
      follows:<list style="symbols">
          <t>On the local multihomed PE, i.e., the PE receiving a local
          IGMP/MLD leave message:<list style="numbers">
              <t>The Maximum Response Time is computed as the product of the
              configured Last Member Query Count (LMQC) and the Last Member
              Query Interval (LMQI) plus a configured delta (D) corresponding
              to the time it takes for a BGP advertisement to propagate
              between the PEs attached to the multihomed ES. The Maximum
              Response Time is then represented by the formula: Maximum
              Response Time = (LMQC * LMQI) + D</t>

              <t>The Maximum Response Time is started.</t>

              <t>A number of Group Specific Query (x,G) messages (given by
              LMQC) is locally sent at a fixed interval given by the LMQI.
              <xref target="RFC9251"/> indicates that this step is done as per
              section 3 of <xref target="RFC2236"/>. However, if the state was
              created by IGMPv3 or MLDv2, the leave procedures in <xref
              target="RFC3376"/> and <xref target="RFC3810"/> respectively,
              are followed.</t>

              <t>The IGMP/MLD Leave Group Synchronization route for that
              (ES,BD) and (x,G) is advertised containing the Maximum Response
              Time, and withdrawn when the Maximum Response Time expires.</t>
            </list></t>

          <t>On the remote multihomed PE, i.e., the PE receiving an IGMP Leave
          Group Synch route:<list style="numbers">
              <t>The route is installed and the received Maximum Response Time
              started for (x,G).</t>
            </list></t>

          <t>On both, the local and remote multihomed PEs:<list
              style="numbers">
              <t>If the local PE receives an IGMP/MLD report for (x,G) before
              the expiration of the Maximum Response Time, the PE advertises
              an IGMP/MLD Membership Report Synch route for (x,G), creates the
              local state for (x,G) if not created already, and advertises the
              SMET route for (x,G) if it is the Ethernet Segment DF and the
              SMET route is not advertised yet.</t>

              <t>If the remote PE receives an IGMP/MLD Membership Report Synch
              route for (x,G) before the Maximum Response Time expires, the PE
              creates the state for (x,G) and advertises the SMET route for
              (x,G) if it owns the DF role in the Ethernet Segment.</t>

              <t>After the expiration of the Maximum Response Time, both, the
              local and the remote multihomed PEs clean up the state for (x,G)
              and withdraw the routes related to the state (SMET, IGMP/MLD
              Membership Report Synch and Leave Synch routes) if they
              advertised them previously.</t>
            </list></t>
        </list></t>

      <t>The above procedure described in <xref target="RFC9251"/> has the
      following issues:<list style="numbers">
          <t>Based on the text in section 6.2, the advertised IGMP/MLD Leave
          Group Synchronization route conveys the Maximum Response Time in
          units of 1/10 seconds, up to a maximum of 255. The text does not
          clarify if the Maximum Response Time value advertised in the NLRI is
          computed as the local (LMQC * LMQI), or the local Maximum Response
          Time in the Group-Specific Query messages for IGMPv2/IGMPv3 or
          MLDv2. This aspect has to be clarified without ambiguity. </t>

          <t>In addition, the local values of the Maximum Response Time for
          IGMPv2, IGMPv3 or MLDv2 can easily exceed 255 based on the relevant
          specifications, as follows:<list style="empty">
              <t>For IGMPv2, as per <xref target="RFC2236"/>, "when a Querier
              receives a Leave Group message for a group that has group
              members on the reception interface, it sends [Last Member Query
              Count] Group-Specific Queries every [Last Member Query Interval]
              to the group being left. These Group-Specific Queries have their
              Max Response time set to [Last Member Query Interval]. If no
              Reports are received after the response time of the last query
              expires, the routers assume that the group has no local members,
              as above". As a result, if (LMQC * LMQI) is encoded in the Leave
              Group Synchronization route, the product of the configured
              IGMPv2 LMQI and LMQC must be less that 255 units of 1/10 second.
              Note that the LMQI can be in the range 0-255, hence, e.g.,: if
              the LMQC is 2, the LMQI can only have a maximum of 127 units of
              1/10 second. </t>

              <t>For IGMPv3, as per <xref target="RFC3376"/>, the LMQI value
              can be even larger than in case of IGMPv2. This is due to the
              LMQI being encoded in the Max Resp Code field of the Query
              message that can represent values in a floating-point format
              that allows exponential values. However, an implementation of
              IGMPv3 that uses <xref target="RFC9251"/> must limit the
              configured LMQI so that the result of the product (LMQC * LMQI)
              is less than 255 units of 1/10 second.</t>

              <t>A similar issue exists in <xref target="RFC3810"/>, where the
              LMQI (referred to as the Last Listener Query Interval in MLDv2)
              can support a very large value in the Maximum Response Code
              field of the Query message. In this case, the implementation
              must also limit the configured value of the LMQI so that the
              result of the product (LMQC * LMQI) is less than 255 units of
              1/10 second.</t>
            </list></t>

          <t>Another issue is about the delta time D. The delta (D) time
          corresponding to the time it takes for a BGP advertisement to
          propagate between the PEs attached to the multihomed ES, is
          accounted in the computed Maximum Response Time in <xref
          target="RFC9251"/>. This value may vary and it is assumed to be set
          to the same value by configuration on all the PEs attached to the
          Ethernet Segment, but configuring a value that is closed to the BGP
          propagation time and making sure this value is the same across all
          PEs of the ES might be a challenge when different implementations
          work together in the same Ethernet Segment.</t>
        </list>The above issues are described as per a literal interpretation
      of <xref target="RFC9251"/> made by this document, however,
      implementations may have used of the advertised Maximum Response Time in
      different ways in order to overcome the above two issues. The goal of
      this document is to bring awareness of the potential interoperability
      issues that the IGMP/MLD Leave Group Synchronization route may have and
      update <xref target="RFC9251"/> if necessary.</t>
    </section>

    <section anchor="sect-5"
             title="IGMP/MLD Leave Group Synchronization Solutions">
      <t>Some potential solutions to the issues described in <xref
      target="sect-4"/> follow:<list style="numbers">
          <t>In order to guarantee interoperability with the use of the
          Maximum Response Time, a potential update to <xref
          target="RFC9251"/> section 6.2 is to clarify that the advertised
          Maximum Response Time is the Last Member Query Interval (for IGMPv2
          and IGMPv3) as in <xref target="RFC2236"/> and <xref
          target="RFC3376"/>, and the Last Listener Query Interval (for MLDv2)
          as in <xref target="RFC3810"/>, but always with a maximum value of
          255 units of 1/10 second. The advertised Maximum Response Time does
          NOT include the LMQC and D time, which are accounted in the
          computation of the local Maximum Response Time. The LMQC and D (BGP
          propagation delta time) values MUST be set (by configuration) to the
          same values in all the PEs attached to the Ethernet Segment.</t>

          <t>In addition, the configuration of the D value may be skipped if
          the PE advertising the Multicast Leave Synch route includes
          information in the route about when the Leave procedure started for
          the (x,G) and all the PEs in the Ethernet Segment are
          time-synchronized. This timing information is encoded in the Service
          Carving Timestamp BGP extended community (section 2.1 of <xref
          target="I-D.ietf-bess-evpn-fast-df-recovery"/>). Upon receiving the
          Leave Synch route, a PE can compare the time with the local one and
          compute an accurate local Maximum Response Time that accounts for
          the BGP propagation time. This avoids the need to configure a D time
          that has to be equal in all PEs of the Ethernet Segment.</t>
        </list></t>
    </section>

    <section anchor="sect-11" title="Security Considerations">
      <t>Will be added.</t>
    </section>

    <section anchor="sect-12" title="IANA Considerations">
      <t>None.</t>
    </section>

    <section anchor="sect-13" title="Acknowledgments">
      <t/>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      &RFC2119;

      &RFC8174;

      &RFC9251;
    </references>

    <references title="Informative References">
      &RFC2236;

      &RFC3376;

      &RFC3810;

      &I-D.ietf-bess-evpn-fast-df-recovery;
    </references>
  </back>
</rfc>
