Figure 7
DPDK-l2fwd (HW)
DPDK-l2fwd (VM)
Snort-filter (HW)
Snort-filter (VM)
Snort-fwd (HW)
Snort-fwd (VM)
Steps to reproduce measurements
The setup and experiment execution for the worst-case measurements of DPDK-l2fwd (HW/VM), Snort-fwd (HW/VM), and Snort-filter (HW/VM) evaluation is part of the description for Figures 3, 5, and 6. The respective explanation for the RT kernel can be found here
Steps to reproduce figures
Raw data
Pcaps (DPDK-l2fwd (HW), DPDK-l2fwd (VM), Snort-fwd (HW), Snort-fwd (VM), Snort-filter (HW), Snort-filter (VM))
Evaluation execution
Setup evaluator
# install dependencies
apt install postgresql postgresql-client parallel python3-pip texlive-full zstd
python3 -m pip install pypacker
Generate figures
git clone https://github.com/gallenmu/hipnet21 /root/hipnet21
#decompress pcaps
cd /root/hipnet21
for i in $(find . -iname *.zst); do zstd --rm -d $i; done;
#create figures
# MPATH = dpdk-l2fwd | snort-fwd | snort-filter
# MODE = vm | hw
# RATE = 10000, 20000 ... 120000
cd /root/hipnet21/figures/$MPATH-nohz/$MODE/pcap
su postgres -c "createuser -s root"
dropdb --if-exists root
createdb root
export PGDATABASE=root
for i in /root/hipnet21/measurements/$MPATH/$MODE/pcap/*-pre-*.pcap; do /root/hipnet21/scripts/pcap-import.sh $i; /root/hipnet21/scripts/pcap-analysis.sh $i; done;
cd /root/hipnet21/low-latency/figures/$MPATH/$MODE/pcap
su postgres -c "createuser -s root"
dropdb --if-exists root
createdb root
export PGDATABASE=root
for i in /root/hipnet21/low-latency/measurements/$MPATH/$MODE/pcap/*-pre-*.pcap; do /root/hipnet21/low-latency/scripts/pcap-import.sh $i; /root/hipnet21/scripts/pcap-analysis.sh $i; done;
python3 /root/hipnet21/scripts/reldiff.py /root/hipnet21/low-latency/measurements/$MPATH/$MODE/latencies-pre-rate$RATE-$MPATH.pcap.hist.cdf.csv /root/hipnet21/measurements/$MPATH-nohz/$MODE/latencies-pre-rate$RATE-$MPATH.pcap.hist.cdf.csv > latencies-rate$RATE-$MPATH-$MODE.pcap.reldiff.csv
python3 /root/hipnet21/scripts/rel-hdrplot-tex-create.py .
for i in *.tex; do lualatex $i; done
Output
The precompiled output files can be found in the respective subfolders of the repository.