Update 2.0 doc
[nfvbench.git] / docs / testing / user / userguide / readme.rst
index 17ce889..9915653 100644 (file)
@@ -14,7 +14,7 @@ NFVbench supports the following main measurement capabilities:
     - *fixed rate* mode to generate traffic at a fixed rate for a fixed duration
     - NDR (No Drop Rate) and PDR (Partial Drop Rate) measurement mode
 - configurable frame sizes (any list of fixed sizes or 'IMIX')
-- built-in packet paths
+- built-in packet paths (PVP, PVVP)
 - built-in loopback VNFs based on fast L2 or L3 forwarders running in VMs
 - configurable number of flows and service chains
 - configurable traffic direction (single or bi-directional)
@@ -46,11 +46,21 @@ main purpose is to measure the performance of the NFVi infrastructure which is m
 
 External Chains
 ---------------
-NFVbench also supports settings that involve externally staged packet paths with or without OpenStack:
+NFVbench supports settings that involve externally staged packet paths with or without OpenStack:
 
 - run benchmarks on existing service chains at the L3 level that are staged externally by any other tool (e.g. any VNF capable of L3 routing)
 - run benchmarks on existing L2 chains that are configured externally (e.g. pure L2 forwarder such as DPDK testpmd)
 
+Direct L2 Loopback (Switch or wire loopback)
+--------------------------------------------
+NFVbench supports benchmarking of pure L2 loopbacks (see "--l2-loopback vlan" option)
+
+- Switch level loopback
+- Port to port wire loopback
+
+In this mode, NFVbench will take a vlan ID and send packets from each port to the other port
+(dest MAC set to the other port MAC) using the same VLAN ID on both ports.
+This can be useful for example to verify that the connectivity to the switch is working properly.
 
 Traffic Generation
 ------------------
@@ -96,37 +106,65 @@ PVP Packet Path
 
 This packet path represents a single service chain with 1 loopback VNF and 2 Neutron networks:
 
-.. image:: images/nfvbench-pvp.svg
+.. image:: images/nfvbench-pvp.png
 
 
 PVVP Packet Path
 ^^^^^^^^^^^^^^^^
 
 This packet path represents a single service chain with 2 loopback VNFs in sequence and 3 Neutron networks.
-The 2 VNFs can run on the same compute node (PVVP intra-node):
-
-.. image:: images/nfvbench-pvvp-intra.svg
-
-or on different compute nodes (PVVP inter-node) based on a configuration option:
-
-.. image:: images/nfvbench-pvvp-inter.svg
+The 2 VNFs will only run on the same compute node (PVVP intra-node):
 
+.. image:: images/nfvbench-pvvp.png
 
 
 Multi-Chaining (N*PVP or N*PVVP)
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 Multiple service chains can be setup by NFVbench without any limit on the concurrency (other than limits imposed by available resources on compute nodes).
-In the case of multiple service chains, NFVbench will instruct the traffic generator to use multiple L3 packet streams (frames directed to each path will have a unique destination MAC address).
+In the case of multiple service chains, NFVbench will instruct the traffic generator to use multiple L3 packet streams (frames directed to each path will
+have a unique destination MAC address).
 
 Example of multi-chaining with 2 concurrent PVP service chains:
 
-.. image:: images/nfvbench-npvp.svg
+.. image:: images/nfvbench-npvp.png
 
 This innovative feature will allow to measure easily the performance of a fully loaded compute node running multiple service chains.
 
-Multi-chaining is currently limited to 1 compute node (PVP or PVVP intra-node) or 2 compute nodes (for PVVP inter-node).
-The 2 edge interfaces for all service chains will share the same 2 networks.
+Multi-chaining is currently limited to 1 compute node (VMs run on the same compute node).
+The 2 edge interfaces for all service chains can either share the same 2 networks or can use
+dedicated networks (based on a configuration option).
+The total traffic will be split equally across all chains.
+
+
+SR-IOV
+^^^^^^
+
+By default, service chains will be based on virtual switch interfaces.
+
+NFVbench provides an option to select SR-IOV based virtual interfaces instead (thus bypassing any virtual switch) for those OpenStack system that include and support SR-IOV capable NICs on compute nodes.
+
+The PVP packet path will bypass the virtual switch completely when the SR-IOV option is selected:
+
+.. image:: images/nfvbench-sriov-pvp.png
+
+The PVVP packet path will use SR-IOV for the left and right networks and the virtual switch for the middle network by default:
+
+.. image:: images/nfvbench-sriov-pvvp.png
+
+Or in the case of inter-node:
+
+.. image:: images/nfvbench-sriov-pvvp2.png
+
+This packet path is a good way to approximate VM to VM (V2V) performance (middle network) given the high efficiency of the left and right networks. The V2V throughput will likely be very close to the PVVP throughput while its latency will be very close to the difference between the SR-IOV PVVP latency and the SR-IOV PVP latency.
+
+It is possible to also force the middle network to use SR-IOV (in this version, the middle network is limited to use the same SR-IOV phys net):
+
+.. image:: images/nfvbench-all-sriov-pvvp.png
+
+The chain can also span across 2 nodes with the use of 2 SR-IOV ports in each node:
+
+.. image:: images/nfvbench-all-sriov-pvvp2.png
 
 
 Other Misc Packet Paths
@@ -134,7 +172,7 @@ Other Misc Packet Paths
 
 P2P (Physical interface to Physical interface - no VM) can be supported using the external chain/L2 forwarding mode.
 
-V2V (VM to VM) is not supported but PVVP provides a more complete (and mroe realistic) alternative.
+V2V (VM to VM) is not supported but PVVP provides a more complete (and more realistic) alternative.
 
 
 Supported Neutron Network Plugins and vswitches
@@ -149,15 +187,9 @@ NFVbench is agnostic of the virtual switch implementation and has been tested wi
 - OVS/VLAN and OVS-DPDK/VLAN
 - ML2/ODL/VPP (OPNFV Fast Data Stack)
 
-SR-IOV
-^^^^^^
-
-By default, service chains will be based on virtual switch interfaces.
-
-NFVbench provides an option to select SR-IOV based virtual interfaces instead (thus bypassing any virtual switch) for those OpenStack system that include and support SR-IOV capable NICs on compute nodes.
-
-
-
-
 
 
+Limitations
+***********
+NFVbench only supports VLAN with OpenStack.
+VxLAN overlays is planned for a coming release.