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