Network Working Group                                              Z. Li
Internet-Draft                                                     L. Li
Intended status: Standards Track                                  Huawei
Expires: September 12, 2019                               March 11, 2019


                    PCEP Flow Specification for SRv6
                   draft-li-pce-pcep-flowspec-srv6-00

Abstract

   This draft proposes PCEP flow specification rules that are used to
   filter SRv6 packets.

Requirements Language

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in [RFC2119].

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 September 12, 2019.

Copyright Notice

   Copyright (c) 2019 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



Li & Li                Expires September 12, 2019               [Page 1]


Internet-Draft      PCEP Flow Specification for SRv6          March 2019


   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.  Definitions and Acronyms  . . . . . . . . . . . . . . . . . .   3
   3.  The Flow Specification TLV for SRv6 . . . . . . . . . . . . .   3
   4.  Security Considerations . . . . . . . . . . . . . . . . . . .   6
   5.  IANA  . . . . . . . . . . . . . . . . . . . . . . . . . . . .   6
   6.  Contributors  . . . . . . . . . . . . . . . . . . . . . . . .   6
   7.  Acknowledgments . . . . . . . . . . . . . . . . . . . . . . .   6
   8.  References  . . . . . . . . . . . . . . . . . . . . . . . . .   6
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .   7

1.  Introduction

   Traffic flows may be categorized and described using "Flow
   Specifications".  [RFC5575] defines the Flow Specification and
   describes how Flow Specification Components are used to describe
   traffic flows.  [RFC5575]defines how Flow Specifications may be
   distributed in BGP to allow specific traffic flows to be associated
   with routes.

   Segment Routing (SR) for unicast traffic has been proposed to cope
   with the use cases in traffic engineering, fast re-reroute, service
   chain, etc.  SR architecture can be implemented over an IPv6 data
   plane using a new type of Segment Routing Header
   (SRH)[I-D.ietf-6man-segment-routing-header] . SRv6 Network
   Programming[I-D.filsfils-spring-srv6-network-programming] defined the
   SRv6 network programming concept and its most basic functions.  SRv6
   SID will have the form LOC:FUNCT:ARGS::.

   LOC: Each operator is free to use the locator length it chooses.
   Most often the LOC part of the SID is routable and leads to the node
   which instantiates that SID

   FUNCT: The FUNCT part of the SID is an opaque identification of a
   local function bound to the SID. (e.g.  End:Endpoint, End.X, End.T,
   End.DX2 etc.)

   ARGS: A function may require additional arguments that would be
   placed immediately after the FUNCT

   PCEP[RFC5440] defines the communication between a Path Computation
   Client (PCC) and a PCE, or between PCE and PCE, enabling computation
   of path for Traffic Engine.  PCEP Flow Specification (PCEP-FS)



Li & Li                Expires September 12, 2019               [Page 2]


Internet-Draft      PCEP Flow Specification for SRv6          March 2019


   [I-D.ietf-pce-pcep-flowspec] specifies a set of extensions to PCEP to
   support dissemination of Flow Specification.
   [I-D.ietf-pce-pcep-flowspec] defined 3 new Flow Specification TLV
   Types: TBD5 for Route Distinguisher(RD), TBD6 for IPv4 Multicast
   Flow, TBD7 for IPv6 Multicast Flow.  This document specifies a new
   subset of PCEP Flow Specification TLV Types to support Segment
   Routing over IPv6 data plane (SRv6) filtering.

2.  Definitions and Acronyms

   o  FS: Flow Specification

   o  SR: Segment Routing

   o  SRv6: IPv6 Segment Routing, SRv6 is a method of forwarding IPv6
      packets on the network based on the concept of source routing.

   o  SID: Segment Identifier

   o  BSID: Binding SID

3.  The Flow Specification TLV for SRv6

   This document proposes new flow specifications rules that is encoded
   in PCEP FS TLVs.  The following new FS TLV types are defined:

   o  Whole SID

   Type TBD1 - Whole SID/BSID

    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              |
   +-------------------------------+-------------------------------+
   ~                      [operator, value]+                       ~
   +---------------------------------------------------------------+

   This type of new TLV contains a set of {operator, value} pairs that
   are used to match the SID/binding SID or a range of whole SID.

   The operator byte is encoded as:

                          0   1   2   3   4   5   6   7
                        +---+---+---+---+---+---+---+---+
                        | e | a |lt |gt |eq |  reserve  |
                        +---+---+---+---+---+---+---+---+




Li & Li                Expires September 12, 2019               [Page 3]


Internet-Draft      PCEP Flow Specification for SRv6          March 2019


   Where:

   e - end-of-list bit.  Set in the last {op, value} pair in the list.

   a - AND bit.  If unset, the previous term is logically ORed with the
   current one.  If set, the operation is a logical AND.  It should be
   unset in the first operator byte of a sequence.  The AND operator has
   higher priority than OR for the purposes of evaluating logical
   expressions.

   lt - less than comparison between data and value.

   gt - greater than comparison between data and value.

   eq - equality between data and value.

   The bits lt, gt, and eq can be combined to produce match the SID or a
   range of SID(e.g. less than SID1 and greater than SID2).

   The value field is encoded as:

    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
   +---------------------------------------------------------------+
   ~                         SID(128bits)                          ~
   +---------------------------------------------------------------+

   The format of SID is described in
   [I-D.ietf-6man-segment-routing-header] and
   [I-D.filsfils-spring-srv6-network-programming]

   o  Some bits of SID to match

   For some scenarios route policy with the whole128 bits SID matching
   is too long and not necessary.
   [I-D.filsfils-spring-srv6-network-programming] defined the format of
   SID is LOC:FUNCT:ARGS::. In some scenarios, traffic packets can just
   match Locator, Function ID, Argument or combine of these different
   fields rather than whole 128 bits SID.  This document defines a set
   of new component type TBD2 to reduce the length of matching.

   Type TBD2 - Some bits of SID









Li & Li                Expires September 12, 2019               [Page 4]


Internet-Draft      PCEP Flow Specification for SRv6          March 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              |
   +-------------------------------+-------------------------------+
   ~                      [operator, value]+                       ~
   +---------------------------------------------------------------+

   This type of new TLV contains a set of {operator, value} pairs that
   are used to match some bits of SID.

   The operator byte is encoded as:

                           0   1   2   3   4   5   6   7
                        +---+---+---+---+---+---+---+---+
                        | e | a |      type     |reserve|
                        +---+---+---+---+---+---+---+---+

   Where:

   e - end-of-list bit.  Set in the last {op, value} pair in the list.

   a - AND bit.  If unset, the previous term is logically ORed with the
   current one.  If set, the operation is a logical AND.  It should be
   unset in the first operator byte of a sequence.  The AND operator has
   higher priority than OR for the purposes of evaluating logical
   expressions.

   type:

   0000 : SID's LOC bits

   0001 : SID's FUNCT bits 0010 :

   SID's LOC:FUNCT bits

   0011 : SID's FUNCT:ARGS bits

   The value field is encoded as SID with mask to match bits as type
   defined:

    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
   +---------------------------------------------------------------+
   ~                         SID(128bits)                          ~
   +---------------------------------------------------------------+
   ~                             Mask                              ~
   +---------------------------------------------------------------+



Li & Li                Expires September 12, 2019               [Page 5]


Internet-Draft      PCEP Flow Specification for SRv6          March 2019


4.  Security Considerations

   No new security issues are introduced to the PECP protocol by this
   specification.

5.  IANA

   IANA is requested to a new entry in "Flow Spec component types
   registry" with the following values:

      +--------------------------------------------+
      |   Type  | RFC or Draft |    Description    |
      +--------------------------------------------+
      |   TBD1  |  This Draft  |        SID        |
      +--------------------------------------------+
      |   TBD2  |  This Draft  | Some bits of SID  |
      +--------------------------------------------+

6.  Contributors

   TBD

7.  Acknowledgments

   TBD

8.  References

   [I-D.filsfils-spring-srv6-network-programming]
              Filsfils, C., Camarillo, P., Leddy, J.,
              daniel.voyer@bell.ca, d., Matsushima, S., and Z. Li, "SRv6
              Network Programming", draft-filsfils-spring-srv6-network-
              programming-07 (work in progress), February 2019.

   [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-16 (work in
              progress), February 2019.

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






Li & Li                Expires September 12, 2019               [Page 6]


Internet-Draft      PCEP Flow Specification for SRv6          March 2019


   [I-D.ietf-pce-pcep-flowspec]
              Dhody, D., Farrel, A., and Z. Li, "PCEP Extension for Flow
              Specification", draft-ietf-pce-pcep-flowspec-03 (work in
              progress), February 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>.

   [RFC5575]  Marques, P., Sheth, N., Raszuk, R., Greene, B., Mauch, J.,
              and D. McPherson, "Dissemination of Flow Specification
              Rules", RFC 5575, DOI 10.17487/RFC5575, August 2009,
              <https://www.rfc-editor.org/info/rfc5575>.

Authors' Addresses

   Zhenbin Li
   Huawei
   156 Beiqing Road
   Beijing, 100095
   P.R. China

   Email: lizhenbin@huawei.com


   Lei Li
   Huawei
   156 Beiqing Road
   Beijing  100095
   P.R. China

   Email: lily.lilei@huawei.com













Li & Li                Expires September 12, 2019               [Page 7]