diff options
author | Miruna Paun <Miruna.Paun@enea.com> | 2017-06-30 13:50:29 +0200 |
---|---|---|
committer | Miruna Paun <Miruna.Paun@enea.com> | 2017-06-30 13:50:29 +0200 |
commit | 740932118710e9b7c7b45a74b0db2b389957bcb3 (patch) | |
tree | d09b588cc49f8acfc5e7ef637ac60b5774e3cee0 | |
parent | 449f6960591c2b9e871a7e682c175754fe8cb3f8 (diff) | |
download | nfv-access-documentation-740932118710e9b7c7b45a74b0db2b389957bcb3.tar.gz |
Renaming all EL7 virt profile titles to "Enea NFV Access"
LXCR-7844 LXCR-7844 Redo the chapter structure for EL Virtualization Guide
Signed-off-by: Miruna Paun <Miruna.Paun@enea.com>
38 files changed, 1180 insertions, 99 deletions
diff --git a/doc/Makefile b/doc/Makefile index f99ff90..50830de 100644 --- a/doc/Makefile +++ b/doc/Makefile | |||
@@ -1,3 +1,4 @@ | |||
1 | #2017-06-29 Converted EL7 virtualization profile to first version of ENFV Access Platform | ||
1 | #2017-04-13 Created first version of virtualization profile | 2 | #2017-04-13 Created first version of virtualization profile |
2 | 3 | ||
3 | #Path to this subsystem's root directory | 4 | #Path to this subsystem's root directory |
@@ -20,16 +21,16 @@ TMPCLONEROOT_MANIFEST := $(TMPCLONEROOT)/manifest | |||
20 | 21 | ||
21 | 22 | ||
22 | # ******************* AutoGenerated chapters from template and target READMEs ******* | 23 | # ******************* AutoGenerated chapters from template and target READMEs ******* |
23 | BUILDBOOT_XML := book-enea-linux-release-info/doc/build_boot_generated.xml | 24 | BUILDBOOT_XML := book-enea-nfv-access-platform-release-info/doc/build_boot_generated.xml |
24 | BUILDBOOT_TEMPLATE := book-enea-linux-release-info/doc/build_boot_template.xml | 25 | BUILDBOOT_TEMPLATE := book-enea-nfv-access-platform-release-info/doc/build_boot_template.xml |
25 | 26 | ||
26 | PKGDIFF_GEN_XML := book-enea-linux-release-info/doc/pkgdiff_generated.xml | 27 | PKGDIFF_GEN_XML := book-enea-nfv-access-platform-release-info/doc/pkgdiff_generated.xml |
27 | JIRA_ISSUES_GEN_XML := book-enea-linux-release-info/doc/jiraissues_generated.xml | 28 | JIRA_ISSUES_GEN_XML := book-enea-nfv-access-platform-release-info/doc/jiraissues_generated.xml |
28 | 29 | ||
29 | MACHINE_LIST_XML := book-enea-linux-release-info/doc/machine_list_generated.xml | 30 | MACHINE_LIST_XML := book-enea-nfv-access-platform-release-info/doc/machine_list_generated.xml |
30 | 31 | ||
31 | ELTF_PARAMS_TEMPLATE := book-enea-linux-release-info/doc/eltf_params_template.xml | 32 | ELTF_PARAMS_TEMPLATE := book-enea-nfv-access-platform-release-info/doc/eltf_params_template.xml |
32 | ELTF_PARAMS_UPDATED := book-enea-linux-release-info/doc/eltf_params_updated.xml | 33 | ELTF_PARAMS_UPDATED := book-enea-nfv-access-platform-release-info/doc/eltf_params_updated.xml |
33 | 34 | ||
34 | 35 | ||
35 | 36 | ||
@@ -47,7 +48,7 @@ DOCBOOK_TO_BOOKDIR ?= yes | |||
47 | DOCBOOK_CLEANTMP ?= yes | 48 | DOCBOOK_CLEANTMP ?= yes |
48 | 49 | ||
49 | #Components (books) in this subsystem. Now use all books found here | 50 | #Components (books) in this subsystem. Now use all books found here |
50 | # COMPONENTS := book-enea-linux-release-info book-enea-linux-open-source | 51 | # COMPONENTS := book-enea-nfv-access-platform-release-info book-enea-linux-open-source |
51 | # COMPONENTS += book-enea-linux-eclipse-open-source (as of 13.04.2017 this is not needed) | 52 | # COMPONENTS += book-enea-linux-eclipse-open-source (as of 13.04.2017 this is not needed) |
52 | COMPONENTS := $(shell ls -d book-enea* ) | 53 | COMPONENTS := $(shell ls -d book-enea* ) |
53 | 54 | ||
diff --git a/doc/book-enea-linux-virtualization-guide/doc/basic_configuration_guide.xml b/doc/book-enea-linux-virtualization-guide/doc/basic_configuration_guide.xml deleted file mode 100644 index e28f7b1..0000000 --- a/doc/book-enea-linux-virtualization-guide/doc/basic_configuration_guide.xml +++ /dev/null | |||
@@ -1,17 +0,0 @@ | |||
1 | <?xml version="1.0" encoding="ISO-8859-1"?> | ||
2 | <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" | ||
3 | "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"> | ||
4 | <chapter id="basic-configuration"> | ||
5 | <title>Basic Configuration</title> | ||
6 | |||
7 | <para>To properly make use of the all the features offered in this release, | ||
8 | a basic configuration must be done beforehand, to ensure all required | ||
9 | settings are in working order. Below you will find details on how to | ||
10 | proceed.</para> | ||
11 | |||
12 | <para>:<remark>INFO: The programlisting below is a parameters in | ||
13 | eltf_params_updated.xml with ID: "eltf-prereq-apt-get-command-host". If | ||
14 | multiple hosts are supported, store the commands for each host in the same | ||
15 | programlisting with empty lines between each - the comment with the FULL | ||
16 | HOST name and version is essential.</remark></para> | ||
17 | </chapter> \ No newline at end of file | ||
diff --git a/doc/book-enea-linux-virtualization-guide/doc/book.xml b/doc/book-enea-linux-virtualization-guide/doc/book.xml deleted file mode 100644 index 226a064..0000000 --- a/doc/book-enea-linux-virtualization-guide/doc/book.xml +++ /dev/null | |||
@@ -1,15 +0,0 @@ | |||
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 | ]> | ||
5 | <book id="book_enea_linux_virtualization_guide"> | ||
6 | <title><trademark class="registered">Enea</trademark> Linux Virtualization Guide</title> | ||
7 | <subtitle>Release Version | ||
8 | <xi:include href="eltf_params_updated.xml" xpointer="element(EneaLinux_REL_VER/1)" | ||
9 | xmlns:xi="http://www.w3.org/2001/XInclude" /></subtitle> | ||
10 | <xi:include href="../../s_docbuild/template/docsrc_common/bookinfo_userdoc.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> | ||
11 | <xi:include href="overview.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> | ||
12 | <xi:include href="basic_configuration_guide.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> | ||
13 | <xi:include href="workflow.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> | ||
14 | <xi:include href="../../s_docbuild/template/docsrc_common/contacting_enea_enea_linux.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> | ||
15 | </book> | ||
diff --git a/doc/book-enea-linux-virtualization-guide/doc/overview.xml b/doc/book-enea-linux-virtualization-guide/doc/overview.xml deleted file mode 100644 index 7fd4cdf..0000000 --- a/doc/book-enea-linux-virtualization-guide/doc/overview.xml +++ /dev/null | |||
@@ -1,18 +0,0 @@ | |||
1 | <?xml version="1.0" encoding="ISO-8859-1"?> | ||
2 | <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" | ||
3 | "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"> | ||
4 | <chapter id="overview"> | ||
5 | <title>Overview</title> | ||
6 | |||
7 | <para>The Virtualization Guide available with this release of Enea Linux, | ||
8 | seeks to provide further information that will help all intended users make | ||
9 | the most out of the virtualization features.<remark>INFO <emphasis | ||
10 | role="bold">eltf_params_updated.xml</emphasis> contains many parameters in | ||
11 | the book, also in the open source books, and MUST be created FROM <emphasis | ||
12 | role="bold">eltf_params_template.xml</emphasis>. The parameters are | ||
13 | automatically used in the books, via xi:include statements, similar to how | ||
14 | parameters from pardoc-distro.xml are included in the book. Read the file | ||
15 | <emphasis role="bold">eltf_params_updated_template_how_to_use.txt</emphasis> | ||
16 | for important details about formats and how to do! The idea is that ELTF | ||
17 | will auto-create/update it.</remark></para> | ||
18 | </chapter> \ No newline at end of file | ||
diff --git a/doc/book-enea-linux-virtualization-guide/doc/workflow.xml b/doc/book-enea-linux-virtualization-guide/doc/workflow.xml deleted file mode 100644 index ece8ac8..0000000 --- a/doc/book-enea-linux-virtualization-guide/doc/workflow.xml +++ /dev/null | |||
@@ -1,24 +0,0 @@ | |||
1 | <?xml version="1.0" encoding="ISO-8859-1"?> | ||
2 | <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" | ||
3 | "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"> | ||
4 | <chapter id="workflow"> | ||
5 | <title>Workflow</title> | ||
6 | |||
7 | <para>Enea Linux is available as both pre-built binary images and source | ||
8 | code. Both serve a specific purpose and each have their advantages. However, | ||
9 | using the pre-built binary images allows for getting up and running faster. | ||
10 | Please refer to the sections below for details on how to get Enea Linux as | ||
11 | pre-built binary images or source code.</para> | ||
12 | |||
13 | <section id="relinfo-getting-pre-built-images"> | ||
14 | <title>Getting Pre-built Binaries</title> | ||
15 | |||
16 | <para>Enea Linux pre-built binaries are available for download on <ulink | ||
17 | url="https://portal.enea.com/login/?redirect_to=https%3A%2F%2Fportal.enea.com%2F">Enea | ||
18 | Download Portal</ulink>. Log in using the credentials provided. Using the | ||
19 | menu, browse to the <emphasis role="bold">Linux</emphasis> section. You | ||
20 | will now have access to the <emphasis role="bold">Files</emphasis> section | ||
21 | and the <emphasis role="bold">Online Documentation</emphasis> | ||
22 | section.</para> | ||
23 | </section> | ||
24 | </chapter> \ No newline at end of file | ||
diff --git a/doc/book-enea-nfv-access-platform-guide/doc/benchmarks.xml b/doc/book-enea-nfv-access-platform-guide/doc/benchmarks.xml new file mode 100644 index 0000000..0db4fa4 --- /dev/null +++ b/doc/book-enea-nfv-access-platform-guide/doc/benchmarks.xml | |||
@@ -0,0 +1,14 @@ | |||
1 | <?xml version="1.0" encoding="ISO-8859-1"?> | ||
2 | <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" | ||
3 | "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"> | ||
4 | <chapter id="workflow"> | ||
5 | <title>Benchmarks</title> | ||
6 | |||
7 | <para></para> | ||
8 | |||
9 | <section id="relinfo-getting-pre-built-images"> | ||
10 | <title></title> | ||
11 | |||
12 | <para></para> | ||
13 | </section> | ||
14 | </chapter> \ No newline at end of file | ||
diff --git a/doc/book-enea-nfv-access-platform-guide/doc/book.xml b/doc/book-enea-nfv-access-platform-guide/doc/book.xml new file mode 100644 index 0000000..9b0cc4a --- /dev/null +++ b/doc/book-enea-nfv-access-platform-guide/doc/book.xml | |||
@@ -0,0 +1,30 @@ | |||
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 | ]> | ||
5 | <book id="book_enea_nfv_access_platform_guide"> | ||
6 | <title><trademark class="registered">Enea</trademark> NFV Access Platform Guide</title> | ||
7 | <subtitle>Release Version | ||
8 | <xi:include href="eltf_params_updated.xml" xpointer="element(EneaLinux_REL_VER/1)" | ||
9 | xmlns:xi="http://www.w3.org/2001/XInclude" /></subtitle> | ||
10 | <xi:include href="../../s_docbuild/template/docsrc_common/bookinfo_userdoc.xml" | ||
11 | xmlns:xi="http://www.w3.org/2001/XInclude" /> | ||
12 | <xi:include href="platform_overview.xml" | ||
13 | xmlns:xi="http://www.w3.org/2001/XInclude" /> | ||
14 | <xi:include href="getting_started.xml" | ||
15 | xmlns:xi="http://www.w3.org/2001/XInclude" /> | ||
16 | <xi:include href="hypervisor_virtualization.xml" | ||
17 | xmlns:xi="http://www.w3.org/2001/XInclude" /> | ||
18 | <xi:include href="container_virtualization.xml" | ||
19 | xmlns:xi="http://www.w3.org/2001/XInclude" /> | ||
20 | <xi:include href="ovs.xml" | ||
21 | xmlns:xi="http://www.w3.org/2001/XInclude" /> | ||
22 | <xi:include href="dpdk.xml" | ||
23 | xmlns:xi="http://www.w3.org/2001/XInclude" /> | ||
24 | <xi:include href="benchmarks.xml" | ||
25 | xmlns:xi="http://www.w3.org/2001/XInclude" /> | ||
26 | <xi:include href="using_nfv_access_platform_sdks.xml" | ||
27 | xmlns:xi="http://www.w3.org/2001/XInclude" /> | ||
28 | <xi:include href="../../s_docbuild/template/docsrc_common/contacting_enea_enea_linux.xml" | ||
29 | xmlns:xi="http://www.w3.org/2001/XInclude" /> | ||
30 | </book> | ||
diff --git a/doc/book-enea-nfv-access-platform-guide/doc/container_virtualization.xml b/doc/book-enea-nfv-access-platform-guide/doc/container_virtualization.xml new file mode 100644 index 0000000..6f74061 --- /dev/null +++ b/doc/book-enea-nfv-access-platform-guide/doc/container_virtualization.xml | |||
@@ -0,0 +1,8 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?> | ||
2 | <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" | ||
3 | "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"> | ||
4 | <chapter condition="hidden" id="workflow"> | ||
5 | <title>Container Virtualization</title> | ||
6 | |||
7 | <para></para> | ||
8 | </chapter> \ No newline at end of file | ||
diff --git a/doc/book-enea-nfv-access-platform-guide/doc/dpdk.xml b/doc/book-enea-nfv-access-platform-guide/doc/dpdk.xml new file mode 100644 index 0000000..91b36d3 --- /dev/null +++ b/doc/book-enea-nfv-access-platform-guide/doc/dpdk.xml | |||
@@ -0,0 +1,118 @@ | |||
1 | <?xml version="1.0" encoding="ISO-8859-1"?> | ||
2 | <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" | ||
3 | "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"> | ||
4 | <chapter id="dpdk"> | ||
5 | <title>Data Plane Development Kit</title> | ||
6 | |||
7 | <para>The Intel Data Plane Development Kit (DPDK) is a set of user-space | ||
8 | libraries and drivers that provides a programming framework for high-speed | ||
9 | packet processing applications. The DPDK includes a number of Poll Mode | ||
10 | Drivers that enable direct packet transfer between the physical NIC and | ||
11 | user-space without using interrupts, bypassing the Linux kernel network | ||
12 | stack entirely.</para> | ||
13 | |||
14 | <para>In order to take advantage of DPDK, Linux <ulink | ||
15 | url="https://www.kernel.org/doc/Documentation/vm/hugetlbpage.txt">huge | ||
16 | pages</ulink> must be enabled in the system. The allocation of huge pages | ||
17 | should preferably be done at boot time by passing parameters on the kernel | ||
18 | command line. Add the following to the kernel boot parameters:</para> | ||
19 | |||
20 | <programlisting>default_hugepagesz=1GB hugepagesz=1GB hugepages=8 hugepagesz=2M hugepages=2048</programlisting> | ||
21 | |||
22 | <para>For DPDK documentation, see <ulink | ||
23 | url="http://dpdk.org/doc/guides-17.02/index.html">http://dpdk.org/doc/guides-17.02/index.html</ulink></para> | ||
24 | |||
25 | <section id="pktgen"> | ||
26 | <title>Pktgen</title> | ||
27 | |||
28 | <para>In addition to DPDK, Enea NFV Access Platform includes Pktgen, a | ||
29 | software traffic generator that is powered by the DPDK packet processing | ||
30 | framework. Pktgen can act as a transmitter or receiver and is capable of | ||
31 | generating 10Gbit wire rate traffic with 64 byte frames.</para> | ||
32 | |||
33 | <para>Pktgen is installed in <literal>/usr/share/apps/pktgen/</literal> | ||
34 | and needs to be executed from this directory.</para> | ||
35 | |||
36 | <para>For Pktgen documentation, see <ulink | ||
37 | url="http://pktgen-dpdk.readthedocs.io">http://pktgen-dpdk.readthedocs.io</ulink></para> | ||
38 | </section> | ||
39 | |||
40 | <section id="dpdk-setup"> | ||
41 | <title>DPDK setup instructions</title> | ||
42 | |||
43 | <para>The following setup instructions apply to both host and | ||
44 | guest.</para> | ||
45 | |||
46 | <orderedlist> | ||
47 | <listitem> | ||
48 | <para>To make the hugepage memory available for DPDK, it must be | ||
49 | mounted:</para> | ||
50 | |||
51 | <programlisting>mkdir /mnt/huge | ||
52 | mount -t hugetlbfs nodev /mnt/huge</programlisting> | ||
53 | </listitem> | ||
54 | |||
55 | <listitem> | ||
56 | <para>Load the DPDK igb_uio kernel module:</para> | ||
57 | |||
58 | <programlisting>modprobe igb_uio</programlisting> | ||
59 | </listitem> | ||
60 | |||
61 | <listitem> | ||
62 | <para>Bind the device to the igb_uio driver:</para> | ||
63 | |||
64 | <para><programlisting>dpdk-devbind --bind=igb_uio <PCI device number></programlisting>The | ||
65 | DPDK provides the dpdk-devbind tool to help binding/unbinding devices | ||
66 | from specific drivers. See <ulink | ||
67 | url="http://dpdk.org/doc/guides-17.02/tools/devbind.html">http://dpdk.org/doc/guides-17.02/tools/devbind.html</ulink> | ||
68 | for more information.</para> | ||
69 | </listitem> | ||
70 | </orderedlist> | ||
71 | |||
72 | <para>To print the current status of all known network | ||
73 | interfaces:<programlisting>dpdk-devbind --status</programlisting></para> | ||
74 | |||
75 | <para>At this point the system is ready to run DPDK applications.</para> | ||
76 | </section> | ||
77 | |||
78 | <section id="dpdk-example-test-setup"> | ||
79 | <title>DPDK example test setup</title> | ||
80 | |||
81 | <para>This is a simple DPDK test setup using two boards connected | ||
82 | back-to-back. One board generates traffic using the Pktgen application, | ||
83 | and the other board runs the DPDK testpmd example to forward packets back | ||
84 | on the same interface.</para> | ||
85 | |||
86 | <programlisting>Pktgen [DPDK] - Board 1 PHY <--> Board 2 PHY - [DPDK] testpmd</programlisting> | ||
87 | |||
88 | <orderedlist> | ||
89 | <listitem> | ||
90 | <para>Setup DPDK on both boards, following the instructions in | ||
91 | [FIXME]:</para> | ||
92 | </listitem> | ||
93 | |||
94 | <listitem> | ||
95 | <para>On board 1, start the Pktgen application:</para> | ||
96 | |||
97 | <programlisting>cd /usr/share/apps/pktgen/./pktgen -c 0x7 -n 4 --socket-mem 1024 -- -P -m "[1:2].0"</programlisting> | ||
98 | |||
99 | <para>In the Pktgen console, run:</para> | ||
100 | |||
101 | <programlisting>start 0</programlisting> | ||
102 | |||
103 | <para>The Pktgen output will display the traffic configuration and | ||
104 | statistics.</para> | ||
105 | </listitem> | ||
106 | |||
107 | <listitem> | ||
108 | <para>On board 2, start the testpmd application:</para> | ||
109 | |||
110 | <programlisting>testpmd -c 0x7 -n 4 -- --txd=512 --rxd=512 --port-topology=chained</programlisting> | ||
111 | |||
112 | <para>For more information, refer to the testpmd application user | ||
113 | guide: <ulink | ||
114 | url="http://dpdk.org/doc/guides-17.02/testpmd_app_ug/index.html">http://dpdk.org/doc/guides-17.02/testpmd_app_ug/index.html</ulink>.</para> | ||
115 | </listitem> | ||
116 | </orderedlist> | ||
117 | </section> | ||
118 | </chapter> \ No newline at end of file | ||
diff --git a/doc/book-enea-linux-release-info/doc/eltf_params_template.xml b/doc/book-enea-nfv-access-platform-guide/doc/eltf_params_template.xml index 278ad71..278ad71 100644 --- a/doc/book-enea-linux-release-info/doc/eltf_params_template.xml +++ b/doc/book-enea-nfv-access-platform-guide/doc/eltf_params_template.xml | |||
diff --git a/doc/book-enea-linux-virtualization-guide/doc/eltf_params_updated.xml b/doc/book-enea-nfv-access-platform-guide/doc/eltf_params_updated.xml index a55234f..31a251d 100644 --- a/doc/book-enea-linux-virtualization-guide/doc/eltf_params_updated.xml +++ b/doc/book-enea-nfv-access-platform-guide/doc/eltf_params_updated.xml | |||
@@ -42,7 +42,7 @@ export PATH=~/bin:$PATH</programlisting></para> | |||
42 | correct also compared to the "previous" REL VER in pardoc-distro.xml | 42 | correct also compared to the "previous" REL VER in pardoc-distro.xml |
43 | "prev_baseline".</bridgehead> | 43 | "prev_baseline".</bridgehead> |
44 | 44 | ||
45 | <para id="EneaLinux_REL_VER"><phrase>6</phrase></para> | 45 | <para id="EneaLinux_REL_VER"><phrase>1.0</phrase></para> |
46 | 46 | ||
47 | <para id="Yocto_VER"><phrase>2.1</phrase></para> | 47 | <para id="Yocto_VER"><phrase>2.1</phrase></para> |
48 | 48 | ||
diff --git a/doc/book-enea-linux-virtualization-guide/doc/eltf_params_updated_template_how_to_use.txt b/doc/book-enea-nfv-access-platform-guide/doc/eltf_params_updated_template_how_to_use.txt index 7f1d3cb..7f1d3cb 100644 --- a/doc/book-enea-linux-virtualization-guide/doc/eltf_params_updated_template_how_to_use.txt +++ b/doc/book-enea-nfv-access-platform-guide/doc/eltf_params_updated_template_how_to_use.txt | |||
diff --git a/doc/book-enea-nfv-access-platform-guide/doc/getting_started.xml b/doc/book-enea-nfv-access-platform-guide/doc/getting_started.xml new file mode 100644 index 0000000..b534e20 --- /dev/null +++ b/doc/book-enea-nfv-access-platform-guide/doc/getting_started.xml | |||
@@ -0,0 +1,127 @@ | |||
1 | <?xml version="1.0" encoding="ISO-8859-1"?> | ||
2 | <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" | ||
3 | "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"> | ||
4 | <chapter id="plat-release-content"> | ||
5 | <title>Getting Started with ENFV Access Platform</title> | ||
6 | |||
7 | <section id="release-content"> | ||
8 | <title>NFV Access Platform Release content</title> | ||
9 | |||
10 | <para>The NFV Access Platform 1.0 Release contains along with other items, | ||
11 | documentation, pre-built kernels and images, a bootloader and a | ||
12 | SDK.</para> | ||
13 | |||
14 | <para>The directories structure is detailed below:</para> | ||
15 | |||
16 | <programlisting>-- documentation/ | ||
17 | /* NFV Access Platform documentation */ | ||
18 | -- inteld1521/ | ||
19 | /* artifacts for the host side */ | ||
20 | -- deb/ | ||
21 | /* deb packages */ | ||
22 | -- images/ | ||
23 | -- enea-image-virtualization-host | ||
24 | /* precompiled artifacts for the Host release image */ | ||
25 | -- various artifacts | ||
26 | -- enea-image-virtualization-host-sdk | ||
27 | /* precompiled artifacts for the Host SDK image. | ||
28 | The SDK image contains userspace tools and kernel | ||
29 | configurations necessary for developing, debugging | ||
30 | and profiling applications and kernel modules */ | ||
31 | -- various artifacts | ||
32 | -- sdk | ||
33 | /* NFV Access Platform SDK for the host */ | ||
34 | -- enea-glibc-x86_64-enea-image-virtualization-host-sdk / | ||
35 | -corei7-64-toolchain-7.0.sh | ||
36 | /* self-extracting archive installing | ||
37 | cross-compilation toolchain for the host */ | ||
38 | -- qemux86-64 | ||
39 | /* artifacts for the guest side */ | ||
40 | -- deb/ | ||
41 | /* deb packages */ | ||
42 | -- images/ | ||
43 | -- enea-image-virtualization-guest | ||
44 | /* precompiled artifacts for the Guest image */ | ||
45 | -- various artifacts | ||
46 | -- sdk | ||
47 | /* NFV Access Platform SDK for the guest */ | ||
48 | -- enea-glibc-x86_64-enea-image-virtualization-guest-sdk / | ||
49 | -core2-64-toolchain-7.0.sh | ||
50 | /* self-extracting archive installing cross-compilation | ||
51 | toolchain for the guest (QEMU x86-64) */ | ||
52 | </programlisting> | ||
53 | |||
54 | <para>For each combination of image and target, the following set of | ||
55 | artifacts is available:</para> | ||
56 | |||
57 | <programlisting>-- bzImage | ||
58 | /* kernel image */ | ||
59 | -- bzImage-<target>.bin | ||
60 | /* kernel image, same as above */ | ||
61 | -- config-<target>.config | ||
62 | /* kernel configuration file */ | ||
63 | -- core-image-minimal-initramfs-<target>.cpio.gz | ||
64 | /* cpio archive of the initramfs */ | ||
65 | -- core-image-minimal-initramfs-<target>.qemuboot.conf | ||
66 | /* qemu config file for the initramfs image */ | ||
67 | -- <image-name>-<target>.ext4 | ||
68 | /* EXT4 image of the rootfs */ | ||
69 | -- <image-name>-<target>.hddimg | ||
70 | /* msdos filesystem containing syslinux, kernel, initrd and rootfs image */ | ||
71 | -- <image-name>-<target>.iso | ||
72 | /* CD .iso image */ | ||
73 | -- <image-name>-<target>.qemuboot.conf | ||
74 | /* qemu config file for the image */ | ||
75 | -- <image-name>-<target>.tar.gz | ||
76 | /* tar archive of the image */ | ||
77 | -- <image-name>-<target>.wic | ||
78 | /* Wic image */ | ||
79 | -- microcode.cpio | ||
80 | /* kernel microcode data */ | ||
81 | -- modules-<target>.tgz | ||
82 | /* external kernel modules */ | ||
83 | -- ovmf.*.qcow2 | ||
84 | /* ovmf firmware for uefi support in qemu */ | ||
85 | -- rmc.db | ||
86 | /* Central RMC Database */ | ||
87 | -- systemd-bootx64.efi | ||
88 | /* systemd-boot EFI file */</programlisting> | ||
89 | </section> | ||
90 | |||
91 | <section id="docs"> | ||
92 | <title>Included Documention</title> | ||
93 | |||
94 | <para>Enea NFV Access is provided with the following set of | ||
95 | documents:</para> | ||
96 | |||
97 | <itemizedlist> | ||
98 | <listitem> | ||
99 | <para>Enea NFV Access Guide – A document describing the Enea NFV | ||
100 | Access release content and how to use it, as well as benchmark | ||
101 | results.</para> | ||
102 | </listitem> | ||
103 | |||
104 | <listitem> | ||
105 | <para>Enea NFV Access Open Source Report – A document containing | ||
106 | the open source and license information pertaining to packages | ||
107 | provided with Enea NFV Access 1.0.</para> | ||
108 | </listitem> | ||
109 | |||
110 | <listitem> | ||
111 | <para>Enea NFV Access Test Report – The document that summarizes | ||
112 | the test results for the Enea NFV Access release.</para> | ||
113 | </listitem> | ||
114 | |||
115 | <listitem> | ||
116 | <para>Enea NFV Access Security Report – The document that lists | ||
117 | all security fixes included in the Enea NFV Access 1.0 release.</para> | ||
118 | </listitem> | ||
119 | </itemizedlist> | ||
120 | </section> | ||
121 | |||
122 | <section id="prebuilt-artifacts"> | ||
123 | <title>How to use Prebuilt Artifacts</title> | ||
124 | |||
125 | <para></para> | ||
126 | </section> | ||
127 | </chapter> \ No newline at end of file | ||
diff --git a/doc/book-enea-nfv-access-platform-guide/doc/hypervisor_virtualization.xml b/doc/book-enea-nfv-access-platform-guide/doc/hypervisor_virtualization.xml new file mode 100644 index 0000000..092b52f --- /dev/null +++ b/doc/book-enea-nfv-access-platform-guide/doc/hypervisor_virtualization.xml | |||
@@ -0,0 +1,328 @@ | |||
1 | <?xml version="1.0" encoding="ISO-8859-1"?> | ||
2 | <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" | ||
3 | "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"> | ||
4 | <chapter id="hypervisor_virt"> | ||
5 | <title>Hypervisor Virtualization</title> | ||
6 | |||
7 | <para>The KVM, Kernel-based Virtual Machine, is a virtualization | ||
8 | infrastructure for the Linux kernel which turns it into a hypervisor. KVM | ||
9 | requires a processor with a hardware virtualization extension.</para> | ||
10 | |||
11 | <para>KVM uses QEMU, an open source machine emulator and virtualizer, to | ||
12 | virtualize a complete system. With KVM it is possible to run multiple guests | ||
13 | of a variety of operating systems, each with a complete set of virtualized | ||
14 | hardware.</para> | ||
15 | |||
16 | <section id="launch_virt_machine"> | ||
17 | <title>Launching a Virtual Machine</title> | ||
18 | |||
19 | <para>QEMU can make use of KVM when running a target architecture that is | ||
20 | the same as the host architecture. For instance, when running | ||
21 | qemu-system-x86_64 on an x86-64 compatible processor (containing | ||
22 | virtualization extensions Intel VT or AMD-V), you can take advantage of | ||
23 | the KVM acceleration, giving you benefit for your host and your guest | ||
24 | system.</para> | ||
25 | |||
26 | <para>Enea Linux includes an optimizied version of QEMU with KVM-only | ||
27 | support. To use KVM pass<command> --enable-kvm</command> to QEMU.</para> | ||
28 | |||
29 | <para>The following is an example of starting a guest:</para> | ||
30 | |||
31 | <programlisting>taskset -c 0,1 qemu-system-x86_64 \ | ||
32 | -cpu host -M q35 -smp cores=2,sockets=1 \ | ||
33 | -vcpu 0,affinity=0 -vcpu 1,affinity=1 \ | ||
34 | -enable-kvm -nographic \ | ||
35 | -kernel bzImage \ | ||
36 | -drive file=enea-image-virtualization-guest-qemux86-64.ext4,if=virtio,format=raw \ | ||
37 | -append 'root=/dev/vda console=ttyS0,115200' \ | ||
38 | -m 4096 \ | ||
39 | -object memory-backend-file,id=mem,size=4096M,mem-path=/dev/hugepages,share=on \ | ||
40 | -numa node,memdev=mem -mem-prealloc</programlisting> | ||
41 | </section> | ||
42 | |||
43 | <section id="qemu_boot"> | ||
44 | <title>Main QEMU boot options</title> | ||
45 | |||
46 | <para>Below are detailed all the pertinent boot options for the QEMU | ||
47 | emulator:</para> | ||
48 | |||
49 | <itemizedlist> | ||
50 | <listitem> | ||
51 | <para>SMP - at least 2 cores should be enabled in order to isolate | ||
52 | application(s) running in virtual machine(s) on specific cores for | ||
53 | better performance.</para> | ||
54 | |||
55 | <programlisting>-smp cores=2,threads=1,sockets=1 \</programlisting> | ||
56 | </listitem> | ||
57 | |||
58 | <listitem> | ||
59 | <para>CPU affinity - associate virtual CPUs with physical CPUs and | ||
60 | optionally assign a default real time priority to the virtual CPU | ||
61 | process in the host kernel. This option allows you to start qemu vCPUs | ||
62 | on isolated physical CPUs.</para> | ||
63 | |||
64 | <programlisting>-vcpu 0,affinity=0 \</programlisting> | ||
65 | </listitem> | ||
66 | |||
67 | <listitem> | ||
68 | <para>Hugepages - KVM guests can be deployed with huge page memory | ||
69 | support in order to reduce memory consumption and improve performance, | ||
70 | by reducing CPU cache usage. By using huge pages for a KVM guest, less | ||
71 | memory is used for page tables and TLB (Translation Lookaside Buffer) | ||
72 | misses are reduced, thereby significantly increasing performance, | ||
73 | especially for memory-intensive situations.</para> | ||
74 | |||
75 | <programlisting>-object memory-backend-file,id=mem,size=4096M,mem-path=/dev/hugepages,share=on \</programlisting> | ||
76 | </listitem> | ||
77 | |||
78 | <listitem> | ||
79 | <para>Memory preallocation - preallocate huge pages at startup time | ||
80 | can improve performance but it may affect the qemu boot time.</para> | ||
81 | |||
82 | <programlisting>-mem-prealloc \</programlisting> | ||
83 | </listitem> | ||
84 | |||
85 | <listitem> | ||
86 | <para>Enable realtime characteristics - run qemu with realtime | ||
87 | features. While that mildly implies that "-realtime" alone might do | ||
88 | something, it's just an identifier for options that are partially | ||
89 | realtime. If you're running in a realtime or low latency environment, | ||
90 | you don't want your pages to be swapped out and mlock does that, thus | ||
91 | mlock=on. If you want VM density, then you may want swappable VMs, | ||
92 | thus mlock=off.</para> | ||
93 | |||
94 | <programlisting>-realtime mlock=on \</programlisting> | ||
95 | </listitem> | ||
96 | </itemizedlist> | ||
97 | |||
98 | <para>If the hardware does not have an IOMMU (known as "Intel VT-d" on | ||
99 | Intel-based machines and "AMD I/O Virtualization Technology" on AMD-based | ||
100 | machines), it will not be possible to assign devices in KVM. | ||
101 | Virtualization Technology features (VT-d, VT-x, etc.) must be enabled from | ||
102 | BIOS on the host target before starting a virtual machine.</para> | ||
103 | </section> | ||
104 | |||
105 | <section id="net_in_guest"> | ||
106 | <title>Networking in guest</title> | ||
107 | |||
108 | <section id="vhost-user-support"> | ||
109 | <title>Using vhost-user support</title> | ||
110 | |||
111 | <para>The goal of vhost-user is to implement a Virtio transport, staying | ||
112 | as close as possible to the vhost paradigm of using shared memory, | ||
113 | ioeventfds and irqfds. A UNIX domain socket based mechanism allows the | ||
114 | set up of resources used by a number of Vrings shared between two | ||
115 | userspace processes, which will be placed in shared memory.</para> | ||
116 | |||
117 | <para>To run QEMU with the vhost-user backend, you have to provide the | ||
118 | named UNIX domain socket which needs to be already opened by the | ||
119 | backend:</para> | ||
120 | |||
121 | <programlisting>-object memory-backend-file,id=mem,size=4096M,mem-path=/dev/hugepages,share=on \ | ||
122 | -chardev socket,id=char0,path=/var/run/openvswitch/vhost-user1 \ | ||
123 | -netdev type=vhost-user,id=mynet1,chardev=char0,vhostforce \ | ||
124 | -device virtio-net-pci,netdev=mynet1,mac=52:54:00:00:00:01 \</programlisting> | ||
125 | |||
126 | <para>The vHost User standard uses a client-server model. The server | ||
127 | creates and manages the vHost User sockets and the client connects to | ||
128 | the sockets created by the server. It is recommended to use QEMU as | ||
129 | server so the vhost-user client can be restarted without affecting the | ||
130 | server, otherwise if the server side dies all clients need to be | ||
131 | restarted.</para> | ||
132 | |||
133 | <para>Using vhost-user in QEMU as server will offer the flexibility to | ||
134 | stop and start the virtual machine with no impact on virtual switch from | ||
135 | the host (vhost-user-client).</para> | ||
136 | |||
137 | <programlisting>-chardev socket,id=char0,path=/var/run/openvswitch/vhost-user1,server \</programlisting> | ||
138 | </section> | ||
139 | |||
140 | <section id="tap-interface"> | ||
141 | <title>Using TAP Interfaces</title> | ||
142 | |||
143 | <para>QEMU can use TAP interfaces to provide full networking capability | ||
144 | for the guest OS:</para> | ||
145 | |||
146 | <programlisting>-netdev tap,id=net0,ifname=tap0,script=no,downscript=no \ | ||
147 | -device virtio-net-pci,netdev=net0,mac=22:EA:FB:A8:25:AE \</programlisting> | ||
148 | </section> | ||
149 | |||
150 | <section id="vfio-passthrough"> | ||
151 | <title>VFIO passthrough VF (SR-IOV) to guest</title> | ||
152 | |||
153 | <para>KVM hypervisor support for attaching PCI devices on the host | ||
154 | system to guests. PCI passthrough allows guests to have exclusive access | ||
155 | to PCI devices for a range of tasks. PCI passthrough allows PCI devices | ||
156 | to appear and behave as if they were physically attached to the guest | ||
157 | operating system.</para> | ||
158 | |||
159 | <para>Preparing an Intel system for PCI passthrough:</para> | ||
160 | |||
161 | <itemizedlist> | ||
162 | <listitem> | ||
163 | <para>Enable the Intel VT-d extensions in BIOS</para> | ||
164 | </listitem> | ||
165 | |||
166 | <listitem> | ||
167 | <para>Activate Intel VT-d in the kernel by using | ||
168 | <literal>intel_iommu=on</literal> as a kernel boot parameter</para> | ||
169 | </listitem> | ||
170 | |||
171 | <listitem> | ||
172 | <para>Allow unsafe interrupts in case the system doesn't support | ||
173 | interrupt remapping. This can be done using | ||
174 | <literal>vfio_iommu_type1.allow_unsafe_interrupts=1</literal> as a | ||
175 | boot kernel parameter.</para> | ||
176 | </listitem> | ||
177 | </itemizedlist> | ||
178 | |||
179 | <para>Create guest with direct passthrough via VFIO framework like | ||
180 | so:</para> | ||
181 | |||
182 | <programlisting>-device vfio-pci,host=0000:03:10.2 \</programlisting> | ||
183 | |||
184 | <para>On the host, one or more VirtualFunctions (VFs) must be created in | ||
185 | order to be allocated for a guest network to access, before starting | ||
186 | QEMU:</para> | ||
187 | |||
188 | <programlisting>$ echo 2 > /sys/class/net/eno3/device/sriov_numvfs | ||
189 | $ modprobe vfio_pci | ||
190 | $ dpdk-devbind.py --bind=vfio-pci 0000:03:10.2</programlisting> | ||
191 | </section> | ||
192 | |||
193 | <section id="multiqueue"> | ||
194 | <title>Multi-queue</title> | ||
195 | |||
196 | <section id="qemu-multiqueue-support"> | ||
197 | <title>QEMU multi queue support configuration</title> | ||
198 | |||
199 | <programlisting>-chardev socket,id=char0,path=/var/run/openvswitch/vhost-user1 \ | ||
200 | -netdev type=vhost-user,id=net0,chardev=char0,queues=2 \ | ||
201 | -device virtio-net-pci,netdev=net0,mac=22:EA:FB:A8:25:AE,mq=on,vectors=6 | ||
202 | where vectors is calculated as: 2 + 2 * queues number.</programlisting> | ||
203 | </section> | ||
204 | |||
205 | <section id="inside-guest"> | ||
206 | <title>Inside guest</title> | ||
207 | |||
208 | <para>Linux kernel virtio-net driver (one queue is enabled by | ||
209 | default):</para> | ||
210 | |||
211 | <programlisting>$ ethtool -L combined 2 eth0 | ||
212 | DPDK Virtio PMD | ||
213 | $ testpmd -c 0x7 -- -i --rxq=2 --txq=2 --nb-cores=2 ...</programlisting> | ||
214 | |||
215 | <para>For QEMU documentation please see: <ulink | ||
216 | url="https://qemu.weilnetz.de/doc/qemu-doc.html">https://qemu.weilnetz.de/doc/qemu-doc.html</ulink>.</para> | ||
217 | </section> | ||
218 | </section> | ||
219 | </section> | ||
220 | |||
221 | <section id="libvirt"> | ||
222 | <title>Libvirt</title> | ||
223 | |||
224 | <para>One way to manage guests in Enea NFV Access is by using | ||
225 | <literal>libvirt</literal>. Libvirt is used in conjunction with a daemon | ||
226 | (<literal>libvirtd</literal>) and a command line utility (virsh) to manage | ||
227 | virtualized environments.</para> | ||
228 | |||
229 | <para>The libvirt library is a hypervisor-independent virtualization API | ||
230 | and toolkit that is able to interact with the virtualization capabilities | ||
231 | of a range of operating systems. Libvirt provides a common, generic and | ||
232 | stable layer to securely manage domains on a node. As nodes may be | ||
233 | remotely located, libvirt provides all methods required to provision, | ||
234 | create, modify, monitor, control, migrate and stop the domains, within the | ||
235 | limits of hypervisor support for these operations.</para> | ||
236 | |||
237 | <para>The libvirt daemon runs on the Enea NFV Access host. All tools built | ||
238 | on libvirt API connect to the daemon to request the desired operation, and | ||
239 | to collect information about the configuration and resources of the host | ||
240 | system and guests. <literal>virsh</literal> is a command line interface | ||
241 | tool for managing guests and the hypervisor. The virsh tool is built on | ||
242 | the libvirt management API.</para> | ||
243 | |||
244 | <para><emphasis role="bold">Major functionality provided by | ||
245 | libvirt</emphasis></para> | ||
246 | |||
247 | <para>The following is a summary from the libvirt <ulink | ||
248 | url="http://wiki.libvirt.org/page/FAQ#What_is_libvirt.3F">home | ||
249 | page</ulink> describing the major libvirt features:</para> | ||
250 | |||
251 | <itemizedlist> | ||
252 | <listitem> | ||
253 | <para><emphasis role="bold">VM management:</emphasis> Various domain | ||
254 | lifecycle operations such as start, stop, pause, save, restore, and | ||
255 | migrate. Hotplug operations for many device types including disk and | ||
256 | network interfaces, memory, and cpus.</para> | ||
257 | </listitem> | ||
258 | |||
259 | <listitem> | ||
260 | <para><emphasis role="bold">Remote machine support:</emphasis> All | ||
261 | libvirt functionality is accessible on any machine running the libvirt | ||
262 | daemon, including remote machines. A variety of network transports are | ||
263 | supported for connecting remotely, with the simplest being | ||
264 | <literal>SSH</literal>, which requires no extra explicit | ||
265 | configuration. For more information, see: <ulink | ||
266 | url="http://libvirt.org/remote.html">http://libvirt.org/remote.html</ulink>.</para> | ||
267 | </listitem> | ||
268 | |||
269 | <listitem> | ||
270 | <para><emphasis role="bold">Network interface management:</emphasis> | ||
271 | Any host running the libvirt daemon can be used to manage physical and | ||
272 | logical network interfaces. Enumerate existing interfaces, as well as | ||
273 | configure (and create) interfaces, bridges, vlans, and bond devices. | ||
274 | For more details see: <ulink | ||
275 | url="https://fedorahosted.org/netcf/">https://fedorahosted.org/netcf/</ulink>.</para> | ||
276 | </listitem> | ||
277 | |||
278 | <listitem> | ||
279 | <para><emphasis role="bold">Virtual NAT and Route based | ||
280 | networking:</emphasis> Any host running the libvirt daemon can manage | ||
281 | and create virtual networks. Libvirt virtual networks use firewall | ||
282 | rules to act as a router, providing VMs transparent access to the host | ||
283 | machines network. For more information, see: <ulink | ||
284 | url="http://libvirt.org/archnetwork.html">http://libvirt.org/archnetwork.html</ulink>.</para> | ||
285 | </listitem> | ||
286 | |||
287 | <listitem> | ||
288 | <para><emphasis role="bold">Storage management:</emphasis> Any host | ||
289 | running the libvirt daemon can be used to manage various types of | ||
290 | storage: create file images of various formats (raw, qcow2, etc.), | ||
291 | mount NFS shares, enumerate existing LVM volume groups, create new LVM | ||
292 | volume groups and logical volumes, partition raw disk devices, mount | ||
293 | iSCSI shares, and much more. For more details, see: <ulink | ||
294 | url="http://libvirt.org/storage.html">http://libvirt.org/storage.html</ulink>.</para> | ||
295 | </listitem> | ||
296 | |||
297 | <listitem> | ||
298 | <para><emphasis role="bold">Libvirt Configuration:</emphasis> A | ||
299 | properly running libvirt requires that the following elements be in | ||
300 | place:</para> | ||
301 | |||
302 | <itemizedlist> | ||
303 | <listitem> | ||
304 | <para>Configuration files, located in the directory | ||
305 | <literal>/etc/libvirt</literal>. They include the daemon's | ||
306 | configuration file <literal>libvirtd.conf</literal>, and | ||
307 | hypervisor-specific configuration files, like | ||
308 | <literal>qemu.conf</literal> for the QEMU.</para> | ||
309 | </listitem> | ||
310 | |||
311 | <listitem> | ||
312 | <para>A running libvirtd daemon. The daemon is started | ||
313 | automatically in Enea NFV Access host.</para> | ||
314 | </listitem> | ||
315 | |||
316 | <listitem> | ||
317 | <para>Configuration files for the libvirt domains, or guests, to | ||
318 | be managed by the KVM host. The specifics for guest domains shall | ||
319 | be defined in an XML file of a format specified at <ulink | ||
320 | url="http://libvirt.org/formatdomain.html">http://libvirt.org/formatdomain.html</ulink>. | ||
321 | XML formats for other structures are specified at <ulink type="" | ||
322 | url="http://libvirt.org/format.html">http://libvirt.org/format.html</ulink>.</para> | ||
323 | </listitem> | ||
324 | </itemizedlist> | ||
325 | </listitem> | ||
326 | </itemizedlist> | ||
327 | </section> | ||
328 | </chapter> \ No newline at end of file | ||
diff --git a/doc/book-enea-nfv-access-platform-guide/doc/images/virtual_network_functions.png b/doc/book-enea-nfv-access-platform-guide/doc/images/virtual_network_functions.png new file mode 100644 index 0000000..4011de8 --- /dev/null +++ b/doc/book-enea-nfv-access-platform-guide/doc/images/virtual_network_functions.png | |||
Binary files differ | |||
diff --git a/doc/book-enea-nfv-access-platform-guide/doc/ovs.xml b/doc/book-enea-nfv-access-platform-guide/doc/ovs.xml new file mode 100644 index 0000000..3400975 --- /dev/null +++ b/doc/book-enea-nfv-access-platform-guide/doc/ovs.xml | |||
@@ -0,0 +1,161 @@ | |||
1 | <?xml version="1.0" encoding="ISO-8859-1"?> | ||
2 | <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" | ||
3 | "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"> | ||
4 | <chapter id="ovs"> | ||
5 | <title>Open Virtual Switch</title> | ||
6 | |||
7 | <para>Open vSwitch (OVS) is an open-source multilayer virtual switch | ||
8 | designed to be used in virtualized environments to forward traffic between | ||
9 | different VMs on the same host, and also between VMs and the physical | ||
10 | network.</para> | ||
11 | |||
12 | <para>Native OVS forwarding is handled by two major components: a user-space | ||
13 | daemon called <literal>ovs-vswitchd</literal> and a | ||
14 | <literal>fastpath</literal> kernel module used to accelerate the data path. | ||
15 | The fastpath kernel module will handle packets received on the NIC by simply | ||
16 | consulting a flow table with corresponding action rules (e.g to forward the | ||
17 | packet or modify its headers). If no matching entry is found in the flow | ||
18 | table, the packet is copied to the user-space and sent to the ovs-vswitchd | ||
19 | deamon which determines how it should be handled ("slowpath").</para> | ||
20 | |||
21 | <para>The packet is then passed back to the kernel module together with the | ||
22 | desired action and the flow table is updated, so that subsequent packets in | ||
23 | the same flow can be handled in fastpath without any user-space interaction. | ||
24 | In this way, OVS eliminates a lot of the context switching between | ||
25 | kernel-space and user-space, but the throughput is still limited by the | ||
26 | capacity of the Linux kernel stack.</para> | ||
27 | |||
28 | <section id="ovs-dpdk"> | ||
29 | <title>OVS-DPDK</title> | ||
30 | |||
31 | <para>To improve performance, OVS supports integration with Intel DPDK | ||
32 | libraries to operate entirely in user-space (OVS-DPDK). DPDK Poll Mode | ||
33 | Drivers (PMDs) enable direct transfers of packets between the physical NIC | ||
34 | and user-space, thereby eliminating the overhead of interrupt handling and | ||
35 | Linux kernel network stack processing. OVS-DPDK provides DPDK-backed | ||
36 | vhost-user ports as the primary way to connect guests to this datapath. | ||
37 | The vhost-user interfaces are transparent to the guest.</para> | ||
38 | </section> | ||
39 | |||
40 | <section id="ovs-commands"> | ||
41 | <title>OVS commands</title> | ||
42 | |||
43 | <para>OVS provides a rich set of command line management tools, most | ||
44 | importantly:</para> | ||
45 | |||
46 | <itemizedlist> | ||
47 | <listitem> | ||
48 | <para>ovs-vsctl: Used to manage and inspect switch configurations, | ||
49 | e.g. to create bridges and to add/remove ports.</para> | ||
50 | </listitem> | ||
51 | |||
52 | <listitem> | ||
53 | <para>ovs-ofctl: Used to configure and monitor flows.</para> | ||
54 | </listitem> | ||
55 | </itemizedlist> | ||
56 | |||
57 | <para>For more information about Open vSwitch, see <ulink | ||
58 | url="http://openvswitch.org">http://openvswitch.org</ulink>.</para> | ||
59 | </section> | ||
60 | |||
61 | <section id="config-ovs-dpdk"> | ||
62 | <title>Configuring OVS-DPDK for improved performance</title> | ||
63 | |||
64 | <section id="dpdk-lcore-mask"> | ||
65 | <title>dpdk-lcore-mask</title> | ||
66 | |||
67 | <para>Specifies the CPU core affinity for DPDK lcore threads. The lcore | ||
68 | threads are used for DPDK library tasks. For performance it is best to | ||
69 | set this to a single core on the system, and it should not overlap the | ||
70 | pmd-cpu-mask, as seen in the example below.</para> | ||
71 | |||
72 | <para>Example: To use core 1:</para> | ||
73 | |||
74 | <programlisting>ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-lcore-mask=0x1</programlisting> | ||
75 | </section> | ||
76 | |||
77 | <section id="pmd-cpu-mask"> | ||
78 | <title>pmd-cpu-mask</title> | ||
79 | |||
80 | <para>The DPDK PMD threads polling for incoming packets are CPU bound | ||
81 | and should be pinned to isolated cores for optimal performance.</para> | ||
82 | |||
83 | <para>If OVS-DPDK receives traffic on multiple ports, for example when | ||
84 | DPDK and vhost-user ports are used for bi-directional traffic, the | ||
85 | performance can be significantly improved by creating multiple PMD | ||
86 | threads and affinitizing them to separate cores in order to share the | ||
87 | workload, by each being responsible for an individual port. The cores | ||
88 | should not be hyperthreads on the same CPU.</para> | ||
89 | |||
90 | <para>The PMD core affinity is specified by setting an appropriate core | ||
91 | mask. Example: using cores 2 and 3:</para> | ||
92 | |||
93 | <programlisting>ovs-vsctl --no-wait set Open_vSwitch . other_config:pmd-cpu-mask=0xc</programlisting> | ||
94 | </section> | ||
95 | </section> | ||
96 | |||
97 | <section id="setup-ovs-dpdk"> | ||
98 | <title>How to set up OVS-DPDK</title> | ||
99 | |||
100 | <para>The DPDK must be configured prior to setting up OVS-DPDK. See | ||
101 | [FIXME] for DPDK setup instructions, then follow these steps:</para> | ||
102 | |||
103 | <orderedlist> | ||
104 | <listitem> | ||
105 | <para>Clean up the environment:</para> | ||
106 | |||
107 | <programlisting>killall ovsdb-server ovs-vswitchd | ||
108 | rm -f /var/run/openvswitch/vhost-user* | ||
109 | rm -f /etc/openvswitch/conf.db</programlisting> | ||
110 | </listitem> | ||
111 | |||
112 | <listitem> | ||
113 | <para>Start the ovsdb-server:</para> | ||
114 | |||
115 | <programlisting>export DB_SOCK=/var/run/openvswitch/db.sock | ||
116 | ovsdb-tool create /etc/openvswitch/conf.db /usr/share/openvswitch/vswitch.ovsschema | ||
117 | ovsdb-server --remote=punix:$DB_SOCK / | ||
118 | --remote=db:Open_vSwitch,Open_vSwitch,manager_options --pidfile --detach</programlisting> | ||
119 | </listitem> | ||
120 | |||
121 | <listitem> | ||
122 | <para>Start ovs-vswitchd with DPDK support enabled:</para> | ||
123 | |||
124 | <programlisting>ovs-vsctl --no-wait init | ||
125 | ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-lcore-mask=0x1 | ||
126 | ovs-vsctl --no-wait set Open_vSwitch . other_config:pmd-cpu-mask=0xc | ||
127 | ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-init=true | ||
128 | ovs-vswitchd unix:$DB_SOCK --pidfile --detach / | ||
129 | --log-file=/var/log/openvswitch/ovs-vswitchd.log</programlisting> | ||
130 | </listitem> | ||
131 | |||
132 | <listitem> | ||
133 | <para>Create the OVS bridge and attach ports:</para> | ||
134 | |||
135 | <programlisting>ovs-vsctl add-br ovsbr0 -- set bridge ovsbr0 datapath_type=netdev | ||
136 | ovs-vsctl add-port ovsbr0 dpdk0 -- set Interface dpdk0 type=dpdk / | ||
137 | :dpdk-devargs=<PCI device></programlisting> | ||
138 | </listitem> | ||
139 | |||
140 | <listitem> | ||
141 | <para>Add DPDK vhost-user ports:</para> | ||
142 | |||
143 | <programlisting>ovs-vsctl add-port ovsbr0 vhost-user1 -- set Interface vhost-user1 type=dpdkvhostuser</programlisting> | ||
144 | |||
145 | <para>This command creates a socket at | ||
146 | <literal>/var/run/openvswitch/vhost-user1</literal>, which can be | ||
147 | provided to the VM on the QEMU command line. See [FIXME] for | ||
148 | details.</para> | ||
149 | </listitem> | ||
150 | |||
151 | <listitem> | ||
152 | <para>Define flows:</para> | ||
153 | |||
154 | <programlisting>ovs-ofctl del-flows ovsbr0 | ||
155 | ovs-ofctl show ovsbr0 | ||
156 | ovs-ofctl add-flow ovsbr0 in_port=1,action=output:2 | ||
157 | ovs-ofctl add-flow ovsbr0 in_port=2,action=output:1</programlisting> | ||
158 | </listitem> | ||
159 | </orderedlist> | ||
160 | </section> | ||
161 | </chapter> \ No newline at end of file | ||
diff --git a/doc/book-enea-nfv-access-platform-guide/doc/platform_overview.xml b/doc/book-enea-nfv-access-platform-guide/doc/platform_overview.xml new file mode 100644 index 0000000..945e25b --- /dev/null +++ b/doc/book-enea-nfv-access-platform-guide/doc/platform_overview.xml | |||
@@ -0,0 +1,165 @@ | |||
1 | <?xml version="1.0" encoding="ISO-8859-1"?> | ||
2 | <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" | ||
3 | "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"> | ||
4 | <chapter id="platform_overview"> | ||
5 | <title>Platform Overview</title> | ||
6 | |||
7 | <para>The NFV Access Platform Guide available with this release of Enea | ||
8 | Linux, seeks to provide further information that will help all intended | ||
9 | users make the most out of the virtualization features.</para> | ||
10 | |||
11 | <section id="description"> | ||
12 | <title>NFV Access Platform Description</title> | ||
13 | |||
14 | <para>Enea NFV Access is a lightweight virtualization software platform | ||
15 | designed for deployment on edge devices at customer premises. Streamlined | ||
16 | for high networking performance and minimal footprints for both platform | ||
17 | and VNFs, it enables very high compute density.</para> | ||
18 | |||
19 | <para>ENFV Access also provides a foundation for vCPE agility and | ||
20 | innovation, reducing cost and complexity for computing at the network | ||
21 | edge. It supports multiple architectures and scales from small white box | ||
22 | edge devices up to high-end network servers. Thanks to the streamlined | ||
23 | footprint, Enea NFV Access can be deployed on systems as small as single | ||
24 | 2-core ARM devices. It scales up to clustered 24 core x86 Xeon servers and | ||
25 | beyond, allowing multiple VNFs on the same machine, and eliminating the | ||
26 | need to use different virtualization software for different hardware | ||
27 | platforms, saving costs through single source provisioning.</para> | ||
28 | |||
29 | <para>Optimized virtual networking performance provides low virtualized | ||
30 | networking latency, high virtualized networking throughput (10 Gb wire | ||
31 | speed), and low processing overhead. It allows high compute density on | ||
32 | white box hardware, maintaining performance when moving functionality from | ||
33 | application specific appliances to software on standard hardware. The | ||
34 | optimized boot speed minimizes the time from reboot to active services, | ||
35 | improving availability.</para> | ||
36 | |||
37 | <para>Enea NFV Access provides virtualization using both containers and | ||
38 | virtual machines. Containers provide lightweight virtualization for a | ||
39 | smaller VNF footprint and a very short time interval from start to enabled | ||
40 | network services. VMs provide virtualization with secure VNF sandboxing | ||
41 | and is the preferred virtualization method for OPNFV compliance. Enea NFV | ||
42 | Access allows combinations of containers and VMs for highest possible user | ||
43 | adaptability.</para> | ||
44 | |||
45 | <para>Flexible interfaces for VNF lifecycle management and service | ||
46 | function chaining, are important to allow a smooth transition from | ||
47 | traditional network appliances to virtualized network functions in | ||
48 | existing networks, as they plug into a variety of interfaces. Enea NFV | ||
49 | Access supports VNF lifecycle management and service function chaining | ||
50 | through OpenStack, NETCONF, REST, CLI and Docker. It integrates a powerful | ||
51 | device management framework that enables full FCAPS functionality for | ||
52 | powerful management of the platform.</para> | ||
53 | |||
54 | <para>Building on open source, Enea NFV Access prevents vendor lock-in | ||
55 | thanks to its completely open standards and interfaces. Unlike proprietary | ||
56 | platforms that either do not allow decoupling of software from hardware, | ||
57 | or prevent NVF portability, Enea NFV Access includes optimized components | ||
58 | with open interfaces to allow full portability and | ||
59 | interoperability.</para> | ||
60 | </section> | ||
61 | |||
62 | <section id="platform_components"> | ||
63 | <title>NFV Access Platform Components</title> | ||
64 | |||
65 | <para>Enea NFV Access is built on highly optimized open source and | ||
66 | value-adding components that provide standard interfaces but with boosted | ||
67 | performance.</para> | ||
68 | |||
69 | <mediaobject> | ||
70 | <imageobject> | ||
71 | <imagedata align="center" | ||
72 | fileref="images/virtual_network_functions.png" /> | ||
73 | </imageobject> | ||
74 | </mediaobject> | ||
75 | |||
76 | <para>The Access Platform includes the following key components:</para> | ||
77 | |||
78 | <itemizedlist> | ||
79 | <listitem> | ||
80 | <para>Linux Kernel – Optimized Linux kernel with the focus on | ||
81 | vCPE systems characteristics.</para> | ||
82 | </listitem> | ||
83 | |||
84 | <listitem> | ||
85 | <para>KVM – Virtualization with virtual machines. KVM is the | ||
86 | standard virtualization engine for Linux based systems.</para> | ||
87 | </listitem> | ||
88 | |||
89 | <listitem> | ||
90 | <para>Docker – Docker provides a lightweight configuration using | ||
91 | containers. Docker is the standard platform for container | ||
92 | virtualization.</para> | ||
93 | </listitem> | ||
94 | |||
95 | <listitem> | ||
96 | <para>Virtual switching – Optimized OVS-DPDK provides high | ||
97 | throughput and low latency.</para> | ||
98 | </listitem> | ||
99 | |||
100 | <listitem> | ||
101 | <para>Edge Link – Edge Link provides interfaces to orchestration | ||
102 | for centralized VNF lifecycle management and service function | ||
103 | chaining:</para> | ||
104 | |||
105 | <orderedlist> | ||
106 | <listitem> | ||
107 | <para>NETCONF</para> | ||
108 | </listitem> | ||
109 | |||
110 | <listitem> | ||
111 | <para>OpenStack</para> | ||
112 | </listitem> | ||
113 | |||
114 | <listitem> | ||
115 | <para>Docker</para> | ||
116 | </listitem> | ||
117 | |||
118 | <listitem> | ||
119 | <para>REST</para> | ||
120 | </listitem> | ||
121 | |||
122 | <listitem> | ||
123 | <para>CLI</para> | ||
124 | </listitem> | ||
125 | </orderedlist> | ||
126 | </listitem> | ||
127 | |||
128 | <listitem> | ||
129 | <para>APT packet management – Feature rich repository of | ||
130 | prebuilt open source packages for extending and adapting the platform | ||
131 | using APT Package Management.</para> | ||
132 | </listitem> | ||
133 | |||
134 | <listitem> | ||
135 | <para>CLI based VNF management – CLI access over virsh and | ||
136 | libvirt.</para> | ||
137 | </listitem> | ||
138 | |||
139 | <listitem> | ||
140 | <para>FCAPS framework – The device management framework for | ||
141 | managing the platform is capable of providing full FCAPS functionality | ||
142 | to orchestration or network management systems.</para> | ||
143 | </listitem> | ||
144 | |||
145 | <listitem> | ||
146 | <para>Data plane – High performance data plane that includes the | ||
147 | following optimized data plane drivers:</para> | ||
148 | |||
149 | <orderedlist> | ||
150 | <listitem> | ||
151 | <para>DPDK</para> | ||
152 | </listitem> | ||
153 | |||
154 | <listitem> | ||
155 | <para>OpenFastPath (OFP)</para> | ||
156 | </listitem> | ||
157 | |||
158 | <listitem> | ||
159 | <para>ODP</para> | ||
160 | </listitem> | ||
161 | </orderedlist> | ||
162 | </listitem> | ||
163 | </itemizedlist> | ||
164 | </section> | ||
165 | </chapter> \ No newline at end of file | ||
diff --git a/doc/book-enea-nfv-access-platform-guide/doc/using_nfv_access_platform_sdks.xml b/doc/book-enea-nfv-access-platform-guide/doc/using_nfv_access_platform_sdks.xml new file mode 100644 index 0000000..9f0f3f5 --- /dev/null +++ b/doc/book-enea-nfv-access-platform-guide/doc/using_nfv_access_platform_sdks.xml | |||
@@ -0,0 +1,203 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?> | ||
2 | <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" | ||
3 | "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"> | ||
4 | <chapter id="workflow"> | ||
5 | <title>Using NFV Access Platform SDKs</title> | ||
6 | |||
7 | <para>Enea NFV Access Platform comes with two different toolchains, one for | ||
8 | developing applications for the host and one for applications running in the | ||
9 | guest VM. Each is wrapped together with an environment-setup script into a | ||
10 | shell archive and is available under the Download section on | ||
11 | portal.enea.com. They have self explanatory names.</para> | ||
12 | |||
13 | <itemizedlist> | ||
14 | <listitem> | ||
15 | <para><literal>inteld1521/sdk/enea-glibc-x86_64-enea-image-virtualization-host-sdk-corei7-64-toolchain-7.0.sh</literal> | ||
16 | - for host applications.</para> | ||
17 | </listitem> | ||
18 | |||
19 | <listitem> | ||
20 | <para><literal>qemux86-64/sdk/enea-glibc-x86_64-enea-image-virtualization-guest-sdk-core2-64-toolchain-7.0.sh</literal> | ||
21 | - for guest applications.</para> | ||
22 | </listitem> | ||
23 | </itemizedlist> | ||
24 | |||
25 | <section id="install-crosscomp"> | ||
26 | <title>Installing the Cross-Compilation Toolchain</title> | ||
27 | |||
28 | <para>Before cross-compiling applications for your target, you need to | ||
29 | install the corresponding toolchain on your workstation. To do that, | ||
30 | simply run the installer and follow the steps included with it:</para> | ||
31 | |||
32 | <orderedlist> | ||
33 | <listitem> | ||
34 | <para><programlisting>$ ./enea-glibc-x86_64-enea-image-virtualization-guest-sdk-core2-64-toolchain-7.0.sh</programlisting>When | ||
35 | prompted, select to install the toolchain in the desired directory, | ||
36 | referred to as <literal><sdkdir></literal>. </para> | ||
37 | |||
38 | <para>A default path where the toolchain will be installed will be | ||
39 | shown in the prompt. The installer unpacks the environment setup | ||
40 | script in <literal><sdkdir></literal> and the toolchain under | ||
41 | <literal><sdkdir>/sysroots</literal>.</para> | ||
42 | |||
43 | <note> | ||
44 | <para>Choose a unique directory for each toolchain. Installing a | ||
45 | second toolchain of any type in the same directory as a previously | ||
46 | installed one will break the <literal>$PATH</literal> variable of | ||
47 | the first one.</para> | ||
48 | </note> | ||
49 | </listitem> | ||
50 | |||
51 | <listitem> | ||
52 | <para>Setup the toolchain environment for your target by sourcing the | ||
53 | environment-setup script. Example: <programlisting>$ source <sdkdir>/environment-setup-core2-64-enea-linux</programlisting></para> | ||
54 | </listitem> | ||
55 | </orderedlist> | ||
56 | </section> | ||
57 | |||
58 | <section id="crosscomp-apps"> | ||
59 | <title>Cross-Compiling Applications from Command Line</title> | ||
60 | |||
61 | <para>Once the environment-setup script is sourced, you can make your | ||
62 | applications as per usual and get them compiled for your target. Below you | ||
63 | see how to cross-compile from command line.</para> | ||
64 | |||
65 | <orderedlist> | ||
66 | <listitem> | ||
67 | <para>Create a Makefile for your application. Example: a simple | ||
68 | Makefile and application:</para> | ||
69 | |||
70 | <programlisting>helloworld:helloworld.o | ||
71 | $(CC) -o helloworld helloworld.o | ||
72 | clean: | ||
73 | rm -f *.o helloworld | ||
74 | #include <stdio.h> | ||
75 | int main(void) { | ||
76 | printf("Hello World\n"); | ||
77 | return 0; | ||
78 | }</programlisting> | ||
79 | </listitem> | ||
80 | |||
81 | <listitem> | ||
82 | <para>Run <command>make</command> to cross-compile your application | ||
83 | according to the environment set up:</para> | ||
84 | |||
85 | <programlisting>$ make</programlisting> | ||
86 | </listitem> | ||
87 | |||
88 | <listitem> | ||
89 | <para>Deploy the helloworld program to your target and run it:</para> | ||
90 | |||
91 | <programlisting># ./helloworld | ||
92 | hello world</programlisting> | ||
93 | </listitem> | ||
94 | </orderedlist> | ||
95 | </section> | ||
96 | |||
97 | <section id="crosscomp-kern-mod"> | ||
98 | <title>Cross-Compiling Kernel Modules</title> | ||
99 | |||
100 | <para>Before cross-compiling kernle modules, you need to make sure the | ||
101 | installed toolchain includes the kernel source tree, which should be | ||
102 | available at: | ||
103 | <literal><sdkdir>/sysroots/<targetarch>-enea-linux/usr/src/kernel</literal>.</para> | ||
104 | |||
105 | <para>Once the environment-setup script is sourced, you can make your | ||
106 | kernel modules as usual and get them compiled for your target. Below you | ||
107 | see how to cross-compile a kernel module.</para> | ||
108 | |||
109 | <orderedlist> | ||
110 | <listitem> | ||
111 | <para>Create a Makefile for the kernel module. Example: a simple | ||
112 | Makefile and kernel module:</para> | ||
113 | |||
114 | <programlisting>obj-m := hello.o | ||
115 | PWD := $(shell pwd) | ||
116 | |||
117 | KERNEL_SRC := <full path to kernel source tree> | ||
118 | |||
119 | all: scripts | ||
120 | $(MAKE) -C $(KERNEL_SRC) M=$(PWD) LDFLAGS="" modules | ||
121 | scripts: | ||
122 | $(MAKE) -C $(KERNEL_SRC) scripts | ||
123 | clean: | ||
124 | $(MAKE) -C $(KERNEL_SRC) M=$(PWD) LDFLAGS="" clean | ||
125 | #include <linux/module.h> /* Needed by all modules */ | ||
126 | #include <linux/kernel.h> /* Needed for KERN_INFO */ | ||
127 | #include <linux/init.h> /* Needed for the macros */ | ||
128 | |||
129 | static int __init hello_start(void) | ||
130 | { | ||
131 | printk(KERN_INFO "Loading hello module...\n"); | ||
132 | printk(KERN_INFO "Hello, world\n"); | ||
133 | return 0; | ||
134 | } | ||
135 | |||
136 | static void __exit hello_end(void) | ||
137 | { | ||
138 | printk(KERN_INFO "Goodbye, world\n"); | ||
139 | } | ||
140 | |||
141 | module_init(hello_start); | ||
142 | module_exit(hello_end); | ||
143 | |||
144 | MODULE_LICENSE("GPL");</programlisting> | ||
145 | </listitem> | ||
146 | |||
147 | <listitem> | ||
148 | <para>Run <command>make</command> to cross-compile your kernel module | ||
149 | according to the environment set up:</para> | ||
150 | |||
151 | <programlisting>$ make</programlisting> | ||
152 | </listitem> | ||
153 | |||
154 | <listitem> | ||
155 | <para>Deploy the kernel module <literal>hello.ko</literal> to your | ||
156 | target and install/remove it:</para> | ||
157 | |||
158 | <programlisting># insmod hello.ko | ||
159 | # rmmod hello.ko | ||
160 | # dmesg | ||
161 | [...] Loading hello module... | ||
162 | [...] Hello, world | ||
163 | [...] Goodbye, world</programlisting> | ||
164 | </listitem> | ||
165 | </orderedlist> | ||
166 | </section> | ||
167 | |||
168 | <section id="deploy-artifacts"> | ||
169 | <title>Deploying your artifacts</title> | ||
170 | |||
171 | <orderedlist> | ||
172 | <listitem> | ||
173 | <para>Deploying on host</para> | ||
174 | |||
175 | <para>You can use <literal>ssh</literal> to deploy your artifacts on | ||
176 | the host target. For this you will need a network connection to the | ||
177 | target and to use <literal>scp</literal> to copy to the desired | ||
178 | location.</para> | ||
179 | </listitem> | ||
180 | |||
181 | <listitem> | ||
182 | <para>Deploying on guest</para> | ||
183 | |||
184 | <para>You can deploy your artifacts onto the guest VM running on the | ||
185 | target in two steps:</para> | ||
186 | |||
187 | <itemizedlist> | ||
188 | <listitem> | ||
189 | <para>Deploy the artifacts onto the target by using the method | ||
190 | described above or any other method.</para> | ||
191 | </listitem> | ||
192 | |||
193 | <listitem> | ||
194 | <para>On the target, copy the artifacts to the guest rootfs. For | ||
195 | this, you will need to shut down the guest VM, mount the file | ||
196 | system on the target, copy your files onto it, unmount it and then | ||
197 | restart the guest VM as usual.</para> | ||
198 | </listitem> | ||
199 | </itemizedlist> | ||
200 | </listitem> | ||
201 | </orderedlist> | ||
202 | </section> | ||
203 | </chapter> \ No newline at end of file | ||
diff --git a/doc/book-enea-linux-release-info/swcomp.mk b/doc/book-enea-nfv-access-platform-guide/swcomp.mk index 6e86ff1..4572144 100644 --- a/doc/book-enea-linux-release-info/swcomp.mk +++ b/doc/book-enea-nfv-access-platform-guide/swcomp.mk | |||
@@ -5,6 +5,6 @@ BOOK_VER ?= $(REL_VER)-dev | |||
5 | 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) | 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 | 7 | ||
8 | BOOKPACKAGES := book-enea-linux-release-info | 8 | BOOKPACKAGES := book-enea-nfv-access-platform-guide |
9 | BOOKDESC_$(BOOKPACKAGES) := "Enea Linux $(PROD_VER) Release Information" | 9 | BOOKDESC_$(BOOKPACKAGES) := "Enea NFV Access Platform $(PROD_VER) Guide" |
10 | BOOKDEFAULTCONDITION := $(DEFAULTCONDITIONS) | 10 | BOOKDEFAULTCONDITION := $(DEFAULTCONDITIONS) |
diff --git a/doc/book-enea-linux-open-source/doc/README b/doc/book-enea-nfv-access-platform-open-source/doc/README index c40a2d9..c40a2d9 100644 --- a/doc/book-enea-linux-open-source/doc/README +++ b/doc/book-enea-nfv-access-platform-open-source/doc/README | |||
diff --git a/doc/book-enea-linux-open-source/doc/about.xml b/doc/book-enea-nfv-access-platform-open-source/doc/about.xml index d4b6437..79c8375 100644 --- a/doc/book-enea-linux-open-source/doc/about.xml +++ b/doc/book-enea-nfv-access-platform-open-source/doc/about.xml | |||
@@ -5,8 +5,8 @@ | |||
5 | <title>About this Report</title> | 5 | <title>About this Report</title> |
6 | 6 | ||
7 | <para>This document contains the open source and license information | 7 | <para>This document contains the open source and license information |
8 | pertaining to packages provided with Enea Linux <xi:include | 8 | pertaining to packages provided with Enea NFV Access Platform <xi:include |
9 | href="../../book-enea-linux-release-info/doc/eltf_params_updated.xml" | 9 | href="../../book-enea-nfv-access-platform-release-info/doc/eltf_params_updated.xml" |
10 | xmlns:xi="http://www.w3.org/2001/XInclude" | 10 | xmlns:xi="http://www.w3.org/2001/XInclude" |
11 | xpointer="element(EneaLinux_REL_VER/1)" />.</para> | 11 | xpointer="element(EneaLinux_REL_VER/1)" />.</para> |
12 | </chapter> \ No newline at end of file | 12 | </chapter> \ No newline at end of file |
diff --git a/doc/book-enea-linux-open-source/doc/book.xml b/doc/book-enea-nfv-access-platform-open-source/doc/book.xml index 1fd8217..460e242 100644 --- a/doc/book-enea-linux-open-source/doc/book.xml +++ b/doc/book-enea-nfv-access-platform-open-source/doc/book.xml | |||
@@ -3,10 +3,10 @@ | |||
3 | "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [ | 3 | "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [ |
4 | <!ENTITY % local.common.attrib "xml:base CDATA #IMPLIED"> | 4 | <!ENTITY % local.common.attrib "xml:base CDATA #IMPLIED"> |
5 | ]> | 5 | ]> |
6 | <book id="book_enea_linux_open_source"> | 6 | <book id="book-enea-nfv-access-platform-open-source"> |
7 | <title><trademark class="registered">Enea</trademark> Linux Open Source Report</title> | 7 | <title><trademark class="registered">Enea</trademark> NFV Access Platform Open Source Report</title> |
8 | <subtitle>Release Version | 8 | <subtitle>Release Version |
9 | <xi:include href="../../book-enea-linux-release-info/doc/eltf_params_updated.xml" xpointer="element(EneaLinux_REL_VER/1)" | 9 | <xi:include href="../../book-enea-nfv-access-platform-release-info/doc/eltf_params_updated.xml" xpointer="element(EneaLinux_REL_VER/1)" |
10 | xmlns:xi="http://www.w3.org/2001/XInclude" /></subtitle> | 10 | xmlns:xi="http://www.w3.org/2001/XInclude" /></subtitle> |
11 | <xi:include href="../../s_docbuild/template/docsrc_common/bookinfo_userdoc.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> | 11 | <xi:include href="../../s_docbuild/template/docsrc_common/bookinfo_userdoc.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> |
12 | <xi:include href="about.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> | 12 | <xi:include href="about.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> |
diff --git a/doc/book-enea-linux-open-source/doc/licenses.xml b/doc/book-enea-nfv-access-platform-open-source/doc/licenses.xml index 07d0809..07d0809 100644 --- a/doc/book-enea-linux-open-source/doc/licenses.xml +++ b/doc/book-enea-nfv-access-platform-open-source/doc/licenses.xml | |||
diff --git a/doc/book-enea-linux-virtualization-guide/swcomp.mk b/doc/book-enea-nfv-access-platform-open-source/swcomp.mk index 8206490..6324da1 100644 --- a/doc/book-enea-linux-virtualization-guide/swcomp.mk +++ b/doc/book-enea-nfv-access-platform-open-source/swcomp.mk | |||
@@ -5,6 +5,6 @@ BOOK_VER ?= $(REL_VER)-dev | |||
5 | 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) | 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 | 7 | ||
8 | BOOKPACKAGES := book-enea-linux-virtualization-guide | 8 | BOOKPACKAGES := book-enea-nfv-access-platform-open-source |
9 | BOOKDESC_$(BOOKPACKAGES) := "Enea Linux $(PROD_VER) Virtualization Guide" | 9 | BOOKDESC_$(BOOKPACKAGES) := "Enea NFV Access Platform Open Source Report" |
10 | BOOKDEFAULTCONDITION := $(DEFAULTCONDITIONS) | 10 | BOOKDEFAULTCONDITION := $(DEFAULTCONDITIONS) |
diff --git a/doc/book-enea-linux-release-info/doc/about_release.xml b/doc/book-enea-nfv-access-platform-release-info/doc/about_release.xml index 01679f8..01679f8 100644 --- a/doc/book-enea-linux-release-info/doc/about_release.xml +++ b/doc/book-enea-nfv-access-platform-release-info/doc/about_release.xml | |||
diff --git a/doc/book-enea-linux-release-info/doc/book.xml b/doc/book-enea-nfv-access-platform-release-info/doc/book.xml index 91af443..a0adf73 100644 --- a/doc/book-enea-linux-release-info/doc/book.xml +++ b/doc/book-enea-nfv-access-platform-release-info/doc/book.xml | |||
@@ -2,8 +2,8 @@ | |||
2 | <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" | 2 | <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" |
3 | "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [ | 3 | "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [ |
4 | ]> | 4 | ]> |
5 | <book id="book_enea_linux_release_info"> | 5 | <book id="book_enea_nfv_access_platform_release_info"> |
6 | <title><trademark class="registered">Enea</trademark> Linux Release Information</title> | 6 | <title><trademark class="registered">Enea</trademark> NFV Access Platform Release Information</title> |
7 | <subtitle>Release Version | 7 | <subtitle>Release Version |
8 | <xi:include href="eltf_params_updated.xml" xpointer="element(EneaLinux_REL_VER/1)" | 8 | <xi:include href="eltf_params_updated.xml" xpointer="element(EneaLinux_REL_VER/1)" |
9 | xmlns:xi="http://www.w3.org/2001/XInclude" /></subtitle> | 9 | xmlns:xi="http://www.w3.org/2001/XInclude" /></subtitle> |
diff --git a/doc/book-enea-linux-release-info/doc/build_boot_template.xml b/doc/book-enea-nfv-access-platform-release-info/doc/build_boot_template.xml index e39dd81..e39dd81 100644 --- a/doc/book-enea-linux-release-info/doc/build_boot_template.xml +++ b/doc/book-enea-nfv-access-platform-release-info/doc/build_boot_template.xml | |||
diff --git a/doc/book-enea-linux-virtualization-guide/doc/eltf_params_template.xml b/doc/book-enea-nfv-access-platform-release-info/doc/eltf_params_template.xml index 278ad71..278ad71 100644 --- a/doc/book-enea-linux-virtualization-guide/doc/eltf_params_template.xml +++ b/doc/book-enea-nfv-access-platform-release-info/doc/eltf_params_template.xml | |||
diff --git a/doc/book-enea-linux-release-info/doc/eltf_params_updated.xml b/doc/book-enea-nfv-access-platform-release-info/doc/eltf_params_updated.xml index 294e6c4..40507bb 100644 --- a/doc/book-enea-linux-release-info/doc/eltf_params_updated.xml +++ b/doc/book-enea-nfv-access-platform-release-info/doc/eltf_params_updated.xml | |||
@@ -42,7 +42,7 @@ export PATH=~/bin:$PATH</programlisting></para> | |||
42 | correct also compared to the "previous" REL VER in pardoc-distro.xml | 42 | correct also compared to the "previous" REL VER in pardoc-distro.xml |
43 | "prev_baseline".</bridgehead> | 43 | "prev_baseline".</bridgehead> |
44 | 44 | ||
45 | <para id="EneaLinux_REL_VER"><phrase>6</phrase></para> | 45 | <para id="EneaLinux_REL_VER"><phrase>1.0</phrase></para> |
46 | 46 | ||
47 | <para id="Yocto_VER"><phrase>2.1</phrase></para> | 47 | <para id="Yocto_VER"><phrase>2.1</phrase></para> |
48 | 48 | ||
diff --git a/doc/book-enea-linux-release-info/doc/eltf_params_updated_template_how_to_use.txt b/doc/book-enea-nfv-access-platform-release-info/doc/eltf_params_updated_template_how_to_use.txt index a75acfc..a75acfc 100644 --- a/doc/book-enea-linux-release-info/doc/eltf_params_updated_template_how_to_use.txt +++ b/doc/book-enea-nfv-access-platform-release-info/doc/eltf_params_updated_template_how_to_use.txt | |||
diff --git a/doc/book-enea-linux-release-info/doc/getting_enea_linux.xml b/doc/book-enea-nfv-access-platform-release-info/doc/getting_enea_linux.xml index 075ade5..075ade5 100644 --- a/doc/book-enea-linux-release-info/doc/getting_enea_linux.xml +++ b/doc/book-enea-nfv-access-platform-release-info/doc/getting_enea_linux.xml | |||
diff --git a/doc/book-enea-linux-release-info/doc/jiraissues_override.xml b/doc/book-enea-nfv-access-platform-release-info/doc/jiraissues_override.xml index 7282d0f..7282d0f 100644 --- a/doc/book-enea-linux-release-info/doc/jiraissues_override.xml +++ b/doc/book-enea-nfv-access-platform-release-info/doc/jiraissues_override.xml | |||
diff --git a/doc/book-enea-linux-release-info/doc/known_bugs_and_limitations.xml b/doc/book-enea-nfv-access-platform-release-info/doc/known_bugs_and_limitations.xml index 173046b..173046b 100644 --- a/doc/book-enea-linux-release-info/doc/known_bugs_and_limitations.xml +++ b/doc/book-enea-nfv-access-platform-release-info/doc/known_bugs_and_limitations.xml | |||
diff --git a/doc/book-enea-linux-release-info/doc/main_changes.xml b/doc/book-enea-nfv-access-platform-release-info/doc/main_changes.xml index 115acb5..115acb5 100644 --- a/doc/book-enea-linux-release-info/doc/main_changes.xml +++ b/doc/book-enea-nfv-access-platform-release-info/doc/main_changes.xml | |||
diff --git a/doc/book-enea-linux-release-info/doc/prerequisites.xml b/doc/book-enea-nfv-access-platform-release-info/doc/prerequisites.xml index 9c5aa95..9c5aa95 100644 --- a/doc/book-enea-linux-release-info/doc/prerequisites.xml +++ b/doc/book-enea-nfv-access-platform-release-info/doc/prerequisites.xml | |||
diff --git a/doc/book-enea-linux-release-info/doc/system_requirements.xml b/doc/book-enea-nfv-access-platform-release-info/doc/system_requirements.xml index e94d012..e94d012 100644 --- a/doc/book-enea-linux-release-info/doc/system_requirements.xml +++ b/doc/book-enea-nfv-access-platform-release-info/doc/system_requirements.xml | |||
diff --git a/doc/book-enea-linux-open-source/swcomp.mk b/doc/book-enea-nfv-access-platform-release-info/swcomp.mk index d978b48..c246cb2 100644 --- a/doc/book-enea-linux-open-source/swcomp.mk +++ b/doc/book-enea-nfv-access-platform-release-info/swcomp.mk | |||
@@ -5,6 +5,6 @@ BOOK_VER ?= $(REL_VER)-dev | |||
5 | 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) | 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 | 7 | ||
8 | BOOKPACKAGES := book-enea-linux-open-source | 8 | BOOKPACKAGES := book-enea-nfv-access-platform-release-info |
9 | BOOKDESC_$(BOOKPACKAGES) := "Enea Linux Open Source Report" | 9 | BOOKDESC_$(BOOKPACKAGES) := "Enea NFV Access Platform $(PROD_VER) Release Information" |
10 | BOOKDEFAULTCONDITION := $(DEFAULTCONDITIONS) | 10 | BOOKDEFAULTCONDITION := $(DEFAULTCONDITIONS) |
diff --git a/doc/manifest_conf.mk b/doc/manifest_conf.mk index 2da4a7a..92e395c 100644 --- a/doc/manifest_conf.mk +++ b/doc/manifest_conf.mk | |||
@@ -3,6 +3,6 @@ | |||
3 | # The values are shown in the release info | 3 | # The values are shown in the release info |
4 | # The manifest is used to fetch information into the release info from the distro files | 4 | # The manifest is used to fetch information into the release info from the distro files |
5 | #MANIFESTHASH ?= 0d0f06384afa65eaae4b170e234ee5a813edf44d | 5 | #MANIFESTHASH ?= 0d0f06384afa65eaae4b170e234ee5a813edf44d |
6 | #change the above value later to refs/tags/ELnnn (?) | 6 | #change the above value later to refs/tags/ELnnn (?) |
7 | MANIFESTURL := git@git.enea.com:linux/manifests/el_manifests-virtualization.git | 7 | MANIFESTURL := git@git.enea.com:linux/manifests/el_manifests-virtualization.git |
8 | PROFILE_NAME := Virtualization | 8 | PROFILE_NAME := Enea NFV Access Platform |