diff options
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 |