summaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/book-enea-nfv-access-example-usecases/doc/clav_vnf_examples.xml374
1 files changed, 206 insertions, 168 deletions
diff --git a/doc/book-enea-nfv-access-example-usecases/doc/clav_vnf_examples.xml b/doc/book-enea-nfv-access-example-usecases/doc/clav_vnf_examples.xml
index f8ac57d..a4f011f 100644
--- a/doc/book-enea-nfv-access-example-usecases/doc/clav_vnf_examples.xml
+++ b/doc/book-enea-nfv-access-example-usecases/doc/clav_vnf_examples.xml
@@ -8,34 +8,44 @@
8 <section id="prere_clav_vnf"> 8 <section id="prere_clav_vnf">
9 <title>Prerequisites</title> 9 <title>Prerequisites</title>
10 10
11 <para>The following files are needed for this example use case:</para> 11 <para>The following files provided with your Enea NFV Access release are
12 needed for this example use case: <remark>FIXME - These filenames may need
13 to be updated</remark></para>
12 14
13 <itemizedlist> 15 <itemizedlist>
14 <listitem> 16 <listitem>
15 <para><literal>enea-nfv-access-vnf-qemux86-64.qcow2</literal>. This 17 <para><literal>enea-nfv-access-vnf-qemux86-64.wic.qcow2</literal></para>
16 image is provided with your release.</para>
17 </listitem> 18 </listitem>
18 19
19 <listitem> 20 <listitem>
20 <para><literal>clavister-cos-stream-&lt;version&gt;-virtual-x64-generic.qcow2</literal>. 21 <para><literal>clavister-cos-stream-&lt;version&gt;-virtual-x64-generic.qcow2</literal></para>
21 This image is provided with your release.</para>
22 </listitem> 22 </listitem>
23 23
24 <listitem> 24 <listitem>
25 <para>License for the Clavister VNF (needed as Cloud-Init content in 25 <para><literal>clavister_cloudinit.cfg</literal></para>
26 the Cloud-Init tab). This file is available through the VNF 26 </listitem>
27 provider.</para> 27
28 <listitem>
29 <para><literal>enea-vnf-iperf-client.cfg</literal></para>
30 </listitem>
31
32 <listitem>
33 <para><literal>enea-vnf-iperf-server.cfg</literal></para>
28 </listitem> 34 </listitem>
29 </itemizedlist> 35 </itemizedlist>
30 </section> 36 </section>
31 37
32 <section id="clav_vnf"> 38 <section id="clav_vnf">
33 <title>Clavister VNF using Open vSwitch Bridge</title> 39 <title>Clavister VNF using an Open vSwitch Bridge</title>
34 40
35 <para>In this use-case, uCPE device 1 will run the Clavister VNF and an 41 <para>In this use-case, uCPE device 1 runs the Clavister VNF, while uCPE
36 Open vSwitch bridge, while uCPE device 2 will run two iPerf VNFs.</para> 42 device 2 runs two Enea NFV Access VNFs with iPerf client and server
43 applications. The uCPE devices are connected using OVS-DPDK bridges.
44 </para>
37 45
38 <figure> 46 <remark>FIXME: New image needed</remark>
47
48 <figure condition="hidden">
39 <title>Clavister VNF using Open vSwitch Bridge Overview</title> 49 <title>Clavister VNF using Open vSwitch Bridge Overview</title>
40 50
41 <mediaobject> 51 <mediaobject>
@@ -49,38 +59,21 @@
49 <section id="clav_vnf_setup_1"> 59 <section id="clav_vnf_setup_1">
50 <title>Use-case Setup</title> 60 <title>Use-case Setup</title>
51 61
52 <para><emphasis role="bold">Configuring Network Interfaces on uCPE 62 <para><emphasis role="bold">Network Configuration:</emphasis></para>
53 devices:</emphasis></para>
54 63
55 <orderedlist> 64 <orderedlist>
56 <listitem> 65 <listitem>
57 <para>From the uCPE Manager select uCPE device 1, then access 66 <para>Select uCPE device 1, access <literal>Configuration</literal>, add the network
58 <literal>Configuration</literal> -&gt; 67 interface that will be used and configure it for DPDK.</para>
59 <literal>OpenVSwitch</literal> -&gt; <literal>Host
60 Interfaces</literal> -&gt; <literal>Add.</literal></para>
61 </listitem>
62
63 <listitem>
64 <para>Select the network interface that will be used to connect to
65 uCPE device 2. Configure it for DPDK, and click
66 <literal>Create</literal> to send the configuration to that uCPE
67 device.</para>
68 </listitem>
69
70 <listitem>
71 <para>Create an Open vSwitch bridge (<literal>ovsbr0</literal>) with
72 one DPDK interface, by selecting the <literal>Add</literal> button
73 from the <literal>Bridges</literal> tab.</para>
74 </listitem> 68 </listitem>
75 69
76 <listitem> 70 <listitem>
77 <para>Once the bridge creation popup appears, fill-in the required 71 <para>Create an OVS bridge and attach the DPDK network
78 fields and add the physical interface.</para> 72 interface.</para>
79 </listitem> 73 </listitem>
80 74
81 <listitem> 75 <listitem>
82 <para>Repeat the steps above on uCPE device 2, using one DPDK 76 <para>Repeat the steps above for uCPE device 2.</para>
83 interface and creating another OVS bridge.</para>
84 </listitem> 77 </listitem>
85 </orderedlist> 78 </orderedlist>
86 79
@@ -88,103 +81,200 @@
88 81
89 <orderedlist> 82 <orderedlist>
90 <listitem> 83 <listitem>
91 <para>Select <literal>VNF</literal> -&gt; 84 <para>Onboard the Clavister VNF by filling the required fields with the following
92 <literal>Descriptor</literal> -&gt; 85 values:</para>
93 <literal>On-board</literal>.</para>
94 </listitem>
95
96 <listitem>
97 <para>Select the <literal>VM Image</literal> radio button.</para>
98 </listitem>
99
100 <listitem>
101 <para>Provide the path to the qcow image by selecting
102 <literal>Browse</literal> from <literal>VM image file</literal>
103 option.</para>
104 </listitem>
105
106 <listitem>
107 <para>Fill the required fields below and press
108 <literal>Onboard</literal>:</para>
109 86
110 <itemizedlist spacing="compact"> 87 <itemizedlist spacing="compact">
111 <listitem> 88 <listitem>
112 <para><emphasis role="bold">Memory in MB</emphasis>: 1024</para> 89 <para><emphasis role="bold">VM Image File</emphasis>: Provide
90 the path to the Clavister VNF qcow2 image</para>
113 </listitem> 91 </listitem>
114 92
115 <listitem> 93 <listitem>
116 <para><emphasis role="bold">Nr. of CPUs</emphasis>: 1</para> 94 <para><emphasis role="bold">Memory in MB</emphasis>: 1024</para>
117 </listitem> 95 </listitem>
118 96
119 <listitem> 97 <listitem>
120 <para><emphasis role="bold">Storage in GB</emphasis>: 10</para> 98 <para><emphasis role="bold">Num of CPUs</emphasis>: 4</para>
121 </listitem> 99 </listitem>
122 </itemizedlist>
123 </listitem>
124 </orderedlist>
125
126 <para><emphasis role="bold">Instantiating the VNFs:</emphasis></para>
127
128 <itemizedlist>
129 <listitem>
130 <para><emphasis role="bold">A) Instantiate the Clavister VNF on uCPE
131 device 1:</emphasis></para>
132 100
133 <orderedlist>
134 <listitem> 101 <listitem>
135 <para>Select uCPE device 1, then from the top toolbar: 102 <para><emphasis role="bold">Storage in GB</emphasis>: 20</para>
136 <literal>VNF</literal> -&gt; <literal>Instances</literal> -&gt;
137 <literal>Add</literal>.</para>
138 </listitem> 103 </listitem>
139 104
140 <listitem> 105 <listitem>
141 <para>Fill in the required information about the Clavister VNF, 106 <para><emphasis role="bold">Interfaces</emphasis>: Add 2
142 (the default network configuration can be used) and select 107 interfaces</para>
143 <literal>Create</literal>.</para>
144 </listitem> 108 </listitem>
145 </orderedlist>
146 </listitem>
147 109
148 <listitem>
149 <para><emphasis role="bold">B) Instantiate two Enea VNFs (one as the
150 client and one as the server) on uCPE device 2:</emphasis></para>
151
152 <orderedlist>
153 <listitem> 110 <listitem>
154 <para>Select uCPE device 2, then from the top toolbar: 111 <para><emphasis role="bold">Cloud-init Datasource</emphasis>:
155 <literal>VNF</literal> -&gt; <literal>Instances</literal> -&gt; 112 ConfigDrive</para>
156 <literal>Add</literal>.</para>
157 </listitem> 113 </listitem>
158 114
159 <listitem> 115 <listitem>
160 <para>In the new <literal>VNF Instance</literal> window, select 116 <para><emphasis role="bold">Cloud-init Disk Type</emphasis>:
161 the Enea VNF from the dropdown menu, configure it to act as a 117 disk</para>
162 server by unchecking the <literal>Client mode IPerf</literal>
163 box, and then click <literal>Create</literal>.</para>
164 </listitem> 118 </listitem>
119 </itemizedlist>
120 </listitem>
165 121
166 <listitem> 122 <listitem>
167 <para>Select <literal>Add</literal> once more, enable the 123 <para>Onboard the Enea VNF by filling the required fields with the following values:
168 <literal>Client mode IPerf</literal> checkbox this time, and 124 <itemizedlist spacing="compact">
169 click <literal>Create</literal> to instantiate the second 125 <listitem>
170 <literal>iPerf VNF</literal> as a client, and to run it in 126 <para><emphasis role="bold">VM Image File</emphasis>: Provide
171 client mode.</para> 127 the path to the Enea NFV Access VNF qcow2 image</para>
172 </listitem> 128 </listitem>
173 </orderedlist> 129
130 <listitem>
131 <para><emphasis role="bold">Memory in MB</emphasis>:
132 2048</para>
133 </listitem>
134
135 <listitem>
136 <para><emphasis role="bold">Num of CPUs</emphasis>: 2</para>
137 </listitem>
138
139 <listitem>
140 <para><emphasis role="bold">Storage in GB</emphasis>:
141 10</para>
142 </listitem>
143
144 <listitem>
145 <para><emphasis role="bold">Interfaces</emphasis>: Add 1
146 interface</para>
147 </listitem>
148
149 <listitem>
150 <para><emphasis role="bold">Cloud-init Datasource</emphasis>:
151 NoCloud</para>
152 </listitem>
153
154 <listitem>
155 <para><emphasis role="bold">Cloud-init Disk Type</emphasis>:
156 disk</para>
157 </listitem>
158 </itemizedlist></para>
174 </listitem> 159 </listitem>
175 </itemizedlist> 160 </orderedlist>
161
162 <para><emphasis role="bold">Instantiating the VNFs:</emphasis></para>
163
164 <para><orderedlist>
165 <listitem>
166 <para>Instantiate the Clavister VNF on uCPE device 1 using the
167 required fields below:</para>
168
169 <itemizedlist spacing="compact">
170 <listitem>
171 <para><emphasis role="bold">Name</emphasis>: clavister</para>
172 </listitem>
173
174 <listitem>
175 <para><emphasis role="bold">VNF Type</emphasis>: Select
176 Clavister VNF</para>
177 </listitem>
178
179 <listitem>
180 <para><emphasis role="bold">uCPE Device</emphasis>: Select
181 uCPE device 1</para>
182 </listitem>
183
184 <listitem>
185 <para><emphasis role="bold">Cloud Init File</emphasis>:
186 Provide the path to the Clavister cloud-init file.</para>
187 </listitem>
188
189 <listitem>
190 <para><emphasis role="bold">Interfaces</emphasis>: Set the interface type
191 to <literal>DPDK</literal> and select the OVS bridge created
192 above, for both interfaces.</para>
193 </listitem>
194 </itemizedlist>
195 </listitem>
196
197 <listitem>
198 <para>Instantiate the Enea iPerf server VNF on uCPE device 2 by filling
199 the required fields with the values below:</para>
200
201 <itemizedlist spacing="compact">
202 <listitem>
203 <para><emphasis role="bold">Name</emphasis>:
204 iperf_server</para>
205 </listitem>
206
207 <listitem>
208 <para><emphasis role="bold">VNF Type</emphasis>: Select Enea
209 NFV Access VNF</para>
210 </listitem>
211
212 <listitem>
213 <para><emphasis role="bold">uCPE Device</emphasis>: Select
214 uCPE device 2</para>
215 </listitem>
216
217 <listitem>
218 <para><emphasis role="bold">Cloud Init File</emphasis>:
219 Provide the path to the Enea VNF IPerf server cloud-init
220 file.</para>
221 </listitem>
222
223 <listitem>
224 <para><emphasis role="bold">Interfaces</emphasis>: Set the interface type to
225 <literal>DPDK</literal> and select the OVS bridge created above.</para>
226 </listitem>
227 </itemizedlist>
228 </listitem>
229
230 <listitem>
231 <para>Instantiate the Enea iPerf client VNF on uCPE device 2 by
232 filling the required fields with the values below:</para>
233
234 <itemizedlist spacing="compact">
235 <listitem>
236 <para><emphasis role="bold">Name</emphasis>:
237 iperf_client</para>
238 </listitem>
239
240 <listitem>
241 <para><emphasis role="bold">VNF Type</emphasis>: Select Enea
242 NFV Access VNF</para>
243 </listitem>
244
245 <listitem>
246 <para><emphasis role="bold">uCPE Device</emphasis>: Select
247 uCPE device 2</para>
248 </listitem>
249
250 <listitem>
251 <para><emphasis role="bold">Cloud Init File</emphasis>:
252 Provide the path to the Enea VNF iPerf client cloud-init
253 file.</para>
254 </listitem>
255
256 <listitem>
257 <para><emphasis role="bold">Interfaces</emphasis>: Set the interface
258 type to <literal>DPDK</literal> and select the OVS bridge created above.</para>
259 </listitem>
260 </itemizedlist>
261 </listitem>
262 </orderedlist></para>
176 </section> 263 </section>
177 264
178 <section id="test_clav_uc_1"> 265 <section id="test_clav_uc_1">
179 <title>Testing the Use-case</title> 266 <title>Testing the Use-case</title>
180 267
181 <para>In order to check that traffic is forwarded between the two VNFs, 268 <para>SSH to uCPE device 2 (Username: root) and connect to the IPerf
182 connect to the iPerf VNF client console: <literal>SSH</literal> -&gt; 269 client VNF console:</para>
183 <literal>user</literal> (root) -&gt; <literal>Connect</literal> and run
184 the following:</para>
185 270
186 <programlisting>virsh list 271 <programlisting>virsh list
187virsh console 272virsh console &lt;id of iperf client&gt;</programlisting>
273
274 <para>In order to check that traffic is forwarded between the VNFs, run
275 the following:</para>
276
277 <programlisting># qemux86-64 login: root
188root@qemux86-64:~# iperf3 -c 192.168.10.10</programlisting> 278root@qemux86-64:~# iperf3 -c 192.168.10.10</programlisting>
189 </section> 279 </section>
190 </section> 280 </section>
@@ -192,11 +282,13 @@ root@qemux86-64:~# iperf3 -c 192.168.10.10</programlisting>
192 <section id="clav_example_sriov"> 282 <section id="clav_example_sriov">
193 <title>Clavister VNF using SR-IOV</title> 283 <title>Clavister VNF using SR-IOV</title>
194 284
195 <para>In this use-case, uCPE device 1 will run the iPerf server and iPerf 285 <para>The following use-case is essentially the same as the one detailed above,
196 client VNFs using SR-IOV, while uCPE device 2 will run the Clavister VNF 286 in this scenario however, the uCPE devices are connected using SR-IOV,
197 using SR-IOV with two virtual functions (vf1 and vf2):</para> 287 with two virtual functions.</para>
288
289 <remark>FIXME: New image needed</remark>
198 290
199 <figure> 291 <figure condition="hidden">
200 <title>Clavister VNF using SR-IOV Overview</title> 292 <title>Clavister VNF using SR-IOV Overview</title>
201 293
202 <mediaobject> 294 <mediaobject>
@@ -210,88 +302,34 @@ root@qemux86-64:~# iperf3 -c 192.168.10.10</programlisting>
210 <section id="clav_vnf_setup_2"> 302 <section id="clav_vnf_setup_2">
211 <title>Use-case Setup</title> 303 <title>Use-case Setup</title>
212 304
213 <para><emphasis role="bold">Configuring Network Interfaces on uCPE 305 <para><emphasis role="bold">Network Configuration:</emphasis></para>
214 devices:</emphasis></para>
215 306
216 <orderedlist> 307 <orderedlist>
217 <listitem> 308 <listitem>
218 <para>On uCPE device 2, create an SR-IOV configuration with 2 309 <para>Select uCPE device 1, access <literal>Configuration</literal>,
219 virtual functions by selecting <literal>Configuration</literal> 310 add the network interface that will be used and configure it for SR-IOV.
220 -&gt; <literal>OpenVSwitch</literal> -&gt; <literal>Host 311 For <literal>sriov-mode</literal> select "adapter-pool" and "sriov-num-vfs:2".</para>
221 Interfaces</literal> -&gt; <literal>Add</literal>.</para>
222
223 <figure condition="hidden">
224 <title>SR-IOV configuration with 2 virtual functions</title>
225
226 <mediaobject>
227 <imageobject>
228 <imagedata align="center"
229 fileref="images/sriov_configuration.png" scale="80" />
230 </imageobject>
231 </mediaobject>
232 </figure>
233 </listitem> 312 </listitem>
234 313
235 <listitem> 314 <listitem>
236 <para>On uCPE device 1, create an SR-IOV interface as done in step 315 <para>Repeat the step above for uCPE device 2.</para>
237 1.</para>
238 </listitem>
239
240 <listitem>
241 <para>Create the iPerf server on uCPE device 1 and select
242 <literal>SrIovAdapterPool</literal> as an Interface type.</para>
243 </listitem>
244
245 <listitem>
246 <para>Create the iPerf client on uCPE device 1. Select
247 <literal>SrIovAdapterPool</literal> as an Interface type and tick
248 the <literal>Client mode IPerf</literal> checkbox.</para>
249 </listitem> 316 </listitem>
250 </orderedlist> 317 </orderedlist>
251 318
252 <para><emphasis role="bold">Onboarding the VNFs:</emphasis></para> 319 <para><emphasis role="bold">Onboarding the VNFs:</emphasis></para>
253 320
254 <para>????</para> 321 <para>See the onboarding parameters in the use-case above.</para>
255 322
256 <para><emphasis role="bold">Instantiating the VNFs:</emphasis></para> 323 <para><emphasis role="bold">Instantiating the VNFs:</emphasis></para>
257 324
258 <orderedlist> 325 <para>Use the same instantiation parameters as above, but select
259 <listitem> 326 interface type <literal>SrIovAdapterPool</literal> instead.</para>
260 <para>Instantiate the Clavister VNF on uCPE device 2:
261 <literal>VNF</literal> -&gt; <literal>Instances</literal> -&gt;
262 <literal>Add</literal>.</para>
263 </listitem>
264
265 <listitem>
266 <para>Select <literal>SrIovAdapterPool</literal> as an Interface
267 type for both Interface 1 type and 2 type, before clicking
268 <literal>Create</literal>.</para>
269
270 <figure condition="hidden">
271 <title>Instantiating the Clavister VNF on uCPE device 2</title>
272
273 <mediaobject>
274 <imageobject>
275 <imagedata align="center" fileref="images/srlov_adap_pool.png"
276 scale="70" />
277 </imageobject>
278 </mediaobject>
279 </figure>
280 </listitem>
281 </orderedlist>
282 </section> 327 </section>
283 328
284 <section id="test_clav_uc_2"> 329 <section id="test_clav_uc_2">
285 <title>Testing the Use-case</title> 330 <title>Testing the Use-case</title>
286 331
287 <para>In order to check that traffic is forwarded between the VNFs, 332 <para>Use the same test instructions as detailed in the use-case above.</para>
288 connect to the iPerf VNF client console by using: <literal>SSH</literal>
289 -&gt; <literal>user</literal> (root) -&gt;<literal>Connect</literal> and
290 run the following commands:</para>
291
292 <programlisting>virsh list
293virsh console
294root@qemux86-64:~# iperf3 -c 192.168.10.10</programlisting>
295 </section> 333 </section>
296 </section> 334 </section>
297</chapter> \ No newline at end of file 335</chapter> \ No newline at end of file