aae566e9e4ea0366d1dace16ad6cb7011bcc447a
[csit.git] / docs / report / vpp_performance_tests / packet_throughput_graphs / index.rst
1
2 .. raw:: latex
3
4     \clearpage
5
6 .. _VPP_Packet_Throughput:
7
8 Packet Throughput
9 =================
10
11 Throughput graphs are generated based on the results data obtained from
12 the |csit-release| test jobs. In order to verify benchmark results
13 repeatibility selected, CSIT performance tests are executed multiple
14 times (target: 10 times) on each physical testbed type. Box-and-Whisker
15 plots are used to display variations in measured throughput values.
16
17 Lists of tests selected for multiple execution and graphing are captured
18 per testbed type in `test_select_list_{testbed_type}.md
19 <https://git.fd.io/csit/tree/docs/job_specs>`_ files.
20
21 Graphs are split into sections as follows:
22
23 #. **Level-1: VPP packet path and lookup types**
24
25    - **L2 Ethernet Switching**: L2 bridge-doman, L2 cross-connect and L2 patch
26    - **IPv4 Routing**: IPv4 routing with /32 prefixes
27    - **IPv6 Routing**: IPv6 routing with /128 prefixes
28    - **SRv6 Routing**: SRv6 with IPv6 routing
29    - **IPv4 Tunnels**: IPv4 overlay tunnels
30    - **KVM VMs vhost-user**: KVM VMs connected over virtio and vhost-user interfaces
31    - **LXC/DRC Container Memif**: Linux containers and Docker containers connected over Memif interfaces
32    - **IPsec IPv4 Routing**: IPsec encryption/decryption with IPv4 routing
33    - **Virtual Topology System**: VXLAN configurations with L2 bridge-domains
34
35 #. **Level-2: testbeds and NIC models**
36
37    - section name format: {**testbed_type**}-{**nic_model**}
38    - **testbed_type**:
39      - 2n-skx: 2-node Xeon Skylake
40      - 3n-skx: 3-node Xeon Skylake
41      - 3n-hsw: 3-node Xeon Haswell
42      - 3n-tsh: 3-node Arm TaiShan
43      - 2n-dnv: 2-node Atom Denverton
44      - 3n-dnv: 3-node Atom Denverton
45    - **nic_model**:
46      - xxv710: xxv710 2p25GE Intel (Fortville)
47      - x710: x710 4p10GE Intel (Fortville)
48      - xl710: xl710 2p40GE Intel (Fortville)
49      - x520: x520 2p10GE Intel (Niantic)
50      - x553: x553 2p10GE Intel (Niantic)
51
52 #. **Level-3: test group names**
53
54    - section name format: {**frame_size**}-{**worker_thread_core_cfg**}-{**vpp_functionality**}-{**vpp_lookup_type**}-{**baseline_scale**}-{**nic_driver**}
55    - **frame_size**:
56     - 64b: 64 byte frames, smallest frame size for untagged IPv4 packets
57     - 78b: 78 byte frames, smallest frame size for untagged IPv6 packets
58     - 114b: VXLAN encapsulated L2 frames
59     - imix: a sequence of (7x64B, 4x570, 1x1518) byte frames
60    - **worker_thread_core_cfg**:
61      - 1t1c: 1 worker thread on 1 core, hyper-threading not used
62      - 2t1c: 2 worker threads on 1 core, hyper-threading used
63    - **vpp_functionality** (optional):
64      - features: including input-acl, output-acl, macip-iacl, nat44
65      - srv6: srv6 encap/decap, proxy
66      - link-bonding: L2 link aggregation with 1 or 2 bonded links
67      - ipsec: IPsec encryption/decryption with different ciphers
68      - vts: Virtual Topology System specific tests
69    - **vpp_lookup_type**:
70      - l2switching, ip4routing, ip6routing, ip4tunnel, vhost, memif
71    - **baseline_scale**:
72      - base: baseline tests with less than 10 forwarding entries
73      - scale: scale tests with up to 2 million forwarding entries
74      - base-scale: both baseline and scale tests grouped together
75    - **nic_driver**:
76      - avf: VPP native avf driver for Intel Fortville NICs
77      - i40e: dpdk poll mode driver for Intel Fortville NICs
78      - ixgbe: dpdk poll mode driver for Intel Niantic NICs
79
80 For each test case, Box-and-Whisker plots show the quartiles (Min, 1st
81 quartile / 25th percentile, 2nd quartile / 50th percentile / mean, 3rd
82 quartile / 75th percentile, Max) across collected data set. Outliers are
83 plotted as individual points.
84
85 Additional information about graph data:
86
87 #. **Graph Title**: describes tested packet path, testbed topology,
88    processor model, NIC model, packet size, number of cores and
89    threads used by data plane workers and indication of VPP DUT
90    configuration.
91
92 #. **X-axis Labels**: indices of individual test suites as listed in
93    Graph Legend.
94
95 #. **Y-axis Labels**: measured Packets Per Second [pps] throughput
96    values.
97
98 #. **Graph Legend**: lists X-axis indices with associated CSIT test
99    suites executed to generate graphed test results.
100
101 #. **Hover Information**: lists minimum, first quartile, median,
102    third quartile, and maximum. If either type of outlier is present the
103    whisker on the appropriate side is taken to 1.5×IQR from the quartile
104    (the "inner fence") rather than the max or min, and individual outlying
105    data points are displayed as unfilled circles (for suspected outliers)
106    or filled circles (for outliers). (The "outer fence" is 3×IQR from the
107    quartile.)
108
109 .. note::
110
111     Test results have been generated by
112     `FD.io test executor vpp performance job 3n-hsw`_,
113     `FD.io test executor vpp performance job 3n-skx`_ and
114     `FD.io test executor vpp performance job 2n-skx`_ with RF
115     result files csit-vpp-perf-|srelease|-\*.zip
116     `archived here <../../_static/archive/>`_.
117     Required per test case data set size is **10**, but for VPP tests
118     the actual size varies per test case and is <=10.
119
120 .. toctree::
121     :maxdepth: 3
122
123     l2
124     ip4
125     ip6
126     srv6
127     ip4_tunnels
128     vm_vhost
129     container_memif
130     ipsec
131     vts