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