All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrei-Niculae Petre <p31andrei@gmail.com>
To: konstantin.ananyev@huawei.com
Cc: dev@dpdk.org, Andrei-Niculae Petre <p31andrei@gmail.com>,
	stable@dpdk.org, sean.morrissey@intel.com
Subject: [PATCH v2] examples/l3fwd: fix compilation when DP debug on
Date: Fri, 31 Jul 2026 16:37:39 +0300	[thread overview]
Message-ID: <20260731133739.223235-1-p31andrei@gmail.com> (raw)
In-Reply-To: <20260414025137.91776-1-p31andrei@gmail.com>

Update l3fwd example app to fix compilation when building dpdk with
RTE_LOG_DP_LEVEL=RTE_LOG_DEBUG in config/rte_config.h .
Move l3fwd_acl.h include above all #ifdef L3FWDACL_DEBUG checks,
as previously one ifdef would evaluate to false all the time (as
header include was added too late).

Adapt maintainers line from previous examples/l3fwd-acl (removed in
6de0ea50e9b9) to examples/l3fwd/l3fwd_acl* after l3fwd-acl app
unification into l3fwd. In 6de0ea50e9b9, a line with maintainer
expertise was removed.

Own testing of the l3fwd example:
1. It now compiles with "#define RTE_LOG_DP_LEVEL RTE_LOG_DEBUG" in
   config/rte_config.h. See Bugzilla ID 1318 comments for full error
   seen before this patch.
2. I ran the l3fwd app with IPv4/IPv6 ACL rules to see the prints (when
   RTE_LOG_DP_LEVEL RTE_LOG_DEBUG is set) in the application around ACL
   work as expected. See extract below (I added \ to format to 72chars):

// dump_acl4_rule extract:
Packet Src:192.168.1.100 Dst:192.168.1.101 Src port:2048,Dst port:1846 \
hit ACL 1 - 192.168.1.100/24 0.0.0.0/0 0 : 65535 0 : 65535 0x0/0x0 \
0xffffffff-0x1ffffffe-0xf0000001

// dump_acl6_rule extract:
Packet Src2001:db8:1::100
Dst2001:db8:1::101
Src port:32768,Dst port:21005 hit ACL 0 - \
2001:0db8:0001:0000:0000:0000:0000:0000/64 \
0000:0000:0000:0000:0000:0000:0000:0000/0 0 : 65535 0 : 65535 \
0x0/0x0 0xffffffff-0x1fffffff-0xf0000000

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

Signed-off-by: Andrei-Niculae Petre <p31andrei@gmail.com>
---
v2
* Rebase from latest main
* Shrink/simplify patch by not making print_one_ipv*_rule static
* Test l3fwd app with acl rules and add to description
---
 .mailmap                   |  1 +
 MAINTAINERS                |  2 ++
 examples/l3fwd/l3fwd_acl.c | 23 ++++++++++++-----------
 3 files changed, 15 insertions(+), 11 deletions(-)

diff --git a/.mailmap b/.mailmap
index fcb3d1bb3f..01a4bedf97 100644
--- a/.mailmap
+++ b/.mailmap
@@ -112,6 +112,7 @@ Andre Richter <andre.o.richter@gmail.com>
 Andrea Arcangeli <aarcange@redhat.com>
 Andrea Grandi <andrea.grandi@intel.com>
 Andrea Panattoni <apanatto@redhat.com>
+Andrei-Niculae Petre <p31andrei@gmail.com> <andrei.petre@keysight.com>
 Andrew Bailey <abailey@iol.unh.edu>
 Andrew Boyer <andrew.boyer@amd.com> <aboyer@pensando.io>
 Andrew Harvey <agh@cisco.com>
diff --git a/MAINTAINERS b/MAINTAINERS
index e99a65d197..6b6446a998 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1756,6 +1756,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: Yipeng Wang <yipeng1.wang@intel.com>
diff --git a/examples/l3fwd/l3fwd_acl.c b/examples/l3fwd/l3fwd_acl.c
index 4ee3411d2a..6f39923140 100644
--- a/examples/l3fwd/l3fwd_acl.c
+++ b/examples/l3fwd/l3fwd_acl.c
@@ -239,6 +239,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 any L3FWDACL_DEBUG define check. */
+#include "l3fwd_acl.h"
+
 static struct {
 	struct rte_acl_ctx *acx_ipv4[NB_SOCKETS];
 	struct rte_acl_ctx *acx_ipv6[NB_SOCKETS];
@@ -255,8 +258,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"
 
 /*
@@ -859,17 +860,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 ",
@@ -883,7 +884,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;
@@ -892,10 +893,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 ",
@@ -988,8 +989,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);
-- 
2.39.5


  reply	other threads:[~2026-07-31 13:38 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-04-14  2:51 [PATCH] examples/l3fwd: fix compilation when DP debug on Andrei-Niculae Petre
2026-07-31 13:37 ` Andrei-Niculae Petre [this message]
2026-09-08 18:10   ` [PATCH v2] " Stephen Hemminger
2026-09-08 19:16     ` Andrei Petre

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260731133739.223235-1-p31andrei@gmail.com \
    --to=p31andrei@gmail.com \
    --cc=dev@dpdk.org \
    --cc=konstantin.ananyev@huawei.com \
    --cc=sean.morrissey@intel.com \
    --cc=stable@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.