From 07996253f11df38d623eb217405a113ebdf1c5b9 Mon Sep 17 00:00:00 2001 From: Paul Chaignon Date: Fri, 10 Sep 2021 16:24:21 +0200 Subject: [PATCH] bpf/Makefile: Enable setting complexity options In bpf/Makefile, we use environment variables MAX_XXX_OPTIONS to define the options to use when trying to maximize the program sizes for complexity tests. This commit simply makes it possible to override these variables from the command line, to generate different programs for complexity tests. For example, one can run: $ MAX_HOST_OPTIONS="-DENABLE_IPV4 -DENABLE_IPV6" make -C bpf bpf_host.o Signed-off-by: Paul Chaignon --- bpf/Makefile | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/bpf/Makefile b/bpf/Makefile index 4d7c619fff1b..af16e84aba4e 100644 --- a/bpf/Makefile +++ b/bpf/Makefile @@ -105,10 +105,12 @@ MAX_BASE_OPTIONS += -DENABLE_TPROXY=1 -DENABLE_REDIRECT_FAST=1 -DENABLE_BANDWIDT endif endif +ifndef MAX_LB_OPTIONS MAX_LB_OPTIONS = $(MAX_BASE_OPTIONS) -DENABLE_NAT46=1 -DENCAP_IFINDEX=1 -DTUNNEL_MODE=1 ifneq ("$(KERNEL)","49") MAX_LB_OPTIONS += -DLB_SELECTION=1 -DLB_SELECTION_MAGLEV=1 endif +endif bpf_sock.ll: bpf_sock.c $(LIB) $(QUIET) set -e; \ @@ -125,10 +127,12 @@ bpf_sock.o: bpf_sock.ll @$(ECHO_CC) $(QUIET) ${LLC} ${LLC_FLAGS} -filetype=obj -o $@ $(patsubst %.o,%.ll,$@) +ifndef MAX_OVERLAY_OPTIONS MAX_OVERLAY_OPTIONS = $(MAX_BASE_OPTIONS) -DENCAP_IFINDEX=1 -DTUNNEL_MODE=1 ifneq ("$(KERNEL)","49") MAX_OVERLAY_OPTIONS += -DLB_SELECTION=1 -DLB_SELECTION_MAGLEV=1 endif +endif bpf_overlay.ll: bpf_overlay.c $(LIB) $(QUIET) set -e; \ @@ -162,10 +166,12 @@ HOST_OPTIONS = $(LXC_OPTIONS) \ -DENABLE_IPV4:-DENABLE_IPV6:-DENCAP_IFINDEX:-DTUNNEL_MODE:-DPOLICY_VERDICT_NOTIFY:-DENABLE_HOST_SERVICES_UDP:-DENABLE_HOST_SERVICES_TCP:-DENABLE_NODEPORT:-DENABLE_NODEPORT_ACCELERATION:-DENABLE_DSR:-DENABLE_DSR_HYBRID:-DENABLE_PREFILTER:-DENABLE_HOST_FIREWALL: \ -DENABLE_IPV4:-DENABLE_IPV6:-DENCAP_IFINDEX:-DTUNNEL_MODE:-DPOLICY_VERDICT_NOTIFY:-DENABLE_HOST_SERVICES_UDP:-DENABLE_HOST_SERVICES_TCP:-DENABLE_NODEPORT:-DENABLE_NODEPORT_ACCELERATION:-DENABLE_DSR:-DENABLE_DSR_HYBRID:-DENABLE_PREFILTER:-DENABLE_SESSION_AFFINITY:-DENABLE_HOST_FIREWALL: +ifndef MAX_HOST_OPTIONS MAX_HOST_OPTIONS = $(MAX_BASE_OPTIONS) -DENCAP_IFINDEX=1 -DTUNNEL_MODE=1 ifneq ("$(KERNEL)","49") MAX_HOST_OPTIONS += -DENABLE_EGRESS_GATEWAY=1 endif +endif bpf_host.ll: bpf_host.c $(LIB) $(QUIET) set -e; \ @@ -194,10 +200,12 @@ XDP_OPTIONS = $(LB_OPTIONS) \ -DENABLE_NODEPORT_ACCELERATION:-DENABLE_IPV4:-DENABLE_IPV6:-DENABLE_NODEPORT:-DENABLE_DSR:-DENABLE_CAPTURE:-DDSR_ENCAP_MODE:-DDSR_ENCAP_NONE:-DDSR_ENCAP_IPIP=2 \ -DENABLE_NODEPORT_ACCELERATION:-DENABLE_IPV4:-DENABLE_IPV6:-DENABLE_NODEPORT:-DENABLE_DSR:-DENABLE_CAPTURE:-DDSR_ENCAP_MODE:-DDSR_ENCAP_IPIP:-DDSR_ENCAP_NONE=2 +ifndef MAX_XDP_OPTIONS MAX_XDP_OPTIONS = $(MAX_BASE_OPTIONS) -DENABLE_PREFILTER=1 ifneq ("$(KERNEL)","49") MAX_XDP_OPTIONS += -DLB_SELECTION=1 -DLB_SELECTION_MAGLEV=1 endif +endif bpf_xdp.ll: bpf_xdp.c $(LIB) $(QUIET) set -e; \ @@ -247,10 +255,12 @@ LXC_OPTIONS = \ # These options are intended to max out the BPF program complexity. it is load # tested as well. +ifndef MAX_LXC_OPTIONS MAX_LXC_OPTIONS = $(MAX_BASE_OPTIONS) -DENCAP_IFINDEX=1 -DTUNNEL_MODE=1 ifneq ("$(KERNEL)","49") MAX_LXC_OPTIONS += -DENABLE_EGRESS_GATEWAY=1 endif +endif bpf_lxc.ll: bpf_lxc.c $(LIB) $(QUIET) set -e; \