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

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

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:

 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]+                       ~
+---------------------------------------------------------------+

Type TBD1 - Whole SID/BSID

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.

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

The operator byte is encoded as:

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)                          ~
+---------------------------------------------------------------+

[I-D.ietf-6man-segment-routing-header] and [I-D.filsfils-spring-srv6-network-programming]

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

For some scenarios route policy with the whole128 bits SID matching is too long and not necessary.

Type TBD2 - Some bits of SID

 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|
                     +---+---+---+---+---+---+---+---+

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

 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                              ~
+---------------------------------------------------------------+

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

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", Internet-Draft draft-filsfils-spring-srv6-network-programming-07, 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)", Internet-Draft draft-ietf-6man-segment-routing-header-16, 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", Internet-Draft draft-ietf-idr-segment-routing-te-policy-05, November 2018.
[I-D.ietf-pce-pcep-flowspec] Dhody, D., Farrel, A. and Z. Li, "PCEP Extension for Flow Specification", Internet-Draft draft-ietf-pce-pcep-flowspec-03, 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.
[RFC5440] Vasseur, JP. and JL. Le Roux, "Path Computation Element (PCE) Communication Protocol (PCEP)", RFC 5440, DOI 10.17487/RFC5440, March 2009.
[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.

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