ity to distribute traffic among different VNFs using granular policy based on L3 -L7 information within the server. In case the SR-IOV mechanism is to be used, such distribution must be performed prior to being sent to the server's pNIC. The following chart shows the throughput comparison of the four approaches discussed for traf- fic at 384 bytes. As apparent from the chart, one can significantly gain performance with the use of newer performance optimization techniques such as SR-IOV and DPDK enabled OVS as compared to traditional approach of using standard OVS or Linux bridge for networking environment within the CPE (Figure 10.12). 25000 20000 15000 10000 SR-IOV DPDK-OVS Linux Bridge Packet Size (384 bytes) FIGURE 10.12 Comparing throughput results of optimization approach. Enterprise Networks 10.2.4 OPTIMIZING VNF PERFORMANCE Another way to achieve higher overall performance is to focus on the efficiency at which each packet is processed by the VNF itself. 10.2.4.1 Processor Affinity One simple and popular technique that often gets highlighted is processor affinity to a VNF. Processor affinity (also known as CPU pinning) binds a specific process to a specific CPU or to a range of CPUs, SO that the process will execute only on the designated CPU or CPUs. In addition, when a process is pinned to a certain CPU, CPU cache always remains associated with that process thus avoiding cache misses. Although the basic approach of CPU affinity does not align well with the principles of virtualiza- tion, it sometimes can be used to achieve better performance depending on the environment. As part of our proof-of-concept testing, this approach was put to test by assigning two vCPUs to the VNF and then retesting with multiple VNFs on the same machine. The objective was to deter- mine whether CPU pinning improves the overall performance by reducing the context switching or faster access to data within CPU cache after context switching. The test results suggested that pinning did not have better performance in our environment