test_spec: Adding vm2vm on separate hosts use case
[vswitchperf.git] / test_spec / vswitchperf_ltd.md
index 9361c0f..07d49dc 100755 (executable)
@@ -306,6 +306,40 @@ The following represents possible deployments which can help to determine the pe
     +-----------------------------------------------------------------------------------------------------------+__|
 </code></pre>
 
+  - HOST 1(Physical port → virtual switch → VNF → virtual switch → Physical port) → HOST 2(Physical port → virtual switch → VNF → virtual switch → Physical port)
+
+<pre><code>
+
+ +--------------------------------------------+                 +------------------------------------------+
+ |   +---------------------------------+      |                 |    +--------------------------------+    |
+ |   |          Application            |      |                 |    |         Application            |    |
+ |   +----------------------------+----+      |                 |    +-------------------------+------+    |
+ |         ^                      |           |                 |           ^                  |           |
+ |         |                      v           |                 |           |                  v           |
+ | +-------+----------+  +------------------+ |                 | +---------+--------+  +----------------+ |
+ | | Logical port 0   |  | Logical port 1   | |                 | | Logical port 0   |  |Logical port 1  | |
+ +-+------------------+--+------------------+-+                 +-+------------------+--+------+---------+-+
+           ^                      |                                         ^                  |
+           |                      |                                         |                  |
+           |                      v                                         |                  v
+ +-+-------+----------+--+------------------+-+                 +-+---------+--------+--+----------------+-+
+ | | Logical port 0   |  |  Logical port 1  | |                 | | Logical port 0   |  | Logical port 1 | |
+ | +------------------+  +----------+-------+ |                 | +------------------+  +------+---------+ |
+ |          ^                       |         |                 |           ^                  |           |
+ |          |                       |         |                 |           |                  |           |
+ |          |       vswitch         v         |                 |           |     vswitch      v           |
+ | +--------+---------+  +------------------+ |                 | +---------+--------+  +----------------+ |
+ | |    phy port      |  |    phy port      | |                 | |  phy port        |  |  phy port      | |
+ +-+--------+---------+--+----------+-------+-+                 +-+---------+--------+--+------+---------+-+
+            ^                       +---------------------------------------+                  |
+            |                                                                                  v
+ +----------+----------------------------------------------------------------------------------+-----------+
+ |                                                                                                         |
+ |                                    traffic generator                                                    |
+ |                                                                                                         |
+ +---------------------------------------------------------------------------------------------------------+
+</code></pre>
+
 **Note:** For tests where the traffic generator and/or measurement receiver are implemented on VM and connected to the virtual switch through vNIC, the issues of shared resources and interactions between the measurement devices and the device under test must be considered.
 
  ####General Methodology:
@@ -574,7 +608,7 @@ The starting point for defining the suite of tests for benchmarking the performa
   - Hardware details including:
     - Platform details.
     - Processor details.
-    - Memory information (type and size).
+    - Memory information (see below)
     - Number of enabled cores.
     - Number of cores used for the test.
     - Number of physical NICs, as well as their details (manufacturer, versions, type and the PCI slot they are plugged into).
@@ -597,6 +631,18 @@ The starting point for defining the suite of tests for benchmarking the performa
     - Number vNIC interrupt configuration.
     - Thread affinitization for the applications (including the vSwitch itself) on the host.
     - Details of Resource isolation, such as CPUs designated for Host/Kernel (isolcpu) and CPUs designated for specific processes (taskset).
+  - Memory Details
+    - Total memory
+    - Type of memory
+    - Used memory
+    - Active memory
+    - Inactive memory
+    - Free memory
+    - Buffer memory
+    - Swap cache
+    - Total swap
+    - Used swap
+    - Free swap
   - Test duration.
   - Number of flows.
   - Traffic Information:
@@ -809,19 +855,15 @@ The starting point for defining the suite of tests for benchmarking the performa
 <br/>
 
   - #####Test ID: LTD.Throughput.RFC2544.SoakFrameModification
-  **Title**: RFC 2544 X% packet loss Throughput Soak Test with Frame Modification
+  **Title**: RFC 2544 Throughput Soak Test with Frame Modification
 
-  **Prerequisite Test** LTD.Throughput.RFC2544.PacketLossRatioFrameModification
+  **Prerequisite Test** LTD.Throughput.RFC2544.PacketLossRatioFrameModification (0% Packet Loss)
 
   **Priority**:
 
   **Description**:
 
-  The aim of this test is to understand the Throughput stability over an extended test duration in order to uncover any outliers. To allow for an extended test duration, the test should ideally run for 24 hours or, if this is not possible, for at least 6 hour. For this test, each frame size must be sent at the highest Throughput with X% packet loss, as determined in the prerequisite test. The default loss percentages to be tested are:
-    - X = 0%
-    - X = 10^-7%
-
-  Note: Other values can be tested if required by the user.
+  The aim of this test is to understand the throughput stability over an extended test duration in order to uncover any outliers. To allow for an extended test duration, the test should ideally run for 24 hours or, if this is not possible, for at least 6 hour. For this test, each frame size must be sent at the highest Throughput with 0% packet loss, as determined in the prerequisite test.
 
   During this test, the DUT must perform the following operations on the traffic flow:
 
@@ -829,11 +871,11 @@ The starting point for defining the suite of tests for benchmarking the performa
    - Perform any relevant address look-ups on the DUT's ingress ports.
    - Modify the packet header before forwarding the packet to the DUT's egress port. Packet modifications include:
      - Modifying the Ethernet source or destination MAC address.
-     - Modifying/adding a VLAN tag.
+     - Modifying/adding a VLAN tag (Recommended).
      - Modifying/adding a MPLS tag.
      - Modifying the source or destination ip address.
      - Modifying the TOS/DSCP field.
-     - Modifying the source or destination ports for UDP/TCP/SCTP  (Recommended).
+     - Modifying the source or destination ports for UDP/TCP/SCTP.
      - Modifying the TTL.
 
   **Expected Result**:
@@ -843,8 +885,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.
-   - Any outliers in the Throughput stability.
-   - Any unexpected variation in Throughput stability.
+     - 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.
    - 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.
 
@@ -920,7 +961,7 @@ The starting point for defining the suite of tests for benchmarking the performa
 
   **Description**:
 
-  This test measures the DUT's Max Forwarding Rate when the Offered Load is varied between the throughput and the Maximum Offered Load for fixed length frames at a fixed time interval. The selected frame sizes are those previously defined under [Default Test Parameters](#DefaultParams). The throughput is the maximum offered load with 0% frame loss (measured by the prerequisite test), and the Maximum Offered Load (as defined by [RFC2885]) is _"the highest number of frames per second that an external source can transmit to a DUT/SUT for forwarding to a specified output interface or interfaces"_.
+  This test measures the DUT's Max Forwarding Rate when the Offered Load is varied between the throughput and the Maximum Offered Load for fixed length frames at a fixed time interval. The selected frame sizes are those previously defined under [Default Test Parameters](#DefaultParams). The throughput is the maximum offered load with 0% frame loss (measured by the prerequisite test), and the Maximum Offered Load (as defined by [RFC2285]) is _"the highest number of frames per second that an external source can transmit to a DUT/SUT for forwarding to a specified output interface or interfaces"_.
 
   Traffic should be sent to the DUT at a particular rate (TX rate) starting with TX rate equal to the throughput rate. The rate of successfully received frames at the destination counted (in FPS). If the RX rate is equal to the TX rate, the TX rate should be increased by a fixed step size and the RX rate measured again until the Max Forwarding Rate is found.
 
@@ -1071,6 +1112,33 @@ The starting point for defining the suite of tests for benchmarking the performa
    - The forwarding rate of the DUT when forwarding broadcast traffic.
 
 <br/>
+ - #####Test ID: LTD.MemoryBandwidth.RFC2544.0PacketLoss.Scalability
+  **Title**: RFC 2544 0% loss Memory Bandwidth Scalability test
+
+  **Prerequisite Tests**:
+
+  **Priority**:
+
+  **Description**:
+
+  The aim of this test is to understand how the DUT's performance is affected by cache sharing and memory bandwidth between processes.
+
+  During the test all cores not used by the vSwitch should be running a memory intensive application. This application should read and write random data to random addresses in unused physical memory. The random nature of the data and addresses is intended to consume cache, exercise main memory access (as opposed to cache) and exercise all memory buses equally. Furthermore:
+  - the ratio of reads to writes should be recorded. A ratio of 1:1 SHOULD be used.
+  - the reads and writes MUST be of cache-line size and be cache-line aligned.
+  - in NUMA architectures memory access SHOULD be local to the core's node. Whether only local memory or a mix of local and remote memory is used MUST be recorded.
+  - the memory bandwidth (reads plus writes) used per-core MUST be recorded; the test MUST be run with a per-core memory bandwidth equal to half the maximum system memory bandwidth divided by the number of cores. The test MAY be run with other values for the per-core memory bandwidth.
+  - the test MAY also be run with the memory intensive application running on all cores.
+
+  Under these conditions the DUT's 0% packet loss throughput is determined as per LTD.Throughput.RFC2544.PacketLossRatio.
+
+  **Expected Result**:
+
+  **Metrics Collected**:
+
+  The following are the metrics collected for this test:
+
+  - The DUT's 0% packet loss throughput in the presence of cache sharing and memory bandwidth between processes.
 ----
 <a name="LatencyTests"></a>
 ####2.3.2 Packet Latency tests
@@ -1103,6 +1171,29 @@ The starting point for defining the suite of tests for benchmarking the performa
  **Deployment scenario**:
 
   - Physical → Virtual Switch → Physical.
+<br/>
+ - #####Test ID: LTD.PacketDelayVariation.RFC3393.Soak
+  **Title**: Packet Delay Variation Soak Test
+
+  **Prerequisite Tests**: LTD.Throughput.RFC2544.PacketLossRatio (0% Packet Loss)
+
+  **Priority**:
+
+  **Description**:
+
+  The aim of this test is to understand the distribution of packet delay variation for different frame sizes over an extended test duration and to determine if there are any outliers. To allow for an extended test duration, the test should ideally run for 24 hours or, if this is not possible, for at least 6 hour. For this test, each frame size must be sent at the highest possible throughput with 0% packet loss, as determined in the prerequisite test.
+
+  **Expected Result**:
+
+  **Metrics Collected**:
+
+  The following are the metrics collected for this test:
+
+   - The packet delay variation value for traffic passing through the DUT.
+   - The [RFC5481] PDV form of delay variation on the traffic flow, using the 99th percentile, for each 60s interval during the test.
+   - CPU and memory utilization may also be collected as part of this test, to determine the vSwitch's performance footprint on the system.
+
+
 <br/>
 ----
 <a name="ScalabilityTests"></a>
@@ -1168,7 +1259,7 @@ The starting point for defining the suite of tests for benchmarking the performa
 ----
 [RFC1242]:(http://www.ietf.org/rfc/rfc1242.txt)
 [RFC2544]:(http://www.ietf.org/rfc/rfc2544.txt)
-[RFC2885]:(http://www.ietf.org/rfc/rfc2885.txt)
+[RFC2285]:(http://www.ietf.org/rfc/rfc2285.txt)
 [RFC2889]:(http://www.ietf.org/rfc/rfc2889.txt)
 [RFC5481]:(http://www.ietf.org/rfc/rfc5481.txt)
 [RFC6201]:(http://www.ietf.org/rfc/rfc6201.txt)