030f4ddafecb3c6fbda46f215ad6969a4be09574
[csit.git] / docs / report / vpp_performance_tests / packet_throughput_graphs / ipsec.rst
1 IPSec Crypto HW: IP4 Routed-Forwarding
2 ======================================
3
4 Following sections include summary graphs of VPP Phy-to-Phy performance with
5 IPSec encryption used in combination with IPv4 routed-forwarding,
6 including NDR throughput (zero packet loss) and PDR throughput (<0.5%
7 packet loss). VPP IPSec encryption is accelerated using DPDK cryptodev
8 library driving Intel Quick Assist (QAT) crypto PCIe hardware cards.
9 Performance is reported for VPP running in multiple configurations of
10 VPP worker thread(s), a.k.a. VPP data plane thread(s), and their
11 physical CPU core(s) placement.
12
13 Results are generated by multiple executions of the same CSIT tests.
14 In order to display variation in measured throughput values, Box-and-
15 whisker plots are used to show their quartiles (Min, 1st quartile / 25th
16 percentile, 2nd quartile / 50th percentile / mean, 3rd quartile / 75th
17 percentile, Max). Outliers are plotted as individual points.
18
19 *Title of each graph* is a regex (regular expression) matching all
20 throughput test cases plotted on this graph, *X-axis labels* are indices
21 of individual test suites executed by csit-vpp-perf-1704-all jobs that
22 created result output files used as data sources for the graph, *Y-axis
23 labels* are measured Packets Per Second [pps] values, and the *Graph
24 legend* lists the plotted test suites and their indices.
25
26 .. note::
27
28     Test results have been generated by FD.io test executor jobs
29     `csit-vpp-perf-1704-all
30     <https://jenkins.fd.io/view/csit/job/csit-vpp-perf-1704-all/>`_,
31     with Robot Framework result files csit-vpp-perf-1704-all-<id>.zip
32     `archived here <../../_static/archive/>`_
33
34 NDR Throughput
35 ~~~~~~~~~~~~~~
36
37 VPP NDR Throughput - running in configuration of **one worker thread (1t) on
38 one physical core (1c)** - is presented in the figure below.
39
40 .. raw:: html
41
42     <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/64B-1t1c-ipsechw-ndrdisc.html"></iframe>
43
44 *Figure 1. VPP 1thread 1core - NDR Throughput for Phy-to-Phy IPSEC HW.*
45
46 CSIT source code for the test cases used for above plots can be found in CSIT
47 git repository:
48
49 .. code-block:: bash
50
51     $ cd $CSIT/tests/perf
52     $ grep -E "64B-1t1c-.*ipsec.*-ndrdisc" *
53
54     40ge2p1xl710-ethip4ipsecscaleip4-ip4base-interfaces-aes-gcm-ndrpdrdisc.robot:| tc01-64B-1t1c-ethip4ipsecscale1ip4-ip4base-interfaces-aes-gcm-ndrdisc
55     40ge2p1xl710-ethip4ipsecscaleip4-ip4base-interfaces-aes-gcm-ndrpdrdisc.robot:| tc03-64B-1t1c-ethip4ipsecscale1000ip4-ip4base-interfaces-aes-gcm-ndrdisc
56     40ge2p1xl710-ethip4ipsecscaleip4-ip4base-interfaces-cbc-sha1-ndrpdrdisc.robot:| tc01-64B-1t1c-ethip4ipsecscale1ip4-ip4base-interfaces-cbc-sha1-ndrdisc
57     40ge2p1xl710-ethip4ipsecscaleip4-ip4base-interfaces-cbc-sha1-ndrpdrdisc.robot:| tc03-64B-1t1c-ethip4ipsecscale1000ip4-ip4base-interfaces-cbc-sha1-ndrdisc
58     40ge2p1xl710-ethip4ipsecscaleip4-ip4base-tunnels-aes-gcm-ndrpdrdisc.robot:| tc01-64B-1t1c-ethip4ipsecscale1ip4-ip4base-tunnels-aes-gcm-ndrdisc
59     40ge2p1xl710-ethip4ipsecscaleip4-ip4base-tunnels-aes-gcm-ndrpdrdisc.robot:| tc03-64B-1t1c-ethip4ipsecscale1000ip4-ip4base-tunnels-aes-gcm-ndrdisc
60     40ge2p1xl710-ethip4ipsecscaleip4-ip4base-tunnels-cbc-sha1-ndrpdrdisc.robot:| tc01-64B-1t1c-ethip4ipsecscale1ip4-ip4base-tunnels-cbc-sha1-ndrdisc
61     40ge2p1xl710-ethip4ipsecscaleip4-ip4base-tunnels-cbc-sha1-ndrpdrdisc.robot:| tc03-64B-1t1c-ethip4ipsecscale1000ip4-ip4base-tunnels-cbc-sha1-ndrdisc
62     40ge2p1xl710-ethip4ipsectptlispgpe-ip4base-cbc-sha1-ndrpdrdisc.robot:| tc01-64B-1t1c-ethip4ipsectptlispgpe-ip4base-cbc-sha1-ndrdisc
63
64
65 VPP NDR Throughput - running in configuration of **two worker threads (2t) on
66 two physical cores (2c)** - is presented in the figure below.
67
68 .. raw:: html
69
70     <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/64B-2t2c-ipsechw-ndrdisc.html"></iframe>
71
72 *Figure 2. VPP 2threads 2cores - NDR Throughput for Phy-to-Phy IPSEC HW.*
73
74 CSIT source code for the test cases used for above plots can be found in CSIT
75 git repository:
76
77 .. code-block:: bash
78
79     $ cd $CSIT/tests/perf
80     $ grep -E "64B-2t2c-.*ipsec.*-ndrdisc" *
81
82     40ge2p1xl710-ethip4ipsecscaleip4-ip4base-interfaces-aes-gcm-ndrpdrdisc.robot:| tc13-64B-2t2c-ethip4ipsecscale1ip4-ip4base-interfaces-aes-gcm-ndrdisc
83     40ge2p1xl710-ethip4ipsecscaleip4-ip4base-interfaces-aes-gcm-ndrpdrdisc.robot:| tc15-64B-2t2c-ethip4ipsecscale1000ip4-ip4base-interfaces-aes-gcm-ndrdisc
84     40ge2p1xl710-ethip4ipsecscaleip4-ip4base-interfaces-cbc-sha1-ndrpdrdisc.robot:| tc13-64B-2t2c-ethip4ipsecscale1ip4-ip4base-interfaces-cbc-sha1-ndrdisc
85     40ge2p1xl710-ethip4ipsecscaleip4-ip4base-interfaces-cbc-sha1-ndrpdrdisc.robot:| tc15-64B-2t2c-ethip4ipsecscale1000ip4-ip4base-interfaces-cbc-sha1-ndrdisc
86     40ge2p1xl710-ethip4ipsecscaleip4-ip4base-tunnels-aes-gcm-ndrpdrdisc.robot:| tc13-64B-2t2c-ethip4ipsecscale1ip4-ip4base-tunnels-aes-gcm-ndrdisc
87     40ge2p1xl710-ethip4ipsecscaleip4-ip4base-tunnels-aes-gcm-ndrpdrdisc.robot:| tc15-64B-2t2c-ethip4ipsecscale1000ip4-ip4base-tunnels-aes-gcm-ndrdisc
88     40ge2p1xl710-ethip4ipsecscaleip4-ip4base-tunnels-cbc-sha1-ndrpdrdisc.robot:| tc13-64B-2t2c-ethip4ipsecscale1ip4-ip4base-tunnels-cbc-sha1-ndrdisc
89     40ge2p1xl710-ethip4ipsecscaleip4-ip4base-tunnels-cbc-sha1-ndrpdrdisc.robot:| tc15-64B-2t2c-ethip4ipsecscale1000ip4-ip4base-tunnels-cbc-sha1-ndrdisc
90     40ge2p1xl710-ethip4ipsectptlispgpe-ip4base-cbc-sha1-ndrpdrdisc.robot:| tc07-64B-2t2c-ethip4ipsectptlispgpe-ip4base-cbc-sha1-ndrdisc
91
92 PDR Throughput
93 ~~~~~~~~~~~~~~
94
95 VPP PDR Throughput - running in configuration of **one worker thread (1t) on one
96 physical core (1c)** - is presented in the figure below. PDR at below 0.5%
97 packet loss ratio.
98
99 .. raw:: html
100
101     <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/64B-1t1c-ipsechw-pdrdisc.html"></iframe>
102
103 *Figure 3. VPP 1thread 1core - PDR Throughput for Phy-to-Phy IPSEC HW.*
104
105 CSIT source code for the test cases used for above plots can be found in CSIT
106 git repository:
107
108 .. code-block:: bash
109
110     $ cd $CSIT/tests/perf
111     $ grep -E "64B-1t1c-.*ipsec.*-pdrdisc" *
112
113     40ge2p1xl710-ethip4ipsecscaleip4-ip4base-interfaces-aes-gcm-ndrpdrdisc.robot:| tc02-64B-1t1c-ethip4ipsecscale1ip4-ip4base-interfaces-aes-gcm-pdrdisc
114     40ge2p1xl710-ethip4ipsecscaleip4-ip4base-interfaces-aes-gcm-ndrpdrdisc.robot:| tc04-64B-1t1c-ethip4ipsecscale1000ip4-ip4base-interfaces-aes-gcm-pdrdisc
115     40ge2p1xl710-ethip4ipsecscaleip4-ip4base-interfaces-cbc-sha1-ndrpdrdisc.robot:| tc02-64B-1t1c-ethip4ipsecscale1ip4-ip4base-interfaces-cbc-sha1-pdrdisc
116     40ge2p1xl710-ethip4ipsecscaleip4-ip4base-interfaces-cbc-sha1-ndrpdrdisc.robot:| tc04-64B-1t1c-ethip4ipsecscale1000ip4-ip4base-interfaces-cbc-sha1-pdrdisc
117     40ge2p1xl710-ethip4ipsecscaleip4-ip4base-tunnels-aes-gcm-ndrpdrdisc.robot:| tc02-64B-1t1c-ethip4ipsecscale1ip4-ip4base-tunnels-aes-gcm-pdrdisc
118     40ge2p1xl710-ethip4ipsecscaleip4-ip4base-tunnels-aes-gcm-ndrpdrdisc.robot:| tc04-64B-1t1c-ethip4ipsecscale1000ip4-ip4base-tunnels-aes-gcm-pdrdisc
119     40ge2p1xl710-ethip4ipsecscaleip4-ip4base-tunnels-cbc-sha1-ndrpdrdisc.robot:| tc02-64B-1t1c-ethip4ipsecscale1ip4-ip4base-tunnels-cbc-sha1-pdrdisc
120     40ge2p1xl710-ethip4ipsecscaleip4-ip4base-tunnels-cbc-sha1-ndrpdrdisc.robot:| tc04-64B-1t1c-ethip4ipsecscale1000ip4-ip4base-tunnels-cbc-sha1-pdrdisc
121     40ge2p1xl710-ethip4ipsectptlispgpe-ip4base-cbc-sha1-ndrpdrdisc.robot:| tc02-64B-1t1c-ethip4ipsectptlispgpe-ip4base-cbc-sha1-pdrdisc
122
123
124 VPP PDR Throughput - running in configuration of **two worker threads (2t) on
125 two physical cores (2c)** - is presented in the figure below.
126
127 .. raw:: html
128
129     <iframe width="700" height="1000" frameborder="0" scrolling="no" src="../../_static/vpp/64B-2t2c-ipsechw-pdrdisc.html"></iframe>
130
131 *Figure 4. VPP 2thread 2core - PDR Throughput for Phy-to-Phy IPSEC HW.*
132
133 CSIT source code for the test cases used for above plots can be found in CSIT
134 git repository:
135
136 .. code-block:: bash
137
138     $ cd $CSIT/tests/perf
139     $ grep -E "64B-2t2c-.*ipsec.*-pdrdisc" *
140
141     40ge2p1xl710-ethip4ipsecscaleip4-ip4base-interfaces-aes-gcm-ndrpdrdisc.robot:| tc14-64B-2t2c-ethip4ipsecscale1ip4-ip4base-interfaces-aes-gcm-pdrdisc
142     40ge2p1xl710-ethip4ipsecscaleip4-ip4base-interfaces-aes-gcm-ndrpdrdisc.robot:| tc16-64B-2t2c-ethip4ipsecscale1000ip4-ip4base-interfaces-aes-gcm-pdrdisc
143     40ge2p1xl710-ethip4ipsecscaleip4-ip4base-interfaces-cbc-sha1-ndrpdrdisc.robot:| tc14-64B-2t2c-ethip4ipsecscale1ip4-ip4base-interfaces-cbc-sha1-pdrdisc
144     40ge2p1xl710-ethip4ipsecscaleip4-ip4base-interfaces-cbc-sha1-ndrpdrdisc.robot:| tc16-64B-2t2c-ethip4ipsecscale1000ip4-ip4base-interfaces-cbc-sha1-pdrdisc
145     40ge2p1xl710-ethip4ipsecscaleip4-ip4base-tunnels-aes-gcm-ndrpdrdisc.robot:| tc14-64B-2t2c-ethip4ipsecscale1ip4-ip4base-tunnels-aes-gcm-pdrdisc
146     40ge2p1xl710-ethip4ipsecscaleip4-ip4base-tunnels-aes-gcm-ndrpdrdisc.robot:| tc16-64B-2t2c-ethip4ipsecscale1000ip4-ip4base-tunnels-aes-gcm-pdrdisc
147     40ge2p1xl710-ethip4ipsecscaleip4-ip4base-tunnels-cbc-sha1-ndrpdrdisc.robot:| tc14-64B-2t2c-ethip4ipsecscale1ip4-ip4base-tunnels-cbc-sha1-pdrdisc
148     40ge2p1xl710-ethip4ipsecscaleip4-ip4base-tunnels-cbc-sha1-ndrpdrdisc.robot:| tc16-64B-2t2c-ethip4ipsecscale1000ip4-ip4base-tunnels-cbc-sha1-pdrdisc
149     40ge2p1xl710-ethip4ipsectptlispgpe-ip4base-cbc-sha1-ndrpdrdisc.robot:| tc08-64B-2t2c-ethip4ipsectptlispgpe-ip4base-cbc-sha1-pdrdisc
150