Pktgen is a tool for high-speed packet generation and testing. It runs in the Linux kernel, and is designed to accommodate a wide range of network performance tests. Pktgen consists of a packet generator, a receiver, and a protocol that defines the format for test packets. This paper describes the design of pktgen, and discusses its usage as a capable performance testing tool. The design is focused on performance, and in order to generate packets at high packet rate, pktgen takes advantage of multicore systems and multi-queue features on modern network cards. To support realistic heterogeneous traffic patterns, pktgen can generate multiple simultaneous UDP flows. Pktgen supports measurements of throughput, latency, packet inter-arrival time, and packet delay variation with a wide-range of fine-grained user specified rates.#R##N##R##N#We evaluate and compare pktgen to other tools, and show that it is more than an order of magnitude faster than current Linux applications such as Iperf and Netperf, and has the same upper limit on performance as special-purpose high-speed tools, such as DPDK and Netmap, when it comes to throughput measurements with user-specified rate.
['Daniel Turull', 'Peter Sjödin', 'Robert Olsson']
Pktgen: Measuring performance on high speed networks