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