blob: 3edcf37d2ed5e2bbbf4fb81ec9459b8e6b06ff87 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
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
|