Figure 7

DPDK-l2fwd (HW)

reldiff/latencies-rate10000-dpdk-l2fwd-hw.pcap.reldiff.pdf.svg
Rate: 10000 pkts/s

DPDK-l2fwd (VM)

reldiff/latencies-rate10000-dpdk-l2fwd-vm.pcap.reldiff.pdf.svg
Rate: 10000 pkts/s

Snort-filter (HW)

figures/reldiff/latencies-rate10000-snort-filter-hw.pcap.reldiff.pdf.svg
Rate: 10000 pkts/s

Snort-filter (VM)

figures/reldiff/latencies-rate10000-snort-filter-vm.pcap.reldiff.pdf.svg
Rate: 10000 pkts/s

Snort-fwd (HW)

figures/reldiff/latencies-rate90000-snort-fwd-hw.pcap.reldiff.pdf.svg
Rate: 90000 pkts/s

Snort-fwd (VM)

figures/reldiff/latencies-rate90000-snort-fwd-vm.pcap.reldiff.pdf.svg
Rate: 90000 pkts/s

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.