RFC 6985 INFORMATIONAL BENCHMARKING · TESTING · PERFORMANCE

IMIX Genome: Specification of Variable Packet Sizes for Additional Testing

A short written name that spells out the exact sequence of packet sizes used in a load test.

On rfc-editor.org ↗
PUBLISHED
July 2013
AUTHORS
A. Morton
STREAM
IETF
RFC 2544 SIZES ENCODED
64, 128, 256, 512, 1024, 1280 and 1518 bytes
JUMBO SIZES ENCODED
2112, 9000 and 16000 bytes
GENOME CODES
a to j for the fixed sizes, z for the MTU
EXPECTED SEQUENCE LENGTH
Under 100 packets
EXAMPLE GENOME
IMIX - aaafg
CUSTOM CODE LETTERS
A to Z, three lower-case letters per size
DOI
10.17487/RFC6985

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Internet Engineering Task Force (IETF)                         A. Morton
Request for Comments: 6985                                     AT&T Labs
Category: Informational                                        July 2013
ISSN: 2070-1721


          IMIX Genome: Specification of Variable Packet Sizes
                         for Additional Testing

Abstract

   Benchmarking methodologies have always relied on test conditions with
   constant packet sizes, with the goal of understanding what network
   device capability has been tested.  Tests with a constant packet size
   reveal device capabilities but differ significantly from the
   conditions encountered in operational deployment, so additional tests
   are sometimes conducted with a mixture of packet sizes, or "IMIX"
   ("Internet Mix").  The mixture of sizes a networking device will
   encounter is highly variable and depends on many factors.  An IMIX
   suited for one networking device and deployment will not be
   appropriate for another.  However, the mix of sizes may be known, and
   the tester may be asked to augment the fixed-size tests.  To address
   this need and the perpetual goal of specifying repeatable test
   conditions, this document defines a way to specify the exact
   repeating sequence of packet sizes from the usual set of fixed sizes
   and from other forms of mixed-size specification.

Status of This Memo

   This document is not an Internet Standards Track specification; it is
   published for informational purposes.

   This document is a product of the Internet Engineering Task Force
   (IETF).  It represents the consensus of the IETF community.  It has
   received public review and has been approved for publication by the
   Internet Engineering Steering Group (IESG).  Not all documents
   approved by the IESG are a candidate for any level of Internet
   Standard; see Section 2 of RFC 5741.

   Information about the current status of this document, any errata,
   and how to provide feedback on it may be obtained at
   http://www.rfc-editor.org/info/rfc6985.

Copyright Notice

   Copyright (c) 2013 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
   (http://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 ....................................................2
   2. Requirements Language ...........................................3
   3. Scope and Goals .................................................3
   4. Specification of the IMIX Genome ................................4
   5. Specification of a Custom IMIX ..................................6
   6. Reporting Long or Pseudorandom Packet Sequences .................7
      6.1. Run-Length Encoding ........................................7
      6.2. Table of Proportions .......................................7
      6.3. Deterministic Algorithm ....................................7
      6.4. Pseudorandom Length Algorithm ..............................8
      6.5. Pseudorandom Sequence Algorithm ............................8
   7. Security Considerations .........................................8
   8. Acknowledgements ................................................8
   9. References ......................................................9
      9.1. Normative References .......................................9
      9.2. Informative References .....................................9

1.  Introduction

   This memo defines a method to unambiguously specify the sequence of
   packet sizes used in a load test.

   Benchmarking methodologies [RFC2544] have always relied on test
   conditions with constant packet sizes, with the goal of understanding
   what network device capability has been tested.  Tests with the
   smallest size stress the header processing capacity, and tests with
   the largest size stress the overall bit-processing capacity.  Tests
   with sizes in between may determine the transition between these two
   capacities.

   Streams of constant packet size differ significantly from the
   conditions encountered in operational deployment, so additional tests
   are sometimes conducted with a mixture of packet sizes.  The set of
   sizes used is often called an Internet Mix, or "IMIX" [Spirent]
   [IXIA] [Agilent].

   The mixture of sizes a networking device will encounter is highly
   variable and depends on many factors.  An IMIX suited for one
   networking device and deployment will not be appropriate for another.
   However, the mix of sizes may be known, and the tester may be asked
   to augment the fixed-size tests.  The references above cite the
   original studies and their methodologies.  Similar methods can be
   used to determine new size mixes present on a link or network.  We
   note that the architecture for IP Flow Information Export [RFC5470]
   provides one method to gather packet-size information on private
   networks.

   To address this need and the perpetual goal of specifying repeatable
   test conditions, this memo proposes a way to specify the exact
   repeating sequence of packet sizes from the usual set of fixed sizes:
   the IMIX Genome.  Other, less exact forms of size specification are
   also recommended for extremely complicated or customized size mixes.
   We apply the term "genome" to infer that the entire test packet-size
   sequence can be replicated if this information is known -- a parallel
   to the information needed for biological replication.

   This memo takes the position that it cannot be proven for all
   circumstances that the sequence of packet sizes does not affect the
   test result; thus, a standardized specification of sequence is
   valuable.

2.  Requirements Language

   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 RFC 2119 [RFC2119].

3.  Scope and Goals

   This memo defines a method to unambiguously specify the sequence of
   packet sizes that have been used in a load test, assuming that a
   relevant mix of sizes is known to the tester and the length of the
   repeating sequence is not very long (<100 packets).

   The IMIX Genome will allow an exact sequence of packet sizes to be
   communicated as a single-line name, resolving the current ambiguity
   with results that simply refer to "IMIX".  This aspect is critical
   because no ability has been demonstrated to extrapolate results from
   one IMIX to another IMIX -- and certainly no ability to extrapolate
   results to other circumstances -- even when the mix varies only
   slightly from another IMIX.

   While documentation of the exact sequence is ideal, the memo also
   covers the case where the sequence of sizes is very long or may be
   generated by a pseudorandom process.

   It is a colossal non-goal to standardize one or more versions of the
   IMIX.  This topic has been discussed on many occasions on the BMWG
   mailing list [IMIXonList].  The goal is to enable customization with
   minimal constraints while fostering repeatable testing once the
   fixed-size testing is complete.  Thus, the requirements presented in
   this specification, expressed in [RFC2119] terms, are intended for
   those performing/reporting laboratory tests to improve clarity and
   repeatability.

4.  Specification of the IMIX Genome

   The IMIX Genome is specified in the following format:

   IMIX - 123456...x

   where each number is replaced by the letter corresponding to the size
   of the packet at that position in the sequence.  The following table
   gives the letter encoding for the [RFC2544] standard sizes (64, 128,
   256, 512, 1024, 1280, and 1518 bytes) and "jumbo" sizes (2112, 9000,
   and 16000 bytes).  Note that the 4-octet Ethernet frame check
   sequence may fail to detect bit errors in the larger jumbo frames
   [Jumbo1] [Jumbo2].

                    +--------------+--------------------+
                    | Size (Bytes) | Genome Code Letter |
                    +--------------+--------------------+
                    | 64           | a                  |
                    | 128          | b                  |
                    | 256          | c                  |
                    | 512          | d                  |
                    | 1024         | e                  |
                    | 1280         | f                  |
                    | 1518         | g                  |
                    | 2112         | h                  |
                    | 9000         | i                  |
                    | 16000        | j                  |
                    | MTU          | z                  |
                    +--------------+--------------------+

   For example, a five-packet sequence with sizes 64,64,64,1280,1518
   would be designated:

   IMIX - aaafg

   If z (MTU) is used, the tester MUST specify the length of the MTU in
   the report.

   While this approach allows some flexibility, there are also
   constraints.

   o  Packet sizes not defined by RFC 2544 would need to be approximated
      by those available in the table.

   o  The genome for very long sequences can become undecipherable by
      humans.

   Some questions testers must ask and answer when using the IMIX Genome
   are:

   1.  Multiple source-destination address pairs: Is the IMIX sequence
       applicable to each pair, across multiple pairs in sets, or across
       all pairs?

   2.  Multiple tester ports: Is the IMIX sequence applicable to each
       port, across multiple ports in sets, or across all ports?

   The chosen configuration would be expressed in the following general
   form:

   +-------------------+------------------------+---------------------+
   | Source Address +  | Destination Address +  | Corresponding IMIX  |
   | Port AND/OR Blade | Port AND/OR Blade      |                     |
   +-------------------+------------------------+---------------------+
   | x.x.x.x Blade2    | y.y.y.y Blade3         | IMIX - aaafg        |
   +-------------------+------------------------+---------------------+

   where testers can specify the IMIX used between any two entities in
   the test architecture (and "Blade" is a component in a multi-
   component device chassis).

5.  Specification of a Custom IMIX

   This section describes how to specify an IMIX with locally selected
   packet sizes.

   The custom IMIX is specified in the following format:

   CUSTOM IMIX - 123456...x

   where each number is replaced by the letter corresponding to the size
   of the packet at that position in the sequence.  The tester MUST
   complete the following table, giving the letter encoding for each
   size used, where each set of three lower-case letters would be
   replaced by the integer size in octets.

                    +--------------+--------------------+
                    | Size (Bytes) | Custom Code Letter |
                    +--------------+--------------------+
                    | aaa          | A                  |
                    | bbb          | B                  |
                    | ccc          | C                  |
                    | ddd          | D                  |
                    | eee          | E                  |
                    | fff          | F                  |
                    | ggg          | G                  |
                    | etc.         | up to Z            |
                    +--------------+--------------------+

   For example, a five-packet sequence with sizes
   aaa=64,aaa=64,aaa=64,ggg=1020,ggg=1020 would be designated:

   CUSTOM IMIX - AAAGG

6.  Reporting Long or Pseudorandom Packet Sequences

   When the IMIX Genome cannot be used (when the sheer length of the
   sequence would make the genome unmanageable), five options are
   possible, as noted in the following subsections.

6.1.  Run-Length Encoding

   When a sequence can be decomposed into a series of short repeating
   sequences, then a run-length encoding approach MAY be specified as
   shown in the table below (using the single lower-case letter Genome
   Codes from Section 4):

           +------------------------------+----------------------+
           | Count of Repeating Sequences | Packet-Size Sequence |
           +------------------------------+----------------------+
           | 20                           | abcd                 |
           | 5                            | ggga                 |
           | 10                           | dcba                 |
           +------------------------------+----------------------+

   The run-length encoding approach is also applicable to the custom
   IMIX as described in Section 5 (where the single upper-case letter
   Genome Codes would be used instead).

6.2.  Table of Proportions

   When the sequence is designed to vary within some proportional
   constraints, a table simply giving the proportions of each size MAY
   be used instead.

       +-----------+---------------------+---------------------------+
       | IP Length | Percentage of Total | Length(s) at Other Layers |
       +-----------+---------------------+---------------------------+
       | 64        | 23                  | 82                        |
       | 128       | 67                  | 146                       |
       | 1000      | 10                  | 1018                      |
       +-----------+---------------------+---------------------------+

   Note that the table of proportions also allows non-standard packet
   sizes but trades the short genome specification and ability to
   specify the exact sequence for other flexibilities.

6.3.  Deterministic Algorithm

   If a deterministic packet-size generation method is used (such as a
   monotonic increase by 1 octet from start value to MTU), then the
   generation algorithm SHOULD be reported.

6.4.  Pseudorandom Length Algorithm

   If a pseudorandom length generation capability is used, then the
   generation algorithm SHOULD be reported with the results along with
   the seed value used.  We also recognize the opportunity to randomize
   inter-packet spacing from a test sender as well as the size, and both
   spacing and length pseudorandom generation algorithms and seeds
   SHOULD be reported when used.

6.5.  Pseudorandom Sequence Algorithm

   Finally, we note another possibility: a pseudorandom sequence
   generates an index to the table of packet lengths, and the generation
   algorithm SHOULD be reported with the results, along with the seed
   value if used.

7.  Security Considerations

   Benchmarking activities as described in this memo are limited to
   technology characterization using controlled stimuli in a laboratory
   environment, with dedicated address space and other constraints
   [RFC2544].

   The benchmarking network topology will be an independent test setup
   and MUST NOT be connected to devices that may forward the test
   traffic into a production network or misroute traffic to the test
   management network.

   Further, benchmarking is performed on a "black-box" basis, relying
   solely on measurements observable external to the Device Under Test
   (DUT) or System Under Test (SUT).

   Special capabilities SHOULD NOT exist in the DUT/SUT specifically for
   benchmarking purposes.  Any implications for network security arising
   from the DUT/SUT SHOULD be identical in the lab and in production
   networks.

8.  Acknowledgements

   Thanks to Sarah Banks, Aamer Akhter, Steve Maxwell, and Scott Bradner
   for their reviews and comments.  Ilya Varlashkin suggested the
   run-length encoding approach in Section 6.1.

9.  References

9.1.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC2544]  Bradner, S. and J. McQuaid, "Benchmarking Methodology for
              Network Interconnect Devices", RFC 2544, March 1999.

9.2.  Informative References

   [Agilent]  Agilent, "The Journal of Internet Test Methodologies",
              September 2007, <http://www.ixiacom.com/pdfs/test_plans/
              agilent_journal_of_internet_test_methodologies.pdf>.

   [IMIXonList]
              IETF Benchmarking Methodology Working Group, "Discussion
              on IMIX", October 2003, <http://www.ietf.org/mail-archive/
              web/bmwg/current/msg00691.html>.

   [IXIA]     IXIA, "Testing PPPoX and L2TP Broadband Access Devices",
              2004, <http://www.ixiacom.com/library/test_plans/
              display?skey=testing_pppox>.

   [Jumbo1]   Dykstra, P., "Gigabit Ethernet Jumbo Frames, and why you
              should care", WareOnEarth Communications, Inc., December
              1999, <http://sd.wareonearth.com/~phil/jumbo.html>.

   [Jumbo2]   Mathis, M., "The Ethernet CRC limits packets to about
              12 kBytes. (NOT)", Pittsburgh Supercomputing Center,
              April 2003,
              <http://staff.psc.edu/mathis/MTU/arguments.html#crc>.

   [RFC5470]  Sadasivan, G., Brownlee, N., Claise, B., and J. Quittek,
              "Architecture for IP Flow Information Export", RFC 5470,
              March 2009.

   [Spirent]  Spirent, "Test Methodology Journal: IMIX (Internet Mix)
              Journal", January 2006, <http://gospirent.com/whitepaper/
              IMIX%20Test%20Methodolgy%20Journal.pdf>.

Author's Address

   Al Morton
   AT&T Labs
   200 Laurel Avenue South
   Middletown, NJ  07748
   USA

   Phone: +1 732 420 1571
   Fax:   +1 732 368 1192
   EMail: acmorton@att.com
   URI:   http://home.comcast.net/~acmacm/

ISO Plain Language

On this page
PROBLEMBenchmarking has always used one fixed packet size at a time, which reveals what a device can do but not what it meets in a real network. Tests with a mixture of sizes are added, and results that simply say "IMIX" cannot be compared or repeated.
MECHANISMThe IMIX Genome is a one-line code in which each letter stands for a packet size, so the exact repeating sequence of sizes is written down. Rules for custom sizes and for long or pseudorandom sequences are given too.
WHY IT MATTERSThe document gives a repeatable way to describe a test's packet sizes, so two labs running the same test can be sure they sent the same bytes in the same order.

§1Why Fixed Sizes Are Not Enough

Benchmarking methodologies have always relied on test conditions with constant packet sizes, with the goal of understanding what network device capability has been tested. Tests with the smallest size stress the header processing capacity, and tests with the largest size stress the overall bit-processing capacity. Sizes in between may determine the transition between those two capacities.

Streams of constant packet size differ significantly from the conditions met in operational deployment, so additional tests are sometimes conducted with a mixture of packet sizes. The set of sizes used is often called an Internet Mix, or IMIX. The mixture a device will encounter is highly variable and depends on many factors, so an IMIX suited to one device and deployment will not be appropriate for another. The mix may nevertheless be known, and the tester may be asked to augment the fixed-size tests. The RFC also notes that the architecture for IP Flow Information Export in RFC 5470 provides one way to gather packet-size information on private networks.

The proposal is a way to specify the exact repeating sequence of packet sizes from the usual set of fixed sizes, called the IMIX Genome. The name is meant to convey that the entire test packet-size sequence can be replicated if the information is known, much as the information needed for biological replication does. The memo takes the position that it cannot be proven for all circumstances that the sequence of packet sizes does not affect the test result, so a standardised specification of that sequence is valuable.

Testing with one packet size at a time tells you what a device can do. Testing with a realistic mixture tells you what it will actually meet. The trouble is that "a realistic mixture" is not the same in every lab, so the results cannot be compared.

§3What This Covers and What It Does Not

The method defines how to specify unambiguously the sequence of packet sizes used in a load test, on the assumption that a relevant mix of sizes is known to the tester and that the length of the repeating sequence is not very long, in other words under 100 packets. The genome allows an exact sequence to be communicated as a single-line name, which resolves the current ambiguity in results that simply refer to IMIX.

The RFC is emphatic that this aspect matters. No ability has been demonstrated to extrapolate results from one IMIX to another, and certainly none to extrapolate results to other circumstances, even when the mix varies only slightly.

Two limits are set on the ambition. Documenting the exact sequence is ideal, but the memo also covers the case where the sequence of sizes is very long or may be generated by a pseudorandom process. And it is called a colossal non-goal to standardise one or more versions of the IMIX itself; that has been discussed many times on the benchmarking working group's mailing list. The goal is to enable customisation with minimal constraints while fostering repeatable testing once the fixed-size testing is complete. The requirements are written for those performing and reporting laboratory tests, in order to improve clarity and repeatability.

The method is for short repeating sequences of packet sizes. It does not try to say which mixture anyone should use, because that choice depends on the network being represented.

§4The Genome Code

The IMIX Genome is written in the form IMIX - 123456...x, where each number is replaced by the letter that corresponds to the size of the packet at that position in the sequence. The letters cover the standard sizes of RFC 2544 and the larger jumbo sizes: a for 64 bytes, b for 128, c for 256, d for 512, e for 1024, f for 1280, g for 1518, h for 2112, i for 9000 and j for 16000, with z standing for the maximum transmission unit. A note warns that the four-octet Ethernet frame check sequence may fail to detect bit errors in the larger jumbo frames.

A five-packet sequence with sizes 64, 64, 64, 1280 and 1518 is therefore written IMIX - aaafg. If the letter z is used, the tester must specify the length of the maximum transmission unit in the report, since the code alone does not carry it.

The approach allows some flexibility but has constraints. Packet sizes not defined by RFC 2544 would have to be approximated by the sizes available in the table, and the genome for very long sequences can become undecipherable by people. The RFC also asks testers two questions they must answer and record: whether the sequence applies to each source and destination address pair, across multiple pairs in sets, or across all pairs; and whether it applies to each tester port, across multiple ports in sets, or across all ports. The chosen configuration is expressed as a table of source address and port or blade, destination address and port or blade, and the corresponding IMIX. A blade is a component in a multi-component device chassis.

Each letter is one packet size. Writing the sequence out as letters tells the whole story in a few characters: aaafg means a 64-byte packet, another, another, then 1280 bytes and 1518 bytes, over and over.

THE GENOME CODE LETTERS
  • a64 bytes — An RFC 2544 standard size.
  • b128 bytes — An RFC 2544 standard size.
  • c256 bytes — An RFC 2544 standard size.
  • d512 bytes — An RFC 2544 standard size.
  • e1024 bytes — An RFC 2544 standard size.
  • f1280 bytes — An RFC 2544 standard size.
  • g1518 bytes — An RFC 2544 standard size.
  • h2112 bytes — A jumbo size.
  • i9000 bytes — A jumbo size.
  • j16000 bytes — A jumbo size.
  • zMTU — The maximum transmission unit; its length must be given in the report.
EXAMPLE: 64, 64, 64, 1280 AND 1518 BYTES
An IMIX Genome
IMIX - aaafg

§5Custom Sizes

When the sizes needed are not in the standard table, a custom IMIX is written in the form CUSTOM IMIX - 123456...x, again with one letter per position in the sequence, but using capital letters. The tester must complete a table giving the letter for each size used, where each set of three lower-case letters is replaced by the integer size in octets. So aaa maps to A, bbb to B, ccc to C, ddd to D, eee to E, fff to F, ggg to G, and so on up to Z.

The example in the RFC is a five-packet sequence with sizes aaa = 64, aaa = 64, aaa = 64, ggg = 1020 and ggg = 1020, which is written CUSTOM IMIX - AAAGG. The custom form therefore carries two pieces of information: the order of the sizes, and the table that says what each letter means.

If the sizes you need are not standard, you name them yourself with capital letters and publish the list, so that the code and the list together describe the test exactly.

§6Long or Random Sequences

When the genome cannot be used, because the sheer length of the sequence would make it unmanageable, five options are available. The first is run-length encoding, which may be specified when the sequence decomposes into a series of short repeating sequences: a table gives a count of repeating sequences and the packet-size sequence, for example a count of 20 for the sequence abcd, a count of 5 for ggga and a count of 10 for dcba. The same approach works for the custom form, with capital letters.

The second is a table of proportions, used when the sequence varies within proportional constraints. It gives the IP length, the percentage of the total and the length at other layers, for example 64 bytes at 23 per cent and 82 bytes at other layers, 128 bytes at 67 per cent and 146 bytes at other layers, and 1000 bytes at 10 per cent and 1018 bytes at other layers. This also allows non-standard packet sizes, but it trades the short genome specification and the ability to state the exact sequence for other flexibilities.

The third is a deterministic algorithm, such as a monotonic increase by one octet from a start value up to the maximum transmission unit, in which case the generation algorithm should be reported. The fourth is a pseudorandom length algorithm, where the algorithm should be reported along with the seed value; the RFC also recognises the opportunity to randomise the spacing between packets as well as the size, and says that both the spacing and length algorithms and seeds should be reported when used. The fifth is a pseudorandom sequence that generates an index into the table of packet lengths, where again the algorithm should be reported with the results, along with the seed value if one is used.

Very long or random sequences cannot be written out letter by letter. Instead you describe how they are made: how many times a short pattern repeats, what share of the traffic is each size, or the algorithm and seed that produce them.

FIVE WAYS TO DESCRIBE A LONG OR RANDOM SEQUENCE
  • Run-length encodingGive a count and a short pattern that repeats that many times.
  • Table of proportionsGive the share of the traffic at each size, plus the length at other layers.
  • Deterministic algorithmReport the rule that generates the sizes, such as a step from a start value to the MTU.
  • Pseudorandom lengthReport the algorithm and the seed value used to pick the lengths.
  • Pseudorandom sequenceReport the algorithm and seed that pick an index into the table of lengths.

§7Keeping the Test Off the Production Network

Benchmarking as described in this memo is limited to technology characterisation using controlled stimuli in a laboratory environment, with dedicated address space and the other constraints of RFC 2544. The benchmarking network topology is an independent test setup and must not be connected to devices that may forward the test traffic into a production network or misroute traffic to the test management network.

Benchmarking is also performed on a black-box basis, relying solely on measurements observable from outside the device or system under test. Special capabilities should not exist in the device under test specifically for benchmarking purposes, and any implications for network security arising from the device should be identical in the lab and in production networks.

The test lab has to stay separate from the real network, and the device under test must not get special treatment that would only exist for testing. What the test reveals about security should be true in the lab and in production alike.

§7References