summaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorMiruna Paun <Miruna.Paun@enea.com>2019-08-29 18:17:44 +0200
committerMartin Borg <martin.borg@enea.com>2019-08-30 14:25:34 +0200
commit720f0b844023252faec537bcde47d5df2d64608b (patch)
treedd384be2a7cc38d1eb60ecd909f2db757a48cfef /doc
parent889fc603e8adba65b405fdf795de4ed3262efd32 (diff)
downloadel_releases-nfv-access-720f0b844023252faec537bcde47d5df2d64608b.tar.gz
Created xml conversion of CMC UC manual, proofed and edited.
Change-Id: Ibae3c7401e4b7ddacfe4d4af1bdc677ab2f9cbde
Diffstat (limited to 'doc')
-rw-r--r--doc/Makefile2
-rw-r--r--doc/book-enea-nfv-access-cmc-example-usecases/doc/128t_vnf_router.xml710
-rw-r--r--doc/book-enea-nfv-access-cmc-example-usecases/doc/appendix_1.xml63
-rw-r--r--doc/book-enea-nfv-access-cmc-example-usecases/doc/appendix_2.xml326
-rw-r--r--doc/book-enea-nfv-access-cmc-example-usecases/doc/appendix_3.xml7
-rw-r--r--doc/book-enea-nfv-access-cmc-example-usecases/doc/appendix_4.xml52
-rw-r--r--doc/book-enea-nfv-access-cmc-example-usecases/doc/appendix_5.xml213
-rw-r--r--doc/book-enea-nfv-access-cmc-example-usecases/doc/book.xml47
-rw-r--r--doc/book-enea-nfv-access-cmc-example-usecases/doc/eltf_params_template.xml151
-rw-r--r--doc/book-enea-nfv-access-cmc-example-usecases/doc/eltf_params_updated.xml286
-rwxr-xr-xdoc/book-enea-nfv-access-cmc-example-usecases/doc/eltf_params_updated_template_how_to_use.txt320
-rw-r--r--doc/book-enea-nfv-access-cmc-example-usecases/doc/enea_vnf_examples.xml289
-rw-r--r--doc/book-enea-nfv-access-cmc-example-usecases/doc/general_env_prerequisites.xml163
-rwxr-xr-xdoc/book-enea-nfv-access-cmc-example-usecases/doc/images/kontron_me1100.pngbin0 -> 88944 bytes
-rwxr-xr-xdoc/book-enea-nfv-access-cmc-example-usecases/doc/images/kontron_me1100_servicechain.pngbin0 -> 41444 bytes
-rw-r--r--doc/book-enea-nfv-access-cmc-example-usecases/doc/introduction.xml152
-rw-r--r--doc/book-enea-nfv-access-cmc-example-usecases/doc/service_chaining_128t_fortigate.xml1059
-rw-r--r--doc/book-enea-nfv-access-cmc-example-usecases/doc/usecases_autoframe.xml41
-rwxr-xr-xdoc/book-enea-nfv-access-cmc-example-usecases/swcomp.mk10
19 files changed, 3890 insertions, 1 deletions
diff --git a/doc/Makefile b/doc/Makefile
index b9e7bac..11505e2 100644
--- a/doc/Makefile
+++ b/doc/Makefile
@@ -50,7 +50,7 @@ DOCBOOK_TO_BOOKDIR ?= yes
50DOCBOOK_CLEANTMP ?= yes 50DOCBOOK_CLEANTMP ?= yes
51 51
52#Components (books) in this subsystem. Now use all books found here 52#Components (books) in this subsystem. Now use all books found here
53COMPONENTS := book-enea-nfv-access-example-usecases book-enea-nfv-access-getting-started book-enea-nfv-access-open-source book-enea-nfv-access-release-info book-enea-nfv-access-vnf-onboarding-guide book-enea-nfv-access-reference-guide-intel book-enea-nfv-access-auto-fw-th-user-guide book-enea-nfv-access-system-test-specification 53COMPONENTS := book-enea-nfv-access-example-usecases book-enea-nfv-access-getting-started book-enea-nfv-access-open-source book-enea-nfv-access-release-info book-enea-nfv-access-vnf-onboarding-guide book-enea-nfv-access-reference-guide-intel book-enea-nfv-access-auto-fw-th-user-guide book-enea-nfv-access-system-test-specification book-enea-nfv-access-cmc-example-usecases
54# COMPONENTS += 54# COMPONENTS +=
55#book-enea-linux-eclipse-open-source 55#book-enea-linux-eclipse-open-source
56#book-enea-nfv-access-dev-hardening-guide 56#book-enea-nfv-access-dev-hardening-guide
diff --git a/doc/book-enea-nfv-access-cmc-example-usecases/doc/128t_vnf_router.xml b/doc/book-enea-nfv-access-cmc-example-usecases/doc/128t_vnf_router.xml
new file mode 100644
index 0000000..0a6a38a
--- /dev/null
+++ b/doc/book-enea-nfv-access-cmc-example-usecases/doc/128t_vnf_router.xml
@@ -0,0 +1,710 @@
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<chapter id="vnf_router_cmc_uc">
3 <title>128T VNF Router Example Use-case</title>
4
5 <para>The 128T Networking Platform (128T) natively provides network-based
6 security, control, and insight across data centers, wide-area networks
7 (WAN), and edge locations for enterprises, service providers, and cloud
8 companies alike.</para>
9
10 <section id="preq_128_router">
11 <title>Prerequisites</title>
12
13 <para>The following are needed for this example use case:</para>
14
15 <itemizedlist spacing="compact">
16 <listitem>
17 <para>1 in band management port for device management.</para>
18 </listitem>
19
20 <listitem>
21 <para>1 in band management port for 128T VNF.</para>
22 </listitem>
23
24 <listitem>
25 <para>1 WAN interface for 128T.</para>
26 </listitem>
27
28 <listitem>
29 <para>1 LAN interface for 128T.</para>
30 </listitem>
31 </itemizedlist>
32 </section>
33
34 <section id="vnf_router_cmc">
35 <title>128T VNF Router</title>
36
37 <figure>
38 <title>128T VNF Router Setup Overview</title>
39
40 <mediaobject>
41 <imageobject>
42 <imagedata contentwidth="600" fileref="images/kontron_me1100.png" />
43 </imageobject>
44 </mediaobject>
45 </figure>
46
47 <section id="uc_setup_cmc_router">
48 <title>Use-case Setup</title>
49
50 <para><emphasis role="bold">Configuring Network Interfaces on uCPE
51 devices:</emphasis><orderedlist spacing="compact">
52 <listitem>
53 <para>Log into the uCPE Manager with both username and password
54 values: <literal>admin</literal>.</para>
55 </listitem>
56
57 <listitem>
58 <para>Add the Kontron me1100 uCPE device into the uCPE Manager:
59 <literal>Devices -&gt; Manage -&gt; Add</literal>.</para>
60
61 <para>Fill in the required fields with the following data:</para>
62
63 <table>
64 <title>Device Details</title>
65
66 <tgroup cols="2">
67 <colspec align="left" />
68
69 <colspec colwidth="2*" />
70
71 <colspec colwidth="5*" />
72
73 <thead>
74 <row>
75 <entry align="center">Field</entry>
76
77 <entry align="center">Value</entry>
78 </row>
79 </thead>
80
81 <tbody>
82 <row>
83 <entry>Type</entry>
84
85 <entry>Enea universal CPE</entry>
86 </row>
87
88 <row>
89 <entry>Release</entry>
90
91 <entry>1.0</entry>
92 </row>
93
94 <row>
95 <entry>Name</entry>
96
97 <entry>me1100</entry>
98 </row>
99
100 <row>
101 <entry>IP/DNS Address</entry>
102
103 <entry>Dynamic IP received by device from DHCP server
104 (E.g.: 172.24.12.74).</entry>
105 </row>
106
107 <row>
108 <entry>Description</entry>
109
110 <entry>Kontron Target 1</entry>
111 </row>
112
113 <row>
114 <entry>SSH Port</entry>
115
116 <entry>830</entry>
117 </row>
118
119 <row>
120 <entry>SSH User Name</entry>
121
122 <entry>root</entry>
123 </row>
124
125 <row>
126 <entry>Password</entry>
127
128 <entry>null</entry>
129 </row>
130
131 <row>
132 <entry>OK</entry>
133
134 <entry>Green status indicates connection with uCPE device
135 was established.</entry>
136 </row>
137 </tbody>
138 </tgroup>
139 </table>
140 </listitem>
141
142 <listitem>
143 <para>In order to add the device on the map: Right-Click on
144 <literal>Map -&gt; Place Device -&gt; me1100</literal>.</para>
145 </listitem>
146
147 <listitem>
148 <para>Configure the virtualization infrastructure for 128T VNF by
149 creating three OVS bridges and a host interface.</para>
150
151 <para>Select the me1100 device then: <literal>Configuration -&gt;
152 OpenVSwitch -&gt; Bridges -&gt; Add</literal>. Fill in the
153 required fields for each bridge with the following data from each
154 table:</para>
155
156 <table>
157 <title>ibm_br Bridge Details</title>
158
159 <tgroup cols="2">
160 <colspec align="left" />
161
162 <colspec colwidth="2*" />
163
164 <colspec colwidth="5*" />
165
166 <thead>
167 <row>
168 <entry align="center">Field</entry>
169
170 <entry align="center">Value</entry>
171 </row>
172 </thead>
173
174 <tbody>
175 <row>
176 <entry>id</entry>
177
178 <entry>&lt;autogenerated - do not change&gt;</entry>
179 </row>
180
181 <row>
182 <entry>Name</entry>
183
184 <entry><literal>ibm_br</literal></entry>
185 </row>
186
187 <row>
188 <entry>ovs-bridge-type</entry>
189
190 <entry>dpdkWan</entry>
191 </row>
192
193 <row>
194 <entry>mgmt-address</entry>
195
196 <entry>Provide the IP address of the uCPE Manager machine
197 (E.g. 172.24.3.109).</entry>
198 </row>
199
200 <row>
201 <entry>mgmt-port</entry>
202
203 <entry>830</entry>
204 </row>
205
206 <row>
207 <entry>Create</entry>
208
209 <entry><para>The system will automatically select the
210 physical interface that has access to the uCPE
211 Manager.</para></entry>
212 </row>
213 </tbody>
214 </tgroup>
215 </table>
216
217 <table>
218 <title>vnf_mgmt_br Bridge Details</title>
219
220 <tgroup cols="2">
221 <colspec align="left" />
222
223 <colspec colwidth="2*" />
224
225 <colspec colwidth="5*" />
226
227 <thead>
228 <row>
229 <entry align="center">Field</entry>
230
231 <entry align="center">Value</entry>
232 </row>
233 </thead>
234
235 <tbody>
236 <row>
237 <entry>id</entry>
238
239 <entry>&lt;autogenerated - do not change&gt;</entry>
240 </row>
241
242 <row>
243 <entry>Name</entry>
244
245 <entry><literal>vnf_mgmt_br</literal></entry>
246 </row>
247
248 <row>
249 <entry>ovs-bridge-type</entry>
250
251 <entry>vnfMgmt</entry>
252 </row>
253
254 <row>
255 <entry>vnf-mgmt-address</entry>
256
257 <entry>10.0.0.1</entry>
258 </row>
259
260 <row>
261 <entry>Create</entry>
262
263 <entry></entry>
264 </row>
265 </tbody>
266 </tgroup>
267 </table>
268
269 <table>
270 <title>lan_br Bridge Details</title>
271
272 <tgroup cols="2">
273 <colspec align="left" />
274
275 <colspec colwidth="2*" />
276
277 <colspec colwidth="5*" />
278
279 <thead>
280 <row>
281 <entry align="center">Field</entry>
282
283 <entry align="center">Value</entry>
284 </row>
285 </thead>
286
287 <tbody>
288 <row>
289 <entry>id</entry>
290
291 <entry>&lt;autogenerated - do not change&gt;</entry>
292 </row>
293
294 <row>
295 <entry>Name</entry>
296
297 <entry><literal>lan_br</literal></entry>
298 </row>
299
300 <row>
301 <entry>ovs-bridge-type</entry>
302
303 <entry>canonical</entry>
304 </row>
305
306 <row>
307 <entry>+</entry>
308
309 <entry>Name: enp4s0f1 OK</entry>
310 </row>
311
312 <row>
313 <entry>Create</entry>
314
315 <entry></entry>
316 </row>
317 </tbody>
318 </tgroup>
319 </table>
320
321 <para>Add the Host Interface by selecting the me1100 device, then
322 <literal>Configuration -&gt; OpenVSwitch -&gt; Host Interfaces
323 -&gt; Add</literal>. </para>
324
325 <para></para>
326
327 <para>Fill in the required fields with the following data:</para>
328
329 <table>
330 <title>Host Interface Details</title>
331
332 <tgroup cols="2">
333 <colspec align="left" />
334
335 <colspec colwidth="2*" />
336
337 <colspec colwidth="5*" />
338
339 <thead>
340 <row>
341 <entry align="center">Field</entry>
342
343 <entry align="center">Value</entry>
344 </row>
345 </thead>
346
347 <tbody>
348 <row>
349 <entry>Source</entry>
350
351 <entry><literal>enp4s0f1</literal>. The only interface
352 available for LAN connection.</entry>
353 </row>
354
355 <row>
356 <entry>type</entry>
357
358 <entry>dpdk</entry>
359 </row>
360
361 <row>
362 <entry>networking-type</entry>
363
364 <entry>dpdk</entry>
365 </row>
366
367 <row>
368 <entry>dpdk-type</entry>
369
370 <entry>vfio-pci</entry>
371 </row>
372
373 <row>
374 <entry>Create</entry>
375
376 <entry>&lt;interface enp4s0f1 ready to be used in a LAN
377 bridge.&gt;</entry>
378 </row>
379 </tbody>
380 </tgroup>
381 </table>
382 </listitem>
383 </orderedlist></para>
384
385 <para><emphasis role="bold">Onboarding the VNFs:</emphasis></para>
386
387 <para>Onboard the VM Image through <literal>VNF -&gt; Descriptors -&gt;
388 On-board -&gt; VM Image</literal>, and fill in the required fields with
389 the following values:</para>
390
391 <table>
392 <title>VM Image Details</title>
393
394 <tgroup cols="2">
395 <colspec align="left" />
396
397 <colspec colwidth="2*" />
398
399 <colspec colwidth="5*" />
400
401 <thead>
402 <row>
403 <entry align="center">Field</entry>
404
405 <entry align="center">Value</entry>
406 </row>
407 </thead>
408
409 <tbody>
410 <row>
411 <entry>VM image file</entry>
412
413 <entry><literal>centos_128t_with_ci.qcow2</literal></entry>
414 </row>
415
416 <row>
417 <entry>Image format</entry>
418
419 <entry>QCOW2</entry>
420 </row>
421
422 <row>
423 <entry>VNF Type Name</entry>
424
425 <entry>128T</entry>
426 </row>
427
428 <row>
429 <entry>Description</entry>
430
431 <entry>128T Router</entry>
432 </row>
433
434 <row>
435 <entry>Version</entry>
436
437 <entry>1.0</entry>
438 </row>
439
440 <row>
441 <entry>Memory in MB</entry>
442
443 <entry>8192. More memory can be allocated if required
444 (&lt;28672).</entry>
445 </row>
446
447 <row>
448 <entry>Num. of CPUs</entry>
449
450 <entry>2. More CPUs can be reserved if required
451 (&lt;15).</entry>
452 </row>
453
454 <row>
455 <entry>Interfaces -&gt; +</entry>
456
457 <entry>Name: mgmt</entry>
458 </row>
459
460 <row>
461 <entry>Interfaces -&gt; +</entry>
462
463 <entry>Name: wan</entry>
464 </row>
465
466 <row>
467 <entry>Interfaces -&gt; +</entry>
468
469 <entry>Name: lan</entry>
470 </row>
471
472 <row>
473 <entry>Cloud Init -&gt; Cloud-Init Datasource</entry>
474
475 <entry>ISO</entry>
476 </row>
477
478 <row>
479 <entry>Cloud Init -&gt; Cloud-Init Disk Type</entry>
480
481 <entry>cdrom</entry>
482 </row>
483
484 <row>
485 <entry>Properties -&gt; +</entry>
486
487 <entry>Name: vnfMgmtIpAddress. Value: 10.0.0.2</entry>
488 </row>
489
490 <row>
491 <entry>Properties -&gt; +</entry>
492
493 <entry>Name: internalMgmtPort. Value: 443</entry>
494 </row>
495
496 <row>
497 <entry>Properties -&gt; +</entry>
498
499 <entry>Name: externalMgmtPort. Value: 60001</entry>
500 </row>
501
502 <row>
503 <entry>Onboard</entry>
504
505 <entry>&lt;Wait for message: VNF package onboarded
506 successfully&gt;</entry>
507 </row>
508
509 <row>
510 <entry>Close</entry>
511
512 <entry></entry>
513 </row>
514 </tbody>
515 </tgroup>
516 </table>
517
518 <note>
519 <itemizedlist>
520 <listitem>
521 <para>HTTPS access (443) can be changed with another type of
522 access. Please consult official 128T documentation and make sure
523 the 128T VNF is configured to accept another type of connection
524 before changing the port number.</para>
525 </listitem>
526
527 <listitem>
528 <para><literal>externalMgmtPort</literal> (60001) represents the
529 external port on which the user can access the VNF management
530 interface via HTTPS. Another port can be selected if needed. There
531 are no other changes required or components affected by this
532 change.</para>
533 </listitem>
534
535 <listitem>
536 <para><literal>vnfMgmtIpAddress</literal> (10.0.0.2) represents
537 the IP address of the management interface of the 128T VNF.
538 Changing this value requires an update to the 128T configuration
539 to match the new IP address.</para>
540 </listitem>
541 </itemizedlist>
542 </note>
543
544 <para><emphasis role="bold">Instantiating the VNFs:</emphasis></para>
545
546 <para>Instantiate the 128T VNF by selecting the me1100 device, then
547 <literal>VNF -&gt; Instances -&gt; Add</literal>.</para>
548
549 <para>Fill in the required fields with the following values:</para>
550
551 <table>
552 <title>128T VNF Instantiation</title>
553
554 <tgroup cols="2">
555 <colspec align="left" />
556
557 <colspec colwidth="2*" />
558
559 <colspec colwidth="5*" />
560
561 <thead>
562 <row>
563 <entry align="center">Field</entry>
564
565 <entry align="center">Value</entry>
566 </row>
567 </thead>
568
569 <tbody>
570 <row>
571 <entry>Name</entry>
572
573 <entry>128T_me1100_1</entry>
574 </row>
575
576 <row>
577 <entry>VNF Type</entry>
578
579 <entry>128T</entry>
580 </row>
581
582 <row>
583 <entry>VNFD Version</entry>
584
585 <entry>1.0</entry>
586 </row>
587
588 <row>
589 <entry>Flavour</entry>
590
591 <entry>Canonical</entry>
592 </row>
593
594 <row>
595 <entry>uCPE Device</entry>
596
597 <entry>me1100</entry>
598 </row>
599
600 <row>
601 <entry>Cloud Init File</entry>
602
603 <entry><literal>centos_128t_internet_ci.iso</literal></entry>
604 </row>
605
606 <row>
607 <entry>Domain Update Script</entry>
608
609 <entry></entry>
610 </row>
611
612 <row>
613 <entry>Interfaces</entry>
614
615 <entry></entry>
616 </row>
617
618 <row>
619 <entry>ID</entry>
620
621 <entry>IF Name</entry>
622 </row>
623
624 <row>
625 <entry>mgmt (dpdk)</entry>
626
627 <entry>Bridge: vnf_mgmt_br</entry>
628 </row>
629
630 <row>
631 <entry>wan (dpdk)</entry>
632
633 <entry>Bridge: ibm_br</entry>
634 </row>
635
636 <row>
637 <entry>lan (dpdk)</entry>
638
639 <entry>Bridge: lan_br</entry>
640 </row>
641
642 <row>
643 <entry>Create</entry>
644
645 <entry></entry>
646 </row>
647 </tbody>
648 </tgroup>
649 </table>
650 </section>
651
652 <section id="uc_test_cmc_router">
653 <title>Testing the Use-case</title>
654
655 <para>In order to access the web interface of the 128T VNF, open a
656 browser from a machine connected on the same network with the WAN port
657 of the me1100 uCPE device and browse to:
658 <literal>https://&lt;public_me1100_WAN_IP&gt;:60001</literal>. Log in
659 using the following credentials:</para>
660
661 <itemizedlist>
662 <listitem>
663 <para>Username: admin</para>
664 </listitem>
665
666 <listitem>
667 <para>Password: 128Tadmin</para>
668 </listitem>
669 </itemizedlist>
670
671 <para>In order to validate the data path, connect a test machine to the
672 LAN physical port, assign the static IP and a route:<programlisting>&gt; ifconfig eth3 192.168.64.2 netmask 255.255.255.0
673&gt; ip route add default via 192.168.64.1 dev eth3
674&gt; ping 8.8.8.8</programlisting>For data path validation, it may be required
675 to generate a new cloud-init image to match your network configuration.
676 Please check Appendix A: How to create 128T cloud-init iso image (day-0
677 configuration), for more details.</para>
678 </section>
679
680 <section id="cleanup_cmcone">
681 <title>Use-case Clean-up</title>
682
683 <para>In order to remove the setup created previously all components
684 need to be deleted in reverse order:</para>
685
686 <orderedlist>
687 <listitem>
688 <para>Select the me1100 uCPE device -&gt; VNF -&gt; Instances -&gt;
689 128T -&gt; Delete.</para>
690 </listitem>
691
692 <listitem>
693 <para>Select the me1100 uCPE device -&gt; Configuration -&gt;
694 OpenVSwitch -&gt; Bridges. Select all bridges -&gt; Delete.</para>
695 </listitem>
696
697 <listitem>
698 <para>Select the me1100 uCPE device -&gt; Configuration -&gt;
699 OpenVSwitch -&gt; Host Interfaces. Select all interfaces -&gt;
700 Delete.</para>
701 </listitem>
702
703 <listitem>
704 <para>VNF -&gt; Descriptors, select all bundles -&gt;
705 Offboard.</para>
706 </listitem>
707 </orderedlist>
708 </section>
709 </section>
710</chapter> \ No newline at end of file
diff --git a/doc/book-enea-nfv-access-cmc-example-usecases/doc/appendix_1.xml b/doc/book-enea-nfv-access-cmc-example-usecases/doc/appendix_1.xml
new file mode 100644
index 0000000..023f798
--- /dev/null
+++ b/doc/book-enea-nfv-access-cmc-example-usecases/doc/appendix_1.xml
@@ -0,0 +1,63 @@
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<appendix id="appendix_one_cmc">
3 <title>How to create a 128T cloud-init iso image (day-0
4 configuration)</title>
5
6 <para><emphasis role="bold">Prerequisites:</emphasis><itemizedlist>
7 <listitem>
8 <para>Development host with Linux shell.</para>
9 </listitem>
10
11 <listitem>
12 <para><literal>genisoimage</literal> tool installed.</para>
13 </listitem>
14 </itemizedlist></para>
15
16 <para>Unpack the <filename>128T/128t-cloud-init-example.tar.gz</filename>
17 archive and check the README file for more details:</para>
18
19 <programlisting>&gt;tar -zxf 128t-cloud-init-example.tar.gz
20&gt;cd 128T/cloud-init-example/
21&gt;ls ./
22README
23user-data
24meta-data
25t128-running.xml</programlisting>
26
27 <para>To generate the cloud-init iso image:</para>
28
29 <programlisting>&gt;genisoimage -output centos_128t_ci.iso -volid cidata -joliet \
30-rock user-data meta-data t128-running.xml </programlisting>
31
32 <para><emphasis role="bold">Notes: </emphasis><itemizedlist>
33 <listitem>
34 <para><literal>user-data</literal> and <literal>meta-data</literal>
35 files must be kept unchanged.</para>
36 </listitem>
37
38 <listitem>
39 <para>To update the 128T configuration change the
40 <literal>t128-runing.xml</literal> file.</para>
41 </listitem>
42
43 <listitem>
44 <para>XML is the same file downloaded from 128T web access:
45 <literal>configuration -&gt; Import and Export Configuration -&gt;
46 Export Configuration -&gt; Download Configuration</literal>. The
47 configuration can be updated from a web interface, downloaded onto the
48 development host and used in generating a new cloud-init iso
49 image.</para>
50 </listitem>
51 </itemizedlist></para>
52
53 <para>By default, <literal>t128-running.xml</literal> is configured to pass
54 all traffic from the LAN to the WAN interface. There is only one change
55 required for the 128T VNF to work on the user's network:</para>
56
57 <programlisting>&lt;rt:next-hop&gt;172.24.15.254&lt;/rt:next-hop&gt;</programlisting>
58
59 <para>Please change &lt;172.24.15.254&gt; with the IP address of your
60 Gateway in the <filename>t128-running.xml</filename> file and generate a new
61 iso image as described above. For more details about configuring the 128T
62 VNF please contact 128 Technologies.</para>
63</appendix> \ No newline at end of file
diff --git a/doc/book-enea-nfv-access-cmc-example-usecases/doc/appendix_2.xml b/doc/book-enea-nfv-access-cmc-example-usecases/doc/appendix_2.xml
new file mode 100644
index 0000000..e3da67f
--- /dev/null
+++ b/doc/book-enea-nfv-access-cmc-example-usecases/doc/appendix_2.xml
@@ -0,0 +1,326 @@
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<appendix id="appendix_two_cmc">
3 <title>How to create the 128T image for NFV Access</title>
4
5 <para>The following steps were used by Enea to generate the 128T qcow2 image
6 used as the VNF image on NFV Access.</para>
7
8 <note>
9 <para>Follow the <filename>128tISO-Install.pdf</filename> document and
10 keep in mind a Virtual Machine was used instead of a physical host.</para>
11 </note>
12
13 <para><emphasis role="bold">Prerequisites:</emphasis><itemizedlist>
14 <listitem>
15 <para><filename>128T-3.2.7-1.el7.centos.x86_64.iso</filename> provided
16 by 128 Technologies.</para>
17 </listitem>
18
19 <listitem>
20 <para>A Linux development host with internet access.</para>
21 </listitem>
22
23 <listitem>
24 <para>A least one of the TAP interfaces connected to a bridge with
25 Internet access.</para>
26 </listitem>
27 </itemizedlist><emphasis role="bold">How to create the 128T image for NFV
28 Access:</emphasis><orderedlist>
29 <listitem>
30 <programlisting>&gt;qemu-img create -f qcow2 128t.qcow2 128G
31&gt;qemu-system-x86_64 -enable-kvm -m 8G -cpu host -smp cores=3,sockets=1 \
32-M q35 -nographic bios /usr/share/qemu/bios.bin -boot order=d,menu=on \
33cdrom 128T-3.2.7-1.el7.centos.x86_64.iso \
34hdb 128t.qcow2 \
35device e1000,netdev=net1,mac=52:52:01:02:03:01 \
36netdev tap,id=net1,ifname=tap1,script=no,downscript=no</programlisting>
37 </listitem>
38
39 <listitem>
40 <para>Press the &lt;ENTER&gt; key to begin the installation
41 process.</para>
42 </listitem>
43
44 <listitem>
45 <para>Wait for the distribution and the 128T to install:</para>
46
47 <programlisting>------------------------------
48128T Packages Installed
49
50Please Remove Install Media,
51
52then enter &lt;Yes&gt; to reboot and
53continue install process
54
55 &lt;Yes&gt; &lt;No&gt;
56------------------------------</programlisting>
57
58 <para>Press Yes.</para>
59 </listitem>
60
61 <listitem>
62 <para>Wait to reboot and press <literal>CTR+ a+c</literal> to enter
63 the qemu monitor:</para>
64
65 <programlisting>(qemu) quit</programlisting>
66 </listitem>
67
68 <listitem>
69 <para>Start qemu only with the qcow2 image attached, no installer
70 image required:</para>
71
72 <programlisting>&gt;qemu-system-x86_64 -enable-kvm -m 8G -cpu host -smp cores=3,sockets=1 \
73-M q35 -nographic bios /usr/share/qemu/bios.bin \
74-boot order=c,menu=on \
75-hda 128t.qcow2 \
76-device e1000,netdev=net1,mac=52:52:01:02:03:01 \
77-netdev tap,id=net1,ifname=tap1,script=no,downscript=no
78
79------------------------------------------------------------------------------
80Booting from Hard Disk...
81.
82
83 * CentOS Linux (3.10.0-514.2.2.el7.x86_64) 7 (Core)
84 CentOS Linux (0-rescue-4e73a369e89e466a888c9c77655a1d65) 7 (Core)
85
86
87 Use the ^ and v keys to change the selection.
88 Press 'e' to edit the selected item, or 'c' for a command prompt.
89------------------------------------------------------------------------------</programlisting>
90
91 <para>Select the first option.</para>
92 </listitem>
93
94 <listitem>
95 <programlisting>|-------------------128T Installer-------------------|
96| |
97| Configure Linux Networking |
98| |
99| Before 128T SetUp? |
100| |
101| |
102| &lt; Yes &gt; &lt; No &gt; |
103|----------------------------------------------------|</programlisting>
104
105 <para>Select NO.</para>
106 </listitem>
107
108 <listitem>
109 <para><programlisting>|----------------------------------------------------|
110| Please select a role for this node: |
111| |----------------------------------------------| |
112| | (*) Router | |
113| | ( ) Conductor | |
114| |----------------------------------------------| |
115| |
116|----------------------------------------------------|
117| &lt; OK &gt; &lt; Back &gt; |
118|----------------------------------------------------|</programlisting>Select
119 Router and OK.</para>
120 </listitem>
121
122 <listitem>
123 <programlisting>|-------------------Conductor Info-------------------|
124| |
125| |----------------------------------------------| |
126| |1st Conductor Address | |
127| |Conductor Address | |
128| |----------------------------------------------| |
129| |
130|----------------------------------------------------|
131| &lt; OK &gt; &lt; Skip &gt; &lt; Back &gt; &lt; Help &gt; |
132|----------------------------------------------------|</programlisting>
133
134 <para>Select SKIP.</para>
135 </listitem>
136
137 <listitem>
138 <para><programlisting>|----------------------HA Setup----------------------|
139| What kind of Router node is this? |
140| |----------------------------------------------| |
141| |(*) Standalone No HA peer | |
142| |( ) 1st HA Node HA peer is not set up | |
143| |( ) 2nd HA Node HA peer is already set up | |
144| |----------------------------------------------| |
145| |
146| |
147|----------------------------------------------------|
148| &lt; OK &gt; &lt; Back &gt; |
149|----------------------------------------------------|</programlisting>Select
150 Standalone and OK.</para>
151 </listitem>
152
153 <listitem>
154 <programlisting>|---------------------Node Info----------------------|
155| |----------------------------------------------| |
156| | Node Role Router | |
157| | Node Name 128tNode | |
158| | Router Name 128tRouter | |
159| |----------------------------------------------| |
160| |
161|----------------------------------------------------|
162| &lt; OK &gt; &lt; Advanced &gt; &lt; Back &gt; &lt; Help &gt; |
163|----------------------------------------------------|</programlisting>
164
165 <para>Enter a name for the router and node, press OK.</para>
166 </listitem>
167
168 <listitem>
169 <programlisting>|-------------------Password Setup-------------------|
170| Enter the new password for the 128T 'admin' |
171| user: |
172| |----------------------------------------------| |
173| | 128Tadmin | |
174| |----------------------------------------------| |
175| | |
176|----------------------------------------------------|
177| &lt; OK &gt; &lt; Back &gt; |
178|----------------------------------------------------|</programlisting>
179
180 <para>Enter the password for web access: <literal>128Tadmin</literal>
181 and confirm the password.</para>
182 </listitem>
183
184 <listitem>
185 <programlisting>|--------------------------Anonymous Data Collection--------------------------|
186| The 128T Networking Platform comes packaged with a software process |
187|("Roadrunner") that is used to proactively monitor the health and liveliness |
188|of the 128T Router and associated components. This watchdog process collects |
189|anonymous information from the router and sends it to 128 Technology for |
190|storage and analysis. This information helps inform 128 Technology about |
191|software usage, to aid in the support and improvement of the 128 Technology |
192|Networking Platform. |
193| |
194|Disabling this feature will prevent the sending of anonymous usage data to |
195|128 Technology. |
196| |
197| |
198| &lt; Accept &gt; &lt; Back &gt; &lt; Disable &gt; |
199|-----------------------------------------------------------------------------|</programlisting>
200
201 <para>Select Accept.</para>
202 </listitem>
203
204 <listitem>
205 <programlisting>|-----128T Statistics Table Creator-----|
206| Created table for metric 760/827 |
207| Created table for metric 770/827 |
208| Created table for metric 780/827 |
209| Created table for metric 790/827 |
210| Created table for metric 800/827 |
211| Created table for metric 810/827 |
212| Created table for metric 820/827 |
213| Finished pre-creating stats tables |
214| Creating tables for audit events |
215| Finished creating audit event tables |
216| Completed in 27.001386642456055 s |
217| Shutting down local Cassandra node |
218|---------------------------------------|
219| &lt; OK &gt; |
220|---------------------------------------|</programlisting>
221
222 <para>Select OK.</para>
223 </listitem>
224
225 <listitem>
226 <programlisting>|--------128T Installer Status----------|
227| |
228| Install SUCCESS |
229| |
230| Start 128T Router |
231| before proceeding to |
232| login prompt? |
233|---------------------------------------|
234| &lt; Yes &gt; &lt; No &gt; |
235|---------------------------------------|</programlisting>
236
237 <para>Select: Yes</para>
238 </listitem>
239
240 <listitem>
241 <programlisting>localhost login: root
242Password:</programlisting>
243
244 <para>The following user accounts and passwords are created during the
245 ISO installation process:</para>
246
247 <table>
248 <title>Accounts Created</title>
249
250 <tgroup cols="2">
251 <colspec align="left" />
252
253 <thead>
254 <row>
255 <entry align="center">User</entry>
256
257 <entry align="center">Password</entry>
258 </row>
259 </thead>
260
261 <tbody>
262 <row>
263 <entry>root</entry>
264
265 <entry>128tRoutes</entry>
266 </row>
267
268 <row>
269 <entry>t128</entry>
270
271 <entry>128tRoutes</entry>
272 </row>
273 </tbody>
274 </tgroup>
275 </table>
276 </listitem>
277
278 <listitem>
279 <para>GUI login via HTTPS is enabled by default on port 443</para>
280
281 <programlisting>[root@localhost ~]# dhclient enp0s2
282[root@localhost ~]# echo "nameserver 8.8.8.8" &gt;&gt;/etc/resolv.conf
283[root@localhost ~]# yum -y install cloud-init
284[root@localhost ~]# reboot</programlisting>
285 </listitem>
286
287 <listitem>
288 <para>Wait to reboot and press CTR+ a+c to enter in qemu
289 monitor.</para>
290
291 <programlisting>(qemu) quit
292&gt; qemu-img info 128t.qcow2
293image: 128t.qcow2
294file format: qcow2
295virtual size: 128G (137438953472 bytes)
296disk size: 5.4G
297cluster_size: 65536
298Format specific information:
299 compat: 1.1
300 lazy refcounts: false
301 refcount bits: 16
302 corrupt: false</programlisting>
303 </listitem>
304
305 <listitem>
306 <para>Compress the generated <filename>128t.qcow2</filename> image to
307 decrease the size of VNF image:</para>
308
309 <programlisting>qemu-img convert -O qcow2 -c 128t.qcow2 centos_128t_compressed.qcow2
310
311&gt; qemu-img info centos_128t_compressed.qcow2
312image: centos_128t_compressed.qcow2
313file format: qcow2
314virtual size: 128G (137438953472 bytes)
315disk size: 1.2G
316cluster_size: 65536
317Format specific information:
318 compat: 1.1
319 lazy refcounts: false
320 refcount bits: 16
321 corrupt: false
322
323centos_128t_compressed.qcow2 - Resulted image can be used in NFV Access.</programlisting>
324 </listitem>
325 </orderedlist></para>
326</appendix> \ No newline at end of file
diff --git a/doc/book-enea-nfv-access-cmc-example-usecases/doc/appendix_3.xml b/doc/book-enea-nfv-access-cmc-example-usecases/doc/appendix_3.xml
new file mode 100644
index 0000000..827e8cd
--- /dev/null
+++ b/doc/book-enea-nfv-access-cmc-example-usecases/doc/appendix_3.xml
@@ -0,0 +1,7 @@
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<appendix id="appendix_three_cmc">
3 <title>How to configure Fortigate VNF (day-0 configuration)</title>
4
5 <para>Please check the README file from Fortigate folder for more
6 details.</para>
7</appendix> \ No newline at end of file
diff --git a/doc/book-enea-nfv-access-cmc-example-usecases/doc/appendix_4.xml b/doc/book-enea-nfv-access-cmc-example-usecases/doc/appendix_4.xml
new file mode 100644
index 0000000..9641f7c
--- /dev/null
+++ b/doc/book-enea-nfv-access-cmc-example-usecases/doc/appendix_4.xml
@@ -0,0 +1,52 @@
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<appendix id="appendix_four_cmc">
3 <title>Running Enea Automation Framework tests</title>
4
5 <para>The most relevant information from the Automation Framework and Test
6 Harness structure:</para>
7
8 <programlisting>|---automation_framework
9| |---unittestSuite
10| | |---128tCleanup.json - Use case 1 - clean up - test.
11| | |---128tDeploy.json - Use case 1 - test.
12| | |---128t_FG_SFCCleanup.json - Use case 2 - clean up - test.
13| | |---128t_FG_SFCDeploy.json - Use case 2 - test.
14| | |---config
15| | | |---cmc
16 - Folder containing the configuration files used by tests.
17| | |---unittestLoader.py
18| | |---unittestSuite.py
19|---lab_config
20| |---me1100-1
21| | |---enp4s0f0_0000_04_00_0.json
22| | |---enp4s0f1_0000_04_00_1.json
23| | |---ibm_br.json - In-band management definition.
24| | |---lan_br_enp4s0f1.json - Lan bridge definition.
25| | |---me1100-1.json
26 - Target definition - make sure to update the "address".
27| | |---sfc_br.json - Service chain bridge definition.
28| | |---vnf_mgmt_br.json - VNF management bridge definition.
29|---vnf_config
30| |---128t
31| | |---128tInstance.json - 128T instantiation - used in use case 1.
32| | |---128t.json - 128T onboarding.
33| | |---128tSFCInstance.json - 128T instantiation - used in use case 2.
34| | |---centos_128t_internet_ci.iso - 128T cloud init (day-0) iso image.
35| |---fortigate
36| | |---fg_basic_fw.conf - Fortigate day-0 configuration.
37| | |---fortigateInstance.json - Fortigate instantiantion.
38| | |---fortigate.json - Fortigate onboarding.
39| | |---fortigateLicense.lic
40 - Fortigate license - replace it with a valid License file.
41|---vnf_image
42| |---centos_128t_with_ci.qcow2 - 128T qcow2 image.
43| |---fortios.qcow2 - Fortigate qcow2 image.</programlisting>
44
45 <para>Make sure to update the relevant configuration file for your setup.
46 The essential files to consider are the target configuration
47 (<filename>me1100-1.json</filename>), the license for the Fortigate VNF, and
48 the 128T cloud-init iso image matching your network.</para>
49
50 <para>To run a test:<programlisting>&gt; cd automation_and_systemtest/automation_framework/unittestSuite
51&gt; python unittestSuite.py -u admin -p admin -H 172.24.3.109 -n me1100-1 -s</programlisting></para>
52</appendix> \ No newline at end of file
diff --git a/doc/book-enea-nfv-access-cmc-example-usecases/doc/appendix_5.xml b/doc/book-enea-nfv-access-cmc-example-usecases/doc/appendix_5.xml
new file mode 100644
index 0000000..7c8c042
--- /dev/null
+++ b/doc/book-enea-nfv-access-cmc-example-usecases/doc/appendix_5.xml
@@ -0,0 +1,213 @@
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<appendix id="appendix_five_cmc">
3 <title>Example Tests Results using the Automation Framework</title>
4
5 <programlisting>Test Host:
6Use Case1 - 128T
7&gt; cd automation_and_systemtest/automation_framework/unittestSuite
8&gt; python unittestSuite.py -u admin -p admin -H 172.24.3.109 -n me1100-1 \
9-s 128tDeploy.json -d "128T Deployment"
10
11Running 128T Deployment...
12
13test 001: Add VCPE Agent from me1100-1 device (__main__.UnittestSuite) ...
142019-08-13 12:49:58,091 - INFO: Add uCPE device
152019-08-13 12:49:58,342 - INFO: Done
16ok
17test 002: Wait VCPE Agent device be up (__main__.UnittestSuite) ...
182019-08-13 12:49:58,358 - INFO: Wait uCPE device
192019-08-13 12:50:03,470 - INFO: Done
20ok
21test 003: Bind NIC to DPDK for LAN connection (__main__.UnittestSuite) ...
222019-08-13 12:50:03,486 - INFO: Bind NIC
232019-08-13 12:50:03,901 - INFO: Done
24ok
25test 004: Creating ibm bridge (__main__.UnittestSuite) ...
262019-08-13 12:50:03,920 - INFO: New OVS network bridge
272019-08-13 12:50:17,465 - INFO: Done
28ok
29test 005: Creating VNF Management bridge (__main__.UnittestSuite) ...
302019-08-13 12:50:17,481 - INFO: New OVS network bridge
312019-08-13 12:50:17,626 - INFO: Done
32ok
33test 006: Creating LAN bridge and attaching enp4s0f1 interface to the bridge \
34 (__main__.UnittestSuite) ...
352019-08-13 12:50:17,643 - INFO: New OVS network bridge
362019-08-13 12:50:18,313 - INFO: Done
37ok
38test 007: Onboarding 128T VNF (wizard API) (__main__.UnittestSuite) ...
392019-08-13 12:50:18,332 - INFO: Onboard wizard
402019-08-13 12:52:52,909 - INFO: Done
41ok
42test 008: Instantiate 128T VNF (__main__.UnittestSuite) ...
432019-08-13 12:52:52,924 - INFO: Instantiate VNF
442019-08-13 12:54:06,219 - INFO: Done
45ok
46
47----------------------------------------------------------------------
48Ran 8 tests in 248.144s
49
50OK
51
52
53Clean-up use-case1
54&gt; python unittestSuite.py -u admin -p admin -H 172.24.3.109 -n me1100-1 \
55-s 128tCleanup.json -d "128T Clean-up"
56
57Running 128T Clean-up...
58
59test 001: Destroying 128T VNF (__main__.UnittestSuite) ...
602019-08-13 13:03:02,704 - INFO: Destroy VNF
612019-08-13 13:03:03,619 - INFO: Done
62ok
63test 002: Deleting network bridge LAN (__main__.UnittestSuite) ...
642019-08-13 13:03:03,635 - INFO: Delete OVS network bridge
652019-08-13 13:03:13,857 - INFO: Done
66ok
67test 003: Deleting VNF management bridge (__main__.UnittestSuite) ...
682019-08-13 13:03:13,877 - INFO: Delete OVS network bridge
692019-08-13 13:03:24,027 - INFO: Done
70ok
71test 004: Deleting ibm(In Band Management) bridge (__main__.UnittestSuite) ...
722019-08-13 13:03:24,049 - INFO: Delete OVS network bridge
732019-08-13 13:03:48,815 - INFO: Done
74ok
75test 005: Unbind LAN NIC from DPDK target (__main__.UnittestSuite) ...
762019-08-13 13:03:48,835 - INFO: Unbind NIC
772019-08-13 13:03:50,274 - INFO: Done
78ok
79test 006: Offboarding 128t VNF (__main__.UnittestSuite) ...
802019-08-13 13:03:50,294 - INFO: Offboard VNF
812019-08-13 13:03:50,844 - INFO: Done
82ok
83test 007: Remove VCPE Agent me1100-1 device (__main__.UnittestSuite) ...
842019-08-13 13:03:50,858 - INFO: Remove uCPE device
852019-08-13 13:03:50,998 - INFO: Done
86ok
87
88----------------------------------------------------------------------
89Ran 7 tests in 48.308s
90
91OK
92
93
94Use-case2
95&gt; python unittestSuite.py -u admin -p admin -H 172.24.3.109 -n me1100-1 \
96-s 128t_FG_SFCDeploy.json -d "128T - Fortigate SFC Deployment"
97Running 128T - Fortigate SFC Deployment...
98
99test 001: Add VCPE Agent from me1100-1 device (__main__.UnittestSuite) ...
1002019-08-13 13:09:16,146 - INFO: Add uCPE device
1012019-08-13 13:09:16,272 - INFO: Done
102ok
103test 002: Wait VCPE Agent device be up (__main__.UnittestSuite) ...
1042019-08-13 13:09:16,287 - INFO: Wait uCPE device
1052019-08-13 13:09:23,421 - INFO: Done
106ok
107test 003: Bind NIC to DPDK for LAN connection (__main__.UnittestSuite) ...
1082019-08-13 13:09:23,445 - INFO: Bind NIC
1092019-08-13 13:09:24,226 - INFO: Done
110ok
111test 004: Creating ibm bridge (__main__.UnittestSuite) ...
1122019-08-13 13:09:24,245 - INFO: New OVS network bridge
1132019-08-13 13:09:34,720 - INFO: Done
114ok
115test 005: Creating VNF Management bridge (__main__.UnittestSuite) ...
1162019-08-13 13:09:34,741 - INFO: New OVS network bridge
1172019-08-13 13:09:34,885 - INFO: Done
118ok
119test 006: Creating LAN bridge and attaching enp4s0f1 interface to the bridge \
120(__main__.UnittestSuite) ...
1212019-08-13 13:09:34,903 - INFO: New OVS network bridge
1222019-08-13 13:09:35,566 - INFO: Done
123ok
124test 007: Creating SFC(service function chaining) bridge (__main__.UnittestSuite) ...
1252019-08-13 13:09:35,587 - INFO: New OVS network bridge
1262019-08-13 13:09:35,667 - INFO: Done
127ok
128test 008: Onboarding 128T VNF (wizard API) (__main__.UnittestSuite) ...
1292019-08-13 13:09:35,684 - INFO: Onboard wizard
1302019-08-13 13:12:11,845 - INFO: Done
131ok
132test 009: Onboarding Fortigate VNF (wizard API) (__main__.UnittestSuite) ...
1332019-08-13 13:12:11,861 - INFO: Onboard wizard
1342019-08-13 13:12:16,157 - INFO: Done
135ok
136test 010: Instantiate 128T VNF (__main__.UnittestSuite) ...
1372019-08-13 13:12:16,175 - INFO: Instantiate VNF
1382019-08-13 13:13:31,681 - INFO: Done
139ok
140test 011: Instantiate Fortigate VNF (__main__.UnittestSuite) ...
1412019-08-13 13:13:31,738 - INFO: Instantiate VNF
1422019-08-13 13:13:35,985 - INFO: Done
143ok
144
145----------------------------------------------------------------------
146Ran 11 tests in 259.854s
147
148OK
149
150# Access 128T management interface
151https://172.24.12.154:60001
152user: admin
153password: 128Tadmin
154
155# Access Fortigate management interface
156https://172.24.12.154:60002
157user: admin
158password:
159
160
161
162Use case2 clean-up
163&gt; python unittestSuite.py -u admin -p admin -H 172.24.3.109 -n me1100-1 \
164-s 128t_FG_SFCCleanup.json -d "128T - Fortigate SFC CleanUp"
165
166Running 128T - Fortigate SFC CleanUp...
167
168test 001: Destroying Fortigate VNF (__main__.UnittestSuite) ...
1692019-08-13 13:51:30,204 - INFO: Destroy VNF
1702019-08-13 13:51:31,781 - INFO: Done
171ok
172test 002: Destroying 128T VNF (__main__.UnittestSuite) ...
1732019-08-13 13:51:31,822 - INFO: Destroy VNF
1742019-08-13 13:51:32,729 - INFO: Done
175ok
176test 003: Deleting network bridge SFC (__main__.UnittestSuite) ...
1772019-08-13 13:51:32,756 - INFO: Delete OVS network bridge
1782019-08-13 13:51:42,863 - INFO: Done
179ok
180test 004: Deleting network bridge LAN (__main__.UnittestSuite) ...
1812019-08-13 13:51:42,878 - INFO: Delete OVS network bridge
1822019-08-13 13:51:53,087 - INFO: Done
183ok
184test 005: Deleting VNF management bridge (__main__.UnittestSuite) ...
1852019-08-13 13:51:53,103 - INFO: Delete OVS network bridge
1862019-08-13 13:52:03,251 - INFO: Done
187ok
188test 006: Deleting ibm(In Band Management) bridge (__main__.UnittestSuite) ...
1892019-08-13 13:52:03,269 - INFO: Delete OVS network bridge
1902019-08-13 13:52:29,868 - INFO: Done
191ok
192test 007: Unbind LAN NIC from DPDK target (__main__.UnittestSuite) ...
1932019-08-13 13:52:29,885 - INFO: Unbind NIC
1942019-08-13 13:52:31,415 - INFO: Done
195ok
196test 008: Offboarding 128t VNF (__main__.UnittestSuite) ...
1972019-08-13 13:52:31,435 - INFO: Offboard VNF
1982019-08-13 13:52:32,009 - INFO: Done
199ok
200test 009: Offboarding Fortigate VNF (__main__.UnittestSuite) ...
2012019-08-13 13:52:32,023 - INFO: Offboard VNF
2022019-08-13 13:52:32,157 - INFO: Done
203ok
204test 010: Remove VCPE Agent me1100-1 device (__main__.UnittestSuite) ...
2052019-08-13 13:52:32,170 - INFO: Remove uCPE device
2062019-08-13 13:52:32,294 - INFO: Done
207ok
208
209----------------------------------------------------------------------
210Ran 10 tests in 62.104s
211
212OK</programlisting>
213</appendix> \ No newline at end of file
diff --git a/doc/book-enea-nfv-access-cmc-example-usecases/doc/book.xml b/doc/book-enea-nfv-access-cmc-example-usecases/doc/book.xml
new file mode 100644
index 0000000..7dadd65
--- /dev/null
+++ b/doc/book-enea-nfv-access-cmc-example-usecases/doc/book.xml
@@ -0,0 +1,47 @@
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
3"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
4<!ENTITY % local.common.attrib "xml:base CDATA #IMPLIED">
5]>
6<book id="book_enea_nfv_access_cmc_example_usecases">
7 <title><trademark class="registered">Enea</trademark> NFV Access CMC Networks Example Use-cases</title>
8
9 <subtitle>Release Version <xi:include href="eltf_params_updated.xml"
10 xmlns:xi="http://www.w3.org/2001/XInclude"
11 xpointer="element(EneaLinux_REL_VER/1)" /></subtitle>
12
13 <!-- OLINKDBPATH_USED_BY_XMLMIND ../../s_docbuild/olinkdb -->
14
15 <xi:include href="../../s_docbuild/template/docsrc_common/bookinfo_userdoc.xml"
16 xmlns:xi="http://www.w3.org/2001/XInclude" />
17
18 <xi:include href="introduction.xml"
19 xmlns:xi="http://www.w3.org/2001/XInclude" />
20
21 <xi:include href="general_env_prerequisites.xml"
22 xmlns:xi="http://www.w3.org/2001/XInclude" />
23
24 <xi:include href="128t_vnf_router.xml"
25 xmlns:xi="http://www.w3.org/2001/XInclude" />
26
27 <xi:include href="service_chaining_128t_fortigate.xml"
28 xmlns:xi="http://www.w3.org/2001/XInclude" />
29
30 <xi:include href="usecases_autoframe.xml"
31 xmlns:xi="http://www.w3.org/2001/XInclude" />
32
33 <xi:include href="appendix_1.xml"
34 xmlns:xi="http://www.w3.org/2001/XInclude" />
35
36 <xi:include href="appendix_2.xml"
37 xmlns:xi="http://www.w3.org/2001/XInclude" />
38
39 <xi:include href="appendix_3.xml"
40 xmlns:xi="http://www.w3.org/2001/XInclude" />
41
42 <xi:include href="appendix_4.xml"
43 xmlns:xi="http://www.w3.org/2001/XInclude" />
44
45 <xi:include href="appendix_5.xml"
46 xmlns:xi="http://www.w3.org/2001/XInclude" />
47</book>
diff --git a/doc/book-enea-nfv-access-cmc-example-usecases/doc/eltf_params_template.xml b/doc/book-enea-nfv-access-cmc-example-usecases/doc/eltf_params_template.xml
new file mode 100644
index 0000000..eaa7ebd
--- /dev/null
+++ b/doc/book-enea-nfv-access-cmc-example-usecases/doc/eltf_params_template.xml
@@ -0,0 +1,151 @@
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
3"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
4<section id="eltf_created_params">
5 <title>File with Parameters in the Book Auto-updated by ELFT</title>
6
7 <note>
8 <para>See the <emphasis
9 role="bold">eltf_params_updated_template_howto_use.txt</emphasis> text
10 file for description of how to create the final <emphasis
11 role="bold">eltf_params_updated.xml</emphasis> from this template and for
12 all <emphasis role="bold">REQUIREMENTS</emphasis>. Use the command
13 "<emphasis role="bold">make eltf</emphasis>" to extract a full list of all
14 ELTF variables, which always begins with ELTF_ and don't only rely on the
15 howto text file list! The plan is that ELTF will auto-update this when
16 needed.</para>
17 </note>
18
19 <section id="host_prereq">
20 <title>Common Parameters</title>
21
22 <bridgehead>A programlisting, ID
23 "eltf-prereq-apt-get-commands-host"</bridgehead>
24
25 <para id="eltf-prereq-apt-get-commands-host"><programlisting>ELTF_PL_HOST_PREREQ</programlisting></para>
26
27 <bridgehead>A programlisting, ID
28 "eltf-getting-repo-install-command"</bridgehead>
29
30 <para id="eltf-getting-repo-install-command"><programlisting>ELTF_PL_GET_REPO</programlisting></para>
31
32 <bridgehead>Several phrase elements, various IDs. Ensure EL_REL_VER is
33 correct also compared to the "previous" REL VER in pardoc-distro.xml
34 "prev_baseline".</bridgehead>
35
36 <para id="EneaLinux_REL_VER"><phrase>ELTF_EL_REL_VER</phrase></para>
37
38 <para id="Yocto_VER"><phrase>ELTF_YOCTO_VER</phrase></para>
39
40 <para id="Yocto_NAME"><phrase>ELTF_YOCTO_NAME</phrase></para>
41
42 <para id="ULINK_YOCTO_PROJECT_DOWNLOAD"><ulink
43 url="ELTF_YOCTO_PROJ_DOWNLOAD_URL">ELTF_YOCTO_PROJ_DOWNLOAD_TXTURL</ulink></para>
44
45 <para id="ULINK_ENEA_LINUX_URL"><ulink
46 url="ELTF_EL_DOWNLOAD_URL">ELTF_EL_DOWNLOAD_TXTURL</ulink></para>
47
48 <bridgehead>A programlisting, ID "eltf-repo-cloning-enea-linux". Use
49 $MACHINE/default.xml as parameter, where MACHINE is one of the target
50 directory names in the manifest.</bridgehead>
51
52 <para id="eltf-repo-cloning-enea-linux"><programlisting>ELTF_PL_CLONE_W_REPO</programlisting></para>
53
54 <bridgehead>A table with ONE row, only the row with ID
55 "eltf-eclipse-version-row" is included in the book. MANUALLY BOTH in the
56 template.xml and in the updated.xml, set condition hidden on the
57 &lt;row&gt;, if eclipse is not in the release.</bridgehead>
58
59 <informaltable>
60 <tgroup cols="1">
61 <tbody>
62 <row id="eltf-eclipse-version-row">
63 <entry>Eclipse version ELTF_ECLIPSE_VERSION plus command line
64 development tools are included in this Enea NFV Access release.</entry>
65 </row>
66 </tbody>
67 </tgroup>
68 </informaltable>
69
70 <bridgehead>Below is one big section with title "Supported Targets with
71 Parameters". The entire section is included completely in the book via ID
72 "eltf-target-tables-section" and shall be LAST in the template. The
73 template contains ONE target subsection. COPY/APPEND it, if multiple
74 targets exist in the release and optionally add rows with additional
75 target parameters in each target subsection table.</bridgehead>
76 </section>
77
78 <section id="eltf-target-tables-section">
79 <title>Supported Targets with Parameters</title>
80
81 <para>The tables below describes the target(s) supported in this Enea
82 NFV Access release.</para>
83
84 <section id="eltf-target-table-ELTF_T_MANIFEST_DIR">
85 <title>MACHINE ELTF_T_MANIFEST_DIR - Information</title>
86
87 <para><informaltable>
88 <tgroup cols="2">
89 <colspec colwidth="6*" />
90
91 <colspec colwidth="9*" />
92
93 <tbody>
94 <row>
95 <entry>Target official name</entry>
96
97 <entry>ELTF_T_NAME</entry>
98 </row>
99
100 <row>
101 <entry>Architecture and Description</entry>
102
103 <entry>ELTF_T_ARC_DESC</entry>
104 </row>
105
106 <row>
107 <entry>Link to target datasheet</entry>
108
109 <entry>See <ulink
110 url="ELTF_T_DS_URL">ELTF_T_DS_TXTURL</ulink></entry>
111 </row>
112
113 <row>
114 <entry>Poky version</entry>
115
116 <entry>ELTF_T_POKY_VER</entry>
117 </row>
118
119 <row>
120 <entry>GCC version</entry>
121
122 <entry>ELTF_T_GCC_VER</entry>
123 </row>
124
125 <row>
126 <entry>Linux Kernel Version</entry>
127
128 <entry>ELTF_T_KERN_VER</entry>
129 </row>
130
131 <row>
132 <entry>Supported Drivers</entry>
133
134 <entry>ELTF_T_DRIVERS</entry>
135 </row>
136
137 <row>
138 <entry>Enea rpm folder for downloading RPM packages for this
139 target</entry>
140
141 <entry><ulink
142 url="ELTF_T_EL_RPM_URL">ELTF_T_EL_RPM_TXTURL</ulink></entry>
143 </row>
144 </tbody>
145 </tgroup>
146 </informaltable></para>
147 </section>
148
149 <!-- ELTFADD_MORE_TARGET_SECTIONS_BELOW_IF_NEEDED -->
150 </section>
151</section> \ No newline at end of file
diff --git a/doc/book-enea-nfv-access-cmc-example-usecases/doc/eltf_params_updated.xml b/doc/book-enea-nfv-access-cmc-example-usecases/doc/eltf_params_updated.xml
new file mode 100644
index 0000000..bb969c6
--- /dev/null
+++ b/doc/book-enea-nfv-access-cmc-example-usecases/doc/eltf_params_updated.xml
@@ -0,0 +1,286 @@
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
3"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
4<section id="eltf_created_params">
5 <title>File with Parameters in the Book Auto-updated by ELFT</title>
6
7 <note>
8 <para>See the <emphasis
9 role="bold">eltf_params_updated_template_howto_use.txt</emphasis> text
10 file for description of how to create the final <emphasis
11 role="bold">eltf_params_updated.xml</emphasis> from this template and for
12 all <emphasis role="bold">REQUIREMENTS</emphasis>. Use the command
13 "<emphasis role="bold">make eltf</emphasis>" to extract a full list of all
14 ELTF variables, which always begins with ELTF_ and don't only rely on the
15 howto text file list! The plan is that ELTF will auto-update this when
16 needed.</para>
17 </note>
18
19 <section id="host_prereq">
20 <title>Common Parameters</title>
21
22 <bridgehead>A programlisting, ID
23 "eltf-prereq-apt-get-commands-host"</bridgehead>
24
25 <para id="eltf-prereq-apt-get-commands-host"><programlisting># Host Ubuntu 16.04 LTS 64bit
26sudo apt-get -y update
27sudo apt-get -y install sed wget subversion git-core coreutils unzip texi2html \
28 texinfo libsdl1.2-dev docbook-utils fop gawk python-pysqlite2 diffstat \
29 make gcc build-essential xsltproc g++ desktop-file-utils chrpath \
30 libgl1-mesa-dev libglu1-mesa-dev autoconf automake groff libtool xterm \
31 libxml-parser-perl</programlisting></para>
32
33 <bridgehead>A programlisting, ID
34 "eltf-getting-repo-install-command"</bridgehead>
35
36 <para id="eltf-getting-repo-install-command"><programlisting>mkdir -p ~/bin
37curl https://storage.googleapis.com/git-repo-downloads/repo &gt; ~/bin/repo
38chmod a+x ~/bin/repo
39export PATH=~/bin:$PATH</programlisting></para>
40
41 <bridgehead>Several phrase elements, various IDs. Ensure EL_REL_VER is
42 correct also compared to the "previous" REL VER in pardoc-distro.xml
43 "prev_baseline".</bridgehead>
44
45 <para id="EneaLinux_REL_VER"><phrase>2.2.1</phrase></para>
46
47 <para id="Yocto_VER"><phrase>2.1</phrase></para>
48
49 <para id="Yocto_NAME"><phrase>krogoth</phrase></para>
50
51 <para id="ULINK_YOCTO_PROJECT_DOWNLOAD"><ulink
52 url="http://www.yoctoproject.org/downloads/core/krogoth/21">http://www.yoctoproject.org/downloads/core/krogoth/21</ulink></para>
53
54 <para id="ULINK_ENEA_LINUX_URL"><ulink
55 url="https://linux.enea.com/6">https://linux.enea.com/6</ulink></para>
56
57 <bridgehead>A programlisting, ID "eltf-repo-cloning-enea-linux". Use
58 $MACHINE/default.xml as parameter, where MACHINE is one of the target
59 directory names in the manifest.</bridgehead>
60
61 <para id="eltf-repo-cloning-enea-linux"><programlisting>mkdir enea-linux
62cd enea-linux
63repo init -u git@git.enea.com:linux/manifests/el_manifests-virtualization.git \
64 -b refs/tags/EL6 -m $MACHINE/default.xml
65repo sync</programlisting></para>
66
67 <bridgehead>A table with ONE row, only the row with ID
68 "eltf-eclipse-version-row" is included in the book. MANUALLY in book, set
69 condition hidden if eclipse is not in the release. Do this both in
70 template.xml and updated.xml.</bridgehead>
71
72 <informaltable>
73 <tgroup cols="1">
74 <tbody>
75 <row condition="hidden" id="eltf-eclipse-version-row">
76 <entry>Eclipse version 4.3 (Mars) plus command line development
77 tools are included in this Enea NFV Access release.</entry>
78 </row>
79 </tbody>
80 </tgroup>
81 </informaltable>
82
83 <bridgehead>Below is one big section with title "Supported Targets with
84 Parameters". The entire section is included completely in the book via ID
85 "eltf-target-tables-section" and shall be LAST in the template. The
86 template contains ONE target subsection. COPY/APPEND it, if multiple
87 targets exist in the release and optionally add rows with additional
88 target parameters in each target subsection table.</bridgehead>
89 </section>
90
91 <section id="eltf-target-tables-section">
92 <title>Supported Reference Boards with Parameters</title>
93
94 <para>The table(s) below describes the target(s) supported in this Enea
95 NFV Access release.</para>
96
97 <table>
98 <title>MACHINE Information Intel Xeon D</title>
99
100 <tgroup cols="2">
101 <colspec align="center" />
102
103 <thead>
104 <row>
105 <entry align="center">Component</entry>
106
107 <entry align="center">Description</entry>
108 </row>
109 </thead>
110
111 <tbody>
112 <row>
113 <entry align="left">Target official name</entry>
114
115 <entry>Intel Xeon D</entry>
116 </row>
117
118 <row>
119 <entry align="left">Architecture and Description</entry>
120
121 <entry>x86-64</entry>
122 </row>
123
124 <row>
125 <entry align="left">Link to target datasheet</entry>
126
127 <entry><ulink
128 url="https://www.intel.com/content/www/us/en/processors/xeon/xeon-d-1500-datasheet-vol-1.html">Intel's
129 datasheet</ulink></entry>
130 </row>
131
132 <row>
133 <entry align="left">Poky version</entry>
134
135 <entry>Git-commit-id:
136 7e7ee662f5dea4d090293045f7498093322802cc</entry>
137 </row>
138
139 <row>
140 <entry align="left">GCC version</entry>
141
142 <entry>7.3</entry>
143 </row>
144
145 <row>
146 <entry align="left">Linux Kernel Version</entry>
147
148 <entry>4.14</entry>
149 </row>
150
151 <row condition="hidden">
152 <entry align="left">Supported Drivers</entry>
153
154 <entry>Ethernet, RTC, UART</entry>
155 </row>
156 </tbody>
157 </tgroup>
158 </table>
159
160 <table>
161 <title>MACHINE Information Intel Atom C3000</title>
162
163 <tgroup cols="2">
164 <colspec align="center" />
165
166 <thead>
167 <row>
168 <entry align="center">Component</entry>
169
170 <entry align="center">Description</entry>
171 </row>
172 </thead>
173
174 <tbody>
175 <row>
176 <entry align="left">Target official name</entry>
177
178 <entry>Intel Atom C3000</entry>
179 </row>
180
181 <row>
182 <entry align="left">Architecture and Description</entry>
183
184 <entry>x86-64</entry>
185 </row>
186
187 <row>
188 <entry align="left">Link to target datasheet</entry>
189
190 <entry><ulink
191 url="https://www.intel.com/content/www/us/en/products/docs/processors/atom/c-series/c3000-family-datasheet.html">Intel's
192 datasheet</ulink></entry>
193 </row>
194
195 <row>
196 <entry align="left">Poky version</entry>
197
198 <entry>Git-commit-id:
199 7e7ee662f5dea4d090293045f7498093322802cc</entry>
200 </row>
201
202 <row>
203 <entry align="left">GCC version</entry>
204
205 <entry>7.3</entry>
206 </row>
207
208 <row>
209 <entry align="left">Linux Kernel Version</entry>
210
211 <entry>4.14</entry>
212 </row>
213
214 <row condition="hidden">
215 <entry align="left">Supported Drivers</entry>
216
217 <entry>Ethernet, RTC, UART</entry>
218 </row>
219 </tbody>
220 </tgroup>
221 </table>
222
223 <table condition="arm">
224 <title>MACHINE Information</title>
225
226 <tgroup cols="2">
227 <colspec align="center" />
228
229 <thead>
230 <row>
231 <entry align="center">Component</entry>
232
233 <entry align="center">Description</entry>
234 </row>
235 </thead>
236
237 <tbody>
238 <row>
239 <entry align="left">Target official name</entry>
240
241 <entry>OCTEON TXâ„¢ cn8304</entry>
242 </row>
243
244 <row>
245 <entry align="left">Architecture and Description</entry>
246
247 <entry>arm64</entry>
248 </row>
249
250 <row>
251 <entry align="left">Link to target datasheet</entry>
252
253 <entry><ulink
254 url="http://www.cavium.com/OCTEON-TX-CN82XX-83XX.html">OCTEON
255 TXâ„¢ cn8304 datasheet</ulink></entry>
256 </row>
257
258 <row>
259 <entry align="left">Poky version</entry>
260
261 <entry>Git-commit-id:
262 f01b909a266498853e6b3f10e6b39f2d95148129</entry>
263 </row>
264
265 <row>
266 <entry align="left">GCC version</entry>
267
268 <entry>5.3<remark>FIXME</remark></entry>
269 </row>
270
271 <row>
272 <entry align="left">Linux Kernel Version</entry>
273
274 <entry>3.12<remark>FIXME</remark></entry>
275 </row>
276
277 <row condition="hidden">
278 <entry align="left">Supported Drivers</entry>
279
280 <entry>Ethernet, RTC, UART</entry>
281 </row>
282 </tbody>
283 </tgroup>
284 </table>
285 </section>
286</section> \ No newline at end of file
diff --git a/doc/book-enea-nfv-access-cmc-example-usecases/doc/eltf_params_updated_template_how_to_use.txt b/doc/book-enea-nfv-access-cmc-example-usecases/doc/eltf_params_updated_template_how_to_use.txt
new file mode 100755
index 0000000..62e5d02
--- /dev/null
+++ b/doc/book-enea-nfv-access-cmc-example-usecases/doc/eltf_params_updated_template_how_to_use.txt
@@ -0,0 +1,320 @@
1eltf_params_template_updated_howto_use.txt
2
3This is a way to collect all parameters for an Enea NFV Access release
4in one parameter file, easy to automatically update by ELTF regularly.
5
6NOTE: Both the release info AND the open source books use parameters from
7 here, but the XML file is inside the release info book directory.
8
9NOTE: The manifest_conf.mk, or overridden by the environment variable
10 MANIFESTHASH, contains the full tag (or hashvalue) for downloading
11 the manifest when the books are built. The list of target
12 directories are fetched from the manifest into the book.
13 The eltf_params_updates.xml can all the time contain
14 the final next complete tag e.g. refs/tags/EL6 or similar
15 in the ELTF_PL_CLONE_W_REPO parameter command lines.
16
17The ordinary book XML files use xi:include statements to include elements
18from this parameter file. The book XML files can thus be manually edited.
19Before editing, you must run "make init".
20Any other text in the template or updated.xml file, outside the parts that
21are included in the book, are not used but still all must be correct
22DocBook XML files.
23
24ELTF work:
25 template => ELTF replaces ALL ELTF_xxx variables => updated XML file
26 => push to git only if changed
27
28
29eltf_params_template.xml (in git)
30 File used by ELTF to autocreate/update the real parameter
31 file eltf_params_updated.xml.
32
33eltf_params_updated.xml (in git)
34 Real parameter file where ELTF has replaced all ELTF_xx variables with
35 strings, in several cases with multiline strings.
36 No spaces or linefeed allowed in beginning or end of the variable values!
37
38
39xi:include: Each parameter is xi:include'ed in various book files, using
40 the IDs existing in the parameter files.
41 In most cases the 1:st element inside an element with an ID is included
42 using a format like eltf-prereq-apt-get-commands-host/1.
43 In very few cases the element with the ID is included in the book, one
44 example is the target section which has an ID, but which contains
45 multiple subsections, one per target.
46 All IDs in a book must be unique.
47
48DocBook XML: All XML files must be correct DocBook XML files.
49
50Do NOT edit/save the real *updated.xml file with XMLmind to avoid changes
51 not done by ELTF. But it is OK to open the real file in XMLmind to
52 check that the format is correct.
53
54ELTF should autocreate a temporary "real" file but only replace
55 and push the eltf_params_updated.xml if it is changed.
56
57
58make eltf
59 This lists all ELTF_xxx variables and some rules how to treat them
60
61DocBook Format: All elements - rules:
62 Several strict generic XML rules apply for all strings:
63 1. No TABs allowed or any other control chr than "linefeed"
64 2. Only 7-bit ASCII
65 3. Any < > & must be converted to &lt; &gt; and &amp;
66 Similar for any other non-7-bit-ASCII but avoid those!
67 4. No leading spaces or linefeeds when replacing the ELTF_* variable
68 5. No trailing spaces or linefeeds when replacing the ELTF_* variable
69 6. Note: Keep existing spaces before/efter ELTF_* in a few cases.
70
71DocBook Format: <programlisting> - rules: ELTF*PL* variables
72 Several strict rules apply for the multiline string in programlisting
73 in addition to the general XML rules above:
74 7. Max line length < 80 char
75 8. Use backslash (\) to break longer lines
76 9. Use spaces (e.g. 4) to indent continuation lines in programlistings
77 10. No trailing spaces on any line
78 11. No spaces or linefeed immediately after leading <programlisting>
79 12. No spaces or linefeed before trailing </programlisting>
80
81DocBook Format: <ulink> - rules: ELTF_*URL* variables
82 13. ELTF_*URL and corresponding ELTF_*TXTURL shall be identical strings
83 14. Only if the URL is extremely long, the TXTURL can be a separate string
84
85Each target has one section with target parameters:
86 <section id="eltf-target-table-ELTF_T_MANIFEST_DIR">
87 <title>MACHINE ELTF_T_MANIFEST_DIR - Information</title>
88 ..... with many ELTF_ variables ....
89 </section>
90
91 15. If there is only one target. ELTF just replaces ELTF parameters
92
93 16. It there are multiple targets. ELTF copies the section and appends the
94 section the required number of times.
95 Each section ID will become unique: eltf-target-table-ELTF_T_MANIFEST_DIR
96 Each section title will become unique
97
98Tables with target parameters in each target section:
99 17. It is possible for ELTF to append more rows with one parameter each
100 to these tables, because the entire tables are included in the book
101
102Special - NOT YET READY DEFINED how to handle the optionally included
103 Eclipse and its version, but this is a first suggestion:
104 18. Just now ELTF can define ELFT_ECLIPSE_VERSION as a full string
105 with both version number and name,
106 19. MANUALLY if Eclipse is NOT included in the release,
107 the release manager should manually set condition="hidden" on
108 the entire section in the book XML about Eclipse
109
110
111
112BELOW WE TRY TO EXPLAIN EACH ELTF_* variable, but always check with make eltf
113if there are more new variables, missing in this description file.
114
115_____________________________________________________________________________
116ELTF_PL_HOST_PREREQ Multiline list of host prerequisites, e.g. commands
117 like sudo apt-get install xxxx or similar.
118 First line = comment with the complete host name!
119 It is possible to include multiple hosts by just
120 adding an empty line, comment with host name, etc.
121 xi:include eltf-prereq-apt-get-commands-host/1
122 This is a <programlisting>...</programlisting>
123 Example:
124# Host Ubuntu 14.04.5 LTS 64bit
125sudo apt-get update
126sudo apt-get install sed wget subversion git-core coreutils unzip texi2html \
127 texinfo libsdl1.2-dev docbook-utils fop gawk python-pysqlite2 diffstat \
128 make gcc build-essential xsltproc g++ desktop-file-utils chrpath \
129 libgl1-mesa-dev libglu1-mesa-dev autoconf automake groff libtool xterm \
130 libxml-parser-perl
131
132_____________________________________________________________________________
133ELTF_PL_GET_REPO Multiline commands to download the repo tool
134 xi:include eltf-getting-repo-install-command/1
135 This is a <programlisting>...</programlisting>
136 Example:
137mkdir -p ~/bin
138curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
139chmod a+x ~/bin/repo
140export PATH=~/bin:$PATH
141
142_____________________________________________________________________________
143ELTF_EL_REL_VER General parameter string: The version of this Enea
144 NFV Access release. Major version and optional .Minor
145 Typically created from MAJOR and MINOR in enea.conf
146 MINOR in enea.conf is empty or contains a dot+minor
147 xi_include EneaLinux_REL_VER/1
148 This is a <phrase>X.x</phrase> used in many places.
149 Examples:
1506
151 or
1526.1
153
154_____________________________________________________________________________
155ELTF_YOCTO_VER General parameter string: Yocto version, created
156 from DISTRO in poky.ent
157 xi:include Yocto_VER/1
158 This is a <phrase>X.x</phrase> used in many places.
159 Example:
1602.1
161
162_____________________________________________________________________________
163ELTF_YOCTO_NAME General parameter string: Yocto name (branch), created
164 from DISTRO_NAME_NO_CAP in poky.ent
165 xi:include Yocto_NAME/1
166 This is a <phrase>X.x</phrase> used in many places.
167 Example:
168krogoth
169
170_____________________________________________________________________________
171ELTF_YOCTO_PROJ_DOWNLOAD_TXTURL General parameters. These two are IDENTICAL
172ELTF_YOCTO_PROJ_DOWNLOAD_URL strings with correct Yocto version string
173 at the end, typically without "dot".
174 xi:include ULINK_YOCTO_PROJECT_DOWNLOAD/1
175 This is an <ulink url="...">...</ulink>
176 Example:
177http://www.yoctoproject.org/downloads/core/krogoth/21
178
179_____________________________________________________________________________
180ELTF_EL_DOWNLOAD_TXTURL General parameters. These two are IDENTICAL strings
181ELTF_EL_DOWNLOAD_URL and shall be the http:/..... address where
182 Enea NFV Access can be downloaded
183 Often containing same version as in ELTF_EL_REL_VER
184 xi:include ULINK_ENEA_LINUX_URL/1
185 This is an <ulink url="...">...</ulink>
186 Example:
187http://linux.enea.com/6
188
189_____________________________________________________________________________
190ELTF_PL_CLONE_W_REPO Multiline commands to run repo to clone everything.
191 Use the variable $MACHINE/default.xml (the text in
192 the book will list the avaiable values of MACHINE,
193 taken from the manifest repository)
194 xi:include eltf-repo-cloning-enea-linux/1
195 This is a <programlisting>...</programlisting>
196 Example:
197mkdir enea-linux
198cd enea-linux
199repo init -u git@git.enea.com:linux/manifests/el_manifests-virtualization.git \
200 -b refs/tags/EL6 -m $MACHINE/default.xml
201repo sync
202
203_____________________________________________________________________________
204ELTF_ECLIPSE_VERSION Optional general parameter string.
205 NOT YET READY DEFINED
206 Just now a release manage must manually set
207 condition="hidden" on the Eclipse section,
208 if Eclipse is not included in the release.
209 ELTF just replaces ELTF_ECLIPSE_VERSION with a full
210 string with "X.Y (name)"
211 It includes the ID and can only be ONCE in the book.
212 xi:include eltf-eclipse-version-row
213 Example.
2144.5 (Mars)
215
216
217_____________________________________________________________________________
218ELTF_T_* All these are in each target (MACHINE) and ELTF
219 must separately replace them with strings for
220 each target
221 NOTE: All (except the MANIFEST_DIR) are in rows
222 in a table and ELTF can select to append
223 more parameters by adding more rows
224
225_____________________________________________________________________________
226ELTF_T_MANIFEST_DIR This happens to be in two places. Must be exactly
227ELTF_T_MANIFEST_DIR the directory name in the manifest, e.g. same
228 as the MACHINE names in $MACHINE/default.xml.
229 In book: a) Part of section ID
230 b) Part of section title
231 Examples:
232p2041rgb
233 or
234ls1021aiot
235 or
236qemuarm
237
238_____________________________________________________________________________
239ELTF_T_NAME Target specific: "Target Official Name"
240 NOT same as the target directory name in most cases.
241 In book: An <entry> element in a row
242 Examples:
243P2041RGB
244 or
245LS1021a-IoT
246 or
247qemuarm
248
249_____________________________________________________________________________
250ELTF_T_ARC_DESC Target specific: "Architecture and Description"
251 It can be a short identification string or
252 it can be a longer descriptive sentence.
253 In book: An <entry> element in a row
254 Examples:
255Power, e500mc
256 or
257ARM Cortex-A7
258
259_____________________________________________________________________________
260ELTF_T_DS_TXTURL Target specific: "Link to target datasheet. These
261ELTF_T_DS_URL two usually are IDENTICAL strings with correct
262 hyperlink to the target's official datasheet.
263 In book: an <ulink url="...">...</ulink>
264 Only if the link is VERY LONG, the text part shall
265 instead be a descriptive string (see 2:nd example).
266 NOTE: Also here no spaces or line-feeds!
267 Examples:
268url="http://wiki.qemu.org">http://wiki.qemu.org
269or
270url="http://www.nxp.com/products/microcontrollers-and-processors/arm-processors/qoriq-arm-processors/qoriq-ls1021a-iot-gateway-reference-design:LS1021A-IoT">link to NXP's datasheet
271
272_____________________________________________________________________________
273ELTF_T_POKY_VER Target specific: "Poky version" created either
274 from POKYVERSION in poky.ent
275 or using a hashvalue with a leading string, in
276 which case it may be different per target.
277 In book: An <entry> in a row
278 Examples:
27915.0.0
280or
281Git commit id: 75ca53211488a3e268037a44ee2a7ac5c7181bd2
282
283_____________________________________________________________________________
284ELTF_T_GCC_VER Target specific: "GCC Version". Should be in poky
285 but not easy to find among various parameters.
286 ELTF would extract it from build logs building SDK
287 and it is possibly different per target.
288 In book: An <entry> in a row
289 Example:
2905.3
291
292_____________________________________________________________________________
293ELTF_T_KERN_VER Target specific: "Linux Kernel Version". Often
294 different per target.
295 In book: An <entry> in a row
296 Example:
2973.12
298
299_____________________________________________________________________________
300ELTF_T_DRIVERS Target specific: "Supported Drivers". This is a
301 comma-separated list of driver names.
302 ELTF should create the list in same order for each
303 target, e.g. alphabetic migth be OK.
304 In book: An <entry> in a row
305 Example:
306Ethernet, I2C, SPI, PCI, USB, SD/SDHC/SDXC
307
308
309_____________________________________________________________________________
310ELTF_T_EL_RPM_TXTURL Target specific: "Enea rpm folder for downloading
311ELTF_T_EL_RPM_URL RPM packages for this target". These two are
312 INDENTICAL strings with hyperlink to the web site
313 at Enea where the customer can download RPMs
314 Note: Often the ELFT_EL_REL_VER value and
315 the ELTF_T_MANIFEST_DIR are used in the link.
316 In book: an <ulink url="...">...</ulink>
317 Example:
318url="https://linux.enea.com/6/ls1021aiot/rpm">https://linux.enea.com/6/ls1021aiot/rpm
319
320_____________________________________________________________________________
diff --git a/doc/book-enea-nfv-access-cmc-example-usecases/doc/enea_vnf_examples.xml b/doc/book-enea-nfv-access-cmc-example-usecases/doc/enea_vnf_examples.xml
new file mode 100644
index 0000000..8f11107
--- /dev/null
+++ b/doc/book-enea-nfv-access-cmc-example-usecases/doc/enea_vnf_examples.xml
@@ -0,0 +1,289 @@
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<chapter id="enea_vnf_examples">
3 <title>Enea VNF Example Use-cases</title>
4
5 <para>Enea NFV Access is a complete NFV Infrastructure (NFVI) platform
6 designed for deployment on white box uCPEs at the customer premise, and
7 optimized for common Virtual Customer Premises Equipment (vCPE) and SD-WAN
8 use cases.</para>
9
10 <section id="prere_enea_vnf">
11 <title>Prerequisites</title>
12
13 <para>The following file(s) are needed for this example use-case:
14 <literal>enea-nfv-access-vnf-qemux86-64.qcow2</literal>. This image is
15 provided with your release.</para>
16 </section>
17
18 <section id="enea_vnf">
19 <title>TestPMD VNF</title>
20
21 <para>In this use-case, <literal>uCPE device 1</literal> will run pktgen
22 (the DPDK application) and <literal>uCPE device 2</literal> will onboard
23 and instantiate two VNFs. One VNF will run <literal>testpmd_fwd</literal>,
24 forwarding traffic, and the other will run <literal>testpmd_term</literal>
25 which will terminate traffic.</para>
26
27 <figure>
28 <title>Enea TestPMD VNF Overview</title>
29
30 <mediaobject>
31 <imageobject>
32 <imagedata align="center"
33 fileref="images/enea_vnf_demo_overview.png" scale="80" />
34 </imageobject>
35 </mediaobject>
36 </figure>
37
38 <section id="enea_vnf_setup">
39 <title>Use-case Setup</title>
40
41 <para><emphasis role="bold">Configuring Network Interfaces on uCPE
42 devices:</emphasis></para>
43
44 <orderedlist>
45 <listitem>
46 <para>Bind the host interfaces to the DPDK by selecting
47 <literal>uCPE device 1</literal> first, then accessing
48 <literal>Configuration</literal> -&gt;
49 <literal>OpenVSwitch</literal> -&gt; <literal>Host
50 Interfaces</literal> -&gt; <literal>Add</literal>.</para>
51 </listitem>
52
53 <listitem>
54 <para>Select the network interface that will be used to connect to
55 the second uCPE device and configure it for the DPDK.</para>
56 </listitem>
57
58 <listitem>
59 <para>Select the <literal>Create</literal> button to send the
60 configuration to <literal>uCPE device 1</literal>.</para>
61 </listitem>
62
63 <listitem>
64 <para>Repeat these same steps on <literal>uCPE device
65 2</literal>.</para>
66 </listitem>
67
68 <listitem>
69 <para>Click the <literal>Add</literal> button from the Bridges
70 tab.</para>
71 </listitem>
72
73 <listitem>
74 <para>Create an Open vSwitch bridge (<literal>ovsbr0</literal>) on
75 <literal>uCPE device 1</literal> that uses one DPDK interface, by
76 selecting <literal>uCPE device 1</literal>, then:
77 <literal>Configuration</literal> -&gt;<literal>OpenVSwitch</literal>
78 -&gt;<literal>Bridges</literal>.</para>
79 </listitem>
80 </orderedlist>
81
82 <para><emphasis role="bold">Onboarding the VNF:</emphasis></para>
83
84 <orderedlist>
85 <listitem>
86 <para>Select <literal>VNF</literal>
87 -&gt;<literal>Descriptor</literal> -&gt;
88 <literal>On-board</literal>.</para>
89 </listitem>
90
91 <listitem>
92 <para>Select the <literal>VM Image</literal> radio button.</para>
93 </listitem>
94
95 <listitem>
96 <para>Provide the path to the qcow image by selecting
97 <literal>Browse </literal> from the <literal>VM image file</literal>
98 option.</para>
99 </listitem>
100
101 <listitem>
102 <para>Fill the required fields below and press
103 <literal>Onboard</literal>:</para>
104
105 <itemizedlist spacing="compact">
106 <listitem>
107 <para><emphasis role="bold">Memory in MB</emphasis>: 1024</para>
108 </listitem>
109
110 <listitem>
111 <para><emphasis role="bold">Nr. of CPUs</emphasis>: 1</para>
112 </listitem>
113
114 <listitem>
115 <para><emphasis role="bold">Storage in GB</emphasis>: 10</para>
116 </listitem>
117 </itemizedlist>
118 </listitem>
119 </orderedlist>
120
121 <para><emphasis role="bold">Instantiating two VNFs on uCPE device
122 2:</emphasis></para>
123
124 <orderedlist>
125 <listitem>
126 <para>Select uCPE device 2, then access <literal>VNF</literal> -&gt;
127 <literal>Instances</literal> -&gt; <literal>Add</literal>.</para>
128 </listitem>
129
130 <listitem>
131 <para>Fill-in the required fields and click
132 <literal>Create</literal>.</para>
133 </listitem>
134
135 <listitem>
136 <para>Configure VNF 1 to forward traffic.</para>
137 </listitem>
138
139 <listitem>
140 <para>Configure VNF 2 to terminate traffic.</para>
141 </listitem>
142
143 <listitem>
144 <para>Add Open vSwitch flows to control this traffic:</para>
145
146 <figure>
147 <title>Configuring the FWD flow</title>
148
149 <mediaobject>
150 <imageobject>
151 <imagedata align="center" fileref="images/flow_fwd.png"
152 scale="90" />
153 </imageobject>
154 </mediaobject>
155 </figure>
156
157 <figure>
158 <title>Configuring the TERM flow</title>
159
160 <mediaobject>
161 <imageobject>
162 <imagedata align="center" fileref="images/flow_term.png"
163 scale="90" />
164 </imageobject>
165 </mediaobject>
166 </figure>
167 </listitem>
168
169 <listitem>
170 <para>Start pktgen on uCPE device 1. Connect to the device by
171 selecting it first, then access <literal>SSH</literal> -&gt;
172 <literal>user</literal> (root) and perform the following:</para>
173
174 <programlisting>cd /usr/share/apps/pktgen/
175./pktgen -c 0x7 -n 4 --proc-type auto --socket-mem 256 -w 0000:05:00.3 -- \
176-P -m "[1:2].0"
177Pktgen:/&gt; start 0</programlisting>
178
179 <note>
180 <para>The PCI address &lt;0000:05:00.3&gt; used in this example
181 varies depending on the uCPE device. To determine the exact PCI
182 address used, look in the uCPE device specific Network
183 configuration.</para>
184 </note>
185 </listitem>
186 </orderedlist>
187 </section>
188
189 <section id="test_ena_vnf">
190 <title>Testing the Use-case</title>
191
192 <para>Connect to the forwarder VNF in order to check the traffic
193 statistics, by selecting the uCPE device first, then accessing
194 <literal>SSH</literal> -&gt; <literal>user</literal> (root):</para>
195
196 <programlisting>Virsh list
197Virsh console 1
198# Qemux86-64 login: root
199tail -f /var/log/testpmd-out</programlisting>
200
201 <figure>
202 <title>Traffic Statistics</title>
203
204 <mediaobject>
205 <imageobject>
206 <imagedata align="center"
207 fileref="images/connection_information.png" scale="70" />
208 </imageobject>
209 </mediaobject>
210 </figure>
211 </section>
212
213 <section condition="hidden" id="vnf_pci">
214 <title>TestPMD VNF using PCI passthrough</title>
215
216 <para>In this use case, uCPE device 1 will run the Pktgen and uCPE
217 device 2 will run the TestPMD VNF. Both will be using PCI
218 passthrough:</para>
219
220 <figure>
221 <title>TestPMD VNF using PCI passthrough Overview</title>
222
223 <mediaobject>
224 <imageobject>
225 <imagedata align="center" fileref="images/testPMD_VNF_PCI.png"
226 scale="65" />
227 </imageobject>
228 </mediaobject>
229 </figure>
230
231 <orderedlist>
232 <listitem>
233 <para>Make sure that neither uCPE device 1 nor uCPE device 2 have
234 any configured host interfaces by selcting uCPE device :
235 <literal>Configuration</literal> -&gt;
236 <literal>OpenVSwitch</literal> -&gt; <literal>Host
237 Interfaces</literal>.</para>
238 </listitem>
239
240 <listitem>
241 <para>On uCPE device 1 start the Pktgen VNF. Select
242 <literal>PciPassthrough</literal> as the Interface type.</para>
243
244 <para>From the drop-down list, select the PCI interface
245 corresponding to the NIC which is connected to uCPE device 2:</para>
246
247 <figure>
248 <title>Selecting the Pktgen VNF Interface</title>
249
250 <mediaobject>
251 <imageobject>
252 <imagedata align="center"
253 fileref="images/pciPass_interface.png" scale="70" />
254 </imageobject>
255 </mediaobject>
256 </figure>
257 </listitem>
258
259 <listitem>
260 <para>On uCPE device 2, start the TestPmdForwarder VNF. Select
261 "PciPassthrough" as the Interface type. From the drop-down list,
262 select the PCI interface corresponding to the NIC which is connected
263 to uCPE device 1:</para>
264
265 <figure>
266 <title>Selecting the TestPmdForwarder VNF Interface</title>
267
268 <mediaobject>
269 <imageobject>
270 <imagedata align="center"
271 fileref="images/testpmd_fwdvnf_int.png" scale="70" />
272 </imageobject>
273 </mediaobject>
274 </figure>
275 </listitem>
276
277 <listitem>
278 <para>To check that traffic is being forwarded from uCPE device 2,
279 SSH to the uCPE device and connect to the VNFs console:</para>
280
281 <programlisting>Right click on uCPE device 2 and select SSH.
282Run: virsh list
283Run: virsh console [VM NAME]
284Run: tail -f /opt/testpmd-out</programlisting>
285 </listitem>
286 </orderedlist>
287 </section>
288 </section>
289</chapter> \ No newline at end of file
diff --git a/doc/book-enea-nfv-access-cmc-example-usecases/doc/general_env_prerequisites.xml b/doc/book-enea-nfv-access-cmc-example-usecases/doc/general_env_prerequisites.xml
new file mode 100644
index 0000000..c0df438
--- /dev/null
+++ b/doc/book-enea-nfv-access-cmc-example-usecases/doc/general_env_prerequisites.xml
@@ -0,0 +1,163 @@
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<chapter id="general_env_setup">
3 <title>General Environment Setup</title>
4
5 <section id="gen_prereq">
6 <title>Prerequisites</title>
7
8 <table>
9 <title>General Prerequisites</title>
10
11 <tgroup cols="2">
12 <colspec align="center" />
13
14 <colspec colwidth="2*" />
15
16 <colspec colwidth="5*" />
17
18 <thead>
19 <row>
20 <entry align="center">Prerequisites</entry>
21
22 <entry align="center">Observations</entry>
23 </row>
24 </thead>
25
26 <tbody>
27 <row>
28 <entry align="left">Kontron me1100 target<itemizedlist>
29 <listitem>
30 <para>Processor Xeon-D</para>
31 </listitem>
32
33 <listitem>
34 <para>2 x 10G SFP/SFP+</para>
35 </listitem>
36
37 <listitem>
38 <para>SSD storage</para>
39 </listitem>
40
41 <listitem>
42 <para>32 GB RAM</para>
43 </listitem>
44 </itemizedlist></entry>
45
46 <entry align="left"><itemizedlist>
47 <listitem>
48 <para>This is an example hardware configuration available in
49 the Enea internal lab.</para>
50 </listitem>
51
52 <listitem>
53 <para>One of the SFP ports is connected to a network with
54 DHCP server access (receiving a dynamic IP based on
55 MAC).</para>
56 </listitem>
57
58 <listitem>
59 <para>The target has network access to the uCPE
60 Manager.</para>
61 </listitem>
62
63 <listitem>
64 <para>Enea NFV Access must be installed on the target. For
65 details on how to install Enea NFV Access, please see <olink
66 targetdoc="book_enea_nfv_access_getting_started"
67 targetptr="access_installer">How to install Enea NFV Access
68 in <xi:include
69 href="../../s_docbuild/olinkdb/pardoc-names.xml"
70 xmlns:xi="http://www.w3.org/2001/XInclude"
71 xpointer="element(book_enea_nfv_access_getting_started/1)" /></olink>.</para>
72 </listitem>
73 </itemizedlist></entry>
74 </row>
75
76 <row>
77 <entry align="left">Management machine - Linux based
78 (CentOS)</entry>
79
80 <entry align="left"><itemizedlist>
81 <listitem>
82 <para>The uCPE Manager must be installed on this host or
83 virtual machine. For installation details see, <olink
84 targetdoc="book_enea_nfv_access_getting_started"
85 targetptr="install_ucpe_manager">How to Install the uCPE
86 Manager in <xi:include
87 href="../../s_docbuild/olinkdb/pardoc-names.xml"
88 xmlns:xi="http://www.w3.org/2001/XInclude"
89 xpointer="element(book_enea_nfv_access_getting_started/1)" /></olink>.</para>
90 </listitem>
91
92 <listitem>
93 <para>The uCPE Manager must have access to the me1100
94 target.</para>
95 </listitem>
96
97 <listitem>
98 <para>A web browser must be installed to access the
99 management interface of the VNFs. The management interface
100 of any VNF can be accessed from any machine connected on the
101 same network with the me1100 target.</para>
102 </listitem>
103 </itemizedlist></entry>
104 </row>
105
106 <row>
107 <entry align="left">Development machine - Linux based</entry>
108
109 <entry align="left"><itemizedlist>
110 <listitem>
111 <para>The Automation Framework and Test Harness must be
112 installed. Please see the Enea NFV Access Automation
113 Framework and Test Harness User Guide for more info.</para>
114 </listitem>
115
116 <listitem>
117 <para>This is a host or virtual machine with network access
118 to the uCPE Manager and the me1100 target.</para>
119 </listitem>
120
121 <listitem>
122 <para>It can be used for the 128T VNF installation. Please
123 see Appendix B for more details.</para>
124 </listitem>
125 </itemizedlist></entry>
126 </row>
127 </tbody>
128 </tgroup>
129 </table>
130 </section>
131
132 <section id="rel_structure_cmc">
133 <title>Release structure</title>
134
135 <programlisting>|---ENEA_NFV_Access
136| |---doc
137| | |---book-enea-nfv-access-auto-fw-th-user-guide.pdf
138| | |---book-enea-nfv-access-cmc-example-usecases
139| | |---book-enea-nfv-access-example-usecases.pdf
140| | |---book-enea-nfv-access-getting-started.pdf
141| | |---book-enea-nfv-access-open-source.pdf
142| | |---book-enea-nfv-access-release-info.pdf
143| | |---book-enea-nfv-access-vnf-onboarding-guide.pdf
144| | |---book-enea-ucpe-manager-open-source.pdf
145| | |---book-enea-nfv-access-auto-fw-th-user-guide.pdf
146| | |---book-enea-nfv-access-system-test-specification.pdf
147| |---enea-nfv-access-edgelink-netconf-xeon-d-20190812201510.hddimg \
148 - NFV Access USB installer image
149|---automation_and_systemtest.tar.gz - Automation framework and tests
150|---book-enea-nfv-access-cmc-example-usecases.pdf
151|---128T
152| |---128t-cloud-init-example.tar.gz
153| |---centos_128t_internet_ci.iso
154| |---centos_128t_with_ci.qcow2
155|---Fortigate
156| |---fg_basic_fw_example.conf
157| |---README
158|---uCPE_Manager
159| |---ucpeManager_1.0_b10-CentOS.tar.gz
160| |---ucpeManager_1.0_b10-CentOS-VM.ova
161| |---ucpeManager_1.0_b10-Windows.zip</programlisting>
162 </section>
163</chapter> \ No newline at end of file
diff --git a/doc/book-enea-nfv-access-cmc-example-usecases/doc/images/kontron_me1100.png b/doc/book-enea-nfv-access-cmc-example-usecases/doc/images/kontron_me1100.png
new file mode 100755
index 0000000..9ed0203
--- /dev/null
+++ b/doc/book-enea-nfv-access-cmc-example-usecases/doc/images/kontron_me1100.png
Binary files differ
diff --git a/doc/book-enea-nfv-access-cmc-example-usecases/doc/images/kontron_me1100_servicechain.png b/doc/book-enea-nfv-access-cmc-example-usecases/doc/images/kontron_me1100_servicechain.png
new file mode 100755
index 0000000..e568824
--- /dev/null
+++ b/doc/book-enea-nfv-access-cmc-example-usecases/doc/images/kontron_me1100_servicechain.png
Binary files differ
diff --git a/doc/book-enea-nfv-access-cmc-example-usecases/doc/introduction.xml b/doc/book-enea-nfv-access-cmc-example-usecases/doc/introduction.xml
new file mode 100644
index 0000000..ea4f612
--- /dev/null
+++ b/doc/book-enea-nfv-access-cmc-example-usecases/doc/introduction.xml
@@ -0,0 +1,152 @@
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<chapter id="intro_cmc">
3 <title>Introduction</title>
4
5 <para>Enea NFV Access for universal Customer Premise Equipment (uCPE) is a
6 virtualization and management platform, which allows end-users to introduce,
7 instantiate, and run third-party VNFs onto their operating systems. The
8 solution is comprised of two major components working in close
9 cooperation:</para>
10
11 <itemizedlist>
12 <listitem>
13 <para>The Enea NFV Access Run-Time Platform, which acts as the host for
14 Virtualized Network Functions (VNFs) and provides management over
15 NETCONF.</para>
16 </listitem>
17
18 <listitem>
19 <para>The Enea uCPE Manager, a solution that runs on an external server,
20 providing VNF Management functionality and managing large numbers of
21 uCPEs.</para>
22 </listitem>
23 </itemizedlist>
24
25 <para>Enea NFV Access for CMC Networks is tailored around the two use cases
26 agreed upon during initial discussions. The current version of Enea NFV
27 Access provides a working and deployable configuration example for the 128T
28 router and the Fortinet Firewall service chained together on a Kontron
29 ME-1100 Xeon-D based platform.</para>
30
31 <para>This document describes all steps required to replicate the use cases
32 in the customer environment. The information provided will guide the user in
33 reproducing the setup using either the uCPE Manager GUI or the Automation
34 Framework and Test Harness.</para>
35
36 <note>
37 <itemizedlist>
38 <listitem>
39 <para>All VNF configurations should be seen as example configurations
40 made while working in the Enea internal lab. The customer will update
41 these configurations according to his local network setup.
42 Particularities are described in the Appendix chapters.</para>
43 </listitem>
44
45 <listitem>
46 <para>It is assumed that the user is familiar with Enea NFV Access and
47 has studied the official documentation, namely the "Enea NFV Access
48 Getting Started" manual before proceeding with this document.</para>
49 </listitem>
50 </itemizedlist>
51 </note>
52
53 <section condition="hidden" id="rev_hist">
54 <title>Revision History</title>
55
56 <table>
57 <title>Revisions</title>
58
59 <tgroup cols="4">
60 <colspec align="center" />
61
62 <thead>
63 <row>
64 <entry align="center">Revision</entry>
65
66 <entry align="center">Author</entry>
67
68 <entry align="center">Date</entry>
69
70 <entry align="center">Purpose of Revision</entry>
71 </row>
72 </thead>
73
74 <tbody>
75 <row>
76 <entry></entry>
77
78 <entry></entry>
79
80 <entry></entry>
81
82 <entry></entry>
83 </row>
84
85 <row>
86 <entry></entry>
87
88 <entry></entry>
89
90 <entry></entry>
91
92 <entry></entry>
93 </row>
94 </tbody>
95 </tgroup>
96 </table>
97 </section>
98
99 <section condition="hidden" id="ref_cmc">
100 <title>References</title>
101
102 <remark>[1]What does this refer to and what should be listed
103 here.</remark>
104 </section>
105
106 <section id="def_acro_cmc">
107 <title>Definitions and Acronyms</title>
108
109 <table>
110 <title>Definitions and Acronyms</title>
111
112 <tgroup cols="2">
113 <colspec align="left" />
114
115 <colspec colwidth="2*" />
116
117 <colspec colwidth="5*" />
118
119 <thead>
120 <row>
121 <entry align="center">Component</entry>
122
123 <entry align="center">Definition</entry>
124 </row>
125 </thead>
126
127 <tbody>
128 <row>
129 <entry>uCPE Manager</entry>
130
131 <entry>The Enea uCPE Manager is an EMS/NMS platform that provides
132 the VNF Management capabilities for NFV Access devices. The uCPE
133 Manager can be deployed on a Linux (CentOS) based physical or
134 virtual server. Coresident with the uCPE Manager is additional
135 functionality, which includes the Automation Framework.</entry>
136 </row>
137
138 <row>
139 <entry>Automation Framework</entry>
140
141 <entry>The Automation Framework consists of a set of tools and a
142 collection of Python based scripts that can be used to automate
143 the process of onboarding a VNF with all of the required
144 configuration for day zero deployment at scale. This tooling calls
145 the auto-generated REST API that is exposed on the uCPE Manager as
146 a north bound interface.</entry>
147 </row>
148 </tbody>
149 </tgroup>
150 </table>
151 </section>
152</chapter> \ No newline at end of file
diff --git a/doc/book-enea-nfv-access-cmc-example-usecases/doc/service_chaining_128t_fortigate.xml b/doc/book-enea-nfv-access-cmc-example-usecases/doc/service_chaining_128t_fortigate.xml
new file mode 100644
index 0000000..856f7ee
--- /dev/null
+++ b/doc/book-enea-nfv-access-cmc-example-usecases/doc/service_chaining_128t_fortigate.xml
@@ -0,0 +1,1059 @@
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<chapter id="service_chaining_128t_fortigate">
3 <title>Service Chaining 128T - Fortigate Example Use-case</title>
4
5 <para>The term service chaining or service function chaining (SFC) is used
6 to describe the definition and instantiation of an ordered list of instances
7 of such service functions and the subsequent "steering" of traffic flows
8 through those service functions. The set of enabled service function chains
9 reflects operator service offerings and is designed in conjunction with
10 application delivery and service and network policy.</para>
11
12 <para>The Network Service Header (NSH - RFC 8300) is a service-chaining
13 protocol that is added to network traffic, in the packet header, to describe
14 a sequence of service nodes (PNFs or VNFs) that the packet must be routed to
15 prior to reaching its destination address, thus creating a service
16 chain.</para>
17
18 <section id="prereq_serv_chain_cmc">
19 <title>Prerequisites</title>
20
21 <para>The 128T router and the Fortinet firewall in a service chain require
22 the following prequisites for this example use case:</para>
23
24 <itemizedlist spacing="compact">
25 <listitem>
26 <para>1 in band management port for device management.</para>
27 </listitem>
28
29 <listitem>
30 <para>1 in band management port for the 128T router.</para>
31 </listitem>
32
33 <listitem>
34 <para>1 in band management port for Fortinet.</para>
35 </listitem>
36
37 <listitem>
38 <para>1 WAN interface for Fortinet.</para>
39 </listitem>
40
41 <listitem>
42 <para>1 LAN facing interface for Fortinet.</para>
43 </listitem>
44
45 <listitem>
46 <para>1 WAN facing interface for the 128T router.</para>
47 </listitem>
48
49 <listitem>
50 <para>1 service chain (SFC Bridged interface) to sit between the
51 Firewall and vRouter.</para>
52 </listitem>
53 </itemizedlist>
54 </section>
55
56 <section id="ser_chain_uc">
57 <title>Service Chaining 128T - Fortigate</title>
58
59 <figure>
60 <title>Service Chaining 128T - Fortigate Setup Overview</title>
61
62 <mediaobject>
63 <imageobject>
64 <imagedata contentwidth="600"
65 fileref="images/kontron_me1100_servicechain.png" />
66 </imageobject>
67 </mediaobject>
68 </figure>
69
70 <section>
71 <title>Use-case Setup</title>
72
73 <para><emphasis role="bold">Configuring Network Interfaces on uCPE
74 devices:</emphasis><orderedlist>
75 <listitem>
76 <para>Log into the uCPE Manager with both username and password
77 values: <literal>admin</literal>.</para>
78 </listitem>
79
80 <listitem>
81 <para>Add the Kontron me1100 uCPE device into the uCPE Manager:
82 <literal>Devices -&gt; Manage -&gt; Add</literal>.</para>
83
84 <para>Fill in the required fields with the following data:</para>
85
86 <table>
87 <title>Device Details</title>
88
89 <tgroup cols="2">
90 <colspec align="left" />
91
92 <colspec colwidth="2*" />
93
94 <colspec colwidth="5*" />
95
96 <thead>
97 <row>
98 <entry align="center">Field</entry>
99
100 <entry align="center">Value</entry>
101 </row>
102 </thead>
103
104 <tbody>
105 <row>
106 <entry>Type</entry>
107
108 <entry>Enea universal CPE</entry>
109 </row>
110
111 <row>
112 <entry>Release</entry>
113
114 <entry>1.0</entry>
115 </row>
116
117 <row>
118 <entry>Name</entry>
119
120 <entry>me1100</entry>
121 </row>
122
123 <row>
124 <entry>IP/DNS Address</entry>
125
126 <entry>Dynamic IP received by device from DHCP server
127 (E.g.: 172.24.12.74).</entry>
128 </row>
129
130 <row>
131 <entry>Description</entry>
132
133 <entry>Kontron Target 1</entry>
134 </row>
135
136 <row>
137 <entry>SSH Port</entry>
138
139 <entry>830</entry>
140 </row>
141
142 <row>
143 <entry>SSH User Name</entry>
144
145 <entry>root</entry>
146 </row>
147
148 <row>
149 <entry>Password</entry>
150
151 <entry>null</entry>
152 </row>
153
154 <row>
155 <entry>OK</entry>
156
157 <entry>Green status indicates connection with uCPE device
158 was established.</entry>
159 </row>
160 </tbody>
161 </tgroup>
162 </table>
163 </listitem>
164
165 <listitem>
166 <para>In order to add the device on the map: Right-Click on
167 <literal>Map -&gt; Place Device -&gt; me1100</literal>.</para>
168 </listitem>
169
170 <listitem>
171 <para>Configure the infrastructure for the 128T and Fortigate VNFs
172 in the service chain by creating four OVS bridges and a host
173 interface.</para>
174
175 <para>Add the Host Interface by selecting the me1100 device, then
176 <literal>Configuration -&gt; OpenVSwitch -&gt; Host Interfaces
177 -&gt; Add</literal>.</para>
178
179 <para>Fill in the required fields with the following data:</para>
180
181 <table>
182 <title>Host Interface Details</title>
183
184 <tgroup cols="2">
185 <colspec align="left" />
186
187 <colspec colwidth="2*" />
188
189 <colspec colwidth="5*" />
190
191 <thead>
192 <row>
193 <entry align="center">Field</entry>
194
195 <entry align="center">Value</entry>
196 </row>
197 </thead>
198
199 <tbody>
200 <row>
201 <entry>Source</entry>
202
203 <entry><literal>enp4s0f1</literal>. The only interface
204 available for LAN connection.</entry>
205 </row>
206
207 <row>
208 <entry>type</entry>
209
210 <entry>dpdk</entry>
211 </row>
212
213 <row>
214 <entry>networking-type</entry>
215
216 <entry>dpdk</entry>
217 </row>
218
219 <row>
220 <entry>dpdk-type</entry>
221
222 <entry>vfio-pci</entry>
223 </row>
224
225 <row>
226 <entry>Create</entry>
227
228 <entry>&lt;interface enp4s0f1 ready to be used in a LAN
229 bridge.&gt;</entry>
230 </row>
231 </tbody>
232 </tgroup>
233 </table>
234
235 <para>Add the OVS bridges by selecting the me1100 device then:
236 <literal>Configuration -&gt; OpenVSwitch -&gt; Bridges -&gt;
237 Add</literal>.</para>
238
239 <para>Fill in the required fields for each bridge with the
240 following data from each table:</para>
241
242 <table>
243 <title>ibm_br Bridge Details</title>
244
245 <tgroup cols="2">
246 <colspec align="left" />
247
248 <colspec colwidth="2*" />
249
250 <colspec colwidth="5*" />
251
252 <thead>
253 <row>
254 <entry align="center">Field</entry>
255
256 <entry align="center">Value</entry>
257 </row>
258 </thead>
259
260 <tbody>
261 <row>
262 <entry>id</entry>
263
264 <entry>&lt;autogenerated - do not change&gt;</entry>
265 </row>
266
267 <row>
268 <entry>Name</entry>
269
270 <entry><literal>ibm_br</literal></entry>
271 </row>
272
273 <row>
274 <entry>ovs-bridge-type</entry>
275
276 <entry>dpdkWan</entry>
277 </row>
278
279 <row>
280 <entry>mgmt-address</entry>
281
282 <entry>Provide the IP address of the uCPE Manager machine
283 (E.g. 172.24.3.109).</entry>
284 </row>
285
286 <row>
287 <entry>mgmt-port</entry>
288
289 <entry>830</entry>
290 </row>
291
292 <row>
293 <entry>Create</entry>
294
295 <entry></entry>
296 </row>
297 </tbody>
298 </tgroup>
299 </table>
300
301 <table>
302 <title>vnf_mgmt_br Bridge Details</title>
303
304 <tgroup cols="2">
305 <colspec align="left" />
306
307 <colspec colwidth="2*" />
308
309 <colspec colwidth="5*" />
310
311 <thead>
312 <row>
313 <entry align="center">Field</entry>
314
315 <entry align="center">Value</entry>
316 </row>
317 </thead>
318
319 <tbody>
320 <row>
321 <entry>id</entry>
322
323 <entry>&lt;autogenerated - do not change&gt;</entry>
324 </row>
325
326 <row>
327 <entry>Name</entry>
328
329 <entry><literal>vnf_mgmt_br</literal></entry>
330 </row>
331
332 <row>
333 <entry>ovs-bridge-type</entry>
334
335 <entry>vnfMgmt</entry>
336 </row>
337
338 <row>
339 <entry>vnf-mgmt-address</entry>
340
341 <entry>10.0.0.1</entry>
342 </row>
343
344 <row>
345 <entry>Create</entry>
346
347 <entry></entry>
348 </row>
349 </tbody>
350 </tgroup>
351 </table>
352
353 <table>
354 <title>lan_br Bridge Details</title>
355
356 <tgroup cols="2">
357 <colspec align="left" />
358
359 <colspec colwidth="2*" />
360
361 <colspec colwidth="5*" />
362
363 <thead>
364 <row>
365 <entry align="center">Field</entry>
366
367 <entry align="center">Value</entry>
368 </row>
369 </thead>
370
371 <tbody>
372 <row>
373 <entry>id</entry>
374
375 <entry>&lt;autogenerated - do not change&gt;</entry>
376 </row>
377
378 <row>
379 <entry>Name</entry>
380
381 <entry><literal>lan_br</literal></entry>
382 </row>
383
384 <row>
385 <entry>ovs-bridge-type</entry>
386
387 <entry>canonical</entry>
388 </row>
389
390 <row>
391 <entry>+</entry>
392
393 <entry>Name: enp4s0f1 OK</entry>
394 </row>
395
396 <row>
397 <entry>Create</entry>
398
399 <entry></entry>
400 </row>
401 </tbody>
402 </tgroup>
403 </table>
404
405 <table>
406 <title>sfc_br Bridge Details</title>
407
408 <tgroup cols="2">
409 <colspec align="left" />
410
411 <colspec colwidth="2*" />
412
413 <colspec colwidth="5*" />
414
415 <thead>
416 <row>
417 <entry align="center">Field</entry>
418
419 <entry align="center">Value</entry>
420 </row>
421 </thead>
422
423 <tbody>
424 <row>
425 <entry>id</entry>
426
427 <entry>&lt;autogenerated - do not change&gt;</entry>
428 </row>
429
430 <row>
431 <entry>Name</entry>
432
433 <entry><literal>sfc_br</literal></entry>
434 </row>
435
436 <row>
437 <entry>ovs-bridge-type</entry>
438
439 <entry>canonical</entry>
440 </row>
441
442 <row>
443 <entry>Create</entry>
444
445 <entry></entry>
446 </row>
447 </tbody>
448 </tgroup>
449 </table>
450 </listitem>
451 </orderedlist></para>
452
453 <para><emphasis role="bold">Onboarding the VNFs:</emphasis></para>
454
455 <para>Onboard the 128T VNF VM Image through <literal>VNF -&gt;
456 Descriptors -&gt; On-board -&gt; VM Image</literal>, and fill in the
457 required fields with the following values:</para>
458
459 <table>
460 <title>128T VM Image Details</title>
461
462 <tgroup cols="2">
463 <colspec align="left" />
464
465 <colspec colwidth="2*" />
466
467 <colspec colwidth="5*" />
468
469 <thead>
470 <row>
471 <entry align="center">Field</entry>
472
473 <entry align="center">Value</entry>
474 </row>
475 </thead>
476
477 <tbody>
478 <row>
479 <entry>VM image file</entry>
480
481 <entry><literal>centos_128t_with_ci.qcow2</literal></entry>
482 </row>
483
484 <row>
485 <entry>Image format</entry>
486
487 <entry>QCOW2</entry>
488 </row>
489
490 <row>
491 <entry>VNF Type Name</entry>
492
493 <entry>128T</entry>
494 </row>
495
496 <row>
497 <entry>Description</entry>
498
499 <entry>128T Router</entry>
500 </row>
501
502 <row>
503 <entry>Version</entry>
504
505 <entry>1.0</entry>
506 </row>
507
508 <row>
509 <entry>Memory in MB</entry>
510
511 <entry>8192. More memory can be allocated if required
512 (&lt;28672).</entry>
513 </row>
514
515 <row>
516 <entry>Num. of CPUs</entry>
517
518 <entry>2. More CPUs can be reserved if required
519 (&lt;15).</entry>
520 </row>
521
522 <row>
523 <entry>Interfaces -&gt; +</entry>
524
525 <entry>Name: mgmt</entry>
526 </row>
527
528 <row>
529 <entry>Interfaces -&gt; +</entry>
530
531 <entry>Name: wan</entry>
532 </row>
533
534 <row>
535 <entry>Interfaces -&gt; +</entry>
536
537 <entry>Name: lan</entry>
538 </row>
539
540 <row>
541 <entry>Cloud Init -&gt; Cloud-Init Datasource</entry>
542
543 <entry>ISO</entry>
544 </row>
545
546 <row>
547 <entry>Cloud Init -&gt; Cloud-Init Disk Type</entry>
548
549 <entry>cdrom</entry>
550 </row>
551
552 <row>
553 <entry>Properties -&gt; +</entry>
554
555 <entry>Name: vnfMgmtIpAddress. Value: 10.0.0.2</entry>
556 </row>
557
558 <row>
559 <entry>Properties -&gt; +</entry>
560
561 <entry>Name: internalMgmtPort. Value: 443</entry>
562 </row>
563
564 <row>
565 <entry>Properties -&gt; +</entry>
566
567 <entry>Name: externalMgmtPort. Value: 60001</entry>
568 </row>
569
570 <row>
571 <entry>Onboard</entry>
572
573 <entry>&lt;Wait for message: VNF package onboarded
574 successfully&gt;</entry>
575 </row>
576
577 <row>
578 <entry>Close</entry>
579
580 <entry></entry>
581 </row>
582 </tbody>
583 </tgroup>
584 </table>
585
586 <note>
587 <itemizedlist>
588 <listitem>
589 <para>HTTPS access (443) can be changed to another type of access.
590 Please consult official 128T documentation and make sure the 128T
591 VNF is configured to accept another type of connection before
592 changing the port number.</para>
593 </listitem>
594
595 <listitem>
596 <para><literal>externalMgmtPort(60001)</literal> represents the
597 external port on which the user can access the VNF management
598 interface from the web browser via HTTPS. The user can select
599 another port if needed. There are no other changes required or
600 components affected by this change.</para>
601 </listitem>
602
603 <listitem>
604 <para><literal>vnfMgmtIpAddress</literal> (10.0.0.2) represents
605 the IP address of the management interface of the 128T VNF.
606 Changing this value requires an update to the 128T configuration
607 to match the new IP address.</para>
608 </listitem>
609 </itemizedlist>
610 </note>
611
612 <para>Onboard the Fortigate VNF VM Image through <literal>VNF -&gt;
613 Descriptors -&gt; On-board -&gt; VM Image</literal>, and fill in the
614 required fields with the following values:</para>
615
616 <table>
617 <title>Fortigate VM Image Details</title>
618
619 <tgroup cols="2">
620 <colspec align="left" />
621
622 <colspec colwidth="2*" />
623
624 <colspec colwidth="5*" />
625
626 <thead>
627 <row>
628 <entry align="center">Field</entry>
629
630 <entry align="center">Value</entry>
631 </row>
632 </thead>
633
634 <tbody>
635 <row>
636 <entry>VM image file</entry>
637
638 <entry><literal>fortios.qcow2</literal>. Please make sure to
639 contact Fortigate for an official Fortigate KVM image.</entry>
640 </row>
641
642 <row>
643 <entry>Image format</entry>
644
645 <entry>QCOW2</entry>
646 </row>
647
648 <row>
649 <entry>VNF Type Name</entry>
650
651 <entry>Fortigate</entry>
652 </row>
653
654 <row>
655 <entry>Description</entry>
656
657 <entry>Fortigate VNF</entry>
658 </row>
659
660 <row>
661 <entry>Version</entry>
662
663 <entry>1.0</entry>
664 </row>
665
666 <row>
667 <entry>Memory in MB</entry>
668
669 <entry>1024. More memory can be allocated if required
670 (&lt;28672).</entry>
671 </row>
672
673 <row>
674 <entry>Num. of CPUs</entry>
675
676 <entry>1. More CPUs can be reserved if required
677 (&lt;15).</entry>
678 </row>
679
680 <row>
681 <entry>Interfaces -&gt; +</entry>
682
683 <entry>Name: mgmt</entry>
684 </row>
685
686 <row>
687 <entry>Interfaces -&gt; +</entry>
688
689 <entry>Name: wan</entry>
690 </row>
691
692 <row>
693 <entry>Interfaces -&gt; +</entry>
694
695 <entry>Name: lan</entry>
696 </row>
697
698 <row>
699 <entry>Cloud Init -&gt; Cloud-Init Datasource</entry>
700
701 <entry>ConfigDrive</entry>
702 </row>
703
704 <row>
705 <entry>Cloud Init -&gt; Cloud-Init Disk Type</entry>
706
707 <entry>cdrom</entry>
708 </row>
709
710 <row>
711 <entry>Cloud Init -&gt; +</entry>
712
713 <entry>Path: license</entry>
714 </row>
715
716 <row>
717 <entry>Properties -&gt; +</entry>
718
719 <entry>Name: vnfMgmtIpAddress. Value: 10.0.0.3</entry>
720 </row>
721
722 <row>
723 <entry>Properties -&gt; +</entry>
724
725 <entry>Name: internalMgmtPort. Value: 443</entry>
726 </row>
727
728 <row>
729 <entry>Properties -&gt; +</entry>
730
731 <entry>Name: externalMgmtPort. Value: 60002</entry>
732 </row>
733
734 <row>
735 <entry>Onboard</entry>
736
737 <entry>&lt;Wait for message: VNF package onboarded
738 successfully&gt;</entry>
739 </row>
740
741 <row>
742 <entry>Close</entry>
743
744 <entry></entry>
745 </row>
746 </tbody>
747 </tgroup>
748 </table>
749
750 <note>
751 <itemizedlist>
752 <listitem>
753 <para>HTTPS access (443) can be changed to another type of access.
754 Please consult official Fortigate documentation and make sure the
755 Fortigate VNF is configured to accept another type of connection
756 before changing the port number.</para>
757 </listitem>
758
759 <listitem>
760 <para><literal>externalMgmtPort</literal> (60002) represents the
761 external port on which the user can access the VNF management
762 interface from the web browser via HTTPS. The user can select
763 another port if needed. There are no other changes required or
764 components affected by this change.</para>
765 </listitem>
766
767 <listitem>
768 <para><literal>vnfMgmtIpAddress</literal> (10.0.0.3) represents
769 the IP address of the management interface of the Fortigate VNF.
770 Changing this value requires an update to the Fortigate
771 configuration to match with new IP address.</para>
772 </listitem>
773 </itemizedlist>
774 </note>
775
776 <para><emphasis role="bold">Instantiating the VNFs:</emphasis></para>
777
778 <para>Instantiate the 128T VNF by selecting the me1100 device, then
779 <literal>VNF -&gt; Instances -&gt; Add</literal>.</para>
780
781 <para>Fill in the required fields with the following values:</para>
782
783 <table>
784 <title>128T VNF Instantiation</title>
785
786 <tgroup cols="2">
787 <colspec align="left" />
788
789 <colspec colwidth="2*" />
790
791 <colspec colwidth="5*" />
792
793 <thead>
794 <row>
795 <entry align="center">Field</entry>
796
797 <entry align="center">Value</entry>
798 </row>
799 </thead>
800
801 <tbody>
802 <row>
803 <entry>Name</entry>
804
805 <entry>128T_me1100_1</entry>
806 </row>
807
808 <row>
809 <entry>VNF Type</entry>
810
811 <entry>128T</entry>
812 </row>
813
814 <row>
815 <entry>VNFD Version</entry>
816
817 <entry>1.0</entry>
818 </row>
819
820 <row>
821 <entry>Flavour</entry>
822
823 <entry>Canonical</entry>
824 </row>
825
826 <row>
827 <entry>uCPE Device</entry>
828
829 <entry>me1100</entry>
830 </row>
831
832 <row>
833 <entry>Cloud Init File</entry>
834
835 <entry><literal>centos_128t_internet_ci.iso</literal>. Example
836 image provided. Please see Appendix A for details on how to
837 change the configuration and create a new cloud-init iso
838 image.</entry>
839 </row>
840
841 <row>
842 <entry>Domain Update Script</entry>
843
844 <entry></entry>
845 </row>
846
847 <row>
848 <entry>Interfaces</entry>
849
850 <entry></entry>
851 </row>
852
853 <row>
854 <entry>ID</entry>
855
856 <entry>IF Name</entry>
857 </row>
858
859 <row>
860 <entry>mgmt (dpdk)</entry>
861
862 <entry>Bridge: vnf_mgmt_br</entry>
863 </row>
864
865 <row>
866 <entry>wan (dpdk)</entry>
867
868 <entry>Bridge: ibm_br</entry>
869 </row>
870
871 <row>
872 <entry>lan (dpdk)</entry>
873
874 <entry>Bridge: sfc_br</entry>
875 </row>
876
877 <row>
878 <entry>Create</entry>
879
880 <entry></entry>
881 </row>
882 </tbody>
883 </tgroup>
884 </table>
885
886 <para>Instantiate the Fortigate VNF by selecting the me1100 device, then
887 <literal>VNF -&gt; Instances -&gt; Add</literal>.</para>
888
889 <para>Fill in the required fields with the following values:</para>
890
891 <table>
892 <title>Fortigate VNF Instantiation</title>
893
894 <tgroup cols="2">
895 <colspec align="left" />
896
897 <colspec colwidth="2*" />
898
899 <colspec colwidth="5*" />
900
901 <thead>
902 <row>
903 <entry align="center">Field</entry>
904
905 <entry align="center">Value</entry>
906 </row>
907 </thead>
908
909 <tbody>
910 <row>
911 <entry>Name</entry>
912
913 <entry>fg_me1100_1</entry>
914 </row>
915
916 <row>
917 <entry>VNF Type</entry>
918
919 <entry>Fortigate</entry>
920 </row>
921
922 <row>
923 <entry>VNFD Version</entry>
924
925 <entry>1.0</entry>
926 </row>
927
928 <row>
929 <entry>Flavour</entry>
930
931 <entry>Canonical</entry>
932 </row>
933
934 <row>
935 <entry>uCPE Device</entry>
936
937 <entry>me1100</entry>
938 </row>
939
940 <row>
941 <entry>Cloud Init File</entry>
942
943 <entry><literal>fg_cmc_basic_fw.conf</literal></entry>
944 </row>
945
946 <row>
947 <entry>License File</entry>
948
949 <entry><literal>FGVM08TM00001.lic</literal>. Please make sure to
950 use a valid license file (.lic) received from Fortinet.</entry>
951 </row>
952
953 <row>
954 <entry>Domain Update Script</entry>
955
956 <entry></entry>
957 </row>
958
959 <row>
960 <entry>Interfaces</entry>
961
962 <entry></entry>
963 </row>
964
965 <row>
966 <entry>ID</entry>
967
968 <entry>IF Name</entry>
969 </row>
970
971 <row>
972 <entry>mgmt (dpdk)</entry>
973
974 <entry>Bridge: vnf_mgmt_br</entry>
975 </row>
976
977 <row>
978 <entry>wan (dpdk)</entry>
979
980 <entry>Bridge: sfc_br</entry>
981 </row>
982
983 <row>
984 <entry>lan (dpdk)</entry>
985
986 <entry>Bridge: lan_br</entry>
987 </row>
988
989 <row>
990 <entry>Create</entry>
991
992 <entry></entry>
993 </row>
994 </tbody>
995 </tgroup>
996 </table>
997 </section>
998
999 <section>
1000 <title>Testing the Use-case</title>
1001
1002 <para>In order to access the web interfaces of the 128T VNF, open a
1003 browser on a machine connected on the same network with the WAN port of
1004 the target and connect to:
1005 <literal>https://&lt;publicIP&gt;:60001</literal> using the username:
1006 admin and the password: 128Tadmin.</para>
1007
1008 <para>In order to access the web interfaces of the Fortigate VNF, open a
1009 browser on a machine connected on the same network with the WAN port of
1010 the target and connect to:
1011 <literal>https://&lt;publicIP&gt;:60002</literal> using the username:
1012 admin, and leaving the password blank.</para>
1013
1014 <note>
1015 <para>Make sure the WAN interface of the me1100 device has access to
1016 the internet. The Fortigate VNF requires internet access to validate
1017 the license.</para>
1018 </note>
1019
1020 <para>In order to validate the data path connect a test machine to the
1021 LAN physical port and check for a dynamic IP (the Fortigate LAN
1022 interface is configured with a DHCP server):<programlisting>&gt; dhclient eth1
1023&gt; ping 8.8.8.8</programlisting>For data path validation, a new cloud-init
1024 image may need to be generated for the 128T VNF to match your network
1025 configuration. Please check Appendix A "How to create 128T cloud-init
1026 iso image (day-0 configuration)" for details.</para>
1027 </section>
1028
1029 <section>
1030 <title>Use-case Clean-up</title>
1031
1032 <para>In order to remove the setup created in previously, all components
1033 need to be deleted in reverse order:</para>
1034
1035 <orderedlist>
1036 <listitem>
1037 <para>Select the me1100 uCPE device -&gt; VNF -&gt; Instances.
1038 Select the 128T and Fortigate VNFs -&gt; Delete.</para>
1039 </listitem>
1040
1041 <listitem>
1042 <para>Select the me1100 uCPE device -&gt; Configuration -&gt;
1043 OpenVSwitch -&gt; Bridges. Select all bridges -&gt; Delete.</para>
1044 </listitem>
1045
1046 <listitem>
1047 <para>Select the me1100 uCPE device -&gt; Configuration -&gt;
1048 OpenVSwitch -&gt; Host Interfaces. Select all interfaces -&gt;
1049 Delete.</para>
1050 </listitem>
1051
1052 <listitem>
1053 <para>VNF -&gt; Descriptors. Select all bundles -&gt;
1054 Offboard.</para>
1055 </listitem>
1056 </orderedlist>
1057 </section>
1058 </section>
1059</chapter> \ No newline at end of file
diff --git a/doc/book-enea-nfv-access-cmc-example-usecases/doc/usecases_autoframe.xml b/doc/book-enea-nfv-access-cmc-example-usecases/doc/usecases_autoframe.xml
new file mode 100644
index 0000000..b92c3ca
--- /dev/null
+++ b/doc/book-enea-nfv-access-cmc-example-usecases/doc/usecases_autoframe.xml
@@ -0,0 +1,41 @@
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<chapter id="autoframe_uc_cmc">
3 <title>Running Example Use-cases from the Automation Framework</title>
4
5 <section id="uc_one_auto_cmc">
6 <title>128T VNF Router Example Use-case</title>
7
8 <para><emphasis role="bold">Deploying the 128T VNF
9 Router</emphasis></para>
10
11 <programlisting>&gt; cd automation_and_systemtest/automation_framework/unittestSuite
12&gt; python unittestSuite.py -u admin -p admin -H &lt;uCPE_Manager_IP&gt; -n me1100-1 \
13-s 128tDeploy.json -d "128T Deployment"</programlisting>
14
15 <para><emphasis role="bold">Use-case Clean-up</emphasis></para>
16
17 <programlisting>&gt; python unittestSuite.py -u admin -p admin -H &lt;uCPE_Manager_IP&gt; -n me1100-1 \
18-s 128tCleanup.json -d "128T Clean-up"</programlisting>
19 </section>
20
21 <section id="uc_two_auto_cmc">
22 <title>Service Chaining 128T - Fortigate Example Use-case</title>
23
24 <para><emphasis role="bold">Deploying the 128T router and Fortigate
25 VNF</emphasis></para>
26
27 <programlisting>&gt; cd automation_and_systemtest/automation_framework/unittestSuite
28&gt; python unittestSuite.py -u admin -p admin -H &lt;uCPE_Manager_IP&gt; -n me1100-1 \
29-s 128t_FG_SFCDeploy.json -d "128T - Fortigate SFC Deployment" </programlisting>
30
31 <para><emphasis role="bold">Use-case Clean-up</emphasis></para>
32
33 <programlisting>&gt; python unittestSuite.py -u admin -p admin -H &lt;uCPE_Manager_IP&gt; -n me1100-1 \
34-s 128t_FG_SFCCleanup.json -d "128T - Fortigate SFC CleanUp"</programlisting>
35
36 <note>
37 <para>Please replace &lt;uCPE_Manager_IP&gt; with the IP address of the
38 uCPE Manager machine.</para>
39 </note>
40 </section>
41</chapter> \ No newline at end of file
diff --git a/doc/book-enea-nfv-access-cmc-example-usecases/swcomp.mk b/doc/book-enea-nfv-access-cmc-example-usecases/swcomp.mk
new file mode 100755
index 0000000..ca26c5c
--- /dev/null
+++ b/doc/book-enea-nfv-access-cmc-example-usecases/swcomp.mk
@@ -0,0 +1,10 @@
1# Component build specification
2
3# Version of THIS book
4BOOK_VER ?= $(REL_VER)-dev
5
6DOCBOOK_SRC := $(COMP)/swcomp.mk $(COMP)/doc/book.xml $(shell find $(COMP)/doc -type f \( -name "*.xml" -o -name "*.svg" -o -name "*.png" \) ! -name "book.xml" -print)
7
8BOOKPACKAGES := book-enea-nfv-access-cmc-example-usecases
9BOOKDESC_$(BOOKPACKAGES) := "Enea NFV Access $(PROD_VER) for CMC Networks Example Use-cases"
10BOOKDEFAULTCONDITION := $(DEFAULTCONDITIONS)