Add a document describing vIPSEC testcase 97/67697/1
authortreyad <treyad@viosoft.com>
Tue, 16 Oct 2018 17:15:34 +0000 (10:15 -0700)
committerRex Lee <limingjiang@huawei.com>
Thu, 25 Apr 2019 11:24:18 +0000 (11:24 +0000)
Create a test case description file for NSB vIPSEC

JIRA: YARDSTICK-1450

Change-Id: Iebaca9535e0ebc9f597d8e3c82c4339637eb3180
Signed-off-by: treyad <treyad@viosoft.com>
(cherry picked from commit ebd3b805b14a3f85c8db8b8ca9cd619abf0cde25)

docs/testing/user/userguide/14-nsb-operation.rst
docs/testing/user/userguide/nsb/nsb-list-of-tcs.rst
docs/testing/user/userguide/nsb/tc_vpp_baremetal_crypto_ipsec.rst [new file with mode: 0644]

index 12e2691..69ffb8a 100644 (file)
@@ -136,7 +136,7 @@ case, please follow the instructions below.
        image: yardstick-samplevnfs
        ...
        servers:
-         vnf__0:
+         vnf_0:
            ...
            availability_zone: <AZ_NAME>
            ...
@@ -332,8 +332,8 @@ Baremetal
        traffic_profile: ../../traffic_profiles/ipv4_throughput.yaml
        topology: vfw-tg-topology.yaml
        nodes:
-         tg__0: trafficgen_1.yardstick
-         vnf__0: vnf.yardstick
+         tg__0: trafficgen_0.yardstick
+         vnf__0: vnf_0.yardstick
        options:
          framesize:
            uplink: {64B: 100}
@@ -427,7 +427,7 @@ options section.
   scenarios:
     - type: NSPerf
       nodes:
-        tg__0: tg_0.yardstick
+        tg__0: trafficgen_0.yardstick
 
       options:
         tg_0:
@@ -640,3 +640,37 @@ A testcase can be started with the following command as an example:
 .. code-block:: bash
 
     yardstick task start /yardstick/samples/vnf_samples/nsut/vpe/tc_baremetal_rfc2544_ipv4_1flow_64B_ixia.yaml
+
+Preparing test run of vIPSEC test case
+------------------------------------
+
+Location of vIPSEC test cases: ``samples/vnf_samples/nsut/ipsec/``.
+
+Before running a specific vIPSEC test case using NSB, some dependencies have to be
+preinstalled and properly configured.
+- VPP
+
+.. code-block:: console
+
+    export UBUNTU="xenial"
+    export RELEASE=".stable.1810"
+    sudo rm /etc/apt/sources.list.d/99fd.io.list
+    echo "deb [trusted=yes] https://nexus.fd.io/content/repositories/fd.io$RELEASE.ubuntu.$UBUNTU.main/ ./" | sudo tee -a /etc/apt/sources.list.d/99fd.io.list
+    sudo apt-get update
+    sudo apt-get install vpp vpp-lib vpp-plugin vpp-dbg vpp-dev vpp-api-java vpp-api-python vpp-api-lua
+
+- VAT templates
+
+    VAT templates is required for the VPP API.
+
+.. code-block:: console
+
+    mkdir -p /opt/nsb_bin/vpp/templates/
+    echo 'exec trace add dpdk-input 50' > /opt/nsb_bin/vpp/templates/enable_dpdk_traces.vat
+    echo 'exec trace add vhost-user-input 50' > /opt/nsb_bin/vpp/templates/enable_vhost_user_traces.vat
+    echo 'exec trace add memif-input 50' > /opt/nsb_bin/vpp/templates/enable_memif_traces.vat
+    cat > /opt/nsb_bin/vpp/templates/dump_interfaces.vat << EOL
+    sw_interface_dump
+    dump_interface_table
+    quit
+    EOL
index 6c18c7d..a578216 100644 (file)
@@ -36,3 +36,4 @@ NSB PROX Test Case Descriptions
    tc_vfw_rfc2544
    tc_vfw_rfc2544_correlated
    tc_vfw_rfc3511
+   tc_vpp_baremetal_crypto_ipsec
diff --git a/docs/testing/user/userguide/nsb/tc_vpp_baremetal_crypto_ipsec.rst b/docs/testing/user/userguide/nsb/tc_vpp_baremetal_crypto_ipsec.rst
new file mode 100644 (file)
index 0000000..6a4a376
--- /dev/null
@@ -0,0 +1,113 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International
+.. License.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) OPNFV, 2019 Viosoft Corporation.
+
+***********************************************
+Yardstick Test Case Description: NSB VPP IPSEC
+***********************************************
+
++------------------------------------------------------------------------------+
+|NSB VPP test for vIPSEC characterization                                      |
+|                                                                              |
++--------------+---------------------------------------------------------------+
+|test case id  | tc_baremetal_rfc2544_ipv4_{crypto_dev}_{crypto_alg}           |
+|              |                                                               |
+|              | * crypto_dev = HW_cryptodev or SW_cryptodev;                  |
+|              | * crypto_alg = aes-gcm or cbc-sha1;                           |
+|              |                                                               |
++--------------+---------------------------------------------------------------+
+|metric        | * Network Throughput NDR or PDR;                              |
+|              | * Connections Per Second (CPS);                               |
+|              | * Latency;                                                    |
+|              | * Number of tunnels;                                          |
+|              | * TG Packets Out;                                             |
+|              | * TG Packets In;                                              |
+|              | * VNF Packets Out;                                            |
+|              | * VNF Packets In;                                             |
+|              | * Dropped packets;                                            |
+|              |                                                               |
++--------------+---------------------------------------------------------------+
+|test purpose  | IPv4 IPsec tunnel mode performance test:                      |
+|              |                                                               |
+|              | * Finds and reports throughput NDR (Non Drop Rate) with zero  |
+|              |   packet loss tolerance or throughput PDR (Partial Drop Rate) |
+|              |   with non-zero packet loss tolerance (LT) expressed in       |
+|              |   number of packets transmitted.                              |
+|              |                                                               |
+|              | * The IPSEC test cases are implemented to run in baremetal    |
+|              |                                                               |
++--------------+---------------------------------------------------------------+
+|configuration | The IPSEC test cases are listed below:                        |
+|              |                                                               |
+|              | * tc_baremetal_rfc2544_ipv4_hw_aesgcm_IMIX_trex.yaml          |
+|              | * tc_baremetal_rfc2544_ipv4_hw_aesgcm_trex.yaml               |
+|              | * tc_baremetal_rfc2544_ipv4_hw_cbcsha1_IMIX_trex.yaml         |
+|              | * tc_baremetal_rfc2544_ipv4_hw_cbcsha1_trex.yaml              |
+|              | * tc_baremetal_rfc2544_ipv4_sw_aesgcm_IMIX_trex.yaml          |
+|              | * tc_baremetal_rfc2544_ipv4_sw_aesgcm_trex.yaml               |
+|              | * tc_baremetal_rfc2544_ipv4_sw_cbcsha1_IMIX_trex.yaml         |
+|              | * tc_baremetal_rfc2544_ipv4_sw_cbcsha1_trex.yaml              |
+|              |                                                               |
+|              | Test duration is set as 500sec for each test.                 |
+|              | Packet size set as 64 bytes or higher.                        |
+|              | Number of tunnels set as 1 or higher.                         |
+|              | Number of connections set as 1 or higher                      |
+|              | These can be configured                                       |
+|              |                                                               |
++--------------+---------------------------------------------------------------+
+|test tool     | Vector Packet Processing (VPP)                                |
+|              | The VPP platform is an extensible framework that provides     |
+|              | out-of-the-box production quality switch/router functionality.|
+|              | Its high performance, proven technology, its modularity and,  |
+|              | flexibility and rich feature set                              |
+|              |                                                               |
++--------------+---------------------------------------------------------------+
+|applicability | This VPP IPSEC test cases can be configured with different:   |
+|              |                                                               |
+|              | * packet sizes;                                               |
+|              | * test durations;                                             |
+|              | * tolerated loss;                                             |
+|              | * crypto device type;                                         |
+|              | * number of physical cores;                                   |
+|              | * number of tunnels;                                          |
+|              | * number of connections;                                      |
+|              | * encryption algorithms - integrity algorithm;                |
+|              |                                                               |
+|              | Default values exist.                                         |
+|              |                                                               |
++--------------+---------------------------------------------------------------+
+|pre-test      | For Baremetal tests cases VPP and DPDK must be installed in   |
+|conditions    | the hosts where the test is executed. The pod.yaml file must  |
+|              | have the necessary system and NIC information                 |
+|              |                                                               |
++--------------+---------------------------------------------------------------+
+|test sequence | description and expected result                               |
+|              |                                                               |
++--------------+---------------------------------------------------------------+
+|step 1        | For Baremetal test: The TG and VNF are started on the hosts   |
+|              | based on the pod file.                                        |
+|              |                                                               |
++--------------+---------------------------------------------------------------+
+|step 2        | Yardstick is connected with the TG and VNF by using ssh.      |
+|              | The test will resolve the topology and instantiate the VNF    |
+|              | and TG and collect the KPI's/metrics.                         |
+|              |                                                               |
++--------------+---------------------------------------------------------------+
+|step 3        | Test packets are generated by TG on links to DUTs. If the     |
+|              | number of dropped packets is more than the tolerated loss     |
+|              | the line rate or throughput is halved. This is done until     |
+|              | the dropped packets are within an acceptable tolerated loss.  |
+|              |                                                               |
+|              | The KPI is the number of packets per second for a packet size |
+|              | specified in the test case with an accepted minimal packet    |
+|              | loss for the default configuration.                           |
+|              |                                                               |
++--------------+---------------------------------------------------------------+
+|step 4        | In Baremetal test: The test quits the application and unbind  |
+|              | the DPDK ports.                                               |
+|              |                                                               |
++--------------+---------------------------------------------------------------+
+|test verdict  | The test case will achieve a Throughput with an accepted      |
+|              | minimal tolerated packet loss.                                |
++--------------+---------------------------------------------------------------+
\ No newline at end of file