<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
<!ENTITY RFC2119 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC8174 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
<!ENTITY RFC5440 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5440.xml">
<!ENTITY RFC3704 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3704.xml">
<!ENTITY RFC8231 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8231.xml">
<!ENTITY RFC5394 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5394.xml">
<!ENTITY RFC4655 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4655.xml">
<!ENTITY RFC8051 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8051.xml">
<!ENTITY RFC8346 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8346.xml">
<!ENTITY I-D.ietf-savnet-intra-domain-architecture SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-savnet-intra-domain-architecture.xml">
<!ENTITY I-D.ietf-savnet-inter-domain-architecture SYSTEM "https://datatracker.ietf.org/doc/bibxml3/draft-ietf-savnet-inter-domain-architecture.xml">
<!ENTITY I-D.ietf-savnet-intra-domain-problem-statement SYSTEM "https://datatracker.ietf.org/doc/bibxml3/draft-ietf-savnet-intra-domain-problem-statement.xml">
<!ENTITY I-D.ietf-savnet-inter-domain-problem-statement SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-savnet-inter-domain-problem-statement.xml">
<!ENTITY I-D.ietf-savnet-general-sav-capabilities SYSTEM "https://datatracker.ietf.org/doc/bibxml3/draft-ietf-savnet-general-sav-capabilities.xml">
]>

<?rfc toc="yes" ?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="yes" ?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" ipr="trust200902" docName="draft-song-pce-pcep-sav-02" consensus="true" submissionType="IETF" tocInclude="true" symRefs="true" sortRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.21.0 -->
  <front>
    <title abbrev="PCEP for SAV"> Path Computation Element Communication Protocol for Source Address Validation 
    </title>
    <seriesInfo name="Internet-Draft" value="draft-song-pce-pcep-sav-02"/>
    <author fullname="Xueyan Song" initials="X." surname="Song">
      <organization>ZTE Corp.</organization>
      <address>
        <postal>
          <street/>
          <!-- Reorder these if your country does things differently -->

         <city/>
          <region/>
          <code/>
          <country>China</country>
        </postal>
        <email>song.xueyan2@zte.com.cn</email>
        <!-- uri and facsimile elements may also be added -->
     </address>
    </author>
    <author fullname="Weiqiang Cheng" initials="W." surname="Cheng">
      <organization>China Mobile</organization>
      <address>
        <postal>
          <street/>
          <!-- Reorder these if your country does things differently -->

         <city/>
          <region/>
          <code/>
          <country>China</country>
        </postal>
        <phone/>
        <email>chengweiqiang@chinamobile.com</email>
        <!-- uri and facsimile elements may also be added -->
     </address>
    </author>
    <author fullname="Shengna Yue" initials="S." surname="Yue">
      <organization>China Mobile</organization>
      <address>
        <postal>
          <street/>
          <!-- Reorder these if your country does things differently -->

         <city/>
          <region/>
          <code/>
          <country>China</country>
        </postal>
        <phone/>
        <email>yueshengnan@chinamobile.com</email>
        <!-- uri and facsimile elements may also be added -->
     </address>
    </author>
    <date month="February" day="4" year="2026"/>
    <area>Routing</area>
    <workgroup>PCE Working Group</workgroup>
    <keyword>Request for Comments</keyword>
    <keyword>RFC</keyword>
    <keyword>Internet Draft</keyword>
    <keyword>I-D</keyword>
    <abstract>
       <t>  This document presents a method of Path Computation Element (PCE) for Source Address Validation (SAV) in networks. 
	   It extends Path Computation Element Communication Protocol (PCEP) to support SAV policy distribution and synchronization between PCEP speakers 
	   for threat mitigation for source address spoofing.</t>
    </abstract>
  </front>
  <middle>
    <section>
      <name>Introduction</name>
      <t> Source Address Validation (SAV) is a critical security mechanism designed to mitigate IPv4 and IPv6 source address spoofing attacks by validating 
	  the legitimacy of source prefixes against their ingress interfaces. Traditional methods like ACL-based ingress filtering, strict uRPF and loose uRPF 
	  mechanisms <xref target="RFC3704"/> have some issues as described in 
	  <xref target="I-D.ietf-savnet-intra-domain-problem-statement"/> and <xref target="I-D.ietf-savnet-inter-domain-problem-statement"/>. 
	  The new inter-domain SAV mechanism is required not to generate false positive or false negative policies leading to improper block or permit of traffic.</t>

      <t> The PCE architecture, defined in <xref target="RFC4655"/>, provides a centralized control framework for path computation in networks. This document presents a 
	  PCE-based SAVNET solution to enable dynamic policy enforcement within the networks. By extending the PCEP protocol, the PCE can efficiently manage SAV policies, 
	  validate the legitimacy of source address prefixes, and enforce traffic filtering actions to mitigate the threats posed by source address spoofing. </t>
    </section>
	
    <section>
      <name>Conventions</name>
      <section>
        <name>Requirements Language</name>
        <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>
        <name>Terminology</name>
        <t> This document uses the following terms defined in <xref target="RFC5440"/>: PCC, PCE, PCEP Peer, and PCEP speaker.</t>
        <t> This document uses the following terms defined in <xref target="RFC8051"/>: stateful PCE.</t> 
        <t> This document uses the following terms defined in <xref target="I-D.ietf-savnet-intra-domain-architecture"/>: SAV, SAV rule, SAV Information Base.</t>
      </section>
    </section>
    
	<section>
      <name>PCE-based Solution for SAVNET</name>
      <section>
        <name>PCE Integration to SANET Architecture</name>
        <t> A PCC may use PCEP protocol to send a SAV request for one or more incoming interfaces to a PCE. The PCE may reply with a set of computed SAV policies to the PCC.
		For example, in an enterprise AS, PCE receives SAV request from a PCC (e.g., edge routers or border routers). The PCE computes that source prefix 
		(for example, 2001:db8:1::/48) is only valid on interfaces connected to the data center Subnet. Any traffic with this prefix arriving at an AS border router is 
		dropped unless it originates from the designated interfaces. </t>

        <t> The PCE-based SAVNET solution supports both single-PCE and multi-PCE coorperative environments. It is applicable to single-domain and multi-domain AS networks,
		wich may leverage PCE for cross-domain policy coordination. For example, if the attacker switches the entry from Eth1/0 of R1 in AS60001 to Eth5/0 of R5 
		in AS60004, the PCE as network controller needs to synchronize and enforce the SAV policies across domains. The centralized control capability of PCE can enhance 
		the dynamics of SAV strategies and the efficiency of cross-domain coordination. </t>
      </section>

      <section>
        <name>PCE as SAV Policy Controller</name>
        <t> The PCE provides a centralized control framework for SAV policy computation, the visibility of global SAV policy and global filtering policy optimization and 
		across-domains coordination. PCE as SAV policy controller manages and delivers SAV information to the underlay network, which acquires SAV policies eliminating the
		needs for mutual communication between network nodes.The following figure shows an example of process for PCE using PCEP to install SAV policies on PCC (i.e., AS boarder routers) 
		in inter-domain networks.</t>
        <figure anchor="Figure_1">
          <name>An example of PCE for SAV</name>
          <artwork align="center"><![CDATA[  
                   +----------------+
                   |      PCE       |
      -------------+(SAV Controller)+-----------
      |            +-------+--------+           |<--PCEP
      |                    |                    |
+-----+--------+    +------+-------+    +-------+------+ 
|   PCC        |    |   PCC        |    |   PCC        |
|(ASx NetNodes)|    |(ASy NetNodes)|    |(ASz NetNodes)|
+--------------+    +--------------+    +--------------+
]]></artwork>
        </figure>
		
        <t> PCE as SAV controller collects SAV information for SAV policy generation of mapping valid interfaces with prefix (e.g., 2001:db8::/32) to have the capability of
		global SAV policy visibility for single or multiple domains policy enforcement and coordination. </t>
		<t> PCE sends PCEP protocol messages (see <xref target="RFC8231"/>) to instal SAV policies, dynamic SAV policy updates.</t>
        <t> PCC deploys SAV policies which stores in SAV Information Database for mapping of source address prefix with valid ingress interfaces for ingress traffic filtering.</t>
      </section>
	  
      <section>
        <name>Requirements</name>
		<t> When the PCE speakers supporting SAV, the PCEP is required to support the following functionalities.</t>
		<t> The PCEP MUST support SAV information collection for intra-domain and cross-domain networks.</t>
		<t> The PCEP MUST support SAV capability advertisement in single and multi-domains.</t>
		<t> The PCEP MUST support dynamic updates of SAV policies for network changes (e.g., link failures, prefix additions).</t>
		<t> The PCEP MUST support backward compatibility with existing SAVNET mechanisms (e.g., BAR-SAV).</t>
		<t> The PCEP sessions for SAV MUST be secured against tampering and unauthorized access.</t>
     </section>
    </section>

    <section>
      <name> PCEP Extenstions</name>
      <section>
        <name>SAV Capability Advertisement</name>	  
        <t> The open message is used to establish a PCEP session between PCEP speakers. To support SAV functionality, a new flag SAV-CAPABILITY is introduced for SAV capability 
		advertisement in this document.</t>
		<t> The SAV-CAPABILITY TLV is optional TLV and its format frefers to figure 9 in <xref target="RFC8231"/>. A new value for Flags field is TBD for the SAV capability advertisement.</t>
      </section>
	  
      <section>
        <name>SAV-POLICY Object</name>
        <t> A new optional SAV object (class=TBD) for SAV information and its related object body formatted as TLV introduced in this document. 
		A SAV-POLICY object is used to carry information of SAV policy within a PCEP update message for SAV policy delivery and updates.</t>
		
        <figure anchor="Figure_2">
          <name>SAV-POLICY Object Format</name>
          <artwork align="center"><![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       Object-class            |            Length             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
//                      Object Body                            //
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>

		
	 <t> SAV-POLICY object class value is TBD.</t>
     <t> The TLV format for SAV-POLICY object consists of IPv4/IPv6 prefix and incoming-interface list (legitimate or illegitimate interfaces). The 
	 TLV format is showed as the following figure:</t>

        <figure anchor="Figure_3">
          <name>SAV-CAPABILITY TLV Format</name>
          <artwork align="center"><![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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|L|     Type    |      Flag     |             Length            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Prefix Length |       IP Source Prefix (variable)             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|InterfaceLength|         Interface List (variable)             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>	
		
     <t> The type (8 bits) of the TLV is TBD.</t>  
	 <t> The length field is 16 bits long, indicates the total length of the TLV in octects. </t>
	 <t> The value contains the following fields:</t>
     <t> L: 1 bit long, identifies IP source prefix types, including IPv4 and IPv6 types.</t>
     <t> Flag: 8 bits long, identifies the validation modes used in network nodes. The validation modes include 4 modes: interface-based prefix allowlist, interface-based prefix blocklist, prefix-based 
	 interface allowlist, prefix-based interface blocklist. By selecting modes in different scenarios, the network can be secured to mitigate spoofing attacks, as introduced 
	 in <xref target="I-D.ietf-savnet-general-sav-capabilities"/>. </t>
     <t> Interface List: contains a list of interfaces. If it is a whitelist, it represents a list of interfaces allowed to access; if it is a blacklist, it represents a list 
	 of interfaces not allowed to access. The interface list can be expressed in the form of interface ID, interface name, or index.</t>
     <t> IP source prefix: contains the source address prefix information.</t>
	 
     </section>

      <section>
        <name>Mechanism for Updates</name>
        <t> The PCE needs to send PCUpd message for triggering mechanism when PCE makes actively update to the SAV policies, the possible trigger conditions may involve: topology 
		changes (e.g., interface status modified), policy updates (e.g., the new added IP source prefix affiliated interfaces), and attack response from external threats.</t>
	  </section>

    </section>

    <section>
      <name>IANA Considerations</name>
      <t> IANA is requested to allocate a new flag value for SAV-CAPABILITY and a new class value for SAV object.</t>
    </section>

    <section>
      <name>Security Considerations</name>
      <t> PCE security introduced in PCE Architecture <xref target="RFC5394"/>, PCEP <xref target="RFC5440"/> and stateful PCE <xref target="RFC8231"/> also applies for this draft. 
	  PCEP sessions for SAV policy distribution MUST use TLS 1.3 <xref target="RFC8346"/> to prevent tampering. SAVNET security considerations covered in 
	  <xref target="I-D.ietf-savnet-intra-domain-architecture"/> and <xref target="I-D.ietf-savnet-inter-domain-architecture"/> are also applicable to the PCE-based SAVNET solution 
	  defined in this document.</t>
    </section>

    <section>
      <name>Acknowledgements</name>
      <t> The authors would like to acknowledge Haisheng Wu and Zhenghai Wang for their helpful comments. </t>
    </section>
  </middle>
  <back>
    <references title="Normative References">
    &RFC2119; 
    &RFC8174;
    &RFC5440;	
    &RFC8231;
    </references>
    <references title="Informative References">
    &RFC5394;
    &RFC3704;
    &RFC4655;
    &RFC8051;
    &RFC8346;
	&I-D.ietf-savnet-intra-domain-architecture;
    &I-D.ietf-savnet-inter-domain-architecture;
	&I-D.ietf-savnet-intra-domain-problem-statement;
    &I-D.ietf-savnet-inter-domain-problem-statement;
	&I-D.ietf-savnet-general-sav-capabilities;
    </references>
  </back>
</rfc>


