diff options
author | Sona Sarmadi <sona.sarmadi@enea.com> | 2019-06-03 13:11:11 +0200 |
---|---|---|
committer | Miruna Paun <Miruna.Paun@enea.com> | 2019-06-24 16:22:05 +0200 |
commit | 4aee87a7f4733ae35a6c056e0c76deadc1b39951 (patch) | |
tree | 79f37faf3d982d0bbef09d2923596546a5968617 /doc/book-enea-nfv-access-example-usecases/doc/clav_vnf_examples.xml | |
parent | 6eb3af60e0d690eb2089cea4893ba94e77097770 (diff) | |
download | el_releases-nfv-access-4aee87a7f4733ae35a6c056e0c76deadc1b39951.tar.gz |
Example_Usecases: Re-structure example usecases
- Remove some images related to VNF onboard and instantite
- Add Intro section to make more cleare what the purpose of this document is
- Replace target with uCPE device
- Make more cleare uCPE device setup, VNF onboard and instantite
steps in Clavister and Enea usecases
- Rename vnf_fortigate.xml to forti_vnf_examples so all example files
have same naming style
Change-Id: Ic414f83a60014dc4ac6964508017ddb81811ce4f
Signed-off-by: Sona Sarmadi <sona.sarmadi@enea.com>
Diffstat (limited to 'doc/book-enea-nfv-access-example-usecases/doc/clav_vnf_examples.xml')
-rw-r--r-- | doc/book-enea-nfv-access-example-usecases/doc/clav_vnf_examples.xml | 459 |
1 files changed, 229 insertions, 230 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 ac27ba8..a73c5e8 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 | |||
@@ -2,167 +2,179 @@ | |||
2 | <chapter id="clav_vnf_example"> | 2 | <chapter id="clav_vnf_example"> |
3 | <title>Clavister VNF Example Use-cases</title> | 3 | <title>Clavister VNF Example Use-cases</title> |
4 | 4 | ||
5 | <section id="clav_vnf"> | 5 | <section id="prere_clav_vnf"> |
6 | <title>Clavister VNF</title> | 6 | <title>Prerequisites</title> |
7 | |||
8 | <para>In this use case, <literal>target_1</literal> will run the Clavister | ||
9 | VNF and an Open vSwitch bridge, while <literal>target_2</literal> will run | ||
10 | two iPerf VNFs.</para> | ||
11 | |||
12 | <figure> | ||
13 | <title>Clavister VNF Example Overview</title> | ||
14 | |||
15 | <mediaobject> | ||
16 | <imageobject> | ||
17 | <imagedata align="center" fileref="images/clavister_vnf_diagram.png" | ||
18 | scale="50" /> | ||
19 | </imageobject> | ||
20 | </mediaobject> | ||
21 | </figure> | ||
22 | |||
23 | <para><emphasis role="bold">How to setup the target to run the Clavister | ||
24 | VNF and an Open vSwitch Bridge</emphasis></para> | ||
25 | |||
26 | <orderedlist> | ||
27 | <para><emphasis role="bold">Configure the Network on target_1 and | ||
28 | target_2:</emphasis></para> | ||
29 | |||
30 | <listitem> | ||
31 | <para>From the uCPE Manager select the target_1: | ||
32 | <literal>Configuration</literal> -> <literal>OpenVSwitch</literal> | ||
33 | -> H<literal>ost Interfaces</literal> -> | ||
34 | <literal>Add</literal></para> | ||
35 | </listitem> | ||
36 | 7 | ||
37 | <listitem> | 8 | <para>The following files are needed for this example use case:</para> |
38 | <para>Select the network interface that will be used to connect to the | ||
39 | second target, configure it for DPDK, and click | ||
40 | <literal>Create</literal> to send the configuration to the | ||
41 | target:</para> | ||
42 | |||
43 | <figure> | ||
44 | <title>Host Interface Creation</title> | ||
45 | |||
46 | <mediaobject> | ||
47 | <imageobject> | ||
48 | <imagedata align="center" | ||
49 | fileref="images/host_interface_creation.png" /> | ||
50 | </imageobject> | ||
51 | </mediaobject> | ||
52 | </figure> | ||
53 | </listitem> | ||
54 | |||
55 | <listitem> | ||
56 | <para>Create an Open vSwitch bridge (<literal>ovsbr0</literal>) with | ||
57 | one DPDK interface by selecting the <literal>Add</literal> button from | ||
58 | the <literal>Bridges</literal> tab.</para> | ||
59 | </listitem> | ||
60 | |||
61 | <listitem> | ||
62 | <para>Once the bridge creation popup appears, fill the fields and add | ||
63 | the physical interface:</para> | ||
64 | |||
65 | <figure> | ||
66 | <title>OVS bridge</title> | ||
67 | |||
68 | <mediaobject> | ||
69 | <imageobject> | ||
70 | <imagedata align="center" fileref="images/ovs_bridge_zero.png" | ||
71 | scale="80" /> | ||
72 | </imageobject> | ||
73 | </mediaobject> | ||
74 | </figure> | ||
75 | </listitem> | ||
76 | |||
77 | <listitem> | ||
78 | <para>Repeat the steps above on the target_2, by also using one DPDK | ||
79 | interface and creating an OVS bridge.</para> | ||
80 | </listitem> | ||
81 | </orderedlist> | ||
82 | |||
83 | <orderedlist> | ||
84 | <para><emphasis role="bold">Instantiate the VNFs:</emphasis></para> | ||
85 | |||
86 | <para>Once the network configuration has been completed on both targets | ||
87 | instantiate the VNFs:</para> | ||
88 | |||
89 | <para><emphasis role="bold">A) Instantiate Clavister VNF on | ||
90 | target_1:</emphasis></para> | ||
91 | 9 | ||
10 | <itemizedlist> | ||
92 | <listitem> | 11 | <listitem> |
93 | <para>Select the target_1, then the VNF option from the top toolbar: | 12 | <para><literal>enea-nfv-access-vnf-qemux86-64.qcow2</literal>. This |
94 | <literal>VNF</literal> -> <literal>Instances</literal> -> | 13 | image is provided with your release.</para> |
95 | <literal>Add</literal>.</para> | ||
96 | </listitem> | 14 | </listitem> |
97 | 15 | ||
98 | <listitem> | 16 | <listitem> |
99 | <para>Fill in the required information about the | 17 | <para><literal>clavister-cos-stream-<version>-virtual-x64-generic.qcow2</literal>. |
100 | <literal>Clavister</literal> VNF, (the default network configuration | 18 | This image is provided with your release.</para> |
101 | can be used):</para> | ||
102 | |||
103 | <figure> | ||
104 | <title>VNF Instance</title> | ||
105 | |||
106 | <mediaobject> | ||
107 | <imageobject> | ||
108 | <imagedata align="center" fileref="images/vnf_instance.png" | ||
109 | scale="80" /> | ||
110 | </imageobject> | ||
111 | </mediaobject> | ||
112 | </figure> | ||
113 | </listitem> | ||
114 | </orderedlist> | ||
115 | |||
116 | <orderedlist> | ||
117 | <para><emphasis role="bold">B) Instantiate two iPerf VNFs (one as client | ||
118 | and one as server) on target_2: </emphasis></para> | ||
119 | |||
120 | <listitem> | ||
121 | <para>Instantiate two <literal>iPerf</literal> VNFs on target_2. One | ||
122 | will act as the server and the second as the client.</para> | ||
123 | </listitem> | 19 | </listitem> |
124 | 20 | ||
125 | <listitem> | 21 | <listitem> |
126 | <para>Select target_2, then the VNF option from the top toolbar: | 22 | <para>License for the Clavister VNF (needed as Cloud-Init content in the Cloud-Init tab). |
127 | <literal>VNF</literal> -> <literal>Instances</literal> -> | 23 | This file is available through the VNF provider.</para> |
128 | <literal>Add</literal>.</para> | ||
129 | </listitem> | 24 | </listitem> |
25 | </itemizedlist> | ||
26 | </section> | ||
130 | 27 | ||
131 | <listitem> | 28 | <section id="clav_vnf"> |
132 | <para>In the <literal>VNF Instance</literal> window, select the first | 29 | <title>Clavister VNF using Open vSwitch Bridge</title> |
133 | <literal>iPerf</literal> VNF from the dropdown menu, configure it to | ||
134 | act as a server by unchecking the <literal>Client mode IPerf</literal> | ||
135 | box, and click the <literal>Create</literal> button.</para> | ||
136 | </listitem> | ||
137 | 30 | ||
138 | <listitem> | 31 | <para>In this use-case, uCPE device 1 will run the Clavister VNF and an |
139 | <para>Select <literal>Add</literal>, enable the <literal>Client mode | 32 | Open vSwitch bridge, while uCPE device 2 will run two iPerf VNFs.</para> |
140 | IPerf</literal> checkbox and then click <literal>Create</literal> to | ||
141 | instantiate the second <literal>iPerf VNF</literal> as a client, and | ||
142 | to run it in client mode.</para> | ||
143 | </listitem> | ||
144 | 33 | ||
145 | <listitem> | 34 | <figure> |
146 | <para>In order to check that traffic is forwarded between the VNFs, | 35 | <title>Clavister VNF Example Overview</title> |
147 | connect to the iPerf VNF client console:</para> | ||
148 | 36 | ||
149 | <para>Connect to the target_2 by using: <literal>SSH</literal> -> | 37 | <mediaobject> |
150 | <literal>user</literal> (root) -><literal>Connect</literal> and run | 38 | <imageobject> |
151 | the following:</para> | 39 | <imagedata align="center" fileref="images/clavister_vnf_diagram.png" |
40 | scale="50" /> | ||
41 | </imageobject> | ||
42 | </mediaobject> | ||
43 | </figure> | ||
152 | 44 | ||
153 | <programlisting>virsh list | 45 | <section id="clav_vnf_setup_1"> |
154 | virsh console | 46 | <title>uCPE device Setup</title> |
155 | root@qemux86-64:~# iperf3 -c 192.168.10.10</programlisting> | 47 | |
156 | </listitem> | 48 | <para><emphasis role="bold">Configure Network interfaces on the uCPE devices:</emphasis></para> |
157 | </orderedlist> | 49 | |
50 | <orderedlist> | ||
51 | <listitem> | ||
52 | <para>From the uCPE Manager select uCPE device 1, then access <literal>Configuration</literal> | ||
53 | -> <literal>OpenVSwitch</literal> -> <literal>Host Interfaces</literal> -> | ||
54 | <literal>Add.</literal></para> | ||
55 | </listitem> | ||
56 | |||
57 | <listitem> | ||
58 | <para>Select the network interface that will be used to connect to uCPE device 2. | ||
59 | Configure it for DPDK, and click <literal>Create</literal> to send the configuration | ||
60 | to that uCPE device.</para> | ||
61 | </listitem> | ||
62 | |||
63 | <listitem> | ||
64 | <para>Create an Open vSwitch bridge (<literal>ovsbr0</literal>) with | ||
65 | one DPDK interface, by selecting the <literal>Add</literal> button | ||
66 | from the <literal>Bridges</literal> tab.</para> | ||
67 | </listitem> | ||
68 | |||
69 | <listitem> | ||
70 | <para>Once the bridge creation popup appears, fill-in the required fields and add the | ||
71 | physical interface.</para> | ||
72 | </listitem> | ||
73 | |||
74 | <listitem> | ||
75 | <para>Repeat the steps above on uCPE device 2, using one DPDK interface and creating | ||
76 | another OVS bridge.</para> | ||
77 | </listitem> | ||
78 | </orderedlist> | ||
79 | </section> | ||
80 | |||
81 | <section id="onboard_vnf_clav"> | ||
82 | <title>Onboard the VNFs</title> | ||
83 | |||
84 | <orderedlist> | ||
85 | <listitem> | ||
86 | <para>Select <literal>VNF</literal> -> <literal>Descriptor</literal> -> | ||
87 | <literal>On-board</literal>.</para> | ||
88 | </listitem> | ||
89 | |||
90 | <listitem> | ||
91 | <para>Select the <literal>VM Image</literal> radio button.</para> | ||
92 | </listitem> | ||
93 | |||
94 | <listitem> | ||
95 | <para>Provide the path to the qcow image by selecting <literal>Browse</literal> | ||
96 | from <literal>VM image file</literal> option.</para> | ||
97 | </listitem> | ||
98 | |||
99 | <listitem> | ||
100 | <para>Fill the required fields below and press <literal>Onboard</literal>:</para> | ||
101 | |||
102 | <itemizedlist spacing="compact"> | ||
103 | <listitem> | ||
104 | <para><emphasis role="bold">Memory in MB</emphasis>: 1024</para> | ||
105 | </listitem> | ||
106 | |||
107 | <listitem> | ||
108 | <para><emphasis role="bold">Nr. of CPUs</emphasis>: 1</para> | ||
109 | </listitem> | ||
110 | |||
111 | <listitem> | ||
112 | <para><emphasis role="bold">Storage in GB</emphasis>: 10</para> | ||
113 | </listitem> | ||
114 | </itemizedlist> | ||
115 | </listitem> | ||
116 | </orderedlist> | ||
117 | </section> | ||
118 | |||
119 | <section id="instance_vnfs_clav"> | ||
120 | <title>Instantiate the VNFs</title> | ||
121 | |||
122 | <para><emphasis role="bold">A) Instantiate the Clavister VNF on uCPE device 1:</emphasis></para> | ||
123 | |||
124 | <orderedlist> | ||
125 | <listitem> | ||
126 | <para>Select uCPE device 1, then from the top toolbar: <literal>VNF</literal> -> | ||
127 | <literal>Instances</literal> -> <literal>Add</literal>.</para> | ||
128 | </listitem> | ||
129 | |||
130 | <listitem> | ||
131 | <para>Fill in the required information about the Clavister VNF, (the default network | ||
132 | configuration can be used) and select <literal>Create</literal>.</para> | ||
133 | </listitem> | ||
134 | </orderedlist> | ||
135 | |||
136 | <para><emphasis role="bold">B) Instantiate two Enea VNFs (one as the client and one as the | ||
137 | server) on uCPE device 2:</emphasis></para> | ||
138 | |||
139 | <orderedlist> | ||
140 | <listitem> | ||
141 | <para>Select uCPE device 2, then from the top toolbar: <literal>VNF</literal> -> | ||
142 | <literal>Instances</literal> -> <literal>Add</literal>.</para> | ||
143 | </listitem> | ||
144 | |||
145 | <listitem> | ||
146 | <para>In the new <literal>VNF Instance</literal> window, select the Enea VNF from the | ||
147 | dropdown menu, configure it to act as a server by unchecking the <literal>Client mode | ||
148 | IPerf</literal> box, and then click <literal>Create</literal>.</para> | ||
149 | </listitem> | ||
150 | |||
151 | <listitem> | ||
152 | <para>Select <literal>Add</literal> once more, enable the <literal>Client mode | ||
153 | IPerf</literal> checkbox this time, and click <literal>Create</literal> to instantiate | ||
154 | the second <literal>iPerf VNF</literal> as a client, and to run it in client mode.</para> | ||
155 | </listitem> | ||
156 | |||
157 | <listitem> | ||
158 | <para>In order to check that traffic is forwarded between the two VNFs, connect to the | ||
159 | iPerf VNF client console: <literal>SSH</literal> -> <literal>user</literal> (root) | ||
160 | -> <literal>Connect</literal> and run the following:</para> | ||
161 | |||
162 | <programlisting> | ||
163 | virsh list | ||
164 | virsh console | ||
165 | root@qemux86-64:~# iperf3 -c 192.168.10.10 | ||
166 | </programlisting> | ||
167 | </listitem> | ||
168 | </orderedlist> | ||
169 | </section> | ||
158 | </section> | 170 | </section> |
159 | 171 | ||
160 | <section id="clav_example_sriov"> | 172 | <section id="clav_example_sriov"> |
161 | <title>Clavister VNF using SR-IOV</title> | 173 | <title>Clavister VNF using SR-IOV</title> |
162 | 174 | ||
163 | <para>In this use case, target 1 will run the iPerf server and iPerf | 175 | <para>In this use-case, uCPE device 1 will run the iPerf server and iPerf |
164 | client VNFs using SR-IOV and target 2 will run the Clavister VNF using | 176 | client VNFs using SR-IOV, while uCPE device 2 will run the Clavister VNF |
165 | SR-IOV with two virtual functions (vf1 and vf2):</para> | 177 | using SR-IOV with two virtual functions (vf1 and vf2):</para> |
166 | 178 | ||
167 | <figure> | 179 | <figure> |
168 | <title>Example Overview</title> | 180 | <title>Example Overview</title> |
@@ -175,93 +187,80 @@ root@qemux86-64:~# iperf3 -c 192.168.10.10</programlisting> | |||
175 | </mediaobject> | 187 | </mediaobject> |
176 | </figure> | 188 | </figure> |
177 | 189 | ||
178 | <orderedlist> | 190 | <section id="clav_vnf_setup_2"> |
179 | <listitem> | 191 | <title>Example Setup</title> |
180 | <para>On target 2, create an SR-IOV configuration with 2 virtual | 192 | |
181 | functions: <literal>Configuration</literal> -> | 193 | <orderedlist> |
182 | <literal>OpenVSwitch</literal> -> <literal>Host | 194 | <listitem> |
183 | Interfaces</literal> -> <literal>Add</literal>:</para> | 195 | <para>On uCPE device 2, create an SR-IOV configuration with 2 |
184 | 196 | virtual functions by selecting <literal>Configuration</literal> | |
185 | <figure> | 197 | -> <literal>OpenVSwitch</literal> -> <literal>Host |
186 | <title>SR-IOV configuration with 2 virtual functions</title> | 198 | Interfaces</literal> -> <literal>Add</literal>:</para> |
187 | 199 | ||
188 | <mediaobject> | 200 | <figure> |
189 | <imageobject> | 201 | <title>SR-IOV configuration with 2 virtual functions</title> |
190 | <imagedata align="center" | 202 | |
191 | fileref="images/sriov_configuration.png" scale="80" /> | 203 | <mediaobject> |
192 | </imageobject> | 204 | <imageobject> |
193 | </mediaobject> | 205 | <imagedata align="center" |
194 | </figure> | 206 | fileref="images/sriov_configuration.png" scale="80" /> |
195 | </listitem> | 207 | </imageobject> |
196 | 208 | </mediaobject> | |
197 | <listitem> | 209 | </figure> |
198 | <para>Instantiate the Clavister VNF on target 2, by clicking | 210 | </listitem> |
199 | <literal>VNF</literal> -> <literal>Instances</literal> -> | 211 | |
200 | <literal>Add</literal>.</para> | 212 | <listitem> |
201 | 213 | <para>Instantiate the Clavister VNF on uCPE device 2: <literal>VNF</literal> | |
202 | <para>Select <literal>SrIovAdapterPool</literal> as an Interface type | 214 | -> <literal>Instances</literal> -> <literal>Add</literal>.</para> |
203 | for both Interface1 type and 2 type, before clicking | 215 | </listitem> |
204 | <literal>Create</literal>:</para> | 216 | |
205 | 217 | <listitem> | |
206 | <figure> | 218 | <para>Select <literal>SrIovAdapterPool</literal> as an Interface |
207 | <title>Instantiating the Clavister VNF on target 2</title> | 219 | type for both Interface 1 type and 2 type, before clicking |
208 | 220 | <literal>Create</literal>.</para> | |
209 | <mediaobject> | 221 | |
210 | <imageobject> | 222 | <figure> |
211 | <imagedata align="center" fileref="images/srlov_adap_pool.png" | 223 | <title>Instantiating the Clavister VNF on uCPE device 2</title> |
212 | scale="70" /> | 224 | |
213 | </imageobject> | 225 | <mediaobject> |
214 | </mediaobject> | 226 | <imageobject> |
215 | </figure> | 227 | <imagedata align="center" fileref="images/srlov_adap_pool.png" |
216 | </listitem> | 228 | scale="70" /> |
217 | 229 | </imageobject> | |
218 | <listitem> | 230 | </mediaobject> |
219 | <para>On target 1, create an SR-IOV interface as done in step | 231 | </figure> |
220 | 1.</para> | 232 | </listitem> |
221 | </listitem> | 233 | |
222 | 234 | <listitem> | |
223 | <listitem> | 235 | <para>On uCPE device 1, create an SR-IOV interface as done in step |
224 | <para>Create the iPerf server on target 1. Select | 236 | 1.</para> |
225 | <literal>SrIovAdapterPool</literal> as an Interface type:</para> | 237 | </listitem> |
226 | 238 | ||
227 | <figure> | 239 | <listitem> |
228 | <title>IPerf Server Interface Type</title> | 240 | <para>Create the iPerf server on uCPE device 1 and select |
229 | 241 | <literal>SrIovAdapterPool</literal> as an Interface type.</para> | |
230 | <mediaobject> | 242 | </listitem> |
231 | <imageobject> | 243 | |
232 | <imagedata align="center" | 244 | <listitem> |
233 | fileref="images/iperf_server_inttype.png" scale="70" /> | 245 | <para>Create the iPerf client on uCPE device 1. Select |
234 | </imageobject> | 246 | <literal>SrIovAdapterPool</literal> as an Interface type and tick |
235 | </mediaobject> | 247 | the <literal>Client mode IPerf</literal> checkbox.</para> |
236 | </figure> | 248 | </listitem> |
237 | </listitem> | 249 | |
238 | 250 | <listitem> | |
239 | <listitem> | 251 | <para>In order to check that traffic is forwarded between the VNFs, |
240 | <para>Create the iPerf client on target 1. Select | 252 | connect to the iPerf VNF client console by using: |
241 | <literal>SrIovAdapterPool</literal> as an Interface type and tick the | 253 | <literal>SSH</literal> -> <literal>user</literal> (root) |
242 | <literal>Client mode IPer</literal> checkbox:</para> | 254 | -><literal>Connect</literal> and run the following |
243 | 255 | commands: | |
244 | <figure> | 256 | <programlisting> |
245 | <title>IPerf Client Interface Type</title> | 257 | virsh list |
246 | 258 | virsh console | |
247 | <mediaobject> | 259 | root@qemux86-64:~# iperf3 -c 192.168.10.10 |
248 | <imageobject> | 260 | </programlisting> |
249 | <imagedata align="center" | 261 | </para> |
250 | fileref="images/iperf_client_inttype.png" scale="70" /> | 262 | </listitem> |
251 | </imageobject> | 263 | </orderedlist> |
252 | </mediaobject> | 264 | </section> |
253 | </figure> | ||
254 | </listitem> | ||
255 | |||
256 | <listitem> | ||
257 | <para>In order to check that traffic is forwarded between the VNFs, | ||
258 | connect to the iPerf VNF client console by using: | ||
259 | <literal>SSH</literal> -> <literal>user</literal> (root) | ||
260 | -><literal>Connect</literal> and run the following | ||
261 | commands:<programlisting>virsh list | ||
262 | virsh console | ||
263 | root@qemux86-64:~# iperf3 -c 192.168.10.10</programlisting></para> | ||
264 | </listitem> | ||
265 | </orderedlist> | ||
266 | </section> | 265 | </section> |
267 | </chapter> | 266 | </chapter> |