diff options
author | Miruna Paun <Miruna.Paun@enea.com> | 2019-08-29 18:17:44 +0200 |
---|---|---|
committer | Martin Borg <martin.borg@enea.com> | 2019-08-30 14:25:34 +0200 |
commit | 720f0b844023252faec537bcde47d5df2d64608b (patch) | |
tree | dd384be2a7cc38d1eb60ecd909f2db757a48cfef /doc | |
parent | 889fc603e8adba65b405fdf795de4ed3262efd32 (diff) | |
download | el_releases-nfv-access-720f0b844023252faec537bcde47d5df2d64608b.tar.gz |
Created xml conversion of CMC UC manual, proofed and edited.
Change-Id: Ibae3c7401e4b7ddacfe4d4af1bdc677ab2f9cbde
Diffstat (limited to 'doc')
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 | |||
50 | DOCBOOK_CLEANTMP ?= yes | 50 | DOCBOOK_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 |
53 | COMPONENTS := 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 | 53 | COMPONENTS := 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 -> Manage -> 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 -> Place Device -> 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 -> | ||
152 | OpenVSwitch -> Bridges -> 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><autogenerated - do not change></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><autogenerated - do not change></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><autogenerated - do not change></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 -> OpenVSwitch -> Host Interfaces | ||
323 | -> 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><interface enp4s0f1 ready to be used in a LAN | ||
377 | bridge.></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 -> Descriptors -> | ||
388 | On-board -> 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 | (<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 | (<15).</entry> | ||
452 | </row> | ||
453 | |||
454 | <row> | ||
455 | <entry>Interfaces -> +</entry> | ||
456 | |||
457 | <entry>Name: mgmt</entry> | ||
458 | </row> | ||
459 | |||
460 | <row> | ||
461 | <entry>Interfaces -> +</entry> | ||
462 | |||
463 | <entry>Name: wan</entry> | ||
464 | </row> | ||
465 | |||
466 | <row> | ||
467 | <entry>Interfaces -> +</entry> | ||
468 | |||
469 | <entry>Name: lan</entry> | ||
470 | </row> | ||
471 | |||
472 | <row> | ||
473 | <entry>Cloud Init -> Cloud-Init Datasource</entry> | ||
474 | |||
475 | <entry>ISO</entry> | ||
476 | </row> | ||
477 | |||
478 | <row> | ||
479 | <entry>Cloud Init -> Cloud-Init Disk Type</entry> | ||
480 | |||
481 | <entry>cdrom</entry> | ||
482 | </row> | ||
483 | |||
484 | <row> | ||
485 | <entry>Properties -> +</entry> | ||
486 | |||
487 | <entry>Name: vnfMgmtIpAddress. Value: 10.0.0.2</entry> | ||
488 | </row> | ||
489 | |||
490 | <row> | ||
491 | <entry>Properties -> +</entry> | ||
492 | |||
493 | <entry>Name: internalMgmtPort. Value: 443</entry> | ||
494 | </row> | ||
495 | |||
496 | <row> | ||
497 | <entry>Properties -> +</entry> | ||
498 | |||
499 | <entry>Name: externalMgmtPort. Value: 60001</entry> | ||
500 | </row> | ||
501 | |||
502 | <row> | ||
503 | <entry>Onboard</entry> | ||
504 | |||
505 | <entry><Wait for message: VNF package onboarded | ||
506 | successfully></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 -> Instances -> 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://<public_me1100_WAN_IP>: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>> ifconfig eth3 192.168.64.2 netmask 255.255.255.0 | ||
673 | > ip route add default via 192.168.64.1 dev eth3 | ||
674 | > 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 -> VNF -> Instances -> | ||
689 | 128T -> Delete.</para> | ||
690 | </listitem> | ||
691 | |||
692 | <listitem> | ||
693 | <para>Select the me1100 uCPE device -> Configuration -> | ||
694 | OpenVSwitch -> Bridges. Select all bridges -> Delete.</para> | ||
695 | </listitem> | ||
696 | |||
697 | <listitem> | ||
698 | <para>Select the me1100 uCPE device -> Configuration -> | ||
699 | OpenVSwitch -> Host Interfaces. Select all interfaces -> | ||
700 | Delete.</para> | ||
701 | </listitem> | ||
702 | |||
703 | <listitem> | ||
704 | <para>VNF -> Descriptors, select all bundles -> | ||
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>>tar -zxf 128t-cloud-init-example.tar.gz | ||
20 | >cd 128T/cloud-init-example/ | ||
21 | >ls ./ | ||
22 | README | ||
23 | user-data | ||
24 | meta-data | ||
25 | t128-running.xml</programlisting> | ||
26 | |||
27 | <para>To generate the cloud-init iso image:</para> | ||
28 | |||
29 | <programlisting>>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 -> Import and Export Configuration -> | ||
46 | Export Configuration -> 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><rt:next-hop>172.24.15.254</rt:next-hop></programlisting> | ||
58 | |||
59 | <para>Please change <172.24.15.254> 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>>qemu-img create -f qcow2 128t.qcow2 128G | ||
31 | >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 \ | ||
33 | cdrom 128T-3.2.7-1.el7.centos.x86_64.iso \ | ||
34 | hdb 128t.qcow2 \ | ||
35 | device e1000,netdev=net1,mac=52:52:01:02:03:01 \ | ||
36 | netdev tap,id=net1,ifname=tap1,script=no,downscript=no</programlisting> | ||
37 | </listitem> | ||
38 | |||
39 | <listitem> | ||
40 | <para>Press the <ENTER> 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>------------------------------ | ||
48 | 128T Packages Installed | ||
49 | |||
50 | Please Remove Install Media, | ||
51 | |||
52 | then enter <Yes> to reboot and | ||
53 | continue install process | ||
54 | |||
55 | <Yes> <No> | ||
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>>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 | ------------------------------------------------------------------------------ | ||
80 | Booting 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 | | < Yes > < No > | | ||
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 | | < OK > < Back > | | ||
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 | | < OK > < Skip > < Back > < Help > | | ||
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 | | < OK > < Back > | | ||
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 | | < OK > < Advanced > < Back > < Help > | | ||
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 | | < OK > < Back > | | ||
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 | | < Accept > < Back > < Disable > | | ||
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 | | < OK > | | ||
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 | | < Yes > < No > | | ||
235 | |---------------------------------------|</programlisting> | ||
236 | |||
237 | <para>Select: Yes</para> | ||
238 | </listitem> | ||
239 | |||
240 | <listitem> | ||
241 | <programlisting>localhost login: root | ||
242 | Password:</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" >>/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 | > qemu-img info 128t.qcow2 | ||
293 | image: 128t.qcow2 | ||
294 | file format: qcow2 | ||
295 | virtual size: 128G (137438953472 bytes) | ||
296 | disk size: 5.4G | ||
297 | cluster_size: 65536 | ||
298 | Format 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 | > qemu-img info centos_128t_compressed.qcow2 | ||
312 | image: centos_128t_compressed.qcow2 | ||
313 | file format: qcow2 | ||
314 | virtual size: 128G (137438953472 bytes) | ||
315 | disk size: 1.2G | ||
316 | cluster_size: 65536 | ||
317 | Format specific information: | ||
318 | compat: 1.1 | ||
319 | lazy refcounts: false | ||
320 | refcount bits: 16 | ||
321 | corrupt: false | ||
322 | |||
323 | centos_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>> cd automation_and_systemtest/automation_framework/unittestSuite | ||
51 | > 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: | ||
6 | Use Case1 - 128T | ||
7 | > cd automation_and_systemtest/automation_framework/unittestSuite | ||
8 | > python unittestSuite.py -u admin -p admin -H 172.24.3.109 -n me1100-1 \ | ||
9 | -s 128tDeploy.json -d "128T Deployment" | ||
10 | |||
11 | Running 128T Deployment... | ||
12 | |||
13 | test 001: Add VCPE Agent from me1100-1 device (__main__.UnittestSuite) ... | ||
14 | 2019-08-13 12:49:58,091 - INFO: Add uCPE device | ||
15 | 2019-08-13 12:49:58,342 - INFO: Done | ||
16 | ok | ||
17 | test 002: Wait VCPE Agent device be up (__main__.UnittestSuite) ... | ||
18 | 2019-08-13 12:49:58,358 - INFO: Wait uCPE device | ||
19 | 2019-08-13 12:50:03,470 - INFO: Done | ||
20 | ok | ||
21 | test 003: Bind NIC to DPDK for LAN connection (__main__.UnittestSuite) ... | ||
22 | 2019-08-13 12:50:03,486 - INFO: Bind NIC | ||
23 | 2019-08-13 12:50:03,901 - INFO: Done | ||
24 | ok | ||
25 | test 004: Creating ibm bridge (__main__.UnittestSuite) ... | ||
26 | 2019-08-13 12:50:03,920 - INFO: New OVS network bridge | ||
27 | 2019-08-13 12:50:17,465 - INFO: Done | ||
28 | ok | ||
29 | test 005: Creating VNF Management bridge (__main__.UnittestSuite) ... | ||
30 | 2019-08-13 12:50:17,481 - INFO: New OVS network bridge | ||
31 | 2019-08-13 12:50:17,626 - INFO: Done | ||
32 | ok | ||
33 | test 006: Creating LAN bridge and attaching enp4s0f1 interface to the bridge \ | ||
34 | (__main__.UnittestSuite) ... | ||
35 | 2019-08-13 12:50:17,643 - INFO: New OVS network bridge | ||
36 | 2019-08-13 12:50:18,313 - INFO: Done | ||
37 | ok | ||
38 | test 007: Onboarding 128T VNF (wizard API) (__main__.UnittestSuite) ... | ||
39 | 2019-08-13 12:50:18,332 - INFO: Onboard wizard | ||
40 | 2019-08-13 12:52:52,909 - INFO: Done | ||
41 | ok | ||
42 | test 008: Instantiate 128T VNF (__main__.UnittestSuite) ... | ||
43 | 2019-08-13 12:52:52,924 - INFO: Instantiate VNF | ||
44 | 2019-08-13 12:54:06,219 - INFO: Done | ||
45 | ok | ||
46 | |||
47 | ---------------------------------------------------------------------- | ||
48 | Ran 8 tests in 248.144s | ||
49 | |||
50 | OK | ||
51 | |||
52 | |||
53 | Clean-up use-case1 | ||
54 | > python unittestSuite.py -u admin -p admin -H 172.24.3.109 -n me1100-1 \ | ||
55 | -s 128tCleanup.json -d "128T Clean-up" | ||
56 | |||
57 | Running 128T Clean-up... | ||
58 | |||
59 | test 001: Destroying 128T VNF (__main__.UnittestSuite) ... | ||
60 | 2019-08-13 13:03:02,704 - INFO: Destroy VNF | ||
61 | 2019-08-13 13:03:03,619 - INFO: Done | ||
62 | ok | ||
63 | test 002: Deleting network bridge LAN (__main__.UnittestSuite) ... | ||
64 | 2019-08-13 13:03:03,635 - INFO: Delete OVS network bridge | ||
65 | 2019-08-13 13:03:13,857 - INFO: Done | ||
66 | ok | ||
67 | test 003: Deleting VNF management bridge (__main__.UnittestSuite) ... | ||
68 | 2019-08-13 13:03:13,877 - INFO: Delete OVS network bridge | ||
69 | 2019-08-13 13:03:24,027 - INFO: Done | ||
70 | ok | ||
71 | test 004: Deleting ibm(In Band Management) bridge (__main__.UnittestSuite) ... | ||
72 | 2019-08-13 13:03:24,049 - INFO: Delete OVS network bridge | ||
73 | 2019-08-13 13:03:48,815 - INFO: Done | ||
74 | ok | ||
75 | test 005: Unbind LAN NIC from DPDK target (__main__.UnittestSuite) ... | ||
76 | 2019-08-13 13:03:48,835 - INFO: Unbind NIC | ||
77 | 2019-08-13 13:03:50,274 - INFO: Done | ||
78 | ok | ||
79 | test 006: Offboarding 128t VNF (__main__.UnittestSuite) ... | ||
80 | 2019-08-13 13:03:50,294 - INFO: Offboard VNF | ||
81 | 2019-08-13 13:03:50,844 - INFO: Done | ||
82 | ok | ||
83 | test 007: Remove VCPE Agent me1100-1 device (__main__.UnittestSuite) ... | ||
84 | 2019-08-13 13:03:50,858 - INFO: Remove uCPE device | ||
85 | 2019-08-13 13:03:50,998 - INFO: Done | ||
86 | ok | ||
87 | |||
88 | ---------------------------------------------------------------------- | ||
89 | Ran 7 tests in 48.308s | ||
90 | |||
91 | OK | ||
92 | |||
93 | |||
94 | Use-case2 | ||
95 | > 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" | ||
97 | Running 128T - Fortigate SFC Deployment... | ||
98 | |||
99 | test 001: Add VCPE Agent from me1100-1 device (__main__.UnittestSuite) ... | ||
100 | 2019-08-13 13:09:16,146 - INFO: Add uCPE device | ||
101 | 2019-08-13 13:09:16,272 - INFO: Done | ||
102 | ok | ||
103 | test 002: Wait VCPE Agent device be up (__main__.UnittestSuite) ... | ||
104 | 2019-08-13 13:09:16,287 - INFO: Wait uCPE device | ||
105 | 2019-08-13 13:09:23,421 - INFO: Done | ||
106 | ok | ||
107 | test 003: Bind NIC to DPDK for LAN connection (__main__.UnittestSuite) ... | ||
108 | 2019-08-13 13:09:23,445 - INFO: Bind NIC | ||
109 | 2019-08-13 13:09:24,226 - INFO: Done | ||
110 | ok | ||
111 | test 004: Creating ibm bridge (__main__.UnittestSuite) ... | ||
112 | 2019-08-13 13:09:24,245 - INFO: New OVS network bridge | ||
113 | 2019-08-13 13:09:34,720 - INFO: Done | ||
114 | ok | ||
115 | test 005: Creating VNF Management bridge (__main__.UnittestSuite) ... | ||
116 | 2019-08-13 13:09:34,741 - INFO: New OVS network bridge | ||
117 | 2019-08-13 13:09:34,885 - INFO: Done | ||
118 | ok | ||
119 | test 006: Creating LAN bridge and attaching enp4s0f1 interface to the bridge \ | ||
120 | (__main__.UnittestSuite) ... | ||
121 | 2019-08-13 13:09:34,903 - INFO: New OVS network bridge | ||
122 | 2019-08-13 13:09:35,566 - INFO: Done | ||
123 | ok | ||
124 | test 007: Creating SFC(service function chaining) bridge (__main__.UnittestSuite) ... | ||
125 | 2019-08-13 13:09:35,587 - INFO: New OVS network bridge | ||
126 | 2019-08-13 13:09:35,667 - INFO: Done | ||
127 | ok | ||
128 | test 008: Onboarding 128T VNF (wizard API) (__main__.UnittestSuite) ... | ||
129 | 2019-08-13 13:09:35,684 - INFO: Onboard wizard | ||
130 | 2019-08-13 13:12:11,845 - INFO: Done | ||
131 | ok | ||
132 | test 009: Onboarding Fortigate VNF (wizard API) (__main__.UnittestSuite) ... | ||
133 | 2019-08-13 13:12:11,861 - INFO: Onboard wizard | ||
134 | 2019-08-13 13:12:16,157 - INFO: Done | ||
135 | ok | ||
136 | test 010: Instantiate 128T VNF (__main__.UnittestSuite) ... | ||
137 | 2019-08-13 13:12:16,175 - INFO: Instantiate VNF | ||
138 | 2019-08-13 13:13:31,681 - INFO: Done | ||
139 | ok | ||
140 | test 011: Instantiate Fortigate VNF (__main__.UnittestSuite) ... | ||
141 | 2019-08-13 13:13:31,738 - INFO: Instantiate VNF | ||
142 | 2019-08-13 13:13:35,985 - INFO: Done | ||
143 | ok | ||
144 | |||
145 | ---------------------------------------------------------------------- | ||
146 | Ran 11 tests in 259.854s | ||
147 | |||
148 | OK | ||
149 | |||
150 | # Access 128T management interface | ||
151 | https://172.24.12.154:60001 | ||
152 | user: admin | ||
153 | password: 128Tadmin | ||
154 | |||
155 | # Access Fortigate management interface | ||
156 | https://172.24.12.154:60002 | ||
157 | user: admin | ||
158 | password: | ||
159 | |||
160 | |||
161 | |||
162 | Use case2 clean-up | ||
163 | > 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 | |||
166 | Running 128T - Fortigate SFC CleanUp... | ||
167 | |||
168 | test 001: Destroying Fortigate VNF (__main__.UnittestSuite) ... | ||
169 | 2019-08-13 13:51:30,204 - INFO: Destroy VNF | ||
170 | 2019-08-13 13:51:31,781 - INFO: Done | ||
171 | ok | ||
172 | test 002: Destroying 128T VNF (__main__.UnittestSuite) ... | ||
173 | 2019-08-13 13:51:31,822 - INFO: Destroy VNF | ||
174 | 2019-08-13 13:51:32,729 - INFO: Done | ||
175 | ok | ||
176 | test 003: Deleting network bridge SFC (__main__.UnittestSuite) ... | ||
177 | 2019-08-13 13:51:32,756 - INFO: Delete OVS network bridge | ||
178 | 2019-08-13 13:51:42,863 - INFO: Done | ||
179 | ok | ||
180 | test 004: Deleting network bridge LAN (__main__.UnittestSuite) ... | ||
181 | 2019-08-13 13:51:42,878 - INFO: Delete OVS network bridge | ||
182 | 2019-08-13 13:51:53,087 - INFO: Done | ||
183 | ok | ||
184 | test 005: Deleting VNF management bridge (__main__.UnittestSuite) ... | ||
185 | 2019-08-13 13:51:53,103 - INFO: Delete OVS network bridge | ||
186 | 2019-08-13 13:52:03,251 - INFO: Done | ||
187 | ok | ||
188 | test 006: Deleting ibm(In Band Management) bridge (__main__.UnittestSuite) ... | ||
189 | 2019-08-13 13:52:03,269 - INFO: Delete OVS network bridge | ||
190 | 2019-08-13 13:52:29,868 - INFO: Done | ||
191 | ok | ||
192 | test 007: Unbind LAN NIC from DPDK target (__main__.UnittestSuite) ... | ||
193 | 2019-08-13 13:52:29,885 - INFO: Unbind NIC | ||
194 | 2019-08-13 13:52:31,415 - INFO: Done | ||
195 | ok | ||
196 | test 008: Offboarding 128t VNF (__main__.UnittestSuite) ... | ||
197 | 2019-08-13 13:52:31,435 - INFO: Offboard VNF | ||
198 | 2019-08-13 13:52:32,009 - INFO: Done | ||
199 | ok | ||
200 | test 009: Offboarding Fortigate VNF (__main__.UnittestSuite) ... | ||
201 | 2019-08-13 13:52:32,023 - INFO: Offboard VNF | ||
202 | 2019-08-13 13:52:32,157 - INFO: Done | ||
203 | ok | ||
204 | test 010: Remove VCPE Agent me1100-1 device (__main__.UnittestSuite) ... | ||
205 | 2019-08-13 13:52:32,170 - INFO: Remove uCPE device | ||
206 | 2019-08-13 13:52:32,294 - INFO: Done | ||
207 | ok | ||
208 | |||
209 | ---------------------------------------------------------------------- | ||
210 | Ran 10 tests in 62.104s | ||
211 | |||
212 | OK</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 | <row>, 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 | ||
26 | sudo apt-get -y update | ||
27 | sudo 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 | ||
37 | curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo | ||
38 | chmod a+x ~/bin/repo | ||
39 | export 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 | ||
62 | cd enea-linux | ||
63 | repo init -u git@git.enea.com:linux/manifests/el_manifests-virtualization.git \ | ||
64 | -b refs/tags/EL6 -m $MACHINE/default.xml | ||
65 | repo 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 @@ | |||
1 | eltf_params_template_updated_howto_use.txt | ||
2 | |||
3 | This is a way to collect all parameters for an Enea NFV Access release | ||
4 | in one parameter file, easy to automatically update by ELTF regularly. | ||
5 | |||
6 | NOTE: 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 | |||
9 | NOTE: 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 | |||
17 | The ordinary book XML files use xi:include statements to include elements | ||
18 | from this parameter file. The book XML files can thus be manually edited. | ||
19 | Before editing, you must run "make init". | ||
20 | Any other text in the template or updated.xml file, outside the parts that | ||
21 | are included in the book, are not used but still all must be correct | ||
22 | DocBook XML files. | ||
23 | |||
24 | ELTF work: | ||
25 | template => ELTF replaces ALL ELTF_xxx variables => updated XML file | ||
26 | => push to git only if changed | ||
27 | |||
28 | |||
29 | eltf_params_template.xml (in git) | ||
30 | File used by ELTF to autocreate/update the real parameter | ||
31 | file eltf_params_updated.xml. | ||
32 | |||
33 | eltf_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 | |||
39 | xi: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 | |||
48 | DocBook XML: All XML files must be correct DocBook XML files. | ||
49 | |||
50 | Do 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 | |||
54 | ELTF should autocreate a temporary "real" file but only replace | ||
55 | and push the eltf_params_updated.xml if it is changed. | ||
56 | |||
57 | |||
58 | make eltf | ||
59 | This lists all ELTF_xxx variables and some rules how to treat them | ||
60 | |||
61 | DocBook 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 < > and & | ||
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 | |||
71 | DocBook 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 | |||
81 | DocBook 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 | |||
85 | Each 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 | |||
98 | Tables 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 | |||
102 | Special - 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 | |||
112 | BELOW WE TRY TO EXPLAIN EACH ELTF_* variable, but always check with make eltf | ||
113 | if there are more new variables, missing in this description file. | ||
114 | |||
115 | _____________________________________________________________________________ | ||
116 | ELTF_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 | ||
125 | sudo apt-get update | ||
126 | sudo 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 | _____________________________________________________________________________ | ||
133 | ELTF_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: | ||
137 | mkdir -p ~/bin | ||
138 | curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo | ||
139 | chmod a+x ~/bin/repo | ||
140 | export PATH=~/bin:$PATH | ||
141 | |||
142 | _____________________________________________________________________________ | ||
143 | ELTF_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: | ||
150 | 6 | ||
151 | or | ||
152 | 6.1 | ||
153 | |||
154 | _____________________________________________________________________________ | ||
155 | ELTF_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: | ||
160 | 2.1 | ||
161 | |||
162 | _____________________________________________________________________________ | ||
163 | ELTF_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: | ||
168 | krogoth | ||
169 | |||
170 | _____________________________________________________________________________ | ||
171 | ELTF_YOCTO_PROJ_DOWNLOAD_TXTURL General parameters. These two are IDENTICAL | ||
172 | ELTF_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: | ||
177 | http://www.yoctoproject.org/downloads/core/krogoth/21 | ||
178 | |||
179 | _____________________________________________________________________________ | ||
180 | ELTF_EL_DOWNLOAD_TXTURL General parameters. These two are IDENTICAL strings | ||
181 | ELTF_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: | ||
187 | http://linux.enea.com/6 | ||
188 | |||
189 | _____________________________________________________________________________ | ||
190 | ELTF_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: | ||
197 | mkdir enea-linux | ||
198 | cd enea-linux | ||
199 | repo init -u git@git.enea.com:linux/manifests/el_manifests-virtualization.git \ | ||
200 | -b refs/tags/EL6 -m $MACHINE/default.xml | ||
201 | repo sync | ||
202 | |||
203 | _____________________________________________________________________________ | ||
204 | ELTF_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. | ||
214 | 4.5 (Mars) | ||
215 | |||
216 | |||
217 | _____________________________________________________________________________ | ||
218 | ELTF_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 | _____________________________________________________________________________ | ||
226 | ELTF_T_MANIFEST_DIR This happens to be in two places. Must be exactly | ||
227 | ELTF_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: | ||
232 | p2041rgb | ||
233 | or | ||
234 | ls1021aiot | ||
235 | or | ||
236 | qemuarm | ||
237 | |||
238 | _____________________________________________________________________________ | ||
239 | ELTF_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: | ||
243 | P2041RGB | ||
244 | or | ||
245 | LS1021a-IoT | ||
246 | or | ||
247 | qemuarm | ||
248 | |||
249 | _____________________________________________________________________________ | ||
250 | ELTF_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: | ||
255 | Power, e500mc | ||
256 | or | ||
257 | ARM Cortex-A7 | ||
258 | |||
259 | _____________________________________________________________________________ | ||
260 | ELTF_T_DS_TXTURL Target specific: "Link to target datasheet. These | ||
261 | ELTF_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: | ||
268 | url="http://wiki.qemu.org">http://wiki.qemu.org | ||
269 | or | ||
270 | url="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 | _____________________________________________________________________________ | ||
273 | ELTF_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: | ||
279 | 15.0.0 | ||
280 | or | ||
281 | Git commit id: 75ca53211488a3e268037a44ee2a7ac5c7181bd2 | ||
282 | |||
283 | _____________________________________________________________________________ | ||
284 | ELTF_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: | ||
290 | 5.3 | ||
291 | |||
292 | _____________________________________________________________________________ | ||
293 | ELTF_T_KERN_VER Target specific: "Linux Kernel Version". Often | ||
294 | different per target. | ||
295 | In book: An <entry> in a row | ||
296 | Example: | ||
297 | 3.12 | ||
298 | |||
299 | _____________________________________________________________________________ | ||
300 | ELTF_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: | ||
306 | Ethernet, I2C, SPI, PCI, USB, SD/SDHC/SDXC | ||
307 | |||
308 | |||
309 | _____________________________________________________________________________ | ||
310 | ELTF_T_EL_RPM_TXTURL Target specific: "Enea rpm folder for downloading | ||
311 | ELTF_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: | ||
318 | url="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> -> | ||
49 | <literal>OpenVSwitch</literal> -> <literal>Host | ||
50 | Interfaces</literal> -> <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> -><literal>OpenVSwitch</literal> | ||
78 | -><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 | -><literal>Descriptor</literal> -> | ||
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> -> | ||
127 | <literal>Instances</literal> -> <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> -> | ||
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" | ||
177 | Pktgen:/> start 0</programlisting> | ||
178 | |||
179 | <note> | ||
180 | <para>The PCI address <0000:05:00.3> 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> -> <literal>user</literal> (root):</para> | ||
195 | |||
196 | <programlisting>Virsh list | ||
197 | Virsh console 1 | ||
198 | # Qemux86-64 login: root | ||
199 | tail -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> -> | ||
236 | <literal>OpenVSwitch</literal> -> <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. | ||
282 | Run: virsh list | ||
283 | Run: virsh console [VM NAME] | ||
284 | Run: 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 -> Manage -> 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 -> Place Device -> 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 -> OpenVSwitch -> Host Interfaces | ||
177 | -> 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><interface enp4s0f1 ready to be used in a LAN | ||
229 | bridge.></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 -> OpenVSwitch -> Bridges -> | ||
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><autogenerated - do not change></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><autogenerated - do not change></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><autogenerated - do not change></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><autogenerated - do not change></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 -> | ||
456 | Descriptors -> On-board -> 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 | (<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 | (<15).</entry> | ||
520 | </row> | ||
521 | |||
522 | <row> | ||
523 | <entry>Interfaces -> +</entry> | ||
524 | |||
525 | <entry>Name: mgmt</entry> | ||
526 | </row> | ||
527 | |||
528 | <row> | ||
529 | <entry>Interfaces -> +</entry> | ||
530 | |||
531 | <entry>Name: wan</entry> | ||
532 | </row> | ||
533 | |||
534 | <row> | ||
535 | <entry>Interfaces -> +</entry> | ||
536 | |||
537 | <entry>Name: lan</entry> | ||
538 | </row> | ||
539 | |||
540 | <row> | ||
541 | <entry>Cloud Init -> Cloud-Init Datasource</entry> | ||
542 | |||
543 | <entry>ISO</entry> | ||
544 | </row> | ||
545 | |||
546 | <row> | ||
547 | <entry>Cloud Init -> Cloud-Init Disk Type</entry> | ||
548 | |||
549 | <entry>cdrom</entry> | ||
550 | </row> | ||
551 | |||
552 | <row> | ||
553 | <entry>Properties -> +</entry> | ||
554 | |||
555 | <entry>Name: vnfMgmtIpAddress. Value: 10.0.0.2</entry> | ||
556 | </row> | ||
557 | |||
558 | <row> | ||
559 | <entry>Properties -> +</entry> | ||
560 | |||
561 | <entry>Name: internalMgmtPort. Value: 443</entry> | ||
562 | </row> | ||
563 | |||
564 | <row> | ||
565 | <entry>Properties -> +</entry> | ||
566 | |||
567 | <entry>Name: externalMgmtPort. Value: 60001</entry> | ||
568 | </row> | ||
569 | |||
570 | <row> | ||
571 | <entry>Onboard</entry> | ||
572 | |||
573 | <entry><Wait for message: VNF package onboarded | ||
574 | successfully></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 -> | ||
613 | Descriptors -> On-board -> 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 | (<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 | (<15).</entry> | ||
678 | </row> | ||
679 | |||
680 | <row> | ||
681 | <entry>Interfaces -> +</entry> | ||
682 | |||
683 | <entry>Name: mgmt</entry> | ||
684 | </row> | ||
685 | |||
686 | <row> | ||
687 | <entry>Interfaces -> +</entry> | ||
688 | |||
689 | <entry>Name: wan</entry> | ||
690 | </row> | ||
691 | |||
692 | <row> | ||
693 | <entry>Interfaces -> +</entry> | ||
694 | |||
695 | <entry>Name: lan</entry> | ||
696 | </row> | ||
697 | |||
698 | <row> | ||
699 | <entry>Cloud Init -> Cloud-Init Datasource</entry> | ||
700 | |||
701 | <entry>ConfigDrive</entry> | ||
702 | </row> | ||
703 | |||
704 | <row> | ||
705 | <entry>Cloud Init -> Cloud-Init Disk Type</entry> | ||
706 | |||
707 | <entry>cdrom</entry> | ||
708 | </row> | ||
709 | |||
710 | <row> | ||
711 | <entry>Cloud Init -> +</entry> | ||
712 | |||
713 | <entry>Path: license</entry> | ||
714 | </row> | ||
715 | |||
716 | <row> | ||
717 | <entry>Properties -> +</entry> | ||
718 | |||
719 | <entry>Name: vnfMgmtIpAddress. Value: 10.0.0.3</entry> | ||
720 | </row> | ||
721 | |||
722 | <row> | ||
723 | <entry>Properties -> +</entry> | ||
724 | |||
725 | <entry>Name: internalMgmtPort. Value: 443</entry> | ||
726 | </row> | ||
727 | |||
728 | <row> | ||
729 | <entry>Properties -> +</entry> | ||
730 | |||
731 | <entry>Name: externalMgmtPort. Value: 60002</entry> | ||
732 | </row> | ||
733 | |||
734 | <row> | ||
735 | <entry>Onboard</entry> | ||
736 | |||
737 | <entry><Wait for message: VNF package onboarded | ||
738 | successfully></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 -> Instances -> 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 -> Instances -> 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://<publicIP>: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://<publicIP>: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>> dhclient eth1 | ||
1023 | > 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 -> VNF -> Instances. | ||
1038 | Select the 128T and Fortigate VNFs -> Delete.</para> | ||
1039 | </listitem> | ||
1040 | |||
1041 | <listitem> | ||
1042 | <para>Select the me1100 uCPE device -> Configuration -> | ||
1043 | OpenVSwitch -> Bridges. Select all bridges -> Delete.</para> | ||
1044 | </listitem> | ||
1045 | |||
1046 | <listitem> | ||
1047 | <para>Select the me1100 uCPE device -> Configuration -> | ||
1048 | OpenVSwitch -> Host Interfaces. Select all interfaces -> | ||
1049 | Delete.</para> | ||
1050 | </listitem> | ||
1051 | |||
1052 | <listitem> | ||
1053 | <para>VNF -> Descriptors. Select all bundles -> | ||
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>> cd automation_and_systemtest/automation_framework/unittestSuite | ||
12 | > python unittestSuite.py -u admin -p admin -H <uCPE_Manager_IP> -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>> python unittestSuite.py -u admin -p admin -H <uCPE_Manager_IP> -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>> cd automation_and_systemtest/automation_framework/unittestSuite | ||
28 | > python unittestSuite.py -u admin -p admin -H <uCPE_Manager_IP> -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>> python unittestSuite.py -u admin -p admin -H <uCPE_Manager_IP> -n me1100-1 \ | ||
34 | -s 128t_FG_SFCCleanup.json -d "128T - Fortigate SFC CleanUp"</programlisting> | ||
35 | |||
36 | <note> | ||
37 | <para>Please replace <uCPE_Manager_IP> 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 | ||
4 | BOOK_VER ?= $(REL_VER)-dev | ||
5 | |||
6 | DOCBOOK_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 | |||
8 | BOOKPACKAGES := book-enea-nfv-access-cmc-example-usecases | ||
9 | BOOKDESC_$(BOOKPACKAGES) := "Enea NFV Access $(PROD_VER) for CMC Networks Example Use-cases" | ||
10 | BOOKDEFAULTCONDITION := $(DEFAULTCONDITIONS) | ||