Fix: Report: Titles format
[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|
66 has 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 ::
123
124     DUT1:
125         type: DUT
126         host: "10.30.51.157"
127         port: 22
128         username: cisco
129         honeycomb:
130           user: admin
131           passwd: admin
132           port: 8183
133           netconf_port: 2831
134         priv_key: |
135           -----BEGIN RSA PRIVATE KEY-----
136           MIIEpgIBAAKCAQEAwUDlTpzSHpwLQotZOFS4AgcPNEWCnP1AB2hWFmvI+8Kah/gb
137           v8ruZU9RqhPs56tyKzxbhvNkY4VbH5F1GilHZu3mLqzM4KfghMmaeMEjO1T7BYYd
138           vuBfTvIluljfQ2vAlnYrDwn+ClxJk81m0pDgvrLEX4qVVh2sGh7UEkYy5r82DNa2
139           4VjzPB1J/c8a9zP8FoZUhYIzF4FLvRMjUADpbMXgJMsGpaZLmz95ap0Eot7vb1Cc
140           1LvF97iyBCrtIOSKRKA50ZhLGjMKmOwnYU+cP5718tbproDVi6VJOo7zeuXyetMs
141           8YBl9kWblWG9BqP9jctFvsmi5G7hXgq1Y8u+DwIDAQABAoIBAQC/W4E0DHjLMny7
142           0bvw2YKzD0Zw3fttdB94tkm4PdZv5MybooPnsAvLaXVV0hEdfVi5kzSWNl/LY/tN
143           EP1BgGphc2QgB59/PPxGwFIjDCvUzlsZpynBHe+B/qh5ExNQcVvsIOqWI7DXlXaN
144           0i/khOzmJ6HncRRah1spKimYRsaUUDskyg7q3QqMWVaqBbbMvLs/w7ZWd/zoDqCU
145           MY/pCI6hkB3QbRo0OdiZLohphBl2ShABTwjvVyyKL5UA4jAEneJrhH5gWVLXnfgD
146           p62W5CollKEYblC8mUkPxpP7Qo277zw3xaq+oktIZhc5SUEUd7nJZtNqVAHqkItW
147           79VmpKyxAoGBAPfU+kqNPaTSvp+x1n5sn2SgipzDtgi9QqNmC4cjtrQQaaqI57SG
148           OHw1jX8i7L2G1WvVtkHg060nlEVo5n65ffFOqeVBezLVJ7ghWI8U+oBiJJyQ4boD
149           GJVNsoOSUQ0rtuGd9eVwfDk3ol9aCN0KK53oPfIYli29pyu4l095kg11AoGBAMef
150           bPEMBI/2XmCPshLSwhGFl+dW8d+Klluj3CUQ/0vUlvma3dfBOYNsIwAgTP0iIUTg
151           8DYE6KBCdPtxAUEI0YAEAKB9ry1tKR2NQEIPfslYytKErtwjAiqSi0heM6+zwEzu
152           f54Z4oBhsMSL0jXoOMnu+NZzEc6EUdQeY4O+jhjzAoGBAIogC3dtjMPGKTP7+93u
153           UE/XIioI8fWg9fj3sMka4IMu+pVvRCRbAjRH7JrFLkjbUyuMqs3Arnk9K+gbdQt/
154           +m95Njtt6WoFXuPCwgbM3GidSmZwYT4454SfDzVBYScEDCNm1FuR+8ov9bFLDtGT
155           D4gsngnGJj1MDFXTxZEn4nzZAoGBAKCg4WmpUPaCuXibyB+rZavxwsTNSn2lJ83/
156           sYJGBhf/raiV/FLDUcM1vYg5dZnu37RsB/5/vqxOLZGyYd7x+Jo5HkQGPnKgNwhn
157           g8BkdZIRF8uEJqxOo0ycdOU7n/2O93swIpKWo5LIiRPuqqzj+uZKnAL7vuVdxfaY
158           qVz2daMPAoGBALgaaKa3voU/HO1PYLWIhFrBThyJ+BQSQ8OqrEzC8AnegWFxRAM8
159           EqrzZXl7ACUuo1dH0Eipm41j2+BZWlQjiUgq5uj8+yzy+EU1ZRRyJcOKzbDACeuD
160           BpWWSXGBI5G4CppeYLjMUHZpJYeX1USULJQd2c4crLJKb76E8gz3Z9kN
161           -----END RSA PRIVATE KEY-----
162
163         interfaces:
164           port1:
165             mac_address: "fa:16:3e:9b:89:52"
166             pci_address: "0000:00:04.0"
167             link: link1
168           port2:
169             mac_address: "fa:16:3e:7a:33:60"
170             pci_address: "0000:00:05.0"
171             link: link4
172           port3:
173             mac_address: "fa:16:3e:29:b7:ae"
174             pci_address: "0000:00:06.0"
175             link: link3
176           port4:
177             mac_address: "fa:16:3e:76:8d:ff"
178             pci_address: "0000:00:07.0"
179             link: link6
180       DUT2:
181         type: DUT
182         host: "10.30.51.156"
183         port: 22
184         username: cisco
185         honeycomb:
186           user: admin
187           passwd: admin
188           port: 8183
189           netconf_port: 2831
190         priv_key: |
191           -----BEGIN RSA PRIVATE KEY-----
192           MIIEpgIBAAKCAQEAwUDlTpzSHpwLQotZOFS4AgcPNEWCnP1AB2hWFmvI+8Kah/gb
193           v8ruZU9RqhPs56tyKzxbhvNkY4VbH5F1GilHZu3mLqzM4KfghMmaeMEjO1T7BYYd
194           vuBfTvIluljfQ2vAlnYrDwn+ClxJk81m0pDgvrLEX4qVVh2sGh7UEkYy5r82DNa2
195           4VjzPB1J/c8a9zP8FoZUhYIzF4FLvRMjUADpbMXgJMsGpaZLmz95ap0Eot7vb1Cc
196           1LvF97iyBCrtIOSKRKA50ZhLGjMKmOwnYU+cP5718tbproDVi6VJOo7zeuXyetMs
197           8YBl9kWblWG9BqP9jctFvsmi5G7hXgq1Y8u+DwIDAQABAoIBAQC/W4E0DHjLMny7
198           0bvw2YKzD0Zw3fttdB94tkm4PdZv5MybooPnsAvLaXVV0hEdfVi5kzSWNl/LY/tN
199           EP1BgGphc2QgB59/PPxGwFIjDCvUzlsZpynBHe+B/qh5ExNQcVvsIOqWI7DXlXaN
200           0i/khOzmJ6HncRRah1spKimYRsaUUDskyg7q3QqMWVaqBbbMvLs/w7ZWd/zoDqCU
201           MY/pCI6hkB3QbRo0OdiZLohphBl2ShABTwjvVyyKL5UA4jAEneJrhH5gWVLXnfgD
202           p62W5CollKEYblC8mUkPxpP7Qo277zw3xaq+oktIZhc5SUEUd7nJZtNqVAHqkItW
203           79VmpKyxAoGBAPfU+kqNPaTSvp+x1n5sn2SgipzDtgi9QqNmC4cjtrQQaaqI57SG
204           OHw1jX8i7L2G1WvVtkHg060nlEVo5n65ffFOqeVBezLVJ7ghWI8U+oBiJJyQ4boD
205           GJVNsoOSUQ0rtuGd9eVwfDk3ol9aCN0KK53oPfIYli29pyu4l095kg11AoGBAMef
206           bPEMBI/2XmCPshLSwhGFl+dW8d+Klluj3CUQ/0vUlvma3dfBOYNsIwAgTP0iIUTg
207           8DYE6KBCdPtxAUEI0YAEAKB9ry1tKR2NQEIPfslYytKErtwjAiqSi0heM6+zwEzu
208           f54Z4oBhsMSL0jXoOMnu+NZzEc6EUdQeY4O+jhjzAoGBAIogC3dtjMPGKTP7+93u
209           UE/XIioI8fWg9fj3sMka4IMu+pVvRCRbAjRH7JrFLkjbUyuMqs3Arnk9K+gbdQt/
210           +m95Njtt6WoFXuPCwgbM3GidSmZwYT4454SfDzVBYScEDCNm1FuR+8ov9bFLDtGT
211           D4gsngnGJj1MDFXTxZEn4nzZAoGBAKCg4WmpUPaCuXibyB+rZavxwsTNSn2lJ83/
212           sYJGBhf/raiV/FLDUcM1vYg5dZnu37RsB/5/vqxOLZGyYd7x+Jo5HkQGPnKgNwhn
213           g8BkdZIRF8uEJqxOo0ycdOU7n/2O93swIpKWo5LIiRPuqqzj+uZKnAL7vuVdxfaY
214           qVz2daMPAoGBALgaaKa3voU/HO1PYLWIhFrBThyJ+BQSQ8OqrEzC8AnegWFxRAM8
215           EqrzZXl7ACUuo1dH0Eipm41j2+BZWlQjiUgq5uj8+yzy+EU1ZRRyJcOKzbDACeuD
216           BpWWSXGBI5G4CppeYLjMUHZpJYeX1USULJQd2c4crLJKb76E8gz3Z9kN
217           -----END RSA PRIVATE KEY-----
218
219         interfaces:
220           port1:
221             mac_address: "fa:16:3e:ad:6c:7d"
222             pci_address: "0000:00:04.0"
223             link: link2
224           port2:
225             mac_address: "fa:16:3e:94:a4:99"
226             pci_address: "0000:00:05.0"
227             link: link5
228           port3:
229             mac_address: "fa:16:3e:75:92:da"
230             pci_address: "0000:00:06.0"
231             link: link3
232           port4:
233             mac_address: "fa:16:3e:2c:b1:2a"
234             pci_address: "0000:00:07.0"
235             link: link6
236
237 VPP Version
238 ~~~~~~~~~~~
239
240 |vpp-release|
241
242 VPP Installed Packages - Ubuntu
243 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
244
245 ::
246
247     $ dpkg -l vpp\*
248     Desired=Unknown/Install/Remove/Purge/Hold
249     | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
250     |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
251     ||/ Name           Version       Architecture Description
252     +++-==============-=============-============-=============================================
253     ii  vpp            18.10-release amd64        Vector Packet Processing--executables
254     ii  vpp-dbg        18.10-release amd64        Vector Packet Processing--debug symbols
255     ii  vpp-dev        18.10-release amd64        Vector Packet Processing--development support
256     ii  vpp-lib        18.10-release amd64        Vector Packet Processing--runtime libraries
257     ii  vpp-plugins    18.10-release amd64        Vector Packet Processing--runtime plugins
258
259 VPP Installed Packages - Centos
260 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
261
262 ::
263
264     $ rpm -qai vpp*
265     Name        : vpp
266     Version     : 18.10
267     Release     : release
268     Architecture: x86_64
269     Install Date: Wed 31 Oct 2018 07:58:58 AM EDT
270     Group       : Unspecified
271     Size        : 2489049
272     License     : ASL 2.0
273     Signature   : (none)
274     Source RPM  : vpp-18.10-release.src.rpm
275     Build Date  : Tue 23 Oct 2018 03:08:17 AM EDT
276     Build Host  : dc3d24d75f0c
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.10
286     Release     : release
287     Architecture: x86_64
288     Install Date: Wed 31 Oct 2018 07:58:58 AM EDT
289     Group       : System Environment/Libraries
290     Size        : 12012271
291     License     : ASL 2.0
292     Signature   : (none)
293     Source RPM  : vpp-18.10-release.src.rpm
294     Build Date  : Tue 23 Oct 2018 03:08:17 AM EDT
295     Build Host  : dc3d24d75f0c
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.10
307     Release     : release
308     Architecture: x86_64
309     Install Date: Wed 31 Oct 2018 07:58:58 AM EDT
310     Group       : System Environment/Base
311     Size        : 86709
312     License     : ASL 2.0
313     Signature   : (none)
314     Source RPM  : vpp-18.10-release.src.rpm
315     Build Date  : Tue 23 Oct 2018 03:08:17 AM EDT
316     Build Host  : dc3d24d75f0c
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.10
323     Release     : release
324     Architecture: x86_64
325     Install Date: Wed 31 Oct 2018 07:59:01 AM EDT
326     Group       : Development/Libraries
327     Size        : 12393361
328     License     : ASL 2.0
329     Signature   : (none)
330     Source RPM  : vpp-18.10-release.src.rpm
331     Build Date  : Tue 23 Oct 2018 03:08:17 AM EDT
332     Build Host  : dc3d24d75f0c
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.10
346     Release     : release
347     Architecture: x86_64
348     Install Date: Wed 31 Oct 2018 07:59:01 AM EDT
349     Group       : System Environment/Libraries
350     Size        : 58835927
351     License     : ASL 2.0
352     Signature   : (none)
353     Source RPM  : vpp-18.10-release.src.rpm
354     Build Date  : Tue 23 Oct 2018 03:08:17 AM EDT
355     Build Host  : dc3d24d75f0c
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 interfaces
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 multi-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/lib/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/lib/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