9157763e22759a602cb811698ce9faaf3d960fcc
[vswitchperf.git] / docs / testing / developer / requirements / ietf_draft / draft-vsperf-bmwg-vswitch-opnfv-02.xml
1 <?xml version="1.0" encoding="US-ASCII"?>
2 <!DOCTYPE rfc SYSTEM "rfc2629.dtd">
3 <?rfc toc="yes"?>
4 <?rfc tocompact="yes"?>
5 <?rfc tocdepth="3"?>
6 <?rfc tocindent="yes"?>
7 <?rfc symrefs="yes"?>
8 <?rfc sortrefs="yes"?>
9 <?rfc comments="yes"?>
10 <?rfc inline="yes"?>
11 <?rfc compact="yes"?>
12 <?rfc subcompact="no"?>
13 <rfc category="info" docName="draft-vsperf-bmwg-vswitch-opnfv-02"
14      ipr="trust200902">
15   <front>
16     <title abbrev="Benchmarking vSwitches">Benchmarking Virtual Switches in
17     OPNFV</title>
18
19     <author fullname="Maryam Tahhan" initials="M." surname="Tahhan">
20       <organization>Intel</organization>
21
22       <address>
23         <postal>
24           <street/>
25
26           <city/>
27
28           <region/>
29
30           <code/>
31
32           <country/>
33         </postal>
34
35         <phone/>
36
37         <facsimile/>
38
39         <email>maryam.tahhan@intel.com</email>
40
41         <uri/>
42       </address>
43     </author>
44
45     <author fullname="Billy O'Mahony" initials="B." surname="O'Mahony">
46       <organization>Intel</organization>
47
48       <address>
49         <postal>
50           <street/>
51
52           <city/>
53
54           <region/>
55
56           <code/>
57
58           <country/>
59         </postal>
60
61         <phone/>
62
63         <facsimile/>
64
65         <email>billy.o.mahony@intel.com</email>
66
67         <uri/>
68       </address>
69     </author>
70
71     <author fullname="Al Morton" initials="A." surname="Morton">
72       <organization>AT&amp;T Labs</organization>
73
74       <address>
75         <postal>
76           <street>200 Laurel Avenue South</street>
77
78           <city>Middletown,</city>
79
80           <region>NJ</region>
81
82           <code>07748</code>
83
84           <country>USA</country>
85         </postal>
86
87         <phone>+1 732 420 1571</phone>
88
89         <facsimile>+1 732 368 1192</facsimile>
90
91         <email>acmorton@att.com</email>
92
93         <uri>http://home.comcast.net/~acmacm/</uri>
94       </address>
95     </author>
96
97     <date day="21" month="March" year="2016"/>
98
99     <abstract>
100       <t>This memo describes the progress of the Open Platform for NFV (OPNFV)
101       project on virtual switch performance "VSWITCHPERF". This project
102       intends to build on the current and completed work of the Benchmarking
103       Methodology Working Group in IETF, by referencing existing literature.
104       The Benchmarking Methodology Working Group has traditionally conducted
105       laboratory characterization of dedicated physical implementations of
106       internetworking functions. Therefore, this memo begins to describe the
107       additional considerations when virtual switches are implemented in
108       general-purpose hardware. The expanded tests and benchmarks are also
109       influenced by the OPNFV mission to support virtualization of the "telco"
110       infrastructure.</t>
111     </abstract>
112
113     <note title="Requirements Language">
114       <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
115       "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
116       document are to be interpreted as described in <xref
117       target="RFC2119">RFC 2119</xref>.</t>
118
119       <t/>
120     </note>
121   </front>
122
123   <middle>
124     <section title="Introduction">
125       <t>Benchmarking Methodology Working Group (BMWG) has traditionally
126       conducted laboratory characterization of dedicated physical
127       implementations of internetworking functions. The Black-box Benchmarks
128       of Throughput, Latency, Forwarding Rates and others have served our
129       industry for many years. Now, Network Function Virtualization (NFV) has
130       the goal to transform how internetwork functions are implemented, and
131       therefore has garnered much attention.</t>
132
133       <t>This memo summarizes the progress of the Open Platform for NFV
134       (OPNFV) project on virtual switch performance characterization,
135       "VSWITCHPERF", through the Brahmaputra (second) release <xref
136       target="BrahRel"/>. This project intends to build on the current and
137       completed work of the Benchmarking Methodology Working Group in IETF, by
138       referencing existing literature. For example, currently the most often
139       referenced RFC is <xref target="RFC2544"/> (which depends on <xref
140       target="RFC1242"/>) and foundation of the benchmarking work in OPNFV is
141       common and strong.</t>
142
143       <t>See
144       https://wiki.opnfv.org/characterize_vswitch_performance_for_telco_nfv_use_cases
145       for more background, and the OPNFV website for general information:
146       https://www.opnfv.org/</t>
147
148       <t>The authors note that OPNFV distinguishes itself from other open
149       source compute and networking projects through its emphasis on existing
150       "telco" services as opposed to cloud-computing. There are many ways in
151       which telco requirements have different emphasis on performance
152       dimensions when compared to cloud computing: support for and transfer of
153       isochronous media streams is one example.</t>
154
155       <t>Note also that the move to NFV Infrastructure has resulted in many
156       new benchmarking initiatives across the industry. The authors are
157       currently doing their best to maintain alignment with many other
158       projects, and this Internet Draft is one part of the efforts. We
159       acknowledge the early work in <xref
160       target="I-D.huang-bmwg-virtual-network-performance"/>, and useful
161       discussion with the authors.</t>
162     </section>
163
164     <section title="Scope">
165       <t>The primary purpose and scope of the memo is to inform the industry
166       of work-in-progress that builds on the body of extensive BMWG literature
167       and experience, and describe the extensions needed for benchmarking
168       virtual switches. Inital feedback indicates that many of these
169       extensions may be applicable beyond the current scope (to hardware
170       switches in the NFV Infrastructure and to virtual routers, for example).
171       Additionally, this memo serves as a vehicle to include more detail and
172       commentary from BMWG and other Open Source communities, under BMWG's
173       chartered work to characterize the NFV Infrastructure (a virtual switch
174       is an important aspect of that infrastructure).</t>
175     </section>
176
177     <section title="Benchmarking Considerations">
178       <t>This section highlights some specific considerations (from <xref
179       target="I-D.ietf-bmwg-virtual-net"/>)related to Benchmarks for virtual
180       switches. The OPNFV project is sharing its present view on these areas,
181       as they develop their specifications in the Level Test Design (LTD)
182       document.</t>
183
184       <section title="Comparison with Physical Network Functions">
185         <t>To compare the performance of virtual designs and implementations
186         with their physical counterparts, identical benchmarks are needed.
187         BMWG has developed specifications for many network functions this memo
188         re-uses existing benchmarks through references, and expands them
189         during development of new methods. A key configuration aspect is the
190         number of parallel cores required to achieve comparable performance
191         with a given physical device, or whether some limit of scale was
192         reached before the cores could achieve the comparable level.</t>
193
194         <t>It's unlikely that the virtual switch will be the only application
195         running on the SUT, so CPU utilization, Cache utilization, and Memory
196         footprint should also be recorded for the virtual implementations of
197         internetworking functions.</t>
198       </section>
199
200       <section title="Continued Emphasis on Black-Box Benchmarks">
201         <t>External observations remain essential as the basis for Benchmarks.
202         Internal observations with fixed specification and interpretation will
203         be provided in parallel to assist the development of operations
204         procedures when the technology is deployed.</t>
205       </section>
206
207       <section title="New Configuration Parameters">
208         <t>A key consideration when conducting any sort of benchmark is trying
209         to ensure the consistency and repeatability of test results. When
210         benchmarking the performance of a vSwitch there are many factors that
211         can affect the consistency of results, one key factor is matching the
212         various hardware and software details of the SUT. This section lists
213         some of the many new parameters which this project believes are
214         critical to report in order to achieve repeatability.</t>
215
216         <t>Hardware details including:</t>
217
218         <t><list style="symbols">
219             <t>Platform details</t>
220
221             <t>Processor details</t>
222
223             <t>Memory information (type and size)</t>
224
225             <t>Number of enabled cores</t>
226
227             <t>Number of cores used for the test</t>
228
229             <t>Number of physical NICs, as well as their details
230             (manufacturer, versions, type and the PCI slot they are plugged
231             into)</t>
232
233             <t>NIC interrupt configuration</t>
234
235             <t>BIOS version, release date and any configurations that were
236             modified</t>
237
238             <t>CPU microcode level</t>
239
240             <t>Memory DIMM configurations (quad rank performance may not be
241             the same as dual rank) in size, freq and slot locations</t>
242
243             <t>PCI configuration parameters (payload size, early ack
244             option...)</t>
245
246             <t>Power management at all levels (ACPI sleep states, processor
247             package, OS...)</t>
248           </list>Software details including:</t>
249
250         <t><list style="symbols">
251             <t>OS parameters and behavior (text vs graphical no one typing at
252             the console on one system)</t>
253
254             <t>OS version (for host and VNF)</t>
255
256             <t>Kernel version (for host and VNF)</t>
257
258             <t>GRUB boot parameters (for host and VNF)</t>
259
260             <t>Hypervisor details (Type and version)</t>
261
262             <t>Selected vSwitch, version number or commit id used</t>
263
264             <t>vSwitch launch command line if it has been parameterised</t>
265
266             <t>Memory allocation to the vSwitch</t>
267
268             <t>which NUMA node it is using, and how many memory channels</t>
269
270             <t>DPDK or any other SW dependency version number or commit id
271             used</t>
272
273             <t>Memory allocation to a VM - if it's from Hugpages/elsewhere</t>
274
275             <t>VM storage type: snapshot/independent persistent/independent
276             non-persistent</t>
277
278             <t>Number of VMs</t>
279
280             <t>Number of Virtual NICs (vNICs), versions, type and driver</t>
281
282             <t>Number of virtual CPUs and their core affinity on the host</t>
283
284             <t>Number vNIC interrupt configuration</t>
285
286             <t>Thread affinitization for the applications (including the
287             vSwitch itself) on the host</t>
288
289             <t>Details of Resource isolation, such as CPUs designated for
290             Host/Kernel (isolcpu) and CPUs designated for specific processes
291             (taskset). - Test duration. - Number of flows.</t>
292           </list></t>
293
294         <t>Test Traffic Information:<list style="symbols">
295             <t>Traffic type - UDP, TCP, IMIX / Other</t>
296
297             <t>Packet Sizes</t>
298
299             <t>Deployment Scenario</t>
300           </list></t>
301
302         <t/>
303       </section>
304
305       <section title="Flow classification">
306         <t>Virtual switches group packets into flows by processing and
307         matching particular packet or frame header information, or by matching
308         packets based on the input ports. Thus a flow can be thought of a
309         sequence of packets that have the same set of header field values or
310         have arrived on the same port. Performance results can vary based on
311         the parameters the vSwitch uses to match for a flow. The recommended
312         flow classification parameters for any vSwitch performance tests are:
313         the input port, the source IP address, the destination IP address and
314         the Ethernet protocol type field. It is essential to increase the flow
315         timeout time on a vSwitch before conducting any performance tests that
316         do not measure the flow setup time. Normally the first packet of a
317         particular stream will install the flow in the virtual switch which
318         adds an additional latency, subsequent packets of the same flow are
319         not subject to this latency if the flow is already installed on the
320         vSwitch.</t>
321       </section>
322
323       <section title="Benchmarks using Baselines with Resource Isolation">
324         <t>This outline describes measurement of baseline with isolated
325         resources at a high level, which is the intended approach at this
326         time.</t>
327
328         <t><list style="numbers">
329             <t>Baselines: <list style="symbols">
330                 <t>Optional: Benchmark platform forwarding capability without
331                 a vswitch or VNF for at least 72 hours (serves as a means of
332                 platform validation and a means to obtain the base performance
333                 for the platform in terms of its maximum forwarding rate and
334                 latency). <figure>
335                     <preamble>Benchmark platform forwarding
336                     capability</preamble>
337
338                     <artwork align="right"><![CDATA[                                                      __
339  +--------------------------------------------------+   |
340  |   +------------------------------------------+   |   |
341  |   |                                          |   |   |
342  |   |          Simple Forwarding App           |   |  Host
343  |   |                                          |   |   |
344  |   +------------------------------------------+   |   |
345  |   |                 NIC                      |   |   |
346  +---+------------------------------------------+---+ __|
347             ^                           :
348             |                           |
349             :                           v
350  +--------------------------------------------------+
351  |                                                  |
352  |                traffic generator                 |
353  |                                                  |
354  +--------------------------------------------------+]]></artwork>
355
356                     <postamble/>
357                   </figure></t>
358
359                 <t>Benchmark VNF forwarding capability with direct
360                 connectivity (vSwitch bypass, e.g., SR/IOV) for at least 72
361                 hours (serves as a means of VNF validation and a means to
362                 obtain the base performance for the VNF in terms of its
363                 maximum forwarding rate and latency). The metrics gathered
364                 from this test will serve as a key comparison point for
365                 vSwitch bypass technologies performance and vSwitch
366                 performance. <figure align="right">
367                     <preamble>Benchmark VNF forwarding capability</preamble>
368
369                     <artwork><![CDATA[                                                      __
370  +--------------------------------------------------+   |
371  |   +------------------------------------------+   |   |
372  |   |                                          |   |   |
373  |   |                 VNF                      |   |   |
374  |   |                                          |   |   |
375  |   +------------------------------------------+   |   |
376  |   |          Passthrough/SR-IOV              |   |  Host
377  |   +------------------------------------------+   |   |
378  |   |                 NIC                      |   |   |
379  +---+------------------------------------------+---+ __|
380             ^                           :
381             |                           |
382             :                           v
383  +--------------------------------------------------+
384  |                                                  |
385  |                traffic generator                 |
386  |                                                  |
387  +--------------------------------------------------+]]></artwork>
388
389                     <postamble/>
390                   </figure></t>
391
392                 <t>Benchmarking with isolated resources alone, with other
393                 resources (both HW&amp;SW) disabled Example, vSw and VM are
394                 SUT</t>
395
396                 <t>Benchmarking with isolated resources alone, leaving some
397                 resources unused</t>
398
399                 <t>Benchmark with isolated resources and all resources
400                 occupied</t>
401               </list></t>
402
403             <t>Next Steps<list style="symbols">
404                 <t>Limited sharing</t>
405
406                 <t>Production scenarios</t>
407
408                 <t>Stressful scenarios</t>
409               </list></t>
410           </list></t>
411       </section>
412     </section>
413
414     <section title="VSWITCHPERF Specification Summary">
415       <t>The overall specification in preparation is referred to as a Level
416       Test Design (LTD) document, which will contain a suite of performance
417       tests. The base performance tests in the LTD are based on the
418       pre-existing specifications developed by BMWG to test the performance of
419       physical switches. These specifications include:</t>
420
421       <t><list style="symbols">
422           <t><xref target="RFC2544"/> Benchmarking Methodology for Network
423           Interconnect Devices</t>
424
425           <t><xref target="RFC2889"/> Benchmarking Methodology for LAN
426           Switching</t>
427
428           <t><xref target="RFC6201"/> Device Reset Characterization</t>
429
430           <t><xref target="RFC5481"/> Packet Delay Variation Applicability
431           Statement</t>
432         </list></t>
433
434       <t>Some of the above/newer RFCs are being applied in benchmarking for
435       the first time, and represent a development challenge for test equipment
436       developers. Fortunately, many members of the testing system community
437       have engaged on the VSPERF project, including an open source test
438       system.</t>
439
440       <t>In addition to this, the LTD also re-uses the terminology defined
441       by:</t>
442
443       <t><list style="symbols">
444           <t><xref target="RFC2285"/> Benchmarking Terminology for LAN
445           Switching Devices</t>
446
447           <t><xref target="RFC5481"/> Packet Delay Variation Applicability
448           Statement</t>
449         </list></t>
450
451       <t/>
452
453       <t>Specifications to be included in future updates of the LTD
454       include:<list style="symbols">
455           <t><xref target="RFC3918"/> Methodology for IP Multicast
456           Benchmarking</t>
457
458           <t><xref target="RFC4737"/> Packet Reordering Metrics</t>
459         </list></t>
460
461       <t>As one might expect, the most fundamental internetworking
462       characteristics of Throughput and Latency remain important when the
463       switch is virtualized, and these benchmarks figure prominently in the
464       specification.</t>
465
466       <t>When considering characteristics important to "telco" network
467       functions, we must begin to consider additional performance metrics. In
468       this case, the project specifications have referenced metrics from the
469       IETF IP Performance Metrics (IPPM) literature. This means that the <xref
470       target="RFC2544"/> test of Latency is replaced by measurement of a
471       metric derived from IPPM's <xref target="RFC2679"/>, where a set of
472       statistical summaries will be provided (mean, max, min, etc.). Further
473       metrics planned to be benchmarked include packet delay variation as
474       defined by <xref target="RFC5481"/> , reordering, burst behaviour, DUT
475       availability, DUT capacity and packet loss in long term testing at
476       Throughput level, where some low-level of background loss may be present
477       and characterized.</t>
478
479       <t>Tests have been (or will be) designed to collect the metrics
480       below:</t>
481
482       <t><list style="symbols">
483           <t>Throughput Tests to measure the maximum forwarding rate (in
484           frames per second or fps) and bit rate (in Mbps) for a constant load
485           (as defined by <xref target="RFC1242"/>) without traffic loss.</t>
486
487           <t>Packet and Frame Delay Distribution Tests to measure average, min
488           and max packet and frame delay for constant loads.</t>
489
490           <t>Packet Delay Tests to understand latency distribution for
491           different packet sizes and over an extended test run to uncover
492           outliers.</t>
493
494           <t>Scalability Tests to understand how the virtual switch performs
495           as the number of flows, active ports, complexity of the forwarding
496           logic&rsquo;s configuration&hellip; it has to deal with
497           increases.</t>
498
499           <t>Stream Performance Tests (TCP, UDP) to measure bulk data transfer
500           performance, i.e. how fast systems can send and receive data through
501           the switch.</t>
502
503           <t>Control Path and Datapath Coupling Tests, to understand how
504           closely coupled the datapath and the control path are as well as the
505           effect of this coupling on the performance of the DUT (example:
506           delay of the initial packet of a flow).</t>
507
508           <t>CPU and Memory Consumption Tests to understand the virtual
509           switch&rsquo;s footprint on the system, usually conducted as
510           auxiliary measurements with benchmarks above. They include: CPU
511           utilization, Cache utilization and Memory footprint.</t>
512
513           <t>The so-called "Soak" tests, where the selected test is conducted
514           over a long period of time (with an ideal duration of 24 hours, and
515           at least 6 hours). The purpose of soak tests is to capture transient
516           changes in performance which may occur due to infrequent processes
517           or the low probability coincidence of two or more processes. The
518           performance must be evaluated periodically during continuous
519           testing, and this results in use of <xref target="RFC2889"/> Frame
520           Rate metrics instead of <xref target="RFC2544"/> Throughput (which
521           requires stopping traffic to allow time for all traffic to exit
522           internal queues).</t>
523         </list></t>
524
525       <t>Future/planned test specs include:<list style="symbols">
526           <t>Request/Response Performance Tests (TCP, UDP) which measure the
527           transaction rate through the switch.</t>
528
529           <t>Noisy Neighbour Tests, to understand the effects of resource
530           sharing on the performance of a virtual switch.</t>
531
532           <t>Tests derived from examination of ETSI NFV Draft GS IFA003
533           requirements <xref target="IFA003"/> on characterization of
534           acceleration technologies applied to vswitches.</t>
535         </list>The flexibility of deployment of a virtual switch within a
536       network means that the BMWG IETF existing literature needs to be used to
537       characterize the performance of a switch in various deployment
538       scenarios. The deployment scenarios under consideration include:</t>
539
540       <t><figure>
541           <preamble>Physical port to virtual switch to physical
542           port</preamble>
543
544           <artwork><![CDATA[                                                      __
545  +--------------------------------------------------+   |
546  |              +--------------------+              |   |
547  |              |                    |              |   |
548  |              |                    v              |   |  Host
549  |   +--------------+            +--------------+   |   |
550  |   |   phy port   |  vSwitch   |   phy port   |   |   |
551  +---+--------------+------------+--------------+---+ __|
552             ^                           :
553             |                           |
554             :                           v
555  +--------------------------------------------------+
556  |                                                  |
557  |                traffic generator                 |
558  |                                                  |
559  +--------------------------------------------------+]]></artwork>
560         </figure></t>
561
562       <t><figure>
563           <preamble>Physical port to virtual switch to VNF to virtual switch
564           to physical port</preamble>
565
566           <artwork><![CDATA[                                                      __
567  +---------------------------------------------------+   |
568  |                                                   |   |
569  |   +-------------------------------------------+   |   |
570  |   |                 Application               |   |   |
571  |   +-------------------------------------------+   |   |
572  |       ^                                  :        |   |
573  |       |                                  |        |   |  Guest
574  |       :                                  v        |   |
575  |   +---------------+           +---------------+   |   |
576  |   | logical port 0|           | logical port 1|   |   |
577  +---+---------------+-----------+---------------+---+ __|
578          ^                                  :
579          |                                  |
580          :                                  v         __
581  +---+---------------+----------+---------------+---+   |
582  |   | logical port 0|          | logical port 1|   |   |
583  |   +---------------+          +---------------+   |   |
584  |       ^                                  :       |   |
585  |       |                                  |       |   |  Host
586  |       :                                  v       |   |
587  |   +--------------+            +--------------+   |   |
588  |   |   phy port   |  vSwitch   |   phy port   |   |   |
589  +---+--------------+------------+--------------+---+ __|
590             ^                           :
591             |                           |
592             :                           v
593  +--------------------------------------------------+
594  |                                                  |
595  |                traffic generator                 |
596  |                                                  |
597  +--------------------------------------------------+]]></artwork>
598         </figure><figure>
599           <preamble>Physical port to virtual switch to VNF to virtual switch
600           to VNF to virtual switch to physical port</preamble>
601
602           <artwork><![CDATA[                                                   __
603  +----------------------+  +----------------------+  |
604  |   Guest 1            |  |   Guest 2            |  |
605  |   +---------------+  |  |   +---------------+  |  |
606  |   |  Application  |  |  |   |  Application  |  |  |
607  |   +---------------+  |  |   +---------------+  |  |
608  |       ^       |      |  |       ^       |      |  |
609  |       |       v      |  |       |       v      |  |  Guests
610  |   +---------------+  |  |   +---------------+  |  |
611  |   | logical ports |  |  |   | logical ports |  |  |
612  |   |   0       1   |  |  |   |   0       1   |  |  |
613  +---+---------------+--+  +---+---------------+--+__|
614          ^       :                 ^       :
615          |       |                 |       |
616          :       v                 :       v       _
617  +---+---------------+---------+---------------+--+ |
618  |   |   0       1   |         |   3       4   |  | |
619  |   | logical ports |         | logical ports |  | |
620  |   +---------------+         +---------------+  | |
621  |       ^       |                 ^       |      | |  Host
622  |       |       |-----------------|       v      | |
623  |   +--------------+          +--------------+   | |
624  |   |   phy ports  | vSwitch  |   phy ports  |   | |
625  +---+--------------+----------+--------------+---+_|
626          ^                                 :
627          |                                 |
628          :                                 v
629  +--------------------------------------------------+
630  |                                                  |
631  |                traffic generator                 |
632  |                                                  |
633  +--------------------------------------------------+]]></artwork>
634         </figure><figure>
635           <preamble>Physical port to virtual switch to VNF</preamble>
636
637           <artwork><![CDATA[                                                       __
638  +---------------------------------------------------+   |
639  |                                                   |   |
640  |   +-------------------------------------------+   |   |
641  |   |                 Application               |   |   |
642  |   +-------------------------------------------+   |   |
643  |       ^                                           |   |
644  |       |                                           |   |  Guest
645  |       :                                           |   |
646  |   +---------------+                               |   |
647  |   | logical port 0|                               |   |
648  +---+---------------+-------------------------------+ __|
649          ^
650          |
651          :                                            __
652  +---+---------------+------------------------------+   |
653  |   | logical port 0|                              |   |
654  |   +---------------+                              |   |
655  |       ^                                          |   |
656  |       |                                          |   |  Host
657  |       :                                          |   |
658  |   +--------------+                               |   |
659  |   |   phy port   |  vSwitch                      |   |
660  +---+--------------+------------ -------------- ---+ __|
661             ^
662             |
663             :
664  +--------------------------------------------------+
665  |                                                  |
666  |                traffic generator                 |
667  |                                                  |
668  +--------------------------------------------------+]]></artwork>
669         </figure><figure>
670           <preamble>VNF to virtual switch to physical port</preamble>
671
672           <artwork><![CDATA[                                                       __
673  +---------------------------------------------------+   |
674  |                                                   |   |
675  |   +-------------------------------------------+   |   |
676  |   |                 Application               |   |   |
677  |   +-------------------------------------------+   |   |
678  |                                          :        |   |
679  |                                          |        |   |  Guest
680  |                                          v        |   |
681  |                               +---------------+   |   |
682  |                               | logical port  |   |   |
683  +-------------------------------+---------------+---+ __|
684                                             :
685                                             |
686                                             v         __
687  +------------------------------+---------------+---+   |
688  |                              | logical port  |   |   |
689  |                              +---------------+   |   |
690  |                                          :       |   |
691  |                                          |       |   |  Host
692  |                                          v       |   |
693  |                               +--------------+   |   |
694  |                     vSwitch   |   phy port   |   |   |
695  +-------------------------------+--------------+---+ __|
696                                         :
697                                         |
698                                         v
699  +--------------------------------------------------+
700  |                                                  |
701  |                traffic generator                 |
702  |                                                  |
703  +--------------------------------------------------+]]></artwork>
704         </figure><figure>
705           <preamble>VNF to virtual switch to VNF</preamble>
706
707           <artwork><![CDATA[                                                   __
708  +----------------------+  +----------------------+  |
709  |   Guest 1            |  |   Guest 2            |  |
710  |   +---------------+  |  |   +---------------+  |  |
711  |   |  Application  |  |  |   |  Application  |  |  |
712  |   +---------------+  |  |   +---------------+  |  |
713  |              |       |  |       ^              |  |
714  |              v       |  |       |              |  |  Guests
715  |   +---------------+  |  |   +---------------+  |  |
716  |   | logical ports |  |  |   | logical ports |  |  |
717  |   |           0   |  |  |   |   0           |  |  |
718  +---+---------------+--+  +---+---------------+--+__|
719                  :                 ^
720                  |                 |
721                  v                 :               _
722  +---+---------------+---------+---------------+--+ |
723  |   |           1   |         |   1           |  | |
724  |   | logical ports |         | logical ports |  | |
725  |   +---------------+         +---------------+  | |
726  |               |                 ^              | |  Host
727  |               L-----------------+              | |
728  |                                                | |
729  |                    vSwitch                     | |
730  +------------------------------------------------+_|]]></artwork>
731         </figure></t>
732
733       <t>A set of Deployment Scenario figures is available on the VSPERF Test
734       Methodology Wiki page <xref target="TestTopo"/>.</t>
735     </section>
736
737     <section title="3x3 Matrix Coverage">
738       <t>This section organizes the many existing test specifications into the
739       "3x3" matrix (introduced in <xref target="I-D.ietf-bmwg-virtual-net"/>).
740       Because the LTD specification ID names are quite long, this section is
741       organized into lists for each occupied cell of the matrix (not all are
742       occupied, also the matrix has grown to 3x4 to accommodate scale metrics
743       when displaying the coverage of many metrics/benchmarks). The current
744       version of the LTD specification is available <xref target="LTD"/>.</t>
745
746       <t>The tests listed below assess the activation of paths in the data
747       plane, rather than the control plane.</t>
748
749       <t>A complete list of tests with short summaries is available on the
750       VSPERF "LTD Test Spec Overview" Wiki page <xref target="LTDoverV"/>.</t>
751
752       <section title="Speed of Activation">
753         <t><list style="symbols">
754             <t>Activation.RFC2889.AddressLearningRate</t>
755
756             <t>PacketLatency.InitialPacketProcessingLatency</t>
757           </list></t>
758       </section>
759
760       <section title="Accuracy of Activation section">
761         <t><list style="symbols">
762             <t>CPDP.Coupling.Flow.Addition</t>
763           </list></t>
764       </section>
765
766       <section title="Reliability of Activation">
767         <t><list style="symbols">
768             <t>Throughput.RFC2544.SystemRecoveryTime</t>
769
770             <t>Throughput.RFC2544.ResetTime</t>
771           </list></t>
772       </section>
773
774       <section title="Scale of Activation">
775         <t><list style="symbols">
776             <t>Activation.RFC2889.AddressCachingCapacity</t>
777           </list></t>
778       </section>
779
780       <section title="Speed of Operation">
781         <t><list style="symbols">
782             <t>Throughput.RFC2544.PacketLossRate</t>
783
784             <t>CPU.RFC2544.0PacketLoss</t>
785
786             <t>Throughput.RFC2544.PacketLossRateFrameModification</t>
787
788             <t>Throughput.RFC2544.BackToBackFrames</t>
789
790             <t>Throughput.RFC2889.MaxForwardingRate</t>
791
792             <t>Throughput.RFC2889.ForwardPressure</t>
793
794             <t>Throughput.RFC2889.BroadcastFrameForwarding</t>
795           </list></t>
796       </section>
797
798       <section title="Accuracy of Operation">
799         <t><list style="symbols">
800             <t>Throughput.RFC2889.ErrorFramesFiltering</t>
801
802             <t>Throughput.RFC2544.Profile</t>
803           </list></t>
804       </section>
805
806       <section title="Reliability of Operation">
807         <t><list style="symbols">
808             <t>Throughput.RFC2889.Soak</t>
809
810             <t>Throughput.RFC2889.SoakFrameModification</t>
811
812             <t>PacketDelayVariation.RFC3393.Soak</t>
813           </list></t>
814       </section>
815
816       <section title="Scalability of Operation">
817         <t><list style="symbols">
818             <t>Scalability.RFC2544.0PacketLoss</t>
819
820             <t>MemoryBandwidth.RFC2544.0PacketLoss.Scalability</t>
821           </list></t>
822       </section>
823
824       <section title="Summary">
825         <t><figure>
826             <artwork><![CDATA[|------------------------------------------------------------------------|
827 |               |             |            |               |             |
828 |               |   SPEED     |  ACCURACY  |  RELIABILITY  |    SCALE    |
829 |               |             |            |               |             |
830 |------------------------------------------------------------------------|
831 |               |             |            |               |             |
832 |  Activation   |      X      |     X      |       X       |      X      |
833 |               |             |            |               |             |
834 |------------------------------------------------------------------------|
835 |               |             |            |               |             |
836 |  Operation    |      X      |      X     |       X       |      X      |
837 |               |             |            |               |             |
838 |------------------------------------------------------------------------|
839 |               |             |            |               |             |
840 | De-activation |             |            |               |             |
841 |               |             |            |               |             |
842 |------------------------------------------------------------------------|]]></artwork>
843           </figure></t>
844       </section>
845     </section>
846
847     <section title="Security Considerations">
848       <t>Benchmarking activities as described in this memo are limited to
849       technology characterization of a Device Under Test/System Under Test
850       (DUT/SUT) using controlled stimuli in a laboratory environment, with
851       dedicated address space and the constraints specified in the sections
852       above.</t>
853
854       <t>The benchmarking network topology will be an independent test setup
855       and MUST NOT be connected to devices that may forward the test traffic
856       into a production network, or misroute traffic to the test management
857       network.</t>
858
859       <t>Further, benchmarking is performed on a "black-box" basis, relying
860       solely on measurements observable external to the DUT/SUT.</t>
861
862       <t>Special capabilities SHOULD NOT exist in the DUT/SUT specifically for
863       benchmarking purposes. Any implications for network security arising
864       from the DUT/SUT SHOULD be identical in the lab and in production
865       networks.</t>
866     </section>
867
868     <section anchor="IANA" title="IANA Considerations">
869       <t>No IANA Action is requested at this time.</t>
870     </section>
871
872     <section title="Acknowledgements">
873       <t>The authors appreciate and acknowledge comments from Scott Bradner,
874       Marius Georgescu, Ramki Krishnan, Doug Montgomery, Martin Klozik,
875       Christian Trautman, and others for their reviews.</t>
876     </section>
877   </middle>
878
879   <back>
880     <references title="Normative References">
881       <?rfc ?>
882
883       <?rfc include="reference.RFC.2119"?>
884
885       <?rfc ?>
886
887       <?rfc include="reference.RFC.2330"?>
888
889       <?rfc include='reference.RFC.2544'?>
890
891       <?rfc include="reference.RFC.2679"?>
892
893       <?rfc include='reference.RFC.2680'?>
894
895       <?rfc include='reference.RFC.3393'?>
896
897       <?rfc include='reference.RFC.3432'?>
898
899       <?rfc include='reference.RFC.2681'?>
900
901       <?rfc include='reference.RFC.5905'?>
902
903       <?rfc include='reference.RFC.4689'?>
904
905       <?rfc include='reference.RFC.4737'?>
906
907       <?rfc include='reference.RFC.5357'?>
908
909       <?rfc include='reference.RFC.2889'?>
910
911       <?rfc include='reference.RFC.3918'?>
912
913       <?rfc include='reference.RFC.6201'?>
914
915       <?rfc include='reference.RFC.2285'?>
916
917       <reference anchor="NFV.PER001">
918         <front>
919           <title>Network Function Virtualization: Performance and Portability
920           Best Practices</title>
921
922           <author fullname="ETSI NFV" initials="" surname="">
923             <organization/>
924           </author>
925
926           <date month="June" year="2014"/>
927         </front>
928
929         <seriesInfo name="Group Specification"
930                     value="ETSI GS NFV-PER 001 V1.1.1 (2014-06)"/>
931
932         <format type="PDF"/>
933       </reference>
934     </references>
935
936     <references title="Informative References">
937       <?rfc include='reference.RFC.1242'?>
938
939       <?rfc include='reference.RFC.5481'?>
940
941       <?rfc include='reference.RFC.6049'?>
942
943       <?rfc include='reference.RFC.6248'?>
944
945       <?rfc include='reference.RFC.6390'?>
946
947       <?rfc include='reference.I-D.ietf-bmwg-virtual-net'?>
948
949       <?rfc include='reference.I-D.huang-bmwg-virtual-network-performance'?>
950
951       <reference anchor="TestTopo">
952         <front>
953           <title>Test Topologies
954           https://wiki.opnfv.org/vsperf/test_methodology</title>
955
956           <author>
957             <organization/>
958           </author>
959
960           <date/>
961         </front>
962       </reference>
963
964       <reference anchor="LTDoverV">
965         <front>
966           <title>LTD Test Spec Overview
967           https://wiki.opnfv.org/wiki/vswitchperf_test_spec_review</title>
968
969           <author>
970             <organization/>
971           </author>
972
973           <date/>
974         </front>
975       </reference>
976
977       <reference anchor="LTD">
978         <front>
979           <title>LTD Test Specification
980           http://artifacts.opnfv.org/vswitchperf/docs/requirements/index.html</title>
981
982           <author>
983             <organization/>
984           </author>
985
986           <date/>
987         </front>
988       </reference>
989
990       <reference anchor="BrahRel">
991         <front>
992           <title>Brahmaputra, Second OPNFV Release
993           https://www.opnfv.org/brahmaputra</title>
994
995           <author>
996             <organization/>
997           </author>
998
999           <date/>
1000         </front>
1001       </reference>
1002
1003       <reference anchor="IFA003">
1004         <front>
1005           <title>https://docbox.etsi.org/ISG/NFV/Open/Drafts/IFA003_Acceleration_-_vSwitch_Spec/</title>
1006
1007           <author>
1008             <organization/>
1009           </author>
1010
1011           <date/>
1012         </front>
1013       </reference>
1014     </references>
1015   </back>
1016 </rfc>