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