<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="std" consensus="true" docName="draft-ietf-bess-mvpn-msdp-sa-interoperation-08" indexInclude="true" ipr="trust200902" number="9081" prepTime="2021-07-22T21:52:42" scripts="Common,Latin" sortRefs="true" submissionType="IETF" symRefs="true" tocDepth="3" tocInclude="true" updates="6514" xml:lang="en">
  <link href="https://datatracker.ietf.org/doc/draft-ietf-bess-mvpn-msdp-sa-interoperation-08" rel="prev"/>
  <link href="https://dx.doi.org/10.17487/rfc9081" rel="alternate"/>
  <link href="urn:issn:2070-1721" rel="alternate"/>
  <front>
    <title abbrev="MVPN and MSDP SA Interoperation">Interoperation between Multicast Virtual Private Network (MVPN) and Multicast Source Directory Protocol (MSDP) Source-Active Routes</title>
    <seriesInfo name="RFC" value="9081" stream="IETF"/>
    <author fullname="Zhaohui Zhang" initials="Z." surname="Zhang">
      <organization showOnFrontPage="true">Juniper Networks</organization>
      <address>
        <email>zzhang@juniper.net</email>
      </address>
    </author>
    <author fullname="Lenny Giuliano" initials="L." surname="Giuliano">
      <organization showOnFrontPage="true">Juniper Networks</organization>
      <address>
        <email>lenny@juniper.net</email>
      </address>
    </author>
    <date month="07" year="2021"/>
    <workgroup>BESS</workgroup>
    <abstract pn="section-abstract">
      <t indent="0" pn="section-abstract-1">This document specifies the procedures for interoperation between
         Multicast Virtual Private Network (MVPN) Source-Active (SA) routes and
       customer Multicast Source Discovery Protocol (MSDP) SA routes,
         which is useful for MVPN provider networks offering services to
         customers with an existing MSDP infrastructure. 
	 Without the procedures
         described in this document, VPN-specific MSDP sessions are required
         among the Provider Edge (PE) routers that are customer MSDP peers. This
	 document updates RFC 6514.
      </t>
    </abstract>
    <boilerplate>
      <section anchor="status-of-memo" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.1">
        <name slugifiedName="name-status-of-this-memo">Status of This Memo</name>
        <t indent="0" pn="section-boilerplate.1-1">
            This is an Internet Standards Track document.
        </t>
        <t indent="0" pn="section-boilerplate.1-2">
            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 7841.
        </t>
        <t indent="0" pn="section-boilerplate.1-3">
            Information about the current status of this document, any
            errata, and how to provide feedback on it may be obtained at
            <eref target="https://www.rfc-editor.org/info/rfc9081" brackets="none"/>.
        </t>
      </section>
      <section anchor="copyright" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.2">
        <name slugifiedName="name-copyright-notice">Copyright Notice</name>
        <t indent="0" pn="section-boilerplate.2-1">
            Copyright (c) 2021 IETF Trust and the persons identified as the
            document authors. All rights reserved.
        </t>
        <t indent="0" pn="section-boilerplate.2-2">
            This document is subject to BCP 78 and the IETF Trust's Legal
            Provisions Relating to IETF Documents
            (<eref target="https://trustee.ietf.org/license-info" brackets="none"/>) 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.
        </t>
      </section>
    </boilerplate>
    <toc>
      <section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" pn="section-toc.1">
        <name slugifiedName="name-table-of-contents">Table of Contents</name>
        <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1">
          <li pn="section-toc.1-1.1">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.1"><xref derivedContent="1" format="counter" sectionFormat="of" target="section-1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-introduction">Introduction</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.1.2">
              <li pn="section-toc.1-1.1.2.1">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.2.1.1"><xref derivedContent="1.1" format="counter" sectionFormat="of" target="section-1.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-mvpn-rpt-spt-mode">MVPN RPT-SPT Mode</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.2">
            <t indent="0" pn="section-toc.1-1.2.1"><xref derivedContent="2" format="counter" sectionFormat="of" target="section-2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-terminology">Terminology</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.2.2">
              <li pn="section-toc.1-1.2.2.1">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.2.2.1.1"><xref derivedContent="2.1" format="counter" sectionFormat="of" target="section-2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-requirements-language">Requirements Language</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.3">
            <t indent="0" pn="section-toc.1-1.3.1"><xref derivedContent="3" format="counter" sectionFormat="of" target="section-3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-specification">Specification</xref></t>
          </li>
          <li pn="section-toc.1-1.4">
            <t indent="0" pn="section-toc.1-1.4.1"><xref derivedContent="4" format="counter" sectionFormat="of" target="section-4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations">Security Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.5">
            <t indent="0" pn="section-toc.1-1.5.1"><xref derivedContent="5" format="counter" sectionFormat="of" target="section-5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-considerations">IANA Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.6">
            <t indent="0" pn="section-toc.1-1.6.1"><xref derivedContent="6" format="counter" sectionFormat="of" target="section-6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-references">References</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.6.2">
              <li pn="section-toc.1-1.6.2.1">
                <t indent="0" pn="section-toc.1-1.6.2.1.1"><xref derivedContent="6.1" format="counter" sectionFormat="of" target="section-6.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
              </li>
              <li pn="section-toc.1-1.6.2.2">
                <t indent="0" pn="section-toc.1-1.6.2.2.1"><xref derivedContent="6.2" format="counter" sectionFormat="of" target="section-6.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.7">
            <t indent="0" pn="section-toc.1-1.7.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.a"/><xref derivedContent="" format="title" sectionFormat="of" target="name-acknowledgements">Acknowledgements</xref></t>
          </li>
          <li pn="section-toc.1-1.8">
            <t indent="0" pn="section-toc.1-1.8.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Addresses</xref></t>
          </li>
        </ul>
      </section>
    </toc>
  </front>
  <middle>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-1">
      <name slugifiedName="name-introduction">Introduction</name>
      <t indent="0" pn="section-1-1">Section <xref target="RFC6514" section="14" sectionFormat="bare" format="default" derivedLink="https://rfc-editor.org/rfc/rfc6514#section-14" derivedContent="RFC6514"> "Supporting 
      PIM-SM without Inter-Site Shared C-Trees"</xref> of
       <xref target="RFC6514" format="default" sectionFormat="of" derivedContent="RFC6514"/> specifies the procedures for MVPN PEs to discover (C-S,C-G)
       via MVPN Source-Active A-D routes and then send Source Tree Join (C-S,C-G) C-multicast
       routes towards the ingress PEs to establish shortest path trees (SPTs) for customer Any-Source Multicast (ASM) flows
       for which they have downstream receivers.
       (C-*,C-G) C-multicast routes are not sent among the PEs, so inter-site
       shared C-Trees are not used, and the method is generally referred to as
       "spt-only" mode.
      </t>
      <t indent="0" pn="section-1-2">With this mode, the MVPN Source-Active routes are functionally similar to
       MSDP Source-Active messages. For a VPN,
	   one or more of the PEs, say PE1,
       either acts as a C-RP and learns of (C-S,C-G) via PIM Register messages
       or has MSDP sessions with some MSDP peers and learns of (C-S,C-G) via
       MSDP SA messages. In either case, PE1 will then originate MVPN SA
       routes for other PEs to learn (C-S,C-G).
      </t>
      <t indent="0" pn="section-1-3"><xref target="RFC6514" format="default" sectionFormat="of" derivedContent="RFC6514"/> only specifies that a PE receiving the MVPN SA routes,
       say PE2,  will advertise Source Tree Join (C-S,C-G) C-multicast routes if it has
       corresponding (C-*,C-G) state learnt from its Customer Edge (CE). PE2 may also have MSDP
       sessions for the VPN with other C-RPs at its site, but
       <xref target="RFC6514" format="default" sectionFormat="of" derivedContent="RFC6514"/> does not specify that PE2 advertises MSDP SA messages to those
       MSDP peers for the (C-S,C-G) that it learns via MVPN SA routes. 
       PE2 would need to have an MSDP session with PE1 (that advertised the
       MVPN SA messages) to learn the sources via MSDP SA messages for it to
       advertise the MSDP SA to its local peers. To make things worse, unless
       blocked by policy control, PE2 would in turn advertise MVPN SA routes
       because of those MSDP SA messages that it receives from PE1, which are
       redundant and unnecessary. Also notice that the PE1-PE2 MSDP
       session is VPN specific (i.e., only for a single VPN),
	   while the BGP sessions over which the MVPN
       routes are advertised are not.
      </t>
      <t indent="0" pn="section-1-4">If a PE does advertise MSDP SA messages based on received  MVPN SA
       routes, the VPN-specific MSDP sessions with other PEs are no longer needed.
       Additionally, this MVPN/MSDP SA interoperation has the following
       inherent benefits for a BGP-based solution.
      </t>
      <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-1-5">
        <li pn="section-1-5.1">MSDP SA refreshes are replaced with BGP hard state.
          </li>
        <li pn="section-1-5.2">Route reflectors can be used instead of having peer-to-peer sessions.
          </li>
        <li pn="section-1-5.3">VPN extranet <xref target="RFC2764" format="default" sectionFormat="of" derivedContent="RFC2764"/> mechanisms can be used to propagate (C-S,C-G)
             information across VPNs with flexible policy control.
          </li>
      </ul>
      <t indent="0" pn="section-1-6">While MSDP Source-Active routes contain the 
source, group, and RP addresses of a given multicast flow, MVPN Source-Active 
routes only contain the source and group.  MSDP requires the RP address 
information in order to perform MSDP peer Reverse Path Forwarding (RPF).  Therefore, this document 
describes how to convey the RP address information into the MVPN Source-Active 
route using an Extended Community so this information can be shared 
with an existing MSDP infrastructure.  
      </t>
      <t indent="0" pn="section-1-7">The procedures apply to Global Table Multicast (GTM) <xref target="RFC7716" format="default" sectionFormat="of" derivedContent="RFC7716"/> as well.
      </t>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-1.1">
        <name slugifiedName="name-mvpn-rpt-spt-mode">MVPN RPT-SPT Mode</name>
        <t indent="0" pn="section-1.1-1">For comparison, another method of supporting customer ASM is generally
       referred to as "rpt-spt" mode. Section <xref target="RFC6514" section="13" sectionFormat="bare" format="default" derivedLink="https://rfc-editor.org/rfc/rfc6514#section-13" derivedContent="RFC6514">"Switching from a Shared 
       C-Tree to a Source C-Tree"</xref> of <xref target="RFC6514" format="default" sectionFormat="of" derivedContent="RFC6514"/> specifies the MVPN SA procedures
       for that mode, but those SA routes are a replacement for PIM-ASM
       assert and (s,g,rpt) prune mechanisms, not for source discovery purposes.
       MVPN/MSDP SA interoperation for the "rpt-spt" mode is outside the scope
       of this document. In the rest of the document, the "spt-only" mode is
       assumed.
        </t>
      </section>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-2">
      <name slugifiedName="name-terminology">Terminology</name>
      <t indent="0" pn="section-2-1">Familiarity with MVPN <xref target="RFC6513" format="default" sectionFormat="of" derivedContent="RFC6513"/> <xref target="RFC6514" format="default" sectionFormat="of" derivedContent="RFC6514"/> and MSDP <xref target="RFC3618" format="default" sectionFormat="of" derivedContent="RFC3618"/> protocols and procedures is assumed.
       Some terminology is listed below for convenience.
      </t>
      <dl newline="false" spacing="normal" indent="14" pn="section-2-2">
        <dt pn="section-2-2.1">ASM:</dt>
        <dd pn="section-2-2.2">Any-Source Multicast</dd>
        <dt pn="section-2-2.3">SPT:</dt>
        <dd pn="section-2-2.4">source-specific Shortest Path Tree</dd>
        <dt pn="section-2-2.5">RPT:</dt>
        <dd pn="section-2-2.6">Rendezvous Point Tree</dd>
        <dt pn="section-2-2.7">C-S:</dt>
        <dd pn="section-2-2.8">a multicast source address, identifying a multicast source
            located at a VPN customer site</dd>
        <dt pn="section-2-2.9">C-G:</dt>
        <dd pn="section-2-2.10">a multicast group address used by a VPN customer</dd>
        <dt pn="section-2-2.11">C-RP:</dt>
        <dd pn="section-2-2.12">a multicast Rendezvous Point for a VPN customer</dd>
        <dt pn="section-2-2.13">C-multicast:</dt>
        <dd pn="section-2-2.14">a multicast for a VPN customer</dd>
        <dt pn="section-2-2.15">EC:</dt>
        <dd pn="section-2-2.16">Extended Community</dd>
        <dt pn="section-2-2.17">GTM:</dt>
        <dd pn="section-2-2.18">Global Table Multicast, i.e., a multicast in the default or global
	routing table vs. a VPN Routing and Forwarding (VRF) table</dd>
      </dl>
      <section numbered="true" removeInRFC="false" toc="include" pn="section-2.1">
        <name slugifiedName="name-requirements-language">Requirements Language</name>
        <t indent="0" pn="section-2.1-1"> The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
          "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
          described in BCP 14 <xref target="RFC2119" format="default" sectionFormat="of" derivedContent="RFC2119"/> <xref target="RFC8174" format="default" sectionFormat="of" derivedContent="RFC8174"/> when, and only when, they appear in all
          capitals, as shown here.
        </t>
      </section>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-3">
      <name slugifiedName="name-specification">Specification</name>
      <t indent="0" pn="section-3-1">The MVPN PEs that act as customer RPs or have one or more MSDP sessions
       in a VPN (or the global table in case of GTM) are treated as an MSDP
       mesh group for that VPN (or the global table). In the rest of the
       document, it is referred to as the PE mesh group. This PE mesh group
	   <bcp14>MUST NOT</bcp14> include other MSDP speakers and is integrated
       into the rest of the MSDP infrastructure for the VPN (or the global table)
       following normal MSDP rules and practices.
      </t>
      <t indent="0" pn="section-3-2">When an MVPN PE advertises an MVPN SA route following procedures in
       <xref target="RFC6514" format="default" sectionFormat="of" derivedContent="RFC6514"/> for the "spt-only" mode,
       it <bcp14>MUST</bcp14> attach an "MVPN SA RP-address Extended Community". This
       is a Transitive IPv4-Address-Specific Extended Community. 
       The Local
       Administrator field is set to zero, and the Global Administrator field
       is set to an RP address determined as the following:
      </t>
      <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-3-3">
        <li pn="section-3-3.1">If the (C-S,C-G) is learnt as a result of the PIM Register
             mechanism, the local RP address for the C-G is used.
          </li>
        <li pn="section-3-3.2">If the (C-S,C-G) is learnt as a result of incoming MSDP SA messages,
             the RP address in the selected MSDP SA message is used.
          </li>
      </ul>
      <t indent="0" pn="section-3-4">In addition to the procedures in <xref target="RFC6514" format="default" sectionFormat="of" derivedContent="RFC6514"/>, an MVPN PE may be provisioned
       to generate MSDP SA messages from received MVPN SA routes, with or
       without local policy control. If a received MVPN SA route triggers an
       MSDP SA message, the MVPN SA route is treated as if a corresponding MSDP SA message
       was received from within the PE mesh group and normal MSDP procedure
       is followed (e.g., an MSDP SA message is advertised to other MSDP peers
       outside the PE mesh group). The (S,G) information comes from the
       (C-S,C-G) encoding in the MVPN SA Network Layer Reachability Information 
       (NLRI), and the RP address comes from
       the "MVPN SA RP-address EC" mentioned above.
       If the received MVPN SA route does not have the EC (this could
       be from a legacy PE that does not have the capability to attach the EC),
       the local RP address for the C-G is used. In that case,
   it is possible that the RP inserted into the MSDP SA message for the C-G is actually the MSDP peer
   to which the generated MSDP message is advertised, causing the peer to
   discard it due to RPF failure. To get around that problem, the peer <bcp14>SHOULD</bcp14>
   use local policy to accept the MSDP SA message.
      </t>
      <t indent="0" pn="section-3-5">An MVPN PE <bcp14>MAY</bcp14> treat only the best MVPN SA route selected by the BGP route
       selection process (instead of all
       MVPN SA routes) for a given (C-S,C-G) as a received MSDP SA message (and
       advertise the corresponding MSDP message). In that case, if the selected
       best MVPN SA route does not have the "MVPN SA RP-address
       EC" but another route for the same (C-S, C-G) does, then the next
       best route with the EC <bcp14>SHOULD</bcp14> be chosen.  As a result, if/when the
       best MVPN SA route with the EC changes, a new MSDP SA message is 
 advertised if the RP address determined according to the newly selected
 MVPN SA route is different from before. The MSDP SA state associated with
 the previously advertised MSDP SA message with the older RP address will be timed out.
      </t>
    </section>
    <section anchor="Security" numbered="true" toc="include" removeInRFC="false" pn="section-4">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <t indent="0" pn="section-4-1">
<xref target="RFC6514" format="default" sectionFormat="of" derivedContent="RFC6514"/> specifies the procedure for a PE to generate an MVPN SA upon 
discovering a (C-S,C-G) flow (e.g., via a received MSDP SA message) in a VPN.
This document extends this capability in the reverse direction --
upon receiving an MVPN SA route in a VPN, generate a
corresponding MSDP SA and advertise it to MSDP peers in the same VPN.  
As such, the capabilities specified in this document introduce no 
additional security considerations beyond those already specified in 
<xref target="RFC6514" format="default" sectionFormat="of" derivedContent="RFC6514"/> and <xref target="RFC3618" format="default" sectionFormat="of" derivedContent="RFC3618"/>.  Moreover, the 
capabilities specified in this document 
actually eliminate the control message amplification that exists today 
where VPN-specific MSDP sessions are required among the PEs that are 
customer MSDP peers, which lead to redundant messages (MSDP SAs and MVPN 
SAs) being carried in parallel between PEs.
      </t>
    </section>
    <section anchor="sarpec" numbered="true" toc="include" removeInRFC="false" pn="section-5">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <t indent="0" pn="section-5-1">
      IANA registered the following in the "Transitive IPv4-Address-Specific Extended Community Sub-Types" registry:
      </t>
      <table anchor="table_1" align="center" pn="table-1">
        <name/>
        <thead>
          <tr>
            <th align="left" colspan="1" rowspan="1">Value</th>
            <th align="left" colspan="1" rowspan="1">Description</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left" colspan="1" rowspan="1">0x20</td>
            <td align="left" colspan="1" rowspan="1">MVPN SA RP-address Extended Community</td>
          </tr>
        </tbody>
      </table>
    </section>
  </middle>
  <back>
    <references pn="section-6">
      <name slugifiedName="name-references">References</name>
      <references pn="section-6.1">
        <name slugifiedName="name-normative-references">Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" quoteTitle="true" derivedAnchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author initials="S." surname="Bradner" fullname="S. Bradner">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="1997" month="March"/>
            <abstract>
              <t indent="0">In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC3618" target="https://www.rfc-editor.org/info/rfc3618" quoteTitle="true" derivedAnchor="RFC3618">
          <front>
            <title>Multicast Source Discovery Protocol (MSDP)</title>
            <author initials="B." surname="Fenner" fullname="B. Fenner" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="D." surname="Meyer" fullname="D. Meyer" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2003" month="October"/>
            <abstract>
              <t indent="0">The Multicast Source Discovery Protocol (MSDP) describes a mechanism to connect multiple IP Version 4 Protocol Independent Multicast Sparse-Mode (PIM-SM) domains together.  Each PIM-SM domain uses its own independent Rendezvous Point (RP) and does not have to depend on RPs in other domains.  This document reflects existing MSDP implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3618"/>
          <seriesInfo name="DOI" value="10.17487/RFC3618"/>
        </reference>
        <reference anchor="RFC6514" target="https://www.rfc-editor.org/info/rfc6514" quoteTitle="true" derivedAnchor="RFC6514">
          <front>
            <title>BGP Encodings and Procedures for Multicast in MPLS/BGP IP VPNs</title>
            <author initials="R." surname="Aggarwal" fullname="R. Aggarwal">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="E." surname="Rosen" fullname="E. Rosen">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="T." surname="Morin" fullname="T. Morin">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="Y." surname="Rekhter" fullname="Y. Rekhter">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2012" month="February"/>
            <abstract>
              <t indent="0">This document describes the BGP encodings and procedures for exchanging the information elements required by Multicast in MPLS/BGP IP VPNs, as specified in RFC 6513.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6514"/>
          <seriesInfo name="DOI" value="10.17487/RFC6514"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" quoteTitle="true" derivedAnchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author initials="B." surname="Leiba" fullname="B. Leiba">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2017" month="May"/>
            <abstract>
              <t indent="0">RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references pn="section-6.2">
        <name slugifiedName="name-informative-references">Informative References</name>
        <reference anchor="RFC2764" target="https://www.rfc-editor.org/info/rfc2764" quoteTitle="true" derivedAnchor="RFC2764">
          <front>
            <title>A Framework for IP Based Virtual Private Networks</title>
            <author initials="B." surname="Gleeson" fullname="B. Gleeson">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="A." surname="Lin" fullname="A. Lin">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="J." surname="Heinanen" fullname="J. Heinanen">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="G." surname="Armitage" fullname="G. Armitage">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="A." surname="Malis" fullname="A. Malis">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2000" month="February"/>
            <abstract>
              <t indent="0">This document describes a framework for Virtual Private Networks (VPNs) running across IP backbones.  This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2764"/>
          <seriesInfo name="DOI" value="10.17487/RFC2764"/>
        </reference>
        <reference anchor="RFC6513" target="https://www.rfc-editor.org/info/rfc6513" quoteTitle="true" derivedAnchor="RFC6513">
          <front>
            <title>Multicast in MPLS/BGP IP VPNs</title>
            <author initials="E." surname="Rosen" fullname="E. Rosen" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="Aggarwal" fullname="R. Aggarwal" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2012" month="February"/>
            <abstract>
              <t indent="0">In order for IP multicast traffic within a BGP/MPLS IP VPN (Virtual Private Network) to travel from one VPN site to another, special protocols and procedures must be implemented by the VPN Service Provider.  These protocols and procedures are specified in this document.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6513"/>
          <seriesInfo name="DOI" value="10.17487/RFC6513"/>
        </reference>
        <reference anchor="RFC7716" target="https://www.rfc-editor.org/info/rfc7716" quoteTitle="true" derivedAnchor="RFC7716">
          <front>
            <title>Global Table Multicast with BGP Multicast VPN (BGP-MVPN) Procedures</title>
            <author initials="J." surname="Zhang" fullname="J. Zhang">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="L." surname="Giuliano" fullname="L. Giuliano">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="E." surname="Rosen" fullname="E. Rosen" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="K." surname="Subramanian" fullname="K. Subramanian">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="D." surname="Pacella" fullname="D. Pacella">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2015" month="December"/>
            <abstract>
              <t indent="0">RFCs 6513, 6514, and others describe protocols and procedures that a Service Provider (SP) may deploy in order to offer Multicast Virtual Private Network (Multicast VPN or MVPN) service to its customers. Some of these procedures use BGP to distribute VPN-specific multicast routing information across a backbone network.  With a small number of relatively minor modifications, the same BGP procedures can also be used to distribute multicast routing information that is not specific to any VPN.  Multicast that is outside the context of a VPN is known as "Global Table Multicast", or sometimes simply as "Internet multicast".  In this document, we describe the modifications that are needed to use the BGP-MVPN procedures for Global Table Multicast.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7716"/>
          <seriesInfo name="DOI" value="10.17487/RFC7716"/>
        </reference>
      </references>
    </references>
    <section anchor="Acknowledgements" numbered="false" toc="include" removeInRFC="false" pn="section-appendix.a">
      <name slugifiedName="name-acknowledgements">Acknowledgements</name>
      <t indent="0" pn="section-appendix.a-1">The authors thank <contact fullname="Eric Rosen"/>,
         <contact fullname="Vinod Kumar"/>, <contact fullname="Yajun Liu"/>,
         <contact fullname="Stig Venaas"/>,
         <contact fullname="Mankamana Mishra"/>,
         <contact fullname="Gyan Mishra"/>, <contact fullname="Qin Wu"/>,
         and <contact fullname="Jia He"/> for their reviews, comments,
         questions, and suggestions for this document.
      </t>
    </section>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.b">
      <name slugifiedName="name-authors-addresses">Authors' Addresses</name>
      <author fullname="Zhaohui Zhang" initials="Z." surname="Zhang">
        <organization showOnFrontPage="true">Juniper Networks</organization>
        <address>
          <email>zzhang@juniper.net</email>
        </address>
      </author>
      <author fullname="Lenny Giuliano" initials="L." surname="Giuliano">
        <organization showOnFrontPage="true">Juniper Networks</organization>
        <address>
          <email>lenny@juniper.net</email>
        </address>
      </author>
    </section>
  </back>
</rfc>
