[PATCH] examples/l3fwd: fix compilation when DP debug on

Andrei-Niculae Petre p31andrei at gmail.com
Tue Apr 14 04:51:37 CEST 2026


Previously, l3fwd example app would fail to compile ([1]) if one would
put RTE_LOG_DP_LEVEL=RTE_LOG_DEBUG in config/rte_config.h and try to
compile dpdk; this path was not enabled via compiling debug build
(--buildtype=debug) alone, but needed the data path to be at debug
level.

[1] https://bugs.dpdk.org/show_bug.cgi?id=1318

Bugzilla ID: 1318
Fixes: 6de0ea50e9b9 ("examples/l3fwd: merge l3fwd-acl example")
Cc: stable at dpdk.org
Cc: sean.morrissey at intel.com

Signed-off-by: Andrei-Niculae Petre <p31andrei at gmail.com>
---
 .mailmap                   |  1 +
 MAINTAINERS                |  2 ++
 examples/l3fwd/l3fwd_acl.c | 27 ++++++++++++++-------------
 examples/l3fwd/l3fwd_acl.h |  6 ------
 4 files changed, 17 insertions(+), 19 deletions(-)

diff --git a/.mailmap b/.mailmap
index cdaa471715..df999d00d8 100644
--- a/.mailmap
+++ b/.mailmap
@@ -106,6 +106,7 @@ Andre Muezerie <andremue at linux.microsoft.com> <andremue at microsoft.com>
 Andre Richter <andre.o.richter at gmail.com>
 Andrea Arcangeli <aarcange at redhat.com>
 Andrea Grandi <andrea.grandi at intel.com>
+Andrei-Niculae Petre <p31andrei at gmail.com>
 Andrew Bailey <abailey at iol.unh.edu>
 Andrew Boyer <andrew.boyer at amd.com> <aboyer at pensando.io>
 Andrew Harvey <agh at cisco.com>
diff --git a/MAINTAINERS b/MAINTAINERS
index 5683b87e4a..501f312ba1 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1740,6 +1740,8 @@ F: lib/acl/
 F: doc/guides/prog_guide/packet_classif_access_ctrl.rst
 F: app/test-acl/
 F: app/test/test_acl.*
+F: examples/l3fwd/l3fwd_acl*
+F: doc/guides/sample_app_ug/l3_forward.rst
 
 EFD
 M: Byron Marohn <byron.marohn at intel.com>
diff --git a/examples/l3fwd/l3fwd_acl.c b/examples/l3fwd/l3fwd_acl.c
index a1275e18bc..8e24f1c599 100644
--- a/examples/l3fwd/l3fwd_acl.c
+++ b/examples/l3fwd/l3fwd_acl.c
@@ -235,6 +235,9 @@ enum {
 RTE_ACL_RULE_DEF(acl4_rule, RTE_DIM(ipv4_defs));
 RTE_ACL_RULE_DEF(acl6_rule, RTE_DIM(ipv6_defs));
 
+/* Must be included before acl_config definition to enable L3FWDACL_DEBUG */
+#include "l3fwd_acl.h"
+
 static struct {
 	struct rte_acl_ctx *acx_ipv4[NB_SOCKETS];
 	struct rte_acl_ctx *acx_ipv6[NB_SOCKETS];
@@ -251,8 +254,6 @@ static struct rte_acl_rule *acl_base_ipv4, *route_base_ipv4,
 static unsigned int acl_num_ipv4, route_num_ipv4,
 		acl_num_ipv6, route_num_ipv6;
 
-#include "l3fwd_acl.h"
-
 #include "l3fwd_acl_scalar.h"
 
 /*
@@ -773,7 +774,7 @@ read_config_files_acl(void)
 	}
 }
 
-void
+static void
 print_one_ipv4_rule(struct acl4_rule *rule, int extra)
 {
 	char abuf[INET6_ADDRSTRLEN];
@@ -800,7 +801,7 @@ print_one_ipv4_rule(struct acl4_rule *rule, int extra)
 			rule->data.userdata);
 }
 
-void
+static void
 print_one_ipv6_rule(struct acl6_rule *rule, int extra)
 {
 	unsigned char a, b, c, d;
@@ -855,17 +856,17 @@ print_one_ipv6_rule(struct acl6_rule *rule, int extra)
 
 #ifdef L3FWDACL_DEBUG
 static inline void
-dump_acl4_rule(struct rte_mbuf *m, uint32_t sig)
+dump_acl4_rule(const struct rte_mbuf *m, uint32_t sig)
 {
-	char abuf[INET6_ADDRSTRLEN];
+	char abuf[INET_ADDRSTRLEN];
 	uint32_t offset = sig & ~ACL_DENY_SIGNATURE;
 	struct rte_ipv4_hdr *ipv4_hdr =
 		rte_pktmbuf_mtod_offset(m, struct rte_ipv4_hdr *,
 					sizeof(struct rte_ether_hdr));
 
-	printf("Packet Src:%s ", inet_ntop(AF_INET, ipv4_hdr->src_addr,
+	printf("Packet Src:%s ", inet_ntop(AF_INET, &ipv4_hdr->src_addr,
 		abuf, sizeof(abuf)));
-	printf("Dst:%s ", inet_ntop(AF_INET, ipv4_hdr->dst_addr,
+	printf("Dst:%s ", inet_ntop(AF_INET, &ipv4_hdr->dst_addr,
 		abuf, sizeof(abuf)));
 
 	printf("Src port:%hu,Dst port:%hu ",
@@ -879,7 +880,7 @@ dump_acl4_rule(struct rte_mbuf *m, uint32_t sig)
 }
 
 static inline void
-dump_acl6_rule(struct rte_mbuf *m, uint32_t sig)
+dump_acl6_rule(const struct rte_mbuf *m, uint32_t sig)
 {
 	char abuf[INET6_ADDRSTRLEN];
 	uint32_t offset = sig & ~ACL_DENY_SIGNATURE;
@@ -888,10 +889,10 @@ dump_acl6_rule(struct rte_mbuf *m, uint32_t sig)
 					sizeof(struct rte_ether_hdr));
 
 	printf("Packet Src");
-	printf("%s", inet_ntop(AF_INET6, ipv6_hdr->src_addr,
+	printf("%s", inet_ntop(AF_INET6, &ipv6_hdr->src_addr,
 		abuf, sizeof(abuf)));
 	printf("\nDst");
-	printf("%s", inet_ntop(AF_INET6, ipv6_hdr->dst_addr,
+	printf("%s", inet_ntop(AF_INET6, &ipv6_hdr->dst_addr,
 		abuf, sizeof(abuf)));
 
 	printf("\nSrc port:%hu,Dst port:%hu ",
@@ -984,8 +985,8 @@ dump_denied_pkt(const struct rte_mbuf *pkt, uint32_t res)
 	if ((res & ACL_DENY_SIGNATURE) != 0) {
 		if (RTE_ETH_IS_IPV4_HDR(pkt->packet_type))
 			dump_acl4_rule(pkt, res);
-		else if (RTE_ETH_IS_IPV6_HDR(pkt[i]->packet_type))
-			dump_acl6_rule(pkt[i], res[i]);
+		else if (RTE_ETH_IS_IPV6_HDR(pkt->packet_type))
+			dump_acl6_rule(pkt, res);
 	}
 #else
 	RTE_SET_USED(pkt);
diff --git a/examples/l3fwd/l3fwd_acl.h b/examples/l3fwd/l3fwd_acl.h
index 05af62fe10..a34a08eb7f 100644
--- a/examples/l3fwd/l3fwd_acl.h
+++ b/examples/l3fwd/l3fwd_acl.h
@@ -48,10 +48,4 @@
  */
 #define FWD_PORT_SHIFT 1
 
-void
-print_one_ipv4_rule(struct acl4_rule *rule, int extra);
-
-void
-print_one_ipv6_rule(struct acl6_rule *rule, int extra);
-
 #endif /* L3FWD_ACL_H */
-- 
2.39.5



More information about the dev mailing list