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