175e5181b04cb89e755da7f93f82a4ed82a0a432
[csit.git] / docs / report / vpp_functional_tests / test_environment.rst
1 Test Environment\r
2 ================\r
3 \r
4 CSIT functional tests are currently executed in FD.IO VIRL testbed. The physical\r
5 VIRL testbed infrastructure consists of three VIRL hosts:\r
6 \r
7 - All hosts are Cisco UCS C240-M4 (2x Intel(R) Xeon(R) CPU E5-2699 v3 @2.30GHz,\r
8   18c, 512GB RAM)\r
9 \r
10 - tb4-virl1:\r
11 \r
12   - Status: Production\r
13   - OS: Ubuntu 16.04.2\r
14   - STD server version 0.10.32.16\r
15   - UWM server version 0.10.32.16\r
16 \r
17 - tb4-virl2:\r
18 \r
19   - Status: Production\r
20   - OS: Ubuntu 16.04.2\r
21   - STD server version 0.10.32.16\r
22   - UWM server version 0.10.32.16\r
23 \r
24 - tb4-virl3:\r
25 \r
26   - Status: Testing\r
27   - OS: Ubuntu 16.04.2\r
28   - STD server version 0.10.32.19\r
29   - UWM server version 0.10.32.19\r
30 \r
31 Whenever a patch is submitted to gerrit for review, parallel VIRL simulations\r
32 are started to reduce the time of execution of all functional tests. The number\r
33 of parallel VIRL simulations is equal to number of test groups defined by\r
34 TEST_GROUPS variable in :file:`csit/bootstrap.sh` file. The VIRL host to run\r
35 VIRL simulation is selected based on least load algorithm per VIRL simulation.\r
36 \r
37 Every VIRL simulation uses the same three-node - Traffic Generator (TG node) and\r
38 two Systems Under Test (SUT1 and SUT2) - "double-ring" topology. The appropriate\r
39 pre-built VPP packages built by Jenkins for the patch under review are then\r
40 installed on the two SUTs, along with their :file:`/etc/vpp/startup.conf` file,\r
41 in all VIRL simulations.\r
42 \r
43 SUT Configuration - VIRL Guest VM\r
44 ---------------------------------\r
45 \r
46 Configurations of the SUT VMs is defined in `VIRL topologies directory`_\r
47 \r
48 - List of SUT VM interfaces:::\r
49 \r
50     <interface id="0" name="GigabitEthernet0/4/0"/>\r
51     <interface id="1" name="GigabitEthernet0/5/0"/>\r
52     <interface id="2" name="GigabitEthernet0/6/0"/>\r
53     <interface id="3" name="GigabitEthernet0/7/0"/>\r
54 \r
55 - Number of 2MB hugepages: 1024\r
56 \r
57 - Maximum number of memory map areas: 20000\r
58 \r
59 - Kernel Shared Memory Max: 2147483648 (vm.nr_hugepages * 2 * 1024 * 1024)\r
60 \r
61 SUT Configuration - VIRL Guest OS Linux\r
62 ---------------------------------------\r
63 \r
64 In CSIT terminology, the VM operating system for both SUTs that |vpp-release| has\r
65 been tested with, is the following:\r
66 \r
67 #. **Ubuntu VIRL image**\r
68 \r
69    This image implies Ubuntu 16.04.1 LTS, current as of yyyy-mm-dd (that is,\r
70    package versions are those that would have been installed by a\r
71    :command:`apt-get update`, :command:`apt-get upgrade` on that day), produced\r
72    by CSIT disk image build scripts.\r
73 \r
74    The exact list of installed packages and their versions (including the Linux\r
75    kernel package version) are included in `VIRL ubuntu images lists`_.\r
76 \r
77    A replica of this VM image can be built by running the :command:`build.sh`\r
78    script in CSIT repository.\r
79 \r
80 #. **CentOS VIRL image**\r
81 \r
82    This image implies Centos 7.4-1711, current as of yyyy-mm-dd (that is,\r
83    package versions are those that would have been installed by a\r
84    :command:`yum update`, :command:`yum upgrade` on that day), produced\r
85    by CSIT disk image build scripts.\r
86 \r
87    The exact list of installed packages and their versions (including the Linux\r
88    kernel package version) are included in `VIRL centos images lists`_.\r
89 \r
90    A replica of this VM image can be built by running the :command:`build.sh`\r
91    script in CSIT repository.\r
92 \r
93 #. **Nested VM image**\r
94 \r
95    In addition to the "main" VM image, tests which require VPP to communicate to\r
96    a VM over a vhost-user interface, utilize a "nested" VM image.\r
97 \r
98    This "nested" VM is dynamically created and destroyed as part of a test case,\r
99    and therefore the "nested" VM image is optimized to be small, lightweight and\r
100    have a short boot time. The "nested" VM image is not built around any\r
101    established Linux distribution, but is based on `BuildRoot\r
102    <https://buildroot.org/>`_, a tool for building embedded Linux systems. Just\r
103    as for the "main" image, scripts to produce an identical replica of the\r
104    "nested" image are included in CSIT GIT repository, and the image can be\r
105    rebuilt using the "build.sh" script at `VIRL nested`_.\r
106 \r
107 DUT Configuration - VPP\r
108 -----------------------\r
109 \r
110 Every System Under Test runs VPP SW application in Linux user-mode as a Device\r
111 Under Test (DUT) node.\r
112 \r
113 **DUT port configuration**\r
114 \r
115 Port configuration of DUTs is defined in topology file that is generated per\r
116 VIRL simulation based on the definition stored in `VIRL topologies directory`_.\r
117 \r
118 Example of DUT nodes configuration:::\r
119 \r
120     DUT1:\r
121         type: DUT\r
122         host: "10.30.51.157"\r
123         port: 22\r
124         username: cisco\r
125         honeycomb:\r
126           user: admin\r
127           passwd: admin\r
128           port: 8183\r
129           netconf_port: 2831\r
130         priv_key: |\r
131           -----BEGIN RSA PRIVATE KEY-----\r
132           MIIEpgIBAAKCAQEAwUDlTpzSHpwLQotZOFS4AgcPNEWCnP1AB2hWFmvI+8Kah/gb\r
133           v8ruZU9RqhPs56tyKzxbhvNkY4VbH5F1GilHZu3mLqzM4KfghMmaeMEjO1T7BYYd\r
134           vuBfTvIluljfQ2vAlnYrDwn+ClxJk81m0pDgvrLEX4qVVh2sGh7UEkYy5r82DNa2\r
135           4VjzPB1J/c8a9zP8FoZUhYIzF4FLvRMjUADpbMXgJMsGpaZLmz95ap0Eot7vb1Cc\r
136           1LvF97iyBCrtIOSKRKA50ZhLGjMKmOwnYU+cP5718tbproDVi6VJOo7zeuXyetMs\r
137           8YBl9kWblWG9BqP9jctFvsmi5G7hXgq1Y8u+DwIDAQABAoIBAQC/W4E0DHjLMny7\r
138           0bvw2YKzD0Zw3fttdB94tkm4PdZv5MybooPnsAvLaXVV0hEdfVi5kzSWNl/LY/tN\r
139           EP1BgGphc2QgB59/PPxGwFIjDCvUzlsZpynBHe+B/qh5ExNQcVvsIOqWI7DXlXaN\r
140           0i/khOzmJ6HncRRah1spKimYRsaUUDskyg7q3QqMWVaqBbbMvLs/w7ZWd/zoDqCU\r
141           MY/pCI6hkB3QbRo0OdiZLohphBl2ShABTwjvVyyKL5UA4jAEneJrhH5gWVLXnfgD\r
142           p62W5CollKEYblC8mUkPxpP7Qo277zw3xaq+oktIZhc5SUEUd7nJZtNqVAHqkItW\r
143           79VmpKyxAoGBAPfU+kqNPaTSvp+x1n5sn2SgipzDtgi9QqNmC4cjtrQQaaqI57SG\r
144           OHw1jX8i7L2G1WvVtkHg060nlEVo5n65ffFOqeVBezLVJ7ghWI8U+oBiJJyQ4boD\r
145           GJVNsoOSUQ0rtuGd9eVwfDk3ol9aCN0KK53oPfIYli29pyu4l095kg11AoGBAMef\r
146           bPEMBI/2XmCPshLSwhGFl+dW8d+Klluj3CUQ/0vUlvma3dfBOYNsIwAgTP0iIUTg\r
147           8DYE6KBCdPtxAUEI0YAEAKB9ry1tKR2NQEIPfslYytKErtwjAiqSi0heM6+zwEzu\r
148           f54Z4oBhsMSL0jXoOMnu+NZzEc6EUdQeY4O+jhjzAoGBAIogC3dtjMPGKTP7+93u\r
149           UE/XIioI8fWg9fj3sMka4IMu+pVvRCRbAjRH7JrFLkjbUyuMqs3Arnk9K+gbdQt/\r
150           +m95Njtt6WoFXuPCwgbM3GidSmZwYT4454SfDzVBYScEDCNm1FuR+8ov9bFLDtGT\r
151           D4gsngnGJj1MDFXTxZEn4nzZAoGBAKCg4WmpUPaCuXibyB+rZavxwsTNSn2lJ83/\r
152           sYJGBhf/raiV/FLDUcM1vYg5dZnu37RsB/5/vqxOLZGyYd7x+Jo5HkQGPnKgNwhn\r
153           g8BkdZIRF8uEJqxOo0ycdOU7n/2O93swIpKWo5LIiRPuqqzj+uZKnAL7vuVdxfaY\r
154           qVz2daMPAoGBALgaaKa3voU/HO1PYLWIhFrBThyJ+BQSQ8OqrEzC8AnegWFxRAM8\r
155           EqrzZXl7ACUuo1dH0Eipm41j2+BZWlQjiUgq5uj8+yzy+EU1ZRRyJcOKzbDACeuD\r
156           BpWWSXGBI5G4CppeYLjMUHZpJYeX1USULJQd2c4crLJKb76E8gz3Z9kN\r
157           -----END RSA PRIVATE KEY-----\r
158 \r
159         interfaces:\r
160           port1:\r
161             mac_address: "fa:16:3e:9b:89:52"\r
162             pci_address: "0000:00:04.0"\r
163             link: link1\r
164           port2:\r
165             mac_address: "fa:16:3e:7a:33:60"\r
166             pci_address: "0000:00:05.0"\r
167             link: link4\r
168           port3:\r
169             mac_address: "fa:16:3e:29:b7:ae"\r
170             pci_address: "0000:00:06.0"\r
171             link: link3\r
172           port4:\r
173             mac_address: "fa:16:3e:76:8d:ff"\r
174             pci_address: "0000:00:07.0"\r
175             link: link6\r
176       DUT2:\r
177         type: DUT\r
178         host: "10.30.51.156"\r
179         port: 22\r
180         username: cisco\r
181         honeycomb:\r
182           user: admin\r
183           passwd: admin\r
184           port: 8183\r
185           netconf_port: 2831\r
186         priv_key: |\r
187           -----BEGIN RSA PRIVATE KEY-----\r
188           MIIEpgIBAAKCAQEAwUDlTpzSHpwLQotZOFS4AgcPNEWCnP1AB2hWFmvI+8Kah/gb\r
189           v8ruZU9RqhPs56tyKzxbhvNkY4VbH5F1GilHZu3mLqzM4KfghMmaeMEjO1T7BYYd\r
190           vuBfTvIluljfQ2vAlnYrDwn+ClxJk81m0pDgvrLEX4qVVh2sGh7UEkYy5r82DNa2\r
191           4VjzPB1J/c8a9zP8FoZUhYIzF4FLvRMjUADpbMXgJMsGpaZLmz95ap0Eot7vb1Cc\r
192           1LvF97iyBCrtIOSKRKA50ZhLGjMKmOwnYU+cP5718tbproDVi6VJOo7zeuXyetMs\r
193           8YBl9kWblWG9BqP9jctFvsmi5G7hXgq1Y8u+DwIDAQABAoIBAQC/W4E0DHjLMny7\r
194           0bvw2YKzD0Zw3fttdB94tkm4PdZv5MybooPnsAvLaXVV0hEdfVi5kzSWNl/LY/tN\r
195           EP1BgGphc2QgB59/PPxGwFIjDCvUzlsZpynBHe+B/qh5ExNQcVvsIOqWI7DXlXaN\r
196           0i/khOzmJ6HncRRah1spKimYRsaUUDskyg7q3QqMWVaqBbbMvLs/w7ZWd/zoDqCU\r
197           MY/pCI6hkB3QbRo0OdiZLohphBl2ShABTwjvVyyKL5UA4jAEneJrhH5gWVLXnfgD\r
198           p62W5CollKEYblC8mUkPxpP7Qo277zw3xaq+oktIZhc5SUEUd7nJZtNqVAHqkItW\r
199           79VmpKyxAoGBAPfU+kqNPaTSvp+x1n5sn2SgipzDtgi9QqNmC4cjtrQQaaqI57SG\r
200           OHw1jX8i7L2G1WvVtkHg060nlEVo5n65ffFOqeVBezLVJ7ghWI8U+oBiJJyQ4boD\r
201           GJVNsoOSUQ0rtuGd9eVwfDk3ol9aCN0KK53oPfIYli29pyu4l095kg11AoGBAMef\r
202           bPEMBI/2XmCPshLSwhGFl+dW8d+Klluj3CUQ/0vUlvma3dfBOYNsIwAgTP0iIUTg\r
203           8DYE6KBCdPtxAUEI0YAEAKB9ry1tKR2NQEIPfslYytKErtwjAiqSi0heM6+zwEzu\r
204           f54Z4oBhsMSL0jXoOMnu+NZzEc6EUdQeY4O+jhjzAoGBAIogC3dtjMPGKTP7+93u\r
205           UE/XIioI8fWg9fj3sMka4IMu+pVvRCRbAjRH7JrFLkjbUyuMqs3Arnk9K+gbdQt/\r
206           +m95Njtt6WoFXuPCwgbM3GidSmZwYT4454SfDzVBYScEDCNm1FuR+8ov9bFLDtGT\r
207           D4gsngnGJj1MDFXTxZEn4nzZAoGBAKCg4WmpUPaCuXibyB+rZavxwsTNSn2lJ83/\r
208           sYJGBhf/raiV/FLDUcM1vYg5dZnu37RsB/5/vqxOLZGyYd7x+Jo5HkQGPnKgNwhn\r
209           g8BkdZIRF8uEJqxOo0ycdOU7n/2O93swIpKWo5LIiRPuqqzj+uZKnAL7vuVdxfaY\r
210           qVz2daMPAoGBALgaaKa3voU/HO1PYLWIhFrBThyJ+BQSQ8OqrEzC8AnegWFxRAM8\r
211           EqrzZXl7ACUuo1dH0Eipm41j2+BZWlQjiUgq5uj8+yzy+EU1ZRRyJcOKzbDACeuD\r
212           BpWWSXGBI5G4CppeYLjMUHZpJYeX1USULJQd2c4crLJKb76E8gz3Z9kN\r
213           -----END RSA PRIVATE KEY-----\r
214 \r
215         interfaces:\r
216           port1:\r
217             mac_address: "fa:16:3e:ad:6c:7d"\r
218             pci_address: "0000:00:04.0"\r
219             link: link2\r
220           port2:\r
221             mac_address: "fa:16:3e:94:a4:99"\r
222             pci_address: "0000:00:05.0"\r
223             link: link5\r
224           port3:\r
225             mac_address: "fa:16:3e:75:92:da"\r
226             pci_address: "0000:00:06.0"\r
227             link: link3\r
228           port4:\r
229             mac_address: "fa:16:3e:2c:b1:2a"\r
230             pci_address: "0000:00:07.0"\r
231             link: link6\r
232 \r
233 **VPP Version**\r
234 \r
235 |vpp-release|\r
236 \r
237 **VPP Installed Packages - Ubuntu**\r
238 ::\r
239 \r
240     $ dpkg -l vpp\*\r
241     Desired=Unknown/Install/Remove/Purge/Hold\r
242     | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend\r
243     |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)\r
244     ||/ Name           Version       Architecture Description\r
245     +++-==============-=============-============-=================================================\r
246     ii  vpp            18.04-release amd64        Vector Packet Processing--executables\r
247     ii  vpp-dbg        18.04-release amd64        Vector Packet Processing--debug symbols\r
248     ii  vpp-dev        18.04-release amd64        Vector Packet Processing--development support\r
249     ii  vpp-dpdk-dkms  18.02-vpp1    amd64        DPDK Development Package for VPP - Kernel Modules\r
250     ii  vpp-lib        18.04-release amd64        Vector Packet Processing--runtime libraries\r
251     ii  vpp-plugins    18.04-release amd64        Vector Packet Processing--runtime plugins\r
252 \r
253 **VPP Installed Packages - Centos**\r
254 ::\r
255 \r
256     $ rpm -qai vpp*\r
257     Name        : vpp\r
258     Version     : 18.04\r
259     Release     : release\r
260     Architecture: x86_64\r
261     Install Date: Fri 04 May 2018 02:47:36 AM EDT\r
262     Group       : Unspecified\r
263     Size        : 2311324\r
264     License     : ASL 2.0\r
265     Signature   : (none)\r
266     Source RPM  : vpp-18.04-release.src.rpm\r
267     Build Date  : Wed 25 Apr 2018 01:00:24 PM EDT\r
268     Build Host  : c29a51c12e88\r
269     Relocations : (not relocatable)\r
270     Summary     : Vector Packet Processing\r
271     Description :\r
272     This package provides VPP executables: vpp, vpp_api_test, vpp_json_test\r
273     vpp - the vector packet engine\r
274     vpp_api_test - vector packet engine API test tool\r
275     vpp_json_test - vector packet engine JSON test tool\r
276     Name        : vpp-lib\r
277     Version     : 18.04\r
278     Release     : release\r
279     Architecture: x86_64\r
280     Install Date: Fri 04 May 2018 02:47:36 AM EDT\r
281     Group       : System Environment/Libraries\r
282     Size        : 24949034\r
283     License     : ASL 2.0\r
284     Signature   : (none)\r
285     Source RPM  : vpp-18.04-release.src.rpm\r
286     Build Date  : Wed 25 Apr 2018 01:00:24 PM EDT\r
287     Build Host  : c29a51c12e88\r
288     Relocations : (not relocatable)\r
289     Summary     : VPP libraries\r
290     Description :\r
291     This package contains the VPP shared libraries, including:\r
292     vppinfra - foundation library supporting vectors, hashes, bitmaps, pools, and string formatting.\r
293     svm - vm library\r
294     vlib - vector processing library\r
295     vlib-api - binary API library\r
296     vnet -  network stack library\r
297     Name        : vpp-selinux-policy\r
298     Version     : 18.04\r
299     Release     : release\r
300     Architecture: x86_64\r
301     Install Date: Fri 04 May 2018 02:47:35 AM EDT\r
302     Group       : System Environment/Base\r
303     Size        : 86170\r
304     License     : ASL 2.0\r
305     Signature   : (none)\r
306     Source RPM  : vpp-18.04-release.src.rpm\r
307     Build Date  : Wed 25 Apr 2018 01:00:24 PM EDT\r
308     Build Host  : c29a51c12e88\r
309     Relocations : (not relocatable)\r
310     Summary     : VPP Security-Enhanced Linux (SELinux) policy\r
311     Description :\r
312     This package contains a tailored VPP SELinux policy\r
313     Name        : vpp-devel\r
314     Version     : 18.04\r
315     Release     : release\r
316     Architecture: x86_64\r
317     Install Date: Fri 04 May 2018 02:47:38 AM EDT\r
318     Group       : Development/Libraries\r
319     Size        : 10632218\r
320     License     : ASL 2.0\r
321     Signature   : (none)\r
322     Source RPM  : vpp-18.04-release.src.rpm\r
323     Build Date  : Wed 25 Apr 2018 01:00:24 PM EDT\r
324     Build Host  : c29a51c12e88\r
325     Relocations : (not relocatable)\r
326     Summary     : VPP header files, static libraries\r
327     Description :\r
328     This package contains the header files for VPP.\r
329     Install this package if you want to write a\r
330     program for compilation and linking with vpp lib.\r
331     vlib\r
332     vlibmemory\r
333     vnet - devices, classify, dhcp, ethernet flow, gre, ip, etc.\r
334     vpp-api\r
335     vppinfra\r
336     Name        : vpp-plugins\r
337     Version     : 18.04\r
338     Release     : release\r
339     Architecture: x86_64\r
340     Install Date: Fri 04 May 2018 02:47:37 AM EDT\r
341     Group       : System Environment/Libraries\r
342     Size        : 44145968\r
343     License     : ASL 2.0\r
344     Signature   : (none)\r
345     Source RPM  : vpp-18.04-release.src.rpm\r
346     Build Date  : Wed 25 Apr 2018 01:00:24 PM EDT\r
347     Build Host  : c29a51c12e88\r
348     Relocations : (not relocatable)\r
349     Summary     : Vector Packet Processing--runtime plugins\r
350     Description :\r
351     This package contains VPP plugins\r
352 \r
353 **VPP Startup Configuration**\r
354 \r
355 VPP startup configuration is common for all test cases except test cases related\r
356 to SW Crypto device.\r
357 \r
358 **Default**\r
359 \r
360 ::\r
361 \r
362     $ cat /etc/vpp/startup.conf\r
363     unix {\r
364       nodaemon\r
365       log /var/log/vpp/vpp.log\r
366       full-coredump\r
367       cli-listen /run/vpp/cli.sock\r
368       gid vpp\r
369     }\r
370 \r
371     api-trace {\r
372     ## This stanza controls binary API tracing. Unless there is a very strong reason,\r
373     ## please leave this feature enabled.\r
374       on\r
375     ## Additional parameters:\r
376     ##\r
377     ## To set the number of binary API trace records in the circular buffer, configure nitems\r
378     ##\r
379     ## nitems <nnn>\r
380     ##\r
381     ## To save the api message table decode tables, configure a filename. Results in /tmp/<filename>\r
382     ## Very handy for understanding api message changes between versions, identifying missing\r
383     ## plugins, and so forth.\r
384     ##\r
385     ## save-api-table <filename>\r
386     }\r
387 \r
388     api-segment {\r
389       gid vpp\r
390     }\r
391 \r
392     cpu {\r
393         ## In the VPP there is one main thread and optionally the user can create worker(s)\r
394         ## The main thread and worker thread(s) can be pinned to CPU core(s) manually or automatically\r
395 \r
396         ## Manual pinning of thread(s) to CPU core(s)\r
397 \r
398         ## Set logical CPU core where main thread runs\r
399         # main-core 1\r
400 \r
401         ## Set logical CPU core(s) where worker threads are running\r
402         # corelist-workers 2-3,18-19\r
403 \r
404         ## Automatic pinning of thread(s) to CPU core(s)\r
405 \r
406         ## Sets number of CPU core(s) to be skipped (1 ... N-1)\r
407         ## Skipped CPU core(s) are not used for pinning main thread and working thread(s).\r
408         ## The main thread is automatically pinned to the first available CPU core and worker(s)\r
409         ## are pinned to next free CPU core(s) after core assigned to main thread\r
410         # skip-cores 4\r
411 \r
412         ## Specify a number of workers to be created\r
413         ## Workers are pinned to N consecutive CPU cores while skipping "skip-cores" CPU core(s)\r
414         ## and main thread's CPU core\r
415         # workers 2\r
416 \r
417         ## Set scheduling policy and priority of main and worker threads\r
418 \r
419         ## Scheduling policy options are: other (SCHED_OTHER), batch (SCHED_BATCH)\r
420         ## idle (SCHED_IDLE), fifo (SCHED_FIFO), rr (SCHED_RR)\r
421         # scheduler-policy fifo\r
422 \r
423         ## Scheduling priority is used only for "real-time policies (fifo and rr),\r
424         ## and has to be in the range of priorities supported for a particular policy\r
425         # scheduler-priority 50\r
426     }\r
427 \r
428     # dpdk {\r
429         ## Change default settings for all intefaces\r
430         # dev default {\r
431             ## Number of receive queues, enables RSS\r
432             ## Default is 1\r
433             # num-rx-queues 3\r
434 \r
435             ## Number of transmit queues, Default is equal\r
436             ## to number of worker threads or 1 if no workers treads\r
437             # num-tx-queues 3\r
438 \r
439             ## Number of descriptors in transmit and receive rings\r
440             ## increasing or reducing number can impact performance\r
441             ## Default is 1024 for both rx and tx\r
442             # num-rx-desc 512\r
443             # num-tx-desc 512\r
444 \r
445             ## VLAN strip offload mode for interface\r
446             ## Default is off\r
447             # vlan-strip-offload on\r
448         # }\r
449 \r
450         ## Whitelist specific interface by specifying PCI address\r
451         # dev 0000:02:00.0\r
452 \r
453         ## Whitelist specific interface by specifying PCI address and in\r
454         ## addition specify custom parameters for this interface\r
455         # dev 0000:02:00.1 {\r
456         #       num-rx-queues 2\r
457         # }\r
458 \r
459         ## Specify bonded interface and its slaves via PCI addresses\r
460         ##\r
461         ## Bonded interface in XOR load balance mode (mode 2) with L3 and L4 headers\r
462         # vdev eth_bond0,mode=2,slave=0000:02:00.0,slave=0000:03:00.0,xmit_policy=l34\r
463         # vdev eth_bond1,mode=2,slave=0000:02:00.1,slave=0000:03:00.1,xmit_policy=l34\r
464         ##\r
465         ## Bonded interface in Active-Back up mode (mode 1)\r
466         # vdev eth_bond0,mode=1,slave=0000:02:00.0,slave=0000:03:00.0\r
467         # vdev eth_bond1,mode=1,slave=0000:02:00.1,slave=0000:03:00.1\r
468 \r
469         ## Change UIO driver used by VPP, Options are: igb_uio, vfio-pci,\r
470         ## uio_pci_generic or auto (default)\r
471         # uio-driver vfio-pci\r
472 \r
473         ## Disable mutli-segment buffers, improves performance but\r
474         ## disables Jumbo MTU support\r
475         # no-multi-seg\r
476 \r
477         ## Increase number of buffers allocated, needed only in scenarios with\r
478         ## large number of interfaces and worker threads. Value is per CPU socket.\r
479         ## Default is 16384\r
480         # num-mbufs 128000\r
481 \r
482         ## Change hugepages allocation per-socket, needed only if there is need for\r
483         ## larger number of mbufs. Default is 256M on each detected CPU socket\r
484         # socket-mem 2048,2048\r
485 \r
486         ## Disables UDP / TCP TX checksum offload. Typically needed for use\r
487         ## faster vector PMDs (together with no-multi-seg)\r
488         # no-tx-checksum-offload\r
489     # }\r
490 \r
491 \r
492     # plugins {\r
493         ## Adjusting the plugin path depending on where the VPP plugins are\r
494         #       path /home/bms/vpp/build-root/install-vpp-native/vpp/lib64/vpp_plugins\r
495 \r
496         ## Disable all plugins by default and then selectively enable specific plugins\r
497         # plugin default { disable }\r
498         # plugin dpdk_plugin.so { enable }\r
499         # plugin acl_plugin.so { enable }\r
500 \r
501         ## Enable all plugins by default and then selectively disable specific plugins\r
502         # plugin dpdk_plugin.so { disable }\r
503         # plugin acl_plugin.so { disable }\r
504     # }\r
505 \r
506         ## Alternate syntax to choose plugin path\r
507         # plugin_path /home/bms/vpp/build-root/install-vpp-native/vpp/lib64/vpp_plugins\r
508 \r
509 **SW Crypto Device**\r
510 \r
511 ::\r
512 \r
513     $ cat /etc/vpp/startup.conf\r
514     unix\r
515     {\r
516       cli-listen /run/vpp/cli.sock\r
517       gid vpp\r
518       nodaemon\r
519       full-coredump\r
520       log /tmp/vpp.log\r
521     }\r
522     api-segment\r
523     {\r
524       gid vpp\r
525     }\r
526     dpdk\r
527     {\r
528       vdev cryptodev_aesni_gcm_pmd,socket_id=0\r
529       vdev cryptodev_aesni_mb_pmd,socket_id=0\r
530     }\r
531 \r
532 TG Configuration\r
533 ----------------\r
534 \r
535 Traffic Generator node is VM running the same OS Linux as SUTs. Ports of this\r
536 VM are used as source (Tx) and destination (Rx) ports for the traffic.\r
537 \r
538 Traffic scripts of test cases are executed on this VM.\r
539 \r
540 **TG VM configuration**\r
541 \r
542 Configuration of the TG VMs is defined in `VIRL topologies directory`_.\r
543 \r
544    /csit/resources/tools/virl/topologies/double-ring-nested.xenial.virl\r
545 \r
546 - List of TG VM interfaces:::\r
547 \r
548     <interface id="0" name="eth1"/>\r
549     <interface id="1" name="eth2"/>\r
550     <interface id="2" name="eth3"/>\r
551     <interface id="3" name="eth4"/>\r
552     <interface id="4" name="eth5"/>\r
553     <interface id="5" name="eth6"/>\r
554 \r
555 **TG node port configuration**\r
556 \r
557 Port configuration of TG is defined in topology file that is generated per VIRL\r
558 simulation based on the definition stored in `VIRL topologies directory`_.\r
559 \r
560 Example of TG node configuration:::\r
561 \r
562     TG:\r
563         type: TG\r
564         host: "10.30.51.155"\r
565         port: 22\r
566         username: cisco\r
567         priv_key: |\r
568           -----BEGIN RSA PRIVATE KEY-----\r
569           MIIEpgIBAAKCAQEAwUDlTpzSHpwLQotZOFS4AgcPNEWCnP1AB2hWFmvI+8Kah/gb\r
570           v8ruZU9RqhPs56tyKzxbhvNkY4VbH5F1GilHZu3mLqzM4KfghMmaeMEjO1T7BYYd\r
571           vuBfTvIluljfQ2vAlnYrDwn+ClxJk81m0pDgvrLEX4qVVh2sGh7UEkYy5r82DNa2\r
572           4VjzPB1J/c8a9zP8FoZUhYIzF4FLvRMjUADpbMXgJMsGpaZLmz95ap0Eot7vb1Cc\r
573           1LvF97iyBCrtIOSKRKA50ZhLGjMKmOwnYU+cP5718tbproDVi6VJOo7zeuXyetMs\r
574           8YBl9kWblWG9BqP9jctFvsmi5G7hXgq1Y8u+DwIDAQABAoIBAQC/W4E0DHjLMny7\r
575           0bvw2YKzD0Zw3fttdB94tkm4PdZv5MybooPnsAvLaXVV0hEdfVi5kzSWNl/LY/tN\r
576           EP1BgGphc2QgB59/PPxGwFIjDCvUzlsZpynBHe+B/qh5ExNQcVvsIOqWI7DXlXaN\r
577           0i/khOzmJ6HncRRah1spKimYRsaUUDskyg7q3QqMWVaqBbbMvLs/w7ZWd/zoDqCU\r
578           MY/pCI6hkB3QbRo0OdiZLohphBl2ShABTwjvVyyKL5UA4jAEneJrhH5gWVLXnfgD\r
579           p62W5CollKEYblC8mUkPxpP7Qo277zw3xaq+oktIZhc5SUEUd7nJZtNqVAHqkItW\r
580           79VmpKyxAoGBAPfU+kqNPaTSvp+x1n5sn2SgipzDtgi9QqNmC4cjtrQQaaqI57SG\r
581           OHw1jX8i7L2G1WvVtkHg060nlEVo5n65ffFOqeVBezLVJ7ghWI8U+oBiJJyQ4boD\r
582           GJVNsoOSUQ0rtuGd9eVwfDk3ol9aCN0KK53oPfIYli29pyu4l095kg11AoGBAMef\r
583           bPEMBI/2XmCPshLSwhGFl+dW8d+Klluj3CUQ/0vUlvma3dfBOYNsIwAgTP0iIUTg\r
584           8DYE6KBCdPtxAUEI0YAEAKB9ry1tKR2NQEIPfslYytKErtwjAiqSi0heM6+zwEzu\r
585           f54Z4oBhsMSL0jXoOMnu+NZzEc6EUdQeY4O+jhjzAoGBAIogC3dtjMPGKTP7+93u\r
586           UE/XIioI8fWg9fj3sMka4IMu+pVvRCRbAjRH7JrFLkjbUyuMqs3Arnk9K+gbdQt/\r
587           +m95Njtt6WoFXuPCwgbM3GidSmZwYT4454SfDzVBYScEDCNm1FuR+8ov9bFLDtGT\r
588           D4gsngnGJj1MDFXTxZEn4nzZAoGBAKCg4WmpUPaCuXibyB+rZavxwsTNSn2lJ83/\r
589           sYJGBhf/raiV/FLDUcM1vYg5dZnu37RsB/5/vqxOLZGyYd7x+Jo5HkQGPnKgNwhn\r
590           g8BkdZIRF8uEJqxOo0ycdOU7n/2O93swIpKWo5LIiRPuqqzj+uZKnAL7vuVdxfaY\r
591           qVz2daMPAoGBALgaaKa3voU/HO1PYLWIhFrBThyJ+BQSQ8OqrEzC8AnegWFxRAM8\r
592           EqrzZXl7ACUuo1dH0Eipm41j2+BZWlQjiUgq5uj8+yzy+EU1ZRRyJcOKzbDACeuD\r
593           BpWWSXGBI5G4CppeYLjMUHZpJYeX1USULJQd2c4crLJKb76E8gz3Z9kN\r
594           -----END RSA PRIVATE KEY-----\r
595 \r
596         interfaces:\r
597           port3:\r
598             mac_address: "fa:16:3e:b9:e1:27"\r
599             pci_address: "0000:00:06.0"\r
600             link: link1\r
601             driver: virtio-pci\r
602           port4:\r
603             mac_address: "fa:16:3e:e9:c8:68"\r
604             pci_address: "0000:00:07.0"\r
605             link: link4\r
606             driver: virtio-pci\r
607           port5:\r
608             mac_address: "fa:16:3e:e8:d3:47"\r
609             pci_address: "0000:00:08.0"\r
610             link: link2\r
611             driver: virtio-pci\r
612           port6:\r
613             mac_address: "fa:16:3e:cf:ca:58"\r
614             pci_address: "0000:00:09.0"\r
615             link: link5\r
616             driver: virtio-pci\r
617 \r
618 **Traffic generator**\r
619 \r
620 Functional tests utilize Scapy as a traffic generator. There was used Scapy\r
621 v2.3.1 for |vpp-release| tests.\r
622 \r