Network                                                        P. Shaofu
Internet-Draft                                                    L. Yao
Intended status: Standards Track                         ZTE Corporation
Expires: December 7, 2020                                   June 5, 2020


         Advertising Segment Routing Policies Attributes in BGP
            draft-peng-idr-segment-routing-te-policy-attr-00

Abstract

   This document defines necessary attributes advertised with a
   candidate path of a Segment Routing (SR) Policy when BGP is used to
   distribute SR Policy.  New sub-TLVs for the SR Policy attributes are
   defined for signaling information about each segment to meet more
   requirements.

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 December 7, 2020.

Copyright Notice

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

   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.



Shaofu & Yao            Expires December 7, 2020                [Page 1]


Internet-Draft             BGP SR Policy Attr                  June 2020


Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
     1.1.  Requirements Language . . . . . . . . . . . . . . . . . .   3
   2.  New Segment Types for SR-MPLS Policy  . . . . . . . . . . . .   3
     2.1.  Type L: SID only, in the form of Algorithm related MPLS
           Label . . . . . . . . . . . . . . . . . . . . . . . . . .   3
     2.2.  Type M: IPv4 Address + Local Interface ID with optional
           Algorithm related SID . . . . . . . . . . . . . . . . . .   4
     2.3.  Type N: IPv4 Local and Remote addresses with optional
           Algorithm related SID . . . . . . . . . . . . . . . . . .   5
     2.4.  Type O: IPv6 Address + Interface ID for local and remote
           pair with optional Algorithm related SID for SR MPLS  . .   5
     2.5.  Type P: IPv6 Local and Remote addresses with optional
           Algorithm related SID for SR MPLS . . . . . . . . . . . .   6
   3.  New Segment Types for SRv6 Policy . . . . . . . . . . . . . .   7
     3.1.  Type Q: SID only, in the form of Algorithm related IPv6
           address . . . . . . . . . . . . . . . . . . . . . . . . .   8
     3.2.  Type R: IPv6 Node Address with optional Algorithm related
           SRv6 SID  . . . . . . . . . . . . . . . . . . . . . . . .   9
     3.3.  Type S: IPv6 Address + Interface ID for local and remote
           pair for SRv6 with optional Algorithm related SID . . . .  10
     3.4.  Type T: IPv6 Local and Remote addresses for SRv6 with
           optional Algorithm related SID  . . . . . . . . . . . . .  11
   4.  Operatoins  . . . . . . . . . . . . . . . . . . . . . . . . .  12
   5.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  13
   6.  Security Considerations . . . . . . . . . . . . . . . . . . .  13
   7.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .  13
   8.  Normative References  . . . . . . . . . . . . . . . . . . . .  13
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  15

1.  Introduction

   Segment Routing (SR) [RFC8402] allows a headend node to steer a
   packet flow along any path.  Intermediate per-flow states are
   eliminated thanks to source routing.

   [I-D.ietf-spring-segment-routing-policy] details the concepts of SR
   Policy and steering into an SR Policy.  These apply equally to the
   MPLS and IPv6 (known as SRv6) data plane instantiations of Segment
   Routing with their respective representations of segments as SR-MPLS
   SID and SRv6 SID as described in [RFC8402].

   [I-D.ietf-idr-segment-routing-te-policy] specifies the way to use BGP
   to distribute one or more of the candidate paths of an SR Policy to
   the headend of that policy.  It defines a new BGP address family
   (SAFI), i.e., SR Policy SAFI NLRI.  In UPDATE messages of that
   address family, the NLRI identifies an SR Policy Candidate Path, and



Shaofu & Yao            Expires December 7, 2020                [Page 2]


Internet-Draft             BGP SR Policy Attr                  June 2020


   the attributes encode the segment lists and other details of that SR
   Policy Candidate Path.  Currently 11 Segment Types (from A to K) are
   defined to encode SR-MPLS or SRv6 segments.

   This document continues to extend
   [I-D.ietf-idr-segment-routing-te-policy] and define some new Segment
   Types with more attribute information to meet more requirements.

1.1.  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.

2.  New Segment Types for SR-MPLS Policy

   [I-D.ietf-idr-bgp-ls-segment-routing-ext] describes extensions to
   BGP-LS to advertise the SR-MPLS information.  According to Node
   Attributes, Link Attribute, and Prefix Attribute that collected from
   across an SR-MPLS domain, an external controller can construct the
   end-to-end path (with its associated SIDs) that need to be applied to
   an incoming packet to achieve the desired end-to-end forwarding.  The
   Flags and Algorithm information contained in the collected Adjacency
   SID or Prefix SID can be used as the basis for path selection when
   controller compute an SR path.

   When controller distribute an SR-MPLS Policy to the headend of that
   policy, it is not necessary to fill in above flags in each Segment,
   as they have no prompting effect on packet encapsulation.

   For algorithm attribute,
   [I-D.peng-lsr-algorithm-related-adjacency-sid] complement that the
   algorithm identifier can be also included as part of an Adjacency-SID
   advertisement for SR-MPLS.  For this reason, an SR-MPLS Policy
   advertised to the headend may also contain algorithm specific
   Adjacecny-SID.

2.1.  Type L: SID only, in the form of Algorithm related MPLS Label

   The Type L Segment Sub-TLV is similar with existed Type A Segment
   Sub-TLV, it also encodes a single SR-MPLS SID, but with additional
   algorithm information.  The format is as follows:







Shaofu & Yao            Expires December 7, 2020                [Page 3]


Internet-Draft             BGP SR Policy Attr                  June 2020


       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      |   Length      |     Flags     |  SR Algorithm |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |          Label                        | TC  |S|       TTL     |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                                 Figure 1

   Where:

   SR Algorithm: 1 octet specifying SR Algorithm as described in section
   3.1.1 in [RFC8402] when A-Flag is set.  If A-Flag is not set, this
   field SHOULD be set to zero on transmission and MUST be ignored on
   receipt.

   Other fields have the same meaning as existed Type A Segment Sub-TLV.

2.2.  Type M: IPv4 Address + Local Interface ID with optional Algorithm
      related SID

   The Type M Segment Sub-TLV is similar with existed Type E Segment
   Sub-TLV, it also encodes an IPv4 node address, a local interface
   Identifier (Local Interface ID) and an optional SR-MPLS SID, but with
   additional algorithm information.  The format is as follows:

       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      |   Length      |     Flags     |  SR Algorithm |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                 Local Interface ID (4 octets)                 |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                 IPv4 Node Address (4 octets)                  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                SR-MPLS SID (optional, 4 octets)               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                                 Figure 2

   Where:

   SR Algorithm: 1 octet specifying SR Algorithm as described in section
   3.1.1 in [RFC8402] when A-Flag is set.  If A-Flag is not set, this
   field SHOULD be set to zero on transmission and MUST be ignored on
   receipt.




Shaofu & Yao            Expires December 7, 2020                [Page 4]


Internet-Draft             BGP SR Policy Attr                  June 2020


   Other fields have the same meaning as existed Type E Segment Sub-TLV.

2.3.  Type N: IPv4 Local and Remote addresses with optional Algorithm
      related SID

   The Type N Segment Sub-TLV is similar with existed Type F Segment
   Sub-TLV, it also encodes an adjacency local address, an adjacency
   remote address and an optional SR-MPLS SID, but with additional
   algorithm information.  The format is as follows:

       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      |   Length      |     Flags     |  SR Algorithm |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                Local IPv4 Address (4 octets)                  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                Remote IPv4 Address  (4 octets)                |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                SR-MPLS SID (optional, 4 octets)               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                                 Figure 3

   Where:

   SR Algorithm: 1 octet specifying SR Algorithm as described in section
   3.1.1 in [RFC8402] when A-Flag is set.  If A-Flag is not set, this
   field SHOULD be set to zero on transmission and MUST be ignored on
   receipt.

   Other fields have the same meaning as existed Type F Segment Sub-TLV.

2.4.  Type O: IPv6 Address + Interface ID for local and remote pair with
      optional Algorithm related SID for SR MPLS

   The Type O Segment Sub-TLV is similar with existed Type G Segment
   Sub-TLV, it also encodes an IPv6 Link Local adjacency with IPv6 local
   node address, a local interface identifier (Local Interface ID), IPv6
   remote node address , a remote interface identifier (Remote Interface
   ID) and an optional SR-MPLS SID, but with additional algorithm
   information.  The format is as follows:









Shaofu & Yao            Expires December 7, 2020                [Page 5]


Internet-Draft             BGP SR Policy Attr                  June 2020


       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      |   Length      |     Flags     |  SR Algorithm |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                 Local Interface ID (4 octets)                 |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      //                IPv6 Local Node Address (16 octets)          //
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                 Remote Interface ID (4 octets)                |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      //                IPv6 Remote Node Address (16 octets)         //
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                SR-MPLS SID (optional, 4 octets)               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                                 Figure 4

   Where:

   SR Algorithm: 1 octet specifying SR Algorithm as described in section
   3.1.1 in [RFC8402] when A-Flag is set.  If A-Flag is not set, this
   field SHOULD be set to zero on transmission and MUST be ignored on
   receipt.

   Other fields have the same meaning as existed Type G Segment Sub-TLV.

2.5.  Type P: IPv6 Local and Remote addresses with optional Algorithm
      related SID for SR MPLS

   The Type P Segment Sub-TLV is similar with existed Type H Segment
   Sub-TLV, it also encodes an adjacency local address, an adjacency
   remote address and an optional SR-MPLS SID, but with additional
   algorithm information.  The format is as follows:

















Shaofu & Yao            Expires December 7, 2020                [Page 6]


Internet-Draft             BGP SR Policy Attr                  June 2020


       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      |   Length      |     Flags     |  SR Algorithm |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      //               Local IPv6 Address (16 octets)                //
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      //               Remote IPv6 Address  (16 octets)              //
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                SR-MPLS SID (optional, 4 octets)               |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


                                 Figure 5

   Where:

   SR Algorithm: 1 octet specifying SR Algorithm as described in section
   3.1.1 in [RFC8402] when A-Flag is set.  If A-Flag is not set, this
   field SHOULD be set to zero on transmission and MUST be ignored on
   receipt.

   Other fields have the same meaning as existed Type H Segment Sub-TLV.

3.  New Segment Types for SRv6 Policy

   [I-D.ietf-idr-bgpls-srv6-ext] describes extensions to BGP-LS to
   advertise the SRv6 information.  According to SRv6 Node Attributes,
   SRv6 Link Attribute, SRv6 Prefix Attribute and SRv6 SID NLRI that
   collected from across an SRv6 domain, an external controller can
   construct the end-to-end path (with its associated SIDs) that need to
   be applied to an incoming packet to achieve the desired end-to-end
   forwarding.  The Flags and Algorithm information contained in the
   collected END SID or END.X SID can be used as the basis for path
   selection when controller compute an SR path.

   When controller distribute an SRv6 Policy to the headend of that
   policy, it is not necessary to fill in these Flags in each Segment,
   as they have no prompting effect on packet encapsulation.

   [I-D.ietf-spring-srv6-network-programming] has defined some
   fundamental Behaviors with additional Flavors for the function of
   SRv6 SID.  Different type of SIDs, such as END SID, END.X SID, VPN
   Service SID, etc, could be allocated from the same SRv6 SID Locator,
   each with individual structure.  The ISIS
   [I-D.ietf-lsr-isis-srv6-extensions] and OSPFv3
   [I-D.ietf-lsr-ospfv3-srv6-extensions] also defined that Locator is
   algorithm specific.  And, [I-D.ietf-idr-bgpls-srv6-ext] also



Shaofu & Yao            Expires December 7, 2020                [Page 7]


Internet-Draft             BGP SR Policy Attr                  June 2020


   advertise SRv6 Locators and Segments with specific algorithm.  Thus,
   an SRv6 Policy advertised to the headend may contain any type of SID
   with specific algorithm.

3.1.  Type Q: SID only, in the form of Algorithm related IPv6 address

   The Type Q Segment Sub-TLV is similar with existed Type B Segment
   Sub-TLV, it also encodes a single SRv6 SID, but with additional
   algorithm, endpoint behavior and SID strucutre information.  The
   format is as follows:

       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      |   Length      |     Flags     |  SR Algorithm |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      //                       SRv6 SID (16 octets)                  //
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |       Endpoint Behavior       |            Reserved           |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |      BL       |      NL       |      FL       |      AL       |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


                                 Figure 6

   Where:

   Type: TBD

   Length is 26.

   SR Algorithm: 1 octet specifying SR Algorithm as described in section
   3.1.1 in [RFC8402] when A-Flag is set.  If A-Flag is not set, this
   field SHOULD be set to zero on transmission and MUST be ignored on
   receipt.

   Endpoint Behavior: 2 octets specifying the Endpoint Behavior code
   point for this SRv6 SID as defined in section 9.2 of
   [I-D.ietf-spring-srv6-network-programming].

   BL: 1 octet specifying Block Length of the SID structure.

   NL: 1 octet specifying Node Length of the SID structure.

   FL: 1 octet specifying Function Length of the SID structure.

   AL: 1 octet specifying Argument Length of the SID structure.



Shaofu & Yao            Expires December 7, 2020                [Page 8]


Internet-Draft             BGP SR Policy Attr                  June 2020


   Other fields have the same meaning as existed Type B Segment Sub-TLV.

3.2.  Type R: IPv6 Node Address with optional Algorithm related SRv6 SID

   The Type Q Segment Sub-TLV is similar with existed Type B Segment
   Sub-TLV, it also encodes an IPv6 node address, SR Algorithm and an
   optional SRv6 SID, but with additional endpoint behavior and SID
   strucutre information.  The format is as follows:

       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      |   Length      |     Flags     | SR Algorithm  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      //                 IPv6 Node Address (16 octets)               //
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      //                       SRv6 SID (24 octets)                  //
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |       Endpoint Behavior       |            Reserved           |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |      BL       |      NL       |      FL       |      AL       |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


                                 Figure 7

   Where:

   Type: TBD

   Length is 42 when the SRv6 SID(with its endpoint behavior and
   structure) is present else is 18.

   SR Algorithm: 1 octet specifying SR Algorithm as described in section
   3.1.1 in [RFC8402] when A-Flag is set.  If A-Flag is not set, this
   field SHOULD be set to zero on transmission and MUST be ignored on
   receipt.

   Endpoint Behavior: 2 octets specifying the Endpoint Behavior code
   point for this SRv6 SID as defined in section 9.2 of
   [I-D.ietf-spring-srv6-network-programming].

   BL: 1 octet specifying Block Length of the SID structure.

   NL: 1 octet specifying Node Length of the SID structure.

   FL: 1 octet specifying Function Length of the SID structure.




Shaofu & Yao            Expires December 7, 2020                [Page 9]


Internet-Draft             BGP SR Policy Attr                  June 2020


   AL: 1 octet specifying Argument Length of the SID structure.

   Other fields have the same meaning as existed Type I Segment Sub-TLV.

3.3.  Type S: IPv6 Address + Interface ID for local and remote pair for
      SRv6 with optional Algorithm related SID

   The Type S Segment Sub-TLV is similar with existed Type J Segment
   Sub-TLV, it also encodes an IPv6 Link Local adjacency with local node
   address, a local interface identifier (Local Interface ID), remote
   IPv6 node address, a remote interface identifier (Remote Interface
   ID) and an optional SRv6 SID, but with additional algorithm, endpoint
   behavior and SID strucutre information.  The format is as follows:

       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      |   Length      |     Flags     |  SR Algorithm |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                 Local Interface ID (4 octets)                 |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      //                IPv6 Local Node Address (16 octets)          //
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                 Remote Interface ID (4 octets)                |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      //                IPv6 Remote Node Address (16 octets)         //
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      //                SRv6 SID (optional, 24 octets)               //
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |       Endpoint Behavior       |            Reserved           |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |      BL       |      NL       |      FL       |      AL       |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


                                 Figure 8

   Where:

   Type: TBD

   Length is 66 when the SRv6 SID (with its endpoint behavior and
   structure) is present else is 42.

   SR Algorithm: 1 octet specifying SR Algorithm as described in section
   3.1.1 in [RFC8402] when A-Flag is set.  If A-Flag is not set, this
   field SHOULD be set to zero on transmission and MUST be ignored on
   receipt.



Shaofu & Yao            Expires December 7, 2020               [Page 10]


Internet-Draft             BGP SR Policy Attr                  June 2020


   Endpoint Behavior: 2 octets specifying the Endpoint Behavior code
   point for this SRv6 SID as defined in section 9.2 of
   [I-D.ietf-spring-srv6-network-programming].

   BL: 1 octet specifying Block Length of the SID structure.

   NL: 1 octet specifying Node Length of the SID structure.

   FL: 1 octet specifying Function Length of the SID structure.

   AL: 1 octet specifying Argument Length of the SID structure.

   Other fields have the same meaning as existed Type J Segment Sub-TLV.

3.4.  Type T: IPv6 Local and Remote addresses for SRv6 with optional
      Algorithm related SID

   The Type T Segment Sub-TLV is similar with existed Type K Segment
   Sub-TLV, it also encodes an adjacency local address, an adjacency
   remote address and an optional SRv6 SID, but with additional
   algorithm, endpoint behavior and SID strucutre information.  The
   format is as follows:

       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      |   Length      |     Flags     |  SR Algorithm |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      //               Local IPv6 Address (16 octets)                //
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      //               Remote IPv6 Address  (16 octets)              //
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      //                SRv6 SID (optional, 24 octets)               //
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |       Endpoint Behavior       |            Reserved           |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |      BL       |      NL       |      FL       |      AL       |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


                                 Figure 9

   Where:

   Type: TBD

   Length is 58 when the SRv6 SID (with its endpoint behavior and
   structure) is present else is 34.



Shaofu & Yao            Expires December 7, 2020               [Page 11]


Internet-Draft             BGP SR Policy Attr                  June 2020


   SR Algorithm: 1 octet specifying SR Algorithm as described in section
   3.1.1 in [RFC8402] when A-Flag is set.  If A-Flag is not set, this
   field SHOULD be set to zero on transmission and MUST be ignored on
   receipt.

   Endpoint Behavior: 2 octets specifying the Endpoint Behavior code
   point for this SRv6 SID as defined in section 9.2 of
   [I-D.ietf-spring-srv6-network-programming].

   BL: 1 octet specifying Block Length of the SID structure.

   NL: 1 octet specifying Node Length of the SID structure.

   FL: 1 octet specifying Function Length of the SID structure.

   AL: 1 octet specifying Argument Length of the SID structure.

   Other fields have the same meaning as existed Type K Segment Sub-TLV.

4.  Operatoins

   [I-D.ietf-idr-segment-routing-te-policy] has defined basic SR policy
   operations.  This document emphasizes the use of algorithm and other
   attributes for the headend.

   In most cases, the controller compute the SR path and advertise the
   candidate path with ultimate SID list to the headend according to
   selected link-state database with SR information, and the headend
   does not need to worry about how to convert a segment represented by
   node/link to a SID.  It is the local matter and policy for the
   headend to use algorithm field to verify whether the received SID is
   consistent with that stored in the local database.  If verification
   fails, the headend may treat the total segment list is invalid, and
   turn to use other valid segment list.

   In a few cases, the controller may advertise the candidate path
   without optional SID to the headend.  The headend must convert each
   segment represented by node/link to a SID within the determined
   algorithm context.  If the conversion is not successful, the headend
   must treat the total segment list is invalid, and turn to use other
   valid segment list.

   However, for inter-domain case, the headend almost has no capability
   to do the above conversion, because it has not the entire topology
   view.






Shaofu & Yao            Expires December 7, 2020               [Page 12]


Internet-Draft             BGP SR Policy Attr                  June 2020


   For SRv6 policy, the headend can do more enhanced function according
   to endpoint behavior and structure attribute of each SID, that's the
   local behavior of the headend.

5.  IANA Considerations

   This document requests codepoint allocations for new Segment Sub-TLVs
   in the "SR Policy List Sub-TLVs" registry.

Value  Description                                          Reference
------------------------------------------------------------------------
TBD1  Type L MPLS Algorithm related SID sub-TLV            This document
TBD2  Type M IPv4 Node, index and Algorithm related        This document
      SID sub-TLV
TBD3  Type N IPv4 Local/Remote addresses and Algorithm     This document
      related SID sub-TLV
TBD4  Type O IPv6 Node, index for remote and local pair    This document
      and Algorithm related SID for SR-MPLS sub-TLV
TBD5  Type P IPv6 Local/Remote addresses and Algorithm     This document
      related SID sub-TLV
TBD6  Type Q SRv6 Algorithm related SID sub-TLV            This document
TBD7  Type R IPv6 Node and Algorithm related SID for       This document
      SRv6 sub-TLV
TBD8  Type S IPv6 Node, index for remote and local pair    This document
      and Algorithm related SID for SRv6 sub-TLV
TBD9  Type T IPv6 Local/Remote addresses and Algorithm     This document
       related SID for SRv6 sub-TLV


                                 Figure 10

6.  Security Considerations

   Procedures and protocol extensions defined in this document do not
   affect the security considerations discussed in
   [I-D.ietf-idr-segment-routing-te-policy].

7.  Acknowledgements

   TBD

8.  Normative References

   [I-D.ietf-idr-bgp-ls-segment-routing-ext]
              Previdi, S., Talaulikar, K., Filsfils, C., Gredler, H.,
              and M. Chen, "BGP Link-State extensions for Segment
              Routing", draft-ietf-idr-bgp-ls-segment-routing-ext-16
              (work in progress), June 2019.



Shaofu & Yao            Expires December 7, 2020               [Page 13]


Internet-Draft             BGP SR Policy Attr                  June 2020


   [I-D.ietf-idr-bgpls-srv6-ext]
              Dawra, G., Filsfils, C., Talaulikar, K., Chen, M.,
              daniel.bernier@bell.ca, d., and B. Decraene, "BGP Link
              State Extensions for SRv6", draft-ietf-idr-bgpls-
              srv6-ext-02 (work in progress), January 2020.

   [I-D.ietf-idr-segment-routing-te-policy]
              Previdi, S., Filsfils, C., Talaulikar, K., Mattes, P.,
              Rosen, E., Jain, D., and S. Lin, "Advertising Segment
              Routing Policies in BGP", draft-ietf-idr-segment-routing-
              te-policy-09 (work in progress), May 2020.

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

   [I-D.ietf-lsr-ospfv3-srv6-extensions]
              Li, Z., Hu, Z., Cheng, D., Talaulikar, K., and P. Psenak,
              "OSPFv3 Extensions for SRv6", draft-ietf-lsr-
              ospfv3-srv6-extensions-00 (work in progress), February
              2020.

   [I-D.ietf-spring-segment-routing-policy]
              Filsfils, C., Sivabalan, S., Voyer, D., Bogdanov, A., and
              P. Mattes, "Segment Routing Policy Architecture", draft-
              ietf-spring-segment-routing-policy-07 (work in progress),
              May 2020.

   [I-D.ietf-spring-srv6-network-programming]
              Filsfils, C., Camarillo, P., Leddy, J., Voyer, D.,
              Matsushima, S., and Z. Li, "SRv6 Network Programming",
              draft-ietf-spring-srv6-network-programming-15 (work in
              progress), March 2020.

   [I-D.peng-lsr-algorithm-related-adjacency-sid]
              Peng, S. and R. Chen, "Algorithm Related IGP-Adjacency SID
              Advertisement", draft-peng-lsr-algorithm-related-
              adjacency-sid-00 (work in progress), March 2020.

   [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>.






Shaofu & Yao            Expires December 7, 2020               [Page 14]


Internet-Draft             BGP SR Policy Attr                  June 2020


   [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>.

   [RFC8200]  Deering, S. and R. Hinden, "Internet Protocol, Version 6
              (IPv6) Specification", STD 86, RFC 8200,
              DOI 10.17487/RFC8200, July 2017,
              <https://www.rfc-editor.org/info/rfc8200>.

   [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>.

   [RFC8660]  Bashandy, A., Ed., Filsfils, C., Ed., Previdi, S.,
              Decraene, B., Litkowski, S., and R. Shakir, "Segment
              Routing with the MPLS Data Plane", RFC 8660,
              DOI 10.17487/RFC8660, December 2019,
              <https://www.rfc-editor.org/info/rfc8660>.

   [RFC8665]  Psenak, P., Ed., Previdi, S., Ed., Filsfils, C., Gredler,
              H., Shakir, R., Henderickx, W., and J. Tantsura, "OSPF
              Extensions for Segment Routing", RFC 8665,
              DOI 10.17487/RFC8665, December 2019,
              <https://www.rfc-editor.org/info/rfc8665>.

   [RFC8666]  Psenak, P., Ed. and S. Previdi, Ed., "OSPFv3 Extensions
              for Segment Routing", RFC 8666, DOI 10.17487/RFC8666,
              December 2019, <https://www.rfc-editor.org/info/rfc8666>.

   [RFC8667]  Previdi, S., Ed., Ginsberg, L., Ed., Filsfils, C.,
              Bashandy, A., Gredler, H., and B. Decraene, "IS-IS
              Extensions for Segment Routing", RFC 8667,
              DOI 10.17487/RFC8667, December 2019,
              <https://www.rfc-editor.org/info/rfc8667>.

   [RFC8754]  Filsfils, C., Ed., Dukes, D., Ed., Previdi, S., Leddy, J.,
              Matsushima, S., and D. Voyer, "IPv6 Segment Routing Header
              (SRH)", RFC 8754, DOI 10.17487/RFC8754, March 2020,
              <https://www.rfc-editor.org/info/rfc8754>.

Authors' Addresses

   Peng Shaofu
   ZTE Corporation
   China

   Email: peng.shaofu@zte.com.cn



Shaofu & Yao            Expires December 7, 2020               [Page 15]


Internet-Draft             BGP SR Policy Attr                  June 2020


   Liu Yao
   ZTE Corporation
   China

   Email: liu.yao71@zte.com.cn














































Shaofu & Yao            Expires December 7, 2020               [Page 16]