diff options
author | Martin Borg <martin.borg@enea.com> | 2019-08-30 14:07:10 +0200 |
---|---|---|
committer | Adrian Dudau <Adrian.Dudau@enea.com> | 2019-09-02 14:40:22 +0200 |
commit | 802a6c3c0f26327f014e097dc205f0916b91a8a0 (patch) | |
tree | 899739de6ca11257ccc1c54a3e2e11119b57b664 | |
parent | e68d90f767be7105cdba9538e341d0782f8aafbe (diff) | |
download | el_releases-nfv-access-802a6c3c0f26327f014e097dc205f0916b91a8a0.tar.gz |
Example Use-cases: Update Enea VNF example
- Replace bundle with VNF image and update onboarding/instantiation instructions
- Add cloud-init configurations
- Remove descriptions of how to navigate the uCPE manager GUI
- Remove images that are incorrect
Change-Id: I6e8d05ae37a360e6957648049b1469a439df6981
Signed-off-by: Martin Borg <martin.borg@enea.com>
-rw-r--r-- | doc/book-enea-nfv-access-example-usecases/doc/enea_vnf_examples.xml | 252 |
1 files changed, 141 insertions, 111 deletions
diff --git a/doc/book-enea-nfv-access-example-usecases/doc/enea_vnf_examples.xml b/doc/book-enea-nfv-access-example-usecases/doc/enea_vnf_examples.xml index 8f11107..3cc5a18 100644 --- a/doc/book-enea-nfv-access-example-usecases/doc/enea_vnf_examples.xml +++ b/doc/book-enea-nfv-access-example-usecases/doc/enea_vnf_examples.xml | |||
@@ -1,30 +1,40 @@ | |||
1 | <?xml version="1.0" encoding="ISO-8859-1"?> | 1 | <?xml version="1.0" encoding="ISO-8859-1"?> |
2 | <chapter id="enea_vnf_examples"> | 2 | <chapter id="enea_vnf_examples"> |
3 | <title>Enea VNF Example Use-cases</title> | 3 | <title>Enea NFV Access VNF Example Use-cases</title> |
4 | |||
5 | <para>Enea NFV Access is a complete NFV Infrastructure (NFVI) platform | ||
6 | designed for deployment on white box uCPEs at the customer premise, and | ||
7 | optimized for common Virtual Customer Premises Equipment (vCPE) and SD-WAN | ||
8 | use cases.</para> | ||
9 | 4 | ||
10 | <section id="prere_enea_vnf"> | 5 | <section id="prere_enea_vnf"> |
11 | <title>Prerequisites</title> | 6 | <title>Prerequisites</title> |
12 | 7 | ||
13 | <para>The following file(s) are needed for this example use-case: | 8 | <para>The following files are needed for this example use-case:</para> |
14 | <literal>enea-nfv-access-vnf-qemux86-64.qcow2</literal>. This image is | 9 | |
15 | provided with your release.</para> | 10 | <remark>FIXME: These filenames may need to be updated</remark> |
11 | |||
12 | <itemizedlist> | ||
13 | <listitem> | ||
14 | <para><literal>enea-nfv-access-vnf-qemux86-64.wic.qcow2</literal></para> | ||
15 | </listitem> | ||
16 | |||
17 | <listitem> | ||
18 | <para><literal>enea-vnf-testpmd-fwd.cfg</literal></para> | ||
19 | </listitem> | ||
20 | |||
21 | <listitem> | ||
22 | <para><literal>enea-vnf-testpmd-term.cfg</literal></para> | ||
23 | </listitem> | ||
24 | </itemizedlist> | ||
16 | </section> | 25 | </section> |
17 | 26 | ||
18 | <section id="enea_vnf"> | 27 | <section id="enea_vnf"> |
19 | <title>TestPMD VNF</title> | 28 | <title>TestPMD VNF</title> |
20 | 29 | ||
21 | <para>In this use-case, <literal>uCPE device 1</literal> will run pktgen | 30 | <para>In this use-case, uCPE device 1 runs the pktgen DPDK application to |
22 | (the DPDK application) and <literal>uCPE device 2</literal> will onboard | 31 | generate traffic and uCPE device 2 runs two Enea NFV Access VNFs. One VNF |
23 | and instantiate two VNFs. One VNF will run <literal>testpmd_fwd</literal>, | 32 | runs the TestPMD DPDK application forwarding traffic, and the other runs |
24 | forwarding traffic, and the other will run <literal>testpmd_term</literal> | 33 | the TestPMD in order to terminate traffic.</para> |
25 | which will terminate traffic.</para> | ||
26 | 34 | ||
27 | <figure> | 35 | <remark>FIXME: New image needed</remark> |
36 | |||
37 | <figure condition="hidden"> | ||
28 | <title>Enea TestPMD VNF Overview</title> | 38 | <title>Enea TestPMD VNF Overview</title> |
29 | 39 | ||
30 | <mediaobject> | 40 | <mediaobject> |
@@ -38,164 +48,183 @@ | |||
38 | <section id="enea_vnf_setup"> | 48 | <section id="enea_vnf_setup"> |
39 | <title>Use-case Setup</title> | 49 | <title>Use-case Setup</title> |
40 | 50 | ||
41 | <para><emphasis role="bold">Configuring Network Interfaces on uCPE | 51 | <para><emphasis role="bold">Network Configuration:</emphasis></para> |
42 | devices:</emphasis></para> | ||
43 | 52 | ||
44 | <orderedlist> | 53 | <orderedlist> |
45 | <listitem> | 54 | <listitem> |
46 | <para>Bind the host interfaces to the DPDK by selecting | 55 | <para>Select uCPE device 1, access <literal>Configuration</literal>, |
47 | <literal>uCPE device 1</literal> first, then accessing | 56 | add the network interface that will be used and configure it for |
48 | <literal>Configuration</literal> -> | 57 | DPDK. Note the PCI address of the interface, it will be used later |
49 | <literal>OpenVSwitch</literal> -> <literal>Host | 58 | to run the pktgen application.</para> |
50 | Interfaces</literal> -> <literal>Add</literal>.</para> | ||
51 | </listitem> | 59 | </listitem> |
52 | 60 | ||
53 | <listitem> | 61 | <listitem> |
54 | <para>Select the network interface that will be used to connect to | 62 | <para>Select uCPE device 2, access <literal>Configuration</literal>, |
55 | the second uCPE device and configure it for the DPDK.</para> | 63 | add the network interface that will be used and configure it for |
64 | DPDK.</para> | ||
56 | </listitem> | 65 | </listitem> |
57 | 66 | ||
58 | <listitem> | 67 | <listitem> |
59 | <para>Select the <literal>Create</literal> button to send the | 68 | <para>Create an OVS bridge on uCPE device 2 and attach the DPDK |
60 | configuration to <literal>uCPE device 1</literal>.</para> | 69 | interface.</para> |
61 | </listitem> | 70 | </listitem> |
71 | </orderedlist> | ||
62 | 72 | ||
73 | <para><emphasis role="bold">Onboarding the VNF:</emphasis></para> | ||
74 | |||
75 | <para>Onboard the Enea NFV Access VNF by filling the required fields | ||
76 | with the following values:</para> | ||
77 | |||
78 | <itemizedlist spacing="compact"> | ||
63 | <listitem> | 79 | <listitem> |
64 | <para>Repeat these same steps on <literal>uCPE device | 80 | <para><emphasis role="bold">VM Image File</emphasis>: Provide the |
65 | 2</literal>.</para> | 81 | path to the Enea NFV Access VNF qcow2 image.</para> |
66 | </listitem> | 82 | </listitem> |
67 | 83 | ||
68 | <listitem> | 84 | <listitem> |
69 | <para>Click the <literal>Add</literal> button from the Bridges | 85 | <para><emphasis role="bold">Memory in MB</emphasis>: 2048</para> |
70 | tab.</para> | ||
71 | </listitem> | 86 | </listitem> |
72 | 87 | ||
73 | <listitem> | 88 | <listitem> |
74 | <para>Create an Open vSwitch bridge (<literal>ovsbr0</literal>) on | 89 | <para><emphasis role="bold">Num of CPUs</emphasis>: 2</para> |
75 | <literal>uCPE device 1</literal> that uses one DPDK interface, by | ||
76 | selecting <literal>uCPE device 1</literal>, then: | ||
77 | <literal>Configuration</literal> -><literal>OpenVSwitch</literal> | ||
78 | -><literal>Bridges</literal>.</para> | ||
79 | </listitem> | 90 | </listitem> |
80 | </orderedlist> | ||
81 | 91 | ||
82 | <para><emphasis role="bold">Onboarding the VNF:</emphasis></para> | 92 | <listitem> |
93 | <para><emphasis role="bold">Storage in GB</emphasis>: 10</para> | ||
94 | </listitem> | ||
83 | 95 | ||
84 | <orderedlist> | ||
85 | <listitem> | 96 | <listitem> |
86 | <para>Select <literal>VNF</literal> | 97 | <para><emphasis role="bold">Interfaces</emphasis>: Add 1 |
87 | -><literal>Descriptor</literal> -> | 98 | interface.</para> |
88 | <literal>On-board</literal>.</para> | ||
89 | </listitem> | 99 | </listitem> |
90 | 100 | ||
91 | <listitem> | 101 | <listitem> |
92 | <para>Select the <literal>VM Image</literal> radio button.</para> | 102 | <para><emphasis role="bold">Cloud-init Datasource</emphasis>: |
103 | NoCloud</para> | ||
93 | </listitem> | 104 | </listitem> |
94 | 105 | ||
95 | <listitem> | 106 | <listitem> |
96 | <para>Provide the path to the qcow image by selecting | 107 | <para><emphasis role="bold">Cloud-init Disk Type</emphasis>: |
97 | <literal>Browse </literal> from the <literal>VM image file</literal> | 108 | disk</para> |
98 | option.</para> | ||
99 | </listitem> | 109 | </listitem> |
110 | </itemizedlist> | ||
100 | 111 | ||
112 | <para><emphasis role="bold">Instantiating the VNFs:</emphasis></para> | ||
113 | |||
114 | <orderedlist> | ||
101 | <listitem> | 115 | <listitem> |
102 | <para>Fill the required fields below and press | 116 | <para>Instantiate the Enea NFV Access TestPMD forwarding VNF on uCPE |
103 | <literal>Onboard</literal>:</para> | 117 | Device 2 by filling the required fields with the following |
118 | values:</para> | ||
104 | 119 | ||
105 | <itemizedlist spacing="compact"> | 120 | <itemizedlist spacing="compact"> |
106 | <listitem> | 121 | <listitem> |
107 | <para><emphasis role="bold">Memory in MB</emphasis>: 1024</para> | 122 | <para><emphasis role="bold">Name</emphasis>: testpmd_fwd</para> |
108 | </listitem> | 123 | </listitem> |
109 | 124 | ||
110 | <listitem> | 125 | <listitem> |
111 | <para><emphasis role="bold">Nr. of CPUs</emphasis>: 1</para> | 126 | <para><emphasis role="bold">VNF Type</emphasis>: Select Enea NFV |
127 | Access VNF.</para> | ||
112 | </listitem> | 128 | </listitem> |
113 | 129 | ||
114 | <listitem> | 130 | <listitem> |
115 | <para><emphasis role="bold">Storage in GB</emphasis>: 10</para> | 131 | <para><emphasis role="bold">uCPE Device</emphasis>: Select uCPE |
132 | device 2.</para> | ||
116 | </listitem> | 133 | </listitem> |
117 | </itemizedlist> | ||
118 | </listitem> | ||
119 | </orderedlist> | ||
120 | 134 | ||
121 | <para><emphasis role="bold">Instantiating two VNFs on uCPE device | 135 | <listitem> |
122 | 2:</emphasis></para> | 136 | <para><emphasis role="bold">Cloud Init File</emphasis>: Provide |
137 | the path to the Enea VNF TestPMD forwarding cloud-init | ||
138 | file.</para> | ||
139 | </listitem> | ||
123 | 140 | ||
124 | <orderedlist> | 141 | <listitem> |
125 | <listitem> | 142 | <para><emphasis role="bold">Interfaces</emphasis>: Set the |
126 | <para>Select uCPE device 2, then access <literal>VNF</literal> -> | 143 | interface type to <literal>DPDK</literal> and select the OVS |
127 | <literal>Instances</literal> -> <literal>Add</literal>.</para> | 144 | bridge created above.</para> |
145 | </listitem> | ||
146 | </itemizedlist> | ||
128 | </listitem> | 147 | </listitem> |
129 | 148 | ||
130 | <listitem> | 149 | <listitem> |
131 | <para>Fill-in the required fields and click | 150 | <para>Instantiate the Enea NFV Access TestPMD termination VNF on |
132 | <literal>Create</literal>.</para> | 151 | uCPE Device 2 by filling the required fields with the following |
133 | </listitem> | 152 | values:</para> |
134 | 153 | ||
135 | <listitem> | 154 | <itemizedlist spacing="compact"> |
136 | <para>Configure VNF 1 to forward traffic.</para> | 155 | <listitem> |
137 | </listitem> | 156 | <para><emphasis role="bold">Name</emphasis>: testpmd_term</para> |
157 | </listitem> | ||
138 | 158 | ||
139 | <listitem> | 159 | <listitem> |
140 | <para>Configure VNF 2 to terminate traffic.</para> | 160 | <para><emphasis role="bold">VNF Type</emphasis>: Select Enea NFV |
141 | </listitem> | 161 | Access VNF.</para> |
162 | </listitem> | ||
142 | 163 | ||
143 | <listitem> | 164 | <listitem> |
144 | <para>Add Open vSwitch flows to control this traffic:</para> | 165 | <para><emphasis role="bold">uCPE Device</emphasis>: Select uCPE |
166 | device 2.</para> | ||
167 | </listitem> | ||
145 | 168 | ||
146 | <figure> | 169 | <listitem> |
147 | <title>Configuring the FWD flow</title> | 170 | <para><emphasis role="bold">Cloud Init File</emphasis>: Provide |
171 | the path to the Enea VNF TestPMD termination cloud-init | ||
172 | file.</para> | ||
173 | </listitem> | ||
148 | 174 | ||
149 | <mediaobject> | 175 | <listitem> |
150 | <imageobject> | 176 | <para><emphasis role="bold">Interfaces</emphasis>: Set the |
151 | <imagedata align="center" fileref="images/flow_fwd.png" | 177 | interface type to <literal>DPDK</literal> and select the OVS |
152 | scale="90" /> | 178 | bridge created above.</para> |
153 | </imageobject> | 179 | </listitem> |
154 | </mediaobject> | 180 | </itemizedlist> |
155 | </figure> | 181 | </listitem> |
182 | </orderedlist> | ||
156 | 183 | ||
157 | <figure> | 184 | <para><emphasis role="bold">Creating OVS flow rules:</emphasis></para> |
158 | <title>Configuring the TERM flow</title> | ||
159 | 185 | ||
160 | <mediaobject> | 186 | <para>Select uCPE device 2, access <literal>Configuration</literal>, |
161 | <imageobject> | 187 | open the OVS bridge and add two flow rules:</para> |
162 | <imagedata align="center" fileref="images/flow_term.png" | ||
163 | scale="90" /> | ||
164 | </imageobject> | ||
165 | </mediaobject> | ||
166 | </figure> | ||
167 | </listitem> | ||
168 | 188 | ||
189 | <itemizedlist> | ||
169 | <listitem> | 190 | <listitem> |
170 | <para>Start pktgen on uCPE device 1. Connect to the device by | 191 | <para>Source: DPDK interface, Target: testpmd_fwd</para> |
171 | selecting it first, then access <literal>SSH</literal> -> | 192 | </listitem> |
172 | <literal>user</literal> (root) and perform the following:</para> | ||
173 | |||
174 | <programlisting>cd /usr/share/apps/pktgen/ | ||
175 | ./pktgen -c 0x7 -n 4 --proc-type auto --socket-mem 256 -w 0000:05:00.3 -- \ | ||
176 | -P -m "[1:2].0" | ||
177 | Pktgen:/> start 0</programlisting> | ||
178 | 193 | ||
179 | <note> | 194 | <listitem> |
180 | <para>The PCI address <0000:05:00.3> used in this example | 195 | <para>Source: testpmd_fwd, Target: testpmd_term</para> |
181 | varies depending on the uCPE device. To determine the exact PCI | ||
182 | address used, look in the uCPE device specific Network | ||
183 | configuration.</para> | ||
184 | </note> | ||
185 | </listitem> | 196 | </listitem> |
186 | </orderedlist> | 197 | </itemizedlist> |
187 | </section> | 198 | </section> |
188 | 199 | ||
189 | <section id="test_ena_vnf"> | 200 | <section id="test_ena_vnf"> |
190 | <title>Testing the Use-case</title> | 201 | <title>Testing the Use-case</title> |
191 | 202 | ||
192 | <para>Connect to the forwarder VNF in order to check the traffic | 203 | <orderedlist> |
193 | statistics, by selecting the uCPE device first, then accessing | 204 | <listitem> |
194 | <literal>SSH</literal> -> <literal>user</literal> (root):</para> | 205 | <para>SSH to uCPE device 1 (Username: root) and start the pktgen |
206 | application:</para> | ||
207 | |||
208 | <programlisting>cd /usr/share/apps/pktgen/ | ||
209 | ./pktgen -c 0x7 -n 4 --proc-type auto --socket-mem 256 -w 0000:01:00.0 -- \ | ||
210 | -P -m "[1:2].0" | ||
211 | |||
212 | Pktgen:/> start 0</programlisting> | ||
213 | |||
214 | <note> | ||
215 | <para>Replace 0000:01:00.0 with the actual PCI address of the network | ||
216 | interface used on uCPE device 1.</para> | ||
217 | </note></listitem> | ||
195 | 218 | ||
196 | <programlisting>Virsh list | 219 | <listitem><para>SSH to uCPE device 2 and connect to the TestPMD forwarding VNF |
197 | Virsh console 1 | 220 | console:</para> |
198 | # Qemux86-64 login: root | 221 | |
222 | <programlisting>virsh list | ||
223 | virsh console <id of testpmd fwd></programlisting></listitem> | ||
224 | |||
225 | <listitem><para>Check the TestPMD traffic forwarding statistics:</para> | ||
226 | |||
227 | <programlisting># qemux86-64 login: root | ||
199 | tail -f /var/log/testpmd-out</programlisting> | 228 | tail -f /var/log/testpmd-out</programlisting> |
200 | 229 | ||
201 | <figure> | 230 | <figure> |
@@ -207,7 +236,8 @@ tail -f /var/log/testpmd-out</programlisting> | |||
207 | fileref="images/connection_information.png" scale="70" /> | 236 | fileref="images/connection_information.png" scale="70" /> |
208 | </imageobject> | 237 | </imageobject> |
209 | </mediaobject> | 238 | </mediaobject> |
210 | </figure> | 239 | </figure></listitem> |
240 | </orderedlist> | ||
211 | </section> | 241 | </section> |
212 | 242 | ||
213 | <section condition="hidden" id="vnf_pci"> | 243 | <section condition="hidden" id="vnf_pci"> |