RFC 9004

Updates for the Back-to-Back Frame Benchmark in RFC 2544

๐Ÿ“… published May 2021, from ietf

RFC 9004: Updates for the Back-to-Back Frame Benchmark in RFC 2544 โœจ

Okay bestie, this is RFC 9004 ๐ŸŽ€, an IETF doc written by A. Morton from AT&T Labs and dated May 2021. It's Informational, so it's for sharing knowledge and not a Standards Track spec. It updates RFC 2544 (that's the Updates: 2544 line). Its ISSN is 2070-1721, and it has no Obsoletes line, so it doesn't replace anything. ๐Ÿ’…

Abstract

Fundamental benchmarking methodologies for network interconnect devices of interest to the IETF are defined in RFC 2544. This memo updates the procedures of the test to measure the Back-to-Back Frames benchmark of RFC 2544, based on further experience.

This memo updates Section 26.4 of RFC 2544.

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 candidates for any level of Internet Standard; see Section 2 of RFC 7841.

Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at https://www.rfc-editor.org/info/rfc9004. ๐Ÿฆ‹

Copyright (c) 2021 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.

Table of Contents ๐Ÿงš

1.  Introduction
2.  Requirements Language
3.  Scope and Goals
4.  Motivation
5.  Prerequisites
6.  Back-to-Back Frames
  6.1.  Preparing the List of Frame Sizes
  6.2.  Test for a Single Frame Size
  6.3.  Test Repetition and Benchmark
  6.4.  Benchmark Calculations
7.  Reporting
8.  Security Considerations
9.  IANA Considerations
10. References
  10.1.  Normative References
  10.2.  Informative References
Acknowledgments
Author's Address

1. Introduction ๐ŸŒˆ

Okay so the IETF's core benchmarking methodologies live in [RFC2544], and they lean on the terms and definitions in [RFC1242]. Fun fact: [RFC2544] actually obsoletes an older spec, [RFC1944]. โœจ

The benchmarking community has updated [RFC2544] a bunch of times since then. There's the Device Reset benchmark in [RFC6201], and the important Applicability Statement in [RFC6815] about using it outside the Isolated Test Environment (ITE), which you need for accurate benchmarking. Some other specs update [RFC2544] implicitly too, like the IPv6 benchmarking methodologies in [RFC5180]. It's giving main character energy. ๐Ÿ‘‘

Real testing with the Back-to-Back Frame test and benchmark in Section 26.4 of [RFC2544] shows that an update is needed [OPNFV-2017] [VSPERF-b2b]. The big surprise is that buffer size matters when you're making up for interruptions in software packet processing. That makes the Back-to-Back Frame characterization in this memo even more important ๐Ÿ”ฅ. This memo gives the extra reasoning and the updated method, so keep reading bestie ๐Ÿ’–.

[RFC2544] has its own requirements language that matches [RFC2119], since [RFC1944] (the one it obsoletes) came out before [RFC2119] existed. All three memos have the same authors ๐Ÿซถ. Today [RFC8174] explains how requirements language works, so the requirements language in this memo follows [RFC8174]. It's for people running and reporting lab tests so things are clearer and more repeatable, and for people building devices that make those tests easier ๐Ÿ“.

2. Requirements Language ๐Ÿ’…

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here. ๐ŸŽ€

3. Scope and Goals ๐Ÿฆ‹

The scope of this memo is to define an updated method so you can unambiguously run tests, measure the benchmark(s), and report results for Back-to-Back Frames (as described in Section 26.4 of [RFC2544]). Clear steps, no guessing ๐Ÿงš.

The goal is to make test procedures more efficient where possible and to expand reporting with extra interpretation of the results. The tests in this memo cover the cases where the maximum frame rate of a single ingress port can't be moved to an egress port without loss (for some frame sizes you care about) ๐Ÿ˜ญ.

Benchmarks in [RFC2544] rely on test conditions with constant frame sizes, so you know exactly what the network device was able to do. The smallest size stresses header-processing capacity, and the largest size stresses overall bit-processing capacity. Sizes in between can show where the switch from one capacity to the other happens ๐ŸŒธ. However, conditions that send a mix of Internet (IMIX) frame sizes, such as those described in [RFC6985], MUST NOT be used in Back-to-Back Frame testing. No mixing, bestie ๐Ÿ™ˆ.

Section 3 of [RFC8239] describes buffer-size testing for physical networking devices in a data center. Those methods measure buffer latency directly, with traffic on multiple ingress ports overloading one egress port on the Device Under Test (DUT). They aren't affected by the revised calculations in this memo โœจ. Likewise, the methods of [RFC8239] SHOULD be used for test cases where the egress-port buffer is the known point of overload ๐Ÿ’œ.

4. Motivation ๐Ÿ’–

okay so, [RFC1242] Section 3.1 explains why the Back-to-Back Frames benchmark exists ๐Ÿง  short version: devices on a network love to send bursts of frames at the minimum allowed spacing, so it's worth knowing how long a burst the DUT can actually handle. That same doc says:

Tests of this parameter are intended to determine the extent of data buffering in the device.

Since this test was defined, people have occasionally debated whether the results are stable and repeatable, both over time and across labs ๐Ÿ‘€ Thankfully, the Open Platform for Network Function Virtualization (OPNFV) project on Virtual Switch Performance (VSPERF) Continuous Integration (CI) [VSPERF-CI] routinely reruns Back-to-Back Frame tests to check the test functionality is still working as the test-control programs get developed. Those runs were used to evaluate stability and repeatability, even across lab setups, when the test platform moved to new DUT hardware at the end of 2016 ๐ŸŽ€

When the VSPERF CI results were examined [VSPERF-b2b], a few things stood out ๐Ÿ’…

  1. The Back-to-Back Frame benchmark was very consistent for some fixed frame sizes, and somewhat variable for others.
  2. The number of Back-to-Back Frames with zero loss reported for large frame sizes was unexpectedly long (translating to 30 seconds of buffer time), and no explanation or measurement limit condition was indicated ๐Ÿ˜ญ The buffering time calculations were a big deal in the referenced testing and analysis [VSPERF-b2b], because the calculated buffer time of 30 seconds for some frame sizes was clearly wrong or highly suspect. On the other hand, a result expressed only as a large number of Back-to-Back Frames doesn't allow such an easy comparison with reality.
  3. Calculating how much buffer time the DUT has helped explain the results observed with all frame sizes โœจ For example, tests with some frame sizes cannot exceed the frame-header-processing rate of the DUT, so no buffering occurs. Therefore, the results depended on the test equipment and not the DUT ๐Ÿ™ˆ
  4. A better estimate of the DUT buffer time could be calculated using measurements of both the longest burst in frames without loss and results from the Throughput tests conducted according to Section 26.1 of [RFC2544] ๐Ÿฆ‹ The DUT's frame-processing rate empties the buffer during a trial, and it tends to increase the "implied" buffer-size estimate (measured according to Section 26.4 of [RFC2544]) because many frames have already left the buffer by the time the burst ends. A calculation using the Throughput measurement can reveal a "corrected" buffer-size estimate ๐Ÿ‘‘

Also, if the Throughput tests of Section 26.1 of [RFC2544] are run as a prerequisite, the number of frame sizes needed for Back-to-Back Frame benchmarking can be reduced to one or more of the small frame sizes. Or the results for large frame sizes can be noted as invalid if they get tested anyway. These are the larger frame sizes where the Back-to-Back Frame rate cannot exceed the frame-header-processing rate of the DUT, so little or no buffering occurs ๐ŸŒธ

The material below gives the details of the calculation to estimate the actual buffer storage available in the DUT. It uses results from the Throughput tests for each frame size and the Max Theoretical Frame Rate for the DUT links (which constrain the minimum frame spacing) ๐Ÿงš

Real DUTs have many buffers and packet-header-processing steps, so the simplified model used in these calculations includes a packet-header-processing function with a limited rate of operation, as shown in Figure 1 ๐Ÿ“

                        |------------ DUT --------|
   Generator -> Ingress -> Buffer -> HeaderProc -> Egress -> Receiver

                 Figure 1: Simplified Model for DUT Testing

So, in the Back-to-Back Frame testing:

  1. The ingress burst arrives at Max Theoretical Frame Rate, and the frames are initially buffered.
  2. The packet-header-processing function (HeaderProc) operates at the "Measured Throughput" (Section 26.1 of [RFC2544]), removing frames from the buffer. This is the best approximation we have. Another acceptable approximation is the received frame rate during Back-to-back Frame testing, if Measured Throughput isn't available.
  3. Frames that have already been processed are clearly not in the buffer, so the Corrected DUT Buffer Time equation (Section 6.4) estimates and removes the frames that the DUT forwarded on egress during the burst. We define buffer time as the number of frames occupying the buffer divided by the Max Theoretical Frame Rate (on ingress) for the frame size under test.
  4. A helpful concept is the buffer-filling rate, which is the difference between the Max Theoretical Frame Rate (ingress) and the Measured Throughput (HeaderProc on egress) ๐Ÿ”ฅ If the actual buffer size in frames is known, the time to fill the buffer during a measurement can be calculated using the filling rate, as a check on measurements. However, the buffer in the model represents many buffers of different sizes in the DUT data path.

Knowing the approximate buffer storage size (in time or bytes) may be useful in estimating whether frame losses will occur if DUT forwarding is temporarily suspended in a production deployment because of an unexpected interruption of frame processing. An interruption lasting longer than the estimated buffer would certainly cause lost frames ๐Ÿ˜ณ In Section 6, the calculations for the correct buffer time use the combination of offered load at Max Theoretical Frame Rate and header-processing speed at 100% of Measured Throughput. Other combinations are possible, such as changing the percent of Measured Throughput to account for other processes that reduce the header-processing rate.

The presentation of OPNFV VSPERF evaluation and development of enhanced search algorithms [VSPERF-BSLV] was given and discussed at IETF 102 ๐ŸŽ€ The enhancements are intended to compensate for transient processor interrupts that may cause loss at near-Throughput levels of offered load. Later analysis of the results indicates that buffers within the DUT can compensate for some interrupts, and this finding makes the Back-to-Back Frame characterization described here even more important ๐Ÿ’œ

5. Prerequisites ๐Ÿ“

The test setup MUST be consistent with Figure 1 of [RFC2544], or Figure 2 of that document when the tester's sender and receiver are different devices. Other mandatory testing aspects described in [RFC2544] MUST be included, unless explicitly modified in the next section ๐Ÿซถ

The ingress and egress link speeds and link-layer protocols MUST be specified and used to compute the Max Theoretical Frame Rate when respecting the minimum interframe gap.

The test results for the Throughput benchmark conducted according to Section 26.1 of [RFC2544] for all frame sizes RECOMMENDED by [RFC2544] MUST be available, so you can reduce the tested-frame-size list or note invalid results for individual frame sizes (because the burst length may be essentially infinite for large frame sizes) ๐ŸŒˆ

Note that:

  • the Throughput and the Back-to-Back Frame measurement-configuration traffic characteristics (unidirectional or bidirectional, and number of flows generated) MUST match.
  • the Throughput measurement MUST be taken under zero-loss conditions, according to Section 26.1 of [RFC2544] โœจ

The Back-to-Back Benchmark described in Section 3.1 of [RFC1242] MUST be measured directly by the tester, where buffer size is inferred from Back-to-Back Frame bursts and associated packet-loss measurements. So sources of frame loss that are unrelated to consistent evaluation of buffer size SHOULD be identified and removed or mitigated ๐Ÿ•ต๏ธ Example sources include:

  • On-path active components that are external to the DUT
  • Operating-system environment interrupting DUT operation
  • Shared-resource contention between the DUT and other off-path component(s) impacting DUT's behavior, sometimes called the "noisy neighbor" problem with virtualized network functions ๐Ÿ˜ค

Mitigations applicable to some of the sources above are discussed in Section 6.2, and the other measurement requirements are described below in Section 6.

6. Back-to-Back Frames ๐Ÿฆ‹

Objective: To characterize the ability of a DUT to process Back-to-Back Frames as defined in [RFC1242].

The procedure follows.

6.1. Preparing the List of Frame Sizes ๐ŸŒท

From the list of RECOMMENDED frame sizes (Section 9 of [RFC2544]), select the subset of frame sizes whose Measured Throughput (during prerequisite testing) was less than the Max Theoretical Frame Rate of the DUT/test setup. These are the only frame sizes where it is possible to produce a burst of frames that causes the DUT buffers to fill and eventually overflow, producing one or more discarded frames ๐Ÿ’ฅ

6.2. Test for a Single Frame Size ๐ŸŽ€

okay so every trial goes like this: the tester waits out some idle time, then blasts a burst of frames with the minimum interframe gap and counts how many of them the DUT forwards back out. ๐Ÿฆ‹ it's giving precision, and I'm obsessed.

The duration of the trial includes three REQUIRED components:

  1. The time to send the burst of frames (at the back-to-back rate), determined by the search algorithm.
  2. The time to receive the transferred burst of frames (at the [RFC2544] Throughput rate), possibly truncated by buffer overflow, and certainly including the latency of the DUT.
  3. At least 2 seconds not overlapping the time to receive the burst (Component 2, above), to ensure that DUT buffers have depleted. Longer times MUST be used when conditions warrant, such as when buffer times >2 seconds are measured or when burst sending times are >2 seconds, but care is needed, since this time component directly increases trial duration, and many trials and tests comprise a complete benchmarking study. ๐Ÿ’…

The upper search limit for the time to send each burst MUST be configurable to values as high as 30 seconds (buffer time results reported at or near the configured upper limit are likely invalid, and the test MUST be repeated with a higher search limit). ๐Ÿ™ˆ so if your number comes out right at the ceiling, it's not the final answer, bestie. run it again with a higher limit.

If all frames have been received, the tester increases the length of the burst according to the search algorithm and performs another trial. โœจ

If the received frame count is less than the number of frames in the burst, then the limit of DUT processing and buffering may have been exceeded, and the burst length for the next trial is determined by the search algorithm (the burst length is typically reduced, but see below). ๐Ÿ’€

Classic search algorithms have been adapted for use in benchmarking, where the search requires discovery of a pair of outcomes, one with no loss and another with loss, at load conditions within the acceptable tolerance or accuracy. Conditions encountered when benchmarking the infrastructure for network function virtualization require algorithm enhancement. Fortunately, the adaptation of Binary Search, and an enhanced Binary Search with Loss Verification, have been specified in Clause 12.3 of [TST009]. These algorithms can easily be used for Back-to-Back Frame benchmarking by replacing the offered load level with burst length in frames. [TST009], Annex B describes the theory behind the enhanced Binary Search with Loss Verification algorithm. ๐Ÿงš

There are also promising works in progress that may prove useful in Back-to-Back Frame benchmarking. [BMWG-MLRSEARCH] and [BMWG-PLRSEARCH] are two such examples. ๐Ÿ‘€

Either the [TST009] Binary Search or Binary Search with Loss Verification algorithms MUST be used, and input parameters to the algorithm(s) MUST be reported. ๐Ÿ“

The tester usually imposes a (configurable) minimum step size for burst length, and the step size MUST be reported with the results (as this influences the accuracy and variation of test results). ๐Ÿ“

The original Section 26.4 of [RFC2544] definition is stated below:

The back-to-back value is the number of frames in the longest burst that the DUT will handle without the loss of any frames.

6.3. Test Repetition and Benchmark ๐ŸŒˆ

on this topic, Section 26.4 of [RFC2544] says:

The trial length MUST be at least 2 seconds and SHOULD be repeated at least 50 times with the average of the recorded values being reported.

so the Back-to-Back Frame benchmark is the average of burst-length values over repeated tests, to figure out the longest burst of frames the DUT can successfully process and buffer without frame loss. each repeat is its own independent search process, so no cheating off your last run, fr fr. ๐Ÿ˜Œ

In this update, the test MUST be repeated N times (the number of repetitions is now a variable that must be reported) for each frame size in the subset list, and each Back-to-Back Frame value MUST be made available for further processing (below). ๐Ÿซถ


6.4. Benchmark Calculations ๐Ÿงฎ

For each frame size, calculate the following summary statistics for longest Back-to-Back Frame values over the N tests:

  • Average (Benchmark)
  • Minimum
  • Maximum
  • Standard Deviation

Further, calculate the Implied DUT Buffer Time and the Corrected DUT Buffer Time in seconds, as follows:

Implied DUT buffer time =

   Average num of Back-to-back Frames / Max Theoretical Frame Rate

The formula above is simply expressing the burst of frames in units of time. โฑ๏ธ

The next step is to apply a correction factor that accounts for the DUT's frame forwarding operation during the test (assuming the simple model of the DUT composed of a buffer and a forwarding function, described in Section 4). this is the part where we subtract out the frames the DUT was already sending while the burst was coming in. very precise, very cute. ๐Ÿ’–

   Corrected DUT Buffer Time =
                     /                                         \
      Implied DUT    |Implied DUT       Measured Throughput    |
   =  Buffer Time -  |Buffer Time * -------------------------- |
                     |              Max Theoretical Frame Rate |
                     \                                         /

where:

  1. The "Measured Throughput" is the [RFC2544] Throughput Benchmark for the frame size tested, as augmented by methods including the Binary Search with Loss Verification algorithm in [TST009] where applicable and MUST be expressed in frames per second in this equation.
  2. The "Max Theoretical Frame Rate" is a calculated value for the interface speed and link-layer technology used, and it MUST be expressed in frames per second in this equation.

The term on the far right in the formula for Corrected DUT Buffer Time accounts for all the frames in the burst that were transmitted by the DUT while the burst of frames was sent in. So, these frames are not in the buffer, and the buffer size is more accurately estimated by excluding them. ๐Ÿง  If Measured Throughput is not available, an acceptable approximation is the received frame rate (see Forwarding Rate in [RFC2889] measured during Back-to-back Frame testing). ๐ŸŒธ


7. Reporting ๐Ÿ“Š

The Back-to-Back Frame results SHOULD be reported in the format of a table with a row for each of the tested frame sizes. There SHOULD be columns for the frame size and the resultant average frame count for each type of data stream tested. ๐Ÿ’…

The number of tests averaged for the benchmark, N, MUST be reported. ๐Ÿ”ฅ

The minimum, maximum, and standard deviation across all complete tests SHOULD also be reported (they are referred to as "Min,Max,StdDev" in Table 1). ๐Ÿ“ˆ

The Corrected DUT Buffer Time SHOULD also be reported. ๐Ÿ“

If the tester operates using a limited maximum burst length in frames, then this maximum length SHOULD be reported. ๐Ÿงš

    +=============+================+================+================+
    | Frame Size, | Ave B2B        | Min,Max,StdDev | Corrected Buff |
    | octets      | Length, frames |                | Time, Sec      |
    +=============+================+================+================+
    | 64          | 26000          | 25500,27000,20 | 0.00004        |
    +-------------+----------------+----------------+----------------+

                   Table 1: Back-to-Back Frame Results

Static and configuration parameters (reported with Table 1):

  • Number of test repetitions, N
  • Minimum Step Size (during searches), in frames.

If the tester has a specific (actual) frame rate of interest (less than the Throughput rate), it is useful to estimate the buffer time at that actual frame rate:

   Actual Buffer Time =
                                      Max Theoretical Frame Rate
        = Corrected DUT Buffer Time * --------------------------
                                          Actual Frame Rate

and report this value, properly labeled. ๐Ÿท๏ธ


8. 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 the other constraints of [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. See [RFC6815]. ๐Ÿšจ this one is seriously non-negotiable, so keep your lab walled off, bestie.

Further, benchmarking is performed on an "opaque-box" (a.k.a. "black-box") basis, relying solely on measurements observable external to the Device or System Under Test (SUT). ๐Ÿ•ต๏ธ

The DUT developers are commonly independent from the personnel and institutions conducting benchmarking studies. DUT developers might have incentives to alter the performance of the DUT if the test conditions can be detected. Special capabilities SHOULD NOT exist in the DUT/SUT specifically for benchmarking purposes. Procedures described in this document are not designed to detect such activity. Additional testing outside of the scope of this document would be needed and has been used successfully in the past to discover such malpractices. ๐Ÿ˜ญ the drama is real, and the sneaky stuff does happen.

Any implications for network security arising from the DUT/SUT SHOULD be identical in the lab and in production networks. ๐Ÿซถ


9. IANA Considerations ๐Ÿฆ‹

This document has no IANA actions. ๐ŸŒธ


10. References ๐Ÿ“š

10.1. Normative References

10.2. Informative References ๐Ÿ“šโœจ

Okay so these are the "for your reading pleasure" references, bestie ๐Ÿค“ They aren't required to implement anything, but they're the receipts behind the benchmarking ideas. Let's go ๐Ÿ’…


Acknowledgments ๐Ÿซถ

Big thank-yous to Trevor Cooper, Sridhar Rao, and Martin Klozik of the VSPERF project for all their contributions to the early testing [VSPERF-b2b]. The queen behavior ๐Ÿ‘‘

Yoshiaki Itou also looked into this topic and dropped some really useful suggestions ๐ŸŒˆ

Maciek Konstantyowicz and Vratko Polรกk gave tons of comments and suggestions from extensive integration testing and the resulting search-algorithm proposals. That's the most up-to-date feedback possible, no cap ๐Ÿ”ฅ

Tim Carlin also gave comments and support for the document ๐Ÿ’œ

Warren Kumari's review made several key passages way more readable ๐Ÿ“–โœจ

David Black, Martin Duke, and Scott Bradner's comments improved the clarity and the configuration advice on trial duration โฑ๏ธ๐ŸŒธ

Maliลกa Vuฤiniฤ‡ suggested extra text on DUT design cautions in the Security Considerations section. Iconic ๐Ÿ™Œ


Author's Address ๐ŸŽ€

  • Al Morton
  • AT&T Labs
  • 200 Laurel Avenue South
  • Middletown, NJ 07748
  • United States of America
  • Phone: +1 732 420 1571
  • Email: acmorton@att.com
๐Ÿ“ฆ where this page comes from