report: updates static content - func tests
[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     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.10-release amd64        Vector Packet Processing--executables
252     ii  vpp-dbg        18.10-release amd64        Vector Packet Processing--debug symbols
253     ii  vpp-dev        18.10-release amd64        Vector Packet Processing--development support
254     ii  vpp-lib        18.10-release amd64        Vector Packet Processing--runtime libraries
255     ii  vpp-plugins    18.10-release amd64        Vector Packet Processing--runtime plugins
256
257 VPP Installed Packages - Centos
258 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
259
260 ::
261
262     $ rpm -qai vpp*
263     Name        : vpp
264     Version     : 18.10
265     Release     : release
266     Architecture: x86_64
267     Install Date: Wed 31 Oct 2018 07:58:58 AM EDT
268     Group       : Unspecified
269     Size        : 2489049
270     License     : ASL 2.0
271     Signature   : (none)
272     Source RPM  : vpp-18.10-release.src.rpm
273     Build Date  : Tue 23 Oct 2018 03:08:17 AM EDT
274     Build Host  : dc3d24d75f0c
275     Relocations : (not relocatable)
276     Summary     : Vector Packet Processing
277     Description :
278     This package provides VPP executables: vpp, vpp_api_test, vpp_json_test
279     vpp - the vector packet engine
280     vpp_api_test - vector packet engine API test tool
281     vpp_json_test - vector packet engine JSON test tool
282     Name        : vpp-lib
283     Version     : 18.10
284     Release     : release
285     Architecture: x86_64
286     Install Date: Wed 31 Oct 2018 07:58:58 AM EDT
287     Group       : System Environment/Libraries
288     Size        : 12012271
289     License     : ASL 2.0
290     Signature   : (none)
291     Source RPM  : vpp-18.10-release.src.rpm
292     Build Date  : Tue 23 Oct 2018 03:08:17 AM EDT
293     Build Host  : dc3d24d75f0c
294     Relocations : (not relocatable)
295     Summary     : VPP libraries
296     Description :
297     This package contains the VPP shared libraries, including:
298     vppinfra - foundation library supporting vectors, hashes, bitmaps, pools, and string formatting.
299     svm - vm library
300     vlib - vector processing library
301     vlib-api - binary API library
302     vnet -  network stack library
303     Name        : vpp-selinux-policy
304     Version     : 18.10
305     Release     : release
306     Architecture: x86_64
307     Install Date: Wed 31 Oct 2018 07:58:58 AM EDT
308     Group       : System Environment/Base
309     Size        : 86709
310     License     : ASL 2.0
311     Signature   : (none)
312     Source RPM  : vpp-18.10-release.src.rpm
313     Build Date  : Tue 23 Oct 2018 03:08:17 AM EDT
314     Build Host  : dc3d24d75f0c
315     Relocations : (not relocatable)
316     Summary     : VPP Security-Enhanced Linux (SELinux) policy
317     Description :
318     This package contains a tailored VPP SELinux policy
319     Name        : vpp-devel
320     Version     : 18.10
321     Release     : release
322     Architecture: x86_64
323     Install Date: Wed 31 Oct 2018 07:59:01 AM EDT
324     Group       : Development/Libraries
325     Size        : 12393361
326     License     : ASL 2.0
327     Signature   : (none)
328     Source RPM  : vpp-18.10-release.src.rpm
329     Build Date  : Tue 23 Oct 2018 03:08:17 AM EDT
330     Build Host  : dc3d24d75f0c
331     Relocations : (not relocatable)
332     Summary     : VPP header files, static libraries
333     Description :
334     This package contains the header files for VPP.
335     Install this package if you want to write a
336     program for compilation and linking with vpp lib.
337     vlib
338     vlibmemory
339     vnet - devices, classify, dhcp, ethernet flow, gre, ip, etc.
340     vpp-api
341     vppinfra
342     Name        : vpp-plugins
343     Version     : 18.10
344     Release     : release
345     Architecture: x86_64
346     Install Date: Wed 31 Oct 2018 07:59:01 AM EDT
347     Group       : System Environment/Libraries
348     Size        : 58835927
349     License     : ASL 2.0
350     Signature   : (none)
351     Source RPM  : vpp-18.10-release.src.rpm
352     Build Date  : Tue 23 Oct 2018 03:08:17 AM EDT
353     Build Host  : dc3d24d75f0c
354     Relocations : (not relocatable)
355     Summary     : Vector Packet Processing--runtime plugins
356     Description :
357     This package contains VPP plugins
358
359 VPP Startup Configuration
360 ~~~~~~~~~~~~~~~~~~~~~~~~~
361
362 VPP startup configuration is common for all test cases except test cases related
363 to SW Crypto device.
364
365 **Common Configuration**
366
367 ::
368
369     $ cat /etc/vpp/startup.conf
370     unix {
371       nodaemon
372       log /var/log/vpp/vpp.log
373       full-coredump
374       cli-listen /run/vpp/cli.sock
375       gid vpp
376     }
377
378     api-trace {
379     ## This stanza controls binary API tracing. Unless there is a very strong reason,
380     ## please leave this feature enabled.
381       on
382     ## Additional parameters:
383     ##
384     ## To set the number of binary API trace records in the circular buffer, configure nitems
385     ##
386     ## nitems <nnn>
387     ##
388     ## To save the api message table decode tables, configure a filename. Results in /tmp/<filename>
389     ## Very handy for understanding api message changes between versions, identifying missing
390     ## plugins, and so forth.
391     ##
392     ## save-api-table <filename>
393     }
394
395     api-segment {
396       gid vpp
397     }
398
399     socksvr {
400       default
401     }
402
403     cpu {
404         ## In the VPP there is one main thread and optionally the user can create worker(s)
405         ## The main thread and worker thread(s) can be pinned to CPU core(s) manually or automatically
406
407         ## Manual pinning of thread(s) to CPU core(s)
408
409         ## Set logical CPU core where main thread runs, if main core is not set
410         ## VPP will use core 1 if available
411         # main-core 1
412
413         ## Set logical CPU core(s) where worker threads are running
414         # corelist-workers 2-3,18-19
415
416         ## Automatic pinning of thread(s) to CPU core(s)
417
418         ## Sets number of CPU core(s) to be skipped (1 ... N-1)
419         ## Skipped CPU core(s) are not used for pinning main thread and working thread(s).
420         ## The main thread is automatically pinned to the first available CPU core and worker(s)
421         ## are pinned to next free CPU core(s) after core assigned to main thread
422         # skip-cores 4
423
424         ## Specify a number of workers to be created
425         ## Workers are pinned to N consecutive CPU cores while skipping "skip-cores" CPU core(s)
426         ## and main thread's CPU core
427         # workers 2
428
429         ## Set scheduling policy and priority of main and worker threads
430
431         ## Scheduling policy options are: other (SCHED_OTHER), batch (SCHED_BATCH)
432         ## idle (SCHED_IDLE), fifo (SCHED_FIFO), rr (SCHED_RR)
433         # scheduler-policy fifo
434
435         ## Scheduling priority is used only for "real-time policies (fifo and rr),
436         ## and has to be in the range of priorities supported for a particular policy
437         # scheduler-priority 50
438     }
439
440     # dpdk {
441         ## Change default settings for all interfaces
442         # dev default {
443             ## Number of receive queues, enables RSS
444             ## Default is 1
445             # num-rx-queues 3
446
447             ## Number of transmit queues, Default is equal
448             ## to number of worker threads or 1 if no workers treads
449             # num-tx-queues 3
450
451             ## Number of descriptors in transmit and receive rings
452             ## increasing or reducing number can impact performance
453             ## Default is 1024 for both rx and tx
454             # num-rx-desc 512
455             # num-tx-desc 512
456
457             ## VLAN strip offload mode for interface
458             ## Default is off
459             # vlan-strip-offload on
460         # }
461
462         ## Whitelist specific interface by specifying PCI address
463         # dev 0000:02:00.0
464
465         ## Whitelist specific interface by specifying PCI address and in
466         ## addition specify custom parameters for this interface
467         # dev 0000:02:00.1 {
468         #       num-rx-queues 2
469         # }
470
471         ## Specify bonded interface and its slaves via PCI addresses
472         ##
473         ## Bonded interface in XOR load balance mode (mode 2) with L3 and L4 headers
474         # vdev eth_bond0,mode=2,slave=0000:02:00.0,slave=0000:03:00.0,xmit_policy=l34
475         # vdev eth_bond1,mode=2,slave=0000:02:00.1,slave=0000:03:00.1,xmit_policy=l34
476         ##
477         ## Bonded interface in Active-Back up mode (mode 1)
478         # vdev eth_bond0,mode=1,slave=0000:02:00.0,slave=0000:03:00.0
479         # vdev eth_bond1,mode=1,slave=0000:02:00.1,slave=0000:03:00.1
480
481         ## Change UIO driver used by VPP, Options are: igb_uio, vfio-pci,
482         ## uio_pci_generic or auto (default)
483         # uio-driver vfio-pci
484
485         ## Disable multi-segment buffers, improves performance but
486         ## disables Jumbo MTU support
487         # no-multi-seg
488
489         ## Increase number of buffers allocated, needed only in scenarios with
490         ## large number of interfaces and worker threads. Value is per CPU socket.
491         ## Default is 16384
492         # num-mbufs 128000
493
494         ## Change hugepages allocation per-socket, needed only if there is need for
495         ## larger number of mbufs. Default is 256M on each detected CPU socket
496         # socket-mem 2048,2048
497
498         ## Disables UDP / TCP TX checksum offload. Typically needed for use
499         ## faster vector PMDs (together with no-multi-seg)
500         # no-tx-checksum-offload
501     # }
502
503
504     # plugins {
505         ## Adjusting the plugin path depending on where the VPP plugins are
506         #       path /home/bms/vpp/build-root/install-vpp-native/vpp/lib/vpp_plugins
507
508         ## Disable all plugins by default and then selectively enable specific plugins
509         # plugin default { disable }
510         # plugin dpdk_plugin.so { enable }
511         # plugin acl_plugin.so { enable }
512
513         ## Enable all plugins by default and then selectively disable specific plugins
514         # plugin dpdk_plugin.so { disable }
515         # plugin acl_plugin.so { disable }
516     # }
517
518         ## Alternate syntax to choose plugin path
519         # plugin_path /home/bms/vpp/build-root/install-vpp-native/vpp/lib/vpp_plugins
520
521 **SW Crypto Device Configuration**
522
523 ::
524
525     $ cat /etc/vpp/startup.conf
526     unix
527     {
528       cli-listen /run/vpp/cli.sock
529       gid vpp
530       nodaemon
531       full-coredump
532       log /tmp/vpp.log
533     }
534     api-segment
535     {
536       gid vpp
537     }
538     dpdk
539     {
540       vdev cryptodev_aesni_gcm_pmd,socket_id=0
541       vdev cryptodev_aesni_mb_pmd,socket_id=0
542     }
543
544 TG Settings - Scapy
545 -------------------
546
547 Traffic Generator node is VM running the same OS Linux as SUTs. Ports of this
548 VM are used as source (Tx) and destination (Rx) ports for the traffic.
549
550 Traffic scripts of test cases are executed on this VM.
551
552 TG VM Configuration
553 ~~~~~~~~~~~~~~~~~~~
554
555 Configuration of the TG VMs is defined in `VIRL topologies directory`_.
556
557    /csit/resources/tools/virl/topologies/double-ring-nested.xenial.virl
558
559 - List of TG VM interfaces:::
560
561     <interface id="0" name="eth1"/>
562     <interface id="1" name="eth2"/>
563     <interface id="2" name="eth3"/>
564     <interface id="3" name="eth4"/>
565     <interface id="4" name="eth5"/>
566     <interface id="5" name="eth6"/>
567
568 TG Port Configuration
569 ~~~~~~~~~~~~~~~~~~~~~
570
571 Port configuration of TG is defined in topology file that is generated per VIRL
572 simulation based on the definition stored in `VIRL topologies directory`_.
573
574 Example of TG node configuration:::
575
576     TG:
577         type: TG
578         host: "10.30.51.155"
579         port: 22
580         username: cisco
581         priv_key: |
582           -----BEGIN RSA PRIVATE KEY-----
583           MIIEpgIBAAKCAQEAwUDlTpzSHpwLQotZOFS4AgcPNEWCnP1AB2hWFmvI+8Kah/gb
584           v8ruZU9RqhPs56tyKzxbhvNkY4VbH5F1GilHZu3mLqzM4KfghMmaeMEjO1T7BYYd
585           vuBfTvIluljfQ2vAlnYrDwn+ClxJk81m0pDgvrLEX4qVVh2sGh7UEkYy5r82DNa2
586           4VjzPB1J/c8a9zP8FoZUhYIzF4FLvRMjUADpbMXgJMsGpaZLmz95ap0Eot7vb1Cc
587           1LvF97iyBCrtIOSKRKA50ZhLGjMKmOwnYU+cP5718tbproDVi6VJOo7zeuXyetMs
588           8YBl9kWblWG9BqP9jctFvsmi5G7hXgq1Y8u+DwIDAQABAoIBAQC/W4E0DHjLMny7
589           0bvw2YKzD0Zw3fttdB94tkm4PdZv5MybooPnsAvLaXVV0hEdfVi5kzSWNl/LY/tN
590           EP1BgGphc2QgB59/PPxGwFIjDCvUzlsZpynBHe+B/qh5ExNQcVvsIOqWI7DXlXaN
591           0i/khOzmJ6HncRRah1spKimYRsaUUDskyg7q3QqMWVaqBbbMvLs/w7ZWd/zoDqCU
592           MY/pCI6hkB3QbRo0OdiZLohphBl2ShABTwjvVyyKL5UA4jAEneJrhH5gWVLXnfgD
593           p62W5CollKEYblC8mUkPxpP7Qo277zw3xaq+oktIZhc5SUEUd7nJZtNqVAHqkItW
594           79VmpKyxAoGBAPfU+kqNPaTSvp+x1n5sn2SgipzDtgi9QqNmC4cjtrQQaaqI57SG
595           OHw1jX8i7L2G1WvVtkHg060nlEVo5n65ffFOqeVBezLVJ7ghWI8U+oBiJJyQ4boD
596           GJVNsoOSUQ0rtuGd9eVwfDk3ol9aCN0KK53oPfIYli29pyu4l095kg11AoGBAMef
597           bPEMBI/2XmCPshLSwhGFl+dW8d+Klluj3CUQ/0vUlvma3dfBOYNsIwAgTP0iIUTg
598           8DYE6KBCdPtxAUEI0YAEAKB9ry1tKR2NQEIPfslYytKErtwjAiqSi0heM6+zwEzu
599           f54Z4oBhsMSL0jXoOMnu+NZzEc6EUdQeY4O+jhjzAoGBAIogC3dtjMPGKTP7+93u
600           UE/XIioI8fWg9fj3sMka4IMu+pVvRCRbAjRH7JrFLkjbUyuMqs3Arnk9K+gbdQt/
601           +m95Njtt6WoFXuPCwgbM3GidSmZwYT4454SfDzVBYScEDCNm1FuR+8ov9bFLDtGT
602           D4gsngnGJj1MDFXTxZEn4nzZAoGBAKCg4WmpUPaCuXibyB+rZavxwsTNSn2lJ83/
603           sYJGBhf/raiV/FLDUcM1vYg5dZnu37RsB/5/vqxOLZGyYd7x+Jo5HkQGPnKgNwhn
604           g8BkdZIRF8uEJqxOo0ycdOU7n/2O93swIpKWo5LIiRPuqqzj+uZKnAL7vuVdxfaY
605           qVz2daMPAoGBALgaaKa3voU/HO1PYLWIhFrBThyJ+BQSQ8OqrEzC8AnegWFxRAM8
606           EqrzZXl7ACUuo1dH0Eipm41j2+BZWlQjiUgq5uj8+yzy+EU1ZRRyJcOKzbDACeuD
607           BpWWSXGBI5G4CppeYLjMUHZpJYeX1USULJQd2c4crLJKb76E8gz3Z9kN
608           -----END RSA PRIVATE KEY-----
609
610         interfaces:
611           port3:
612             mac_address: "fa:16:3e:b9:e1:27"
613             pci_address: "0000:00:06.0"
614             link: link1
615             driver: virtio-pci
616           port4:
617             mac_address: "fa:16:3e:e9:c8:68"
618             pci_address: "0000:00:07.0"
619             link: link4
620             driver: virtio-pci
621           port5:
622             mac_address: "fa:16:3e:e8:d3:47"
623             pci_address: "0000:00:08.0"
624             link: link2
625             driver: virtio-pci
626           port6:
627             mac_address: "fa:16:3e:cf:ca:58"
628             pci_address: "0000:00:09.0"
629             link: link5
630             driver: virtio-pci
631
632 Traffic Generator
633 ~~~~~~~~~~~~~~~~~
634
635 Functional tests utilize Scapy as a traffic generator. Scapy v2.3.1 is
636 used for |vpp-release| tests.
637