net: lwip: add CONFIG_LWIP_DEBUG_RXTX
authorJerome Forissier <jerome.forissier@linaro.org>
Thu, 6 Mar 2025 14:32:22 +0000 (15:32 +0100)
committerJerome Forissier <jerome.forissier@linaro.org>
Tue, 11 Mar 2025 13:16:03 +0000 (14:16 +0100)
Add Kconfig symbol LWIP_DEBUG_RXTX to dump the incoming and outgoing
packets when NET_LWIP=y.

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
net/lwip/Kconfig
net/lwip/net-lwip.c

index 40345ce..d28a8a7 100644 (file)
@@ -10,6 +10,12 @@ config LWIP_DEBUG
          Prints messages to the console regarding network packets that go in
           and out of the lwIP library.
 
+config LWIP_DEBUG_RXTX
+       bool "Dump packets sent and received by lwIP"
+       help
+         Performs an hexadecimal & ASCII dump of the data received and sent by
+         the lwIP network stack.
+
 config LWIP_ASSERT
        bool "Enable assertions in the lwIP library"
        help
index 5a2a866..c00a7fe 100644 (file)
@@ -5,6 +5,7 @@
 #include <command.h>
 #include <dm/device.h>
 #include <dm/uclass.h>
+#include <hexdump.h>
 #include <lwip/ip4_addr.h>
 #include <lwip/err.h>
 #include <lwip/netif.h>
@@ -36,6 +37,12 @@ static err_t net_lwip_tx(struct netif *netif, struct pbuf *p)
        void *pp = NULL;
        int err;
 
+       if (CONFIG_IS_ENABLED(LWIP_DEBUG_RXTX)) {
+               printf("net_lwip_tx: %u bytes, udev %s\n", p->len, udev->name);
+               print_hex_dump("net_lwip_tx: ", 0, 16, 1, p->payload, p->len,
+                              true);
+       }
+
        if ((unsigned long)p->payload % PKTALIGN) {
                /*
                 * Some net drivers have strict alignment requirements and may
@@ -265,6 +272,13 @@ int net_lwip_rx(struct udevice *udev, struct netif *netif)
                flags = 0;
 
                if (len > 0) {
+                       if (CONFIG_IS_ENABLED(LWIP_DEBUG_RXTX)) {
+                               printf("net_lwip_tx: %u bytes, udev %s \n", len,
+                                      udev->name);
+                               print_hex_dump("net_lwip_rx: ", 0, 16, 1,
+                                              packet, len, true);
+                       }
+
                        pbuf = alloc_pbuf_and_copy(packet, len);
                        if (pbuf)
                                netif->input(pbuf, netif);