diff options
| author | Miruna Paun <Miruna.Paun@enea.com> | 2019-06-10 12:33:41 +0200 |
|---|---|---|
| committer | Martin Borg <martin.borg@enea.com> | 2019-06-13 11:01:21 +0200 |
| commit | a9508ba2cd124789b683fba112e395832b1bf3e3 (patch) | |
| tree | a5804c3bdbefb8e8076c4d8eef227cf274cacc20 | |
| parent | e54c169596de8fd0dc3afaf979d967ee4fabe639 (diff) | |
| download | nfv-access-documentation-a9508ba2cd124789b683fba112e395832b1bf3e3.tar.gz | |
Added the System Test Spec Doc.
Change-Id: I532d2f343e5c6a0ddb7bf06961b6f889e9108952
9 files changed, 1807 insertions, 1 deletions
diff --git a/doc/Makefile b/doc/Makefile index 2cf6e28..b9e7bac 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 | 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 |
| 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-system-test-specification/doc/book.xml b/doc/book-enea-nfv-access-system-test-specification/doc/book.xml new file mode 100644 index 0000000..d1b0cae --- /dev/null +++ b/doc/book-enea-nfv-access-system-test-specification/doc/book.xml | |||
| @@ -0,0 +1,27 @@ | |||
| 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_system_test_specification"> | ||
| 7 | <title><trademark class="registered">Enea</trademark> NFV Access System Test Specification</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="overview.xml" | ||
| 19 | xmlns:xi="http://www.w3.org/2001/XInclude" /> | ||
| 20 | |||
| 21 | <xi:include href="configuration.xml" | ||
| 22 | xmlns:xi="http://www.w3.org/2001/XInclude" /> | ||
| 23 | |||
| 24 | <xi:include href="sample_test_cases.xml" | ||
| 25 | xmlns:xi="http://www.w3.org/2001/XInclude" /> | ||
| 26 | |||
| 27 | </book> | ||
diff --git a/doc/book-enea-nfv-access-system-test-specification/doc/configuration.xml b/doc/book-enea-nfv-access-system-test-specification/doc/configuration.xml new file mode 100644 index 0000000..d1415c2 --- /dev/null +++ b/doc/book-enea-nfv-access-system-test-specification/doc/configuration.xml | |||
| @@ -0,0 +1,32 @@ | |||
| 1 | <?xml version="1.0" encoding="ISO-8859-1"?> | ||
| 2 | <chapter id="config_sts"> | ||
| 3 | <title>Configuration</title> | ||
| 4 | |||
| 5 | <section id="test_objects"> | ||
| 6 | <title>Test Objects</title> | ||
| 7 | |||
| 8 | <para>The test objects for the Test Harness are considered to be the Enea | ||
| 9 | NFV Access and Enea uCPE Manager installations performed as indicated in | ||
| 10 | chapter 3 of the Enea NFV Access Automation Framework and Test Harness | ||
| 11 | User Guide.</para> | ||
| 12 | </section> | ||
| 13 | |||
| 14 | <section id="test_env"> | ||
| 15 | <title>Test Environment</title> | ||
| 16 | |||
| 17 | <para>To setup the required Test Harness environment please refer to the | ||
| 18 | "Environment" chapter from the Enea NFV Access Automation Framework and | ||
| 19 | Test Harness User Guide.</para> | ||
| 20 | </section> | ||
| 21 | |||
| 22 | <section id="precon_exe_steps"> | ||
| 23 | <title>Preconditions and Execution Steps</title> | ||
| 24 | |||
| 25 | <para>Please refer to the "Prerequisites" and "Installation and Initial | ||
| 26 | Setup" chapters from Enea NFV Access Automation Framework and Test Harness | ||
| 27 | User Guide.</para> | ||
| 28 | |||
| 29 | <para>For detailed execution steps of the sample test cases included with | ||
| 30 | the Test Harness please see chapter 3 in this document.</para> | ||
| 31 | </section> | ||
| 32 | </chapter> \ No newline at end of file | ||
diff --git a/doc/book-enea-nfv-access-system-test-specification/doc/eltf_params_template.xml b/doc/book-enea-nfv-access-system-test-specification/doc/eltf_params_template.xml new file mode 100644 index 0000000..eaa7ebd --- /dev/null +++ b/doc/book-enea-nfv-access-system-test-specification/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-system-test-specification/doc/eltf_params_updated.xml b/doc/book-enea-nfv-access-system-test-specification/doc/eltf_params_updated.xml new file mode 100644 index 0000000..feabc9f --- /dev/null +++ b/doc/book-enea-nfv-access-system-test-specification/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.4</phrase></para> | ||
| 48 | |||
| 49 | <para id="Yocto_NAME"><phrase>rocko</phrase></para> | ||
| 50 | |||
| 51 | <para id="ULINK_YOCTO_PROJECT_DOWNLOAD"><ulink | ||
| 52 | url="http://www.yoctoproject.org/downloads">http://www.yoctoproject.org/downloads</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-system-test-specification/doc/eltf_params_updated_template_how_to_use.txt b/doc/book-enea-nfv-access-system-test-specification/doc/eltf_params_updated_template_how_to_use.txt new file mode 100755 index 0000000..62e5d02 --- /dev/null +++ b/doc/book-enea-nfv-access-system-test-specification/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-system-test-specification/doc/overview.xml b/doc/book-enea-nfv-access-system-test-specification/doc/overview.xml new file mode 100644 index 0000000..7df9acc --- /dev/null +++ b/doc/book-enea-nfv-access-system-test-specification/doc/overview.xml | |||
| @@ -0,0 +1,125 @@ | |||
| 1 | <?xml version="1.0" encoding="ISO-8859-1"?> | ||
| 2 | <chapter id="overview_sts"> | ||
| 3 | <title>Overview</title> | ||
| 4 | |||
| 5 | <para>This document specifies a Sample Test Suite for System Testing of the | ||
| 6 | Enea NFV Access Solution. It also provides information regarding the | ||
| 7 | necessary steps to run these tests.</para> | ||
| 8 | |||
| 9 | <section id="scope"> | ||
| 10 | <title>Scope</title> | ||
| 11 | |||
| 12 | <para>The scope of this document is to describe the Test Harness (TH) | ||
| 13 | sample test cases for System Testing of the Enea NFV Access Solution. | ||
| 14 | Furthermore, this document shall also describe the necessary environment | ||
| 15 | setup to run these tests successfully.</para> | ||
| 16 | </section> | ||
| 17 | |||
| 18 | <section id="def_acro_sts"> | ||
| 19 | <title>Definitions and Acronyms</title> | ||
| 20 | |||
| 21 | <table> | ||
| 22 | <title>Definitions</title> | ||
| 23 | |||
| 24 | <tgroup cols="2"> | ||
| 25 | <colspec align="center" /> | ||
| 26 | |||
| 27 | <thead> | ||
| 28 | <row> | ||
| 29 | <entry align="center">Component</entry> | ||
| 30 | |||
| 31 | <entry align="center">Description</entry> | ||
| 32 | </row> | ||
| 33 | </thead> | ||
| 34 | |||
| 35 | <tbody> | ||
| 36 | <row> | ||
| 37 | <entry>Enea NFV Access Solution</entry> | ||
| 38 | |||
| 39 | <entry>Enea NFV Access (with ODM) Runtime Platform and Enea uCPE | ||
| 40 | Manager.</entry> | ||
| 41 | </row> | ||
| 42 | |||
| 43 | <row> | ||
| 44 | <entry>Enea Portal</entry> | ||
| 45 | |||
| 46 | <entry><ulink | ||
| 47 | url="https://portal.enea.com">https://portal.enea.com</ulink></entry> | ||
| 48 | </row> | ||
| 49 | </tbody> | ||
| 50 | </tgroup> | ||
| 51 | </table> | ||
| 52 | |||
| 53 | <table> | ||
| 54 | <title>Acronyms</title> | ||
| 55 | |||
| 56 | <tgroup cols="2"> | ||
| 57 | <colspec align="center" /> | ||
| 58 | |||
| 59 | <thead> | ||
| 60 | <row> | ||
| 61 | <entry align="center">Component</entry> | ||
| 62 | |||
| 63 | <entry align="center">Description</entry> | ||
| 64 | </row> | ||
| 65 | </thead> | ||
| 66 | |||
| 67 | <tbody> | ||
| 68 | <row> | ||
| 69 | <entry>AF</entry> | ||
| 70 | |||
| 71 | <entry>Automation Framework for Enea NFV Access.</entry> | ||
| 72 | </row> | ||
| 73 | |||
| 74 | <row> | ||
| 75 | <entry>JSON</entry> | ||
| 76 | |||
| 77 | <entry>JavaScript Object Notation.</entry> | ||
| 78 | </row> | ||
| 79 | |||
| 80 | <row> | ||
| 81 | <entry>NIC</entry> | ||
| 82 | |||
| 83 | <entry>Network Interface Card.</entry> | ||
| 84 | </row> | ||
| 85 | |||
| 86 | <row> | ||
| 87 | <entry>NFV</entry> | ||
| 88 | |||
| 89 | <entry>Network Functions Virtualization.</entry> | ||
| 90 | </row> | ||
| 91 | |||
| 92 | <row> | ||
| 93 | <entry>ODM</entry> | ||
| 94 | |||
| 95 | <entry>Enea Element On Device Management.</entry> | ||
| 96 | </row> | ||
| 97 | |||
| 98 | <row> | ||
| 99 | <entry>OVS</entry> | ||
| 100 | |||
| 101 | <entry>Open vSwitch.</entry> | ||
| 102 | </row> | ||
| 103 | |||
| 104 | <row> | ||
| 105 | <entry>TH</entry> | ||
| 106 | |||
| 107 | <entry>Test Harness for Enea NFV Access.</entry> | ||
| 108 | </row> | ||
| 109 | |||
| 110 | <row> | ||
| 111 | <entry>uCPE Manager</entry> | ||
| 112 | |||
| 113 | <entry>Enea Universal Customer Premises Equipment Manager.</entry> | ||
| 114 | </row> | ||
| 115 | |||
| 116 | <row> | ||
| 117 | <entry>VNF</entry> | ||
| 118 | |||
| 119 | <entry>Virtualized Network Function.</entry> | ||
| 120 | </row> | ||
| 121 | </tbody> | ||
| 122 | </tgroup> | ||
| 123 | </table> | ||
| 124 | </section> | ||
| 125 | </chapter> \ No newline at end of file | ||
diff --git a/doc/book-enea-nfv-access-system-test-specification/doc/sample_test_cases.xml b/doc/book-enea-nfv-access-system-test-specification/doc/sample_test_cases.xml new file mode 100644 index 0000000..50907ca --- /dev/null +++ b/doc/book-enea-nfv-access-system-test-specification/doc/sample_test_cases.xml | |||
| @@ -0,0 +1,855 @@ | |||
| 1 | <?xml version="1.0" encoding="ISO-8859-1"?> | ||
| 2 | <chapter id="sample_testcases"> | ||
| 3 | <title>Sample Test Cases</title> | ||
| 4 | |||
| 5 | <para>The test cases specified in this chapter are implemented as a Sample | ||
| 6 | Test Suite included in the TH.</para> | ||
| 7 | |||
| 8 | <section id="vnf_dev_net_smoke"> | ||
| 9 | <title>VNF, Device and Network Smoke Test Cases</title> | ||
| 10 | |||
| 11 | <para>The following is an automated test suite that acts as basic smoke | ||
| 12 | tests for the Enea NFV Access Solution and as a sanity-check test suite | ||
| 13 | for the AF and TH.</para> | ||
| 14 | |||
| 15 | <section id="onb_vnf_image"> | ||
| 16 | <title>VNF - Onboard_VNF_Image</title> | ||
| 17 | |||
| 18 | <para><emphasis role="bold">Description: </emphasis>Onboarding a VNF | ||
| 19 | Image into the uCPE Manager. For details please refer to:</para> | ||
| 20 | |||
| 21 | <para><filename><AF-TH-install-dir>/playbooks/onboardVNFImage.yml</filename></para> | ||
| 22 | |||
| 23 | <para><filename><AF-TH-install-dir>/automation_framework/vnf/onboardVNFRaw.py</filename></para> | ||
| 24 | |||
| 25 | <para><emphasis role="bold">Preconditions:</emphasis></para> | ||
| 26 | |||
| 27 | <itemizedlist> | ||
| 28 | <listitem> | ||
| 29 | <para>Add the VNF Image in the <literal>vnf_image</literal> folder | ||
| 30 | in QCOW2 format: <programlisting><AF-TH-install-dir>/vnf_image/<VNF-Image-name>.qcow2</programlisting></para> | ||
| 31 | </listitem> | ||
| 32 | |||
| 33 | <listitem> | ||
| 34 | <para>A VNF Image JSON configuration file is created: | ||
| 35 | <filename><AF-TH-install-dir>/vnf_config/<VNF-Descriptor-name>/<VNF-Descriptor-name>.json</filename>.</para> | ||
| 36 | |||
| 37 | <para><emphasis role="bold">Example:</emphasis><programlisting><AF-TH-install-dir>/vnf_config/fortigateImage/fortigateImage.json</programlisting></para> | ||
| 38 | </listitem> | ||
| 39 | </itemizedlist> | ||
| 40 | |||
| 41 | <para><emphasis role="bold">Action:</emphasis> Run the | ||
| 42 | <filename>onboardVNFImage.yml</filename> Ansible Playbook with the | ||
| 43 | <literal><VNF-Image-name></literal> and the | ||
| 44 | <literal><VNF-Descriptor-name></literal> as extra-vars: | ||
| 45 | <programlisting>ansible-playbook playbooks/onboardVNFImage.yml -e "vnfb=<VNF-Image-name> \ | ||
| 46 | vnfd=<VNF-Descriptor-name>"</programlisting></para> | ||
| 47 | |||
| 48 | <para><emphasis role="bold">Result:</emphasis> Output of the test case | ||
| 49 | run using the Test Harness: <programlisting># Onboard VNF Image task result | ||
| 50 | <VNF-Descriptor-name> successfully onboarded!</programlisting><emphasis | ||
| 51 | role="bold">Note:</emphasis> The test will not fail if the VNF Image is | ||
| 52 | already onboarded. The output will instead contain: <programlisting># debug <VNF-Descriptor-name> already onboarded!</programlisting></para> | ||
| 53 | </section> | ||
| 54 | |||
| 55 | <section id="onb_vnf_bundle"> | ||
| 56 | <title>VNF - Onboard_VNF_Bundle<remark>since we're removing mention of | ||
| 57 | bundles is this section still relevant?</remark></title> | ||
| 58 | |||
| 59 | <para><emphasis role="bold">Description:</emphasis> Onboarding a VNF | ||
| 60 | Bundle into the uCPE Manager. For details please refer to:</para> | ||
| 61 | |||
| 62 | <para><filename><AF-TH-install-dir>/playbooks/onboardVNFBundle.yml</filename></para> | ||
| 63 | |||
| 64 | <para><filename><AF-TH-install-dir>/automation_framework/vnf/onboardVNF.py</filename></para> | ||
| 65 | |||
| 66 | <para><emphasis role="bold">Precondition:</emphasis> Add the VNF Bundle | ||
| 67 | in the <literal>vnf_image</literal> folder in the zip format: | ||
| 68 | <filename><AF-TH-install-dir>/vnf_image/<VNF-Bundle-name>.zip</filename>.</para> | ||
| 69 | |||
| 70 | <para><emphasis role="bold">Action:</emphasis> Run the | ||
| 71 | <filename>onboardVNFBundle.yml</filename> Ansible Playbook with the | ||
| 72 | <literal><VNF-Bundle-name></literal> as extra-vars: | ||
| 73 | <programlisting>ansible-playbook playbooks/onboardVNFBundle.yml -e "vnfb=<VNF-Bundle-name>"</programlisting></para> | ||
| 74 | |||
| 75 | <para><emphasis role="bold">Result:</emphasis> Output of the test case | ||
| 76 | run using the Test Harness: <programlisting># Onboard VNF Bundle task result | ||
| 77 | <VNF-Bundle-name> successfully onboarded!</programlisting><emphasis | ||
| 78 | role="bold">Note:</emphasis> The test will not fail if the VNF Bundle is | ||
| 79 | already onboarded. The output will instead contain: <programlisting># debug <VNF-Bundle-name> already onboarded!</programlisting></para> | ||
| 80 | </section> | ||
| 81 | |||
| 82 | <section id="offb_vnf"> | ||
| 83 | <title>VNF - Offboard_VNF</title> | ||
| 84 | |||
| 85 | <para><emphasis role="bold">Description:</emphasis> Removing a VNF | ||
| 86 | Descriptor from the uCPE Manager. For details please refer to:</para> | ||
| 87 | |||
| 88 | <para><filename><AF-TH-install-dir>/playbooks/offboardVNF.yml</filename></para> | ||
| 89 | |||
| 90 | <para><filename><AF-TH-install-dir>/automation_framework/vnf/offboardVNF.py</filename>.</para> | ||
| 91 | |||
| 92 | <para><emphasis role="bold">Precondition:</emphasis> The VNF has been | ||
| 93 | previously onboarded in the uCPE Manager instance.</para> | ||
| 94 | |||
| 95 | <para><emphasis role="bold">Action:</emphasis> Run the | ||
| 96 | <filename>offboardVNF.yml</filename> Ansible Playbook with the | ||
| 97 | <literal><VNF-Descriptor-name></literal> as extra-vars: | ||
| 98 | <programlisting>ansible-playbook playbooks/offboardVNF.yml -e "vnfd=<VNF-Descriptor-name>"</programlisting></para> | ||
| 99 | |||
| 100 | <para><emphasis role="bold">Result:</emphasis> Output of the test case | ||
| 101 | run using the Test Harness: <programlisting># Remove Descriptor task result | ||
| 102 | <VNF-Descriptor-name> was removed!</programlisting><emphasis | ||
| 103 | role="bold">Note:</emphasis> The test will not fail if the VNF | ||
| 104 | Descriptor does not exist. The output will instead contain: | ||
| 105 | <programlisting># debug No Descriptor with name <VNF-Descriptor-name>!</programlisting></para> | ||
| 106 | </section> | ||
| 107 | |||
| 108 | <section id="add_device"> | ||
| 109 | <title>Device - Add_Device</title> | ||
| 110 | |||
| 111 | <para><emphasis role="bold">Description:</emphasis> Adding a uCPE device | ||
| 112 | to the uCPE Manager. For details please refer to:</para> | ||
| 113 | |||
| 114 | <para><filename><AF-TH-install-dir>/playbooks/addDevice.yml</filename></para> | ||
| 115 | |||
| 116 | <para><filename><AF-TH-install-dir>/automation_framework/device/addDevice.py</filename>.</para> | ||
| 117 | |||
| 118 | <para><emphasis role="bold">Precondition:</emphasis> A device JSON | ||
| 119 | configuration file must be created: | ||
| 120 | <filename><AF-TH-install-dir>/lab_config/<Device-name>/<Device-name>.json</filename>.</para> | ||
| 121 | |||
| 122 | <para><emphasis role="bold">Example:</emphasis> <programlisting><AF-TH-install-dir>/lab_config/intelc3850-2/intelc3850-2.json</programlisting></para> | ||
| 123 | |||
| 124 | <para><emphasis role="bold">Action:</emphasis> Run the | ||
| 125 | <filename>addDevice.yml</filename> Ansible playbook with the | ||
| 126 | <filename><Device-name></filename> as extra-vars: <programlisting>ansible-playbook playbooks/addDevice.yml -e "device=<Device-name>"</programlisting></para> | ||
| 127 | |||
| 128 | <para><emphasis role="bold">Result:</emphasis> Output of the test case | ||
| 129 | run using the Test Harness: <programlisting># Add Device task result | ||
| 130 | <Device-name> device was added!</programlisting><emphasis | ||
| 131 | role="bold">Note:</emphasis> The test will not fail if the device | ||
| 132 | already exists. The output will instead contain: <programlisting># debug | ||
| 133 | <Device-name> device already exists!</programlisting></para> | ||
| 134 | </section> | ||
| 135 | |||
| 136 | <section id="remv_dev"> | ||
| 137 | <title>Device - Remove_Device</title> | ||
| 138 | |||
| 139 | <para><emphasis role="bold">Description:</emphasis> Removing a uCPE | ||
| 140 | device from the uCPE Manager. For details please refer to:</para> | ||
| 141 | |||
| 142 | <para><filename><AF-TH-install-dir>/playbooks/removeDevice.yml</filename></para> | ||
| 143 | |||
| 144 | <para><filename><AF-TH-install-dir>/automation_framework/device/removeDevice.py</filename>.</para> | ||
| 145 | |||
| 146 | <para><emphasis role="bold">Preconditions:</emphasis></para> | ||
| 147 | |||
| 148 | <itemizedlist> | ||
| 149 | <listitem> | ||
| 150 | <para>The device has to be previously added to the uCPE Manager | ||
| 151 | instance.</para> | ||
| 152 | </listitem> | ||
| 153 | |||
| 154 | <listitem> | ||
| 155 | <para>The device JSON configuration file must exist: | ||
| 156 | <programlisting><AF-TH-install-dir>/lab_config/<Device-name>/<Device-name>.json</programlisting></para> | ||
| 157 | </listitem> | ||
| 158 | </itemizedlist> | ||
| 159 | |||
| 160 | <para><emphasis role="bold">Action:</emphasis> Run the | ||
| 161 | <filename>removeDevice.yml</filename> Ansible Playbook with the | ||
| 162 | <literal><Device-name></literal> as extra-vars: <programlisting>ansible-playbook playbooks/removeDevice.yml -e "device=<Device-name>"</programlisting></para> | ||
| 163 | |||
| 164 | <para><emphasis role="bold">Result:</emphasis> Output of the test case | ||
| 165 | run using the Test Harness:<programlisting># Remove Device task result | ||
| 166 | <Device-name> device was removed!</programlisting> <emphasis | ||
| 167 | role="bold">Note:</emphasis> The test will not fail if the device does | ||
| 168 | not exist. The output will contain: <programlisting># debug | ||
| 169 | <Device-name> device was not found!</programlisting></para> | ||
| 170 | </section> | ||
| 171 | |||
| 172 | <section id="bind_nic"> | ||
| 173 | <title>Network - Bind_NIC</title> | ||
| 174 | |||
| 175 | <para><emphasis role="bold">Description:</emphasis> Binding a physical | ||
| 176 | network interface (NIC) to a device. For details please refer to:</para> | ||
| 177 | |||
| 178 | <para><filename><AF-TH-install-dir>/playbooks/bindNIC.yml</filename></para> | ||
| 179 | |||
| 180 | <para><filename><AF-TH-install-dir>/automation_framework/network/bindNetworkInterface.py</filename>.</para> | ||
| 181 | |||
| 182 | <para><emphasis role="bold">Preconditions:</emphasis></para> | ||
| 183 | |||
| 184 | <itemizedlist> | ||
| 185 | <listitem> | ||
| 186 | <para>A device must have been previously added to the uCPE Manager | ||
| 187 | instance.</para> | ||
| 188 | </listitem> | ||
| 189 | |||
| 190 | <listitem> | ||
| 191 | <para>A NIC JSON configuration file must exist: | ||
| 192 | <filename><AF-TH-install-dir>/lab_config/<Device-name>/<NIC>.json</filename>.</para> | ||
| 193 | |||
| 194 | <para><emphasis role="bold">Example:</emphasis> <programlisting><AF-TH-install-dir>/lab_config/intelc3850-2/wan_nic.json | ||
| 195 | <AF-TH-install-dir>/lab_config/intelc3850-2/lan_nic.json</programlisting></para> | ||
| 196 | </listitem> | ||
| 197 | </itemizedlist> | ||
| 198 | |||
| 199 | <para><emphasis role="bold">Action:</emphasis> Run the | ||
| 200 | <filename>bindNIC.yml</filename> Ansible Playbook with the | ||
| 201 | <literal><Device-name></literal> and | ||
| 202 | <literal><NIC></literal> as extra-vars: <programlisting>ansible-playbook playbooks/bindNIC.yml -e "device=<Device-name> nic=<NIC>"</programlisting></para> | ||
| 203 | |||
| 204 | <para><emphasis role="bold">Result:</emphasis> Output of the test case | ||
| 205 | run using the Test Harness: <programlisting># Bind NIC task result | ||
| 206 | <NIC> binded successfully!</programlisting> <emphasis | ||
| 207 | role="bold">Note:</emphasis> The test will not fail if the NIC is | ||
| 208 | already bound, it will be unbound and bound again with the provided | ||
| 209 | configuration.</para> | ||
| 210 | </section> | ||
| 211 | |||
| 212 | <section id="unbind_nic"> | ||
| 213 | <title>Network - Unbind_NIC</title> | ||
| 214 | |||
| 215 | <para><emphasis role="bold">Description:</emphasis> Unbinding a physical | ||
| 216 | network interface (NIC) from a device. For details please refer | ||
| 217 | to:</para> | ||
| 218 | |||
| 219 | <para><filename><AF-TH-install-dir>/playbooks/unbindNIC.yml</filename></para> | ||
| 220 | |||
| 221 | <para><filename><AF-TH-install-dir>/automation_framework/network/unbindNetworkInterface.py</filename>.</para> | ||
| 222 | |||
| 223 | <para><emphasis role="bold">Preconditions:</emphasis></para> | ||
| 224 | |||
| 225 | <itemizedlist> | ||
| 226 | <listitem> | ||
| 227 | <para>A NIC is bound to a device in a uCPE Manager instance.</para> | ||
| 228 | </listitem> | ||
| 229 | |||
| 230 | <listitem> | ||
| 231 | <para>A NIC JSON configuration file exists: | ||
| 232 | <filename><AF-TH-install-dir>/lab_config/<Device-name>/<NIC>.json</filename></para> | ||
| 233 | </listitem> | ||
| 234 | </itemizedlist> | ||
| 235 | |||
| 236 | <para><emphasis role="bold">Action:</emphasis> Run the | ||
| 237 | <filename>unbindNIC.yml</filename> Ansible Playbook with the | ||
| 238 | <literal><Device-name></literal> and | ||
| 239 | <literal><NIC></literal> as extra-vars: <programlisting>ansible-playbook playbooks/unbindNIC.yml -e "device=<Device-name> nic=<NIC>"</programlisting></para> | ||
| 240 | |||
| 241 | <para><emphasis role="bold">Result:</emphasis> Output of the test case | ||
| 242 | run using the Test Harness: <programlisting># Unbind NIC task result | ||
| 243 | <NIC> unbinded!</programlisting> <emphasis role="bold">Note:</emphasis> | ||
| 244 | The test will not fail if the NIC is not bound. The output will instead | ||
| 245 | contain:<programlisting># debug | ||
| 246 | <NIC> is not binded!</programlisting></para> | ||
| 247 | </section> | ||
| 248 | |||
| 249 | <section id="create_bri"> | ||
| 250 | <title>Network - Create_Bridge</title> | ||
| 251 | |||
| 252 | <para><emphasis role="bold">Description:</emphasis> Creating an OVS | ||
| 253 | network bridge on a uCPE device. For details please refer to:</para> | ||
| 254 | |||
| 255 | <para><filename><AF-TH-install-dir>/playbooks/addBridge.yml</filename></para> | ||
| 256 | |||
| 257 | <para><filename><AF-TH-install-dir>/automation_framework/network/newNetworkBridge.py</filename>.</para> | ||
| 258 | |||
| 259 | <para><emphasis role="bold">Precondition:</emphasis><itemizedlist> | ||
| 260 | <listitem> | ||
| 261 | <para>A NIC is bound to a device in a uCPE Manager | ||
| 262 | instance.</para> | ||
| 263 | </listitem> | ||
| 264 | |||
| 265 | <listitem> | ||
| 266 | <para>A Bridge JSON configuration file is created: | ||
| 267 | <filename><AF-TH-install-dir>/lab_config/<Device-name>/<Bridge-name>.json</filename></para> | ||
| 268 | |||
| 269 | <para><emphasis role="bold">Example:</emphasis><programlisting><AF-TH-install-dir>/lab_config/intelc3850-2/wan_br.json | ||
| 270 | <AF-TH-install-dir>/lab_config/intelc3850-2/lan_br.json</programlisting></para> | ||
| 271 | </listitem> | ||
| 272 | </itemizedlist></para> | ||
| 273 | |||
| 274 | <para><emphasis role="bold">Action:</emphasis> Run the | ||
| 275 | <filename>addBridge.yml</filename> Ansible Playbook with the | ||
| 276 | <literal><Device-name></literal> and the | ||
| 277 | <literal><Bridge-name></literal> as extra-vars: <programlisting>ansible-playbook playbooks/addBridge.yml -e "device=<Device-name> bridge=<Bridge-name>"</programlisting></para> | ||
| 278 | |||
| 279 | <para><emphasis role="bold">Result:</emphasis> Output of the test case | ||
| 280 | run using the Test Harness: <programlisting># Add Bridge task result | ||
| 281 | <Bridge-name> network bridge was added!</programlisting><emphasis | ||
| 282 | role="bold">Note:</emphasis> The test will not fail if there already | ||
| 283 | exists a bridge with the same name, it will be deleted and the bridge | ||
| 284 | will be created again with the provided configuration.</para> | ||
| 285 | </section> | ||
| 286 | |||
| 287 | <section id="remov_bri"> | ||
| 288 | <title>Network - Remove_Bridge</title> | ||
| 289 | |||
| 290 | <para><emphasis role="bold">Description:</emphasis> Removing an OVS | ||
| 291 | network bridge from a uCPE device. For details please refer to:</para> | ||
| 292 | |||
| 293 | <para><filename><AF-TH-install-dir>/playbooks/deleteBridge.yml</filename></para> | ||
| 294 | |||
| 295 | <para><filename><AF-TH-install-dir>/automation_framework/network/delNetworkBridge.py</filename>.</para> | ||
| 296 | |||
| 297 | <para><emphasis role="bold">Preconditions:</emphasis> <itemizedlist> | ||
| 298 | <listitem> | ||
| 299 | <para>A Bridge is created in a uCPE Manager instance.</para> | ||
| 300 | </listitem> | ||
| 301 | |||
| 302 | <listitem> | ||
| 303 | <para>A Bridge JSON configuration file exists: | ||
| 304 | <filename><AF-TH-install-dir>/lab_config/<Device-name>/<Bridge-name>.json</filename>.</para> | ||
| 305 | </listitem> | ||
| 306 | </itemizedlist><emphasis role="bold">Action:</emphasis> Run the | ||
| 307 | <filename>deleteBridge.yml</filename> Ansible Playbook with the | ||
| 308 | <literal><Device-name></literal> and the | ||
| 309 | <literal><Bridge-name></literal> as extra-vars: <programlisting>ansible-playbook playbooks/deleteBridge.yml -e "device=<Device-name> \ | ||
| 310 | bridge=<Bridge-name>"</programlisting></para> | ||
| 311 | |||
| 312 | <para><emphasis role="bold">Result:</emphasis> Output of the test case | ||
| 313 | run using the Test Harness: <programlisting># Delete Bridge task result | ||
| 314 | <Bridge-name> network bridge was deleted!</programlisting><emphasis | ||
| 315 | role="bold">Note:</emphasis> The test will not fail if the bridge does | ||
| 316 | not exist: <programlisting># debug | ||
| 317 | <Bridge-name> bridge not found!</programlisting></para> | ||
| 318 | </section> | ||
| 319 | </section> | ||
| 320 | |||
| 321 | <section id="vnf_deploy_lifecycle"> | ||
| 322 | <title>VNF Deployment and Lifecycle</title> | ||
| 323 | |||
| 324 | <para>The following details the automated suite that handles the testing | ||
| 325 | of the instantiation, lifecycle and destruction of a VNF for the Enea NFV | ||
| 326 | Access Solution.</para> | ||
| 327 | |||
| 328 | <section id="inst_vnfi"> | ||
| 329 | <title>Instantiate_VNFI</title> | ||
| 330 | |||
| 331 | <para><emphasis role="bold">Description:</emphasis> Creating a VNF | ||
| 332 | instance on a uCPE device. For details please refer to:</para> | ||
| 333 | |||
| 334 | <para><filename><AF-TH-install-dir>/playbooks/instantiateVNFI.yml</filename></para> | ||
| 335 | |||
| 336 | <para><filename><AF-TH-install-dir>/automation_framework/vnf/instantiateVNFI.py</filename>.</para> | ||
| 337 | |||
| 338 | <para><emphasis role="bold">Preconditions:</emphasis> <itemizedlist> | ||
| 339 | <listitem> | ||
| 340 | <para>A VNF Image is onboarded and a device is added to the uCPE | ||
| 341 | Manager. Depending on the VNF, other steps may be required.</para> | ||
| 342 | </listitem> | ||
| 343 | |||
| 344 | <listitem> | ||
| 345 | <para>A VNFI JSON configuration file is created: | ||
| 346 | <filename><AF-TH-install-dir>/vnf_config/<VNF-Descriptor-name>/<VNFI-name>.json</filename></para> | ||
| 347 | |||
| 348 | <para><emphasis role="bold">Example:</emphasis> <programlisting><AF-TH-install-dir>/vnf_config/fortigateImage/fortigateFWInstance.json</programlisting></para> | ||
| 349 | </listitem> | ||
| 350 | </itemizedlist></para> | ||
| 351 | |||
| 352 | <para><emphasis role="bold">Action:</emphasis> Run the | ||
| 353 | <filename>instantiateVNFI.yml</filename> Ansible Playbook with the | ||
| 354 | <literal><Device-name></literal>, | ||
| 355 | <literal><VNF-Descriptor-name></literal> and the | ||
| 356 | <literal><VNFI-name></literal> as extra-vars: <programlisting>ansible-playbook playbooks/instantiateVNFI.yml -e "device=<Device-name> \ | ||
| 357 | vnfd=<VNF-Descriptor-name> vnfi=<VNFI-name>"</programlisting></para> | ||
| 358 | |||
| 359 | <para><emphasis role="bold">Result:</emphasis> Output of the test case | ||
| 360 | run using the Test Harness: <programlisting># Instantiate VNF task result | ||
| 361 | <VNFI-name> was instantiated!</programlisting><emphasis | ||
| 362 | role="bold">Note:</emphasis> The test will not fail when the VNF | ||
| 363 | instance already exists. The output will contain: <programlisting># debug | ||
| 364 | <VNFI-name> already exists!</programlisting></para> | ||
| 365 | </section> | ||
| 366 | |||
| 367 | <section id="control_vnfi"> | ||
| 368 | <title>Control_VNFI</title> | ||
| 369 | |||
| 370 | <para><emphasis role="bold">Description:</emphasis> Changing the status | ||
| 371 | of a VNF instance (Pause, Resume, Stop, Start). For details please refer | ||
| 372 | to:</para> | ||
| 373 | |||
| 374 | <para><filename><AF-TH-install-dir>/playbooks/controlVNFI.yml</filename></para> | ||
| 375 | |||
| 376 | <para><filename><AF-TH-install-dir>/automation_framework/vnf/controlVNFI.py</filename>.</para> | ||
| 377 | |||
| 378 | <para><emphasis role="bold">Precondition:</emphasis> A VNF is | ||
| 379 | instantiated on a uCPE device.</para> | ||
| 380 | |||
| 381 | <para><emphasis role="bold">Action:</emphasis> Run the | ||
| 382 | <filename>controlVNFI.yml</filename> Ansible Playbook with the | ||
| 383 | <literal><Device-name></literal>, | ||
| 384 | <literal><VNFI-name></literal> and the | ||
| 385 | <literal><Command></literal> as extra-vars: <programlisting>ansible-playbook playbooks/controlVNFI.yml -e "device=<Device-name> \ | ||
| 386 | vnfi=<VNFI-name> status=<Command>"</programlisting>Where Command = | ||
| 387 | { pause | resume | stop | start }</para> | ||
| 388 | |||
| 389 | <para><emphasis role="bold">Result:</emphasis> Output of the test case | ||
| 390 | run using the Test Harness: <programlisting># Change VNFI Status task result | ||
| 391 | <VNFI-name> status was set to <Command></programlisting><emphasis | ||
| 392 | role="bold">Note:</emphasis> The test will not fail if the VNF instance | ||
| 393 | does not exist or when the specified command is not valid. Depending on | ||
| 394 | the case, the output will contain: <programlisting># debug | ||
| 395 | <VNFI-name> was not found!</programlisting><programlisting># debug | ||
| 396 | Invalid VNF Instance control command specified - <Command></programlisting></para> | ||
| 397 | </section> | ||
| 398 | |||
| 399 | <section id="destroy_vnfi"> | ||
| 400 | <title>Destroy_VNFI</title> | ||
| 401 | |||
| 402 | <para><emphasis role="bold">Description:</emphasis> Destroying a VNF | ||
| 403 | instance from a uCPE device. For details please refer to:</para> | ||
| 404 | |||
| 405 | <para><filename><AF-TH-install-dir>/playbooks/destroyVNFI.yml</filename></para> | ||
| 406 | |||
| 407 | <para><filename><AF-TH-install-dir>/automation_framework/vnf/destroyVNFI.py</filename>.</para> | ||
| 408 | |||
| 409 | <para><emphasis role="bold">Precondition:</emphasis> A VNF is | ||
| 410 | instantiated on a uCPE device.</para> | ||
| 411 | |||
| 412 | <para><emphasis role="bold">Action:</emphasis> Run the | ||
| 413 | <filename>destroyVNFI.yml</filename> Ansible Playbook with the | ||
| 414 | <literal><Device-name></literal> and the | ||
| 415 | <filename><VNFI-name></filename> as extra-vars: <programlisting>ansible-playbook playbooks/destroyVNFI.yml -e "device=<Device-name> vnfi=<VNFI-name>"</programlisting><emphasis | ||
| 416 | role="bold">Result:</emphasis> Output of the test case run using the | ||
| 417 | Test Harness:<programlisting># Destroy VNFI task result | ||
| 418 | <VNFI-name> was destroyed!</programlisting><emphasis | ||
| 419 | role="bold">Note:</emphasis> The test will not fail when the VNF | ||
| 420 | instance does not exist. The output will contain: <programlisting># debug | ||
| 421 | <VNFI-name> was not found!</programlisting></para> | ||
| 422 | </section> | ||
| 423 | </section> | ||
| 424 | |||
| 425 | <section id="serv_creat_lifecycle"> | ||
| 426 | <title>Service Creation and Lifecycle</title> | ||
| 427 | |||
| 428 | <para>This test suite contains more complex test cases designed to verify | ||
| 429 | service creation and service lifecycle management. These test cases also | ||
| 430 | serve as examples of how different services can be deployed using the | ||
| 431 | Automation Framework (AF) and the Test Harness (TH).</para> | ||
| 432 | |||
| 433 | <section id="fortigate_firewall"> | ||
| 434 | <title>Fortigate_VNF_as_a_Firewall</title> | ||
| 435 | |||
| 436 | <para>This test case was implemented in 2 different ways to exemplify | ||
| 437 | both methods supported by the AF and TH to deploy such services.</para> | ||
| 438 | |||
| 439 | <para>Prerequisites needed in order to deploy the FortiGate VNF as a | ||
| 440 | Firewall:</para> | ||
| 441 | |||
| 442 | <orderedlist> | ||
| 443 | <listitem> | ||
| 444 | <para>Onboard the FortiGate VNF Image.</para> | ||
| 445 | </listitem> | ||
| 446 | |||
| 447 | <listitem> | ||
| 448 | <para>Add a device.</para> | ||
| 449 | </listitem> | ||
| 450 | |||
| 451 | <listitem> | ||
| 452 | <para>Bind 2 physical interfaces, <literal>wan_nic</literal> (this | ||
| 453 | physical interface has to be connected to Lab Network) and | ||
| 454 | <literal>lan_nic</literal>.</para> | ||
| 455 | </listitem> | ||
| 456 | |||
| 457 | <listitem> | ||
| 458 | <para>Create 2 bridges, <literal>wan_br</literal> (using | ||
| 459 | <literal>wan_nic</literal> interface) and <literal>lan_br</literal> | ||
| 460 | (using <literal>lan_nic</literal> interface).</para> | ||
| 461 | </listitem> | ||
| 462 | |||
| 463 | <listitem> | ||
| 464 | <para>Instantiate the FortiGate VNF using the basic Firewall | ||
| 465 | configuration and the FortiGate License.</para> | ||
| 466 | </listitem> | ||
| 467 | </orderedlist> | ||
| 468 | |||
| 469 | <para>For more information please refer to "FortiGate VNF as a Firewall" | ||
| 470 | chapter from the "Enea NFV Access Example Use-cases" manual.<note> | ||
| 471 | <para>The license and configuration files for the FortiGate VNF are | ||
| 472 | not included in the TH and should be obtained from the user's Enea | ||
| 473 | Portal account.</para> | ||
| 474 | </note></para> | ||
| 475 | |||
| 476 | <section id="fortigate_fw_instance"> | ||
| 477 | <title>FortigateFWInstance Test</title> | ||
| 478 | |||
| 479 | <para><emphasis role="bold">Description:</emphasis> Instantiate the | ||
| 480 | FortiGate VNF as a Firewall and test it using isolated network | ||
| 481 | namespace.</para> | ||
| 482 | |||
| 483 | <para>This example was implemented with the "Test Harness" method, | ||
| 484 | based on Ansible Playbooks. For details please refer to:</para> | ||
| 485 | |||
| 486 | <itemizedlist> | ||
| 487 | <listitem> | ||
| 488 | <para><filename><AF-TH-install-dir>/playbooks/fortigateFWService/instantiateFortigateFW.yml</filename></para> | ||
| 489 | </listitem> | ||
| 490 | |||
| 491 | <listitem> | ||
| 492 | <para><filename><AF-TH-install-dir>/playbooks/fortigateFWService/testFortigateFWInstance.yml</filename></para> | ||
| 493 | </listitem> | ||
| 494 | |||
| 495 | <listitem> | ||
| 496 | <para><filename><AF-TH-install-dir>/playbooks/fortigateFWService/cleanupTestFortigateFWInstance.yml</filename></para> | ||
| 497 | </listitem> | ||
| 498 | |||
| 499 | <listitem> | ||
| 500 | <para><filename><AF-TH-install-dir>/playbooks/fortigateFWService/cleanupFortigateFWInstance.yml</filename></para> | ||
| 501 | </listitem> | ||
| 502 | </itemizedlist> | ||
| 503 | |||
| 504 | <para><emphasis role="bold">Preconditions:</emphasis></para> | ||
| 505 | |||
| 506 | <itemizedlist> | ||
| 507 | <listitem> | ||
| 508 | <para>Add the Fortigate VNF Image | ||
| 509 | (<filename>fortios.qcow2</filename>) to the | ||
| 510 | <literal>vnf_image</literal> folder.</para> | ||
| 511 | </listitem> | ||
| 512 | |||
| 513 | <listitem> | ||
| 514 | <para>Device JSON configuration file is created: | ||
| 515 | <filename><AF-TH-install-dir>/lab_config/<Device-name>/<Device-name>.json</filename>.</para> | ||
| 516 | </listitem> | ||
| 517 | |||
| 518 | <listitem> | ||
| 519 | <para>Add device settings in the <literal>hosts</literal> Ansible | ||
| 520 | inventory file under <literal>[fortigateFW]</literal> and remove | ||
| 521 | the <filename>intelc3850-2</filename> example.</para> | ||
| 522 | |||
| 523 | <para><emphasis role="bold">Example:</emphasis> <programlisting>intelc3850-2 ansible_host=172.24.12.114 ansible_port=22 \ | ||
| 524 | ansible_user=root ansible_pass=root</programlisting></para> | ||
| 525 | </listitem> | ||
| 526 | |||
| 527 | <listitem> | ||
| 528 | <para>NIC JSON configuration files are created:</para> | ||
| 529 | |||
| 530 | <para><filename><AF-TH-install-dir>/lab_config/<Device-name>/wan_nic.json</filename></para> | ||
| 531 | |||
| 532 | <para><filename><AF-TH-install-dir>/lab_config/<Device-name>/lan_nic.json</filename></para> | ||
| 533 | </listitem> | ||
| 534 | |||
| 535 | <listitem> | ||
| 536 | <para>Bridge JSON configuration files are created:</para> | ||
| 537 | |||
| 538 | <para><filename><AF-TH-install-dir>/lab_config/<Device-name>/wan_br.json</filename></para> | ||
| 539 | |||
| 540 | <para><filename><AF-TH-install-dir>/lab_config/<Device-name>/lan_br.json</filename></para> | ||
| 541 | </listitem> | ||
| 542 | |||
| 543 | <listitem> | ||
| 544 | <para>Download the FortiGate VNF Firewall basic configuration from | ||
| 545 | the Enea Portal, copy it into the | ||
| 546 | <filename><AF-TH-install-dir>/vnf_config/fortigateImage</filename> | ||
| 547 | directory and rename it to<filename> | ||
| 548 | fortigateFW.conf</filename>.</para> | ||
| 549 | </listitem> | ||
| 550 | |||
| 551 | <listitem> | ||
| 552 | <para>Retrieve the FortiGate VNF license from Fortinet or the Enea | ||
| 553 | Portal, copy it into the | ||
| 554 | <literal><AF-TH-install-dir>/vnf_config/fortigateImage</literal> | ||
| 555 | directory and rename it to | ||
| 556 | <filename>fortigateLicense.lic</filename>.</para> | ||
| 557 | |||
| 558 | <para>Please refer to "FortiGate VNF as a Firewall" chapter from | ||
| 559 | the Enea NFV Access Example Use-cases manual.</para> | ||
| 560 | </listitem> | ||
| 561 | </itemizedlist> | ||
| 562 | |||
| 563 | <para><emphasis role="bold">Action:</emphasis> Run the <emphasis | ||
| 564 | role="bold">instantiateFortigateFW.yml</emphasis> Ansible Playbook | ||
| 565 | with the <literal><Device-name></literal> as | ||
| 566 | extra-vars:<programlisting>ansible-playbook playbooks/fortigateFWService/instantiateFortigateFW.yml \ | ||
| 567 | -e "device=<Device-name>"</programlisting></para> | ||
| 568 | |||
| 569 | <para><emphasis role="bold">Result:</emphasis> Output of the test case | ||
| 570 | run using the Test Harness: <programlisting># Test FortigateFWInstance task result | ||
| 571 | FortigateFWInstance tested successfully!</programlisting></para> | ||
| 572 | |||
| 573 | <para><emphasis role="bold">Cleanup:</emphasis> Run the | ||
| 574 | <literal>cleanupFortigateFWInstance.yml</literal> Ansible Playbook | ||
| 575 | with the <literal><Device-name></literal> as extra-vars: | ||
| 576 | <programlisting>ansible-playbook playbooks/fortigateFWService/cleanupFortigateFWInstance.yml \ | ||
| 577 | -e "device=<Device-name>"</programlisting></para> | ||
| 578 | </section> | ||
| 579 | |||
| 580 | <section id="deploy_fortigate_fw"> | ||
| 581 | <title>DeployFortigateFW Scenario</title> | ||
| 582 | |||
| 583 | <para><emphasis role="bold">Description:</emphasis> Deploy the | ||
| 584 | Fortigate VNF as a Firewall. This example was implemented with the | ||
| 585 | "Automation Framework" method, based on the | ||
| 586 | <filename>unittestSuite.py</filename> Python module.</para> | ||
| 587 | |||
| 588 | <para>For details please refer to:</para> | ||
| 589 | |||
| 590 | <itemizedlist> | ||
| 591 | <listitem> | ||
| 592 | <para><literal><AF-TH-install-dir>/playbooks/unittestSuiteTest/deployFortigateFWScenario.yml</literal></para> | ||
| 593 | </listitem> | ||
| 594 | |||
| 595 | <listitem> | ||
| 596 | <para><literal><AF-TH-install-dir>/playbooks/unittestSuiteTest/cleanupFortigateFWScenario.yml</literal></para> | ||
| 597 | </listitem> | ||
| 598 | |||
| 599 | <listitem> | ||
| 600 | <para><literal><AF-TH-install-dir>/automation_framework/unittestSuite</literal> | ||
| 601 | directory.</para> | ||
| 602 | </listitem> | ||
| 603 | </itemizedlist> | ||
| 604 | |||
| 605 | <para><emphasis role="bold">Preconditions:</emphasis></para> | ||
| 606 | |||
| 607 | <itemizedlist> | ||
| 608 | <listitem> | ||
| 609 | <para>Add the FortiGate VNF Image | ||
| 610 | (<filename>fortios.qcow2</filename>) to the | ||
| 611 | <literal>vnf_image</literal> folder.</para> | ||
| 612 | </listitem> | ||
| 613 | |||
| 614 | <listitem> | ||
| 615 | <para>Device JSON configuration file is created: | ||
| 616 | <filename></filename></para> | ||
| 617 | |||
| 618 | <para><filename><AF-TH-install-dir>/lab_config/<Device-name>/<Device-name>.json</filename>.</para> | ||
| 619 | </listitem> | ||
| 620 | |||
| 621 | <listitem> | ||
| 622 | <para>NIC JSON configuration files are created:</para> | ||
| 623 | |||
| 624 | <para><filename><AF-TH-install-dir>/lab_config/<Device-name>/wan_nic.json</filename></para> | ||
| 625 | |||
| 626 | <para><filename><AF-TH-install-dir>/lab_config/<Device-name>/lan_nic.json</filename></para> | ||
| 627 | </listitem> | ||
| 628 | |||
| 629 | <listitem> | ||
| 630 | <para>Bridge JSON configuration files are created:</para> | ||
| 631 | |||
| 632 | <para><filename><AF-TH-install-dir>/lab_config/<Device-name>/wan_br.json</filename></para> | ||
| 633 | |||
| 634 | <para><filename><AF-TH-install-dir>/lab_config/<Device-name>/lan_br.json</filename></para> | ||
| 635 | </listitem> | ||
| 636 | |||
| 637 | <listitem> | ||
| 638 | <para>Download the FortiGate VNF Firewall basic configuration from | ||
| 639 | the Enea Portal, copy it into the | ||
| 640 | <literal><AF-TH-install-dir>/vnf_config/fortigateImage</literal> | ||
| 641 | directory and rename it to | ||
| 642 | <filename>fortigateFW.conf</filename>.</para> | ||
| 643 | </listitem> | ||
| 644 | |||
| 645 | <listitem> | ||
| 646 | <para>Retrieve the FortiGate VNF license file from Fortinet or the | ||
| 647 | Enea Portal, copy it into the | ||
| 648 | <literal><AF-TH-install-dir>/vnf_config/fortigateImage</literal> | ||
| 649 | directory and rename it to | ||
| 650 | <filename>fortigateLicense.lic</filename>.</para> | ||
| 651 | |||
| 652 | <para>For more details, please refer to:</para> | ||
| 653 | |||
| 654 | <itemizedlist> | ||
| 655 | <listitem> | ||
| 656 | <para>The "FortiGate VNF as a Firewall" chapter from the Enea | ||
| 657 | NFV Access Example Use-cases manual.</para> | ||
| 658 | </listitem> | ||
| 659 | |||
| 660 | <listitem> | ||
| 661 | <para>The "Python Unit-Test Suite" chapter from the Enea NFV | ||
| 662 | Access Automation Framework and Test Harness User | ||
| 663 | Guide.</para> | ||
| 664 | </listitem> | ||
| 665 | </itemizedlist> | ||
| 666 | </listitem> | ||
| 667 | </itemizedlist> | ||
| 668 | |||
| 669 | <para><emphasis role="bold">Action:</emphasis> Run the | ||
| 670 | <filename>deployFortigateFWScenario.yml</filename> Ansible Playbook | ||
| 671 | with the <literal><Device-name></literal> as extra-vars: | ||
| 672 | <programlisting>ansible-playbook playbooks/unittestSuiteTest/deployFortigateFWScenario.yml \ | ||
| 673 | -e "device=<Device-name>"</programlisting></para> | ||
| 674 | |||
| 675 | <para><emphasis role="bold">Result:</emphasis> Output of the test case | ||
| 676 | run using the Test Harness: <programlisting># unittestSuite Deploy Test task result | ||
| 677 | FortigateFW Scenario deployed successfully!</programlisting></para> | ||
| 678 | |||
| 679 | <para><emphasis role="bold">Cleanup:</emphasis> Run the | ||
| 680 | <filename>cleanupFortigateFWScenario.yml</filename> Ansible Playbook | ||
| 681 | with the <literal><Device-name></literal> as extra-vars: | ||
| 682 | <programlisting>ansible-playbook playbooks/unittestSuiteTest/cleanupFortigateFWScenario.yml \ | ||
| 683 | -e "device=<Device-name>"</programlisting></para> | ||
| 684 | </section> | ||
| 685 | </section> | ||
| 686 | |||
| 687 | <section id="chained_vnf"> | ||
| 688 | <title>chainedVNFsService</title> | ||
| 689 | |||
| 690 | <para><emphasis role="bold">Description:</emphasis> This sample test | ||
| 691 | case corresponds to the "VNF Chaining Example Use-case" from the Enea | ||
| 692 | NFV Access Example Use-cases manual.</para> | ||
| 693 | |||
| 694 | <para>For details please refer to:</para> | ||
| 695 | |||
| 696 | <itemizedlist> | ||
| 697 | <listitem> | ||
| 698 | <para><filename><AF-TH-install-dir>/playbooks/chainedVNFsService/chainedVNFsService.yml</filename></para> | ||
| 699 | </listitem> | ||
| 700 | |||
| 701 | <listitem> | ||
| 702 | <para><filename><AF-TH-install-dir>/playbooks/chainedVNFsService/testChainedVNFsService.yml</filename></para> | ||
| 703 | </listitem> | ||
| 704 | |||
| 705 | <listitem> | ||
| 706 | <para><filename><AF-TH-install-dir>/playbooks/chainedVNFsService/cleanupChainedVNFsService.yml</filename></para> | ||
| 707 | </listitem> | ||
| 708 | </itemizedlist> | ||
| 709 | |||
| 710 | <para><emphasis role="bold">Preconditions:</emphasis></para> | ||
| 711 | |||
| 712 | <itemizedlist> | ||
| 713 | <listitem> | ||
| 714 | <para>Add the Fortigate VNF Image | ||
| 715 | (<filename>fortios.qcow2</filename>) to the | ||
| 716 | <literal>vnf_image</literal> folder.</para> | ||
| 717 | </listitem> | ||
| 718 | |||
| 719 | <listitem> | ||
| 720 | <para>Add the Juniper vSRX VNF Image | ||
| 721 | (<filename>juniper.qcow2</filename>) to the | ||
| 722 | <literal>vnf_image</literal> folder.</para> | ||
| 723 | </listitem> | ||
| 724 | |||
| 725 | <listitem> | ||
| 726 | <para>Devices JSON configuration files are created, e.g.:</para> | ||
| 727 | |||
| 728 | <para><filename><AF-TH-install-dir>/lab_config/<Device-name>/<Device-name>.json</filename>.</para> | ||
| 729 | </listitem> | ||
| 730 | |||
| 731 | <listitem> | ||
| 732 | <para>Add device settings in the <literal>hosts</literal> Ansible | ||
| 733 | inventory file under <literal>[chainedVNFs]</literal>, keeping both | ||
| 734 | devices, the "site1" and "site2" entries, and updating the values | ||
| 735 | for <literal>ansible_host</literal>, | ||
| 736 | <literal>ansible_port</literal>, <literal>ansible_user</literal> and | ||
| 737 | <literal>ansible_pass</literal>, as applicable.</para> | ||
| 738 | |||
| 739 | <para><emphasis role="bold">Example:</emphasis></para> | ||
| 740 | |||
| 741 | <para><programlisting>site1 ansible_host=172.24.14.157 ansible_port=22 ansible_user=root \ | ||
| 742 | ansible_pass=root</programlisting></para> | ||
| 743 | |||
| 744 | <para><programlisting>site2 ansible_host=172.24.14.50 ansible_port=22 ansible_user=root \ | ||
| 745 | ansible_pass=root</programlisting></para> | ||
| 746 | </listitem> | ||
| 747 | |||
| 748 | <listitem> | ||
| 749 | <para>NIC JSON configuration files are created for each of the | ||
| 750 | devices, where <literal>mgmt_nic</literal> is connected to the DHCP | ||
| 751 | from the Lab Network and <literal>wan_nic</literal> is connected | ||
| 752 | back to back to the other device:</para> | ||
| 753 | |||
| 754 | <itemizedlist> | ||
| 755 | <listitem> | ||
| 756 | <para><filename><AF-TH-install-dir>/lab_config/<Device-name>/mgmt_nic.json</filename></para> | ||
| 757 | </listitem> | ||
| 758 | |||
| 759 | <listitem> | ||
| 760 | <para><filename><AF-TH-install-dir>/lab_config/<Device-name>/wan_nic.json</filename></para> | ||
| 761 | </listitem> | ||
| 762 | |||
| 763 | <listitem> | ||
| 764 | <para><filename><AF-TH-install-dir>/lab_config/<Device-name>/lan_nic.json</filename></para> | ||
| 765 | </listitem> | ||
| 766 | </itemizedlist> | ||
| 767 | </listitem> | ||
| 768 | |||
| 769 | <listitem> | ||
| 770 | <para>Bridge JSON configuration files are created for each of the | ||
| 771 | devices:</para> | ||
| 772 | |||
| 773 | <itemizedlist> | ||
| 774 | <listitem> | ||
| 775 | <para><filename><AF-TH-install-dir>/lab_config/<Device-name>/vnf_mgmt_br.json</filename></para> | ||
| 776 | </listitem> | ||
| 777 | |||
| 778 | <listitem> | ||
| 779 | <para><filename><AF-TH-install-dir>/lab_config/<Device-name>/sfc_br.json</filename></para> | ||
| 780 | </listitem> | ||
| 781 | |||
| 782 | <listitem> | ||
| 783 | <para><filename><AF-TH-install-dir>/lab_config/<Device-name>/wan_br.json</filename></para> | ||
| 784 | </listitem> | ||
| 785 | |||
| 786 | <listitem> | ||
| 787 | <para><filename><AF-TH-install-dir>/lab_config/<Device-name>/lan_br.json</filename></para> | ||
| 788 | </listitem> | ||
| 789 | </itemizedlist> | ||
| 790 | |||
| 791 | <para>Note that sample configuration files needed for devices' NICs | ||
| 792 | and bridges can be found in: | ||
| 793 | <literal><AF-TH-install-dir>/lab_config/inteld1521-1</literal> | ||
| 794 | and | ||
| 795 | <literal><AF-TH-install-dir>/lab_config/inteld1521-2</literal>.</para> | ||
| 796 | </listitem> | ||
| 797 | |||
| 798 | <listitem> | ||
| 799 | <para>Download the FortiGate VNF Firewall basic configuration files | ||
| 800 | from the Enea Portal (<filename>FortiFW-Site1.conf</filename> and | ||
| 801 | <filename>FortiFW-Site2.conf</filename>), and copy them into the | ||
| 802 | <literal><AF-TH-install-dir>/vnf_config/fortigateFWImage</literal> | ||
| 803 | directory.</para> | ||
| 804 | </listitem> | ||
| 805 | |||
| 806 | <listitem> | ||
| 807 | <para>Retrieve the FortiGate VNF license from Fortinet or the Enea | ||
| 808 | Portal, copy it into the | ||
| 809 | <literal><AF-TH-install-dir>/vnf_config/fortigateFWImage</literal> | ||
| 810 | directory and rename it to | ||
| 811 | <filename>fortigateLicense.lic</filename>.</para> | ||
| 812 | </listitem> | ||
| 813 | |||
| 814 | <listitem> | ||
| 815 | <para>Download the Juniper vSRX basic configuration files from the | ||
| 816 | Enea Portal (<filename>vSRX-Site1.iso</filename> and | ||
| 817 | <filename>vSRX-Site2.iso</filename>), and copy them into the | ||
| 818 | <literal><AF-TH-install-dir>/vnf_config/junipervSRXImage</literal> | ||
| 819 | directory.</para> | ||
| 820 | </listitem> | ||
| 821 | |||
| 822 | <listitem> | ||
| 823 | <para>Download <filename>vSRX-domain-update-script</filename> from | ||
| 824 | the Enea Portal and copy it into the | ||
| 825 | <literal>junipervSRXImage</literal> directory.</para> | ||
| 826 | |||
| 827 | <para>Please refer to the "VNF Chaining Example Use-case" chapter | ||
| 828 | from the Enea NFV Access Example Use-cases manual for additional | ||
| 829 | information about the preconditions.</para> | ||
| 830 | </listitem> | ||
| 831 | </itemizedlist> | ||
| 832 | |||
| 833 | <para><emphasis role="bold">Action:</emphasis> Run the | ||
| 834 | <filename>chainedVNFsService.yml</filename> Ansible Playbook as follows: | ||
| 835 | <programlisting>ansible-playbook playbooks/chainedVNFsService/chainedVNFsService.yml \ | ||
| 836 | -e "site1=inteld1521-1 site2=inteld1521-2 arch=XeonD"</programlisting></para> | ||
| 837 | |||
| 838 | <para>Note that "arch" may either be { XeonD | AtomC } depending on the | ||
| 839 | target set chosen.</para> | ||
| 840 | |||
| 841 | <para><emphasis role="bold">Result:</emphasis> Output of the test case | ||
| 842 | run using the Test Harness: <programlisting># testChainedVNFsService task result | ||
| 843 | ****************************************************************************** | ||
| 844 | * site1 - changed=False ---------------------------------------------- | ||
| 845 | ---- | ||
| 846 | <site1_lan-ip> ---> <site2_lan-ip> | ||
| 847 | LAN-to-LAN connectivity (through VPN tunnel)tested successfully!</programlisting></para> | ||
| 848 | |||
| 849 | <para><emphasis role="bold">Cleanup:</emphasis> Run the | ||
| 850 | <filename>cleanupChainedVNFsService.yml</filename> Ansible Playbook as | ||
| 851 | follows: <programlisting>ansible-playbook playbooks/chainedVNFsService/cleanupChainedVNFsService.yml \ | ||
| 852 | -e "site1=inteld1521-1 site2=inteld1521-2 arch=XeonD"</programlisting></para> | ||
| 853 | </section> | ||
| 854 | </section> | ||
| 855 | </chapter> \ No newline at end of file | ||
diff --git a/doc/book-enea-nfv-access-system-test-specification/swcomp.mk b/doc/book-enea-nfv-access-system-test-specification/swcomp.mk new file mode 100755 index 0000000..aea86ca --- /dev/null +++ b/doc/book-enea-nfv-access-system-test-specification/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-system-test-specification | ||
| 9 | BOOKDESC_$(BOOKPACKAGES) := "Enea NFV Access $(PROD_VER) System Test Specification" | ||
| 10 | BOOKDEFAULTCONDITION := $(DEFAULTCONDITIONS) | ||
