[dpdk-dev] More information on Pktgen

Wiles, Roger Keith keith.wiles at windriver.com
Sun Aug 31 20:23:37 CEST 2014

Here is some more information about Pktgen that others may want to know:

At this point Pktgen is just a simple L2/L3 (UDP/TCP/IPv4 with some IPv6 support) traffic generator and does not have a network or any kind of state keeping. Mostly useful for sending traffic for performance testing and some other packet type testing say DPI. To maintain high performance not much checking is done on the receive side today, but hopefully in the future. It does support a simple ARP detection and reply

Think of this as a poor man’s traffic generator as most of us can not buy a Spirent machine or have access to that machine all of the time. With a machine cost of round $2500 more or less depending on the port types and count you can have fast traffic generator to for each developer. I developed Pktgen for performance testing as I did not have direct access to the big mainframe traffic generator with all of the bells and whistle :-)

Pktgen is not a replacement for the big iron traffic generator, but maybe some day :-) Hopefully developers find it useful for day to day development.

I have a Java GUI frontend for Pktgen, which can run on the machine or from another machine, but I have not had time to finish it. The Ostinato https://code.google.com/p/ostinato/ maybe more what everyone wants, but when I did Pktgen they were not using DPDK at the time. My Java GUI fronted was just to display the ASCII screen and support the commands in a more GUI format with some simple graphs and buttons.

To create something like the Ostinatio I would have to quite my day job and that is not a good thing :-)

You can also use the machine at the same time without having to have two machines. I do all of my testing and debugging and development on a single machine. You can also have multiple Pktgen’s running on the same machine if you configure them to use different ports. You application could use a few ports and Pktgen could use a few ports while do development and testing on the same machine.

Pktgen has a number of methods to send packets PCAP and single packet at wire rate on each port. It also has range, sequence and random packet sending support. Range allows you to define the range of packets types, sizes, address, … and other fields in the packet. The sequence allows you to configure up to 16 packets per port to send in a round robin format. The random send allows for sending packets with random values in the packets with a given location. It also supports sending VLAN packets and some support for GRE packets.

I hope that helps some.

Keith Wiles, Principal Technologist with CTO office, Wind River mobile 972-213-5533

More information about the dev mailing list