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