<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="info"
     docName="draft-filsfils-spring-analysis-fmwk-ext-srv6-encap-01"
     ipr="trust200902">
  <front>
    <title abbrev="SRv6 Encapsulation Analysis">Analysis Framework For
    Extensions of SRv6 Encapsulation</title>

    <author fullname="Clarence Filsfils" initials="C." surname="Filsfils">
      <organization>Cisco Systems, Inc.</organization>

      <address>
        <postal>
          <street/>

          <city/>

          <region/>

          <code/>

          <country>Belgium</country>
        </postal>

        <email>cfilsfil@cisco.com</email>
      </address>
    </author>

    <author fullname="Darren Dukes" initials="D." role="editor"
            surname="Dukes">
      <organization>Cisco Systems, Inc.</organization>

      <address>
        <postal>
          <street/>

          <city>Ottawa</city>

          <region/>

          <code/>

          <country>Canada</country>
        </postal>

        <email>ddukes@cisco.com</email>
      </address>
    </author>
    <author fullname="Keyur Patel" initials="K." surname="Patel">
      <organization>Arrcus, Inc.</organization>

      <address>
        <postal>
          <street/>

          <city></city>

          <region/>

          <code/>

          <country>USA</country>
        </postal>

        <email>keyur@arrcus.com</email>
      </address>
    </author>

    <date year="2020"/>

    <workgroup>Network Working Group</workgroup>

    <abstract>
      <t>This document provides a framework for analysis of multiple proposals
      to extend SRv6 encapsulation with the objective of minimizing
      encapsulation size or leveraging legacy equipment. It defines relevant
      metrics to evaluate each proposal.</t>
    </abstract>

    <note title="Requirements Language">
      <t>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 <xref
      target="RFC2119">RFC 2119</xref>.</t>
    </note>
  </front>

  <middle>
    <section anchor="INTRO" title="Introduction">
        <t>Traffic traversing an SR domain is encapsulated in an outer IPv6 header with an optional Segment Routing Header (SRH) for its journey through the SR domain <xref target="I-D.ietf-6man-segment-routing-header"/>.</t>

      <t>This document provides a framework for analysis of multiple proposals
      to extend SRv6 encapsulation with the objective of minimizing
      encapsulation size or leveraging legacy equipment. It defines relevant
      metrics to evaluate each proposal.</t>

        <t>Future revisions will evaluate and document the metrics for each proposal, compare them and draw conclusions.</t>

    </section>

    <section anchor="METRICS" title="Metrics">
      <t>Metrics are identified as metric:score. Metric is the abbreviation of
      the metric name, and score is an integer reporting its evaluation. A
      proposal with a metric (M) and score of zero is represented as M:0.</t>

      <t>A score may vary based on the number and type of instructions in a
      segment list. Three types of segments are considered: T for topological,
      S for service, and V for VPN.</t>

      <t>A proposal with a metric (M), computed for a segment list of 5
      topological segments followed by 1 VPN segment, with a score of 10 is
      represented as M(5T.1V):10.</t>

      <t>A score may vary based on node parameters. Three parameters are
      considered: N the number of nodes in the network, I the number of
      IGP algorithms <xref target="I-D.ietf-lsr-flex-algo"/> configured at the node, and A the number of
      adjacency SIDs configured at the node.</t>

      <t>A proposal with metric (M), computed for a node in a network of 100
      nodes with 1 IGP algorithm and 5 adjacency SIDs configured at the
      node, with a score of 10 is represented by M(100N.1I.5A):10.</t>

      <section anchor="COMP" title="Compliance">
        <t>The compliance metric (C) records how aligned a proposal is with
        the SRv6 solution. <list style="symbols">
            <t>C.RFC8402: compliance with <xref target="RFC8402"/></t>

            <t>C.SRH: compliance with <xref
            target="I-D.ietf-6man-segment-routing-header"/></t>

            <t>C.PGM: compliance with <xref
            target="I-D.ietf-spring-srv6-network-programming"/></t>

            <t>C.IGP: compliance with <xref
            target="I-D.ietf-lsr-isis-srv6-extensions"/></t>

            <t>C.BGP: compliance with <xref
            target="I-D.ietf-bess-srv6-services"/></t>

            <t>C.POL: compliance with <xref
            target="I-D.ietf-spring-segment-routing-policy"/></t>

            <t>C.BLS: compliance with <xref
            target="I-D.ietf-idr-bgpls-srv6-ext"/></t>

            <t>C.SVC: compliance with <xref
            target="I-D.ietf-spring-sr-service-programming"/></t>

            <t>C.OAM: compliance with <xref
            target="I-D.ietf-6man-spring-srv6-oam"/></t>
          </list></t>

        <t>Each of the above metrics are assigned a compliance value:<list
            style="symbols">
            <t>10: complies with the specification</t>

            <t>5: extends the specification</t>

            <t>0: redefines the specification</t>
          </list></t>

        <t>C.TOT is the sum of all C.* metrics listed above. It provides an
        overall assessment of the proposal's alignment with the SRv6 RFCs and
        working group drafts.</t>
      </section>

      <section anchor="MD" title="Data Plane Efficiency">
        <t>The data plane efficiency metric (D) records the data plane
        forwarding efficiency of the proposed solution. Two separate metrics
        are used:<list style="symbols">
            <t>D.PRS(segment list): worst-case number of headers parsed during
            processing of the segment list.</t>

            <t>D.LKU(segment list): worst-case number of FIB lookups during
            processing of the segment list.</t>
          </list></t>
      </section>

      <section anchor="MS" title="State Efficiency">
        <t>The state efficiency metric (S) records the number of additional
        FIB entries (states) required by the proposed solution.<list
            style="symbols">
            <t>S(node parameters): the number of additional FIB entries for a
            node, given a set of parameters.</t>
          </list></t>
      </section>

      <section anchor="ME" title="Encapsulation Size">
        <t>The encapsulation size metric (E) records the number of bytes
        required for the proposals <list style="symbols">
            <t>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.</t>
          </list></t>
      </section>
    </section>

    <section anchor="VAR" title="Variables For Metrics">
      <t>For the E, D.PRS, D.LKU metrics the following segment lists are used
      during analysis.<list style="symbols">
          <t>5T.1V</t>

          <t>10T.1V</t>

          <t>15T.1V</t>

          <t>5T.1S.5T.1V</t>

          <t>4T.1S.4T.1S.4T.1V</t>
        </list></t>

      <t>This list may be updated in subsequent revisions of this
      document.</t>

      <t>For the S metric the following node parameters are used in
      analysis.<list style="symbols">
          <t>1500N.2I.100A</t>
        </list></t>

      <t>This list may be updated in subsequent revisions of this
      document.</t>
    </section>

    <section anchor="ANALYSIS" title="Analysis of Proposals">
      <t>To be completed in subsequent revisions of this document.</t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml"?>
      <?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.8402.xml"?>
      <?rfc include="reference.I-D.ietf-6man-segment-routing-header.xml"?>

      <?rfc include="reference.I-D.ietf-spring-srv6-network-programming.xml"?>

      <?rfc include="reference.I-D.ietf-lsr-isis-srv6-extensions.xml"?>

      <?rfc include="reference.I-D.ietf-bess-srv6-services.xml"?>

      <?rfc include="reference.I-D.ietf-spring-segment-routing-policy.xml"?>

      <?rfc include="reference.I-D.ietf-idr-bgpls-srv6-ext.xml"?>

      <?rfc include="reference.I-D.ietf-spring-sr-service-programming.xml"?>

      <?rfc include="reference.I-D.ietf-6man-spring-srv6-oam.xml"?>

      <?rfc include="reference.I-D.ietf-lsr-flex-algo.xml"?>

    </references>
      
  </back>
</rfc>
