<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="no"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="std" docName="draft-dong-pce-pcep-vtn-01" ipr="trust200902"
     obsoletes="" submissionType="IETF" updates="" xml:lang="en">
  <front>
    <title abbrev="PCEP Extensions for VTN">Support for Virtual Transport
    Network (VTN) in the Path Computation Element Communication Protocol
    (PCEP)</title>

    <author fullname="Jie Dong" initials="J." surname="Dong">
      <organization>Huawei Technologies</organization>

      <address>
        <postal>
          <street>Huawei Campus, No. 156 Beiqing Rd.</street>

          <city>Beijing</city>

          <code>100095</code>

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

        <email>jie.dong@huawei.com</email>
      </address>
    </author>

    <author fullname="Sheng Fang" initials="S." surname="Fang">
      <organization>Huawei Technologies</organization>

      <address>
        <postal>
          <street>Huawei Campus, No. 156 Beiqing Rd.</street>

          <city>Beijing</city>

          <code>100095</code>

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

        <email>fangsheng@huawei.com</email>
      </address>
    </author>

    <author fullname="Liuyan Han" initials="L." surname="Han">
      <organization>China Mobile</organization>

      <address>
        <postal>
          <street/>

          <city>Beijing</city>

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

        <email>hanliuyan@chinamobile.com</email>
      </address>
    </author>

    <author fullname="Minxue Wang" initials="M." surname="Wang">
      <organization>China Mobile</organization>

      <address>
        <postal>
          <street/>

          <city>Beijing</city>

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

        <email>wangminxue@chinamobile.com</email>
      </address>
    </author>

    <date day="11" month="July" year="2022"/>

    <area>Routing</area>

    <workgroup>PCE Working Group</workgroup>

    <abstract>
      <t>With the introduction and evolvement of 5G and other network
      scenarios, some existing or new customers may require connectivity
      services with advanced characteristics comparing to traditional Virtual
      Private Networks (VPNs). Such kind of network service is called enhanced
      VPNs (VPN+). The typical application of VPN+ is to provide network slice
      services.</t>

      <t>A Virtual Transport Network (VTN) is a virtual underlay network which
      consists of a set of dedicated or shared network resources allocated
      from the physical underlay network, and is associated with a customized
      logical network topology. VPN+ services can be delivered by mapping one
      or a group of overlay VPNs to the appropriate VTNs as the virtual
      underlay. Then traffic flows of the VPN+ service can be steered onto the
      TE paths within the VTN.</t>

      <t>The Path Computation Element (PCE) provides path computation
      functions in support of traffic engineering in Multi-protocol Label
      Switching (MPLS), Generalized MPLS (GMPLS) and Segment Routing (SR)
      networks.</t>

      <t>This document specifies the extensions to PCE communication Protocol
      (PCEP) to carry VTN information in the PCEP messages. The extensions in
      this document can be used in the basic PCE computation, the stateful PCE
      and the PCE-initiated LSP mechanisms to indicate path computation, path
      status report and path initialization within a specific VTN.</t>
    </abstract>

    <note 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>
    </note>
  </front>

  <middle>
    <section title="Introduction" toc="default">
      <t><xref target="RFC5440"/> describes the Path Computation Element (PCE)
      Communication Protocol (PCEP). PCEP enables the communication between a
      Path Computation Client (PCC) and a PCE, or between PCE and PCE, for the
      purpose of computation of Multi-protocol Label Switching (MPLS) as well
      as Generalized MPLS (GMPLS) Traffic Engineering Label Switched Path (TE
      LSP) characteristics.</t>

      <t><xref target="RFC8231"/> specifies a set of extensions to PCEP to
      enable stateful control of TE LSPs within and across PCEP sessions in
      compliance with <xref target="RFC4657"/>. It includes mechanisms to
      effect LSP State Synchronization between PCCs and PCEs, delegation of
      control over LSPs to PCEs, and PCE control of timing and sequence of
      path computations within and across PCEP sessions. The model of
      operation where LSPs are initiated from the PCE is described in <xref
      target="RFC8281"/>. <xref target="RFC8664"/> specifies PCEP extensions
      to allow a stateful PCE to compute and initiate TE paths, as well as a
      PCC to request a path subject to certain constraints and optimization
      criteria in SR networks.</t>

      <t>With the introduction and evolvement of 5G and other network
      scenarios, some existing or new customers may require connectivity
      services with advanced characteristics comparing to traditional Virtual
      Private Networks (VPNs). Such kind of network service is called enhanced
      VPNs (VPN+). The typical application of VPN+ is to provide network slice
      services. The concept and general framework of IETF network slice are
      described in <xref target="I-D.ietf-teas-ietf-network-slices"/>.</t>

      <t><xref target="I-D.ietf-teas-enhanced-vpn"/> describes a framework and
      the candidate component technologies for providing VPN+ services. It
      also introduces the concept of Virtual Transport Network (VTN). A
      Virtual Transport Network (VTN) is a virtual underlay network which
      consists of a set of dedicated or shared network resources allocated
      from the physical underlay network, and is associated with a customized
      logical network topology. VPN+ services can be delivered by mapping one
      or a group of overlay VPNs to the appropriate VTNs as the underlay, so
      as to provide the network characteristics required by the customers.
      Then the traffic flows of the VPN+ service can be steered onto the TE
      paths within the VTN.</t>

      <t>In MPLS or SR based network, the set of network resources allocated
      to a VTN can be identified using resource-aware SR SIDs as defined in
      <xref target="I-D.ietf-spring-resource-aware-segments"/> <xref
      target="I-D.ietf-spring-sr-for-enhanced-vpn"/>, or the VTN Resource ID
      as defined in <xref target="I-D.ietf-6man-enhanced-vpn-vtn-id"/>. The
      logical topology associated with a VTN could be specified using
      mechanisms such as Multi-Topology <xref target="RFC4915"/>, <xref
      target="RFC5120"/> or Flex-Algo <xref target="I-D.ietf-lsr-flex-algo"/>,
      etc.</t>

      <t>To meet specific service requirement, traffic flows of a VPN+ service
      need be steered onto TE paths of the corresponding VTN. A PCC may
      request the PCE for computing a TE path within a VTN, so that the path
      computation would take the resource attribute and the associated
      topology of the VTN into consideration. Correspondingly, a PCE may reply
      or initiate a TE path with VTN-specific control and data plane
      information to a PCC.</t>

      <t>This document extends PCEP to allow VTN information to be encoded in
      the PCEP messages. The extensions in this document can be used in the
      basic PCE computation, the stateful PCE and the PCE-initiated LSP
      mechanisms to indicate path computation, path status report and path
      initialization within the context of a specific VTN.</t>
    </section>

    <section anchor="SEC_EXT" title="PCEP Extensions" toc="default">
      <section title="New TLV in LSPA Object" toc="default">
        <t>A new VTN TLV for use in the LSPA Object is defined to indicate the
        VTN ID and the related information as constraints. The format of the
        VTN TLV is as follows:</t>

        <figure align="center" anchor="SEC_FIG1" title="VTN TLV Format">
          <artwork align="left" xml:space="preserve"><![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=Variable        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             VTN ID                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             Flags             |           Reserved            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |  
//                    Optional sub-TLV(s)                       //
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>

        <t>Where:</t>

        <t><list style="symbols">
            <t>VTN ID: A global significant 32-bit identifier which is used to
            identify a VTN.</t>

            <t>Flags: 16-bit flags. Currently all the flags are reserved for
            future use. They SHOULD be set to zero on transmission and MUST be
            ignored on receipt.</t>

            <t>Reserved: 16-bit reserved field for future use. All the bits
            SHOULD be set to zero on transmission and MUST be ignored on
            receipt.</t>

            <t>Optional sub-TLVs: Additional information which can be used in
            as VTN-specific constraints. Currently no sub-TLV is defined in
            this document.</t>
          </list></t>
      </section>

      <section title="Capability Advertisement">
        <t>A PCEP speaker indicates whether it supports VTN specific path
        computation using a new PCEP capability called "VTN-CAPABILITY". When
        the PCEP session is created, it sends an Open message with an OPEN
        Object containing the VTN-CAPABILITY TLV. The format of this TLV is as
        follows:</t>

        <t><figure align="center" anchor="SEC_FIG2" title="VTN CAPABILITY TLV">
            <artwork align="left" xml:space="preserve"><![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=4           |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                             Flags                           |D|
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
          </figure></t>

        <t>The type (16 bits) of the TLV is TBA. The length field is 16 bits
        long and has a fixed value of 4.</t>

        <t>The value comprises a single field -- Flags (32 bits):</t>

        <t><list style="symbols">
            <t>D (Data Plane VTN-ID CAPABILITY - 1 bit): if set to 1 by a PCC,
            the D flag indicates that the PCC supports the encapsulation of
            data plane VTN-ID in data packet; if set to 1 by a PCE, the D flag
            indicates that the PCE supports to provide path computation result
            with the data plane VTN-ID.</t>

            <t>Unassigned bits in the Flags field MUST be set to zero and
            ignored on receipt.</t>
          </list></t>
      </section>
    </section>

    <section title="Operations">
      <t>The new VTN TLV defined in this document can be used in the basic PCE
      computation, the stateful PCE and the PCE-initiated LSP mechanisms to
      indicate path computation, path status report and path initialization
      within the context of a specific VTN.</t>

      <t>Information about the VTN-specific network resource and topology
      attributes can be obtained by the PCE either from the network planning
      system, or using a distributed control plane such as IGP or BGP-LS with
      necessary extensions. The detailed mechanism is out of the scope of this
      document. The obtained VTN specific attributes can be used in path
      computation when the VTN-ID is specified in the path computation
      request.</t>

      <t>With the basic path computation mechanism, the new VTN TLV can be
      used to indicate the VTN in which the path computation is requested. In
      a PCReq message, the VTN TLV MAY be carried in the LSPA Object to
      indicate that the path computation needs to be executed using the
      resource and topological attributes of the VTN. The PCE SHOULD use the
      network resource and topology attributes associated with the specified
      VTN as the parameters of path computation. In a PCRep message, the VTN
      TLV MAY be carried in the LSPA Object in case of failure to indicate the
      path computation in the VTN was not successful.</t>

      <t>The new VTN TLV can also be used in the stateful PCE mechanisms. A
      PCC MAY include the VTN TLV in PCRpt message to indicate the VTN in
      which the TE path is reported. And A PCE MAY include the VTN TLV in
      PCUpd Message to indicate the VTN in which the TE path needs to be
      updated.</t>

      <t>With the PCE-Initiated LSP mechanism, the PCE MAY include the VTN TLV
      in PCInitiate or PCUpd message to indicate the VTN in which the path is
      computed, so that the PCC will use the VTN-specific resources and data
      plane VTN-ID in constructing or updating the TE path.</t>
    </section>

    <section title="Security Considerations" toc="default">
      <t>This document defines a new VTN TLV that do not add any new security
      concerns beyond those discussed in <xref target="RFC5440"/> in itself.
      Some deployments may find the VTN information to be extra sensitive and
      could be used to influence path computation and setup with adverse
      effect. Additionally, snooping of PCEP messages with such data or using
      PCEP messages for network reconnaissance may give an attacker sensitive
      information about the operations of the network. Thus, such deployment
      should employ suitable PCEP security mechanisms like TCP Authentication
      Option (TCP-AO) <xref target="RFC5925"/> or Transport Layer Security
      (TLS) <xref target="RFC8253"/>. The procedure based on TLS is considered
      a security enhancement and thus is much better suited for the sensitive
      information.</t>
    </section>

    <section title="IANA Considerations" toc="default">
      <t>This document makes following requests to IANA for action.</t>

      <t>IANA is requested to make the following allocations in the "PCEP TLV
      Type Indicators" subregistry of the "Path Computation Element Protocol
      (PCEP) Numbers" registry:</t>

      <t><figure>
          <artwork><![CDATA[            Value      Description        Reference
            -----    ----------------     -------------
             TBD1         VTN             This document 
             TBD2     VTN CAPABILITY      This document ]]></artwork>
        </figure></t>

      <t/>
    </section>

    <section title="Contributors">
      <t><figure>
          <artwork><![CDATA[Dhruv Dhody
Email: dhruv.ietf@gmail.com

Zhibo Hu
Email: huzhibo@huawei.com
]]></artwork>
        </figure></t>
    </section>

    <section title="Acknowledgments" toc="default">
      <t>The authors would like to thank Zhenbin Li for his review and
      valuable comments.</t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include="reference.RFC.2119"?>

      <?rfc include="reference.RFC.5440"?>

      <?rfc include="reference.RFC.8174"?>

      <?rfc include="reference.RFC.8231"?>

      <?rfc include="reference.RFC.8281"?>

      <?rfc include='reference.RFC.8664'?>

      <?rfc include='reference.I-D.ietf-lsr-flex-algo'?>
    </references>

    <references title="Informative References">
      <?rfc include="reference.RFC.4657"?>

      <?rfc include="reference.RFC.4915"?>

      <?rfc include="reference.RFC.5120"?>

      <?rfc include="reference.RFC.5925"?>

      <?rfc include="reference.RFC.8253"?>

      <?rfc include="reference.RFC.8402"?>

      <?rfc include='reference.I-D.ietf-teas-ietf-network-slices'?>

      <?rfc include="reference.I-D.ietf-teas-enhanced-vpn"?>

      <?rfc include='reference.I-D.ietf-spring-resource-aware-segments'?>

      <?rfc include="reference.I-D.ietf-spring-sr-for-enhanced-vpn"?>

      <?rfc include='reference.I-D.ietf-6man-enhanced-vpn-vtn-id'?>
    </references>
  </back>
</rfc>
