Added hex dump tracing to ipv6, ipv4 and ppp modules

pull/4911/head
Mika Leppänen 2017-08-03 15:08:15 +03:00
parent 23f8ac903e
commit 41c647b1c9
5 changed files with 31 additions and 0 deletions

View File

@ -117,6 +117,13 @@ void assert_printf(char *msg, int line, char *file);
#endif // MBED_CONF_LWIP_USE_MBED_TRACE
#endif
#if TRACE_TO_ASCII_HEX_DUMP
#define TRACE_TO_ASCII_HEX_DUMPF(prefix, len, data) trace_to_ascii_hex_dump(prefix, len, data)
void trace_to_ascii_hex_dump(char* prefix, int len, char *data);
#else
#define TRACE_TO_ASCII_HEX_DUMPF(prefix, len, data) ((void)0)
#endif
#include "cmsis.h"
#define LWIP_PLATFORM_HTONS(x) __REV16(x)
#define LWIP_PLATFORM_HTONL(x) __REV(x)

View File

@ -590,4 +590,23 @@ void assert_printf(char *msg, int line, char *file) {
}
#endif // MBED_CONF_LWIP_USE_MBED_TRACE
#if TRACE_TO_ASCII_HEX_DUMP
void trace_to_ascii_hex_dump(char *prefix, int len, char *data)
{
int line_len = 0;
for (int i = 0; i < len; i++) {
if ((line_len % 16) == 0) {
if (line_len != 0) {
LWIP_PLATFORM_DIAG(("\n"));
}
LWIP_PLATFORM_DIAG(("%s %06x", prefix, line_len));
}
line_len++;
LWIP_PLATFORM_DIAG((" %02x", data[i]));
}
LWIP_PLATFORM_DIAG(("\n"));
}
#endif
#endif /* LWIP_DEBUG */

View File

@ -1048,6 +1048,8 @@ ip4_debug_print(struct pbuf *p)
{
struct ip_hdr *iphdr = (struct ip_hdr *)p->payload;
TRACE_TO_ASCII_HEX_DUMPF("IP>", lwip_ntohs(IPH_LEN(iphdr)), (char *) iphdr);
LWIP_DEBUGF(IP_DEBUG, ("IP header:\n"));
LWIP_DEBUGF(IP_DEBUG, ("+-------------------------------+\n"));
LWIP_DEBUGF(IP_DEBUG, ("|%2"S16_F" |%2"S16_F" | 0x%02"X16_F" | %5"U16_F" | (v, hl, tos, len)\n",

View File

@ -1101,6 +1101,8 @@ ip6_debug_print(struct pbuf *p)
{
struct ip6_hdr *ip6hdr = (struct ip6_hdr *)p->payload;
TRACE_TO_ASCII_HEX_DUMPF("IP>", IP6H_PLEN(ip6hdr) + 40, (char *) ip6hdr);
LWIP_DEBUGF(IP6_DEBUG, ("IPv6 header:\n"));
LWIP_DEBUGF(IP6_DEBUG, ("+-------------------------------+\n"));
LWIP_DEBUGF(IP6_DEBUG, ("| %2"U16_F" | %3"U16_F" | %7"U32_F" | (ver, class, flow)\n",

View File

@ -727,6 +727,7 @@ void ppp_dump_packet(ppp_pcb *pcb, const char *tag, unsigned char *p, int len) {
return;
}
TRACE_TO_ASCII_HEX_DUMPF("PPP>", len, (char *) p);
ppp_dbglog("%s %P", tag, p, len);
}
#endif /* PRINTPKT_SUPPORT */