<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc  [
<!ENTITY rfc2119 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY rfc8174 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8174.xml">
<!ENTITY rfc8487 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8487.xml">
<!ENTITY rfc4604 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4604.xml">
<!ENTITY rfc5015 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5015.xml">
<!ENTITY rfc7761 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7761.xml">
<!ENTITY rfc3618 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3618.xml">
<!ENTITY rfc4610 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4610.xml">
<!ENTITY rfc4607 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4607.xml">
<!ENTITY rfc3956 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3956.xml">
<!ENTITY rfc4760 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4760.xml">
<!ENTITY rfc5496 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5496.xml">
<!ENTITY rfc5135 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5135.xml">
<!ENTITY rfc5059 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5059.xml">
<!ENTITY rfc6831 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6831.xml">
<!ENTITY rfc6832 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6832.xml">
<!ENTITY rfc8059 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.8059.xml">
<!ENTITY rfc9300 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.9300.xml">
]>
<rfc category="std" ipr="trust200902" docName="draft-ietf-lisp-rfc6831bis-03" obsoletes="6831" submissionType="IETF" consensus="true">

<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>

<?rfc toc="yes" ?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="yes"?>
<?rfc rfcedstyle="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>


    <front>
        <title abbrev="LISP for Multicast Environments">The Locator/ID Separation
Protocol (LISP) for Multicast Environments</title>

        <author initials="D" surname="Farinacci" fullname="Dino Farinacci">
            <organization>lispers.net</organization>
	    <address>
	    <email>farinacci@gmail.com</email></address>
        </author>

        <author initials="D" surname="Meyer" fullname="Dave Meyer">
            <organization>Cisco Systems</organization>
	    <address><postal>
                <street>Tasman Drive</street>
		<city>San Jose</city> <region>CA</region>
		<country>USA</country>
  	    </postal>
	    <email>dmm613@gmail.com</email></address>
        </author>

        <author initials="J" surname="Zwiebel" fullname="John Zwiebel">
            <organization>Cisco Systems</organization>
	    <address><postal>
                <street>Tasman Drive</street>
		<city>San Jose</city> <region>CA</region>
		<country>USA</country>
  	    </postal>
	    <email>jzwiebel@cruzio.com</email></address>
        </author>

        <author initials="S" surname="Venaas" fullname="Stig Venaas">
            <organization>Cisco Systems</organization>
	    <address><postal>
                <street>Tasman Drive</street>
		<city>San Jose</city> <region>CA</region>
		<country>USA</country>
  	    </postal>
	    <email>stig@cisco.com</email></address>
        </author>

        <author initials="V" surname="Govindan" fullname="Vengada Prasad Govindan">
            <organization>Cisco Systems</organization>
	    <address><postal>
		    </postal>
	    <email>venggovi@cisco.com</email>
	    </address>
        </author>

<!-- [rfced] Please insert any keywords (beyond those that appear in
the title) for use on http://www.rfc-editor.org/rfcsearch.html. -->

<keyword>example</keyword>

        <abstract>
          <t>This document describes the design for inter-domain
          multicast overlays using the Locator/ID Separation Protocol
          (LISP) architecture and protocols. The document specifies
	  how LISP multicast overlays operate over multicast and
	  unicast underlays. The mechanisms in this specification indicate
	  how a signal-based approach using the PIM protocol can be used to
	  program LISP encapsulators with a replication list in a locator-set,
	  where the replication list can be a mix of multicast and unicast 
	  locators. This document when approved obsoletes RFC6831
</t>
        </abstract>
    </front>

    <middle>

	<section title="Introduction">
	    <t>The Locator/ID Separation Protocol
	    <xref target="RFC9300"/> architecture provides a mechanism to separate
	    out Identification and Location semantics from the current
	    definition of an IP address. By creating two namespaces,
	    an Endpoint ID (EID) namespace used by sites and a Routing Locator
	    (RLOC) namespace used by underlay routing, the underlay routing
	    infrastructure can scale by doing topological aggregation
	    of routing information.</t>

	    <t>Since LISP creates a new namespace, a mapping function must 
	    exist
	    to map a site's EID-Prefixes to its associated Locators. For
            unicast packets, both the source address and destination address
	    must be mapped. For multicast packets, only the source address
	    needs to be mapped. The destination group address doesn't need 
	    to be mapped because the semantics of an IPv4 or IPv6 group
	    address are logical in nature and not topology dependent. 
	    Therefore,
	    this specification focuses on mapping a source EID address of
	    a multicast flow during distribution tree setup and packet 
	    delivery.</t>

	    <t>This specification will address the following scenarios:</t>
  	    <t><list style="format %d."> 
                <t>How a multicast source host in a LISP site sends multicast
		packets to receivers inside of its site as well as to 
		receivers in other sites that are LISP enabled.</t>

		<t>How inter-domain (or between LISP sites) multicast
		distribution trees are built and how forwarding of multicast 
		packets leaving a source site toward receivers sites is	
		performed. While the design principles of how such trees
	        are  built and maintained are the same, there are some 
	        procedural differences based on whether the underlay is unicast 
		or multicast</t>

		<t>What protocols are affected and what changes are required
		to such multicast protocols.</t>
		
		<t>How ASM-mode (Any Source Multicast), SSM-mode (Single Source
                Multicast), and Bidir-mode (Bidirectional Shared Trees) service
                models will operate.</t>

		<t>How multicast packet flow will occur for multiple 
		combinations of LISP-enabled and non-LISP-enabled source and receiver
		sites. For example:<list style="letters"> 
		    <t>How multicast packets from a source host in a LISP
		    site are sent to receivers in other sites when they are
		    all non-LISP sites.</t>

                    <t>How multicast packets from a source host in a LISP 
		    site are sent to receivers in both LISP-enabled sites and
		    non-LISP sites.</t>

                    <t>How multicast packets from a source host in a 
		    non-LISP site are sent to receivers in other sites when 
		    they are all LISP-enabled sites.</t>

		    <t>How multicast packets from a source host in a non-LISP 
		    site are sent to receivers in both LISP-enabled sites
                    and non-LISP sites.</t>
                </list></t>
            </list></t>

	    <t>This specification focuses on what changes are needed to
	    the multicast routing protocols to support LISP-Multicast as 
	    well as other protocols used for inter-domain multicast, 
	    such as Multiprotocol BGP (MBGP) <xref target="RFC4760"/>. 
	    The approach proposed in this specification requires no
            packet format changes to the protocols and no operational procedural
            changes
	    to the multicast infrastructure inside of a site when all sources 
	    and receivers reside in that site, even when the site is LISP 
	    enabled. That is, internal operation of multicast is unchanged, 
	    regardless of whether or not the site is LISP enabled or whether 
	    or not receivers exist in other sites that are LISP enabled.</t>

	    <t>Therefore, there are only operational (and not protocol)
	    changes for PIM-ASM <xref target="RFC7761"/>, Multicast
	    Source Discovery Protocol (MSDP) <xref target="RFC3618"/>,
	    Anycast-RP <xref target="RFC4610"/>, and PIM-SSM <xref target="RFC4607"/>. BIDIR-PIM <xref target="RFC5015"/>,
	    which typically does not run in an inter-domain environment,
	    is not addressed in depth in this document.</t>

            <t>Also, the current version of this specification does
            not describe multicast-based Traffic Engineering (TE) relative
            to the TE-ITR (TE-based Ingress Tunnel
	    Router) and TE-ETR (TE-based Egress
	    Tunnel Router) descriptions in <xref target="RFC9300"/>. Further
            work is also needed to determine the detailed behavior for
            multicast Proxy-ITRs (mPITRs) (<xref target="ANYRECEIVER"/>), 
            mtrace
            (<xref target="MTRACE-CONSID"/>), and locator reachability 
            (<xref target="LR"/>). Deployments have successfuly demonstrated
            the successful minimization of multicast state in the underlay. 
            The cost of this optimization is the extra amount of multicast
            packets that get sent in the same underlay tunnel.</t>


            <t>Issues and concerns about the deployment of LISP for
            Internet traffic are discussed in <xref target="RFC9300"/>. </t>

	</section>

        <section title="Requirements Notation">
            <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 title="Definition of Terms" anchor="TERMS">
            <t>The terminology in this section is consistent with the
	    definitions in <xref target="RFC9300"/> but is extended specifically
	    to deal with the application of the terminology to multicast
	    routing.</t>

	    <t><list style="hanging">
                <t hangText="LISP-Multicast: "> a reference to the design
		in this specification. That is, when any site that is
		participating in multicast communication has been upgraded
		to be a LISP site, the operation of control-plane and 
		data-plane protocols is considered part of the LISP-Multicast
		architecture.</t>

                <t hangText="Endpoint ID (EID): "> a 32-bit (for IPv4) or 
		128-bit (for IPv6) value used in the source address field of 
		the first (most inner) 
                LISP header of a multicast packet. The host obtains a 
                destination group address the same way it obtains one
		today, as it would when it is a non-LISP site. The source EID 
		is obtained via existing mechanisms used to set a host's 
                "local"
	        IP address. An EID is allocated to a host from an EID-Prefix 
		block associated with the site in which the host is located.
		An EID can be used by a host to refer to another host, as 
		when it joins an SSM (S-EID,G) route using IGMP version 3 
                <xref target="RFC4604"/>. LISP uses 
		Provider-Independent (PI) blocks for EIDs; 
                such EIDs MUST NOT be used as LISP RLOCs. Note that EID blocks
                may be assigned in a hierarchical manner, independent of the 
                network topology, to facilitate scaling of the mapping 
                database. In addition, an EID block assigned to a site may 
                have site-local structure (subnetting) for routing within the 
                site; this structure is	not visible to the global routing 
		system.</t>

                <t hangText="Routing Locator (RLOC): "> the IPv4 or IPv6 
                address of an Ingress Tunnel Router (ITR), the router in
		the multicast source host's site that encapsulates multicast
		packets. It is the output of an EID-to-RLOC mapping lookup. 
                An EID maps to one or more RLOCs. Typically, RLOCs are 
                numbered from topologically aggregatable blocks that
 		are assigned to a site at each point to which it attaches to
	        the global Internet; where the topology is defined by the
		connectivity of provider networks, RLOCs can be thought of as
		Provider-Assigned (PA) addresses. Multiple RLOCs can be 
		assigned to the same ITR device or to multiple ITR devices at a site. </t>

                <t hangText="Ingress Tunnel Router (ITR): "> a router that
                accepts an IP multicast packet with a single IP header (more 
                precisely, an IP packet that does not contain a LISP header). 
                The router treats this "inner" IP destination multicast 
		address opaquely so it doesn't need to perform a map lookup on
		the group address because it is topologically insignificant.
		The router then prepends an "outer" IP header with one of its 
		globally routable RLOCs as the source address field. This
		RLOC is known to other multicast receiver sites that have
		used the mapping database to join a multicast tree for which
		the ITR is the root. In general, an ITR receives IP packets 
		from site end-systems on one side and sends LISP-encapsulated 
		multicast IP packets out all external interfaces that have 
		been joined.</t>

		<t>An ITR would receive a multicast packet from a source
		inside of its site when 1) it is on the path from the
		multicast source to internally joined receivers, or 2)
                when it is on the path from the multicast source to externally
		joined receivers.</t>

                <t hangText="Egress Tunnel Router (ETR): "> a router that
                is on the path from a multicast source host in another site
		to a multicast receiver in its own site. An ETR accepts a 
                PIM Join/Prune message from a site-internal PIM router 
		destined for 
		the source's EID in the multicast source site. The ETR
		maps the source EID in the Join/Prune message to an RLOC
		address based on the EID-to-RLOC mapping. This sets up the
		ETR to accept multicast encapsulated packets from the ITR
		in the source multicast site. A multicast ETR decapsulates
		multicast encapsulated packets and replicates them on
		interfaces leading to internal receivers.</t>

		<t hangText="xTR: ">is a reference to an ITR or ETR when 
		direction of data flow is not part of the context description.
                xTR refers to the router that is the tunnel endpoint; it is used 
		synonymously with the term "tunnel router". For example,
		"an xTR can be located at the Customer Edge (CE) router"
		means that both ITR and ETR functionality can be at the CE router.
		</t>

		<t hangText="LISP Header: ">a term used in this document
		to refer to the outer IPv4 or IPv6 header, a UDP header,
		and a LISP header. An ITR prepends headers, and an ETR
		strips headers. A LISP-encapsulated multicast packet
		will have an "inner" header with the source EID in the
		source field, an "outer" header with the source RLOC in
		the source field, and the same globally unique group
		address in the destination field of both the inner and
		outer header.</t>

		<t hangText="(S,G) State: ">the formal definition is in
		the PIM Sparse Mode <xref target="RFC7761"/> specification. 
		For this
		specification, the term is used generally to refer to multicast
		state. Based on its topological location, the (S,G) state that 
		resides in routers can be either (S-EID,G) state (at a location
		where the (S,G) state resides) or (S-RLOC,G) state (in the 
		Internet underlay).</t>

		<t hangText="(S-EID,G) State: ">refers to multicast state in
		multicast source and receiver sites where S-EID is the IP
		address of the multicast source host (its EID). An S-EID
		can appear in an IGMPv3 report, an MSDP SA message or
		a PIM Join/Prune message that travels inside of a site.</t>

		<t hangText="(S-RLOC,G) State: ">refers to multicast state in
		the underlay where S is a source locator (the IP address of a 
		multicast ITR) of a site with a multicast source. The 
		(S-RLOC,G) is mapped from the (S-EID,G) entry by doing a mapping 
		database lookup
		for the EID-Prefix that S-EID maps to. An S-RLOC can appear
		in a PIM Join/Prune message when it travels from an ETR
		to an ITR over the Internet underlay.</t>

		<t hangText="uLISP Site: ">a unicast-only LISP site according 
		to <xref target="RFC9300"/> that has not deployed the 
		procedures of this specification and, therefore, for multicast 
		purposes, follows the procedures from 
		<xref target="MINTWORK"/>. A uLISP site can be a traditional
                multicast site.</t>

		<t hangText="LISP Site: ">a unicast LISP site (uLISP Site)
                that is also multicast capable according to the procedures 
                in this specification.</t>

		<t hangText="mPETR: ">this is a multicast proxy-ETR that is 
		responsible for advertising a very coarse EID-Prefix to which 
		non-LISP and uLISP sites can target their
		(S-EID,G) PIM Join/Prune messages. mPETRs are used so
		LISP source multicast sites can send multicast packets using
		source addresses from the EID namespace. mPETRs act as
		Proxy-ETRs for supporting multicast routing in a LISP 
		infrastructure. It is likely a uPITR 
                <xref target="RFC6832"/> and an mPETR will
                be co-located since the single device advertises a coarse
                EID-Prefix in the underlying unicast routing system.</t>

		<t hangText="Mixed Locator-Sets: ">this is a Locator-Set for
		a LISP database mapping entry where the RLOC addresses in
		the Locator-Set are in both IPv4 and IPv6 format.</t>

		<t hangText="Unicast LISP Encapsulated PIM Join/Prune Message: ">
                this is a standard PIM Join/Prune message (LISP-encapsulated
                with destination UDP port 4341) that is
                sent by ETRs at multicast receiver sites to an ITR at
                a multicast source site. This message is sent
                periodically as long as there are interfaces in the
                OIF-list for the (S-EID,G) entry for which the ETR is joining.
                A multicast ETR has to perform unicast ITR operations
                and multicast ITRs have to be able to perform unicast ETR
                operations since the Unicast encapsulated PIM Join/ Prune
                messages flow from the ETR to the ITR.
                </t>

		<t hangText="OIF-list: ">this is <xref target="RFC7761"/> notation to describe the
                outgoing interface list a multicast router stores per
                multicast routing table entry so it knows on which interfaces 
                to replicate multicast packets.</t>

		<t hangText="RPF: ">Reverse Path Forwarding is a
                procedure used by multicast routers as described in <xref target="RFC7761"/>. A router will
                accept a multicast packet for forwarding if the packet
                was received on the path that the router would use to
                forward unicast packets to the multicast packet's source.</t>

            </list></t>
	</section>

	<section title="Basic Overview">
	    <t>LISP, when used for unicast routing, increases the site's
	    ability to control ingress traffic flows. Egress traffic flows
	    are controlled by the IGP in the source site. For multicast, the
	    IGP coupled with PIM can decide which path multicast packets
	    ingress. By using the Traffic Engineering features of LISP
            <xref target="RFC9300"/>,
	    a multicast source site can control the egress of its multicast 
	    traffic. By controlling the priorities of Locators from a 
	    mapping database entry, a source multicast site can control which 
	    way multicast receiver sites join to the source site.</t>


	    <t>The fundamental multicast forwarding model is to encapsulate
	    a multicast packet into another multicast packet or a unicast packet. 
	    An ITR will encapsulate multicast packets received from sources
	    that it serves in a LISP-Multicast header. The destination
	    group address from the inner header is copied to the destination
	    address of the outer header. Alternately, the destination address 
	    of the outer header could be the RLOC of the ETR.
	    The inner source address is the EID
	    of the multicast source host and the outer source address is the
	    RLOC of the encapsulating ITR.</t>

	    <t>The LISP-Multicast architecture will follow this high-level 
	    protocol and operational sequence:</t>

            <t><list style="format %d."> 
		<t>Receiver hosts in multicast sites will join
		multicast content the way they do today -- they use
		IGMP. When they use IGMPv3 where they specify source
		addresses, they use source EIDs; that is, they join
		(S-EID,G).  If the multicast source is external to
		this receiver site, the PIM Join/Prune message flows
		toward the ETRs.</t>

		<t>The ETR does a mapping database lookup for
		S-EID. If the mapping is cached from a previous lookup
		(from either a previous Join/Prune for the source
		multicast site or a unicast packet that went to the
		site), it will use the RLOC information from the
		mapping. The ETR will use the same priority and
		weighting mechanism as for unicast.  So, the source
		site can decide which way multicast packets
		egress similar to the way unicast packets flow.</t>

	        <t>When using a multicast underlay, the ETR will 
	        build two PIM Join/Prune messages, one that 
		contains an (S-EID,G) entry that is unicast to the ITR that 
		matches the RLOC the ETR selects, and the other that
		contains an (S-RLOC,G) entry so the underlay network
		can create multicast state from this ETR to the ITR.</t>

	        <t>When using a unicast underlay, the ETR will 
	        build one PIM Join/Prune message, one that 
		contains an (S-EID,G) entry that is unicast to the ITR that 
		matches the RLOC the ETR selects. This PIM Join/ Prune message
		contains enough information to help the ITR build ingress-replicated
	        unicast trees.</t>

		<t>When the ITR gets the unicast Join/Prune message 
		(see <xref target="TERMS"/> for formal definition), it will
		process (S-EID,G) entries in the message and propagate
		them inside of the site where it has explicit routing 
		information for EIDs via the IGP. </t>

	        <t> When using the multicast underlay the ITR receives the
		(S-RLOC,G) PIM Join/Prune message, it will process it 
		like any other join it would get in today's Internet.
                The S-RLOC address is the IP address of this ITR.</t>

	        <t> When using the unicast underlay the ITR create an explicitly
	        tracked list of unicast RLOC addresses that have joined the tree.
		This information is used for ingress-replication. </t>

		<t>At this point, there is (S-EID,G) state from the
		joining host in the receiver multicast site to the ETR of
		the receiver multicast site. There is (S-RLOC,G) state
		across the underlay network from the ETR of the multicast 
		receiver site to the ITR in the multicast source site and
		(S-EID,G) state in the source multicast site. Note, the 
		(S-EID,G) state is
		the same S-EID in each multicast site. As other ETRs join the 
		same multicast tree, they can join through the same ITR (in
		which case the packet replication is done in the underlay)
		or a different ITR (in which case the packet replication
		is done at the source site).</t>

		<t>When a packet is originated by the multicast host in
		the source site, the packet will flow to one or more ITRs that
		will prepend a LISP header. </t>
	        <t> For the unicast underlay, the ITR makes individual copies for
		every ETR, the outer destination is set to the S-RLOC of the ETR 
		and the outer source address is set to the S-RLOC of the ITR.</t>
	        <t> For the multicast underlay, the ITR copies the group address
		to the outer destination address field, the ITR inserts its
		own locator address in the outer source address
		field. The ITR will look at its (S-RLOC,G) state, where 
		S-RLOC is its own locator address, and replicate the packet 
		on each	interface on which an (S-RLOC,G) join was received. The
		underlay has (S-RLOC,G) so where fan-out occurs to multiple
		sites, a underlay router will do packet replication.</t>

		<t>When either the source site or the underlay replicates
		the packet, the ETR will receive a LISP packet with a
		destination group address. It will decapsulate
		packets because it has receivers for the
		group. Otherwise, it would not have received the packets
		because it would not have joined. The ETR decapsulates and
		does an (S-EID,G) lookup in its multicast Forwarding
		Information Base (FIB) to forward
		packets out one or more interfaces to forward the packet
		to internal receivers.</t> 
            </list></t>

	    <t>This architecture is consistent and scalable with the
    	    architecture presented in <xref target="RFC9300"/> where
    	    multicast state in the underlay operates on Locators, and multicast
	    state at the sites operates on EIDs.</t>

 	    <t>Alternatively, <xref target="RFC9300"/> also has a
	    mechanism where (S-EID,G) state can reside in the underlay
	    through the use of RPF Vectors <xref target="RFC5496"/> in
	    PIM Join/Prune messages. However, few PIM implementations
	    support RPF Vectors, and LISP should avoid S-EID state in
	    the underlay. See <xref target="ADDR"/> for details.</t>

            <t>However, some observations can be made on the algorithm
            above. The control plane can scale but at the expense of
            sending data to sites that may have not joined the distribution
	    tree where the encapsulated data is being delivered. For example, 
	    one site joins (S-EID1,G),
            and another site joins (S-EID2,G). Both EIDs are in the
            same multicast source site. Both multicast receiver sites
            join to the same ITR with state (S-RLOC,G) where S-RLOC is 
	    the RLOC for the ITR. The ITR joins both (S-EID1,G) and (S-EID2,G)
            inside of the site. The ITR receives (S-RLOC,G) joins and
            populates the OIF-list state for for the (S-RLOC,G) entry. 

Since both (S-EID1,G)
            and (S-EID2, G) map to the one (S-RLOC,G), packets will be
            delivered by the underlay to both multicast receiver sites even
            though each have joined a single source-based distribution 
	    tree. This behavior is a consequence of the many-to-one mapping
	    between S-EIDs and a S-RLOC.</t>

            <t>There is a possible solution to this problem that reduces 
            the number of many-to-one occurrences of (S-EID,G) entries 
            aggregating into a single (S-RLOC,G) entry. If a physical ITR can
            be assigned multiple RLOC addresses and these addresses are 
            advertised in mapping database entries, then ETRs at receiver
            sites have more RLOC address options and therefore can join
            different (RLOC,G) entries for each (S-EID,G) entry joined at 
            the receiver site. It would not scale to have a one-to-one
            relationship between the number of S-EID sources at a source
            site and the number of RLOCs assigned to all ITRs at the site,
            but "n" can reduce to a smaller number in the "n-to-1"
            relationship. And in turn, this reduces the opportunity for data
            packets to be delivered to sites for groups not joined.</t>
	</section>

	<section anchor="ADDR" title="Source Addresses versus Group Addresses">
	    <t>Multicast group addresses don't have to be associated with
	    either the EID or RLOC namespace. They actually are a namespace of
	    their own that can be treated as logical with relatively opaque 
	    allocation. So, by their nature, they don't detract from an 
	    incremental deployment of LISP-Multicast.</t>
	    
	    <t>As for source addresses, as in the unicast LISP scenario, there
	    is a decoupling of identification from location. In a LISP site,
	    packets are originated from hosts using their allocated EIDs.
            EID addresses are used to identify the host as well as
	    where in the site's topology the host resides but not how and 
	    where it is attached to the Internet.</t>

	    <t>Therefore, when multicast distribution tree state is created 
	    anywhere in the network on the path from any multicast 
	    receiver to a multicast source, EID state is maintained at the 
	    source and 
	    receiver multicast sites, and RLOC state is maintained in the 
	    underlay. That is, a multicast distribution tree will be 
	    represented as a 3-tuple of {(S-EID,G) (S-RLOC,G) (S-EID,G)}, 
	    where the first element of the 3-tuple is the state stored in 
	    routers from the source to one or more ITRs in the source 
	    multicast site; the second element of the 3-tuple is
	    the state stored in routers downstream of the ITR, in the underlay,
	    to all LISP receiver multicast sites; and the third element in 
	    the 3-tuple is the state stored in the routers downstream of each 
	    ETR, in each receiver multicast site, reaching each receiver.
	    Note that (S-EID,G) is the same in both the source and receiver
	    multicast sites.</t>

	    <t>The concatenation/mapping from the first element to the second
	    element of the 3-tuples is done by the ITR, and from the second
	    element to the third element is done at the ETRs.</t>
        </section>

        <section title="Locator Reachability Implications on LISP-Multicast" anchor="LR">
	    <t>Multicast state as it is stored in the underlay is either (S,G) state for sources 
	    in non-LISP sites or (RLOC,G) state for sources in LISP sites. The underlay 
	    routers cannot distinguish one from the other. They don't need to because it is state that
	    uses RPF against the underlay routing tables in the RLOC
	    namespace. The
	    difference is where the root of the distribution tree for a
	    particular source is. In the traditional multicast underlay, the source
	    S is the source host's IP address. For LISP-Multicast, the source
	    S is a single ITR of the multicast source site.</t>

	    <t>An ITR is selected based on the LISP EID-to-RLOC mapping used
	    when an ETR propagates a PIM Join/Prune message out of a 
	    receiver multicast site. The selection is based on the same 
	    algorithm an ITR would use to select an ETR when sending a 
	    unicast packet to the site. In the unicast case, the ITR can
	    change on a per-packet basis depending on the reachability of
	    the ETR. So, an ITR can change relatively easily using local
	    reachability state. However, in the multicast case, when an ITR
	    becomes unreachable, new distribution tree state must be built 
	    because the encapsulating root has changed. This is more 
	    significant than an RPF-change event, where any router would 
	    typically locally change its RPF-interface for its existing
	    tree state.
 But when an encapsulating LISP-Multicast ITR goes
	    unreachable, new distribution state must be built
	    and reflect the new encapsulator. Therefore, when an ITR goes 
	    unreachable, all ETRs
	    that are currently joined to that ITR will have to trigger a
	    new Join/Prune message for (S-RLOC,G) to the new ITR as well as 
	    send a unicast encapsulated Join/Prune message telling the new ITR 
            which (S-EID,G) is being joined.</t> 
	    
	    <t>This issue can be mitigated by using anycast addressing for the 
	    ITRs, so the problem does reduce to an RPF change in the underlay, but
	    still requires a unicast encapsulated Join/Prune message to tell 
            the new
	    ITR about (S-EID,G). The problem with this approach is that the 
	    ETR really doesn't know when the ITR
	    has changed, so the new anycast ITR will get the (S-EID,G) state
	    only when the ETR sends it the next time during its periodic
	    sending procedures.</t>
        </section>

	<section title="Multicast Protocol Changes">
	    <t>A number of protocols are used today for inter-domain multicast
	    routing:</t>
	    <t><list style="hanging">
                <t hangText="IGMPv1-v3, MLDv1-v2: ">These protocols 
		<xref target="RFC4604"/> do not 
		require any changes for LISP-Multicast for two reasons. One
		is that they are link-local and not used over site
		boundaries, and the second is that they advertise group addresses that
		don't need translation. Where source addresses are
		supplied in IGMPv3 and Multicast Listener Discovery version 2 (MLDv2) messages, they are semantically 
		regarded as EIDs and don't need to be converted to RLOCs 
		until the
		multicast tree-building protocol, such as PIM, is received
		by the ETR at the
		site boundary. Addresses used for IGMP and MLD come out of
		the source site's allocated addresses, which are therefore from
		the EID namespace.</t>

                <t hangText="MBGP: ">Even though the Multiprotocol
                Extensions for BGP-4 (MBGP) <xref target="RFC4760"/>
                are not part of a
		multicast routing protocol, they are used to find multicast
		sources when the unicast BGP peering topology and the multicast
		MBGP peering topology are not congruent. When MBGP is used in
		a LISP-Multicast environment, the prefixes that are advertised
		are from the RLOC namespace. This allows receiver multicast
		sites to find a path to the source multicast site's ITRs. 
		MBGP peering addresses will be from the RLOC namespace. There
                are no MBGP changes required to support
                LISP-Multicast.</t>

		<t hangText="MSDP: ">MSDP <xref target="RFC3618"/>
                is used to announce active multicast
		sources to other routing domains (or LISP sites). The 
		announcements come from
		the PIM Rendezvous Points (RPs) from sites where there are
		active multicast sources sending to various groups. In the
		context of LISP-Multicast, the source addresses advertised
		in MSDP will semantically be from the EID namespace since 
		they describe the
		identity of a source multicast host. It will be true that
		the state stored in MSDP caches from underlay routers will be
		from the EID namespace. An RP address inside of the site will
		be from the EID namespace so it can be advertised and 
		reached by an internal unicast routing mechanism. However, for
		MSDP peer-RPF checking to work properly across sites, the
		RP addresses must be converted or mapped into a routable
		address that is advertised and maintained in the BGP routing
		tables in the underlay. MSDP peering addresses can come out of
		either the EID or a routable address namespace. Also, the
		choice can be made unilaterally because the ITR at the site
		will determine which namespace the destination peer address
		is out of by looking in the mapping database service.
                There are no MSDP changes required to support
                LISP-Multicast.</t>

		<t hangText="PIM-SSM: ">In the simplest form of
		distribution tree building, when PIM operates in SSM
		mode <xref target="RFC4607"/>, 
                a source distribution tree is built and
		maintained across site boundaries. In this case, there
		is a small modification to how PIM Join/Prune messages are
                sent by the LISP-Multicast component.
                No modifications to any message format, but
		to support taking a Join/Prune message originated
		inside of a LISP site with embedded addresses from the
		EID namespace and converting them to addresses from
		the RLOC namespace when the Join/Prune message crosses
		a site boundary. This is similar to the requirements
		documented in <xref target="RFC5135"/>.</t>

		<t hangText="BIDIR-PIM: ">Bidirectional PIM 
                <xref target="RFC5015"/> is
		typically run inside of a routing domain, but if
		deployed in an inter-domain environment, one would
		have to decide if the RP address of the shared tree
		would be from the EID namespace or the RLOC
		namespace. If the RP resides in a site-based router,
		then the RP address is from the EID namespace. If the
		RP resides in the underlay where RLOC addresses are
		routed, then the RP address is from the RLOC
		namespace. This could be easily distinguishable if the
		EID address were in a well-known address allocation block
		from the RLOC namespace. 

Also, when using Embedded-RP
		for RP determination <xref target="RFC3956"/>, the
		format of the group address could indicate the
		namespace the RP address is from. However, refer to
		<xref target="ERP"/> for considerations underlay routers
		need to make when using Embedded-RP IPv6 group
		addresses.

      When using BIDIR-PIM for inter-domain multicast routing, it is
      recommended to use statically configured RPs. This allows underlay routers
      to associate a Bidir group's RP address with an ITR's RLOC
      address, and site routers to associate the Bidir group's RP
      address as an EID address. 

 With respect to Designated Forwarder (DF) election in
		BIDIR-PIM, no changes are required since all messaging
		and addressing is link-local. </t>

		<t hangText="PIM-ASM: ">The ASM mode of PIM
                <xref target="RFC7761"/>, the most
		popular form of PIM, is deployed in the Internet today 
		by having shared trees within a site and using source trees 
		across
		sites. By the use of MSDP and PIM-SSM techniques described
		above, multicast connectivity can occur across LISP sites.
		Having said that, that means there are no special actions
		required for processing (*,G) or (S,G,R) Join/Prune messages
		since they all operate against the shared tree that is
		site resident. Just like with ASM, there is no
                (*,G) in the underlay when LISP-Multicast is in use.
                This is also true for the RP-mapping 
		mechanisms Auto-RP and Bootstrap Router (BSR) <xref target="RFC5059"/>.</t>
	    </list></t>

	    <t>Based on the protocol description above, the conclusion is that 
	    there  are no protocol message format changes, just a translation
	    function performed at the control plane. This will make for an
	    easier and faster transition for LISP since fewer components in
	    the network have to change.</t>

	    <t>It should also be stated just like it is in 
	    <xref target="RFC9300"/> that no host changes, whatsoever, are 
	    required to have a multicast source host send multicast packets
	    and for a multicast receiver host to receive multicast packets.</t>
	<section title="PIM Join Attributes for LISP">
		<t> There are specific PIM Join/Prune attributes to build multicast 
		distribution trees with either a native Multicast or Unicast underlay.
		Please refer to <xref target="RFC8059"/> for such attributes.</t>
	       <t>These attributes are further enhanced in <xref target="I-D.ietf-pim-jp-extensions-lisp"/></t>
	</section>	
	</section>

	<section title="LISP-Multicast Data-Plane Architecture">
	    <t>The LISP-Multicast data-plane operation conforms to the
	    operation and packet formats specified in <xref target="RFC9300"/>.
	    However, encapsulating a multicast packet from an ITR is a much
	    simpler process. The process is simply to copy the inner group
	    address to the outer destination address. And to have the ITR
	    use its own IP address (its RLOC) as the source address. The 
	    process is simpler for multicast because there is no EID-to-RLOC 
	    mapping lookup performed during packet forwarding.</t>

	    <t>In the decapsulation case, the ETR simply removes the outer
	    header and performs a multicast routing table lookup on the 
	    inner header (S-EID,G) addresses. Then, the OIF-list for the 
	    (S-EID,G) entry is used to replicate the packet on site-facing 
	    interfaces leading to multicast receiver hosts.</t>

	    <t>There is no Data-Probe logic for ETRs as there can be in the
	    unicast forwarding case.</t>

	    <section title="ITR Forwarding Procedure">
	        <t>The following procedure is used by an ITR, when it receives
		a multicast packet from a source inside of its site:</t>

		<t><list style="format %d."> 
		    <t>A multicast data packet sent by a host in a LISP site
		    will have the source address equal to the host's EID and
		    the destination address equal to the address of
		    the multicast group. It is assumed the group information
		    is obtained by current methods. The same is true for a 
		    multicast receiver to obtain the source and group address 
		    of a multicast flow.</t>
		    
		    <t>When the ITR receives a multicast packet, it will have 
		    both S-EID state and S-RLOC state stored. 
		    Since the packet was received on a site-facing interface,
		    the RPF lookup is based on the S-EID state. If the RPF
		    check succeeds, then the OIF-list contains interfaces that
		    are site facing and external facing. For the site-facing
		    interfaces, no LISP header is prepended. For the 
		    external-facing interfaces a LISP header is prepended. 
		    When the ITR 
		    prepends a LISP header, it uses its own RLOC address as 
		    the source address and copies the group address supplied 
		    by the  IP header that the host built as the outer destination 
		    address.</t>
		</list></t>

               <section title="Multiple RLOCs for an ITR">
                   <t>Typically, an ITR will have a single RLOC address, but
                   in some cases there could be multiple RLOC addresses 
                   assigned from either the same or different service 
                   providers. In
                   this case, when (S-RLOC,G) Join/Prune messages are received
                   for each RLOC, there is a OIF-list merging action that must
                   take place. Therefore, when a packet is received from a 
                   site-facing interface that matches on an (S-EID,G) entry,
                   the interfaces of the OIF-list from all (RLOC,G) entries 
                   joined to the ITR
                   as well as the site-facing OIF-list joined for (S-EID,G) 
                   must be included in packet replication. In addition 
                   to replicating for all types of OIF-lists, each OIF-list
                   entry 
                   must be tagged with the RLOC address, so encapsulation 
                   uses the outer source address for the RLOC joined.</t>
               </section>
	       <section anchor="MULTI-ITRs" title="Multiple ITRs for a LISP Source Site">
                   <t>Note that when ETRs from different multicast receiver sites 
                   receive (S-EID,G) joins, they may select a different S-RLOC
                   for a multicast source site due to policy (the multicast
                   ITR can return different multicast priority and weight
                   values per ETR Map-Request). In this case, the 
                   same (S-EID,G) is being realized by different (S-RLOC,G) 
                   state in the underlay. This will not result in duplicate packets
                   because each ITR in the multicast source site will choose
                   their own RLOC for the source address for encapsulated 
                   multicast traffic. The RLOC addresses are the ones joined by
                   remote multicast ETRs.</t>
		   
		   <t>When different (S-EID,G) traffic is combined
                   into a single (RLOC,G) underlay distribution tree, this
                   may cause traffic to go to a receiver multicast
                   site when it does not need to.  This happens when one
                   receiver multicast site joins (S1-EID,Gi) through a
                   underlay distribution tree of (RLOC1,Gi) and another
                   multicast receiver site joins (S2-EID,Gi) through
                   the same underlay distribution tree of (RLOC1,Gi). When
                   ETRs decapsulate such traffic, they should know
                   from their local (S-EID,G) state if the packet
                   should be forwarded. If there is no (S-EID,G) state
                   that matches the inner packet header, the packet is
                   discarded.</t>
	       </section>
	    </section>

	    <section title="ETR Forwarding Procedure">
	        <t>The following procedure is used by an ETR, when it receives
		a multicast packet from a source outside of its site:</t>

		<t><list style="format %d."> 
                    <t>When a multicast data packet is received by an ETR
		    on an external-facing interface, it will do an RPF lookup
		    on the S-RLOC state it has stored. If the RPF check 
		    succeeds, the interfaces from the OIF-list are used for
		    replication to interfaces that are site facing as well
		    as interfaces that are external facing (this ETR can also
		    be a transit multicast router for receivers outside of
		    its site). When the packet is to be replicated for an
		    external-facing interface, the LISP encapsulation header
		    is not stripped. When the packet is replicated for a
		    site-facing interface, the encapsulation header is
		    stripped.</t>

		    <t>The packet without a LISP header is now forwarded down
		    the (S-EID,G) distribution tree in the receiver multicast
		    site.</t>
		</list></t>
	    </section>

	    <section title="Replication Locations">
	        <t>Multicast packet replication can happen in the following
  	        topological locations:</t>
	    
	        <t><list style="symbols">
	            <t>In an IGP multicast router inside a site that operates
	            on S-EIDs.</t>
	            <t>In a transit multicast router inside of the underlay that
	            operates on S-RLOCs.</t>
	            <t>At one or more ETR routers depending on the path a 
                    Join/Prune message exits a receiver multicast
                    site.</t>
	            <t>At one or more ITR routers in a source multicast site
	            depending on what priorities are returned in a Map-Reply 
	            to receiver multicast sites.</t>
	        </list></t>

	        <t>In the last case, the source multicast site can do
	        replication rather than having a single exit from the
	        site. But this can occur only when the priorities in the
	        Map-Reply are modified for different receiver
	        multicast sites so that the PIM Join/Prune messages arrive at
	        different ITRs.</t>

	        <t>This policy technique, also used in <xref target="RFC6836"/> 
		for unicast, is useful for multicast to mitigate the problems
	        of changing distribution tree state as discussed in 
	        <xref target="LR"/>.</t>
	    </section>
	</section>

        <section title="LISP-Multicast Interworking" anchor="MINTWORK">
	    <t>This section describes the multicast corollary to 
            <xref target="RFC6832"/> regarding the interworking
	    of multicast routing among LISP and non-LISP sites.</t>

	    <section title="LISP and Non-LISP Mixed Sites">
	        <t>Since multicast communication can involve more than two
		entities to communicate together, the combinations of
		interworking scenarios are more involved. However, the state
		maintained for distribution trees at the sites is the
		same, regardless of whether or not the site is LISP
		enabled. So, most of the implications are in the underlay with respect 
		to storing routable EID-Prefixes from either PA or PI 
		blocks.</t>

		<t>Before enumerating the multicast interworking scenarios,
		let's define three deployment states of a site:</t>

		<t><list style="symbols">
		    <t>A non-LISP site that will run PIM-SSM or PIM-ASM with 
		    MSDP as it does today. The addresses for the site are
		    globally routable.</t>

		    <t>A site that deploys LISP for unicast routing. The
		    addresses for the site are not globally routable. Let's
		    define the name for this type of site as a uLISP site.</t>

		    <t>A site that deploys LISP for both unicast and multicast
		    routing. The addresses for the site are not globally
		    routable. Let's define the name for this type of site
		    as a LISP-Multicast site.</t>
		</list></t>


                <t>
                A LISP site enabled for multicast purposes only will not be 
                considered in this document, but a uLISP site as documented in
                <xref target="RFC6832"/> will be considered.  In
		this section there is no discussion of how a LISP site sends
		multicast packets when all receiver sites are
		LISP-Multicast enabled; that has been discussed in
		previous sections.</t>

		<t>The following scenarios exist to make LISP-Multicast
		sites interwork with non-LISP-Multicast sites:</t>
		<t><list style="numbers">
		    <t>A LISP site must be able to send multicast packets
		    to receiver sites that are a mix of non-LISP sites and 
		    uLISP sites.</t>

		    <t>A non-LISP site must be able to send multicast packets 
		    to receiver sites that are a mix of non-LISP sites
		    and uLISP sites.</t>

		    <t>A non-LISP site must be able to send multicast packets 
		    to receiver sites that are a mix of LISP sites, uLISP 
		    sites, and non-LISP sites.</t>

		    <t>A uLISP site must be able to send multicast packets
		    to receiver sites that are a mix of LISP sites, uLISP
		    sites, and non-LISP sites.</t>

		    <t>A LISP site must be able to send multicast packets
		    to receiver sites which are a mix of LISP sites, uLISP 
		    sites, and non-LISP sites.</t>
		</list></t>

		<section title="LISP Source Site to Non-LISP Receiver Sites" anchor="LISP-to-nLISP">

		    <t>In the first scenario, a site is LISP enabled for both
		    unicast and multicast traffic and as such operates on
		    EIDs. Therefore, there is a possibility that the EID-Prefix
		    block is not routable in the underlay. For LISP receiver 
		    multicast sites,
		    this isn't a problem, but for non-LISP or uLISP receiver
		    multicast sites, when a PIM Join/Prune message is
		    received by the edge router, it has no route to
		    propagate the Join/Prune message out of the site. This
		    is no different than the unicast case that LISP Network
Address Translation (LISP-NAT) in 
		    <xref target="RFC6832"/> solves.</t>

		    <t>LISP-NAT allows a unicast packet that exits a
		    LISP site to get its source address mapped to a
		    globally routable address before the ITR realizes
		    that it should not encapsulate the packet destined
		    to a non-LISP site. For a multicast packet to
		    leave a LISP site, distribution tree state needs
		    to be built so the ITR can know where to send the
		    packet. So, the receiver multicast sites need to
		    know about the multicast source host by its
		    routable address and not its EID address. When
		    this is the case, the routable address is the
		    (S-RLOC,G) state that is stored and maintained in
		    the underlay routers. 

   It is important to note that the routable address for the host cannot
   be the same as an RLOC for the site because it is desirable for ITRs
   to process a PIM Join/Prune message that is received from an 
external-facing interface.  If the message will be propagated inside 
of the site, the site-part of the distribution tree is built.
</t>
    
		    <t>Using a globally routable source address allows
		    non-LISP and uLISP multicast receivers to join,
		    create, and maintain a multicast distribution
		    tree. However, the LISP-Multicast receiver site
		    will want to perform an EID-to-RLOC mapping table
		    lookup when a PIM Join/Prune message is received on
		    a site-facing interface. It does this because it
		    wants to find an (S-RLOC,G) entry to Join in the
		    underlay. So, there is a conflict of behavior between the
		    two types of sites.</t>
		    
		    <t>The solution to this problem is the same as when an
		    ITR wants to send a unicast packet to a destination
		    site but needs to determine if the site is LISP enabled
		    or not. When it is not LISP enabled, the ITR does not
		    encapsulate the packet.  So, for the multicast case,
		    when the ETR receives a PIM Join/Prune message for
		    (S-EID,G) state, it will do a mapping table lookup
		    on S-EID. In this case, S-EID is not in the mapping
		    database because the source multicast site is using
		    a routable address and not an EID-Prefix address. So,
		    the ETR knows to simply propagate the PIM Join/Prune
		    message to an external-facing interface without
		    converting the (S-EID,G) because it is an (S,G),
		    where S is routable and reachable via underlay routing
		    tables.</t>
    
		    <t>
   Now that the multicast distribution tree is built and maintained from
   any non-LISP or uLISP receiver multicast site, the way the packet
   forwarding model is used can be explained.
</t>

		    <t>Since the ITR in the source multicast site has
		    never received a unicast encapsulated PIM
		    Join/Prune message from any ETR in a receiver
		    multicast site, it knows there are no
		    LISP-Multicast receiver sites. Therefore, there is
		    no need for the ITR to encapsulate data. Since it
		    will know a priori (via configuration) that its
		    site's EIDs are not routable (and not registered
		    to the mapping database system), it assumes that
		    the multicast packets from the source host are
		    sent by a routable address. That is, it is the
		    responsibility of the multicast source host's
		    system administrator to ensure that the source
		    host sends multicast traffic using a routable
		    source address. When this happens, the ITR acts
		    simply as a router and forwards the multicast
		    packet like an ordinary multicast router.</t>
    
<t>
   There is an alternative to using a LISP-NAT scheme just as there is
   an alternative to using unicast <xref target="RFC6832"/> forwarding by employing
   Proxy Tunnel Routers (PxTRs).
   This can work the same way for
		    multicast routing as well, but the difference is
		    that non-LISP and uLISP sites will send PIM
		    Join/Prune messages for (S-EID,G) that make their
		    way in the underlay to multicast PxTRs. Let's call this use of a
		    PxTR as a "Multicast Proxy-ETR" (or mPETR).  Since the 
                    mPETRs
		    advertise very coarse EID-Prefixes, they draw the
		    PIM Join/Prune control traffic making them the target
		    of the distribution tree. To get multicast packets
		    from the LISP source multicast sites, the tree needs
		    to be built on the path from the mPETR to the LISP
		    source multicast site.  To make this happen, the mPETR
		    acts as a "Proxy-ETR" (where in unicast it acts as a
		    "Proxy-ITR", or an uPITR <xref target="RFC6832"/>).</t>

		    <t>The existence of mPETRs in the underlay allows
		    source multicast site ITRs to encapsulate multicast packets
                    according to (S-RLOC,G) state. The (S-RLOC,G) state is built
                    from the mPETRs to the multicast ITRs. The encapsulated
                    multicast packets are decapsulated by mPETRs and then
                    forwarded according to (S-EID,G) state. The (S-EID,G) 
                    state is built from the non-LISP and uLISP receiver 
                    multicast sites to the mPETRs.</t>
                </section>

		<section title="Non-LISP Source Site to Non-LISP Receiver Sites" anchor="nLISP-to-nLISP">
		    <t>Clearly non-LISP-Multicast sites can send
 		    multicast packets to non-LISP receiver multicast
		    sites. That is what they do today. However, discussion
		    is required to show how non-LISP-Multicast sites send
		    multicast packets to uLISP receiver multicast sites.</t>

		    <t>Since uLISP receiver multicast sites are not targets
		    of any (S,G) state, they simply send (S,G) PIM
		    Join/Prune messages toward the non-LISP source multicast
		    site. Since the source multicast site in this case has
		    not been upgraded to LISP, all multicast source host
		    addresses are routable.

  So, this case is simplified to where a uLISP 
  receiver multicast site appears to the source multicast site to 
  be a non-LISP receiver multicast site.
</t>

		</section>

		<section anchor="ANYRECEIVER" title="Non-LISP Source Site to Any Receiver Site">
                    <t>When a non-LISP source multicast site has receivers
		    in either a non-LISP/uLISP site or a LISP site, one
		    needs to decide how the LISP receiver multicast site
		    will attach to the distribution tree. It is known from
		    <xref target="nLISP-to-nLISP"/> that non-LISP and uLISP
		    receiver multicast sites can join the distribution tree,
		    but a LISP receiver multicast site ETR will need to know
		    if the source address of the multicast source host is
		    routable or not. It has been shown in 
		    <xref target="LISP-to-nLISP"/> that an ETR, before it 
		    sends a PIM Join/Prune message on an external-facing 
		    interface, 
		    does an EID-to-RLOC mapping lookup to determine if it
		    should convert the (S,G) state from a PIM Join/Prune 
		    message received on a site-facing interface to an
		    (S-RLOC,G). If the lookup fails, or it receives a Negative Map-Reply, the ETR can conclude
		    the source multicast site is a non-LISP site, so it
		    simply forwards the Join/Prune message.  (It also doesn't
		    need to send a unicast encapsulated Join/Prune message 
                    because there
		    is no ITR in a non-LISP site and there is namespace
		    continuity between the ETR and source.)</t>

		    <t>For a non-LISP source multicast site, (S-EID,G)
		    state could be limited to the edges of the network
		    with the use of multicast proxy-ITRs
		    (mPITRs). The mPITRs can take native,
		    unencapsulated multicast packets from non-LISP
		    source multicast and uLISP sites and encapsulate them to
		    ETRs in receiver multicast sites or to mPETRs that
		    can decapsulate for non-LISP receiver multicast or uLISP
		    sites. The mPITRs are responsible for sending
		    (S-EID,G) joins to the non-LISP source multicast
		    site. To connect the distribution trees together, 
                    multicast ETRs will need to
		    be configured with the mPITR's RLOC addresses so
		    they can send both (S-RLOC,G) joins to build a
		    distribution tree to the mPITR as well as
		    configured for
		    sending unicast joins to mPITRs so they can 
		    propagate (S-EID,G) joins into source multicast sites. 
                    The use of mPITRs is undergoing more study and is a work in
                    progress.</t>

		</section>

		<section title="Unicast LISP Source Site to Any Receiver Sites">
		    <t>In the last section, it was explained how an ETR
		    in a multicast receiver site can determine if a source
		    multicast site is LISP enabled by looking into the 
		    mapping database. When the source multicast site
		    is a uLISP site, it is LISP enabled, but the ITR, by 
		    definition, is not capable of doing multicast encapsulation.
		    So, for the purposes of multicast routing, the uLISP source
		    multicast site is treated as a non-LISP source
		    multicast site.</t>

		    <t>Non-LISP receiver multicast sites can join distribution
		    trees to a uLISP source multicast site since the source
		    site behaves, from a forwarding perspective, as a non-LISP
		    source site. This is also the case for a uLISP receiver
		    multicast site since the ETR does not have multicast
		    functionality built-in or enabled.</t>

		    <t>Special considerations are required for LISP
		    receiver multicast sites; since they think the source 
		    multicast site is LISP enabled, the ETR cannot know 
		    if the ITR is LISP-Multicast enabled. To solve this problem, 
		    each mapping database entry will have a multicast 2-tuple
		    (Mpriority, Mweight) per RLOC <xref target="RFC9300"/>. 
                    When the Mpriority is
		    set to 255, the site is considered not multicast capable.
		    So, an ETR in a LISP receiver multicast site can 
		    distinguish whether a LISP source multicast site 
		    is a LISP-Multicast site or a uLISP site.</t>
		</section>

		<section title="LISP Source Site to Any Receiver Sites">
		   <t>When a LISP source multicast site has receivers in 
		   LISP, non-LISP, and uLISP receiver multicast sites, it
		   has a conflict about how it sends multicast packets. 
		   The ITR can either encapsulate or natively forward 
		   multicast packets. Since the receiver
		   multicast sites are heterogeneous in their behavior, one
		   packet-forwarding mechanism cannot satisfy both. 

   However, if a LISP receiver multicast site acts like a uLISP site,
   then it could receive packets like a non-LISP receiver multicast
   site, thereby making all receiver multicast sites have homogeneous
   behavior.

 However, this poses the following 
		   issues:</t>

	           <t><list style="symbols">
		       <t>LISP-NAT techniques with routable addresses would
		       be required in all cases.</t>
		       <t>Or, alternatively, mPETR deployment would be 
		       required, thus forcing coarse EID-Prefix advertisement in
		       the underlay.</t>
		       <t>But, what is most disturbing is that when all sites
		       that participate are LISP-Multicast sites but 
		       a non-LISP or uLISP site joins the distribution tree,
		       then the existing joined LISP receiver multicast sites
		       would have to change their behavior. This would create
		       too much dynamic tree-building churn to be a viable 
		       alternative.</t>
		   </list></t>

		   <t>So, the solution space options are:</t>

	           <t><list style="numbers">
		       <t>Make the LISP ITR in the source multicast site
		       send two packets, one that is encapsulated with 
		       (S-RLOC,G)
		       to reach LISP receiver multicast sites and another
		       that is not encapsulated with (S-EID,G) to reach
		       non-LISP and uLISP receiver multicast sites.</t>
		       <t>Make the LISP ITR always encapsulate packets with
		       (S-RLOC,G) to reach LISP-Multicast sites and to reach
		       mPETRs that can decapsulate and forward (S-EID,G) packets
		       to non-LISP and uLISP receiver multicast sites.</t>
		   </list></t>
		</section>
	    </section>

	    <section title="LISP Sites with Mixed Address Families">
	        <t>A LISP database mapping entry that describes the 
		Locator-Set, Mpriority, and Mweight per locator address (RLOC),
		for an EID-Prefix associated with
		a site could have RLOC addresses in either IPv4 or IPv6 format.
		When a mapping entry has a mix of RLOC-formatted addresses,
		it is an implicit advertisement by the site that it is a
		dual-stack site. That is, the site can receive IPv4 or IPv6 
		unicast packets.</t>

		<t>To distinguish if the site can receive dual-stack unicast
		packets as well as dual-stack multicast packets, the Mpriority
		value setting will be relative to an IPv4 or IPv6 RLOC
		See <xref target="RFC9300"/> for packet format details.</t>

		<t>If one considers the combinations of LISP, non-LISP, and
		uLISP sites sharing the same distribution tree and considering
		the capabilities of supporting IPv4, IPv6, or dual-stack, the
		number of total combinations grows beyond comprehension.</t>

		<t>Some of the combinations that can occur are listed below:</t>

	        <t><list style="numbers">
		    <t>LISP-Multicast IPv4 Site</t>
		    <t>LISP-Multicast IPv6 Site</t>
		    <t>LISP-Multicast Dual-Stack Site</t>
		    <t>uLISP IPv4 Site</t>
		    <t>uLISP IPv6 Site</t>
		    <t>uLISP Dual-Stack Site</t>
		    <t>non-LISP IPv4 Site</t>
		    <t>non-LISP IPv6 Site</t>
		    <t>non-LISP Dual-Stack Site</t>
		</list></t>

		<t>The above combinatorial gets even worse when one considers a
		site using one address family inside of the site and the 
		xTRs using the other address family (as in using IPv4 EIDs with
		IPv6 RLOCs or IPv6 EIDs with IPv4 RLOCs).</t>

		<t>To rationalize this combinatorial nightmare, there are
		some guidelines that need to be put in place:</t>

	        <t><list style="symbols">
		    <t>Each distribution tree shared between sites will either
		    be an IPv4 distribution tree or an IPv6 distribution tree. 
		    Therefore, head-end replication can be avoided by building 
		    and sending packets on each address-family-based 
		    distribution tree. Even though there might be an urge
		    to do multicast packet translation from one address family
		    format to the other, it is a non-viable over-complicated 
		    urge. Multicast ITRs will only encapsulate packets where 
                    the inner and outer headers are from the same address 
                    family.</t>

		    <t>All LISP sites on a multicast distribution tree
		    must share a common address family 
		    that is determined by the source site's Locator-Set in
		    its LISP database mapping entry. All receiver multicast
		    sites will use the best RLOC priority controlled by the
		    source multicast site. This is true when the source
		    site is either LISP-Multicast or uLISP enabled. This
		    means that priority-based policy modification is
		    prohibited. When a receiver multicast site ETR
                    receives an (S-EID,G) join, it must select a S-RLOC for
                    the same address family as S-EID. </t>

		    <t>When a multicast Locator-Set has more than one locator, 
                    only locators from the same address family MUST be set to 
                    the same best priority value.
                    A mixed Locator-Set can exist (for unicast use), but the 
                    multicast priorities MUST be the set for the same address
                    family locators.</t>

   <t> When the source site is not LISP enabled, determining the address
     family for the flow is up to how receivers find the source and
     group information for a multicast flow.</t>

		</list></t>
            </section>

	    <section title="Making a Multicast Interworking Decision">
	        <t>Thus far, <xref target="MINTWORK"/> has shown all
	        combinations of multicast connectivity that could occur. As
	        already concluded, this can be quite
	        complicated, and, if the design is too ambitious, the dynamics
	        of the protocol could cause a lot of instability.</t>

	        <t>The trade-off decisions are hard to make, and so
	        the same single solution is desirable to work for both IPv4 and
	        IPv6 multicast. It is imperative to have an
	        incrementally deployable solution for all of IPv4
	        unicast and multicast and IPv6 unicast and multicast
	        while minimizing (or eliminating) both unicast and
	        multicast EID namespace state.</t>
    
	        <t>Therefore, the design decision to go with uPITRs
		<xref target="RFC6832"/> for unicast routing and
		mPETRs for multicast routing seems to be the sweet
		spot in the solution space in order to optimize state requirements and avoid head-end data replication at
		ITRs.</t>
            </section>
	</section>

	<section title="Considerations When RP Addresses Are Embedded in Group Addresses" anchor="ERP">
	    <t>When ASM and PIM-BIDIR are used in an IPv6 inter-domain 
            environment, 
	    a technique exists to embed the unicast address of an RP in an IPv6
	    group address <xref target="RFC3956"/>. When routers in end 
	    sites process
	    a PIM Join/Prune message that contains an Embedded-RP group 
            address, 
	    they extract the RP address from the group address and treat it
	    from the EID namespace. However, underlay routers do not have
	    state for the EID namespace and need to extract an RP address from
	    the RLOC namespace.</t>
	    
	    <t>Therefore, it is the responsibility of ETRs in multicast 
	    receiver sites to map the group
	    address into a group address where the Embedded-RP address is 
	    from the RLOC namespace. The mapped RP address is obtained
	    from an EID-to-RLOC mapping database lookup. The ETR will also 
	    send a unicast (*,G) Join/Prune message to
	    the ITR so the branch of the distribution tree from the source
	    site resident RP to the ITR is created.</t>


	    <t>This technique is no different than the techniques described
	    in this specification for translating (S,G) state and propagating
	    Join/Prune messages into the underlay. The only difference is that 
	    the (*,G) state in Join/Prune messages are mapped because they 
	    contain unicast addresses encoded in an Embedded-RP group 
            address.</t>
        </section>		 

	<section title="Taking Advantage of Upgrades in the Underlay">
	    <t>If the underlay routers are upgraded to support 
	    <xref target="RFC5496"/>, then the
	    EID-specific data can be passed through the underlay without, possibly,
	    having to store the state in the underlay.</t>

	    <t>By doing this, one can eliminate the ETR from unicast encapsulated 
            PIM Join/Prune messages to the source site's ITR.</t>



            <t>However, this solution is restricted to a small set of 
            workable cases that would not be good for general use of 
            LISP-Multicast. In
            addition, due to slow convergence properties, it is not  
            recommended for LISP-Multicast.</t>
	</section>

        <section anchor="MTRACE-CONSID" title="Mtrace Considerations">
	   <t>Mtrace functionality MUST be consistent with unicast traceroute
           functionality where all hops from multicast receiver to multicast
           source are visible.</t>

           <t>The design for mtrace for use in LISP-Multicast environments 
           is to be determined but should build upon 
           mtrace version 2 specified in <xref target="MTRACE"/> <xref target="RFC8487"/>.</t>
        </section>

        <section title="Security Considerations">

	   <t>The security concerns for LISP-Multicast are mainly the
           same as for the base LISP specification <xref target="RFC9300"/> 
           and for multicast in general, including PIM-ASM
           <xref target="RFC7761"/>.</t>
           
	   <t>There may be a security concern with respect to unicast
           PIM messages. When multiple receiver sites are joining an
           (S-EID1,G) distribution tree that maps to a (RLOC1,G)
           underlay distribution tree, and a malicious receiver site
           joins an (S-EID2,G) distribution tree that also maps to the 
           (RLOC1,G) underlay distribution tree, the legitimate sites will
           receive data from S-EID2 when they did not ask for it.</t>

           <t> Deployments have been succesfully able to leverage existing
           security mechanisms deployed for PIM <xref target="RFC7761"/></t>

        </section>

        <section title="IANA Considerations">
        <t> No requests are made to IANA </t>
        </section>

        <section title="Acknowledgments">
	    <t>The authors would like to gratefully acknowledge the people 
	    who have contributed discussion, ideas, and commentary to the
	    making of this proposal and specification. People who provided
	    expert review were Scott Brim, Greg Shepherd, and Dave Oran.
            Other commentary from discussions at the Summer 2008 IETF in
	  Dublin
            were Toerless Eckert and IJsbrand Wijnands.</t>


            <t>The authors would also like to thank the MBONED working
            group for constructive and civil verbal feedback when this
            document was presented at the Fall 2008 IETF in
            Minneapolis. In particular, good commentary came from Tom
            Pusateri, Steve Casner, Marshall Eubanks, Dimitri
            Papadimitriou, Ron Bonica, Lenny Guardino, Alia Atlas,
            Jesus Arango, and Jari Arkko.</t>

            <t>An expert review of this specification was done by Yiqun Cai and
            Liming Wei. The authors thank them for their detailed comments.</t>


            <t>This work originated in the Routing Research Group (RRG) of the
            IRTF. An individual submission was converted into a LISP working
group document.</t>

            <t>A very special thanks goes to Mike McBride and Stig Venaas for taking over as joint editors of this document
in the later stages of progressing to proposed standard.</t>
        </section>

    </middle>

    <back>
        <references title="Normative References">
           &rfc2119;
           &rfc8174;
           &rfc4604;
           &rfc5015;
	         &rfc7761;
	         &rfc4610;
	         &rfc4607;
	         &rfc3956;
	         &rfc4760;
	         &rfc5496;
	         &rfc5135;
		       &rfc8487;
           &rfc9300;

	    </references>

        <references title="Informative References">

          &rfc5059;
          &rfc3618;
          &rfc6831;
          &rfc6832;
          &rfc8059;
	    <?rfc include='reference.I-D.ietf-pim-jp-extensions-lisp'?>
<!-- draft-ietf-lisp-alt in C62 -->
	    <reference anchor="RFC6836">
  	        <front>
	            <title>Locator/ID Separation Protocol Alternative Topology (LISP+ALT)</title>
		    <author initials="D" surname="Farinacci">
		        <organization/>
   		    </author>
		    <author initials="V" surname="Fuller">
		        <organization/>
   		    </author>
		    <author initials="D" surname="Meyer">
		        <organization/>
   		    </author>
		    <author initials="D" surname="Lewis">
		        <organization/>
   		    </author>
        <date month="January" year="2013"/>
	        </front>
	        <seriesInfo name="RFC" value="6836"/>
	    </reference>


<!-- draft-ietf-mboned-mtrace-v2: AD is watching -->
	    <reference anchor="MTRACE">
  	        <front>
	            <title>Mtrace Version 2: Traceroute Facility for IP Multicast</title>
		    <author initials="H" surname="Asaeda">
		        <organization/>
   		    </author>
		    <author initials="W" surname="Lee" role="editor">
		        <organization/>
   		    </author>
        <date month="October" year="2012"/>
	        </front>
	        <seriesInfo name="Work in" value="Progress"/>
            </reference>

	    </references>

        <section title="Document Change Log">
          <t>[RFC Editor: Please delete this section on publication as RFC.]</t>

          <section title="Changes to draft-ietf-lisp-rfc6831bis-03">
            <t><list style="symbols">
	          <t>Posted Nov 2025.</t>
		      <t>Update document for comments from Luigi as prep for wGLC.</t>
            </list></t>
          </section>
          
          <section title="Changes to draft-ietf-lisp-rfc6831bis-02">
            <t><list style="symbols">
	          <t>Posted July 2025.</t>
		      <t>Update document timer and references.</t>
		      <t>Update Dave Meyer's email address.</t>
            </list></t>
          </section>


            <section title="Changes to draft-ietf-lisp-rfc6831bis-01">
            <t><list style="symbols">
	          <t>Posted January 2025 (Mike McBride).</t>
		      <t>Changed all instances of "core" to "underlay".</t>
		      <t>Changed "we see" to "there are".</t>
		      <t>Changed "RFC" to "document".</t>
		      <t>Updated the Requirements Notation.</t>
		      <t>Added a reference to RFC 7761 for the RPF definition.</t>
		      <t>Removed part of a sentence "...the exit is chosen according to routing policies..."</t>
		      <t>Rephrased sentence to: "Multicast state as it is stored in the core is either (S,G) state 
		      for sources in non-LISP sites or (RLOC,G) state for sources in LISP sites."</t>
		      <t>Added "...or it receives a Negative Map-Reply".</t>
		      <t>Added a reference to RFC8487 for MTRACE.</t>
		      <t>Moved a few downrefs that needed to be moved to the Informative section.</t>
		      <t>Added Mike and Stig to acknowledgements</t>
		      
            </list></t>
          </section>

          <section title="Changes to draft-ietf-lisp-rfc6831bis-00">
            <t><list style="symbols">
	          <t>Posted August 2024.</t>
		      <t>Make draft-farinacci-lisp-rfc6831bis-02 working group document draft-ietf-lisp-rfc6831bis-00.</t>
            </list></t>
          </section>

          <section title="Changes to draft-farinacci-lisp-rfc6831bis-02">
            <t><list style="symbols">
	          <t>Posted May 2024 (Vengada Prasad Govindan).</t>
		      <t>Added reference to RFC8059 </t>
            </list></t>
          </section>

          <section title="Changes to draft-farinacci-lisp-rfc6831bis-01">
            <t><list style="symbols">
	          <t>Posted May 2024 (Vengada Prasad Govindan).</t>
		      <t>Add support for unicast underlay in signal-based approach (RFC6831)</t>
            </list></t>
          </section>

          <section title="Changes to draft-farinacci-lisp-rfc6831bis-00">
            <t><list style="symbols">
	          <t>Posted May 2024.</t>
              <t>Starting with <xref target="RFC6831"/> to move it to a bis document for standards
              track.</t>
              <t>Changed references to standards track RFCs.</t>
              <t>Address comments from Prasad Govindan.</t>
            </list></t>
          </section>

    </section>

    </back>
</rfc>
