<?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-ietf-ippm-2330-ipv6-00" ipr="trust200902"
     updates="2330">
  <front>
    <title abbrev="IPPM IPv6 Update">IPv6 Updates for IPPM's Active Metric
    Framework</title>

    <author fullname="Al Morton" initials="A." surname="Morton">
      <organization>AT&amp;T Labs</organization>

      <address>
        <postal>
          <street>200 Laurel Avenue South</street>

          <city>Middletown</city>

          <region>NJ</region>

          <code>07748</code>

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

        <phone>+1 732 420 1571</phone>

        <facsimile>+1 732 368 1192</facsimile>

        <email>acmorton@att.com</email>

        <uri>http://home.comcast.net/~acmacm/</uri>
      </address>
    </author>

    <author fullname="Joachim Fabini" initials="J." surname="Fabini">
      <organization>TU Wien</organization>

      <address>
        <postal>
          <street>Gusshausstrasse 25/E389</street>

          <city>Vienna</city>

          <region/>

          <code>1040</code>

          <country>Austria</country>
        </postal>

        <phone>+43 1 58801 38813</phone>

        <facsimile>+43 1 58801 38898</facsimile>

        <email>Joachim.Fabini@tuwien.ac.at</email>

        <uri>http://www.tc.tuwien.ac.at/about-us/staff/joachim-fabini/</uri>
      </address>
    </author>

    <author fullname="Nalini Elkins" initials="N." surname="Elkins">
      <organization>Inside Products, Inc.</organization>

      <address>
        <postal>
          <street/>

          <city>Carmel Valley</city>

          <region>CA</region>

          <code>93924</code>

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

        <phone/>

        <facsimile/>

        <email>nalini.elkins@insidethestack.com</email>

        <uri/>
      </address>
    </author>

    <author fullname="Michael S. Ackermann" initials="M." surname="Ackermann">
      <organization>Blue Cross Blue Shield of Michigan</organization>

      <address>
        <postal>
          <street/>

          <city/>

          <region/>

          <code/>

          <country/>
        </postal>

        <phone/>

        <facsimile/>

        <email>mackermann@bcbsm.com</email>

        <uri/>
      </address>
    </author>

    <author fullname="Vinayak Hegde" initials="V." surname="Hegde">
      <organization>Consultant</organization>

      <address>
        <postal>
          <street>Brahma Sun City, Wadgaon-Sheri</street>

          <city>Pune</city>

          <region>Maharashtra</region>

          <code>411014</code>

          <country>INDIA</country>
        </postal>

        <phone>+91 9449834401</phone>

        <email>vinayakh@gmail.com</email>

        <uri>http://www.vinayakhegde.com</uri>
      </address>
    </author>

    <date day="04" month="July" year="2016"/>

    <abstract>
      <t>This memo updates the IP Performance Metrics (IPPM) Framework RFC
      2330 with new considerations for measurement methodology and testing.
      The memo updates the definition of standard-formed packets in RFC 2330
      to include IPv6 packets. It also augments distinguishing aspects of
      packets, referred to as Type-P for test packets in RFC 2330.</t>

      <t>Two points (at least) are worthwhile discussing further: extent of
      coverage for 6LO and IPv6 Header Compression, and the continued need to
      define a "minimal standard-formed packet".</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 title="Introduction">
      <t>The IETF IP Performance Metrics (IPPM) working group first created a
      framework for metric development in <xref target="RFC2330"/>. This
      framework has stood the test of time and enabled development of many
      fundamental metrics. It has been updated in the area of metric
      composition <xref target="RFC5835"/>, and in several areas related to
      active stream measurement of modern networks with reactive properties
      <xref target="RFC7312"/>.</t>

      <t>The IPPM framework <xref target="RFC2330"/> recognized (in section
      13) that many aspects of IP packets can influence its processing during
      transfer across the network.</t>

      <t>In Section 15 of <xref target="RFC2330"/>, the notion of a
      "standard-formed" packet is defined. However, the definition was never
      updated to include IPv6, as the original authors planned.</t>

      <t>In particular, IPv6 Extension Headers and protocols which use IPv6
      header compression are growing in use. This memo seeks to provide the
      needed updates.</t>
    </section>

    <section title="Scope">
      <t>The purpose of this memo is to expand the coverage of IPPM metrics to
      include IPv6, and to highlight additional aspects of test packets and
      make them part of the IPPM performance metric framework.</t>

      <t>The scope is to update key sections of <xref target="RFC2330"/>,
      adding considerations that will aid the development of new measurement
      methodologies intended for today's IP networks. Specifically, this memo
      expands the Type-P examples in section 13 of <xref target="RFC2330"/>
      and expands the definition (in section 15 of <xref target="RFC2330"/>)
      of a standard-formed packet to include IPv6 header aspects and other
      features.</t>

      <t>Other topics in <xref target="RFC2330"/> which might be updated or
      augmented are deferred to future work. This includes the topics of
      passive and various forms of hybrid active/passive measurements.</t>
    </section>

    <section title="Packets of Type-P">
      <t>A fundamental property of many Internet metrics is that the measured
      value of the metric depends on characteristics of the IP packet(s) used
      to make the measurement. Potential influencing factors include IP header
      fields and their values, but also higher-layer protocol headers and
      their values. Consider an IP-connectivity metric: one obtains different
      results depending on whether one is interested in connectivity for
      packets destined for well-known TCP ports or unreserved UDP ports, or
      those with invalid IPv4 checksums, or those with TTL or Hop Limit of 16,
      for example. In some circumstances these distinctions will result in
      special treatment of packets in intermediate nodes and end systems (for
      example, if Diffserv <xref target="RFC2780"/>, ECN <xref
      target="RFC3168"/>, Router Alert, Hop-by-hop extensions <xref
      target="RFC7045"/>, or Flow Labels <xref target="RFC6437"/> are used, or
      in the presence of firewalls or RSVP reservations).</t>

      <t>Because of this distinction, we introduce the generic notion of a
      "packet of Type-P", where in some contexts P will be explicitly defined
      (i.e., exactly what type of packet we mean), partially defined (e.g.,
      "with a payload of B octets"), or left generic. Thus we may talk about
      generic IP-Type-P-connectivity or more specific
      IP-port-HTTP-connectivity. Some metrics and methodologies may be
      fruitfully defined using generic Type-P definitions which are then made
      specific when performing actual measurements.</t>

      <t>Whenever a metric's value depends on the type of the packets involved
      in the metric, the metric's name will include either a specific type or
      a phrase such as "Type-P". Thus we will not define an "IP-connectivity"
      metric but instead an "IP-Type-P-connectivity" metric and/or perhaps an
      "IP-port-HTTP-connectivity" metric. This naming convention serves as an
      important reminder that one must be conscious of the exact type of
      traffic being measured.</t>

      <t>If the information constituting Type-P at the Source is found to have
      changed at the Destination (or at a measurement point between the Source
      and Destination, as in <xref target="RFC5644"/>), then the modified
      values SHOULD be noted and reported with the results. Some modifications
      occur according to the conditions encountered in transit (such as
      congestion notification) or due to the requirements of segments of the
      Source to Destination path. For example, the packet length will change
      if IP headers are converted to the alternate version/address family, or
      if optional Extension Headers are added or removed. Local policies in
      intermediate nodes based on examination of IPv6 Extension Headers may
      affect measurement repeatability. If intermediate nodes follow the
      recommendations of <xref target="RFC7045"/>, repeatability may be
      improved to some degree.</t>

      <t>A Network Address Translator (NAT) on the path can have unpredictable
      impact on latency measurement (in terms of the amount of additional time
      added), and possibly other types of measurements. It is not usually
      possible to control this impact (as testers may not have any control of
      the underlying network or middleboxes). There is a possibility that
      stateful NAT will lead to unstable performance for a flow with specific
      Type-P, since state needs to be created for the first packet of a flow,
      and state may be lost later if the NAT runs out of resources. However,
      this scenario does not invalidate the Type-P for testing. The presence
      of NAT may mean that the measured performance of Type-P will change
      between the source and the destination. This can cause an issue when
      attempting to correlate measurements conducted on segments of the path
      that include or exclude the NAT. Thus, it is a factor to be aware of
      when conducting measurements.</t>

      <t>A closely related note: it would be very useful to know if a given
      Internet component (like host, link, or path) treats equally a class C
      of different types of packets. If so, then any one of those types of
      packets can be used for subsequent measurement of the component. This
      suggests we devise a metric or suite of metrics that attempt to
      determine C.</t>
    </section>

    <section title="Standard-Formed Packets">
      <t>Unless otherwise stated, all metric definitions that concern IP
      packets include an implicit assumption that the packet is
      *standard-formed*. A packet is standard-formed if it meets all of the
      following criteria:</t>

      <t><list style="hanging">
          <t hangText="+">It includes a valid IP header: see below for
          version-specific criteria.</t>

          <t hangText="+">It is not an IP fragment.</t>

          <t hangText="+">The Source and Destination addresses correspond to
          the intended Source and Destination, including Multicast Destination
          addresses.</t>

          <t hangText="+">If a transport header is present, it contains a
          valid checksum and other valid fields.</t>
        </list>For an IPv4 <xref target="RFC0791">(</xref> and updates) packet
      to be standard-formed, the following additional criteria are
      required:<list style="symbols">
          <t>The version field is 4</t>

          <t>The Internet Header Length (IHL) value is &gt;= 5; the checksum
          is correct.</t>

          <t>Its total length as given in the IPv4 header corresponds to the
          size of the IPv4 header plus the size of the payload.</t>

          <t>Either the packet possesses sufficient TTL to travel from the
          Source to the Destination if the TTL is decremented by one at each
          hop, or it possesses the maximum TTL of 255.</t>

          <t>It does not contain IP options unless explicitly noted.</t>
        </list></t>

      <t>For an IPv6 (<xref target="RFC2460"/> and updates) packet to be
      standard-formed, the following criteria are required:<list
          style="symbols">
          <t>The version field is 6.</t>

          <t>Its total length corresponds to the size of the IPv6 header (40
          octets) plus the length of the payload (including Extension Headers)
          as given in the IPv6 header.</t>

          <t>Either the packet possesses sufficient Hop Count to travel from
          the Source to the Destination if the Hop Count is decremented by one
          at each hop, or it possesses the maximum Hop Count of 255.</t>

          <t>Either the packet does not contain IP Extension Headers, or it
          contains the correct number and type of headers as specified in the
          packet, and the headers appear in the standard-conforming order
          (Next Header).</t>

          <t>All parameters used in the header and Extension Headers are found
          in the IANA Registry of Internet Protocol Version 6 (IPv6)
          Parameters, partly specified in <xref target="RFC7045"/>.</t>
        </list></t>

      <t>Compressed IPv6 headers must be compliant with <xref
      target="RFC4494"/>, as updated by <xref target="RFC6282"/>, in order to
      be declared "standard-formed".</t>

      <t>The topic of IPv6 Extension Headers brings current controversies into
      focus as noted by <xref target="RFC6564"/> and <xref target="RFC7045"/>.
      The following additional considerations apply when IPv6 Extension
      Headers are present:</t>

      <t><list style="symbols">
          <t>Extension Header inspection: Some intermediate nodes may inspect
          Extension Headers or the entire IPv6 packet while in transit. In
          exceptional cases, they may drop the packet or route via a
          sub-optimal path, and measurements may be unreliable or
          unrepeatable. The packet (if it arrives) may be standard-formed,
          with a corresponding Type-P.</t>

          <t>Extension Header modification: In Hop-by-Hop headers, some TLV
          encoded options may be permitted to change at intermediate nodes
          while in transit. The resulting packet may be standard-formed, with
          a corresponding Type-P.</t>

          <t>Extension Header insertion or deletion: It is possible that
          Extension Headers could be added to, or removed from the header
          chain. The resulting packet may be standard-formed, with a
          corresponding Type-P.</t>

          <t>A change in packet length (from the corresponding packet observed
          at the Source) or header modification is a significant factor in
          Internet measurement, and requires a new Type-P to be reported.</t>
        </list>We further require that if a packet is described as having a
      "length of B octets", then 0 &lt;= B &lt;= 65535; and if B is the
      payload length in octets, then B &lt;= (65535-IP header size in octets,
      including any Extension Headers). The jumbograms defined in <xref
      target="RFC2675"/> are not covered by this length analysis. In practice,
      the path MTU will restrict the length of standard-formed packets that
      can successfully traverse the path.</t>

      <t>So, for example, one might imagine defining an IP connectivity metric
      as "IP-type-P-connectivity for standard-formed packets with the IP
      Diffserv field set to 0", or, more succinctly, "IP-type-P-connectivity
      with the IP Diffserv Field set to 0", since standard-formed is already
      implied by convention. Changing the contents of a field, such as the
      Diffserv Code Point, ECN bits, or Flow Label may have a profound affect
      on packet handling during transit, but does not affect a packet's status
      as standard-formed.</t>

      <t>A particular type of standard-formed packet often useful to consider
      is the "minimal IP packet from A to B" - this is an IP packet with the
      following properties:<list style="hanging">
          <t hangText="+">It is standard-formed.</t>

          <t hangText="+">Its data payload is 0 octets.</t>

          <t hangText="+">It contains no options or Extension Headers.</t>
        </list>(Note that we do not define its protocol field, as different
      values may lead to different treatment by the network.)</t>

      <t>When defining IP metrics we keep in mind that no packet smaller or
      simpler than this can be transmitted over a correctly operating IP
      network.</t>
    </section>

    <section title="Conclusions">
      <t>This memo adds the key considerations for utilizing IPv6 in two
      critical conventions of the IPPM Framework. It is RECOMMENDED to adopt
      these new considerations in measurements involving IPv6.</t>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t>The security considerations that apply to any active measurement of
      live paths are relevant here as well. See <xref target="RFC4656"/> and
      <xref target="RFC5357"/>.</t>

      <t>When considering privacy of those involved in measurement or those
      whose traffic is measured, the sensitive information available to
      potential observers is greatly reduced when using active techniques
      which are within this scope of work. Passive observations of user
      traffic for measurement purposes raise many privacy issues. We refer the
      reader to the privacy considerations described in the Large Scale
      Measurement of Broadband Performance (LMAP) Framework <xref
      target="RFC7594"/>, which covers active and passive techniques.</t>
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <t>This memo makes no requests of IANA.</t>
    </section>

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>The authors thank Brian Carpenter for identifying the lack of IPv6
      coverage in IPPM's Framework, and for listing additional distinguishing
      factors for packets of Type-P. Both Brian and Fred Baker discussed many
      of the interesting aspects of IPv6 with the co-authors, leading to a
      more solid first draft: thank you both. Thanks to Bill Jouris for an
      editorial pass through the pre-00 text.</t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include='reference.RFC.0791'?>

      <?rfc include='reference.RFC.2119'?>

      <?rfc include='reference.RFC.2330'?>

      <?rfc include='reference.RFC.2460'?>

      <?rfc include='reference.RFC.2675'?>

      <?rfc include='reference.RFC.2780'?>

      <?rfc include='reference.RFC.3168'?>

      <?rfc include='reference.RFC.4494'?>

      <?rfc include='reference.RFC.4656'?>

      <?rfc include='reference.RFC.5357'?>

      <?rfc include='reference.RFC.5644'?>

      <?rfc include='reference.RFC.5835'?>

      <?rfc include='reference.RFC.6282'?>

      <?rfc include='reference.RFC.6437'?>

      <?rfc include='reference.RFC.6564'?>

      <?rfc include='reference.RFC.7045'?>

      <?rfc include='reference.RFC.7312'?>
    </references>

    <references title="Informative References">
      <?rfc ?>

      <?rfc include='reference.RFC.7594'?>
    </references>
  </back>
</rfc>
