rfc9004xml2.original.xml | rfc9004.xml | |||
---|---|---|---|---|
<?xml version="1.0" encoding="US-ASCII"?> | <?xml version="1.0" encoding="UTF-8"?> | |||
<!DOCTYPE rfc SYSTEM "rfc2629.dtd"> | ||||
<?rfc toc="yes"?> | <!-- updated by Chris 01/08/21 --> | |||
<?rfc tocompact="yes"?> | ||||
<?rfc tocdepth="3"?> | <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent"> | |||
<?rfc tocindent="yes"?> | ||||
<?rfc symrefs="yes"?> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" docName="draft-ietf-bmwg-b2b-fra | |||
<?rfc sortrefs="yes"?> | me-04" | |||
<?rfc comments="yes"?> | number="9004" ipr="trust200902" updates="2544" obsoletes="" submissionType="IETF | |||
<?rfc inline="yes"?> | " | |||
<?rfc compact="yes"?> | category="info" consensus="true" xml:lang="en" tocInclude="true" tocDepth="3" | |||
<?rfc subcompact="no"?> | symRefs="true" sortRefs="true" version="3"> | |||
<rfc category="info" docName="draft-ietf-bmwg-b2b-frame-04" ipr="trust200902" | ||||
updates="2544"> | <!-- xml2rfc v2v3 conversion 3.5.0 --> | |||
<front> | <front> | |||
<title abbrev="B2B Frame Update">Updates for the Back-to-back Frame | <title abbrev="B2B Frame Update">Updates for the Back-to-Back Frame | |||
Benchmark in RFC 2544</title> | Benchmark in RFC 2544</title> | |||
<seriesInfo name="RFC" value="9004"/> | ||||
<author fullname="Al Morton" initials="A." surname="Morton"> | <author fullname="Al Morton" initials="A." surname="Morton"> | |||
<organization>AT&T Labs</organization> | <organization>AT&T Labs</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>200 Laurel Avenue South</street> | <street>200 Laurel Avenue South</street> | |||
<city>Middletown</city> | ||||
<city>Middletown,</city> | ||||
<region>NJ</region> | <region>NJ</region> | |||
<code>07748</code> | <code>07748</code> | |||
<country>United States of America</country> | ||||
<country>USA</country> | ||||
</postal> | </postal> | |||
<phone>+1 732 420 1571</phone> | <phone>+1 732 420 1571</phone> | |||
<facsimile>+1 732 368 1192</facsimile> | ||||
<email>acmorton@att.com</email> | <email>acmorton@att.com</email> | |||
<uri/> | <uri/> | |||
</address> | </address> | |||
</author> | </author> | |||
<date month="May" year="2021"/> | ||||
<date day="18" month="December" year="2020"/> | <keyword>Buffer size</keyword> | |||
<keyword>Buffer delay</keyword> | ||||
<keyword>Correction Factor</keyword> | ||||
<abstract> | <abstract> | |||
<t>Fundamental Benchmarking Methodologies for Network Interconnect | <t>Fundamental benchmarking methodologies for network interconnect | |||
Devices of interest to the IETF are defined in RFC 2544. This memo | 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 | updates the procedures of the test to measure the Back-to-Back Frames | |||
Benchmark of RFC 2544, based on further experience.</t> | benchmark of RFC 2544, based on further experience.</t> | |||
<t>This memo updates Section 26.4 of RFC 2544.</t> | <t>This memo updates Section 26.4 of RFC 2544.</t> | |||
</abstract> | </abstract> | |||
<note title="Requirements Language"> | ||||
<t>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<xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, | ||||
they appear in all capitals, as shown here.</t> | ||||
<t/> | ||||
</note> | ||||
</front> | </front> | |||
<middle> | <middle> | |||
<section title="Introduction"> | <section numbered="true" toc="default"> | |||
<t>The IETF's fundamental Benchmarking Methodologies are defined in | <name>Introduction</name> | |||
<xref target="RFC2544"> </xref>, supported by the terms and definitions | <t>The IETF's fundamental benchmarking methodologies are defined in | |||
in <xref target="RFC1242"/>, and <xref target="RFC2544"/> actually | <xref target="RFC2544" format="default"> </xref>, supported by the terms a | |||
obsoletes an earlier specification, <xref target="RFC1944"/>. Over time, | nd definitions | |||
the benchmarking community has updated <xref target="RFC2544"/> several | in <xref target="RFC1242" format="default"/>. <xref target="RFC2544" form | |||
times, including the Device Reset Benchmark <xref target="RFC6201"/>, | at="default"/> actually | |||
and the important Applicability Statement <xref target="RFC6815"/> | obsoletes an earlier specification, <xref target="RFC1944" format="default | |||
"/>. Over time, | ||||
the benchmarking community has updated <xref target="RFC2544" format="defa | ||||
ult"/> several | ||||
times, including the Device Reset benchmark <xref target="RFC6201" format= | ||||
"default"/> | ||||
and the important Applicability Statement <xref target="RFC6815" format="d | ||||
efault"/> | ||||
concerning use outside the Isolated Test Environment (ITE) required for | concerning use outside the Isolated Test Environment (ITE) required for | |||
accurate benchmarking. Other specifications implicitly update <xref | accurate benchmarking. Other specifications implicitly update <xref target | |||
target="RFC2544"/>, such as the IPv6 Benchmarking Methodologies in <xref | ="RFC2544" format="default"/>, such as the IPv6 benchmarking methodologies in <x | |||
target="RFC5180"/>.</t> | ref target="RFC5180" format="default"/>.</t> | |||
<t>Recent testing experience with the Back-to-Back Frame test and | ||||
<t>Recent testing experience with the Back-to-back Frame test and | benchmark in <xref target="RFC2544" sectionFormat="of" section="26.4"/> in | |||
Benchmark in Section 26.4 of <xref target="RFC2544"/> indicates that an | dicates that an | |||
update is warranted <xref target="OPNFV-2017"/> <xref | update is warranted <xref target="OPNFV-2017" format="default"/> <xref tar | |||
target="VSPERF-b2b"/>. In particular, analysis of the results indicates | get="VSPERF-b2b" format="default"/>. In particular, analysis of the results indi | |||
that buffer size matters when compensating for interruptions of software | cates | |||
packet processing, and this finding increases the importance of the | that buffer size matters when compensating for interruptions of software-p | |||
Back-to-back frame characterization described here. This memo describes | acket processing, and this finding increases the importance of the | |||
additional rationale and provides the updated method.</t> | Back-to-Back Frame characterization described here. This memo provides | |||
additional rationale and the updated method.</t> | ||||
<t><xref target="RFC2544"/> (which obsoletes <xref target="RFC1944"/>) | <t><xref target="RFC2544" format="default"/> | |||
provides its own Requirements Language consistent with <xref | provides its own requirements language consistent with <xref target="RFC21 | |||
target="RFC2119"/>, since <xref target="RFC1944"/> pre-dates <xref | 19" format="default"/>, since <xref target="RFC1944" format="default"/> (which i | |||
target="RFC2119"/> and all three memos share common authorship. | t obsoletes) predates <xref target="RFC2119" format="default"/>. All three memo | |||
Today,<xref target="RFC8174"/> clarifies the usage of Requirements | s share common authorship. | |||
Language, so the requirements presented in this memo are expressed in | Today, <xref target="RFC8174" format="default"/> clarifies the usage of re | |||
<xref target="RFC8174"/> terms, and intended for those | quirements | |||
language, so the requirements language presented in this memo are expresse | ||||
d in accordance with | ||||
<xref target="RFC8174" format="default"/>. They are intended for those | ||||
performing/reporting laboratory tests to improve clarity and | performing/reporting laboratory tests to improve clarity and | |||
repeatability, and for those designing devices that facilitate these | repeatability, and for those designing devices that facilitate these | |||
tests.</t> | tests.</t> | |||
</section> | </section> | |||
<section> | ||||
<name>Requirements Language</name> | ||||
<t> | ||||
The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQU | ||||
IRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL | ||||
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14> | ||||
RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | ||||
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to | ||||
be interpreted as | ||||
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> | ||||
when, and only when, they appear in all capitals, as shown here. | ||||
</t> | ||||
</section> | ||||
<section numbered="true" toc="default"> | ||||
<name>Scope and Goals</name> | ||||
<section title="Scope and Goals"> | ||||
<t>The scope of this memo is to define an updated method to | <t>The scope of this memo is to define an updated method to | |||
unambiguously perform tests, measure the benchmark(s), and report the | unambiguously perform tests, measure the benchmark(s), and report the | |||
results for Back-to-back Frames (presently described in Section 26.4 of | results for Back-to-Back Frames (as described in | |||
<xref target="RFC2544"/>).</t> | <xref target="RFC2544" sectionFormat="of" section="26.4"/>).</t> | |||
<t>The goal is to provide more efficient test procedures where possible | ||||
<t>The goal is to provide more efficient test procedures where possible, | and expand reporting with additional interpretation of the results. | |||
and to expand reporting with additional interpretation of the results. | ||||
The tests described in this memo address the cases in which the maximum | The tests described in this memo address the cases in which the maximum | |||
frame rate of a single ingress port cannot be transferred loss-free to | frame rate of a single ingress port cannot be transferred to | |||
an egress port (for some frame sizes of interest).</t> | an egress port without loss (for some frame sizes of interest).</t> | |||
<t>Benchmarks as described in <xref target="RFC2544" format="default"/> re | ||||
<t><xref target="RFC2544"/> Benchmarks rely on test conditions with | ly on test conditions with | |||
constant frame sizes, with the goal of understanding what network device | constant frame sizes, with the goal of understanding what network-device | |||
capability has been tested. Tests with the smallest size stress the | capability has been tested. Tests with the smallest size stress the | |||
header processing capacity, and tests with the largest size stress the | header-processing capacity, and tests with the largest size stress the | |||
overall bit processing capacity. Tests with sizes in-between may | overall bit-processing capacity. Tests with sizes in between may | |||
determine the transition between these two capacities. However, | determine the transition between these two capacities. | |||
conditions simultaneously sending a mixture of Internet frame sizes | However, | |||
(IMIX), such as those described in <xref target="RFC6985"/>, MUST NOT be | conditions simultaneously sending a mixture of Internet (IMIX) frame sizes | |||
used in Back-to-back Frame testing.</t> | , such as those described in <xref target="RFC6985" format="default"/>, <bcp14>M | |||
UST NOT</bcp14> be | ||||
<t>Section 3 of <xref target="RFC8239"/> describes buffer size testing | used in Back-to-Back Frame testing.</t> | |||
for physical networking devices in a data center. The <xref | <t><xref target="RFC8239" sectionFormat="of" section="3"/> describes buffe | |||
target="RFC8239"/> methods measure buffer latency directly with traffic | r-size testing | |||
for physical networking devices in a data center. Those methods measure bu | ||||
ffer latency directly with traffic | ||||
on multiple ingress ports that overload an egress port on the Device | on multiple ingress ports that overload an egress port on the Device | |||
Under Test (DUT) and are not subject to the revised calculations | Under Test (DUT) and are not subject to the revised calculations | |||
presented in this memo. Likewise, the methods of <xref | presented in this memo. Likewise, the methods of <xref target="RFC8239" fo | |||
target="RFC8239"/> SHOULD be used for test cases where the egress port | rmat="default"/> <bcp14>SHOULD</bcp14> be used for test cases where the egress-p | |||
ort | ||||
buffer is the known point of overload.</t> | buffer is the known point of overload.</t> | |||
</section> | </section> | |||
<section numbered="true" toc="default" anchor="motivation"> | ||||
<section title="Motivation"> | <name>Motivation</name> | |||
<t>Section 3.1 of <xref target="RFC1242"/> describes the rationale for | <t><xref target="RFC1242" sectionFormat="of" section="3.1"/> describes the | |||
the Back-to-back Frames Benchmark. To summarize, there are several | rationale for | |||
the Back-to-Back Frames benchmark. To summarize, there are several | ||||
reasons that devices on a network produce bursts of frames at the | reasons that devices on a network produce bursts of frames at the | |||
minimum allowed spacing; and it is, therefore, worthwhile to understand | minimum allowed spacing; and it is, therefore, worthwhile to understand | |||
the Device Under Test (DUT) limit on the length of such bursts in | the DUT limit on the length of such bursts in | |||
practice. Also, <xref target="RFC1242"/> states: <figure> | practice. The same document also states:</t> | |||
<artwork><![CDATA[ "Tests of this parameter are intended to dete | ||||
rmine the extent | ||||
of data buffering in the device."]]></artwork> | ||||
</figure></t> | ||||
<t>After this test was defined, there have been occasional discussions | <blockquote> | |||
Tests of this parameter are intended to determine the extent | ||||
of data buffering in the device.</blockquote> | ||||
<t>Since this test was defined, there have been occasional discussions | ||||
of the stability and repeatability of the results, both over time and | of the stability and repeatability of the results, both over time and | |||
across labs. Fortunately, the Open Platform for Network Function | across labs. Fortunately, the Open Platform for Network Function | |||
Virtualization (OPNFV) VSPERF project's Continuous Integration (CI) | Virtualization (OPNFV) project on Virtual Switch Performance (VSPERF) Cont | |||
<xref target="VSPERF-CI"/> testing routinely repeats Back-to-back Frame | inuous Integration (CI) | |||
<xref target="VSPERF-CI" format="default"/> testing routinely repeats Back | ||||
-to-Back Frame | ||||
tests to verify that test functionality has been maintained through | tests to verify that test functionality has been maintained through | |||
development of the test control programs. These tests were used as a | development of the test-control programs. These tests were used as a | |||
basis to evaluate stability and repeatability, even across lab set-ups | basis to evaluate stability and repeatability, even across lab setups | |||
when the test platform was migrated to new DUT hardware at the end of | when the test platform was migrated to new DUT hardware at the end of | |||
2016.</t> | 2016.</t> | |||
<t>When the VSPERF CI results were examined <xref target="VSPERF-b2b" form | ||||
<t>When the VSPERF CI results were examined <xref target="VSPERF-b2b"/>, | at="default"/>, | |||
several aspects of the results were considered notable:<list | several aspects of the results were considered notable:</t> | |||
style="numbers"> | <ol spacing="normal" type="1"><li>Back-to-Back Frame benchmark was very co | |||
<t>Back-to-back Frame Benchmark was very consistent for some fixed | nsistent for some fixed | |||
frame sizes, and somewhat variable for other frame sizes.</t> | frame sizes, and somewhat variable for other frame sizes.</li> | |||
<li>The number of Back-to-Back Frames with zero loss reported for | ||||
<t>The number of Back-to-back Frames with zero loss reported for | ||||
large frame sizes was unexpectedly long (translating to 30 seconds | large frame sizes was unexpectedly long (translating to 30 seconds | |||
of buffer time), and no explanation or measurement limit condition | of buffer time), and no explanation or measurement limit condition | |||
was indicated. It was important that the buffering time calculations | was indicated. It was important that the buffering time calculations | |||
were part of the referenced testing and analysis<xref | were part of the referenced testing and analysis <xref target="VSPERF- | |||
target="VSPERF-b2b"> </xref>, because the calculated buffer times of | b2b" format="default"> </xref>, because the calculated buffer time of | |||
30 seconds for some frame sizes were clearly wrong or highly | 30 seconds for some frame sizes was clearly wrong or highly | |||
suspect. On the other hand, a result expressed only as a large | suspect. On the other hand, a result expressed only as a large | |||
number of Back-to-back Frames does not permit such an easy | number of Back-to-Back Frames does not permit such an easy | |||
comparison with reality.</t> | comparison with reality.</li> | |||
<li>Calculation of the extent of buffer time in the DUT helped to | ||||
<t>Calculation of the extent of buffer time in the DUT helped to | explain the results observed with all frame sizes. For example, | |||
explain the results observed with all frame sizes (for example, | tests with some frame sizes cannot exceed the frame-header-processing | |||
tests with some frame sizes cannot exceed the frame header | rate of the DUT, thus, no buffering occurs. Therefore, | |||
processing rate of the DUT and thus no buffering occurs; therefore, | the results depended on the test equipment and not the DUT.</li> | |||
the results depended on the test equipment and not the DUT).</t> | <li>It was found that a better estimate of the DUT buffer time could | |||
<t>It was found that a better estimate of the DUT buffer time could | ||||
be calculated using measurements of both the longest burst in frames | be calculated using measurements of both the longest burst in frames | |||
without loss and results from the Throughput tests conducted | without loss and results from the Throughput tests conducted | |||
according to Section 26.1 of <xref target="RFC2544"/>. It is | according to <xref target="RFC2544" sectionFormat="of" section="26.1"/ | |||
apparent that the DUT's frame processing rate empties the buffer | >. It is | |||
during a trial and tends to increase the "implied" buffer size | apparent that the DUT's frame-processing rate empties the buffer | |||
estimate (measured according to Section 26.4 of <xref | during a trial and tends to increase the "implied" buffer-size | |||
target="RFC2544"/> because many frames have departed the buffer when | estimate (measured according to <xref target="RFC2544" sectionFormat=" | |||
of" section="26.4"/> because many frames have departed the buffer when | ||||
the burst of frames ends). A calculation using the Throughput | the burst of frames ends). A calculation using the Throughput | |||
measurement can reveal a "corrected" buffer size estimate.</t> | measurement can reveal a "corrected" buffer-size estimate.</li> | |||
</list></t> | </ol> | |||
<t>Further, if the Throughput tests of <xref target="RFC2544" sectionForma | ||||
<t>Further, if the Throughput tests of Section 26.1 of <xref | t="of" section="26.1"/> are conducted as a prerequisite, the number of | |||
target="RFC2544"/> are conducted as a prerequisite test, the number of | frame sizes required for Back-to-Back Frame benchmarking can be reduced | |||
frame sizes required for Back-to-back Frame Benchmarking can be reduced | ||||
to one or more of the small frame sizes, or the results for large frame | to one or more of the small frame sizes, or the results for large frame | |||
sizes can be noted as invalid in the results if tested anyway (these are | sizes can be noted as invalid in the results if tested anyway. These are | |||
the larger frame sizes for which the back-to-back frame rate cannot | the larger frame sizes for which the Back-to-Back Frame rate cannot | |||
exceed the frame header processing rate of the DUT and little or no | exceed the frame-header-processing rate of the DUT and little or no | |||
buffering occurs).</t> | buffering occurs.</t> | |||
<t>The material below provides the details of the calculation to | <t>The material below provides the details of the calculation to | |||
estimate the actual buffer storage available in the DUT, using results | estimate the actual buffer storage available in the DUT, using results | |||
from the Throughput tests for each frame size, and the maximum | from the Throughput tests for each frame size and the Max | |||
theoretical frame rate for the DUT links (which constrain the minimum | Theoretical Frame Rate for the DUT links (which constrain the minimum | |||
frame spacing).</t> | frame spacing).</t> | |||
<t>In reality, there are many buffers and packet-header-processing steps | ||||
<t>In reality, there are many buffers and packet header processing steps | ||||
in a typical DUT. The simplified model used in these calculations for | in a typical DUT. The simplified model used in these calculations for | |||
the DUT includes a packet header processing function with limited rate | the DUT includes a packet-header-processing function with limited rate | |||
of operation, as shown below:</t> | of operation, as shown in <xref target="simplified-model"/>.</t> | |||
<figure anchor="simplified-model"> | ||||
<t><figure> | <name>Simplified Model for DUT Testing</name> | |||
<artwork><![CDATA[ |------------ DUT --------| | <artwork name="" type="" align="left" alt="" ><![CDATA[ | |||
|------------ DUT --------| | ||||
Generator -> Ingress -> Buffer -> HeaderProc -> Egress -> Receiver | Generator -> Ingress -> Buffer -> HeaderProc -> Egress -> Receiver | |||
]]></artwork> | ]]></artwork> | |||
</figure></t> | </figure> | |||
<t>So, in the Back-to-Back Frame testing:</t> | ||||
<t>So, in the Back-to-back Frame testing:<list style="numbers"> | <ol spacing="normal" type="1"><li>The ingress burst arrives at Max Theoret | |||
<t>The ingress burst arrives at Max Theoretical Frame Rate, and | ical Frame Rate, and | |||
initially the frames are buffered.</t> | initially the frames are buffered.</li> | |||
<li>The packet-header-processing function (HeaderProc) operates at | ||||
<t>The packet header processing function (HeaderProc) operates at | the "Measured Throughput" (<xref target="RFC2544" sectionFormat="of" s | |||
the “Measured Throughput” (Section 26.1 of <xref | ection="26.1"/>), removing frames from the buffer (this is the | |||
target="RFC2544"/>), removing frames from the buffer (this is the | best approximation we have, another acceptable approximation is the re | |||
best approximation we have).</t> | ceived frame rate | |||
during Back-to-back Frame testing, if Measured Throughput is | ||||
<t>Frames that have been processed are clearly not in the buffer, so | not available). </li> | |||
the Corrected DUT buffer time equation (Section 5.4) estimates and | <li>Frames that have been processed are clearly not in the buffer, so | |||
the Corrected DUT Buffer Time equation (<xref target="bench-calc" />) | ||||
estimates and | ||||
removes the frames that the DUT forwarded on egress during the | removes the frames that the DUT forwarded on egress during the | |||
burst. We define buffer time as the number of frames occupying the | burst. We define buffer time as the number of frames occupying the | |||
buffer divided by the Maximum Theoretical Frame Rate (on ingress) | buffer divided by the Max Theoretical Frame Rate (on ingress) | |||
for the frame size under test.</t> | for the frame size under test.</li> | |||
<li>A helpful concept is the buffer-filling rate, which is the | ||||
<t>A helpful concept is the buffer filling rate, which is the | ||||
difference between the Max Theoretical Frame Rate (ingress) and the | difference between the Max Theoretical Frame Rate (ingress) and the | |||
Measured Throughput (HeaderProc on egress). If the actual buffer | Measured Throughput (HeaderProc on egress). If the actual buffer | |||
size in frames was known, the time to fill the buffer during a | 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 | measurement can be calculated using the filling rate, as a check on | |||
measurements. However, the buffer in the model represents many | measurements. However, the buffer in the model represents many | |||
buffers of different sizes in the DUT data path.</t> | buffers of different sizes in the DUT data path.</li> | |||
</list></t> | </ol> | |||
<t>Knowledge of approximate buffer storage size (in time or bytes) may | <t>Knowledge of approximate buffer storage size (in time or bytes) may | |||
be useful to estimate whether frame losses will occur if DUT forwarding | be useful in estimating whether frame losses will occur if DUT forwarding | |||
is temporarily suspended in a production deployment, due to an | is temporarily suspended in a production deployment due to an | |||
unexpected interruption of frame processing (an interruption of duration | unexpected interruption of frame processing (an interruption of duration | |||
greater than the estimated buffer would certainly cause lost frames). In | greater than the estimated buffer would certainly cause lost frames). In | |||
Section 5, the calculations for the correct buffer time use the | <xref target="b2b"/>, the calculations for the correct buffer time use the | |||
combination of offered load at Max Theoretical Frame Rate and header | combination of offered load at Max Theoretical Frame Rate and header-proce | |||
processing speed at 100% of Measured Throughput. Other combinations are | ssing speed at 100% of Measured Throughput. Other combinations are | |||
possible, such as changing the percent of measured Throughput to account | possible, such as changing the percent of Measured Throughput to account | |||
for other processes reducing the header processing rate.</t> | for other processes reducing the header processing rate.</t> | |||
<t>The presentation of OPNFV VSPERF evaluation and development of | <t>The presentation of OPNFV VSPERF evaluation and development of | |||
enhanced search algorithms <xref target="VSPERF-BSLV"/> was discussed at | enhanced search algorithms <xref target="VSPERF-BSLV" format="default"/> w | |||
IETF-102. The enhancements are intended to compensate for transient | as given and discussed at | |||
interrupts that may cause loss at near-Throughput levels of offered | IETF 102. The enhancements are intended to compensate for transient | |||
processor interrupts that may cause loss at near-Throughput levels of offe | ||||
red | ||||
load. Subsequent analysis of the results indicates that buffers within | load. Subsequent analysis of the results indicates that buffers within | |||
the DUT can compensate for some interrupts, and this finding increases | the DUT can compensate for some interrupts, and this finding increases | |||
the importance of the Back-to-back frame characterization described | the importance of the Back-to-Back Frame characterization described | |||
here.</t> | here.</t> | |||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title="Prerequisites"> | <name>Prerequisites</name> | |||
<t>The Test Setup MUST be consistent with Figure 1 of <xref | <t>The test setup <bcp14>MUST</bcp14> be consistent with Figure 1 of <xref | |||
target="RFC2544"/>, or Figure 2 when the tester's sender and receiver | target="RFC2544" format="default"/>, or Figure 2 of that document when the test | |||
er's sender and receiver | ||||
are different devices. Other mandatory testing aspects described in | are different devices. Other mandatory testing aspects described in | |||
<xref target="RFC2544"/> MUST be included, unless explicitly modified in | <xref target="RFC2544" format="default"/> <bcp14>MUST</bcp14> be included, unless explicitly modified in | |||
the next section.</t> | the next section.</t> | |||
<t>The ingress and egress link speeds and link-layer protocols <bcp14>MUST | ||||
<t>The ingress and egress link speeds and link layer protocols MUST be | </bcp14> be | |||
specified and used to compute the maximum theoretical frame rate when | specified and used to compute the Max Theoretical Frame Rate when | |||
respecting the minimum inter-frame gap.</t> | respecting the minimum interframe gap.</t> | |||
<t>The test results for the Throughput benchmark conducted according to | ||||
<t>The test results for the Throughput Benchmark conducted according to | <xref target="RFC2544" sectionFormat="of" section="26.1"/> for all frame s | |||
Section 26.1 of <xref target="RFC2544"/> for all <xref | izes <bcp14>RECOMMENDED</bcp14> by <xref target="RFC2544" format="default"/> <bc | |||
target="RFC2544"/>-RECOMMENDED frame sizes MUST be available to reduce | p14>MUST</bcp14> be available to reduce | |||
the tested frame size list, or to note invalid results for individual | the tested-frame-size list or to note invalid results for individual | |||
frame sizes (because the burst length may be essentially infinite for | frame sizes (because the burst length may be essentially infinite for | |||
large frame sizes).</t> | large frame sizes).</t> | |||
<t>Note that:</t> | ||||
<t>Note that:<list style="symbols"> | <ul spacing="normal"> | |||
<t>the Throughput and the Back-to-back Frame measurement | <li>the Throughput and the Back-to-Back Frame measurement-configuration | |||
configuration traffic characteristics (unidirectional or | traffic characteristics (unidirectional or | |||
bi-directional, and number of flows generated) MUST match.</t> | bidirectional, and number of flows generated) <bcp14>MUST</bcp14> matc | |||
h.</li> | ||||
<t>the Throughput measurement MUST be under zero-loss conditions, | <li>the Throughput measurement <bcp14>MUST</bcp14> be taken under zero-l | |||
according to Section 26.1 of <xref target="RFC2544"/>.</t> | oss conditions, | |||
</list>The Back-to-back Benchmark described in Section 3.1 of <xref | according to <xref target="RFC2544" sectionFormat="of" section="26.1"/ | |||
target="RFC1242"/> MUST be measured directly by the tester, where buffer | >.</li> | |||
size is inferred from Back-to-back Frame bursts and associated packet | </ul> | |||
loss measurements. Therefore, sources of packet loss that are unrelated | <t>The Back-to-Back Benchmark described in <xref target="RFC1242" sectionF | |||
to consistent evaluation of buffer size SHOULD be identified and removed | ormat="of" section="3.1"/> <bcp14>MUST</bcp14> be measured directly by the teste | |||
or mitigated. Example sources include:<list style="symbols"> | r, where buffer | |||
<t>On-path active components that are external to the DUT</t> | size is inferred from Back-to-Back Frame bursts and associated packet-loss | |||
measurements. Therefore, sources of frame loss that are unrelated | ||||
<t>Operating system environment interrupting DUT operation</t> | to consistent evaluation of buffer size <bcp14>SHOULD</bcp14> be identifie | |||
d and removed | ||||
<t>Shared resource contention between the DUT and other off-path | or mitigated. Example sources include:</t> | |||
component(s) impacting DUT's behaviour, sometimes called the "noisy | <ul spacing="normal"> | |||
neighbour" problem with virtualized network functions.</t> | <li>On-path active components that are external to the DUT</li> | |||
</list></t> | <li>Operating-system environment interrupting DUT operation</li> | |||
<li>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.</li> | ||||
</ul> | ||||
<t>Mitigations applicable to some of the sources above are discussed in | <t>Mitigations applicable to some of the sources above are discussed in | |||
Section 5.2, with the other measurement requirements described below in | <xref target="frame-size"/>, with the other measurement requirements descr | |||
Section 5.</t> | ibed below in | |||
<xref target="b2b"/>.</t> | ||||
</section> | </section> | |||
<section numbered="true" toc="default" anchor="b2b"> | ||||
<section title="Back-to-back Frames"> | <name>Back-to-Back Frames</name> | |||
<t>Objective: To characterize the ability of a DUT to process | <t>Objective: To characterize the ability of a DUT to process | |||
back-to-back frames as defined in <xref target="RFC1242"/>.</t> | Back-to-Back Frames as defined in <xref target="RFC1242" format="default"/ | |||
>.</t> | ||||
<t>The Procedure follows.</t> | <t>The procedure follows.</t> | |||
<section numbered="true" toc="default"> | ||||
<section title="Preparing the list of Frame sizes"> | <name>Preparing the List of Frame Sizes</name> | |||
<t>From the list of RECOMMENDED frame sizes (Section 9 of <xref | <t>From the list of <bcp14>RECOMMENDED</bcp14> frame sizes (<xref target | |||
target="RFC2544"/>), select the subset of frame sizes whose measured | ="RFC2544" sectionFormat="of" section="9"/>), select the subset of frame sizes w | |||
Throughput (during prerequisite testing) was less than the Maximum | hose Measured | |||
Theoretical Frame Rate of the DUT/test-set-up. These are the only | 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 | frame sizes where it is possible to produce a burst of frames that | |||
cause the DUT buffers to fill and eventually overflow, producing one | cause the DUT buffers to fill and eventually overflow, producing one | |||
or more discarded frames.</t> | or more discarded frames.</t> | |||
</section> | </section> | |||
<section numbered="true" toc="default" anchor="frame-size"> | ||||
<section title="Test for a Single Frame Size"> | <name>Test for a Single Frame Size</name> | |||
<t>Each trial in the test requires the tester to send a burst of | <t>Each trial in the test requires the tester to send a burst of | |||
frames (after idle time) with the minimum inter-frame gap, and to | frames (after idle time) with the minimum interframe gap and to | |||
count the corresponding frames forwarded by the DUT.</t> | count the corresponding frames forwarded by the DUT.</t> | |||
<t>The duration of the trial includes three <bcp14>REQUIRED</bcp14> comp | ||||
<t>The duration of the trial includes three REQUIRED components: <list | onents: </t> | |||
style="numbers"> | <ol spacing="normal" type="1"><li>The time to send the burst of frames ( | |||
<t>The time to send the burst of frames (at the back-to-back | at the back-to-back | |||
rate), determined by the search algorithm.</t> | rate), determined by the search algorithm.</li> | |||
<li>The time to receive the transferred burst of frames (at the | ||||
<t>The time to receive the transferred burst of frames (at the | <xref target="RFC2544" format="default"/> Throughput rate), possibly | |||
<xref target="RFC2544"/> Throughput rate), possibly truncated by | truncated by | |||
buffer overflow, and certainly including the latency of the | buffer overflow, and certainly including the latency of the | |||
DUT.</t> | DUT.</li> | |||
<li>At least 2 seconds not overlapping the time to receive the | ||||
<t>At least 2 seconds not overlapping the time to receive the | burst (Component 2, above), to ensure that DUT buffers have depleted | |||
burst (2.), to ensure that DUT buffers have depleted. Longer times | . Longer times | |||
MUST be used when conditions warrant, such as when buffer times | <bcp14>MUST</bcp14> be used when conditions warrant, such as when bu | |||
ffer times | ||||
>2 seconds are measured or when burst sending times are >2 | >2 seconds are measured or when burst sending times are >2 | |||
seconds, but care is needed since this time component directly | seconds, but care is needed, since this time component directly | |||
increases trial duration and many trials and tests comprise a | increases trial duration, and many trials and tests comprise a | |||
complete benchmarking study.</t> | complete benchmarking study.</li> | |||
</list>The upper search limit for the time to send each burst MUST | </ol> | |||
be configurable, to values as high as 30 seconds (buffer time results | <t>The upper search limit for the time to send each burst <bcp14>MUST</b | |||
cp14> | ||||
be configurable to values as high as 30 seconds (buffer time results | ||||
reported at or near the configured upper limit are likely invalid, and | reported at or near the configured upper limit are likely invalid, and | |||
the test MUST be repeated with a higher search limit).</t> | the test <bcp14>MUST</bcp14> be repeated with a higher search limit).</t | |||
> | ||||
<t>If all frames have been received, the tester increases the length | <t>If all frames have been received, the tester increases the length | |||
of the burst according to the search algorithm and performs another | of the burst according to the search algorithm and performs another | |||
trial.</t> | trial.</t> | |||
<t>If the received frame count is less than the number of frames in | <t>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 | the burst, then the limit of DUT processing and buffering may have | |||
been exceeded, and the burst length is determined by the search | been exceeded, and the burst length for the next trial is determined by | |||
algorithm for the next trial (the burst length is typically reduced, | the search | |||
algorithm (the burst length is typically reduced, | ||||
but see below).</t> | but see below).</t> | |||
<t>Classic search algorithms have been adapted for use in | <t>Classic search algorithms have been adapted for use in | |||
benchmarking, where the search requires discovery of a pair of | benchmarking, where the search requires discovery of a pair of | |||
outcomes, one with no loss and another with loss, at load conditions | outcomes, one with no loss and another with loss, at load conditions | |||
within the acceptable tolerance or accuracy. Conditions encountered | within the acceptable tolerance or accuracy. Conditions encountered | |||
when benchmarking the Infrastructure for Network Function | when benchmarking the infrastructure for network function | |||
Virtualization require algorithm enhancement. Fortunately, the | virtualization require algorithm enhancement. Fortunately, the | |||
adaptation of Binary Search, and an enhanced Binary Search with Loss | adaptation of Binary Search, and an enhanced Binary Search with Loss | |||
Verification have been specified in clause 12.3 of <xref | Verification, have been specified in Clause 12.3 of <xref target="TST009 | |||
target="TST009"/>. These algorithms can easily be used for | " format="default"/>. These algorithms can easily be used for | |||
Back-to-back Frame benchmarking by replacing the Offered Load level | Back-to-Back Frame benchmarking by replacing the offered load level | |||
with burst length in frames. <xref target="TST009"/> Annex B describes | with burst length in frames. <xref target="TST009" format="default"/>, A | |||
nnex B describes | ||||
the theory behind the enhanced Binary Search with Loss Verification | the theory behind the enhanced Binary Search with Loss Verification | |||
algorithm.</t> | algorithm.</t> | |||
<t>There are also promising works in progress that may prove useful in | ||||
<t>There is also promising work-in-progress that may prove useful in | Back-to-Back Frame benchmarking. <xref target="I-D.vpolak-mkonstan-bmwg- | |||
Back-to-back Frame benchmarking. <xref | mlrsearch" format="default"/> and <xref target="I-D.vpolak-bmwg-plrsearch" forma | |||
target="I-D.vpolak-mkonstan-bmwg-mlrsearch"/> and <xref | t="default"/> are two such examples.</t> | |||
target="I-D.vpolak-bmwg-plrsearch"/> are two such examples.</t> | <t>Either the <xref target="TST009" format="default"/> Binary Search or | |||
Binary Search | ||||
<t>Either the <xref target="TST009"/> Binary Search or Binary Search | with Loss Verification algorithms <bcp14>MUST</bcp14> be used, and input | |||
with Loss Verification algorithms MUST be used, and input parameters | parameters | |||
to the algorithm(s) MUST be reported.</t> | to the algorithm(s) <bcp14>MUST</bcp14> be reported.</t> | |||
<t>The tester usually imposes a (configurable) minimum step size for | <t>The tester usually imposes a (configurable) minimum step size for | |||
burst length, and the step size MUST be reported with the results (as | burst length, and the step size <bcp14>MUST</bcp14> be reported with the results (as | |||
this influences the accuracy and variation of test results).</t> | this influences the accuracy and variation of test results).</t> | |||
<t>The original <xref target="RFC2544" sectionFormat="of" section="26.4" | ||||
<t>The original Section 26.4 of <xref target="RFC2544"/> definition is | /> definition is | |||
stated below:<list style="empty"> | stated below:</t> | |||
<t>The Back-to-back Frame value is the longest burst of frames | <blockquote> | |||
that the DUT can successfully process and buffer without frame | The back-to-back value is the number of frames in the longest burst tha | |||
loss, as determined from the series of trials.</t> | t the DUT will handle without the loss of any frames. | |||
</list></t> | </blockquote> | |||
</section> | </section> | |||
<section numbered="true" toc="default" anchor="test-rep"> | ||||
<section title="Test Repetition and Benchmark"> | <name>Test Repetition and Benchmark</name> | |||
<t>On this topic, Section 26.4 of <xref target="RFC2544"/> | <t>On this topic, <xref target="RFC2544" sectionFormat="of" section="26. | |||
requires:<list style="empty"> | 4"/> | |||
<t>The trial length MUST be at least 2 seconds and SHOULD be | requires:</t> | |||
<blockquote> | ||||
The trial length <bcp14>MUST</bcp14> be at least 2 seconds and <bcp14> | ||||
SHOULD</bcp14> be | ||||
repeated at least 50 times with the average of the recorded values | repeated at least 50 times with the average of the recorded values | |||
being reported.</t> | being reported.</blockquote> | |||
</list></t> | <t>Therefore, the Back-to-Back Frame benchmark is the average of burst-l | |||
ength values over repeated tests to determine the longest burst of | ||||
<t>Therefore, the Back-to-back Frame Benchmark is the average of burst | ||||
length values over repeated tests to determine the longest burst of | ||||
frames that the DUT can successfully process and buffer without frame | frames that the DUT can successfully process and buffer without frame | |||
loss. Each of the repeated tests completes an independent search | loss. Each of the repeated tests completes an independent search | |||
process.</t> | process.</t> | |||
<!--[rfced] *AD - FYI, we edited the following sentence for clarity. Please chec k that the meaning of the requirements language has not changed. AD approval is necessary for changes to requirements language. | ||||
<t>In this update, the test MUST be repeated N times (the number of | Original: | |||
repetitions is now a variable that must be reported),for each frame | In this update, the test MUST be repeated N times (the number of | |||
size in the subset list, and each Back-to-back Frame value made | repetitions is now a variable that must be reported),for each frame | |||
size in the subset list, and each Back-to-back Frame value made | ||||
available for further processing (below). | ||||
Changed to: | ||||
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). | ||||
--> | ||||
<t>In this update, the test <bcp14>MUST</bcp14> 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 <bcp14>MUST</ | ||||
bcp14> be made | ||||
available for further processing (below).</t> | available for further processing (below).</t> | |||
</section> | </section> | |||
<section numbered="true" toc="default" anchor="bench-calc"> | ||||
<section title="Benchmark Calculations"> | <name>Benchmark Calculations</name> | |||
<t>For each frame size, calculate the following summary statistics for | <t>For each frame size, calculate the following summary statistics for | |||
longest Back-to-back Frame values over the N tests:<list | longest Back-to-Back Frame values over the N tests:</t> | |||
style="symbols"> | <ul spacing="normal"> | |||
<t>Average (Benchmark)</t> | <li>Average (Benchmark)</li> | |||
<li>Minimum</li> | ||||
<t>Minimum</t> | <li>Maximum</li> | |||
<li>Standard Deviation</li> | ||||
<t>Maximum</t> | </ul> | |||
<t>Standard Deviation</t> | ||||
</list></t> | ||||
<t>Further, calculate the Implied DUT Buffer Time and the Corrected | <t>Further, calculate the Implied DUT Buffer Time and the Corrected | |||
DUT Buffer Time in seconds, as follows:<figure> | DUT Buffer Time in seconds, as follows:</t> | |||
<artwork><![CDATA[Implied DUT Buffer Time = | <sourcecode> | |||
Implied DUT buffer time = | ||||
Average num of Back-to-back Frames / Max Theoretical Frame Rate | Average num of Back-to-back Frames / Max Theoretical Frame Rate | |||
]]></artwork> | </sourcecode> | |||
</figure>The formula above is simply expressing the burst of frames | <t>The formula above is simply expressing the burst of frames | |||
in units of time.</t> | in units of time.</t> | |||
<t>The next step is to apply a correction factor that accounts for the | <t>The next step is to apply a correction factor that accounts for the | |||
DUT's frame forwarding operation during the test (assuming the simple | DUT's frame forwarding operation during the test (assuming the simple | |||
model of the DUT composed of a buffer and a forwarding function, | model of the DUT composed of a buffer and a forwarding function, | |||
described in Section 3).</t> | described in <xref target="motivation"/>).</t> | |||
<artwork name="" type="" align="left" alt=""><![CDATA[Corrected DUT Buff | ||||
<t><figure> | er Time = | |||
<artwork><![CDATA[Corrected DUT Buffer Time = | ||||
/ \ | / \ | |||
Implied DUT |Implied DUT Measured Throughput | | Implied DUT |Implied DUT Measured Throughput | | |||
= Buffer Time - |Buffer Time * -------------------------- | | = Buffer Time - |Buffer Time * -------------------------- | | |||
| Max Theoretical Frame Rate | | | Max Theoretical Frame Rate | | |||
\ /]]></artwork> | \ /]]></artwork> | |||
</figure></t> | <t>where:</t> | |||
<ol spacing="normal" type="1"><li>The "Measured Throughput" is the <xref | ||||
<t>where:<list style="numbers"> | target="RFC2544" format="default"/> Throughput Benchmark for the frame size tes | |||
<t>The “Measured Throughput” is the <xref | ted, | |||
target="RFC2544"/> Throughput Benchmark for the frame size tested, | ||||
as augmented by methods including the Binary Search with Loss | as augmented by methods including the Binary Search with Loss | |||
Verification algorithm in <xref target="TST009"/> where | Verification algorithm in <xref target="TST009" format="default"/> w | |||
applicable, and MUST be expressed in frames per second in this | here | |||
equation.</t> | applicable and <bcp14>MUST</bcp14> be expressed in frames per second | |||
in this | ||||
<t>The “Max Theoretical Frame Rate” is a calculated | equation.</li> | |||
value for the interface speed and link layer technology used, and | <li>The "Max Theoretical Frame Rate" is a calculated | |||
MUST be expressed in frames per second in this equation.</t> | value for the interface speed and link-layer technology used, and it | |||
</list></t> | <bcp14>MUST</bcp14> be expressed in frames per second in this equati | |||
on.</li> | ||||
</ol> | ||||
<t>The term on the far right in the formula for Corrected DUT Buffer | <t>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 | Time accounts for all the frames in the burst that were transmitted by | |||
the DUT *while the Burst of frames were sent in*. So, these frames are | the DUT <strong>while the burst of frames was sent in</strong>. So | |||
not in the buffer and the buffer size is more accurately estimated by | , these frames are | |||
excluding them.</t> | 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 <xref target="RFC2889" format="default"/> measured during Back-to-back | ||||
Frame testing).</t> | ||||
</section> | </section> | |||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title="Reporting"> | <name>Reporting</name> | |||
<t>The back-to-back frame results SHOULD be reported in the format of a | <t>The Back-to-Back Frame results <bcp14>SHOULD</bcp14> be reported in the | |||
table with a row for each of the tested frame sizes. There SHOULD be | format of a | |||
columns for the frame size and for the resultant average frame count for | table with a row for each of the tested frame sizes. There <bcp14>SHOULD</ | |||
bcp14> be | ||||
columns for the frame size and the resultant average frame count for | ||||
each type of data stream tested.</t> | each type of data stream tested.</t> | |||
<t>The number of tests averaged for the benchmark, N, <bcp14>MUST</bcp14> | ||||
<t>The number of tests Averaged for the Benchmark, N, MUST be | be | |||
reported.</t> | reported.</t> | |||
<t>The minimum, maximum, and standard deviation across all complete | ||||
<t>The Minimum, Maximum, and Standard Deviation across all complete | tests <bcp14>SHOULD</bcp14> also be reported (they are referred to as "Min | |||
tests SHOULD also be reported (they are referred to as "Min,Max,StdDev" | ,Max,StdDev" | |||
in the table below).</t> | in <xref target="frame-results"/>).</t> | |||
<t>The Corrected DUT Buffer Time <bcp14>SHOULD</bcp14> also be reported.</ | ||||
<t>The Corrected DUT Buffer Time SHOULD also be reported.</t> | t> | |||
<t>If the tester operates using a limited maximum burst length in | <t>If the tester operates using a limited maximum burst length in | |||
frames, then this maximum length SHOULD be reported.</t> | frames, then this maximum length <bcp14>SHOULD</bcp14> be reported.</t> | |||
<table align="center" anchor="frame-results"> | ||||
<texttable style="full" title="Back-to-Back Frame Results"> | <name>Back-to-Back Frame Results</name> | |||
<ttcol>Frame Size, octets</ttcol> | <thead> | |||
<tr> | ||||
<ttcol>Ave B2B Length, frames</ttcol> | <th align="left">Frame Size, octets</th> | |||
<th align="left">Ave B2B Length, frames</th> | ||||
<ttcol>Min,Max,StdDev</ttcol> | <th align="left">Min,Max,StdDev</th> | |||
<th align="left">Corrected Buff Time, Sec</th> | ||||
<ttcol>Corrected Buff Time, Sec</ttcol> | </tr> | |||
</thead> | ||||
<c>64</c> | <tbody> | |||
<tr> | ||||
<c>26000</c> | <td align="left">64</td> | |||
<td align="left">26000</td> | ||||
<c>25500,27000,20</c> | <td align="left">25500,27000,20</td> | |||
<td align="left">0.00004</td> | ||||
<c>0.00004</c> | </tr> | |||
</texttable> | </tbody> | |||
</table> | ||||
<t>Static and configuration parameters (reported with the table | ||||
above):</t> | ||||
<t>Number of test repetitions, N</t> | ||||
<t>Minimum Step Size (during searches), in frames.</t> | ||||
<t>Static and configuration parameters (reported with <xref target="frame- | ||||
results"/>):</t> | ||||
<ul> | ||||
<li>Number of test repetitions, N</li> | ||||
<li>Minimum Step Size (during searches), in frames.</li> | ||||
</ul> | ||||
<t/> | <t/> | |||
<t>If the tester has a specific (actual) frame rate of interest (less | <t>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 | than the Throughput rate), it is useful to estimate the buffer time at | |||
that actual frame rate:</t> | that actual frame rate:</t> | |||
<artwork name="" type="" align="left" alt=""><![CDATA[Actual Buffer Time = | ||||
<figure> | ||||
<artwork><![CDATA[Actual Buffer Time = | ||||
Max Theoretical Frame Rate | Max Theoretical Frame Rate | |||
= Corrected DUT Buffer Time * -------------------------- | = Corrected DUT Buffer Time * -------------------------- | |||
Actual Frame Rate | Actual Frame Rate | |||
]]></artwork> | ]]></artwork> | |||
</figure> | ||||
<t>and report this value, properly labeled.</t> | <t>and report this value, properly labeled.</t> | |||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title="Security Considerations"> | <name>Security Considerations</name> | |||
<t>Benchmarking activities as described in this memo are limited to | <t>Benchmarking activities as described in this memo are limited to | |||
technology characterization using controlled stimuli in a laboratory | technology characterization using controlled stimuli in a laboratory | |||
environment, with dedicated address space and the other constraints | environment, with dedicated address space and the other constraints | |||
of<xref target="RFC2544"/>.</t> | of <xref target="RFC2544" format="default"/>.</t> | |||
<t>The benchmarking network topology will be an independent test setup | <t>The benchmarking network topology will be an independent test setup | |||
and MUST NOT be connected to devices that may forward the test traffic | and <bcp14>MUST NOT</bcp14> be connected to devices that may forward the t | |||
into a production network, or misroute traffic to the test management | est traffic | |||
network. See <xref target="RFC6815"/>.</t> | into a production network or misroute traffic to the test management | |||
network. See <xref target="RFC6815" format="default"/>.</t> | ||||
<t>Further, benchmarking is performed on an "opaque-box" (a.k.a. | <t>Further, benchmarking is performed on an "opaque-box" (a.k.a. | |||
"black-box") basis, relying solely on measurements observable external | "black-box") basis, relying solely on measurements observable external | |||
to the DUT/SUT.</t> | to the Device or System Under Test (SUT).</t> | |||
<t>The DUT developers are commonly independent from the personnel and | <t>The DUT developers are commonly independent from the personnel and | |||
institutions conducting benchmarking studies. DUT developers might have | institutions conducting benchmarking studies. DUT developers might have | |||
incentives to alter the performance of the DUT if the test conditions | incentives to alter the performance of the DUT if the test conditions | |||
can be detected. Special capabilities SHOULD NOT exist in the DUT/SUT | can be detected. Special capabilities <bcp14>SHOULD NOT</bcp14> exist in t he DUT/SUT | |||
specifically for benchmarking purposes. Procedures described in this | specifically for benchmarking purposes. Procedures described in this | |||
document are not designed to detect such activity. Additional testing | document are not designed to detect such activity. Additional testing | |||
outside of the scope of this document would be needed and has been used | outside of the scope of this document would be needed and has been used | |||
successfully in the past to discover such malpractices.</t> | successfully in the past to discover such malpractices.</t> | |||
<t>Any implications for network security arising from the DUT/SUT <bcp14>S | ||||
<t>Any implications for network security arising from the DUT/SUT SHOULD | HOULD</bcp14> | |||
be identical in the lab and in production networks.</t> | be identical in the lab and in production networks.</t> | |||
</section> | </section> | |||
<section anchor="IANA" numbered="true" toc="default"> | ||||
<section anchor="IANA" title="IANA Considerations"> | <name>IANA Considerations</name> | |||
<t>This memo makes no requests of IANA.</t> | <t>This document has no IANA actions.</t> | |||
</section> | ||||
<section title="Acknowledgments"> | ||||
<t>Thanks to Trevor Cooper, Sridhar Rao, and Martin Klozik of the VSPERF | ||||
project for many contributions to the early testing <xref | ||||
target="VSPERF-b2b"/>. Yoshiaki Itou has also investigated the topic, | ||||
and made useful suggestions. Maciek Konstantyowicz and Vratko Polak also | ||||
provided many comments and suggestions based on extensive integration | ||||
testing and resulting search algorithm proposals - the most up-to-date | ||||
feedback possible. Tim Carlin also provided comments and support for the | ||||
draft. Warren Kumari's review improved readability in several key | ||||
passages. David Black, Martin Duke, and Scott Bradner's comments | ||||
improved the clarity and configuration advice on trial duration. Malisa | ||||
Vucinic suggested additional text on DUT design cautions in the Security | ||||
Considerations section.</t> | ||||
</section> | </section> | |||
</middle> | </middle> | |||
<back> | <back> | |||
<references title="Normative References"> | ||||
<?rfc include='reference.RFC.2544'?> | ||||
<?rfc include='reference.RFC.1242'?> | ||||
<?rfc include="reference.RFC.2119"?> | ||||
<?rfc include='reference.RFC.6985'?> | ||||
<?rfc include='reference.RFC.8174'?> | ||||
<?rfc include='reference.RFC.8239'?> | ||||
<reference anchor="TST009" | ||||
target="https://www.etsi.org/deliver/etsi_gs/NFV-TST/001_099/00 | ||||
9/03.04.01_60/gs_NFV-TST009v030401p.pdf"> | ||||
<front> | ||||
<title>ETSI GS NFV-TST 009 V3.4.1 (2020-12), "Network Functions | ||||
Virtualisation (NFV) Release 3; Testing; Specification of Networking | ||||
Benchmarks and Measurement Methods for NFVI"</title> | ||||
<author fullname="Rapporteur: Al Morton" initials="A." | ||||
surname="Morton"> | ||||
<organization>ETSI Network Function Virtualization | ||||
ISG</organization> | ||||
</author> | ||||
<date month="December" year="2020"/> | <displayreference target="I-D.vpolak-bmwg-plrsearch" to="BMWG-PLRSEARCH"/> | |||
</front> | <displayreference target="I-D.vpolak-mkonstan-bmwg-mlrsearch" to="BMWG-MLRSEARCH | |||
</reference> | "/> | |||
<?rfc ?> | <references> | |||
<name>References</name> | ||||
<references> | ||||
<name>Normative References</name> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.2544.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.1242.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.2119.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.6985.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.8174.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.8239.xml"/> | ||||
<?rfc ?> | <!--[rfced] FYI - when reviewing the documents listed below, we do not see Al Mo rton listed as an author. | |||
<?rfc ?> | [TST009] Morton, A., "ETSI GS NFV-TST 009 V3.4.1 (2020-12), | |||
"Network Functions Virtualisation (NFV) Release 3; | ||||
Testing; Specification of Networking Benchmarks and | ||||
Measurement Methods for NFVI"", December 2020, | ||||
<https://www.etsi.org/deliver/etsi_gs/NFV- | ||||
TST/001_099/009/03.04.01_60/gs_NFV-TST009v030401p.pdf>. | ||||
<?rfc ?> | [VSPERF-b2b] | |||
Morton, A., "Back2Back Testing Time Series (from CI)", | ||||
June 2017, <https://wiki.opnfv.org/display/vsperf/ | ||||
Traffic+Generator+Testing#TrafficGeneratorTesting- | ||||
AppendixB:Back2BackTestingTimeSeries(fromCI)>. | ||||
<?rfc ?> | Linked wiki page states: | |||
Traffic Generator Testing | ||||
Created by Trevor Cooper, last modified by Bob Fubel on Oct 02, 2018 | ||||
--> | ||||
<?rfc ?> | <reference anchor="TST009" target="https://www.etsi.org/deliver/etsi_gs/ | |||
NFV-TST/001_099/009/03.04.01_60/gs_NFV-TST009v030401p.pdf"> | ||||
<front> | ||||
<title>Network Functions | ||||
Virtualisation (NFV) Release 3; Testing; Specification of Networking | ||||
Benchmarks and Measurement Methods for NFVI</title> | ||||
<author> | ||||
<organization>ETSI</organization> | ||||
</author> | ||||
<date month="December" year="2020"/> | ||||
</front> | ||||
<seriesInfo name="ETSI GS NFV-TST 009" value="v3.4.1"/> | ||||
<refcontent>Rapporteur: A. Morton</refcontent> | ||||
</reference> | ||||
<?rfc ?> | </references> | |||
</references> | <references> | |||
<name>Informative References</name> | ||||
<references title="Informative References"> | <reference anchor="OPNFV-2017" target="https://wiki.anuket.io/download/a | |||
<reference anchor="OPNFV-2017" | ttachments/4404001/VSPERF-Dataplane-Perf-Cap-Bench.pdf?version=1&modificatio | |||
target="https://wiki.opnfv.org/download/attachments/10293193/VS | nDate=1621191833500&api=v2"> | |||
PERF-Dataplane-Perf-Cap-Bench.pptx?api=v2"> | <front> | |||
<front> | <title>Dataplane Performance, Capacity, and Benchmarking in | |||
<title>Dataplane Performance, Capacity, and Benchmarking in | ||||
OPNFV</title> | OPNFV</title> | |||
<author fullname="Trevor Cooper" initials="T." surname="Cooper"> | ||||
<organization>Intel Corp.</organization> | ||||
</author> | ||||
<author fullname="Sridhar Rao" initials="S." surname="Rao"> | ||||
<organization>Spirent Communications</organization> | ||||
</author> | ||||
<author fullname="Al Morton" initials="A." surname="Morton"> | ||||
<organization>AT&T Labs</organization> | ||||
</author> | ||||
<date day="15" month="June" year="2017"/> | ||||
</front> | ||||
</reference> | ||||
<author fullname="Trevor Cooper" initials="T." surname="Cooper"> | <reference anchor="VSPERF-b2b" target="https://wiki.anuket.io/display/HO | |||
<organization>Intel Corp.</organization> | ME/Traffic+Generator+Testing#TrafficGeneratorTesting-AppendixB:Back2BackTestingT | |||
</author> | imeSeries(fromCI)"> | |||
<front> | ||||
<author fullname="Al Morton" initials="A." surname="Morton"> | <title>Back2Back Testing Time Series (from CI)</title> | |||
<organization>AT&T Labs</organization> | <author fullname="Al Morton" initials="A." surname="Morton"> | |||
</author> | <organization>AT&T Labs</organization> | |||
</author> | ||||
<author fullname="Sridhar Rao" initials="S." surname="Rao"> | <date month="June" year="2017"/> | |||
<organization>Spirent Communications</organization> | </front> | |||
</author> | </reference> | |||
<date day="15" month="June" year="2017"/> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="VSPERF-b2b" | <reference anchor="VSPERF-CI" target="https://wiki.anuket.io/display/HOM | |||
target="https://wiki.opnfv.org/display/vsperf/Traffic+Generator | E/VSPERF+CI"> | |||
+Testing#TrafficGeneratorTesting-AppendixB:Back2BackTestingTimeSeries(fromCI)"> | <front> | |||
<front> | <title>OPNFV VSPERF CI</title> | |||
<title>Back2Back Testing Time Series (from CI)</title> | <author fullname="Maryam Tahhan" initials="M." surname="Tahhan"> | |||
<organization>Intel Corporation</organization> | ||||
</author> | ||||
<date month="June" year="2019"/> | ||||
</front> | ||||
</reference> | ||||
<author fullname="Al Morton" initials="A." surname="Morton"> | <reference anchor="VSPERF-BSLV" target="https://datatracker.ietf.org/mee | |||
<organization>AT&T Labs</organization> | ting/102/materials/slides-102-bmwg-evolution-of-repeatability-in-benchmarking-fr | |||
</author> | aser-plugfest-summary-for-ietf-bmwg-00"> | |||
<front> | ||||
<title>Evolution of Repeatability in Benchmarking: Fraser Plugfest | ||||
(Summary for IETF BMWG)</title> | ||||
<author fullname="Sridhar Rao" initials="S." surname="Rao"> | ||||
<organization>Spirent Communications</organization> | ||||
</author> | ||||
<author fullname="Al Morton" initials="A." surname="Morton"> | ||||
<organization>AT&T Labs</organization> | ||||
</author> | ||||
<date month="July" year="2018"/> | ||||
</front> | ||||
</reference> | ||||
<date month="June" year="2017"/> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
</front> | FC.1944.xml"/> | |||
</reference> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | |||
FC.6201.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.6815.xml"/> | ||||
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R | ||||
FC.5180.xml"/> | ||||
<reference anchor="VSPERF-CI" | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2889. | |||
target="https://wiki.opnfv.org/display/vsperf/VSPERF+CI"> | xml"/> | |||
<front> | ||||
<title>OPNFV VSPERF CI</title> | ||||
<author fullname="Maryam Tahhan" initials="M." surname="Tahhan"> | <!-- [I-D.vpolak-bmwg-plrsearch] IESG state Expired --> | |||
<organization>Intel Corporation</organization> | ||||
</author> | ||||
<date month="June" year="2019"/> | <reference anchor='I-D.vpolak-bmwg-plrsearch'> | |||
</front> | <front> | |||
</reference> | <title>Probabilistic Loss Ratio Search for Packet Throughput (PLRsearch)</title> | |||
<reference anchor="VSPERF-BSLV" | <author role="editor" initials='M' surname='Konstantynowicz' fullname='Maciek Ko | |||
target="https://datatracker.ietf.org/meeting/102/materials/slid | nstantynowicz'> | |||
es-102-bmwg-evolution-of-repeatability-in-benchmarking-fraser-plugfest-summary-f | <organization /> | |||
or-ietf-bmwg-00"> | </author> | |||
<front> | ||||
<title>Evolution of Repeatability in Benchmarking: Fraser Plugfest | ||||
(Summary for IETF BMWG)</title> | ||||
<author fullname="Al Morton" initials="A." surname="Morton"> | <author role="editor" initials='V' surname='Polak' fullname='Vratko Polak'> | |||
<organization>AT&T Labs</organization> | <organization /> | |||
</author> | </author> | |||
<author fullname="Sridhar Rao" initials="S." surname="Rao"> | <date month='March' day='6' year='2020' /> | |||
<organization>Spirent Communications</organization> | ||||
</author> | ||||
<date month="July" year="2018"/> | </front> | |||
</front> | <seriesInfo name='Internet-Draft' value='draft-vpolak-bmwg-plrsearch-03' /> | |||
</reference> | <format type='TXT' | |||
target='http://www.ietf.org/internet-drafts/draft-vpolak-bmwg-plrsearch- | ||||
03.txt' /> | ||||
</reference> | ||||
<?rfc include='reference.RFC.1944'?> | <!-- [I-D.vpolak-mkonstan-bmwg-mlrsearch] IESG state Expired --> | |||
<?rfc include='reference.RFC.6201'?> | <reference anchor='I-D.vpolak-mkonstan-bmwg-mlrsearch'> | |||
<front> | ||||
<title>Multiple Loss Ratio Search for Packet Throughput (MLRsearch)</title> | ||||
<?rfc include='reference.RFC.6815'?> | <author role="editor" initials='M' surname='Konstantynowicz' fullname='Maciek Ko | |||
nstantynowicz'> | ||||
<organization /> | ||||
</author> | ||||
<?rfc include='reference.RFC.5180'?> | <author role="editor" initials='V' surname='Polak' fullname='Vratko Polak'> | |||
<organization /> | ||||
</author> | ||||
<?rfc ?> | <date month='March' day='6' year='2020' /> | |||
<?rfc include='reference.I-D.vpolak-bmwg-plrsearch'?> | </front> | |||
<?rfc include='reference.I-D.vpolak-mkonstan-bmwg-mlrsearch'?> | <seriesInfo name='Internet-Draft' value='draft-vpolak-mkonstan-bmwg-mlrsearch-03 | |||
' /> | ||||
<format type='TXT' | ||||
target='http://www.ietf.org/internet-drafts/draft-vpolak-mkonstan-bmwg-m | ||||
lrsearch-03.txt' /> | ||||
</reference> | ||||
<?rfc ?> | </references> | |||
</references> | </references> | |||
<section numbered="false" toc="default"> | ||||
<name>Acknowledgments</name> | ||||
<t>Thanks to <contact fullname="Trevor Cooper"/>, <contact fullname="Sridh | ||||
ar Rao"/>, and <contact fullname="Martin Klozik"/> of the VSPERF | ||||
project for many contributions to the early testing <xref target="VSPERF-b | ||||
2b" format="default"/>. <contact fullname="Yoshiaki Itou"/> has also investigate | ||||
d the topic | ||||
and made useful suggestions. <contact fullname="Maciek Konstantyowicz"/> a | ||||
nd <contact fullname="Vratko Polak"/> also | ||||
provided many comments and suggestions based on extensive integration | ||||
testing and resulting search-algorithm proposals -- the most up-to-date | ||||
feedback possible. <contact fullname="Tim Carlin"/> also provided comments | ||||
and support for the | ||||
document. <contact fullname="Warren Kumari"/>'s review improved readabilit | ||||
y in several key | ||||
passages. <contact fullname="David Black"/>, <contact fullname="Martin Duk | ||||
e"/>, and <contact fullname="Scott Bradner"/>'s comments | ||||
improved the clarity and configuration advice on trial duration. <contact | ||||
fullname="Malisa Vucinic"/> suggested additional text on DUT design cautions in | ||||
the Security | ||||
Considerations section.</t> | ||||
</section> | ||||
</back> | </back> | |||
</rfc> | </rfc> | |||
End of changes. 127 change blocks. | ||||
523 lines changed or deleted | 608 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |