In my previous blog, I discussed “Ways to Speeding up Your Cloud Environment…”, I will continue with this thread by introducing the topic of Software Defined Networks (SDN). The industry has been depending on proprietary networking equipment and appliances, essentially creating an environment requiring vertical integrated software running on dedicated hardware. Due to millions of new connected devices and increasing traffic in the cloud computing environment, the network congestion challenges the vertical networking business model. As a result, the cloud computing community is looking into a network virtualization solution.
This blog focuses on speeding up your data packet networking by using the Intel® Data Plane Development Kit (Intel® DPDK) on Intel® Architecture. With an Intel® Xeon® processor E5-2600 series (or later), an integrated DDR3 memory controller, an integrated PCI Express controller, and Intel DPDK, you can potentially see the increase for small network packet throughput in your cloud computing environment. Before going into the Intel DPDK, I want to provide some insight for those unfamiliar with the terminology related to the SDN.
Intel’s 4:1 Workload Consolidation Strategy
Intel’s strategy is to consolidate the workloads (application, control plane, packet and signal processing) into a more scalable and simplified solution on Intel® Xeon® processor platforms. This software-based approach depicted in Figure 1 shows the Intel’s 4:1 workload consolidation strategy. Figure 2 and Figure 3 show the performance increases from various generations of Intel architecture processor-based platforms.
Figure 1. Intel's 4:1 Workload Consolidation Strategy
Note: Performance tests and ratings below are HW/SW configuration dependent and measured using specific computer systems and/or components as measured by those tests. Any difference in the configuration will reflect in the test results.
Figure 2. Breakthrough data performance with Intel® development kit (Intel® dpdk) L3 packet forwarding
Note: The measurement is in Million packets per second (Mpps) and each packet is 64 byte. The data performance (L3 packet forwarding) indicated that you can experience higher throughput by applying the Intel DPDK to your Linux environment.
Figure 3. IPv4 Layer 3 Forwarding performance for various generations of Intel Architecure Processor-based platforms
Figures 2 and 3 show the small packet performance achievable using the Intel Architecture with the Intel DPDK. The hardware elements that contribute to the performance increase are the integrated memory controller, the integrated PCI Express* controller, and the increase number processor cores per chip in the latest Intel processor.
The System Configurations Used for collecting the data used in Figure 2 and Figure 3 were:
Intel DPDK Overview
The Intel DPDK is based on simple embedded system concepts and allows users to build efficient small packet (64byte) high performance applications. It consists of a growing number of libraries (Figure 4) designed for high speed data packet networking, and offers a simple software programming model that scales from Intel® Atom™ processors to the latest Intel® Xeon® processors. The source code is available for developers to use and/or modify in a production network element.
Figure 4. Major Intel DPDK Components
The Intel DPDK library is currently provided cost-free to OEMs under a BSD licensing model. A public version of the software will be available to download in early 2013. For more information, see www.intel.com/go/dpdk.
Once you download the Intel DPDK, here is the suggested reading order to use the kit:
• Release Notes: Provides release-specific information, including supported features, limitations, fixed issues, known issues, and so on. It also provides frequently asked questions in FAQ format.
• Getting Started Guide: Describes how to install and configure the Intel DPDK; designed to get users up and running quickly with the software.
• Programmer's Guide: Describes:
— The software architecture and how to use it (through examples), specifically in a Linux* application (linuxapp) environment.
— The content of the Intel DPDK, the build system (including the commands that can be used in the root Intel® DPDK Makefile to build the development kit and an application) and guidelines for porting an application.
— Optimizations used in the software and those that should be considered for new development.
• API Reference: Provides detailed information about Intel DPDK functions, data structures and other programming constructs.
• Sample Application User Guides: A set of guides, each describing a sample application that showcases specific functionality, together with instructions on how to compile, run and use the sample application.
The growing demand for more connected devices and data accesses over the network has pushed the vertical network model to the limit. To save cost and reduce power consumption of the network infrastructure, you may consider decreasing the number of physical assets by consolidating their functions using network virtualization on a common platform. By using the Intel DPDK library on a common platform, you can:
Packet Processing on Intel® Architecture:
Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.
Notice revision #20110804