Skip to content

Commit 41c647b

Browse files
author
Mika Leppänen
committed
Added hex dump tracing to ipv6, ipv4 and ppp modules
1 parent 23f8ac9 commit 41c647b

File tree

5 files changed

+31
-0
lines changed

5 files changed

+31
-0
lines changed

features/FEATURE_LWIP/lwip-interface/lwip-sys/arch/cc.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,13 @@ void assert_printf(char *msg, int line, char *file);
117117
#endif // MBED_CONF_LWIP_USE_MBED_TRACE
118118
#endif
119119

120+
#if TRACE_TO_ASCII_HEX_DUMP
121+
#define TRACE_TO_ASCII_HEX_DUMPF(prefix, len, data) trace_to_ascii_hex_dump(prefix, len, data)
122+
void trace_to_ascii_hex_dump(char* prefix, int len, char *data);
123+
#else
124+
#define TRACE_TO_ASCII_HEX_DUMPF(prefix, len, data) ((void)0)
125+
#endif
126+
120127
#include "cmsis.h"
121128
#define LWIP_PLATFORM_HTONS(x) __REV16(x)
122129
#define LWIP_PLATFORM_HTONL(x) __REV(x)

features/FEATURE_LWIP/lwip-interface/lwip-sys/arch/lwip_sys_arch.c

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -590,4 +590,23 @@ void assert_printf(char *msg, int line, char *file) {
590590
}
591591
#endif // MBED_CONF_LWIP_USE_MBED_TRACE
592592

593+
#if TRACE_TO_ASCII_HEX_DUMP
594+
void trace_to_ascii_hex_dump(char *prefix, int len, char *data)
595+
{
596+
int line_len = 0;
597+
598+
for (int i = 0; i < len; i++) {
599+
if ((line_len % 16) == 0) {
600+
if (line_len != 0) {
601+
LWIP_PLATFORM_DIAG(("\n"));
602+
}
603+
LWIP_PLATFORM_DIAG(("%s %06x", prefix, line_len));
604+
}
605+
line_len++;
606+
LWIP_PLATFORM_DIAG((" %02x", data[i]));
607+
}
608+
LWIP_PLATFORM_DIAG(("\n"));
609+
}
610+
#endif
611+
593612
#endif /* LWIP_DEBUG */

features/FEATURE_LWIP/lwip-interface/lwip/src/core/ipv4/lwip_ip4.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1048,6 +1048,8 @@ ip4_debug_print(struct pbuf *p)
10481048
{
10491049
struct ip_hdr *iphdr = (struct ip_hdr *)p->payload;
10501050

1051+
TRACE_TO_ASCII_HEX_DUMPF("IP>", lwip_ntohs(IPH_LEN(iphdr)), (char *) iphdr);
1052+
10511053
LWIP_DEBUGF(IP_DEBUG, ("IP header:\n"));
10521054
LWIP_DEBUGF(IP_DEBUG, ("+-------------------------------+\n"));
10531055
LWIP_DEBUGF(IP_DEBUG, ("|%2"S16_F" |%2"S16_F" | 0x%02"X16_F" | %5"U16_F" | (v, hl, tos, len)\n",

features/FEATURE_LWIP/lwip-interface/lwip/src/core/ipv6/lwip_ip6.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1101,6 +1101,8 @@ ip6_debug_print(struct pbuf *p)
11011101
{
11021102
struct ip6_hdr *ip6hdr = (struct ip6_hdr *)p->payload;
11031103

1104+
TRACE_TO_ASCII_HEX_DUMPF("IP>", IP6H_PLEN(ip6hdr) + 40, (char *) ip6hdr);
1105+
11041106
LWIP_DEBUGF(IP6_DEBUG, ("IPv6 header:\n"));
11051107
LWIP_DEBUGF(IP6_DEBUG, ("+-------------------------------+\n"));
11061108
LWIP_DEBUGF(IP6_DEBUG, ("| %2"U16_F" | %3"U16_F" | %7"U32_F" | (ver, class, flow)\n",

features/FEATURE_LWIP/lwip-interface/lwip/src/netif/ppp/lwip_utils.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -727,6 +727,7 @@ void ppp_dump_packet(ppp_pcb *pcb, const char *tag, unsigned char *p, int len) {
727727
return;
728728
}
729729

730+
TRACE_TO_ASCII_HEX_DUMPF("PPP>", len, (char *) p);
730731
ppp_dbglog("%s %P", tag, p, len);
731732
}
732733
#endif /* PRINTPKT_SUPPORT */

0 commit comments

Comments
 (0)