we needed to look into the implementation details associated with the virtual environment. We need to understand the life of a packet as it traverses from the pNIC card on the machine to the VNF and vice versa (see Figure 10.6). In fact, there are multiple ways to create this virtual environment. Depending on how the environ- ment is created, the cost (for packet processing performance) and feature availability (for granular Virtual Network Environment FIGURE 10.6 Virtual environment within CPE. Enterprise Networks Network Function Network Function Network Function Network Function Guest os Guest os Guest os Guest os Hypervisor Hypervisor Hypervisor Hypervis kSwitch DPDK wSwitch Linux Bridge Host os Host os Host os Host os Standard OVS DPDK OVS Open Virtual Switch SRIOV Linux Bridge FIGURE 10.7 Virtual environment options. traffic control), changes. The illustration below highlights the four different virtual environment options that were considered in the proof-of-concept evaluation: Linux bridge-based approach Use of standard virtual switch (open virtual switch [OVS] Use of DPDK-enabled virtual switch (DPDK OVS) SR-IOV (Figure 10.7) Each option uses different mechanisms to transfer the packet to the VNF as it arrives on the pNIC. The same process is repeated in the reverse direction as the packet is transferred from the VNF to the NIC card. Let us look into each of these options in more detail. 10.2.3.1 Linux Bridge Approach The "default" way to create a virtual networking environment in Linux is to use a bridge device. In reality, the Linux bridge [4] is a very simplified form of a virtual switch implemented inside the Linux kernel. First, we create the Linux bridge on the platform and connect the physical interface to the bridge. Subsequently, each individual virtual network function is configured to connect to the same bridge, or multiple bridges can be created to allow for separation of traffic or service chaining between VNFs within the server. As the packet arrives on the pNIC, it is copied on to the Linu