Internet DRAFT - draft-dukes-spring-srv6-overhead-analysis

draft-dukes-spring-srv6-overhead-analysis







SPRING                                                     D. Dukes, Ed.
Internet-Draft                                             Cisco Systems
Intended status: Informational                             June 27, 2020
Expires: December 29, 2020


               SRv6 Network Programming Overhead Analysis
              draft-dukes-spring-srv6-overhead-analysis-00

Abstract

   SRv6 network programming provides the framework for the best
   compression of an IPv6 header within an SR domain.  This document
   provides the analysis to illustrate this fact.

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 29, 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.





Dukes                   Expires December 29, 2020               [Page 1]

Internet-Draft SRv6 Network Programming Overhead Analysis      June 2020


Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Reference Topology  . . . . . . . . . . . . . . . . . . . . .   2
   3.  Reference Scenario  . . . . . . . . . . . . . . . . . . . . .   3
   4.  Compression Analysis  . . . . . . . . . . . . . . . . . . . .   4
     4.1.  SRv6  . . . . . . . . . . . . . . . . . . . . . . . . . .   4
       4.1.1.  NEXT-C-SID  . . . . . . . . . . . . . . . . . . . . .   4
       4.1.2.  REPLACE-C-SID . . . . . . . . . . . . . . . . . . . .   4
       4.1.3.  Encapsulation Size  . . . . . . . . . . . . . . . . .   5
     4.2.  SRm6  . . . . . . . . . . . . . . . . . . . . . . . . . .   5
       4.2.1.  SID list  . . . . . . . . . . . . . . . . . . . . . .   6
       4.2.2.  Encapsulation size with CRH-16  . . . . . . . . . . .   6
       4.2.3.  Encapsulation size with CRH-32  . . . . . . . . . . .   6
     4.3.  Encapsulation size saving compared to uncompressed SRv6 .   6
     4.4.  Numerical Application . . . . . . . . . . . . . . . . . .   6
       4.4.1.  Evaluation parameters . . . . . . . . . . . . . . . .   7
       4.4.2.  Evaluation results  . . . . . . . . . . . . . . . . .   7
   5.  Conclusion  . . . . . . . . . . . . . . . . . . . . . . . . .   8
   6.  References  . . . . . . . . . . . . . . . . . . . . . . . . .   8
     6.1.  Normative References  . . . . . . . . . . . . . . . . . .   8
     6.2.  Informative References  . . . . . . . . . . . . . . . . .   9
   Author's Address  . . . . . . . . . . . . . . . . . . . . . . . .   9

1.  Introduction

   SRv6 Network Programming [I-D.ietf-spring-srv6-network-programming]
   defines a framework to build a network program with topological and
   service segments carried in a Segment Routing header (SRH) [RFC8754].
   The SRv6 Network Programming framework natively allows for long
   segment lists to be encoded in the SRH in a compressed fashion, as
   described in [I-D.filsfilscheng-spring-srv6-srh-comp-sl-enc].

   This document provides a detailed analysis of the efficiency of this
   compression in a realistic SRv6 deployment scenario.  In particular,
   it evaluates the encapsulation size of a compressed segment lists
   against uncompressed segment lists.

   This document also shows that a mapping solution does not provide
   better compression than what can be achieved with the SRv6 mechanism.
   As such, analysis of the SRm6 proposal documented in
   [I-D.bonica-spring-sr-mapped-six] is provided for comparison.

2.  Reference Topology

   The following topology is used throughout the remainder of this
   document.




Dukes                   Expires December 29, 2020               [Page 2]

Internet-Draft SRv6 Network Programming Overhead Analysis      June 2020


          + * * * * * * * * * * * * * * * * * * * * * * * * * * +
          *                                                     *
          * - - - - - - - - + - - - - - - - - + - - - - - - - - *
          *                 |                 |                 *
          *   [M1_0]       [5]  [C_0]        [7]  [M2_0]        *
   [1]---[3]                |                 |                [4]---[2]
          *        [M1_i]  [6]        [C_j]  [8]       [M2_k]   *
          *                 |                 |                 *
          *     Metro 1     |      Core       |     Metro 2     *
          *- - - - - - - - - - - - - - - - - - - - - - - - - - -*
          *                                                     *
          *                      SR domain                      *
          + * * * * * * * * * * * * * * * * * * * * * * * * * * +

                       Figure 1: Reference topology

   o  1 and 2 are hosts outside the SR domain

   o  3 and 4 are SR domain edge routers

   o  Metro 1, Core and Metro 2 are independent IGP instances in the SR
      domain

   o  5 and 6 are border routers between the Metro 1 and Core instances

   o  7 and 8 are border routers between the Metro 2 and Core instances

   o  M1_1..M1_i, C_1..C_j, and M2_1..M2_k are all SR domain routers

3.  Reference Scenario

   Consider a service provider offering a VPN service with underlay
   optimization.

   Hosts 1 and 2 are located in two different sites of a VPN customer.
   The service provider associates VRF 5 with this VPN customer.

   When host 1 sends a packet to host 2, the SR domain ingress router 3
   steers it to the egress edge router 4 via an SR Policy that enforces
   a path through a number of underlay waypoints in Metro 1
   (M1_1..M1_i), Core (C_1..C_j), and Metro 2 (M2_1..M2_k).  The SR
   Policy ends with a SID that instructs the egress edge router 4 to
   decapsulate the packet and forward the inner packet within the
   appropriate VPN context towards host 2.







Dukes                   Expires December 29, 2020               [Page 3]

Internet-Draft SRv6 Network Programming Overhead Analysis      June 2020


4.  Compression Analysis

   Compression is analyzed by first defining the encapsulation size of
   the compressed SRv6 segment list encoding schemes described in
   [I-D.filsfilscheng-spring-srv6-srh-comp-sl-enc] called NEXT-C-SID and
   REPLACE-C-SID.

   Subsequently, the encapsulation size of the SRm6 proposal
   [I-D.bonica-spring-sr-mapped-six] is defined.

   The encapsulation savings is defined against the uncompressed SRv6
   segment list for multiple reference scenarios.

4.1.  SRv6

   The formulae defining the length of a compressed SRv6 segment list,
   and an uncompressed one, along with the corresponding encapsulation
   size are defined in the subsequent sections.

4.1.1.  NEXT-C-SID

4.1.1.1.  Capacity of C-SID Container

   The capacity of a C-SID container is calculated for the NEXT-C-SID
   flavor as

   C_NEXT = floor((128 - B) / NF)

   B and NF are as defined in Section 4 of
   [I-D.filsfilscheng-spring-srv6-srh-comp-sl-enc]

4.1.1.2.  Length of a C-SID Sequence

   Assuming that all SIDs in an uncompressed SID sequence S support a
   C-SID encoding, the length of the corresponding C-SID sequence is
   calculated for the NEXT-C-SID flavor as

   L_NEXT(S) = ceil(|S| / C_NEXT)

4.1.2.  REPLACE-C-SID

4.1.2.1.  Capacity of C-SID Container

   The capacity of a C-SID container is calculated for the REPLACE-C-SID
   flavor as

   C_REPLACE = floor(128 / NF)




Dukes                   Expires December 29, 2020               [Page 4]

Internet-Draft SRv6 Network Programming Overhead Analysis      June 2020


4.1.2.2.  Length of a C-SID Sequence

   Assuming that all SIDs in an uncompressed SID sequence S support a
   C-SID encoding, the length of the corresponding C-SID sequence is
   calculated for the REPLACE-C-SID flavor as

   L_REPLACE(S) = 1 + ceil((|S| - 1) / C_REPLACE)

4.1.3.  Encapsulation Size

   The encapsulation size metric is defined in Section 2.4 of
   [I-D.filsfils-spring-analysis-fmwk-ext-srv6-encap] as follows.

      E(segment list): the number of bytes required to encapsulate a
      packet traversing the SR domain with segment list applied at an SR
      source node.  Specifically, the number of bytes from the beginning
      of the encapsulating IPv6 header to the beginning of the packet
      traversing the SR domain, including any and all headers in
      between.

   The value of this metric is calculated for reduced SRv6 encapsulation
   as

   E(SL) = 40                         if |SL| = 1
           40 + 8 + (|SL| - 1) * 16   otherwise

   where

   o  40 octets is the length of the IPv6 header

   o  8 octets is the length of the fixed SRH fields

   o  16 octets is the length of each element in the SRH Segment List

   o  the conditional represents the option described in Section 4.1 of
      [RFC8754] to omit the SRH when the Segment List contains a single
      segment

   The segment list SL may contain any combination of compressed and
   uncompressed SID sequences.

4.2.  SRm6

   The encapsulation size for SRm6 [I-D.bonica-spring-sr-mapped-six]
   includes a 40-octet IPv6 header, a CRH-16 or CRH-32
   [I-D.bonica-6man-comp-rtg-hdr] routing header (when the segment list
   contains more than one element), and an 8-octet Destination Option
   header [I-D.bonica-6man-vpn-dest-opt].



Dukes                   Expires December 29, 2020               [Page 5]

Internet-Draft SRv6 Network Programming Overhead Analysis      June 2020


4.2.1.  SID list

   The SID list for SRm6 does not include the VPN instruction.  The VPN
   instruction is carried separately in a Destination Option header
   [I-D.bonica-6man-vpn-dest-opt].

   Since SRm6 SID mappings are not redistributed across domains, an
   inter-domain SID list for SRm6 must include an intermediate SID on
   each border router between two domains.  In the scenario described in
   Section 3, 2 additional SIDs are required.

4.2.2.  Encapsulation size with CRH-16

   E_CRH16(SL) = 40 + 8                                  if |SL| = 1
                 40 + ceil((4 + |SL| * 2) / 8) * 8 + 8   otherwise

4.2.3.  Encapsulation size with CRH-32

   E_CRH32(SL) = 40 + 8                                  if |SL| = 1
                 40 + ceil((4 + |SL| * 4) / 8) * 8 + 8   otherwise

4.3.  Encapsulation size saving compared to uncompressed SRv6

   The encapsulation size saving metric ES is defined as follows.

   ES(SL) = 1 - E_compressed(SL) / E_uncompressed(SL)

   where:

   o  "E_compressed(SL)" is the encapsulation size metric with a
      particular compression scheme (e.g., NEXT-C-SID, REPLACE-C-SID,
      SRm6)

   o  "E_uncompressed(SL)" is the encapsulation size metric for SRv6
      without any compressed encoding.  The uncompressed SRv6
      encapsulation size is obtained by applying the formula in
      Section 4.1.3 to the uncompressed segment list.

4.4.  Numerical Application

   Applying the formulae presented in the previous sections, the
   encapsulation size savings is computed for the scenario described in
   Section 3.








Dukes                   Expires December 29, 2020               [Page 6]

Internet-Draft SRv6 Network Programming Overhead Analysis      June 2020


4.4.1.  Evaluation parameters

4.4.1.1.  SID format

   The NEXT-C-SID flavor is considered with a 32-bit SRv6 SID block and
   a 16-bit C-SID length.

   The REPLACE-C-SID flavor is considered with both 16-bit and 32-bit
   C-SID lenghts.  These two variants are referred to as REPLACE-16 and
   REPLACE-32, respectively.

   The SRm6 proposal is considered with both the CRH-16 and CRH-32
   routing headers.

4.4.1.2.  Segment lists

   The following segment lists are considered with equal number of
   segments in each domain:

   o  "3D(3T).V": A segment list across 3 domains (metro 1, core, metro
      2), with 3 underlay waypoints in each domain and a VPN identifier.
      10 instructions in total.

   o  "3D(4T).V": A segment list across 3 domains, with 4 underlay
      waypoints in each domain and a VPN identifier. 13 instructions in
      total.

   o  "3D(6T).V": A segment list across 3 domains, with 6 underlay
      waypoints in each domain and a VPN identifier. 19 instructions in
      total.

4.4.2.  Evaluation results

   +-------------+-----------+-----------+-----------+--------+--------+
   | Metric      |  NEXT-C-  | REPLACE-1 | REPLACE-3 | CRH-16 | CRH-32 |
   |             |    SID    |     6     |     2     |        |        |
   +-------------+-----------+-----------+-----------+--------+--------+
   | ES(3D(3T).V |   58.33%  |   33.33%  |   33.33%  | 58.33% | 45.83% |
   | )           |           |           |           |        |        |
   |             |           |           |           |        |        |
   | ES(3D(4T).V |   66.67%  |   46.67%  |   46.67%  | 63.33% | 53.33% |
   | )           |           |           |           |        |        |
   |             |           |           |           |        |        |
   | ES(3D(6T).V |   71.43%  |   61.90%  |   47.62%  | 71.43% | 59.52% |
   | )           |           |           |           |        |        |
   +-------------+-----------+-----------+-----------+--------+--------+

      Table 1: Encapsulation size saving for a multi-domain SR Policy



Dukes                   Expires December 29, 2020               [Page 7]

Internet-Draft SRv6 Network Programming Overhead Analysis      June 2020


5.  Conclusion

   The NEXT-C-SID, REPLACE-C-SID and SRm6 methods all provide
   significant encapsulation size saving compared to the base SRv6 SIDs.

   The mapping proposal, [I-D.bonica-spring-sr-mapped-six], does not
   bring any compression benefit compared to SRv6-native compression
   methods [I-D.filsfilscheng-spring-srv6-srh-comp-sl-enc].

   The SRm6 proposal does have several deficiencies however, including:

   o  A new data plane

   o  A new control plane

   o  A new ecosystem

   o  Stateful NFV integration compared to SRv6 stateless NFV

   o  Additional lookups at egress PE

      *  CRH requires 3 lookups at an egress PE vs 2 for SRv6.

      *  Additional lookups result in additional processing time in
         forwarding ASICs.  Many modern ASIC architectures support 2
         lookups per packet, additional lookups may require
         recirculation, effectively decreasing forwarding performance.

   These and other metrics proposed for analysis are described in
   [I-D.filsfils-spring-analysis-fmwk-ext-srv6-encap].

6.  References

6.1.  Normative References

   [I-D.filsfilscheng-spring-srv6-srh-comp-sl-enc]
              Cheng, W., Filsfils, C., Li, Z., Cai, D., Voyer, D., Clad,
              F., Shay, S., Guichard, J., and L. Aihua, "Compressed SRv6
              Segment List Encoding in SRH", draft-filsfilscheng-spring-
              srv6-srh-comp-sl-enc-01 (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.





Dukes                   Expires December 29, 2020               [Page 8]

Internet-Draft SRv6 Network Programming Overhead Analysis      June 2020


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

6.2.  Informative References

   [I-D.bonica-6man-comp-rtg-hdr]
              Bonica, R., Kamite, Y., Niwa, T., Alston, A., and L.
              Jalil, "The IPv6 Compact Routing Header (CRH)", draft-
              bonica-6man-comp-rtg-hdr-22 (work in progress), May 2020.

   [I-D.bonica-6man-vpn-dest-opt]
              Bonica, R., Kamite, Y., Jalil, L., Zhou, Y., and G. Chen,
              "The IPv6 Tunnel Payload Forwarding (TPF) Option", draft-
              bonica-6man-vpn-dest-opt-12 (work in progress), March
              2020.

   [I-D.bonica-spring-sr-mapped-six]
              Bonica, R., Hegde, S., Kamite, Y., Alston, A., Henriques,
              D., Jalil, L., Halpern, J., Linkova, J., and G. Chen,
              "Segment Routing Mapped To IPv6 (SRm6)", draft-bonica-
              spring-sr-mapped-six-01 (work in progress), April 2020.

   [I-D.filsfils-spring-analysis-fmwk-ext-srv6-encap]
              Filsfils, C., Dukes, D., and K. Patel, "Analysis Framework
              For Extensions of SRv6 Encapsulation", draft-filsfils-
              spring-analysis-fmwk-ext-srv6-encap-00 (work in progress),
              January 2020.

Author's Address

   Darren Dukes (editor)
   Cisco Systems
   Canada

   Email: ddukes@cisco.com














Dukes                   Expires December 29, 2020               [Page 9]