<?xml version="1.0" encoding="iso-8859-1" ?>
<?rfc toc="yes" ?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="yes" ?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>

<rfc category="std" ipr="trust200902" docName="draft-ietf-mpls-spring-lsp-ping-path-sid-01" consensus="true" submissionType="IETF">

<front>
        <title abbrev="LSP Ping for SR PSID"> Label Switched Path (LSP) Ping for Segment Routing (SR) 
		Path Segment Identifier with MPLS Data Planes
 </title>
 
  <author fullname="Xiao Min" initials="X" surname="Min">
      <organization>ZTE Corp.</organization>
     <address>
       <postal>
         <street/>

         <!-- Reorder these if your country does things differently -->

         <city>Nanjing</city>

         <region/>

         <code/>

         <country>China</country>
       </postal>

       <phone>+86 18061680168</phone>

       <email>xiao.min2@zte.com.cn</email>

       <!-- uri and facsimile elements may also be added -->
     </address>
    </author>
	
  <author fullname="Shaofu Peng" initials="S" surname="Peng">
      <organization>ZTE Corp.</organization>
     <address>
       <postal>
         <street/>

         <!-- Reorder these if your country does things differently -->

         <city>Nanjing</city>

         <region/>

         <code/>

         <country>China</country>
       </postal>

       <phone/>

       <email>peng.shaofu@zte.com.cn</email>

       <!-- uri and facsimile elements may also be added -->
     </address>
    </author>
	
  <author fullname="Liyan Gong" initials="L" surname="Gong">
      <organization>China Mobile</organization>
     <address>
       <postal>
         <street/>

         <!-- Reorder these if your country does things differently -->

         <city>Beijing</city>

         <region/>

         <code/>

         <country>China</country>
       </postal>

       <phone/>

       <email>gongliyan@chinamobile.com</email>

       <!-- uri and facsimile elements may also be added -->
     </address>
    </author>
	
  <author fullname="Rakesh Gandhi" initials="R" surname="Gandhi">
      <organization>Cisco Systems, Inc.</organization>
     <address>
       <postal>
         <street/>

         <!-- Reorder these if your country does things differently -->

         <city></city>

         <region/>

         <code/>

         <country>Canada</country>
       </postal>

       <phone/>

       <email>rgandhi@cisco.com</email>

       <!-- uri and facsimile elements may also be added -->
     </address>
    </author>
	
  <author fullname="Carlos Pignataro" initials="C" surname="Pignataro">
      <organization>North Carolina State University</organization>
     <address>
       <postal>
         <street/>

         <!-- Reorder these if your country does things differently -->

         <city></city>

         <region/>

         <code/>

         <country>United States of America</country>
       </postal>

       <phone/>

       <email>cpignata@gmail.com</email>
       <email>cmpignat@ncsu.edu</email>

       <!-- uri and facsimile elements may also be added -->
     </address>
    </author>
	
    <date year="2024"/>
  
    <area>Routing</area>
    <workgroup>MPLS Working Group</workgroup>

    <keyword>Request for Comments</keyword>
    <keyword>RFC</keyword>
    <keyword>Internet Draft</keyword>
    <keyword>I-D</keyword>

    <abstract>
  <t> Path Segment is a type of Segment Routing (SR) segment, and a Path Segment Identifier (PSID) is used to identify an 
  SR path. Path Segment can be used in an SR over MPLS (SR-MPLS) data plane. This document provides Target Forwarding Equivalence 
  Class (FEC) Stack TLV and sub-TLV definitions for PSID. </t>
    </abstract>
    
</front>
  
<middle>

  <section title="Introduction">
  
  <t> Path Segment is a type of Segment Routing (SR) segment, and a Path Segment Identifier (PSID) is used to identify an SR path. 
  PSID in MPLS-based segment routing networks is defined in <xref target="RFC9545"/>. </t>
  
  <t> As specified in <xref target="RFC9545"/>, PSID is a single label inserted by the ingress node of the SR path, and then processed 
  by the egress node of the SR path. The PSID is placed within the MPLS label stack as a label immediately following the last label of 
  the SR path. The egress node MUST pop the PSID. </t>
  
  <t> This document provides Target Forwarding Equivalence Class (FEC) Stack TLV and sub-TLV definitions for PSID. Procedures for 
  LSP Ping as defined in <xref target="RFC8287"/> and <xref target="RFC8690"/> are applicable to PSID as well. Note that LSP Traceroute 
  is left out of this document because the transit node is not involved in PSID processing. </t>
  
  </section>
  
  <section title="Conventions">
  
  <section title="Requirements Language">  
	<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="Terminology">
    <t> This document uses the terminology defined in <xref target="RFC3031"/>, <xref target="RFC8402"/>, and <xref target="RFC8029"/>, 
	readers are expected to be familiar with those terms. </t>
  </section>
  
  </section>
  
  <section title="Path Segment ID Sub-TLVs">

  <t> Analogous to what's defined in Section 5 of <xref target="RFC8287"/> and Section 4 of <xref target="I-D.ietf-mpls-sr-epe-oam"/>, 
  three new sub-TLVs are defined for the Target FEC Stack TLV (Type 1), the Reverse-Path Target FEC Stack TLV (Type 16), and the Reply 
  Path TLV (Type 21).</t>
  
  <figure>
  <artwork><![CDATA[
     Sub-Type    Sub-TLV Name
     --------    -----------------------------
      TBD1       SR Policy's PSID
      TBD2       SR Candidate Path's PSID
      TBD3       SR Segment List's PSID
  ]]></artwork>
  </figure>
  
  <t> As specified in Section 2 of <xref target="RFC9545"/>, a PSID is used to identify a segment list, some or all segment lists in a 
  Candidate path or an SR policy, so three different Target FEC Stack sub-TLVs need to be defined for PSID. When a PSID is used to identify 
  an SR Policy, the Target FEC Stack sub-TLV of the type "SR Policy's PSID" would be used to validate the control plane to forwarding plane 
  synchronization for this PSID; When a PSID is used to identify an SR Candidate Path, the Target FEC Stack sub-TLV of the type "SR Candidate 
  Path's PSID" would be used to validate the control plane to forwarding plane synchronization for this PSID; When a PSID is used to identify 
  a Segment List, the Target FEC Stack sub-TLV of the type "SR Segment List's PSID" would be used to validate the control plane to forwarding 
  plane synchronization for this PSID. Note that the three new Target FEC Stack sub-TLVs are mutual exclusive and they wouldn't be present in 
  one message simultaneously. </t>
  
  <section title="SR Policy's PSID">
  
  <t> The format of SR Policy's PSID sub-TLV is specified as below: </t>
  
  <figure anchor="Figure_1" title="SR Policy's PSID sub-TLV">
  <artwork align="left"> <![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          Type = TBD1          |             Length            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~                     Headend  (4/16 octets)                    ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       Color  (4 octets)                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~                    Endpoint  (4/16 octets)                    ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]>  </artwork>
  </figure>
  
      <t>Type
              <list>
                      <t>This field is set to the value (TBD1) which indicates that it's an 
					  SR Policy's PSID sub-TLV.
                      </t>
              </list>
      </t>
	  
      <t>Length
              <list>
                      <t>This field is set to the length of the sub-TLV's Value field in 
					  octets. If Headend and Endpoint fields are in IPv4 address format which 
					  is 4 octets long, it MUST be set to 12; If Headend and Endpoint fields 
					  are in IPv6 address format which is 16 octets long, it MUST be set to 36.
                      </t>
              </list>
      </t>
  
      <t>Headend
              <list>
                      <t>This field identifies the headend of an SR Policy, the same as defined 
					  in Section 2.1 of <xref target="RFC9256"/>. 
					  The headend is a 4-octet IPv4 address or a 16-octet IPv6 address.
                      </t>
              </list>
      </t>
  
      <t>Color
              <list>
                      <t>This field associates the SR Policy with an intent or objective (e.g., low latency), the same as defined 
					  in Section 2.1 of <xref target="RFC9256"/>.  
					  The color is an unsigned non-zero 4-octet integer value.
                      </t>
              </list>
      </t>
  
      <t>Endpoint
              <list>
                      <t>This field identifies the endpoint of an SR Policy, the same as defined 
					  in Section 2.1 of <xref target="RFC9256"/>.  
					  The endpoint is a 4-octet IPv4 address or a 16-octet IPv6 address.
                      </t>
              </list>
      </t>
  
  </section>
  
  <section title="SR Candidate Path's PSID">
  
  <t> The format of SR Candidate Path's PSID sub-TLV is specified as below: </t>
  
  <figure anchor="Figure_2" title="SR Candidate Path's PSID sub-TLV">
  <artwork align="left"> <![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          Type = TBD2          |             Length            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~                     Headend  (4/16 octets)                    ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       Color  (4 octets)                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~                    Endpoint  (4/16 octets)                    ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Protocol-Origin|                    Reserved                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
|                                                               |
|                  Originator  (20 octets)                      |
|                                                               |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               Discriminator  (4 octets)                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]>  </artwork>
  </figure>
  
      <t>Type
              <list>
                      <t>This field is set to the value (TBD2) which indicates that it's an 
					  SR Candidate Path's PSID sub-TLV.
                      </t>
              </list>
      </t>
	  
      <t>Length
              <list>
                      <t>This field is set to the length of the sub-TLV's Value field in 
					  octets. If Headend and Endpoint fields are in IPv4 address format which 
					  is 4 octets long, it MUST be set to 40; If Headend and Endpoint fields 
					  are in IPv6 address format which is 16 octets long, it MUST be set to 64.
                      </t>
              </list>
      </t>
  
      <t>Headend
              <list>
                      <t>This field identifies the headend of an SR Policy, the same as defined 
					  in Section 2.1 of <xref target="RFC9256"/>. 
					  The headend is a 4-octet IPv4 address or a 16-octet IPv6 address.
                      </t>
              </list>
      </t>
  
      <t>Color
              <list>
                      <t>This field associates the SR Policy with an intent or objective (e.g., low latency), the same as defined 
					  in Section 2.1 of <xref target="RFC9256"/>.  
					  The color is an unsigned non-zero 4-octet integer value.
                      </t>
              </list>
      </t>
  
      <t>Endpoint
              <list>
                      <t>This field identifies the endpoint of an SR Policy, the same as defined 
					  in Section 2.1 of <xref target="RFC9256"/>.  
					  The endpoint is a 4-octet IPv4 address or a 16-octet IPv6 address.
                      </t>
              </list>
      </t>
  
      <t>Protocol-Origin
              <list>
                      <t>This field is associated with the mechanism or protocol used for signaling/provisioning the SR Policy, the same as 
					  defined in Section 2.3 of <xref target="RFC9256"/>. 
					  The protocol-origin of a candidate path is a 1-octet value indicating PCEP, BGP SR Policy, or Via Configuration.
					  The value of protocol-origin is set as specified in Section 2.3 of <xref target="RFC9256"/>.
                      </t>
              </list>
      </t>
  
      <t> Originator
              <list>
                      <t>This field identifies the node that provisioned or signaled the candidate path on the headend, the same as defined 
					  in Section 2.4 of <xref target="RFC9256"/>. 
					  The originator is a 20-octet numerical value formed by the concatenation of the fields of the tuple 
					  &lt;Autonomous System Number (ASN), node-address&gt;, among which ASN is a 4-octet number and node address is a 
					  16-octet value (an IPv6 address or an IPv4 address encoded in the lowest 4 octets). 
					  When procotol-origin is respectively indicating Via Configuration, PCEP, or BGP SR Policy, 
					  the value of originator is set as specified in Section 2.4 of <xref target="RFC9256"/>.
                      </t>
              </list>
      </t>
  
      <t>Discriminator
              <list>
                      <t>This field uniquely identifies a candidate path within the context of an SR policy from a specific protocol-origin, 
					  the same as defined in Section 2.5 of <xref target="RFC9256"/>.  
					  The discriminator is a 4-octet value. 
					  When protocol-origin is respectively indicating Via Configuration, PCEP, or BGP SR Policy, 
					  the value of discriminator is set as specified in Section 2.5 of <xref target="RFC9256"/>.
                      </t>
              </list>
      </t>  
  
  </section>
  
  <section title="SR Segment List's PSID">
  
  <t> The format of SR Segment List's PSID sub-TLV is specified as below: </t>
  
  <figure anchor="Figure_3" title="SR Segment List's PSID sub-TLV">
  <artwork align="left"> <![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          Type = TBD3          |             Length            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~                     Headend  (4/16 octets)                    ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       Color  (4 octets)                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~                    Endpoint  (4/16 octets)                    ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Protocol-Origin|                    Reserved                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
|                                                               |
|                  Originator  (20 octets)                      |
|                                                               |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               Discriminator  (4 octets)                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             Segment-List-ID  (4 octets)                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]>  </artwork>
  </figure>
  
      <t>Type
              <list>
                      <t>This field is set to the value (TBD3) which indicates that it's an 
					  SR Segment List's PSID sub-TLV.
                      </t>
              </list>
      </t>
	  
      <t>Length
              <list>
                      <t>This field is set to the length of the sub-TLV's Value field in 
					  octets. If Headend and Endpoint fields are in IPv4 address format which 
					  is 4 octets long, it MUST be set to 44; If Headend and Endpoint fields 
					  are in IPv6 address format which is 16 octets long, it MUST be set to 68.
                      </t>
              </list>
      </t>

      <t>Headend
              <list>
                      <t>This field identifies the headend of an SR Policy, the same as defined 
					  in Section 2.1 of <xref target="RFC9256"/>. 
					  The headend is a 4-octet IPv4 address or a 16-octet IPv6 address.
                      </t>
              </list>
      </t>
  
      <t>Color
              <list>
                      <t>This field associates the SR Policy with an intent or objective (e.g., low latency), the same as defined 
					  in Section 2.1 of <xref target="RFC9256"/>.  
					  The color is an unsigned non-zero 4-octet integer value.
                      </t>
              </list>
      </t>
  
      <t>Endpoint
              <list>
                      <t>This field identifies the endpoint of an SR Policy, the same as defined 
					  in Section 2.1 of <xref target="RFC9256"/>.  
					  The endpoint is a 4-octet IPv4 address or a 16-octet IPv6 address.
                      </t>
              </list>
      </t>
  
      <t>Protocol-Origin
              <list>
                      <t>This field is associated with the mechanism or protocol used for signaling/provisioning the SR Policy, the same as 
					  defined in Section 2.3 of <xref target="RFC9256"/>. 
					  The protocol-origin of a candidate path is a 1-octet value indicating PCEP, BGP SR Policy, or Via Configuration.
					  The value of protocol-origin is set as specified in Section 2.3 of <xref target="RFC9256"/>.
                      </t>
              </list>
      </t>
  
      <t> Originator
              <list>
                      <t>This field identifies the node that provisioned or signaled the candidate path on the headend, the same as defined 
					  in Section 2.4 of <xref target="RFC9256"/>. 
					  The originator is a 20-octet numerical value formed by the concatenation of the fields of the tuple 
					  &lt;Autonomous System Number (ASN), node-address&gt;, among which ASN is a 4-octet number and node address is a 
					  16-octet value (an IPv6 address or an IPv4 address encoded in the lowest 4 octets). 
					  When procotol-origin is respectively indicating Via Configuration, PCEP, or BGP SR Policy, 
					  the value of originator is set as specified in Section 2.4 of <xref target="RFC9256"/>.
                      </t>
              </list>
      </t>
  
      <t>Discriminator
              <list>
                      <t>This field uniquely identifies a candidate path within the context of an SR policy from a specific protocol-origin, 
					  the same as defined in Section 2.5 of <xref target="RFC9256"/>.  
					  The discriminator is a 4-octet value. 
					  When protocol-origin is respectively indicating Via Configuration, PCEP, or BGP SR Policy, 
					  the value of discriminator is set as specified in Section 2.5 of <xref target="RFC9256"/>.
                      </t>
              </list>
      </t>  
  
      <t>Segment-List-ID
              <list>
                      <t>This field identifies an SR path within the context of a candidate path of an SR Policy, the 
					  same as "Path ID" defined in Section 4.2 of <xref target="I-D.ietf-pce-multipath"/>, or "Segment List ID" 
					  defined in Section 2.1 of <xref target="I-D.ietf-idr-sr-policy-seglist-id"/>. 
					  The segment-list-id is a 4-octet identifier of a segment list.
                      </t>
              </list>
      </t>  
	  
  </section>
  
  </section>
  
  <section title="PSID FEC Validation">

  <t> The MPLS LSP Ping procedures may be initiated by the headend of the Segment Routing path or a 
  centralized topology-aware data plane monitoring system as described in <xref target="RFC8403"/>. For the 
  PSID, the responder nodes that receive echo request and send echo reply MUST be the endpoint of the 
  Segment Routing path. </t>
  
  <t> When an endpoint receives the LSP echo request packet with top FEC being the PSID, it SHOULD perform 
  validity checks on the content of the PSID FEC Stack sub-TLV. The basic length check should be performed on the 
  received FEC.</t>
  
  <figure>
  <artwork><![CDATA[
    SR Policy's PSID
    ------------------
    Length = 12 or 36 octets
	
    SR Candidate Path's PSID
    ------------------
    Length = 40 or 64 octets
	
    SR Segment List's PSID
    ------------------
    Length = 44 or 68 octets
  ]]></artwork>
  </figure>
  
  <t> If a malformed FEC Stack sub-TLV is received, then a return code of 1, "Malformed echo request received" as defined 
  in <xref target="RFC8029"/> SHOULD be sent.  The below section augments Section 7.4 of <xref target="RFC8287"/>. </t>
  
  <t>
  <list>
          <t>4a. Segment Routing PSID Validation: </t>
          <t>If the Label-stack-depth is 0 and the Target FEC Stack sub-TLV 
		  at FEC-stack-depth is TBD1 (SR Policy's PSID sub-TLV), { 
          <list>
          <t>Set the Best-return-code to 10, "Mapping for this FEC is not
            the given label at stack-depth &lt;RSC&gt;" if any below
            conditions fail (the notation &lt;RSC&gt; refers to the Return Subcode): 
          <list style="symbols">
          <t>Validate that the PSID is signaled or provisioned for the SR Policy { 
          <list style="symbols">
		  
          <t>Validate that the signaled or provisioned headend, color and end-point for the PSID, matches with the 
		  corresponding fields in the received SR Policy's PSID sub-TLV. </t>
		  
          </list>	
	      } </t>	  
		  
          </list>			  
          } </t>
		  
          <t>If all the above validations have passed, set the return code to 3
            "Replying router is an egress for the FEC at stack-depth &lt;RSC&gt;". </t>
			
          <t>Set FEC-Status to 1 and return. </t>
		  
          </list>		  
          } </t>
		  
          <t>Else, if the Label-stack-depth is 0 and the Target FEC Stack sub-TLV 
		  at FEC-stack-depth is TBD2 (SR Candidate Path's PSID sub-TLV), { 
          <list>
          <t>Set the Best-return-code to 10, "Mapping for this FEC is not
            the given label at stack-depth &lt;RSC&gt;" if any below
            conditions fail: 
          <list style="symbols">
          <t>Validate that the PSID is signaled or provisioned for the SR Candidate Path { 
          <list style="symbols">
		  
          <t>When the Protocol-Origin field in the received SR Candidate Path's PSID sub-TLV is a value indicating PCEP, "PCEP" 
		  is the used signaling protocol. And then validate that the PSID matches with the tuple identifying 
		  the SR Candidate Path within PCEP { 
          <list style="symbols">
		  
          <t>Validate that the signaled headend, color, end-point, originator ASN, originator address and discriminator 
		  defined in <xref target="I-D.ietf-pce-segment-routing-policy-cp"/> and <xref target="I-D.ietf-pce-sr-path-segment"/>, 
		  for the PSID, matches with the corresponding fields in the received SR Candidate Path's PSID sub-TLV. </t>
		  
          </list>	
	      } </t>

		  
          <t>When the Protocol-Origin field in the received SR Candidate Path's PSID sub-TLV is a value indicating BGP SR Policy, "BGP SR Policy" 
		  is the used signaling protocol. And then validate that the PSID matches with the tuple identifying 
		  the SR Candidate Path within BGP SR Policy {
          <list style="symbols">
		  
          <t>Validate that the signaled headend, policy color, endpoint, ASN, BGP Router-ID and distinguisher defined in 
		  <xref target="I-D.ietf-idr-segment-routing-te-policy"/> and <xref target="I-D.ietf-idr-sr-policy-path-segment"/>, 
		  for the PSID, matches with the corresponding fields in the received SR Candidate Path's PSID sub-TLV. </t>
	  
          </list>	
		  } </t>
		  
          <t>When the Protocol-Origin field in the received SR Candidate Path's PSID sub-TLV is a value indicating Via Configuration, "Via Configuration" 
		  is the used provisioning mechanism. And then validate that the PSID matches with the tuple identifying 
		  the SR Candidate Path within Configuration { 
          <list style="symbols">
		  
          <t>Validate that the provisioned headend, color, endpoint, originator and discriminator, for the PSID, matches 
		  with the corresponding fields in the received SR Candidate Path's PSID sub-TLV. </t>
		  		  
          </list>	
          } </t>		  
		  
          </list>			  
          } </t>
		  
          </list>
          </t>
		  
          <t>If all the above validations have passed, set the return code to 3
            "Replying router is an egress for the FEC at stack-depth &lt;RSC&gt;". </t>
			
          <t>Set FEC-Status to 1 and return. </t>
		  
          </list>		  
          } </t>
		  
          <t>Else, if the Label-stack-depth is 0 and the Target FEC Stack sub-TLV
         at FEC-stack-depth is TBD3 (SR Segment List's PSID sub-TLV), { 
          <list>
          <t>Set the Best-return-code to 10, "Mapping for this FEC is not
            the given label at stack-depth &lt;RSC&gt;" if any below
            conditions fail: 
          <list style="symbols">
          <t>Validate that the PSID is signaled or provisioned for the SR Segment List { 
          <list style="symbols">
		  
          <t>When the Protocol-Origin field in the received SR Segment List's PSID sub-TLV is a value indicating PCEP, "PCEP" 
		  is the used signaling protocol. And then validate that the PSID matches with the tuple identifying 
		  the SR Segment List within PCEP { 
          <list style="symbols">
		  
          <t>Validate that the signaled headend, color, end-point, originator ASN, originator address and discriminator 
		  defined in <xref target="I-D.ietf-pce-segment-routing-policy-cp"/> and <xref target="I-D.ietf-pce-sr-path-segment"/>, 
		  and the signaled Path ID defined in <xref target="I-D.ietf-pce-multipath"/>, for the PSID, matches with the 
		  corresponding fields in the received SR Segment List's PSID sub-TLV. </t>
		  
          </list>	
          } </t>		  
		  
          <t>When the Protocol-Origin field in the received SR Segment List's PSID sub-TLV is a value indicating BGP SR Policy, "BGP SR Policy" 
		  is the used signaling protocol. And then validate that the PSID matches with the tuple identifying 
		  the SR Segment List within BGP SR Policy {
          <list>
		  
          <t>Validate that the signaled headend, policy color, endpoint, ASN, BGP Router-ID and distinguisher defined in 
		  <xref target="I-D.ietf-idr-segment-routing-te-policy"/> and <xref target="I-D.ietf-idr-sr-policy-path-segment"/>, 
		  and the signaled Segment List ID defined in <xref target="I-D.ietf-idr-sr-policy-seglist-id"/>, for the PSID, matches 
		  with the corresponding fields in the received SR Segment List's PSID sub-TLV. </t>
		  
          </list>	
          } </t>		  
		  
          <t>When the Protocol-Origin field in the received SR Segment List's PSID sub-TLV is a value indicating Via Configuration, "Via Configuration" 
		  is the used provisioning mechanism. And then validate that the PSID matches with the tuple identifying 
		  the SR Segment List within Configuration { 
          <list style="symbols">
		  
          <t>Validate that the provisioned headend, color, endpoint, originator, discriminator and Segment-List-ID, for the PSID, matches 
		  with the corresponding fields in the received SR Segment List's PSID sub-TLV. </t>

          </list>	
          } </t>		  
		  
          </list>			  
          } </t>
		  
          </list>
          </t>
		  
          <t>If all the above validations have passed, set the return code to 3
            "Replying router is an egress for the FEC at stack-depth &lt;RSC&gt;". </t>
			
          <t>Set FEC-Status to 1 and return. </t>
		  
          </list>		  
          } </t>
		  
  </list>
  </t> 

  </section>
  
  <section title="Security Considerations">
  
  <t> This document defines additional MPLS LSP Ping sub-TLVs and follows the mechanisms defined in <xref target="RFC8029"/>. 
  All the security considerations defined in <xref target="RFC8029"/> will be applicable for this document and, in addition, 
  the MPLS LSP Ping sub-TLVs defined in this document do not impose any additional security challenges to be considered.</t>
  
  </section>
  
  <section title="IANA Considerations"> 
  
  <t> IANA is requested to assign three new sub-TLVs from the "Sub-TLVs for TLV Types 1, 16, and 21" sub-registry in the "TLVs" 
  registry of the "Multiprotocol Label Switching (MPLS) Label Switched Paths (LSPs) Ping Parameters" name space. The Standards 
  Action range that requires an error message to be returned if the sub-TLV is not recognized (range 0-16383) should be used.</t>
  
  <figure>
  <artwork><![CDATA[
  Sub-Type   Sub-TLV Name                    Reference
  --------   -----------------------------   ------------
   TBD1      SR Policy's PSID            Section 3.1
   TBD2      SR Candidate Path's PSID    Section 3.2
   TBD3      SR Segment List's PSID      Section 3.3
  ]]></artwork>
  </figure>
  
  </section>

  <section title="Acknowledgements">
  <t> The authors would like to acknowledge Loa Andersson and Detao Zhao for their thorough review and very helpful comments. </t>
  <t> The authors would like to acknowledge Yao Liu for the very helpful f2f discussion.</t>
  </section>  
  
</middle>
  
<back>
    <references title="Normative References">
     <?rfc include="reference.RFC.9545"?>
     <?rfc include="reference.RFC.8287"?>
     <?rfc include="reference.RFC.8690"?>
     <?rfc include="reference.RFC.2119"?>
     <?rfc include="reference.RFC.8174"?>
     <?rfc include="reference.RFC.8029"?>
     <?rfc include="reference.RFC.9256"?>
    </references>
	
    <references title="Informative References">
     <?rfc include="reference.RFC.3031"?>
     <?rfc include="reference.RFC.8402"?>
     <?rfc include="reference.RFC.8403"?>
     <?rfc include="reference.I-D.ietf-mpls-sr-epe-oam"?>
     <?rfc include="reference.I-D.ietf-pce-multipath"?>
     <?rfc include="reference.I-D.ietf-idr-sr-policy-seglist-id"?>
     <?rfc include="reference.I-D.ietf-idr-segment-routing-te-policy"?>
     <?rfc include="reference.I-D.ietf-idr-sr-policy-path-segment"?>
     <?rfc include="reference.I-D.ietf-pce-segment-routing-policy-cp"?>
     <?rfc include="reference.I-D.ietf-pce-sr-path-segment"?>
    </references>	
</back>
</rfc>
