Add a document describing vIPSEC testcase
[yardstick.git] / docs / testing / user / userguide / nsb / tc_vpp_baremetal_crypto_ipsec.rst
1 .. This work is licensed under a Creative Commons Attribution 4.0 International
2 .. License.
3 .. http://creativecommons.org/licenses/by/4.0
4 .. (c) OPNFV, 2019 Viosoft Corporation.
5
6 ***********************************************
7 Yardstick Test Case Description: NSB VPP IPSEC
8 ***********************************************
9
10 +------------------------------------------------------------------------------+
11 |NSB VPP test for vIPSEC characterization                                      |
12 |                                                                              |
13 +--------------+---------------------------------------------------------------+
14 |test case id  | tc_baremetal_rfc2544_ipv4_{crypto_dev}_{crypto_alg}           |
15 |              |                                                               |
16 |              | * crypto_dev = HW_cryptodev or SW_cryptodev;                  |
17 |              | * crypto_alg = aes-gcm or cbc-sha1;                           |
18 |              |                                                               |
19 +--------------+---------------------------------------------------------------+
20 |metric        | * Network Throughput NDR or PDR;                              |
21 |              | * Connections Per Second (CPS);                               |
22 |              | * Latency;                                                    |
23 |              | * Number of tunnels;                                          |
24 |              | * TG Packets Out;                                             |
25 |              | * TG Packets In;                                              |
26 |              | * VNF Packets Out;                                            |
27 |              | * VNF Packets In;                                             |
28 |              | * Dropped packets;                                            |
29 |              |                                                               |
30 +--------------+---------------------------------------------------------------+
31 |test purpose  | IPv4 IPsec tunnel mode performance test:                      |
32 |              |                                                               |
33 |              | * Finds and reports throughput NDR (Non Drop Rate) with zero  |
34 |              |   packet loss tolerance or throughput PDR (Partial Drop Rate) |
35 |              |   with non-zero packet loss tolerance (LT) expressed in       |
36 |              |   number of packets transmitted.                              |
37 |              |                                                               |
38 |              | * The IPSEC test cases are implemented to run in baremetal    |
39 |              |                                                               |
40 +--------------+---------------------------------------------------------------+
41 |configuration | The IPSEC test cases are listed below:                        |
42 |              |                                                               |
43 |              | * tc_baremetal_rfc2544_ipv4_hw_aesgcm_IMIX_trex.yaml          |
44 |              | * tc_baremetal_rfc2544_ipv4_hw_aesgcm_trex.yaml               |
45 |              | * tc_baremetal_rfc2544_ipv4_hw_cbcsha1_IMIX_trex.yaml         |
46 |              | * tc_baremetal_rfc2544_ipv4_hw_cbcsha1_trex.yaml              |
47 |              | * tc_baremetal_rfc2544_ipv4_sw_aesgcm_IMIX_trex.yaml          |
48 |              | * tc_baremetal_rfc2544_ipv4_sw_aesgcm_trex.yaml               |
49 |              | * tc_baremetal_rfc2544_ipv4_sw_cbcsha1_IMIX_trex.yaml         |
50 |              | * tc_baremetal_rfc2544_ipv4_sw_cbcsha1_trex.yaml              |
51 |              |                                                               |
52 |              | Test duration is set as 500sec for each test.                 |
53 |              | Packet size set as 64 bytes or higher.                        |
54 |              | Number of tunnels set as 1 or higher.                         |
55 |              | Number of connections set as 1 or higher                      |
56 |              | These can be configured                                       |
57 |              |                                                               |
58 +--------------+---------------------------------------------------------------+
59 |test tool     | Vector Packet Processing (VPP)                                |
60 |              | The VPP platform is an extensible framework that provides     |
61 |              | out-of-the-box production quality switch/router functionality.|
62 |              | Its high performance, proven technology, its modularity and,  |
63 |              | flexibility and rich feature set                              |
64 |              |                                                               |
65 +--------------+---------------------------------------------------------------+
66 |applicability | This VPP IPSEC test cases can be configured with different:   |
67 |              |                                                               |
68 |              | * packet sizes;                                               |
69 |              | * test durations;                                             |
70 |              | * tolerated loss;                                             |
71 |              | * crypto device type;                                         |
72 |              | * number of physical cores;                                   |
73 |              | * number of tunnels;                                          |
74 |              | * number of connections;                                      |
75 |              | * encryption algorithms - integrity algorithm;                |
76 |              |                                                               |
77 |              | Default values exist.                                         |
78 |              |                                                               |
79 +--------------+---------------------------------------------------------------+
80 |pre-test      | For Baremetal tests cases VPP and DPDK must be installed in   |
81 |conditions    | the hosts where the test is executed. The pod.yaml file must  |
82 |              | have the necessary system and NIC information                 |
83 |              |                                                               |
84 +--------------+---------------------------------------------------------------+
85 |test sequence | description and expected result                               |
86 |              |                                                               |
87 +--------------+---------------------------------------------------------------+
88 |step 1        | For Baremetal test: The TG and VNF are started on the hosts   |
89 |              | based on the pod file.                                        |
90 |              |                                                               |
91 +--------------+---------------------------------------------------------------+
92 |step 2        | Yardstick is connected with the TG and VNF by using ssh.      |
93 |              | The test will resolve the topology and instantiate the VNF    |
94 |              | and TG and collect the KPI's/metrics.                         |
95 |              |                                                               |
96 +--------------+---------------------------------------------------------------+
97 |step 3        | Test packets are generated by TG on links to DUTs. If the     |
98 |              | number of dropped packets is more than the tolerated loss     |
99 |              | the line rate or throughput is halved. This is done until     |
100 |              | the dropped packets are within an acceptable tolerated loss.  |
101 |              |                                                               |
102 |              | The KPI is the number of packets per second for a packet size |
103 |              | specified in the test case with an accepted minimal packet    |
104 |              | loss for the default configuration.                           |
105 |              |                                                               |
106 +--------------+---------------------------------------------------------------+
107 |step 4        | In Baremetal test: The test quits the application and unbind  |
108 |              | the DPDK ports.                                               |
109 |              |                                                               |
110 +--------------+---------------------------------------------------------------+
111 |test verdict  | The test case will achieve a Throughput with an accepted      |
112 |              | minimal tolerated packet loss.                                |
113 +--------------+---------------------------------------------------------------+