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 | |
| parent | 889fc603e8adba65b405fdf795de4ed3262efd32 (diff) | |
| download | nfv-access-documentation-720f0b844023252faec537bcde47d5df2d64608b.tar.gz | |
Created xml conversion of CMC UC manual, proofed and edited.
Change-Id: Ibae3c7401e4b7ddacfe4d4af1bdc677ab2f9cbde
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) | ||
