00dcb0b40e39908c1021307cbe2de330375a5bbc
[csit.git] / docs / report / introduction / methodology_data_plane_throughput / methodology_data_plane_throughput.rst
1 .. _data_plane_throughput:
2
3 Data Plane Throughput Tests
4 ---------------------------
5
6 Network data plane throughput is measured using multiple test methods in
7 order to obtain representative and repeatable results across the large
8 set of performance test cases implemented and executed within CSIT.
9
10 Following throughput test methods are used:
11
12 - MLRsearch - Multiple Loss Ratio search
13 - MRR - Maximum Receive Rate
14 - PLRsearch - Probabilistic Loss Ratio search
15
16 ..
17     TODO: Add RECONF.
18
19 Description of each test method is followed by generic test properties
20 shared by all methods.
21
22 MLRsearch Tests
23 ^^^^^^^^^^^^^^^
24
25 Description
26 ~~~~~~~~~~~
27
28 Multiple Loss Ratio search (MLRsearch) tests discover multiple packet
29 throughput rates in a single search, reducing the overall test execution
30 time compared to a binary search. Each rate is associated with a
31 distinct Packet Loss Ratio (PLR) criteria. In FD.io CSIT two throughput
32 rates are discovered: Non-Drop Rate (NDR, with zero packet loss, PLR=0)
33 and Partial Drop Rate (PDR, with PLR<0.5%). MLRsearch is compliant with
34 :rfc:`2544`.
35
36 Usage
37 ~~~~~
38
39 MLRsearch tests are run to discover NDR and PDR rates for each VPP and
40 DPDK release covered by CSIT report. Results for small frame sizes
41 (64b/78B, IMIX) are presented in packet throughput graphs
42 (Box-and-Whisker Plots) with NDR and PDR rates plotted against the test
43 cases covering popular VPP packet paths.
44
45 Each test is executed at least 10 times to verify measurements
46 repeatability and results are compared between releases and test
47 environments. NDR and PDR packet and bandwidth throughput results for
48 all frame sizes and for all tests are presented in detailed results
49 tables.
50
51 Details
52 ~~~~~~~
53
54 See :ref:`mlrsearch_algorithm` section for more detail. MLRsearch is
55 being standardized in IETF in `draft-vpolak-mkonstan-mlrsearch
56 <https://tools.ietf.org/html/draft-vpolak-mkonstan-bmwg-mlrsearch>`_.
57
58 MRR Tests
59 ^^^^^^^^^
60
61 Description
62 ~~~~~~~~~~~
63
64 Maximum Receive Rate (MRR) tests are complementary to MLRsearch tests,
65 as they provide a maximum “raw” throughput benchmark for development and
66 testing community.
67
68 MRR tests measure the packet forwarding rate under the maximum load
69 offered by traffic generator (dependent on link type and NIC model) over
70 a set trial duration, regardless of packet loss. Maximum load for
71 specified Ethernet frame size is set to the bi-directional link rate.
72
73 Usage
74 ~~~~~
75
76 MRR tests are much faster than MLRsearch as they rely on a single trial
77 or a small set of trials with very short duration. It is this property
78 that makes them suitable for continuous execution in daily performance
79 trending jobs enabling detection of performance anomalies (regressions,
80 progressions) resulting from data plane code changes.
81
82 MRR tests are also used for VPP per patch performance jobs verifying
83 patch performance vs parent. CSIT reports include MRR throughput
84 comparisons between releases and test environments. Small frame sizes
85 only (64b/78B, IMIX).
86
87 Details
88 ~~~~~~~
89
90 See :ref:`mrr_throughput` section for more detail about MRR tests
91 configuration.
92
93 FD.io CSIT performance dashboard includes complete description of
94 `daily performance trending tests
95 <https://docs.fd.io/csit/master/trending/methodology/performance_tests.html>`_
96 and `VPP per patch tests
97 <https://docs.fd.io/csit/master/trending/methodology/perpatch_performance_tests.html>`_.
98
99 PLRsearch Tests
100 ^^^^^^^^^^^^^^^
101
102 Description
103 ~~~~~~~~~~~
104
105 Probabilistic Loss Ratio search (PLRsearch) tests discovers a packet
106 throughput rate associated with configured Packet Loss Ratio (PLR)
107 criteria for tests run over an extended period of time a.k.a. soak
108 testing. PLRsearch assumes that system under test is probabilistic in
109 nature, and not deterministic.
110
111 Usage
112 ~~~~~
113
114 PLRsearch are run to discover a sustained throughput for PLR=10^-7
115 (close to NDR) for VPP release covered by CSIT report. Results for small
116 frame sizes (64b/78B) are presented in packet throughput graphs (Box
117 Plots) for a small subset of baseline tests.
118
119 Each soak test lasts 30 minutes and is executed at least twice. Results are
120 compared against NDR and PDR rates discovered with MLRsearch.
121
122 Details
123 ~~~~~~~
124
125 See :ref:`plrsearch` methodology section for more detail. PLRsearch is
126 being standardized in IETF in `draft-vpolak-bmwg-plrsearch
127 <https://tools.ietf.org/html/draft-vpolak-bmwg-plrsearch>`_.
128
129 Generic Test Properties
130 ^^^^^^^^^^^^^^^^^^^^^^^
131
132 All data plane throughput test methodologies share following generic
133 properties:
134
135 - Tested L2 frame sizes (untagged Ethernet):
136
137   - IPv4 payload: 64B, IMIX (28x64B, 16x570B, 4x1518B), 1518B, 9000B.
138   - IPv6 payload: 78B, IMIX (28x78B, 16x570B, 4x1518B), 1518B, 9000B.
139   - All quoted sizes include frame CRC, but exclude per frame
140     transmission overhead of 20B (preamble, inter frame gap).
141
142 - Offered packet load is always bi-directional and symmetric.
143 - All measured and reported packet and bandwidth rates are aggregate
144   bi-directional rates reported from external Traffic Generator
145   perspective.