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