ABSTRACT
We present MoonGen, a flexible high-speed packet generator. It can saturate 10 GbE links with minimum-sized packets while using only a single CPU core by running on top of the packet processing framework DPDK. Linear multi-core scaling allows for even higher rates: We have tested MoonGen with up to 178.5 Mpps at 120 Gbit/s. Moving the whole packet generation logic into user-controlled Lua scripts allows us to achieve the highest possible flexibility. In addition, we utilize hardware features of commodity NICs that have not been used for packet generators previously. A key feature is the measurement of latency with sub-microsecond precision and accuracy by using hardware timestamping capabilities of modern commodity NICs. We address timing issues with software-based packet generators and apply methods to mitigate them with both hardware support and with a novel method to control the inter-packet gap in software. Features that were previously only possible with hardware-based solutions are now provided by MoonGen on commodity hardware. MoonGen is available as free software under the MIT license in our git repository at https://github.com/emmericp/MoonGen
- Nicola Bonelli, Andrea Di Pietro, Stefano Giordano, and Gregorio Procissi. Flexible High Performance Traffic Generation on Commodity Multi-Core Platforms. In Proceedings of the 4th International Conference on Traffic Monitoring and Analysis, pages 157--170. Springer, 2012. Google ScholarDigital Library
- Alessio Botta, Alberto Dainotti, and Antonio Pescapé. Do You Trust Your Software-Based Traffic Generator? IEEE Communications Magazine, 48(9):158--165, 2010. Google ScholarDigital Library
- Scott Bradner and Jim McQuaid. Benchmarking Methodology for Network Interconnect Devices. RFC 2544 (Informational), March 1999. Google ScholarDigital Library
- G. Adam Covington, Glen Gibb, John W. Lockwood, and Nick Mckeown. A Packet Generator on the NetFPGA Platform. In 17th IEEE Symposium on Field Programmable Custom Computing Machines, pages 235--238, 2009. Google ScholarDigital Library
- Paul Emmerich. MoonGen. https://github.com/emmericp/MoonGen.Google Scholar
- Sebastian Gallenmüller, Paul Emmerich, Florian Wohlfart, Daniel Raumer, and Georg Carle. Comparison of Frameworks for High-Performance Packet IO. In ACM/IEEE Symposium on Architectures for Networking and Communications Systems (ANCS 2015), May 2015. Google ScholarDigital Library
- Luke Gorrie. Snabb Switch. https://github.com/SnabbCo/snabbswitch/.Google Scholar
- IEEE Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems. IEEE 1588--2008, July 2008.Google Scholar
- IEEE. IEEE 802.3-2012 IEEE Standard for Ethernet Section Four, 2012.Google Scholar
- Intel. Intel Server Adapters - Linux ixgbe Base Driver. http://www.intel.com/support/network/adapter/pro100/sb/CS-032530.htm. Last visited 2015-08--24.Google Scholar
- Intel 82580EB Gigabit Ethernet Controller Datasheet Rev. 2.6. Intel, 2014.Google Scholar
- Intel 82599 10 GbE Controller Datasheet Rev. 2.76. Intel, 2012.Google Scholar
- Intel Ethernet Controller X540 Datasheet Rev. 2.7. Intel, 2014.Google Scholar
- Data Plane Development Kit. http://dpdk.org/. Last visited 2015-08-24.Google Scholar
- Intel Ethernet Controller XL710 Datasheet Rev. 2.1. Intel, December 2014.Google Scholar
- Product Brief - Intel Ethernet Controller XL710 10/40 GbE. Intel, 2014.Google Scholar
- NetFPGA. http://netfpga.org/. Last visited 2015-08-24.Google Scholar
- Ntop. PF_RING ZC (Zero Copy). http://www.ntop.org/products/pf_ring/pf_ring-zc-zero-copy/. Last visited 2015-04-28.Google Scholar
- Srivats P. ostinato. http://ostinato.org/. Last visited 2015-08-24.Google Scholar
- Mike Pall. LuaJIT. http://luajit.org/. Last visited 2015-08-24.Google Scholar
- Mike Pall. LuaJIT in realtime applications. http://www.freelists.org/post/luajit/LuaJIT-in-realtime-applications,3, July 2012. Mailing list post.Google Scholar
- Luigi Rizzo. The netmap project. http://info.iet.unipi.it/ luigi/netmap/. Last visited 2015-08-24.Google Scholar
- Luigi Rizzo. netmap: A Novel Framework for Fast Packet I/O. In USENIX Annual Technical Conference, pages 101--112, 2012. Google ScholarDigital Library
- Charalampos Rotsos, Nadi Sarrar, Steve Uhlig, Rob Sherwood, and Andrew W Moore. Oflops: An Open Framework for OpenFlow Switch Evaluation. In Passive and Active Measurement, pages 85--95. Springer, 2012. Google ScholarDigital Library
- Jamal Hadi Salim, Robert Olsson, and Alexey Kuznetsov. Beyond Softnet. In Proceedings of the 5th Annual Linux Showcase & Conference, volume 5, pages 18--18, 2001. Google ScholarDigital Library
- Joel Sommers and Paul Barford. Self-Configuring Network Traffic Generation. In Proceedings of the 4th ACM SIGCOMM Conference on Internet Measurement, IMC '04, pages 68--81, New York, NY, USA, 2004. ACM. Google ScholarDigital Library
- Keith Wiles. Pktgen-DPDK. http://github.com/Pktgen/Pktgen-DPDK/.Google Scholar
- Yinglin Yang, Sudeep Goswami, and Carl G. Hansen. 10GBASE-T Ecosystem is Ready for Broad Adoption, 2012. White paper.Google Scholar
Index Terms
- MoonGen: A Scriptable High-Speed Packet Generator
Recommendations
The eXpress data path: fast programmable packet processing in the operating system kernel
CoNEXT '18: Proceedings of the 14th International Conference on emerging Networking EXperiments and TechnologiesProgrammable packet processing is increasingly implemented using kernel bypass techniques, where a userspace application takes complete control of the networking hardware to avoid expensive context switches between kernel and userspace. However, as the ...
KVS: high-efficiency kernel-level virtual switch
SoCC '17: Proceedings of the 2017 Symposium on Cloud ComputingIn clouds, virtual switch (vSwitch) is in charge of packet forwarding between virtual machines (VMs). However, kernel-based vSwitches show throughput degradation for intensive packet processing; this becomes a bottleneck for the network performance of ...
Designing Virtual Network Functions for 100 GbE Network Using Multicore Processors
ANCS '17: Proceedings of the Symposium on Architectures for Networking and Communications SystemsNetwork function virtualization (NFV) introduces great flexibility in designing software-based network appliances to reduce cost and accelerate service deployment for network operators. However, with the fast development of high speed network of 100 GbE ...
Comments