From f3eb5247672a5ba1ee6f67757d0961ec715a0247 Mon Sep 17 00:00:00 2001 From: Remi Gacogne Date: Wed, 1 Mar 2023 14:03:22 +0100 Subject: [PATCH] dnsdist: Add an option to easily disable XDP logging (default) --- contrib/xdp-filter.ebpf.src | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/contrib/xdp-filter.ebpf.src b/contrib/xdp-filter.ebpf.src index 8577b08c08..aa435f8c98 100644 --- a/contrib/xdp-filter.ebpf.src +++ b/contrib/xdp-filter.ebpf.src @@ -1,9 +1,13 @@ #include "xdp.h" +#define DISABLE_LOGGING 1 + BPF_TABLE_PINNED("hash", uint32_t, struct map_value, v4filter, 1024, "/sys/fs/bpf/dnsdist/addr-v4"); BPF_TABLE_PINNED("hash", struct in6_addr, struct map_value, v6filter, 1024, "/sys/fs/bpf/dnsdist/addr-v6"); BPF_TABLE_PINNED("hash", struct dns_qname, struct map_value, qnamefilter, 1024, "/sys/fs/bpf/dnsdist/qnames"); +#ifndef DISABLE_LOGGING BPF_TABLE_PINNED("prog", int, int, progsarray, 2, "/sys/fs/bpf/dnsdist/progs"); +#endif /* DISABLE_LOGGING */ /* * bcc has added BPF_TABLE_PINNED7 to the latest commit of the master branch, but it has not yet been released. @@ -210,12 +214,16 @@ static inline enum xdp_action parseIPV4(struct xdp_md* ctx, struct cursor* c) ipv4->daddr = ipv4->saddr; ipv4->saddr = swap_ipv4; +#ifndef DISABLE_LOGGING progsarray.call(ctx, 1); +#endif /* DISABLE_LOGGING */ return XDP_TX; } if (value->action == DROP) { +#ifndef DISABLE_LOGGING progsarray.call(ctx, 0); +#endif /* DISABLE_LOGGING */ return XDP_DROP; } } @@ -295,11 +303,15 @@ static inline enum xdp_action parseIPV6(struct xdp_md* ctx, struct cursor* c) struct in6_addr swap_ipv6 = ipv6->daddr; ipv6->daddr = ipv6->saddr; ipv6->saddr = swap_ipv6; +#ifndef DISABLE_LOGGING progsarray.call(ctx, 1); +#endif /* DISABLE_LOGGING */ return XDP_TX; } if (value->action == DROP) { +#ifndef DISABLE_LOGGING progsarray.call(ctx, 0); +#endif /* DISABLE_LOGGING */ return XDP_DROP; } } -- 2.47.3