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