Emutex developed a high-speed packet generation and testing application based on DPDK and Docker Containers.
We were contracted by our client, a leading player in the telecommunications industry, to develop a high-speed packet generation and testing application based on DPDK. The packet generator and tester would return metrics used to validate and certify the configuration of network services. The DPDK based application would be able to execute various throughput tests at rates up to 100Gbps for small packet sizes, i.e. it would generate and test network traffic at line rate. This was all to be achieved using standard off-the-self hardware. Our client previously had to rely on extremely expensive network testing equipment in order to achieve the same result.
THE EMUTEX APPROACH
It was decided to develop the solution on Dell PowerEdge T630 Intel Xeon based servers as their processing power and number of available cores would enable us to build a stable, performant solution. For speeds of up to 10Gbps we chose to use tried and tested Intel based NICs, such as the 82599 10 Gigabit ethernet controller, whilst for speeds of 100Gbps we decided to integrate the industry favoured Mellanox ConnectX-5 series.
As our team are experienced in both the use and development of DPDK, we were able to quickly identify the most optimised DPDK configuration for the chosen hardware. Once this was in place, we applied our expertise in network application development to build the highly optimised packet generator and tester resulting in a high throughput, low latency solution. The packet generator and tester supported multiple test types, ranging from functional to performance, in order to validate various aspects of the service under test. Resources such as cores and ports were allocated dynamically for each test being executed. A HTTP based communication mechanism was put in place to enable control of the packet generator and tester by an external client. We then packaged the application in a Docker container making it extremely portable and easy to deploy across different environments.
The solution is built around the Data Plane Development Kit (DPDK) which is a set of libraries used to accelerate packet processing applications across a variety of CPU architectures and network interface cards (NICs). Here at Emutex we have a team of DPDK experts who have been involved in both the software development of DPDK libraries and of network applications consuming DPDK’s libraries. DPDK is provided and supported under the open source BSD license. It is widely used by Amazon AWS, Microsoft Azure, Cisco and other companies involved in high speed networking. For more information on Intel DPDK refer to dpdk.org. Another key technology used in order to make the application portable, easy to manage and easy to deploy is Docker. Docker enables the encapsulation of an application and all its dependencies within a Docker container allowing it to be easily moved or deployed across any Linux based operating system. This technology is largely used in the deployment of micro web-services as well as virtual network functions (VNFs).For more information on Docker containers refer to docker.com.
At Emutex, we have found that this solution has confirmed the power and flexibility of using DPDK in network applications where packet acceleration is key. As the DPDK project and community continues to grow, so does the list of supported CPU architectures and network interface cards. This makes DPDK an excellent solution for developing high-speed network applications across many hardware configurations.
Combining DPDK with Docker is a new and exciting step in providing flexibility to network applications by abstracting them from a host systems’ architecture. We see this combination being adopted across the industry to provide high-speed, highly flexible network services.