Wire Speed Traffic Generation


PF_RING DNA is able to generate traffic at wire rate, any packet size. This means that you can:

  • Generate synthetic packets: you forge packets with meaningless content, just to fill up the wire with data.
  • Reproduce packets stored on a pcap file you previously captured on a network (or forged). You can decide to reproduce them at the original speed, or at wire rate.
  • Enhance your favorite open-source traffic generator such as Ostinato, and not only be able to flexibly generate packets, but also to reproduce them at high rates.

The PF_RING suite comes with some example applications. One of those is named pfsend.

pfsend -i out_dev [-a] [-f <.pcap file>] [-g ] [-h]
[-l ] [-n ][-r ] [-m ] [-v]

-a Active send retry
-f <.pcap file> Send packets as read from a pcap file
-g Bind this app to a code (only with -n 0)
-h Print this help
-i Device name. Use device
-l Packet length to send. Ignored with -f
-n Num pkts to send (use 0 for infinite). With -f it
specifies the number of times the file will be sent
-r Rate to send (example -r 2.5 sends 2.5 Gbit/sec)
-m Reforge destination MAC (format AA:BB:CC:DD:EE:FF)
-v Verbose

Use Cases


Suppose that you have loaded the PF_RING DNA driver, and that you use the interface eth1 as egress interface.

  • Fill up the wire with 64 bytes (60 bytes packet + 4 bytes IFG) at wire rate
    pfcount -i dna:eth1 -n 0
  • Reproduce a pcap file at wire rate
    pfcount -i dna:eth1 -f dummy.pcap
  • Reproduce a pcap file at 2 Gbit/sec
    pfcount -i dna:eth1 -f dummy.pcap -r 2