vnfs: Enable PVP using vhost-user
[vswitchperf.git] / test_spec / vswitchperf_ltd.md
old mode 100755 (executable)
new mode 100644 (file)
index 4aec9b8..1d34167
@@ -355,7 +355,7 @@ The following represents possible deployments which can help to determine the pe
  - Reordering check: Tests should confirm that packets within a flow are not reordered.
  - Duplex: Unidirectional / Bidirectional. Default: Full duplex with traffic transmitting in both directions, as network traffic generally does not flow in a single direction. By default the data rate of transmitted traffic should be the same in both directions, please note that asymmetric traffic (e.g. downlink-heavy) tests will be mentioned explicitly for the relevant test cases.
  - Number of Flows: Default for non scalability tests is a single flow. For scalability tests the goal is to test with maximum supported flows but where possible will test up to 10 Million flows. Start with a single flow and scale up. By default flows should be added sequentially, tests that add flows simultaneously will explicitly call out their flow addition behaviour. Packets are generated across the flows uniformly with no burstiness.
- - Traffic Types: UDP, SCTP, RTP, GTP and UDP traffic.
+ - Traffic Types: UDP, SCTP, RTP and GTP traffic.
  - Deployment scenarios are:
    - Physical → virtual switch → physical.
    - Physical → virtual switch → VNF → virtual switch → physical.
@@ -369,7 +369,7 @@ The following represents possible deployments which can help to determine the pe
  **Note**: For throughput tests unless stated otherwise, test configurations should ensure that traffic traverses the installed flows through the switch, i.e. flows are installed and have an appropriate time out that doesn't expire before packet transmission starts.
 
 #####Flow Classification:
-Virtual switches group packets into flows by processing and matching particular header fields in the packet or frame, or by matching packets based on the input ports into the vSwitch. Thus a flow is considered to be a sequence of packets that have a shared set of header field values or have arrived on the same port. Performance results can vary based on the parameters the vSwitch uses to match for a flow. The recommended  flow classification parameters for any vSwitch performance tests are: the input port, the source IP address, the destination IP address and the Ethernet protocol type field. It is essential to increase the flow time-out time on a vSwitch before conducting any performance tests that do not measure the flow set-up time. Normally the first packet of a particular flow will install the flow in the vSwitch which adds an additional latency, subsequent packets of the same flow are not subject to this latency if the flow is already installed on the vSwitch.
+Virtual switches classify packets into flows by processing and matching particular header fields in the packet/frame and/or the input port where the packets/frames arrived. The vSwitch then carries out an action on the group of packets that match the classification parameters. Thus a flow is considered to be a sequence of packets that have a shared set of header field values or have arrived on the same port and have the same action applied to them. Performance results can vary based on the parameters the vSwitch uses to match for a flow. The recommended  flow classification parameters for L3 vSwitch performance tests are: the input port, the source IP address, the destination IP address and the Ethernet protocol type field. It is essential to increase the flow time-out time on a vSwitch before conducting any performance tests that do not measure the flow set-up time. Normally the first packet of a particular flow will install the flow in the vSwitch which adds an additional latency, subsequent packets of the same flow are not subject to this latency if the flow is already installed on the vSwitch.
 
  #####Test Priority
   Tests will be assigned a priority in order to determine which tests should be implemented immediately and which tests implementations can be deferred.
@@ -622,6 +622,7 @@ The starting point for defining the suite of tests for benchmarking the performa
     - Selected vSwitch, version number or commit id used.
       - vSwitch launch command line if it has been parameterised.
       - Memory allocation to the vSwitch – which NUMA node it is using, and how many memory channels.
+      - Where the vswitch is built from source: compiler details including versions and the flags that were used to compile the vSwitch.
     - DPDK or any other SW dependency version number or commit id used.
     - Memory allocation to a VM - if it's from Hugpages/elsewhere.
     - VM storage type: snapshot/independent persistent/independent non-persistent.
@@ -826,8 +827,8 @@ The starting point for defining the suite of tests for benchmarking the performa
    - Physical → virtual switch → physical.
 
 <br/>
-  - #####Test ID: LTD.Throughput.RFC2544.Soak
-  **Title**: RFC 2544 X% packet loss Throughput Soak Test
+  - #####Test ID: LTD.Throughput.RFC2889.Soak
+  **Title**: RFC 2889 X% packet loss Throughput Soak Test
 
   **Prerequisite Test** LTD.Throughput.RFC2544.PacketLossRatio
 
@@ -848,14 +849,14 @@ The starting point for defining the suite of tests for benchmarking the performa
   The following are the metrics collected for this test:
 
    - Throughput stability of the DUT.
-     - This means reporting the number of packets lost per time interval and reporting any time intervals with packet loss. An interval of 60s is suggested.
+     - This means reporting the number of packets lost per time interval and reporting any time intervals with packet loss. The [RFC2889] Forwarding Rate shall be measured in each interval. An interval of 60s is suggested.
    - CPU and memory utilization may also be collected as part of this test, to determine the vSwitch's performance footprint on the system.
    - The [RFC5481] PDV form of delay variation on the traffic flow, using the 99th percentile.
 
 <br/>
 
-  - #####Test ID: LTD.Throughput.RFC2544.SoakFrameModification
-  **Title**: RFC 2544 Throughput Soak Test with Frame Modification
+  - #####Test ID: LTD.Throughput.RFC2889.SoakFrameModification
+  **Title**: RFC 2889 Throughput Soak Test with Frame Modification
 
   **Prerequisite Test** LTD.Throughput.RFC2544.PacketLossRatioFrameModification (0% Packet Loss)
 
@@ -885,7 +886,7 @@ The starting point for defining the suite of tests for benchmarking the performa
   The following are the metrics collected for this test:
 
    - Throughput stability of the DUT.
-     - This means reporting the number of packets lost per time interval and reporting any time intervals with packet loss. An interval of 60s is suggested.
+     - This means reporting the number of packets lost per time interval and reporting any time intervals with packet loss. The [RFC2889] Forwarding Rate shall be measured in each interval. An interval of 60s is suggested.
    - CPU and memory utilization may also be collected as part of this test, to determine the vSwitch's performance footprint on the system.
    - The [RFC5481] PDV form of delay variation on the traffic flow, using the 99th percentile.
 
@@ -1231,18 +1232,18 @@ The starting point for defining the suite of tests for benchmarking the performa
 
   **Description**:
 
-  The aim of this test is to measure how throughput changes as the number of flows in the DUT increases.
+  The aim of this test is to measure how throughput changes as the number of flows in the DUT increases. The test will measure the throughput through the fastpath, as such the flows need to be installed on the DUT before passing traffic.
 
   For each frame size previously defined under [Default Test Parameters](#DefaultParams) and for each of the following number of flows:
 
   - 1,000
   - 2,000
-  - 2,000
   - 4,000
   - 8,000
   - 16,000
   - 32,000
   - 64,000
+  - Max supported number of flows.
 
   The maximum 0% packet loss throughput should be determined in a manner identical to LTD.Throughput.RFC2544.PacketLossRatio.
 
@@ -1305,6 +1306,42 @@ The starting point for defining the suite of tests for benchmarking the performa
 <br/>
 
 
+<a name="CPUTests"></a>
+####2.3.4 CPU and memory consumption
+
+  The following tests will profile a virtual switch's CPU and memory
+  utilization under various loads and circumstances.
+
+    The following list is not exhaustive but should indicate the type of tests
+    that should be required. It is expected that more will be added.
+
+<br/>
+ - #####Test ID: LTD.CPU.RFC2544.0PacketLoss
+  **Title**: RFC 2544 0% Loss Compute Test
+
+  **Prerequisite Test**:
+
+  **Priority**:
+
+  **Description**:
+
+  The aim of this test is to understand the overall performance of the system when a CPU intensive application is run on the same DUT as the Virtual Switch. For each frame size, an LTD.Throughput.RFC2544.PacketLossRatio (0% Packet Loss) test should be performed. Throughout the entire test a CPU intensive application should be run on all cores on the system not in use by the Virtual Switch. For NUMA system only cores on the same NUMA node are loaded.
+
+  It is recommended that stress-ng be used for loading the non-Virtual Switch cores but any stress tool MAY be used.
+
+  **Expected Result**:
+
+  **Metrics Collected**:
+
+  The following are the metrics collected for this test:
+
+   - CPU utilization of the cores running the Virtual Switch.
+   - The number of identity of the cores allocated to the Virtual Switch.
+   - The configuration of the stress tool (for example the command line parameters used to start it.)
+
+----
+
+
 <a name="SummaryList"></a>
 ####2.3.9 Summary List of Tests
 - LTD.Throughput.RFC2544.PacketLossRatio