diff options
author | Toni Uhlig <matzeton@googlemail.com> | 2025-06-16 17:09:43 +0200 |
---|---|---|
committer | Toni Uhlig <matzeton@googlemail.com> | 2025-06-18 15:16:30 +0200 |
commit | 0730e77eb4aa9841e90a17f190b9ae7d80565054 (patch) | |
tree | b214414fb23070fcfcbfc880f78eb7b4cef987c8 /Makefile |
Initial commitmain
Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..3edcf37 --- /dev/null +++ b/Makefile @@ -0,0 +1,53 @@ +CC=clang-20 +IF=lo +ifneq ($(DEBUG),) +BPF_CFLAGS+=-DXDP_DEBUG=1 +endif + +all: xdp_udp_handler.o xdp_loader user_server user_client + +run: all + sudo ./xdp_loader $(IF) + +clean: + rm -f ./xdp_udp_handler.o ./xdp_loader ./user_server ./user_client + rm -f ./fit.log ./rtt.dat ./rtt_tmp.dat + +detach: + sudo bpftool net detach xdp dev $(IF) + +benchmark: all + @echo 'Running benchmark in user space..' + ./user_server & + ./user_client >./rtt_tmp.dat + cp ./rtt_tmp.dat ./rtt.dat + ./gnuplot.script + mv -v rtt.png benchmark-user-with-burst.png + # use only the last 90 data points + tail -n90 ./rtt_tmp.dat >./rtt.dat + ./gnuplot.script + mv -v rtt.png benchmark-user.png + @echo 'Running benchmark with XDP..' + $(MAKE) detach + $(MAKE) run + ./user_client >./rtt_tmp.dat + cp ./rtt_tmp.dat ./rtt.dat + ./gnuplot.script + mv -v rtt.png benchmark-xdp-with-burst.png + # use only the last 90 data points + tail -n90 ./rtt_tmp.dat >./rtt.dat + ./gnuplot.script + mv -v rtt.png benchmark-xdp.png + $(MAKE) detach + +xdp_udp_handler.o: xdp_udp_handler.c xdp_parser.h xdp_checksum.h + $(CC) -Wall -Wextra -O3 -g -target bpf -D__TARGET_ARCH_x86 $(BPF_CFLAGS) -c xdp_udp_handler.c -o xdp_udp_handler.o + +xdp_loader: xdp_loader.c + $(CC) -Wall -Wextra -O3 -g $(CFLAGS) xdp_loader.c -o xdp_loader $(shell pkg-config --cflags --libs libbpf) $(LDFLAGS) + +user_server: user_server.c + $(CC) -Wall -Wextra -O3 -g $(CFLAGS) user_server.c -o user_server + +user_client: user_client.c + $(CC) -Wall -Wextra -O3 -g $(CFLAGS) user_client.c -o user_client |