Internet DRAFT - draft-qc-pce-path-routing

draft-qc-pce-path-routing







PCE Working Group                                                  Y. Qu
Internet-Draft                                                   H. Chen
Updates: 8408 (if approved)                                    Futurewei
Intended status: Standards Track                            July 8, 2019
Expires: January 9, 2020


               PCEP Extensions for Preferred Path Routing
                      draft-qc-pce-path-routing-00

Abstract

   This document specifies extensions to the Path Computation Element
   Protocol (PCEP) that allow a stateful PCE to initiate Preferred Path
   Routing (PPR) paths.  It also specifies how PCC should react to the
   PCEP messages.

Requirements Language

   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 [RFC2119][RFC8174] when, and only when, they appear in all
   capitals, as shown here.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at https://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on January 9, 2020.

Copyright Notice

   Copyright (c) 2019 IETF Trust and the persons identified as the
   document authors.  All rights reserved.





Qu & Chen                Expires January 9, 2020                [Page 1]

Internet-Draft PCEP Extensions for Preferred Path Routing      July 2019


   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (https://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Terminology . . . . . . . . . . . . . . . . . . . . . . . . .   3
   3.  Overview of PCEP Operation in PPR Networks  . . . . . . . . .   4
   4.  Extensions to PCEP  . . . . . . . . . . . . . . . . . . . . .   4
     4.1.  Capability for PPR  . . . . . . . . . . . . . . . . . . .   4
     4.2.  PPR TLV . . . . . . . . . . . . . . . . . . . . . . . . .   6
       4.2.1.  PPR-Flags . . . . . . . . . . . . . . . . . . . . . .   7
       4.2.2.  PPR-Prefix Sub-TLV  . . . . . . . . . . . . . . . . .   7
       4.2.3.  PPR-ID Sub-TLV  . . . . . . . . . . . . . . . . . . .   8
       4.2.4.  PPR-PDE Sub-TLV . . . . . . . . . . . . . . . . . . .   9
       4.2.5.  PPR-Attributes Sub-TLV  . . . . . . . . . . . . . . .  12
   5.  Procedures  . . . . . . . . . . . . . . . . . . . . . . . . .  12
   6.  Management Considerations . . . . . . . . . . . . . . . . . .  13
   7.  Security Considerations . . . . . . . . . . . . . . . . . . .  13
   8.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  14
   9.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .  14
   10. References  . . . . . . . . . . . . . . . . . . . . . . . . .  14
     10.1.  Normative References . . . . . . . . . . . . . . . . . .  14
     10.2.  Informative References . . . . . . . . . . . . . . . . .  15
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  16

1.  Introduction

   Segment Routing (SR) [RFC8402] leverages the source routing paradigm.
   A packet is steered through a network using an ordered list of
   instructions, called "segments".  A segment is often referred to by
   its Segment Identifier (SID), and can represent any instruction,
   topological or service based.  The SR architecture can be implemented
   using either MPLS [I-D.ietf-spring-segment-routing-mpls] or IPv6
   [I-D.ietf-6man-segment-routing-header] forwarding plane.

   A Preferred Path Routing (PPR)
   [I-D.chunduri-lsr-isis-preferred-path-routing]
   [I-D.chunduri-lsr-ospf-preferred-path-routing] path is identified by
   a PPR ID and described as a list of Path Description Elements (PDEs).
   A PPR path could be used as a Traffic Engineering (TE) path, or a



Qu & Chen                Expires January 9, 2020                [Page 2]

Internet-Draft PCEP Extensions for Preferred Path Routing      July 2019


   Service Function Chaining (SFC) [RFC7665] path etc.  PPR can help to
   reduce the data plane overhead and mitigate MTU issues.

   [RFC5440] describes the Path Computation Element Protocol (PCEP) for
   communication between a Path Computation Client (PCC) and a Path
   Computation Element (PCE) or between a pair of PCEs.  [RFC8281]
   specifies a mechanism to dynamically initiate LSPs on a PCC based on
   the requests from a stateful PCE or a controller using stateful PCE.
   A stateful PCE can compute one or more SR-TE paths, and initiate a
   SR-TE path on a PCC using the SR specific PCEP extensions specified
   in [I-D.ietf-pce-segment-routing].

   It is possible to use a stateful PCE for computing PPR paths taking
   into account various constraints.  This document specifies the PCEP
   extensions that can be used to for the stateful PCE to initiate a PPR
   path on a PCC.

2.  Terminology

   The following terminologies are used in this document:

   ERO:  Explicit Route Object

   IGP:  Interior Gateway Protocol

   IS-IS:  Intermediate System to Intermediate System

   LSR:  Label Switching Router

   NAI:  Node or Adjacency Identifier

   OSPF:  Open Shortest Path First

   PCC:  Path Computation Client

   PCE:  Path Computation Element

   PCEP:  Path Computation Element Communication Protocol

   RRO:  Record Route Object

   SID:  Segment Identifier

   SR:  Segment Routing

   PPR:  Preferred Path Routing

   PDE:  Path Description Element



Qu & Chen                Expires January 9, 2020                [Page 3]

Internet-Draft PCEP Extensions for Preferred Path Routing      July 2019


3.  Overview of PCEP Operation in PPR Networks

   In a PPR network, the ingress node of a PPR path prepends a PPR
   header to all outgoing packets.  Depending on the forwarding plane,
   different formats of header will be chosen.  The header contains a
   PPR ID, in combination with the control plane information about the
   PPR ID, the packets will be routed through the network.

   In PCEP messages, PPR path information is carried in the Explicit
   Route Object (ERO), which consists of a sequence of sub objects.  PPR
   paths computed by a PCE can be represented in an ERO with a PPR ID
   followed by one of the following list:

   o  An ordered set of IP addresses representing network nodes/links.

   o  An ordered set of SIDs, with or without the corresponding IP
      addresses.

   o  An ordered set of MPLS labels, with or without corresponding IP
      address.

   After a PCC receives the PCEP messages, one of the following two
   methods can be used to program the control plane:

   o  IGP can be used to populate the PPR path information as described
      in [I-D.chunduri-lsr-isis-preferred-path-routing] and
      [I-D.chunduri-lsr-ospf-preferred-path-routing].

   o  If PCEP is used directly to program a PPR path, and a PCC sees
      itself is part of a PPR path, it will install the corresponding
      information, such as PPR ID, next hop into forwarding table.

4.  Extensions to PCEP

4.1.  Capability for PPR

   When a PCEP session is established between a PCE and a PCC, they
   exchange their capabilities of supporting PPR.

   A new sub-TLV, which is called PPR_CAPABILITY, is defined.  It is
   included in the PATH_SETUP_TYPE_CAPABILITY TLV with PST = TBD1
   (suggested value 3 for PPR) in the OPEN object, which is exchanged in
   Open messages when the PCEP session is established.  Its format is
   illustrated below.







Qu & Chen                Expires January 9, 2020                [Page 4]

Internet-Draft PCEP Extensions for Preferred Path Routing      July 2019


     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            |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |           Reserved            |             Flags           |I|
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                     Figure 1: PPR_CAPABILITY sub-TLV

   Type:  TBD2 is to be assigned by IANA.

   Length:  4.

   Reserved:  2 octets.  Must be set to zero in transmission and ignored
      on reception.

   Flags:  2 octets.  This document defines the following flag bits.
      The other bits MUST be set to zero by the sender and MUST be
      ignored by the receiver.

      *  I: A PCC sets this flag bit to 1 to indicate that it is capable
         of flooding PPR path information in an IGP domain.

   The PCC, which supports PPR, sends the PCE an Open message containing
   PPR_CAPABILITY sub-TLV.  This sub-TLV indicates that the PCC is
   capable of supporting PPR.

   The PCE, which supports PPR, sends the PCC an Open message containing
   PPR_CAPABILITY sub-TLV.  This sub-TLV indicates that the PCE is
   capable of supporting PPR.

   When both the PCC and the PCE support PPR_CAPABILITY, each of the
   Open messages sent by the PCC and PCE contains
   PATH_SETUP_TYPE_CAPABILITY TLV with a PST list containing PST=TBD1
   and a PPR_CAPABILITY sub-TLV.

   If the PCE receives an Open message without a PPR_CAPABILITY sub-TLV
   from the PCC, then the PCE MUST not send the PCC any request for PPR.

   If the PCC receives an Open message without a PPR_CAPABILITY sub-TLV
   from a PCE, then the PCC MUST ignore any request for PPR from the
   PCE.








Qu & Chen                Expires January 9, 2020                [Page 5]

Internet-Draft PCEP Extensions for Preferred Path Routing      July 2019


4.2.  PPR TLV

   A new TLV called PPR TLV is defined.  When a PCE sends a PCC a
   PCInitiate message for initiating PPR path, the message contains this
   TLV in the LSP object.

   A PPR TLV may contain the encodings of a Prefix, PPR-ID, and path
   description with an ordered PDE Sub-TLVs and a set of optional PPR
   attribute Sub-TLVs, which can be used to describe one or more
   parameters of the path.  The format of the PPR TLV is illustrated
   below:

     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              |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |I|        PPR-Flags            |           Reserved            |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |             PPR-Prefix Sub-TLV (variable size)                |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |              PPR-ID   Sub-TLV (variable size)                 |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                  PPR-PDE Sub-TLVs (variable)                  |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                PPR-Attribute Sub-TLVs(variable)               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         Figure 2: PPR TLV Format

   Type:  TBD3 is to be assigned by IANA.

   Length:  Total length of the value field in bytes (variable).

   PPR-Flags:  2 octets.  The defined flags are described below.

   Reserved:  2 octets.  Must be set to zero in transmission and ignored
      on reception.

   PPR-Prefix Sub-TLV:  Variable octets.  It represents the prefix for
      which path description is being attached to, and is defined below.

   PPR-ID Sub-TLV:  Variable octets.  It represents the data plane or
      forwarding identifier of the PPR, and is defined below.

   PPR-PDE Sub-TLVs:  Variable octets.  They represent the path in
      ordered PDE Sub-TLVs, and are defined below.




Qu & Chen                Expires January 9, 2020                [Page 6]

Internet-Draft PCEP Extensions for Preferred Path Routing      July 2019


   PPR-Attribute Sub-TLVs:  Variable octets.  They represent the path
      attributes, and are defined below.

4.2.1.  PPR-Flags

   Two flags are defined in the PPR-Flags field of PPR TLV, which are
   shown below:

                0  1  2  3  4  5  6  7                      15
              +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
              |I |       Reserved                             |
              +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

                         Figure 3: PPR-Flags Field

   I Flag:  IGP flag.  If set, IGP will be used to flood this path as
      described in [I-D.chunduri-lsr-isis-preferred-path-routing] and
      [I-D.chunduri-lsr-isis-preferred-path-routing].  If not set, the
      PCC received this TLV will verify the path information, and if it
      sees itself as part of the PPR path, it will install the
      corresponding path information into its forwarding table.

   Reserved:  This field Must be set to zero in transmission and ignored
      on reception.

4.2.2.  PPR-Prefix Sub-TLV

   A PPR-Prefix Sub-TLV contains a prefix for the path described in a
   PPR TLV.  Its format is illustrated below:

     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 = TBD4        |          Length               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |     MT-ID     | Prefix Length | Mask Length   |  Reserved     |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    //                   Prefix (variable)                          //
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |              PPR-Prefix  Sub-TLVs (variable)                  |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                    Figure 4: PPR-Prefix Sub-TLV Format

   Type:  TBD4 is to be assigned by IANA.

   Length:  Total length of the value field in bytes (variable).




Qu & Chen                Expires January 9, 2020                [Page 7]

Internet-Draft PCEP Extensions for Preferred Path Routing      July 2019


   MT-ID:  1 octet.  Multi-Topology ID (as defined in [RFC4915]).

   Prefix Length:  1 octet.  It is the length of the prefix in bits.
      Only the most significant octets of the Prefix are encoded.

   Mask Length:  1 octet.  It is the valid length of the prefix in bits.
      Only the most significant octets of the Prefix are encoded.

   Reserved:  1 octet.  Must be set to zero in transmission and ignored
      on reception.

   Prefix:  Variable octets.  It represents the prefix at the tail-end
      of the PPR.  For the address family IPv4 unicast, the prefix
      itself is encoded as a 32-bit value.  The default route is
      represented by a prefix of length 0.

   PPR-Prefix Sub-TLVs:  Variable octets.  It has 1 octet type, 1 octet
      length and value field is defined per the type field.

4.2.3.  PPR-ID Sub-TLV

   A PPR-ID Sub-TLV contains an identifier, which represents the actual
   data plane identifier in the packet and could be of any data plane as
   defined in PPR-ID-type field.  Both Prefix and PPR-ID MUST belong to
   a same node in the network.  The format of the PPR-ID Sub-TLV is
   illustrated below:

     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 = TBD5        |          Length               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |     PPR-ID Flags              | PPR-ID Type   | PPR-ID Length |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |PPR-ID Mask Len|  Algo         | PPR-ID                       //
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    //                 PPR-ID (cont., variable size)               //
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                      Figure 5: PPR-ID Sub-TLV Format

   Type:  TBD5 is to be assigned by IANA.

   Length:  Total length of the value field in bytes (variable).

   PPR-ID Type:  1 octet.  Data plane type of PPR-ID.  This is a new
      registry (TBD IANA) for this Sub-TLV and the defined types are as
      follows:



Qu & Chen                Expires January 9, 2020                [Page 8]

Internet-Draft PCEP Extensions for Preferred Path Routing      July 2019


      a.  Type = 1:  MPLS SID/Label.

      b.  Type = 2:  Native IPv4 Address/Prefix.

      c.  Type = 3:  Native IPv6 Address/Prefix.

      d.  Type = 4:  IPv6 SID in SRv6 with SRH.

   PPR-ID Flags:  2 octets.  Two flags are defined below:

                0  1  2  3  4  5  6  7                      15
              +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
              |  Reserved                                     |
              +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

      Reserved:  Reserved bits for future use.  They must be set to zero
         in transmission and ignored on reception.

   PPR-ID Length:  1 octet.  It is the length of the PPR-ID field in
      octets and this depends on the PPR-ID type.  See PPR-ID below for
      the length of this field and other considerations.

   PPR-ID Mask Len:  1 octet.  It is applicable for only for PPR-ID Type
      2.  For Type 1 this value MUST be set to zero.  It contains the
      length of the PPR-ID Prefix in bits.  Only the most significant
      octets of the Prefix are encoded.  This is needed, if PPR-ID
      followed is an IPv4 Prefix instead of 4 octet Address
      respectively.

   Algo:  1 octet.  It represents the SPF algorithm.  Algorithm registry
      is as defined in [I-D.ietf-ospf-segment-routing-extensions].

   PPR-ID:  Variable octets.  It represents the Preferred Path
      forwarding identifier that would be on the data packet.  The value
      of this field is variable and it depends on the PPR-ID Type - for
      Type 1, this is and MPLS SID/Label.  For Type 2 this is a 4 byte
      IPv4 address.

4.2.4.  PPR-PDE Sub-TLV

   This is a new Sub-TLV type in PPR TLV and is called as PPR Path
   Description Element (PDE).  PPR-PDEs are used to describe the path in
   the form of set of contiguous and ordered Sub-TLVs, where first Sub-
   TLV represents (the top of the stack in MPLS data plane or) first
   node/segment of the path.  These set of ordered Sub-TLVs can have
   both topological SIDs and non-topological SIDs (e.g., service
   segments).  The format of the PPR-PDE Sub-TLV is illustrated below:




Qu & Chen                Expires January 9, 2020                [Page 9]

Internet-Draft PCEP Extensions for Preferred Path Routing      July 2019


     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 = TBD6        |          Length               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | PPR-PDE Type  |  PDE-ID Type  |  PDE-ID Len   | Reserved      |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |     PPR-PDE Flags             | PDE-ID Value                 //
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    //             PDE-ID Value (Contd., Variable size)            //
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                PPR-PDE  Sub-TLVs (variable)                   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                     Figure 6: PPR-PDE Sub-TLV Format

   Type:  TBD6 is to be assigned by IANA.

   Length:  Total length of the value field in bytes (variable).

   PPR-PDE Type:  1 octet.  This is a new registry (TBD IANA) for this
      Sub-TLV and the defined types are as follows:

      a.  Type = 1:  Topological.

      b.  Type = 2:  Non-Topological.

   PPR-ID Type:  1 octet.  PDE-forwarding IDentifier Type.  This is a
      new registry (TBD IANA) for this Sub-TLV and the defined types and
      corresponding PDE-ID Len, PDE-ID Value are as follows:

      Type = 1:  SID/Label Sub-TLV as defined in [I-D.ietf-ospf-segment-
         routing-extensions].  PDE-ID Len and PDE- ID Value fields are
         defined as the above.

      Type = 2:  SR-MPLS Prefix SID.  PDE-ID Len and PDE-ID Value are
         the same as Type 1.

      Type = 3:  SR-MPLS Adjacency SID.  PDE-ID Len and PDE-ID Value are
         the same as Type 1.

      Type = 4:  IPv4 Node Address.  PDE-ID Len is 4 bytes and PDE-ID
         Value is 4 bytes IPv4 address encoded similar to IPv4 Prefix
         described above.

      Type = 5:  IPv4 P2P interface Address.  PDE-ID Len is 4 bytes and
         PDE-ID Value is 4 bytes IPv4 address encoded similar to IPv4
         Prefix described above.



Qu & Chen                Expires January 9, 2020               [Page 10]

Internet-Draft PCEP Extensions for Preferred Path Routing      July 2019


      Type = 6:  IPv4 LAN interface Address.  PDE-ID Len is 4 bytes and
         PDE-ID Value is 4 bytes IPv4 address encoded similar to IPv4
         Prefix described above.

      Type = 7:  IPv6 Node Address.  PDE-ID Len is 16 bytes and PDE-ID
         Value is 16 bytes IPv6 address encoded similar to IPv6 Prefix
         described above.

      Type = 8:  IPv6 P2P interface Address.  PDE-ID Len is 16 bytes and
         PDE-ID Value is 16 bytes IPv6 address encoded similar to IPv6
         Prefix described above.

      Type = 9:  IPv6 LAN interface Address.  PDE-ID Len is 16 bytes and
         PDE-ID Value is 16 bytes IPv6 address encoded similar to IPv6
         Prefix described above.

      Type = 10:  SRv6 Node SID as defined in
         [I-D.ietf-lsr-isis-srv6-extensions].

      Type = 11:  SRv6 Adjacency-SID.  PDE-ID Len and PDE-ID Values are
         similar to SRv6 Node SID above.

   PPR-ID Len:  1 octet.  It is the length of the PPR-ID field in
      octets.

   Reserved:  1 octet.  Reserved bits MUST be reset to zero on
      transmission and ignored on receive.

   PPR-PDE Flags:  2 octets.  Two flags are defined below:

                0  1  2  3  4  5  6  7                      15
              +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
              |L |        Reserved                            |
              +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

      L: Loose Bit. Indicates the type of next "Topological PDE-ID" in
         the path description.  If set, the next Topological PDE is
         Loose.  If this flag is unset, the next Topological PDE is
         Strict Type.

      Reserved:  Reserved bits for future use.  They must be set to zero
         in transmission and ignored on reception.

   PPR-PDE Sub-TLVs:  TBD.  It has 2 octet type, 2 octet length and
      value field is defined per type.






Qu & Chen                Expires January 9, 2020               [Page 11]

Internet-Draft PCEP Extensions for Preferred Path Routing      July 2019


4.2.5.  PPR-Attributes Sub-TLV

   PPR-Attribute Sub-TLVs describe the attributes of the path.  The
   following Sub-TLVs draw from a new registry for Sub-TLV numbers; this
   registry is to be created by IANA, and administered using the first
   come first serve process:

   Type:  TBD7 is to be assigned by IANA.  This is Packet Traffic
      accounting Sub-TLV.  Length is 0.  There is no value field.  It
      specifies to create a counter to count number of packets forwarded
      on this PPR-ID on each node in the path description.

   Type:  TBD8 is to be assigned by IANA.  This is Traffic statistics in
      Bytes Sub-TLV.  Length is 0.  Thee is no value field.  It
      specifies to create a counter to count number of bytes forwarded
      on this PPR-ID specified in the network header (e.g.  IPv4, IPv6)
      on each node in the path description.

   Type:  TBD9 is to be assigned by IANA.  PPR-Metric Sub-TLV.  Length
      is 4 bytes, and Value is metric of this path represented through
      the PPR-ID.  Different nodes can advertise the same PPR-ID for the
      same Prefix with a different set of PPR-PDE Sub-TLVs and the
      receiving node MUST consider the lowest metric value (TBD more, on
      what happens when metric is same for two different set of PPR-PDE
      Sub-TLVs).

5.  Procedures

   PPR_CAPABILITY sub-TLV in the Open message is exchanged between a PCC
   and a PCE to indicate the support of PPR.  When both the PCC and the
   PCE support PPR_CAPABILITY, each of the Open messages sent by the PCC
   and PCE contains PATH_SETUP_TYPE_CAPABILITY TLV with a PST list
   containing PST=TBD1 and a PPR_CAPABILITY sub-TLV.

   If a PCC sets the I bit to 1 in PPR_CAPABILITY sub-TLV, it means this
   PCC is capable of flooding PPR path info across IGP domain.
   Otherwise it means it supports to install PPR path info into its
   forwarding table but can't flood the information.

   After a PCC receives a PPR TLV, it needs to verify whether it's
   valid.

   If a PCC receives a PPR TLV with flog I bit set to 1, however this
   PCC doesn't support IGP flooding of PPR info, it MUST consider the
   TLV invalid and MUST sent a PCErr message with Error-Type = 10
   ("Reception of an invalid object").





Qu & Chen                Expires January 9, 2020               [Page 12]

Internet-Draft PCEP Extensions for Preferred Path Routing      July 2019


   The PPR TLV contains a sequence of subobjects/sub TLVs, which defines
   the PPR path information.  If a routing process/protocol is
   configured to flood PPR path, it interprets the sub TLVs and converts
   them into corresponding routing protocol TLVs and flood them.

   Section 4 in [I-D.chunduri-lsr-isis-preferred-path-routing] describes
   how PCCs act after receiving path information from a controller.

6.  Management Considerations

   This document adds a new path setup type to PCEP to allow PPR paths
   to be set up on PCCs.  This path setup type may be used with PECP
   alongside other path setup types, such as RSVP-TE, Segment Routing
   Traffic Engineering, or it may be used exclusively.

   The PATH-SETUP-TYPE-CAPABILITY TLV is used to indicate the path setup
   type supported.  It requires both PCC and PCE to include PST=TBD1,
   also include the PPR-CAPABILITY sub-TLV.

   A network operator can use the following steps to enable PCEP to
   setup paths using PPR as path setup type:

   o  The operator enables the PPR PST on the PCE servers.

   o  The operator enables the PPR PST on the PCCs.

   o  The operator resets each PCEP session.  The PCEP sessions come
      back up with PPR enabled.

   o  If the operator detects a problem, they can roll the network back
      to its initial state by disabling the PPR PST on the PCEP speakers
      and resetting the PCEP sessions.

   The data plane is unaffected if a PCEP session is reset.  Any PPR
   path that was set up before the session reset will remain in active.

   The PPR YANG module is defined in [I-D.qct-lsr-ppr-yang], and it is
   used to configure PPR path information on a router and it can coexist
   with the path set up method defined in this document.

7.  Security Considerations

   The security considerations described in [RFC5440], [RFC8231],
   [RFC8281] and [RFC8408] are applicable to this specification.  No
   additional security measure is required.

   This draft enables a network controller to instantiate a path in the
   network, and that creates additional vulnerability.



Qu & Chen                Expires January 9, 2020               [Page 13]

Internet-Draft PCEP Extensions for Preferred Path Routing      July 2019


8.  IANA Considerations

   TBD.

9.  Acknowledgements

   TBD.

10.  References

10.1.  Normative References

   [I-D.chunduri-lsr-isis-preferred-path-routing]
              Chunduri, U., Li, R., White, R., Tantsura, J., Contreras,
              L., and Y. Qu, "Preferred Path Routing (PPR) in IS-IS",
              draft-chunduri-lsr-isis-preferred-path-routing-03 (work in
              progress), May 2019.

   [I-D.chunduri-lsr-ospf-preferred-path-routing]
              Chunduri, U., Qu, Y., White, R., Tantsura, J., and L.
              Contreras, "Preferred Path Routing (PPR) in OSPF", draft-
              chunduri-lsr-ospf-preferred-path-routing-03 (work in
              progress), May 2019.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <https://www.rfc-editor.org/info/rfc2119>.

   [RFC5440]  Vasseur, JP., Ed. and JL. Le Roux, Ed., "Path Computation
              Element (PCE) Communication Protocol (PCEP)", RFC 5440,
              DOI 10.17487/RFC5440, March 2009,
              <https://www.rfc-editor.org/info/rfc5440>.

   [RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
              2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
              May 2017, <https://www.rfc-editor.org/info/rfc8174>.

   [RFC8231]  Crabbe, E., Minei, I., Medved, J., and R. Varga, "Path
              Computation Element Communication Protocol (PCEP)
              Extensions for Stateful PCE", RFC 8231,
              DOI 10.17487/RFC8231, September 2017,
              <https://www.rfc-editor.org/info/rfc8231>.








Qu & Chen                Expires January 9, 2020               [Page 14]

Internet-Draft PCEP Extensions for Preferred Path Routing      July 2019


   [RFC8281]  Crabbe, E., Minei, I., Sivabalan, S., and R. Varga, "Path
              Computation Element Communication Protocol (PCEP)
              Extensions for PCE-Initiated LSP Setup in a Stateful PCE
              Model", RFC 8281, DOI 10.17487/RFC8281, December 2017,
              <https://www.rfc-editor.org/info/rfc8281>.

   [RFC8408]  Sivabalan, S., Tantsura, J., Minei, I., Varga, R., and J.
              Hardwick, "Conveying Path Setup Type in PCE Communication
              Protocol (PCEP) Messages", RFC 8408, DOI 10.17487/RFC8408,
              July 2018, <https://www.rfc-editor.org/info/rfc8408>.

10.2.  Informative References

   [I-D.ietf-6man-segment-routing-header]
              Filsfils, C., Previdi, S., Leddy, J., Matsushima, S., and
              d. daniel.voyer@bell.ca, "IPv6 Segment Routing Header
              (SRH)", draft-ietf-6man-segment-routing-header-18 (work in
              progress), April 2019.

   [I-D.ietf-lsr-isis-srv6-extensions]
              Psenak, P., Filsfils, C., Bashandy, A., Decraene, B., and
              Z. Hu, "IS-IS Extensions to Support Routing over IPv6
              Dataplane", draft-ietf-lsr-isis-srv6-extensions-00 (work
              in progress), May 2019.

   [I-D.ietf-pce-segment-routing]
              Sivabalan, S., Filsfils, C., Tantsura, J., Henderickx, W.,
              and J. Hardwick, "PCEP Extensions for Segment Routing",
              draft-ietf-pce-segment-routing-16 (work in progress),
              March 2019.

   [I-D.ietf-spring-segment-routing]
              Filsfils, C., Previdi, S., Ginsberg, L., Decraene, B.,
              Litkowski, S., and R. Shakir, "Segment Routing
              Architecture", draft-ietf-spring-segment-routing-15 (work
              in progress), January 2018.

   [I-D.ietf-spring-segment-routing-mpls]
              Bashandy, A., Filsfils, C., Previdi, S., Decraene, B.,
              Litkowski, S., and R. Shakir, "Segment Routing with MPLS
              data plane", draft-ietf-spring-segment-routing-mpls-18
              (work in progress), December 2018.

   [I-D.qct-lsr-ppr-yang]
              Qu, Y., Chunduri, U., and J. Tantsura, "YANG Data Model
              for Preferred Path Routing", draft-qct-lsr-ppr-yang-01
              (work in progress), March 2019.




Qu & Chen                Expires January 9, 2020               [Page 15]

Internet-Draft PCEP Extensions for Preferred Path Routing      July 2019


   [RFC4915]  Psenak, P., Mirtorabi, S., Roy, A., Nguyen, L., and P.
              Pillay-Esnault, "Multi-Topology (MT) Routing in OSPF",
              RFC 4915, DOI 10.17487/RFC4915, June 2007,
              <https://www.rfc-editor.org/info/rfc4915>.

   [RFC5120]  Przygienda, T., Shen, N., and N. Sheth, "M-ISIS: Multi
              Topology (MT) Routing in Intermediate System to
              Intermediate Systems (IS-ISs)", RFC 5120,
              DOI 10.17487/RFC5120, February 2008,
              <https://www.rfc-editor.org/info/rfc5120>.

   [RFC7665]  Halpern, J., Ed. and C. Pignataro, Ed., "Service Function
              Chaining (SFC) Architecture", RFC 7665,
              DOI 10.17487/RFC7665, October 2015,
              <https://www.rfc-editor.org/info/rfc7665>.

   [RFC8402]  Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L.,
              Decraene, B., Litkowski, S., and R. Shakir, "Segment
              Routing Architecture", RFC 8402, DOI 10.17487/RFC8402,
              July 2018, <https://www.rfc-editor.org/info/rfc8402>.

Authors' Addresses

   Yingzhen Qu
   Futurewei

   EMail: yingzhen.qu@futurewei.com


   Huaimo Chen
   Futurewei

   EMail: huaimo.chen@futurewei.com


















Qu & Chen                Expires January 9, 2020               [Page 16]