C-Docs: New structure
[csit.git] / docs / content / infrastructure / fdio_csit_logical_topologies.md
1 ---
2 title: "FD.io CSIT Logical Topologies"
3 weight: 5
4 ---
5
6 # FD.io CSIT Logical Topologies
7
8 CSIT VPP performance tests are executed on physical testbeds. Based on the
9 packet path thru server SUTs, three distinct logical topology types are used
10 for VPP DUT data plane testing:
11
12 1. NIC-to-NIC switching topologies.
13 2. VM service switching topologies.
14 3. Container service switching topologies.
15
16 ## NIC-to-NIC Switching
17
18 The simplest logical topology for software data plane application like
19 VPP is NIC-to-NIC switching. Tested topologies for 2-Node and 3-Node
20 testbeds are shown in figures below.
21
22 {{< figure src="/cdocs/logical-2n-nic2nic.svg" >}}
23
24 {{< figure src="/cdocs/logical-3n-nic2nic.svg" >}}
25
26 Server Systems Under Test (SUT) run VPP application in Linux user-mode
27 as a Device Under Test (DUT). Server Traffic Generator (TG) runs T-Rex
28 application. Physical connectivity between SUTs and TG is provided using
29 different drivers and NIC models that need to be tested for performance
30 (packet/bandwidth throughput and latency).
31
32 From SUT and DUT perspectives, all performance tests involve forwarding
33 packets between two (or more) physical Ethernet ports (10GE, 25GE, 40GE,
34 100GE). In most cases both physical ports on SUT are located on the same
35 NIC. The only exceptions are link bonding and 100GE tests. In the latter
36 case only one port per NIC can be driven at linerate due to PCIe Gen3
37 x16 slot bandwidth limiations. 100GE NICs are not supported in PCIe Gen3
38 x8 slots.
39
40 Note that reported VPP DUT performance results are specific to the SUTs
41 tested. SUTs with other processors than the ones used in FD.io lab are
42 likely to yield different results. A good rule of thumb, that can be
43 applied to estimate VPP packet thoughput for NIC-to-NIC switching
44 topology, is to expect the forwarding performance to be proportional to
45 processor core frequency for the same processor architecture, assuming
46 processor is the only limiting factor and all other SUT parameters are
47 equivalent to FD.io CSIT environment.
48
49 ## VM Service Switching
50
51 VM service switching topology test cases require VPP DUT to communicate
52 with Virtual Machines (VMs) over vhost-user virtual interfaces.
53
54 Two types of VM service topologies are tested:
55
56 1. "Parallel" topology with packets flowing within SUT from NIC(s) via
57    VPP DUT to VM, back to VPP DUT, then out thru NIC(s).
58 2. "Chained" topology (a.k.a. "Snake") with packets flowing within SUT
59    from NIC(s) via VPP DUT to VM, back to VPP DUT, then to the next VM,
60    back to VPP DUT and so on and so forth until the last VM in a chain,
61    then back to VPP DUT and out thru NIC(s).
62
63 For each of the above topologies, VPP DUT is tested in a range of L2
64 or IPv4/IPv6 configurations depending on the test suite. Sample VPP DUT
65 "Chained" VM service topologies for 2-Node and 3-Node testbeds with each
66 SUT running N of VM instances is shown in the figures below.
67
68 {{< figure src="/cdocs/logical-2n-vm-vhost.svg" >}}
69
70 {{< figure src="/cdocs/logical-3n-vm-vhost.svg" >}}
71
72 In "Chained" VM topologies, packets are switched by VPP DUT multiple
73 times: twice for a single VM, three times for two VMs, N+1 times for N
74 VMs. Hence the external throughput rates measured by TG and listed in
75 this report must be multiplied by N+1 to represent the actual VPP DUT
76 aggregate packet forwarding rate.
77
78 For "Parallel" service topology packets are always switched twice by VPP
79 DUT per service chain.
80
81 Note that reported VPP DUT performance results are specific to the SUTs
82 tested. SUTs with other processor than the ones used in FD.io lab are
83 likely to yield different results. Similarly to NIC-to-NIC switching
84 topology, here one can also expect the forwarding performance to be
85 proportional to processor core frequency for the same processor
86 architecture, assuming processor is the only limiting factor. However
87 due to much higher dependency on intensive memory operations in VM
88 service chained topologies and sensitivity to Linux scheduler settings
89 and behaviour, this estimation may not always yield good enough
90 accuracy.
91
92 ## Container Service Switching
93
94 Container service switching topology test cases require VPP DUT to
95 communicate with Containers (Ctrs) over memif virtual interfaces.
96
97 Three types of VM service topologies are tested in |csit-release|:
98
99 1. "Parallel" topology with packets flowing within SUT from NIC(s) via
100    VPP DUT to Container, back to VPP DUT, then out thru NIC(s).
101 2. "Chained" topology (a.k.a. "Snake") with packets flowing within SUT
102    from NIC(s) via VPP DUT to Container, back to VPP DUT, then to the
103    next Container, back to VPP DUT and so on and so forth until the
104    last Container in a chain, then back to VPP DUT and out thru NIC(s).
105 3. "Horizontal" topology with packets flowing within SUT from NIC(s) via
106    VPP DUT to Container, then via "horizontal" memif to the next
107    Container, and so on and so forth until the last Container, then
108    back to VPP DUT and out thru NIC(s).
109
110 For each of the above topologies, VPP DUT is tested in a range of L2
111 or IPv4/IPv6 configurations depending on the test suite. Sample VPP DUT
112 "Chained" Container service topologies for 2-Node and 3-Node testbeds
113 with each SUT running N of Container instances is shown in the figures
114 below.
115
116 {{< figure src="/cdocs/logical-2n-container-memif.svg" >}}
117
118 {{< figure src="/cdocs/logical-3n-container-memif.svg" >}}
119
120 In "Chained" Container topologies, packets are switched by VPP DUT
121 multiple times: twice for a single Container, three times for two
122 Containers, N+1 times for N Containers. Hence the external throughput
123 rates measured by TG and listed in this report must be multiplied by N+1
124 to represent the actual VPP DUT aggregate packet forwarding rate.
125
126 For a "Parallel" and "Horizontal" service topologies packets are always
127 switched by VPP DUT twice per service chain.
128
129 Note that reported VPP DUT performance results are specific to the SUTs
130 tested. SUTs with other processor than the ones used in FD.io lab are
131 likely to yield different results. Similarly to NIC-to-NIC switching
132 topology, here one can also expect the forwarding performance to be
133 proportional to processor core frequency for the same processor
134 architecture, assuming processor is the only limiting factor. However
135 due to much higher dependency on intensive memory operations in
136 Container service chained topologies and sensitivity to Linux scheduler
137 settings and behaviour, this estimation may not always yield good enough
138 accuracy.