High performance implementation of the Tapdance decoy routing design.
These instructions are for the standard build, which includes drivers for Intel i40e- and ixgbe-based NICs.
sudo apt-get update$HOME/tapdance$HOME/tapdance, run ./scripts/tapdance-prereqs.sh (NOT sudo/as root)$HOME/tapdance, run ./scripts/tapdance-build.sh (NOT sudo/as root)$HOME/tapdance/libtapdance, run ./genkey (unless you already have a keypair you're planning to use for this station).gotapdance/assets/station_pubkeyDo this after the above station installation process, as well as after every reboot.
$HOME/tapdance, run sudo ./startup.sh. The output should include the following instructions on running the station.Use the service interface, as described in sysvinit/README. Note that you might need to wait a few seconds after starting zbalance before you start tapdance, to let zbalance come fully online.
If you want to recompile before running:
$HOME/tapdance, run ./scripts/tapdance-build.sh (NOT sudo/as root)Run these three programs in separate screens, in this order.
$HOME/tapdance/pfring-framework/userland/examples_zc, run sudo ./zbalance_ipc -i zc:$INTERFACE -c 99 -n 4 -m 1 -g 1.$HOME/tapdance/gobbler, run ./gobbler after building with go build gobbler.go. If gobbler isn't run, the station will still work; the Gobbler's purpose is to collect and report statistics.$HOME/tapdance/pfring-framework/userland/examples, run sudo RUST_BACKTRACE=1 ./zc_tapdance -c 99 -n 4 -K /path/to/privkey.The -n and -c arguments are number of processes to split over, and cluster ID. You can safely change them (-n must be no more than number of logical CPU cores on the host machine), but you must give zbalance_ipc and zc_tapdance the same values.
After completing the previous steps, you should have an email from an ntop employee, giving you an OrderId.
./zcount -i theIFname./zcount -h to get PF_RING ZC version.sudo ./zcount -C -i zc:enp5s0f0If you have previously configured the station for ZC operation, you must reboot in order to run non-ZC! (You can run non-ZC and then switch to ZC without rebooting).
To run the non-zero-copy multi-process TapDance station, follow the installation and setup instructions as above, but:
sudo ./startup.sh, run sudo ./startup.sh --nozerocopy../scripts/tapdance-build.sh, run ./scripts/tapdance-build.sh --nozerocopy.zbalance_ipc at all.sudo RUST_BACKTRACE=1 ./tapdance -i $INTERFACE -c 7 -o 0 -n 4 -K /path/to/privkey.The gobbler remains the same. Running tapdance-prereqs.sh remains the same. n and c are the same as in the ZC version; -o is core id offset. (So, -o 3 -n 4 would use cores 3,4,5,6).
This is the TapDance station code. You do not need this to be a user of TapDance; for that, you will need the client.