From ec0b07eb3744e77a85997895188a73a4b67bc2a8 Mon Sep 17 00:00:00 2001 From: Christian Deacon Date: Fri, 28 Mar 2025 22:21:31 -0400 Subject: [PATCH] Optimize XDP program when filter logging is disabled. --- src/xdp/prog.c | 13 ++++++++----- src/xdp/utils/rule.h | 10 ++++++---- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/xdp/prog.c b/src/xdp/prog.c index 7304fe0..440afcb 100644 --- a/src/xdp/prog.c +++ b/src/xdp/prog.c @@ -338,19 +338,22 @@ int xdp_prog_main(struct xdp_md *ctx) rule.flow_bps = flow_bps; rule.ip_pps = ip_pps; rule.ip_bps = ip_bps; - rule.now = now; rule.pkt_len = pkt_len; - rule.src_port = src_port; + #ifdef ENABLE_FILTER_LOGGING + rule.now = now; + rule.protocol = protocol; + rule.src_port = src_port; rule.dst_port = dst_port; #endif - rule.protocol = protocol; - + rule.iph = iph; - rule.iph6 = iph6; + rule.tcph = tcph; rule.udph = udph; rule.icmph = icmph; + + rule.iph6 = iph6; rule.icmph6 = icmp6h; #ifdef USE_NEW_LOOP diff --git a/src/xdp/utils/rule.h b/src/xdp/utils/rule.h index 3b8cdb3..5ba3cff 100644 --- a/src/xdp/utils/rule.h +++ b/src/xdp/utils/rule.h @@ -19,19 +19,21 @@ struct rule_ctx int action; u64 block_time; + int pkt_len; + u64 ip_pps; u64 ip_bps; u64 flow_pps; u64 flow_bps; - u64 now; - int pkt_len; - u16 src_port; #ifdef ENABLE_FILTER_LOGGING + u64 now; + + u8 protocol; + u16 src_port; u16 dst_port; #endif - u8 protocol; struct iphdr* iph; struct ipv6hdr* iph6;