SPRING                                                  C. Filsfils, Ed.
Internet-Draft                                         P. Camarillo, Ed.
Intended status: Standards Track                     Cisco Systems, Inc.
Expires: August 16, 2020                                          D. Cai
                                                                 Alibaba
                                                                D. Voyer
                                                             Bell Canada
                                                               I. Meilik
                                                                Broadcom
                                                                K. Patel
                                                            Arrcus, Inc.
                                                           W. Henderickx
                                                                   Nokia
                                                         P. Jonnalagadda
                                                       Barefoot Networks
                                                               D. Melman
                                                                 Marvell
                                                       February 13, 2020


          Network Programming extension: SRv6 uSID instruction
          draft-filsfils-spring-net-pgm-extension-srv6-usid-03

Abstract

   The SRv6 "micro segment" (SRv6 uSID or uSID for short) instruction is
   defined and illustrated.

   It is a straightforward extension to the SRv6 Network Programming
   model and its SRH encapsulation.

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



Filsfils, et al.         Expires August 16, 2020                [Page 1]


Internet-DraftNetwork Programming extension: SRv6 uSID instFebruary 2020


   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 August 16, 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.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   3
   2.  Terminology . . . . . . . . . . . . . . . . . . . . . . . . .   3
     2.1.  Notation for human readability  . . . . . . . . . . . . .   4
   3.  SRv6 behaviors associated with a uSID . . . . . . . . . . . .   4
     3.1.  uN  . . . . . . . . . . . . . . . . . . . . . . . . . . .   4
   4.  Routing . . . . . . . . . . . . . . . . . . . . . . . . . . .   4
   5.  Illustration  . . . . . . . . . . . . . . . . . . . . . . . .   5
     5.1.  Reference diagram . . . . . . . . . . . . . . . . . . . .   5
     5.2.  SRv6 overlay with underlay optimization . . . . . . . . .   5
   6.  Benefits  . . . . . . . . . . . . . . . . . . . . . . . . . .   7
   7.  Running code  . . . . . . . . . . . . . . . . . . . . . . . .   8
   8.  Security  . . . . . . . . . . . . . . . . . . . . . . . . . .   8
   9.  Work in progress  . . . . . . . . . . . . . . . . . . . . . .   8
   10. Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .   8
   11. Contributors  . . . . . . . . . . . . . . . . . . . . . . . .   9
   12. References  . . . . . . . . . . . . . . . . . . . . . . . . .  12
     12.1.  Normative References . . . . . . . . . . . . . . . . . .  12
     12.2.  Informative References . . . . . . . . . . . . . . . . .  13
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  13








Filsfils, et al.         Expires August 16, 2020                [Page 2]


Internet-DraftNetwork Programming extension: SRv6 uSID instFebruary 2020


1.  Introduction

   SRv6 Network Programming [I-D.ietf-spring-srv6-network-programming]
   defines a mechanism to build a network program with topological and
   service segments.  It leverages the SRH
   [I-D.ietf-6man-segment-routing-header] to encode a network program
   together with optional metadata shared among the different SIDs.

   This draft extends SRv6 Network Programming with a new type of SRv6
   SID behavior: SRv6 uN.  This is combined with the rest of
   instructions of the network program and the SRH encapsulation to
   build programs in a scalable and efficient way.

2.  Terminology

   The SRv6 Network Programming
   [I-D.ietf-spring-srv6-network-programming] and SRH
   [I-D.ietf-6man-segment-routing-header] terminology is leveraged and
   extended with the following terms:

   uSID carrier: a 128bit SRv6 SID of format <uSID-Block><Active-
   uSID><Next-uSID>...<Last-uSID><End-of-Carrier>...<End-of-Carrier>.  A
   uSID carrier can be encoded in the Destination Address of an IPv6
   header or at any position in the Segment List of an SRH.

   uSID block: A block of uSID's

      It can be any IPv6 prefix allocated to the provider (e.g. /40 or
      /48), or it can be any block generally available for private use
      (e.g. /16 or /32).  An SR domain may have multiple uSID blocks.

   uSID: in this document a 16-bit ID.  A different uSID length may be
   used.

   Active uSID: first uSID after the uSID block

   Next uSID: next uSID after the Active uSID

   Last uSID: from left to right, the last uSID before the first End-of-
   Carrier uSID

   End-of-Carrier: reserved ID used to mark the end of a uSID carrier.
   The value 0000 is selected as End-of-Carrier.  All of the empty uSID
   carrier positions must be filled with the End-of-Carrier ID.  Hence,
   the End-of-Carrier can be present more than once in a uSID carrier.

   Parent (node): the node at which an uSID is instantiated.  The uSIDs
   are instantiated on a per-parent node basis.



Filsfils, et al.         Expires August 16, 2020                [Page 3]


Internet-DraftNetwork Programming extension: SRv6 uSID instFebruary 2020


   Behavior of an uSID: the SRv6 function associated with a given ID.
   Section 3 defines them.

2.1.  Notation for human readability

   For human readability, the examples in this document follow this
   notation:

      2001:db8::/32 is the uSID block used in the SR domain

      0N00: uN behavior bound to node N

3.  SRv6 behaviors associated with a uSID

   The SRv6 SRH encapsulation and its network programming model are
   extended with the following functions:

3.1.  uN

   The uN behavior is a variant of the endpoint behavior.

   This behavior takes a 80b argument, "Arg", which contains the next
   uSIDs in the uSID carrier.

   When N receives a packet whose IPv6 DA is S and S is a local uN SID,
   N does:

   1.   IF DA[48..63] != 0                                       ;; Ref1
   2.      Copy DA[48..127] into DA[32..111]
   3.      Set DA[112..127] to 0x0000
   4.      Forward the packet to the new DA
   5.   ELSE
   6.      Execute the End pseudocode                            ;; Ref2

   Ref 1: DA[X..Y] refers to the bits from position X to Y (included) in
   the IPv6 Destination Address of the received packet.  The bit 0 is
   the MSB, while the bit 127 is the LSB.

   Ref 2: This refers to the End behavior as defined in Section 4.1 of
   [I-D.ietf-spring-srv6-network-programming].  The End behavior may be
   combined with the PSP, USP and USD flavours.

4.  Routing

   If N is configured with a uN SID 2001:db8::/32 then the operator must
   ensure that N advertises 2001:db8::/32 in routing.





Filsfils, et al.         Expires August 16, 2020                [Page 4]


Internet-DraftNetwork Programming extension: SRv6 uSID instFebruary 2020


5.  Illustration

   This section extends the illustrations for SRv6 Network Programming
   [I-D.filsfils-spring-srv6-net-pgm-illustration] to cover uSID.  The
   reference topology is the same with the addition of link 6-8.

5.1.  Reference diagram

   Nodes 1 to 8 are considered within the network domain.

   Nodes X and Y are outside the domain.

   Nodes 1 and 8 act as PE respectively to nodes X and Y.

   All the links within the domain have the same IGP metric.  The IGP-
   metric shortest-path from 1 to 8 is 1-2-7-8 while the latency-metric
   shortest-path from 1 to 8 is 1-2-3-4-5-6-7-8.

                                3------4---5
                                |       \ /
                                |        6
                                |       / \
                           1--- 2------7---8
                          /                 \
                         X                   Y
                    Tenant100            Tenant100 with
                                           IPv4 20/8

                       Figure 1: Reference topology

5.2.  SRv6 overlay with underlay optimization

   Let us illustrate a low-latency SR-L3VPN service delivered to a
   packet (X,Y).

   PE 1 encapsulates (X, Y) in an outer IPv6 header with DA =
   2001:db8:0300:0500:0700:: and SRH (B:8:D0::; SL=1; NH=4).  Leveraging
   the illustration conventions from SRv6 network programming, the
   following resulting packet leaves node 1 in the direction of node 3:

      (A1::, 2001:db8:0300:0500:0700::)(B:8:D0::; SL=1; NH=4)(X, Y)

   2001:db8:0300:0500:0700:: is a uSID carrier encoding a source routed
   stateless path via node 3 then 5 then 7.

   B:8:D0:: is an End.DT4 SID instantiated at node 8.





Filsfils, et al.         Expires August 16, 2020                [Page 5]


Internet-DraftNetwork Programming extension: SRv6 uSID instFebruary 2020


   1 sends this packet to 2, as 2 is on the shortest-path to
   2001:db8:0300::/48 advertised by 3.

   When 2 receives the packet, 2 performs a regular IPv6 FIB lookup.  It
   finds a FIB entry for 2001:db8:0300::/48 and forwards along the
   shortest path to 3.

   When 3 receives the packet, 3 matches 2001:db8:0300::/48 in its "My
   SID Table" and executes the uN behavior.  The updated DA becomes
   2001:db8:0500:0700::. Node 3 then performs a lookup on the updated DA
   and forwards the packet to 5 along the shortest path to
   2001:db8:0500::/48.

   The following packet leaves node 3:

      (A1::, 2001:db8:0500:0700::)(B:8:D0::; SL=1; NH=4)(X, Y)

   4 forwards along the shortest path to 2001:db8:0500::/48.

   When 5 receives the packet, 5 matches 2001:db8:0500::/48 in its "My
   SID Table" and executes the uN behavior.  The updated DA becomes
   2001:db8:0700::. 5 performs a lookup on the updated DA and forwards
   the packet to 7 along the shortest path to 2001:db8:0700::/48.

   The following packet leaves node 5:

      (A1::, 2001:db8:0700::)(B:8:D0::; SL=1; NH=4)(X, Y)

   6 forwards along the shortest path to 2001:db8:0700::/48.

   When 7 receives the packet, 7 matches 2001:db8:0700::/48 in its "My
   SID Table" and finds the bound function uN.  As a result, Node 7
   executes the "End with PSP and USD support" pseudocode, decrementing
   the SL value in the SRH, and updating the DA with the next SID
   B:8:D0::. Since the SL value is zero the SRH is removed.  Node 7
   performs a lookup on the updated DA and forwards along the shortest
   path.

   The following packet leaves node 7:

      (A1::, B:8:D0::)(X, Y)

   8 receives it, performs the End.DT4 function and sends the IP packet
   (X, Y) towards its VPN destination.

   This example illustrates the benefits highlighted in the next
   section.




Filsfils, et al.         Expires August 16, 2020                [Page 6]


Internet-DraftNetwork Programming extension: SRv6 uSID instFebruary 2020


6.  Benefits

      Perfect integration with SRv6 Network Programming

         SRv6 uSID is an instruction of the SRv6 network programming
         model

      Perfect integration with SRH

         Any SID in DA or SRH can be an SRv6 uSID carrier

      Scalable SR Policy

         6 uSID' per uSID carrier

         18 source routing waypoints in solely 40bytes of overhead

            T.Encaps.Red with an SRH of 40 bytes (8 fixed + 2 * 16
            bytes)

            6 uSID's in DA and 12 in SRH

      Efficient MTU overhead

         In apple to apple comparison, the SRv6 solution outperforms any
         alternative (VxLAN with SR-MPLS, CRH).

      Scalable number of globally unique nodes in the domain

         16-bit uSID: 65k uSIDs per domain block

         32-bit uSID: 4.3M uSIDs per domain block

      Hardware-friendly:

         Leverages mature hardware capabilities (shift)

         Avoids any extra lookup in indexed mapping table

         Demonstrated by Cisco linerate implementation on Jericho1

      Control-Plane friendly

         No indexed mapping table is required

         No routing extension is required: a simple prefix advertisement
         suffices




Filsfils, et al.         Expires August 16, 2020                [Page 7]


Internet-DraftNetwork Programming extension: SRv6 uSID instFebruary 2020


7.  Running code

   The hardware and software platforms listed below have demonstrated
   support for the uN instruction defined in this document.

   Further on, all these implementations have participated in a joint
   interoperability testing.

   Hardware implementations (in alphabetical order):

      Arrcus ArcOS (based on Broadcom Jericho2)

      Barefoot Tofino NPU

      Cisco 8000 Series Routers (based on Cisco Silicon One Q100)

      Cisco ASR9000 platform (with 3rd gen Tomahawk and 4th gen
      Lightspeed line-cards)

      Cisco NCS5500 platform (based on Broadcom Jericho/Jericho+)

      Marvell Prestera Falcon CX 8500

   Software open-source implementations (in alphabetical order):

      FD.io VPP

      Linux Kernel

8.  Security

   The security rules defined in Section 7 of
   [I-D.ietf-spring-srv6-network-programming], protect intra-domain
   deployments that includes SRv6 uSID.

9.  Work in progress

   Future version of this document will include other uSID behaviors
   related to TE, VPN and service programming.

10.  Acknowledgements

   The authors would like to acknowledge Francois Clad, Peter Psenak,
   Ketan Talaulikar, Jakub Horn, Swadesh Agrawal, Zafar Ali, Darren
   Dukes, Kiran Sadshiran, Junaid Israr, Lakshmanan Srikanth, Asif
   Islam, Saleem Hafeez, Michael MacKenzie, Sushek Shekar, YuanChao Su,
   Alexander Preusche, Alberto Donzelli, Miya Kohno, David Smith, Ianik




Filsfils, et al.         Expires August 16, 2020                [Page 8]


Internet-DraftNetwork Programming extension: SRv6 uSID instFebruary 2020


   Semco, Bertrand Duvivier, Frederic Trate, Kris Michielsen, Eyal
   Dagan, Eli Stein, Ofer Iny, Elad Naor, Aviad Behar, Joseph Chin.

11.  Contributors

   Jisu Bhattacharyaa
   Cisco Systems, Inc.
   United States of America

   Email: jisu@cisco.com



   Kamran Raza
   Cisco Systems, Inc.
   Canada

   Email: skraza@cisco.com



   John Bettink
   Cisco Systems, Inc.
   United States of America

   Email: jbettink@cisco.com



   Tomonobu Niwa
   KDDI
   Japan

   Email: to-niwa@kddi.com



   Luay Jalil
   Verizon
   United States of America

   Email: luay.jalil@one.verizon.com



   Zhichun Jiang
   Tencent
   China



Filsfils, et al.         Expires August 16, 2020                [Page 9]


Internet-DraftNetwork Programming extension: SRv6 uSID instFebruary 2020


   Email: zcjiang@tencent.com



   Ahmed Shawky
   Saudi Telecom Company
   Saudi Arabia

   Email: ashawky@stc.com.sa



   Nic Leymann
   Deutsche Telekom
   Germany

   Email: N.Leymann@telekom.de



   Dirk Steinberg
   Lapishills Consulting Limited
   Cyprus

   Email: dirk@lapishills.com



   Shawn Zandi
   LinkedIn
   United States of America

   Email: szandi@linkedin.com



   Gaurav Dawra
   LinkedIn
   United States of America

   Email: gdawra@linkedin.com



   Jim Uttaro
   AT&T
   United States of America




Filsfils, et al.         Expires August 16, 2020               [Page 10]


Internet-DraftNetwork Programming extension: SRv6 uSID instFebruary 2020


   Email: ju1738@att.com



   Ning So
   Reliance
   United States of America

   Email: Ning.So@ril.com



   Michael Fiumano
   Sprint
   United States of America

   Email: michael.f.fiumano@sprint.com



   Mazen Khaddam
   Cox
   United States of America

   Email: Mazen.Khaddam@cox.com



   Jichun Ma
   China Unicom
   China

   Email: majc16@chinaunicom.cn



   Satoru Matsushima
   Softbank
   Japan

   Email: satoru.matsushima@g.softbank.co.jp



   Francis Ferguson
   CenturyLink
   United States of America




Filsfils, et al.         Expires August 16, 2020               [Page 11]


Internet-DraftNetwork Programming extension: SRv6 uSID instFebruary 2020


   Email: Francis.Ferguson@centurylink.com



   Takuya Miyasaka
   KDDI
   Japan

   Email: ta-miyasaka@kddi.com



   Kentaro Ebisawa
   Toyota Motor Corporation
   Japan

   Email: ebisawa@toyota-tokyo.tech



   Yukito Ueno
   NTT Communications Corporation
   Japan

   Email: yukito.ueno@ntt.com



12.  References

12.1.  Normative References

   [I-D.ietf-6man-segment-routing-header]
              Filsfils, C., Dukes, D., Previdi, S., Leddy, J.,
              Matsushima, S., and D. Voyer, "IPv6 Segment Routing Header
              (SRH)", draft-ietf-6man-segment-routing-header-26 (work in
              progress), October 2019.

   [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-08 (work in
              progress), January 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>.



Filsfils, et al.         Expires August 16, 2020               [Page 12]


Internet-DraftNetwork Programming extension: SRv6 uSID instFebruary 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>.

12.2.  Informative References

   [I-D.filsfils-spring-srv6-net-pgm-illustration]
              Filsfils, C., Camarillo, P., Li, Z., Matsushima, S.,
              Decraene, B., Steinberg, D., Lebrun, D., Raszuk, R., and
              J. Leddy, "Illustrations for SRv6 Network Programming",
              draft-filsfils-spring-srv6-net-pgm-illustration-01 (work
              in progress), August 2019.

Authors' Addresses

   Clarence Filsfils (editor)
   Cisco Systems, Inc.
   Belgium

   Email: cf@cisco.com


   Pablo Camarillo Garvia (editor)
   Cisco Systems, Inc.
   Spain

   Email: pcamaril@cisco.com


   Dennis Cai
   Alibaba
   China

   Email: d.cai@alibaba-inc.com


   Daniel Voyer
   Bell Canada
   Canada

   Email: daniel.voyer@bell.ca


   Israel Meilik
   Broadcom
   Israel

   Email: israel.meilik@broadcom.com



Filsfils, et al.         Expires August 16, 2020               [Page 13]


Internet-DraftNetwork Programming extension: SRv6 uSID instFebruary 2020


   Keyur Patel
   Arrcus, Inc.
   United States of America

   Email: keyur@arrcus.com


   Wim Henderickx
   Nokia
   Belgium

   Email: wim.henderickx@nokia.com


   Prem Jonnalagadda
   Barefoot Networks
   United States of America

   Email: prem@barefootnetworks.com


   David Melman
   Marvell
   Israel

   Email: davidme@marvell.com

























Filsfils, et al.         Expires August 16, 2020               [Page 14]