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 | nfv-access-documentation-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"> |
