Wire Speed Traffic Generation
PF_RING ZC 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 ] [-g <core_id>] [-h] [-l] [-n][-r] [-m] [-v]-a Active send retry -f Send packets as read from a pcap file -g <core_id> 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 ZC 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
pfsend -i zc:eth1 -n 0
- Reproduce a pcap file at wire rate
pfsend -i zc:eth1 -f dummy.pcap
- Reproduce a pcap file at 2 Gbit/sec
pfsend -i zc:eth1 -f dummy.pcap -r 2