Enea VNF Example Use-cases Enea NFV Access is a complete NFV Infrastructure (NFVI) platform designed for deployment on white box uCPEs at the customer premise, and optimized for common Virtual Customer Premises Equipment (vCPE) and SD-WAN use cases.
Prerequisites The following file(s) are needed for this example use-case: enea-nfv-access-vnf-qemux86-64.qcow2. This image is provided with your release.
TestPMD VNF In this use-case, uCPE device 1 will run pktgen (the DPDK application) and uCPE device 2 will onboard and instantiate two VNFs. One VNF will run testpmd_fwd, forwarding traffic, and the other will run testpmd_term which will terminate traffic.
Enea TestPMD VNF Overview
Use-case Setup Configuring Network Interfaces on uCPE devices: Bind the host interfaces to the DPDK by selecting uCPE device 1 first, then accessing Configuration -> OpenVSwitch -> Host Interfaces -> Add. Select the network interface that will be used to connect to the second uCPE device and configure it for the DPDK. Select the Create button to send the configuration to uCPE device 1. Repeat these same steps on uCPE device 2. Click the Add button from the Bridges tab. Create an Open vSwitch bridge (ovsbr0) on uCPE device 1 that uses one DPDK interface, by selecting uCPE device 1, then: Configuration ->OpenVSwitch ->Bridges. Onboarding the VNF: Select VNF ->Descriptor -> On-board. Select the VM Image radio button. Provide the path to the qcow image by selecting Browse from the VM image file option. Fill the required fields below and press Onboard: Memory in MB: 1024 Nr. of CPUs: 1 Storage in GB: 10 Instantiating two VNFs on uCPE device 2: Select uCPE device 2, then access VNF -> Instances -> Add. Fill-in the required fields and click Create. Configure VNF 1 to forward traffic. Configure VNF 2 to terminate traffic. Add Open vSwitch flows to control this traffic:
Configuring the FWD flow
Configuring the TERM flow
Start pktgen on uCPE device 1. Connect to the device by selecting it first, then access SSH -> user (root) and perform the following: cd /usr/share/apps/pktgen/ ./pktgen -c 0x7 -n 4 --proc-type auto --socket-mem 256 -w 0000:05:00.3 -- \ -P -m "[1:2].0" Pktgen:/> start 0 The PCI address <0000:05:00.3> used in this example varies depending on the uCPE device. To determine the exact PCI address used, look in the uCPE device specific Network configuration.
Testing the Use-case Connect to the forwarder VNF in order to check the traffic statistics, by selecting the uCPE device first, then accessing SSH -> user (root): Virsh list Virsh console 1 # Qemux86-64 login: root tail -f /var/log/testpmd-out
Traffic Statistics
TestPMD VNF using PCI passthrough In this use case, uCPE device 1 will run the Pktgen and uCPE device 2 will run the TestPMD VNF. Both will be using PCI passthrough:
TestPMD VNF using PCI passthrough Overview
Make sure that neither uCPE device 1 nor uCPE device 2 have any configured host interfaces by selcting uCPE device : Configuration -> OpenVSwitch -> Host Interfaces. On uCPE device 1 start the Pktgen VNF. Select PciPassthrough as the Interface type. From the drop-down list, select the PCI interface corresponding to the NIC which is connected to uCPE device 2:
Selecting the Pktgen VNF Interface
On uCPE device 2, start the TestPmdForwarder VNF. Select "PciPassthrough" as the Interface type. From the drop-down list, select the PCI interface corresponding to the NIC which is connected to uCPE device 1:
Selecting the TestPmdForwarder VNF Interface
To check that traffic is being forwarded from uCPE device 2, SSH to the uCPE device and connect to the VNFs console: Right click on uCPE device 2 and select SSH. Run: virsh list Run: virsh console [VM NAME] Run: tail -f /opt/testpmd-out