A minimal traffic generator.
- Intel DPDK
- libprotobuf-c
- libpcap
Just run make all
. Alternatively, setup DPDK yourself, just make sure to set
CONFIG_RTE_BUILD_COMBINE_LIBS=y
.
First, setup hugepages per: https://dpdk.org/doc/guides/linux_gsg/sys_reqs.html
Then, you'll need to bind any NICs you want to use to dpdk. You can find them
using /path/to/dpdk/tools/dpdk_nic_bind.py --status
.
Load the uio kernel module and insert the dpdk igb_uio module with
modprobe uio && insmod /path/to/dpdk/target/kmod/igb_uio.ko
.
With that all done, bind each of your desired nics to DPDK with
/path/to/dpdk/tools/dpdk_nic_bind.py -b igb_uio YOUR_NIC
Start things up with ./bin/pktgen [EAL options] -- LISTEN_PORT
The only EAL flag you'll really need to tweak is the core mask -c
. Set it so
there is one more core than the number of ports you plan to use.
To control traffic and see how scripting works, see controller/example.py
More detailed documentation coming soon.
Install clang-format
and run make format
before submitting a pull request.