<?xml version="1.0" encoding="utf-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.17 (Ruby 3.1.2) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

<!ENTITY I-D.ietf-spring-sr-replication-segment SYSTEM "https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-spring-sr-replication-segment.xml">
<!ENTITY RFC6388 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6388.xml">
<!ENTITY RFC4875 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4875.xml">
<!ENTITY RFC8986 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8986.xml">
<!ENTITY RFC3471 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3471.xml">
<!ENTITY I-D.ietf-pim-sr-p2mp-policy SYSTEM "https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-pim-sr-p2mp-policy.xml">
<!ENTITY I-D.ietf-pce-sr-p2mp-policy SYSTEM "https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-pce-sr-p2mp-policy.xml">
<!ENTITY I-D.ietf-idr-sr-p2mp-policy SYSTEM "https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-idr-sr-p2mp-policy.xml">
<!ENTITY I-D.ietf-bess-bgp-multicast-controller SYSTEM "https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-bess-bgp-multicast-controller.xml">
<!ENTITY RFC6241 SYSTEM "https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6241.xml">
<!ENTITY I-D.li-pce-multicast SYSTEM "https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.li-pce-multicast.xml">
]>

<?rfc comments="yes"?>

<rfc ipr="trust200902" docName="draft-zzhang-mpls-mldp-rsvp-p2mp-srv6-01" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="SRv6 mLDP/RSVP P2MP">mLDP/RSVP-TE P2MP Tunnel with SRv6 SID</title>

    <author initials="Z." surname="Zhang" fullname="Zhaohui Zhang">
      <organization>Juniper Networks</organization>
      <address>
        <email>zzhang@juniper.net</email>
      </address>
    </author>
    <author initials="P." surname="Beeram" fullname="Vishnu Pavan Beeram">
      <organization>Juniper Networks</organization>
      <address>
        <email>vbeeram@juniper.net</email>
      </address>
    </author>
    <author initials="R." surname="Parekh" fullname="Rishabh Parekh">
      <organization>Cisco</organization>
      <address>
        <email>riparekh@cisco.com</email>
      </address>
    </author>
    <author initials="I." surname="Wijnands" fullname="IJsbrand Wijnands">
      <organization>Arrcus</organization>
      <address>
        <email>ice@braindump.be</email>
      </address>
    </author>
    <author initials="R." surname="Chen" fullname="Ran Chen">
      <organization>ZTE</organization>
      <address>
        <email>chen.ran@zte.com.cn</email>
      </address>
    </author>

    <date year="2022" month="December" day="30"/>

    <area>Routing</area>
    <workgroup>mpls</workgroup>
    <keyword>mldp, rsvp, p2mp, srv6</keyword>

    <abstract>


<t>This document specifies extensions to mLDP and RSVP-TE P2MP protocols to
set up mLDP and RSVP-TE P2MP tunnels with SRv6 SIDs intead of MPLS labels.</t>



    </abstract>



  </front>

  <middle>


<section anchor="introduction"><name>Introduction</name>

<t><xref target="I-D.ietf-spring-sr-replication-segment"/> specifies an SR replication segment
as a logical construct which connects a Replication Node to a set of Downstream
Nodes. A replicaiton segment is identified by &lt;replication-id, node-id&gt; in
control plane.</t>

<t>SR replication segments are building blocks of SR-P2MP replication trees.
As specified in <xref target="I-D.ietf-pim-sr-p2mp-policy"/>, an SR-P2MP tree is the
concatenation of replication segments installed on tree nodes (the packets
carried by the tree do not carry a concatenation of replication SIDs for
those segments). A controller calculates the P2MP tree, and signals individual
replication segments onto tree nodes via PCEP <xref target="I-D.ietf-pce-sr-p2mp-policy"/>,
BGP <xref target="I-D.ietf-idr-sr-p2mp-policy"/> <xref target="I-D.ietf-bess-bgp-multicast-controller"/>, Netconf <xref target="RFC6241"/>
or other means.</t>

<t>Each tree is identified by a &lt;root-id, tree-id&gt; tuple and has a
corresponing SR P2MP Policy, which may have multiple candidate paths.
As such, the replication-id of a replication segment is a &lt;root-id, tree-id,
candidate-path-id&gt; tuple.</t>

<t>With MPLS data plane, the forwarding state for a replication segment is
identical to the forwarding state on mLDP/RSVP-TE P2MP tree nodes
(<xref target="RFC6388"/>, <xref target="RFC4875"/>), i.e.,
in the form of "incoming label -&gt; (labeled) replication branches". In
other words, the only difference between mLDP/RSVP-TE P2MP and SR-MPLS P2MP is in
the control plane - instead of hop-by-hop signaling, SR-P2MP signaling
is from a controller and with a different control plane identification.</t>

<t>With SRv6 data plane, while SRv6 SID instead of MPLS labels are used,
the FUNCT bits in the LOC:FUNCT:ARG format of SID encoding <xref target="RFC8986"/> are
the equivalent of MPLS label, while the LOC bits get the packet to local or
downstream nodes. Nonetheless, for operators who does not use MPLS data palne,
SRv6 P2MP is a natural choice.</t>

<t>However, even an SRv6-only operator may want to use another option to set
up its P2MP trees, instead of using controller-based signaling with
&lt;root-id, tree-id, candidate-path-id&gt; identification.</t>

<t>Consider an existing MVPN deployment with PE-PE mLDP or RSVP-TE P2MP tunnels
and the provider network is being transitioned from MPLS to SRv6 part by
part incrementally. Considering the following three factors:</t>

<t><list style="symbols">
  <t>The MVPN PE-PE tunnel is mLDP/RSVP-TE P2MP so during the transition it is
ideal to keep using mLDP FEC or RSVP-TE P2MP Session Object to identify
the tunnel in the control plane</t>
  <t>The are some border nodes between the MPLS part and SRv6 part of the
network to do MPLS-SRv6 interworking</t>
  <t>Even after the entire network is converted to SRv6, hop-by-hop mLDP/RSVP-TE
signaling may still be preferred because controller-based tree calculation
and signaling may not be needed or desired for certain reasons</t>
</list></t>

<t>Therefore, it is desired to have P2MP trees identified by mLDP FEC or
RSVP Session Object in the control plane but with SRv6 data plane, and there
are two options for that:</t>

<t><list style="symbols">
  <t>Use controller to signal mLDP/RSVP-TE trees with SRv6 SIDs</t>
  <t>Extend mLDP/RSVP-TE P2MP protocol to support SRv6 SIDs</t>
</list></t>

<t>The first option will be specified in
<xref target="I-D.ietf-bess-bgp-multicast-controller"/> and <xref target="I-D.li-pce-multicast"/>
for BGP and PCEP signaling respectively, and this document specifies
the second option.</t>

</section>
<section anchor="mldp-p2mp-procedures"><name>mLDP P2MP Procedures</name>

<t>There are two options to use mLDP protocol and procedures to signal mLDP
tunnels for SRv6 data plane, as specified in the following two sections.</t>

<section anchor="implicit"><name>SRv6 SIDs Constructed from Signaled Labels</name>

<t>In this simpliest option, no protocol extension is needed. MPLS labels
in various mLDP messages are treated as the FUNCT bits of the
LOC:FUNCT:ARG format of SRv6 SID encoding.</t>

<t>All tree nodes MUST have the following provisioned:</t>

<t><list style="symbols">
  <t>Whether the signaled labels to/from all neighbors are real MPLS labels
or FUNCT bits of SRv6 SIDs, or,</t>
  <t>Whether the signaled labels to/from each neighbor are real MPLS labels
or FUNCT bits of SRv6 SIDs. This allows a node to interwork between MPLS
and SRv6 parts of the network.</t>
  <t>If the FUNCT bits of SRv6 SIDs are more than 20-bit, each node MUST be
provisioned with a consitent FUNCT "prefix" to be combined with signaled
"label".</t>
</list></t>

<t>With the above provisioning, a node determines if a signaled label is a
real MPLS label for MPLS data planes, or is to be treated as the FUNCT bits
of an SRv6 SID, and installs forwarding state accordingly.</t>

</section>
<section anchor="explicit"><name>Explicitly Signaled SRv6 SIDs</name>

<t>With this options, mLDP signaling is extended as following.</t>

<t>A new V-bit is defined in the P2MP Capability TLV to indicate that this node
uses SRv6 SIDs:</t>

<figure><artwork><![CDATA[
   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |1|0| P2MP Capability (0x0508)  |      Length (= 1)             |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |S|V| Reserved  |
  +-+-+-+-+-+-+-+-+
]]></artwork></figure>

<t>An SRv6 SID TLV is defined to signal the SRv6 SID instead of a label:</t>

<figure><artwork><![CDATA[
   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |0|0| SRv6 SID (TBD)            |        Length (24)            |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  ~              SRv6 SID Value                                   ~
  +---------------------------------------------------------------+
  |     SRv6 Endpoint Behavior    |        RESERVED               |                         
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  | Locator Block | Locator Node  | Function      | Argument      |
  | Length        | Length        | Length        | Length        |          
  +-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork></figure>

<t>The SRv6 SID TLV is used in place of Generic Label TLV if and only if
the neighbor has indicated via the V-bit in the P2MP Capability TLV that
it uses SRv6 SIDs.</t>

<dl>
  <dt>SRv6 SID Value (16 octets):</dt>
  <dd>
    <t>This field encodes an SRv6 SID, as defined in <xref target="RFC8986"></xref>.</t>
  </dd>
  <dt>SRv6 Endpoint Behavior (2 octets):</dt>
  <dd>
    <t>This field encodes the SRv6 Endpoint Behavior codepoint value that
is associated with the SRv6 SID.  The codepoints used are from
IANA's "SRv6 Endpoint Behaviors" subregistry under the "Segment
Routing" registry that was introduced by <xref target="RFC8986"/>.  The opaque
SRv6 Endpoint Behavior (i.e., value 0xFFFF) MAY be used when the
advertising router wishes to abstract the actual behavior of its
locally instantiated SRv6 SID.</t>
  </dd>
  <dt>RESERVED (2 octet):</dt>
  <dd>
    <t>This field MUST be set to 0 by the sender and ignored by the
receiver.</t>
  </dd>
  <dt>Locator Block Length (1 octet):</dt>
  <dd>
    <t>This field contains the length of the SRv6 SID Locator Block in
bits.</t>
  </dd>
  <dt>Locator Node Length (1 octet):</dt>
  <dd>
    <t>This field contains the length of the SRv6 SID Locator Node in
bits.</t>
  </dd>
  <dt>Function Length (1 octet):</dt>
  <dd>
    <t>This field contains the length of the SRv6 SID Function in bits.</t>
  </dd>
  <dt>Argument Length (1 octet):</dt>
  <dd>
    <t>This field contains the length of the SRv6 SID Argument in bits.</t>
  </dd>
</dl>

<t>The choice of SRv6 Endpoint Behavior of the SRv6 SID is entirely up
to the originator of the TLV.  While this document expects End.Replicate <xref target="I-D.ietf-spring-sr-replication-segment"/>, the reception of other SRv6
Endpoint Behaviors (e.g., new behaviors that may be introduced in the
future) is not considered an error.  An unrecognized SRv6 Endpoint
Behavior MUST NOT be considered invalid by the receiver. An implementation MAY log a
rate-limited warning when it receives an unexpected behavior.</t>

</section>
<section anchor="mldp-over-targeted-sessions"><name>mLDP over Targeted Sessions</name>

<t>To be added.</t>

</section>
<section anchor="multi-topology-and-flexalgo-considerations"><name>Multi-topology and FlexAlgo Considerations</name>

<t>To be added.</t>

</section>
</section>
<section anchor="rsvp-te-p2mp-procedures"><name>RSVP-TE P2MP Procedures</name>

<t>Similarly, there are two options to use RSVP-TE P2MP protocol and procedures
to signal RSVP-TE P2MP tunnels for SRv6 data plane, as specified in the
following two sections.</t>

<section anchor="srv6-sids-constructed-from-signaled-labels"><name>SRv6 SIDs Constructed from Signaled Labels</name>

<t>This is the same as <xref target="implicit"/>.</t>

</section>
<section anchor="explicitly-signaled-srv6-sids"><name>Explicitly Signaled SRv6 SIDs</name>

<t>Similar to <xref target="explicit"/>, RSVP-TE P2MP signaling is extended as following:</t>

<section anchor="hello-extension"><name>Hello Extension</name>

<t>This is to indicate a node uses SRv6 SIDs.
To be expanded.</t>


</section>
<section anchor="label-object-for-srv6-sid"><name>Label Object for SRv6 SID</name>

<t>A new C-type (TBD) is defined for the Label Object to indicate an IPv6 address
as SRv6 SID:</t>

<figure><artwork><![CDATA[
            0             1              2             3
     +-------------+-------------+-------------+-------------+
     |       Length (28)         |  Class (16) | C-Type (TBD)|
     +-------------+-------------+-------------+-------------+
     //                SRv6 SID Value                       //
     +-------------+-------------+-------------+-------------+
     |   SRv6 Endpoint Behavior  |       RESERVED            |                         
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     | Locator     | Locator Node| Function    | Argument    |
     | Block Length| Length      | Length      | Length      |          
     +-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+-+-+-+
]]></artwork></figure>

<t>The C-Type TBD Label Object is used in place of C-Type 1 Label Object if and
only if the neighbor has indicated via Hello that it uses SRv6 SIDs.</t>

<dl>
  <dt>SRv6 SID Value (16 octets):</dt>
  <dd>
    <t>This field encodes an SRv6 SID, as defined in <xref target="RFC8986"></xref>.</t>
  </dd>
  <dt>SRv6 Endpoint Behavior (2 octets):</dt>
  <dd>
    <t>This field encodes the SRv6 Endpoint Behavior codepoint value that
is associated with the SRv6 SID.  The codepoints used are from
IANA's "SRv6 Endpoint Behaviors" subregistry under the "Segment
Routing" registry that was introduced by <xref target="RFC8986"/>.  The opaque
SRv6 Endpoint Behavior (i.e., value 0xFFFF) MAY be used when the
advertising router wishes to abstract the actual behavior of its
locally instantiated SRv6 SID.</t>
  </dd>
  <dt>RESERVED (2 octet):</dt>
  <dd>
    <t>This field MUST be set to 0 by the sender and ignored by the
receiver.</t>
  </dd>
  <dt>Locator Block Length (1 octet):</dt>
  <dd>
    <t>This field contains the length of the SRv6 SID Locator Block in
bits.</t>
  </dd>
  <dt>Locator Node Length (1 octet):</dt>
  <dd>
    <t>This field contains the length of the SRv6 SID Locator Node in
bits.</t>
  </dd>
  <dt>Function Length (1 octet):</dt>
  <dd>
    <t>This field contains the length of the SRv6 SID Function in bits.</t>
  </dd>
  <dt>Argument Length (1 octet):</dt>
  <dd>
    <t>This field contains the length of the SRv6 SID Argument in bits.</t>
  </dd>
</dl>

<t>The choice of SRv6 Endpoint Behavior of the SRv6 SID is entirely up
to the originator of the TLV.  While this document expects End.Replicate <xref target="I-D.ietf-spring-sr-replication-segment"/>, the reception of other SRv6
Endpoint Behaviors (e.g., new behaviors that may be introduced in the
future) is not considered an error.  An unrecognized SRv6 Endpoint
Behavior MUST NOT be considered invalid by the receiver. An implementation MAY log a
rate-limited warning when it receives an unexpected behavior.</t>

</section>
</section>
</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>To be added.</t>

</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>To be added.</t>


</section>


  </middle>

  <back>


    <references title='Normative References'>

&I-D.ietf-spring-sr-replication-segment;
&RFC6388;
&RFC4875;
&RFC8986;
&RFC3471;


    </references>

    <references title='Informative References'>

&I-D.ietf-pim-sr-p2mp-policy;
&I-D.ietf-pce-sr-p2mp-policy;
&I-D.ietf-idr-sr-p2mp-policy;
&I-D.ietf-bess-bgp-multicast-controller;
&RFC6241;
&I-D.li-pce-multicast;


    </references>



  </back>

<!-- ##markdown-source:
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

-->

</rfc>

