<?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="std" docName="draft-morton-ippm-registry-pdv-00"
     ipr="trust200902">
  <front>
    <title abbrev="Round-trip Loss">A Registry Investigation for IPPM Packet
    Delay Variation Metrics</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>

    <date day="26" month="August" year="2013"/>

    <abstract>
      <t>This memo investigates a scheme to organize registry entries,
      primarily those defined in RFCs prepared in the IP Performance Metrics
      (IPPM) Working Group of the IETF. Three aspects make IPPM metric
      registration difficult: (1) Use of the Type-P notion to allow users to
      specify their own packet types. (2) Use of Flexible input variables,
      called Parameters in IPPM definitions, some which determine the quantity
      measured and others which should not be specified until execution of the
      measurement. (3) Allowing flexibility in choice of statistics to
      summarize the results on a stream of measurement packets. Specifically,
      this memo investigates registry entries that would follow from RFC 3393,
      the specification IP Packet Delay Variation that allows for many
      different forms of unique metrics, as a difficult and important test of
      the registry structure.</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>

      <t/>
    </note>
  </front>

  <middle>
    <section title="Introduction">
      <t>This memo investigates a scheme to organize registry entries,
      primarily those defined in RFCs prepared in the IP Performance Metrics
      (IPPM) Working Group of the IETF, according to their framework <xref
      target="RFC2330"/>. Three aspects make IPPM metric registration
      difficult: (1) Use of the Type-P notion to allow users to specify their
      own packet types. (2) Use of Flexible input variables, called Parameters
      in IPPM definitions, some which determine the quantity measured and
      others which should not be specified until execution of the measurement.
      (3) Allowing flexibility in choice of statistics to summarize the
      results on a stream of measurement packets. Specifically, this memo
      investigates registry entries that would follow from <xref
      target="RFC3393"/>, the specification IP Packet Delay Variation that
      allows for many different forms of unique metrics, as a difficult and
      important test of the registry structure.</t>

      <t>Although there are several standard templates for organizing
      specifications of performance metrics (see <xref target="RFC2679"/> for
      an example of the traditional IPPM template, based to large extent on
      the Benchmarking Methodology Working Group's traditional template in
      <xref target="RFC1242"/>, and <xref target="RFC6390"/> for a similar
      template), none of these templates were intended to become the basis for
      the columns of an IETF-wide registry of metrics. As we examine the
      aspects of metric specifications which need to appear in the registry,
      we will see that none of the existing metric templates fully satisfies
      the needs of a registry.</t>

      <t>The authors of [draft-bagnulo-ippm-new-registry] and
      [draft-bagnulo-ippm-new-registry-independent] made important
      contributions to this memo in the registry column structure, and the
      problem of registry development in general. We also acknowledge input
      from the authors of [draft-claise-ippm-perf-metric-registry], especially
      the value of an Element ID and the need for naming conventions.</t>
    </section>

    <section title="Scope">
      <t>This memo investigates the registry structure that best describes
      IPPM delay variation metrics based on <xref target="RFC3393"/> using the
      conventions of the IPPM framework <xref target="RFC2330"/>.</t>

      <t>We find that the flexibility allowed in <xref target="RFC3393"/>
      requires further specificity to have a metric worthy of registration,
      and we refer to <xref target="RFC5481"/> for the needed definition
      details.</t>

      <t>In this memo, we attempt a combinatoric registry, where all factors
      that can be reasonably specified ARE specified, and changing even one
      factor would require a new registry entry (row). It is believed that
      this exercise can also be instructive for a registry based on
      independent factors, [draft-bagnulo-ippm-new-registry-independent] but
      that topic is beyond the scope of this effort.</t>
    </section>

    <section title="List of Registry Columns">
      <t>This section briefly describes the columns used by this draft, as
      this is likely to be a topic for discussion and revision. Taken as a
      whole, the entries in the columns give a registered instance of a metric
      with sufficient specificity to promote comparable results across
      independent implementations. In other words, a complete Metric
      Description.</t>

      <section title="Element ID">
        <t>An integer having enough digits to uniquely identify each entry in
        the Registry.</t>
      </section>

      <section title="Metric Name">
        <t>A metric naming convention is TBD.</t>

        <t>The current guidance from Section 13 of <xref target="RFC2330"/>,
        where Type-P is a feature of all IPPM metric names, is:</t>

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

        <t>Registry entries are a context where Type-P must be defined.</t>

        <t>IPPM Metric names have also included the typically included the
        stream type, to distinguish between singleton and sample metrics (see
        <xref target="RFC2330"/> for the definition of these terms).</t>
      </section>

      <section title="Run-time Parameters">
        <t>Run-Time Parameters are input factors that must be determined,
        configured into the measurement system, and reported with the results
        for the context to be complete. However, the values of these
        parameters is not specified in the Registry, rather these parameters
        are listed as an aid to the measurement system implementor or user
        (they must be left as variables, and supplied on execution).</t>

        <t>Where metrics supply a list of Parameters as part of their
        descriptive template, a sub-set of the Parameters will be designated
        as Run-Time Parameters.</t>
      </section>

      <section title="Fixed Parameters">
        <t>Fixed Parameters are input factors that must be determined and
        embedded in the measurement system for use when needed. The values of
        these parameters is specified in the Registry.</t>

        <t>Where metrics supply a list of Parameters as part of their
        descriptive template, a sub-set of the Parameters will be designated
        as Fixed Parameters.</t>

        <t>A Parameter which is Fixed for one Registry element may be
        designated as a Run-time Parameter for another Registry element.</t>
      </section>

      <section title="Metric Definition">
        <t>This entry provides references to relevant sections of the RFC(s)
        defining the metric, as well as any supplemental information needed to
        ensure an unambiguous definition for implementations.</t>
      </section>

      <section title="Metric Units (and Data Format?)">
        <t>The results of a metric must be expressed using some standard
        dimension or units of measure. This column provides the units (and if
        possible, the data format, whose specification will simplify both
        measurement implementation and collection/storage tasks).</t>

        <t>When a sample of singletons is collected, this entry will include
        the data format and units of measure for each measured value.</t>
      </section>

      <section title="Stream Type and Stream Parameters">
        <t>Principally, two different streams are used in IPPM metrics,
        Poisson distributed as described in <xref target="RFC2330"/> and
        Periodic as described in <xref target="RFC3432"/>. Both Poisson and
        Periodic have their own unique parameters, and the relevant set is
        specified in as Fixed Parameters in this column.</t>
      </section>

      <section title="Method of Measurement">
        <t>This entry provides references to relevant sections of the RFC(s)
        describing the method of measurement, as well as any supplemental
        information needed to ensure an unambiguous methods for
        implementations.</t>
      </section>

      <section title="Output Statistic">
        <t>For entries which involve a stream and many singleton measurements,
        a statistic may be specified in this column to summarize the results
        to a single value.</t>
      </section>

      <section title="Discussion/Remarks">
        <t>Besides providing additional details which do not appear in other
        columns, the Discussion/Remarks column allows for unforeseen issues to
        be addressed by simply updating this Informational column.</t>
      </section>
    </section>

    <section title="Registry Column Entries for PDV">
      <t>This is a complete Metric Description for one Packet Delay Variation
      (PDV) metric.</t>

      <section title="Element ID">
        <t>An integer with enough digits to uniquely identify the entry.</t>
      </section>

      <section title="Metric Name">
        <t>A metric naming convention is TBD.</t>

        <t>One possibility based on IPPM's framework is:</t>

        <t>IP-UDP-One-way-pdv-95th-percentile-Poisson</t>
      </section>

      <section title="Run-time Parameters">
        <t>Where metrics supply a list of Parameters as part of their
        descriptive template, a sub-set of the Parameters will be designated
        as Run-Time Parameters.</t>

        <t><list style="symbols">
            <t>Src, the IP address of a host</t>

            <t>Dst, the IP address of a host</t>

            <t>T, a time (start of test interval)</t>

            <t>Tf, a time (end of test interval)</t>

            <t>T1, the wire time of the first packet in a pair, measured at
            MP(Src) as it leaves for Dst.</t>

            <t>T2, the wire time of the second packet in a pair, measured at
            MP(Src) as it leaves for Dst.</t>

            <t>I(i),I(i+1), i &gt;=0, pairs of times which mark the beginning
            and ending of the intervals in which the packet stream from which
            the measurement is taken occurs. Here, I(0) = T0 and assuming that
            n is the largest index, I(n) = Tf.</t>
          </list></t>
      </section>

      <section title="Fixed Parameters">
        <t>Where metrics supply a list of Parameters as part of their
        descriptive template, a sub-set of the Parameters will be designated
        as Fixed Parameters.</t>

        <t><list style="symbols">
            <t>F, a selection function defining unambiguously the packets from
            the stream selected for the metric. See section 4.2 of <xref
            target="RFC5481"/> for the PDV form.</t>

            <t>L, a packet length in bits. L = 200 bits.</t>

            <t>Tmax, a maximum waiting time for packets to arrive at Dst, set
            sufficiently long to disambiguate packets with long delays from
            packets that are discarded (lost). Tmax = 3 seconds.</t>

            <t>Type-P, as defined in <xref target="RFC2330"/>, which includes
            any field that may affect a packet's treatment as it traverses the
            network. The packets are IP/UDP, with DSCP = 0 (BE).</t>
          </list></t>
      </section>

      <section title="Metric Definition">
        <t>See sections 2.4 and 3.4 of <xref target="RFC3393"/>. Singleton
        delay differences measured are referred to by the variable name
        "ddT".</t>
      </section>

      <section title="Metric Units (and Data Format?)">
        <t>See section 3.3 of <xref target="RFC3393"/> for singleton
        elements.</t>

        <t><xref target="RFC2330"/> recommends that when a time is given, it
        will be expressed in UTC.</t>

        <t>The timestamp format (for T, Tf, etc.) is the same as in <xref
        target="RFC5905"/> (64 bits) and is as follows: the first 32 bits
        represent the unsigned integer number of seconds elapsed since 0h on 1
        January 1900; the next 32 bits represent the fractional part of a
        second that has elapsed since then.</t>

        <t>The result format for ddT is *similar to* the short format in <xref
        target="RFC5905"/> (32 bits) and is as follows: the first 16 bits
        represent the *signed* integer number of seconds; the next 16 bits
        represent the fractional part of a second.</t>
      </section>

      <section title="Stream Type and Stream Parameters">
        <t>Poisson distributed as described in <xref target="RFC2330"/>, with
        the following Parameters.</t>

        <t><list style="symbols">
            <t>lambda, a rate in reciprocal seconds (for Poisson Streams).
            lambda = 1 packet per second</t>

            <t>Upper limit on Poisson distribution (values above this limit
            will be clipped and set to the limit value). Upper limit = 30
            seconds.</t>
          </list></t>
      </section>

      <section title="Method of Measurement">
        <t>See section 2.6 and 3.6 of <xref target="RFC3393"/> for singleton
        elements.</t>
      </section>

      <section title="Output Statistic">
        <t>See section 4.3 of <xref target="RFC3393"/> for details on the
        percentile statistic. The percentile = 95.</t>

        <t>Individual results (singletons) should be represented by the
        following triple</t>

        <t><list style="symbols">
            <t>T1 and T2, times as described above</t>

            <t>ddT as defined in section 2.4 of <xref target="RFC3393"/></t>
          </list>if needed.</t>
      </section>

      <section title="Discussion/Remarks">
        <t>Lost packets represent a challenge for delay variation metrics. See
        section 4.1 of <xref target="RFC3393"/> and the delay variation
        applicability statement<xref target="RFC5481"/> for extensive analysis
        and comparison of PDV and IPDV.</t>
      </section>
    </section>

    <section title="Registry Column Entries for IPDV">
      <t>This is a complete Metric Description for one Inter-Packet Delay
      Variation (IPDV) metric.</t>

      <section title="Element ID">
        <t>An integer with enough digits to uniquely identify the entry.</t>
      </section>

      <section title="Metric Name">
        <t>A metric naming convention is TBD.</t>

        <t>One possibility based on IPPM's framework is:</t>

        <t>IP-UDP-One-way-ipdv-range-Periodic</t>
      </section>

      <section title="Run-time Parameters">
        <t>Where metrics supply a list of Parameters as part of their
        descriptive template, a sub-set of the Parameters will be designated
        as Run-Time Parameters.</t>

        <t><list style="symbols">
            <t>Src, the IP address of a host</t>

            <t>Dst, the IP address of a host</t>

            <t>T, the beginning of a time interval where a periodic sample is
            desired.</t>

            <t>T0, a time that MUST be selected at random from the interval
            [T, T+PdT] to start generating packets and taking measurements
            (start of test interval)</t>

            <t>Tf, a time, greater than T0, for stopping generation of packets
            for a sample (Tf may be relative to T0 if desired).</t>

            <t>T1, the wire time of the first packet in a pair, measured at
            MP(Src) as it leaves for Dst.</t>

            <t>T2, the wire time of the second packet in a pair, measured at
            MP(Src) as it leaves for Dst.</t>

            <t>I(i),I(i+1), i &gt;=0, pairs of times which mark the beginning
            and ending of the intervals in which the packet stream from which
            the measurement is taken occurs. Here, I(0) = T0 and assuming that
            n is the largest index, I(n) = Tf.</t>
          </list></t>
      </section>

      <section title="Fixed Parameters">
        <t>Where metrics supply a list of Parameters as part of their
        descriptive template, a sub-set of the Parameters will be designated
        as Fixed Parameters.</t>

        <t><list style="symbols">
            <t>F, a selection function defining unambiguously the packets from
            the stream selected for the metric. See section 4.1 of <xref
            target="RFC5481"/> for the IPDV form.</t>

            <t>L, a packet length in bits. L = 200 bits.</t>

            <t>Tmax, a maximum waiting time for packets to arrive at Dst, set
            sufficiently long to disambiguate packets with long delays from
            packets that are discarded (lost). Tmax = 3 seconds.</t>

            <t>Type-P, as defined in <xref target="RFC2330"/>, which includes
            any field that may affect a packet's treatment as it traverses the
            network. The packets are IP/UDP, with DSCP = 0 (BE).</t>
          </list></t>
      </section>

      <section title="Metric Definition">
        <t>See section 3.4 of <xref target="RFC3393"/>.</t>
      </section>

      <section title="Metric Units (and Data Format?)">
        <t>See section 3.3 of <xref target="RFC3393"/> for singleton
        elements.</t>

        <t><xref target="RFC2330"/> recommends that when a time is given, it
        will be expressed in UTC.</t>

        <t>The timestamp format (for T, Tf, etc.) is the same as in <xref
        target="RFC5905"/> (64 bits) and is as follows: the first 32 bits
        represent the unsigned integer number of seconds elapsed since 0h on 1
        January 1900; the next 32 bits represent the fractional part of a
        second that has elapsed since then.</t>

        <t>The result format for ddT is *similar to* the short format in <xref
        target="RFC5905"/> (32 bits) and is as follows: the first 16 bits
        represent the *signed* integer number of seconds; the next 16 bits
        represent the fractional part of a second (resolving 15
        microseconds).</t>
      </section>

      <section title="Stream Type and Stream Parameters">
        <t>Periodic distributed as described in <xref target="RFC3432"/>, with
        the following Parameters.</t>

        <t><list style="symbols">
            <t>incT, the nominal duration of inter-packet interval, first bit
            to first bit (for Periodic Streams). incT = 1 second (per
            packet)</t>

            <t>PdT, the duration of the interval for allowed sample start
            times. T0 may be drawn from a uniform distribution, such as T0 = T
            + Unif(0,PdT), or other distribution for PdT.</t>
          </list></t>
      </section>

      <section title="Method of Measurement">
        <t>See section 2.6 and 3.6 of <xref target="RFC3393"/> for singleton
        elements.</t>
      </section>

      <section title="Output Statistic">
        <t>See sections 5.2 and 6.5 of <xref target="RFC5481"/> for details on
        the range statistic, or max(ddT) - min(ddT). Note that min(ddT) will
        almost always be a negative value.</t>

        <t>Individual results (singletons) should be represented by the
        following triple</t>

        <t><list style="symbols">
            <t>T1 and T2, times as described above</t>

            <t>ddT as defined in section 2.4 of <xref target="RFC3393"/></t>
          </list>if needed.</t>
      </section>

      <section title="Discussion/Remarks">
        <t>Lost packets represent a challenge for delay variation metrics. See
        section 4.1 of <xref target="RFC3393"/> and the delay variation
        applicability statement<xref target="RFC5481"/> for extensive analysis
        and comparison of PDV and IPDV.</t>
      </section>
    </section>

    <section title="Security Considerations">
      <t/>

      <section title="Denial of Service Attacks">
        <t>The metrics in this memo require a stream of packets sent from one
        host (source) to another host (destination) through intervening
        networks, and back. This method could be abused for denial of service
        attacks directed at the destination and/or the intervening
        network(s).</t>

        <t>Administrators of source, destination, and the intervening
        network(s) should establish bilateral or multi-lateral agreements
        regarding the timing, size, and frequency of collection of sample
        metrics. Use of this method in excess of the terms agreed between the
        participants may be cause for immediate rejection or discard of
        packets or other escalation procedures defined between the affected
        parties.</t>
      </section>

      <section title="User Data Confidentiality">
        <t>Active use of this method generates packets for a sample, rather
        than taking samples based on user data, and does not threaten user
        data confidentiality. </t>
      </section>

      <section title="Interference with the metrics">
        <t>It may be possible to identify that a certain packet or stream of
        packets is part of a sample. With that knowledge at the destination
        and/or the intervening networks, it is possible to change the
        processing of the packets (e.g. increasing or decreasing delay) in a
        way that may distort the measured performance. It may also be possible
        to generate additional packets that appear to be part of the sample
        metric. These additional packets are likely to perturb the results of
        the sample measurement.</t>

        <t>Authentication or encryption techniques, such as digital
        signatures, MAY be used where appropriate to guard against injected
        traffic attacks. <xref target="RFC5357"/> includes both authentication
        and encryption features.</t>
      </section>
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <t>Metrics previously defined in IETF were registered in the IANA IPPM
      METRICS REGISTRY, however this process was discontinued when the
      registry structure was found to be inadequate, and the registry was
      declared Obsolete <xref target="RFC6248"/>.</t>

      <t>Although the metrics in this draft may be considered for some form of
      registration in the future, no IANA Action is requested at this
      time.</t>
    </section>

    <section title="Acknowledgements">
      <t>The author thanks Brian Trammell for suggesting the term "Run-time
      Parameters", which led to the distinction between run-time and fixed
      parameters implemented in this memo.</t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc ?>

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

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

      <?rfc include="reference.RFC.2679"?>

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

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

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

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

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

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

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

    <references title="Informative References">
      <?rfc include='reference.RFC.1242'?>

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

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

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