feat(methodology): add file for reassembly tests
[csit.git] / docs / content / methodology / test / reassembly.md
1 ---
2 title: "Reassembly"
3 weight: 10
4 ---
5
6 # Packet reassembly performance
7
8 IP protocols (mainly IPv4) specify conditions for packet fragmentation
9 and packet reassembly. For VPP, the reassembly operation is more CPU intensive.
10 By default, VPP avoids unnecessary work, so there are only few scenarios
11 where VPP fragments IP packets, and even less scenarios where it reassemblies
12 the fragmented packets.
13
14 The typical situation when fragmentation is performed occurs with
15 tunnel encapsulation protocols, when the packet after encapsulation
16 would not fit into interface MTU (maximum transmission unit).
17 Some, but not all, encapsulation protocols also require
18 packet reassembly for decapsulation.
19
20 As the search algorithms used in CSIT work best when the number of packets
21 coming from TG (traffic generator) is the same
22 as the number of packets expected to come back to TG,
23 the easiest way to test reassembly performance of VPP is using
24 a 3-node testbed and a tunneling test suite adapted to cause fragmentation.
25
26 ## MTU
27
28 By default, testbeds in CSIT are configured with MTU high enough
29 for encapsulated packets to fit in.
30 Not all devices and drivers used by VPP do support lowering MTU value.
31 For reassembly tests, only the physical interfaces on the DUT1-DUT2 link
32 have lowered MTU, and that currently works only with dpdk plugin.
33
34 ## Impacts
35
36 Reassembly suites with small number of flows and tunnels
37 usually place encapsulation+fragmentation and reassembly+decapsulation
38 on different workers, so the bottleneck seen in performance results
39 is not affected by fragmentation performance.
40
41 Reassembly suites with high number of flows and tunnels
42 achieve balanced load on all workers, so their overall performance
43 is affected by both fragmentation and reassembly performance.
44
45 Some protocols (e.g. IPsec) are CPU intensive not only
46 on fragmentation and reassembly, but also on encapsulation and decapsulation.
47 Reassembly (and depending on scale also fragmentation) impact
48 on those tests can still be visible, at least for big regressions.