From 067a3498c545aeb1334b3eceea5dc658fda408cc Mon Sep 17 00:00:00 2001
From: Martine Lenders <mlenders@inf.fu-berlin.de>
Date: Mon, 20 Apr 2015 10:54:03 +0200
Subject: [PATCH] netif_hdr: add print function

---
 Makefile.dep                                  |  1 +
 sys/Makefile                                  |  3 ++
 sys/include/net/ng_netif/hdr.h                | 13 +++++++
 sys/net/crosslayer/ng_netif/hdr/Makefile      |  3 ++
 .../ng_netif/hdr/ng_netif_hdr_print.c         | 37 +++++++++++++++++++
 sys/net/crosslayer/ng_pktdump/ng_pktdump.c    | 23 +-----------
 6 files changed, 58 insertions(+), 22 deletions(-)
 create mode 100644 sys/net/crosslayer/ng_netif/hdr/Makefile
 create mode 100644 sys/net/crosslayer/ng_netif/hdr/ng_netif_hdr_print.c

diff --git a/Makefile.dep b/Makefile.dep
index 549493a12d..f33348d89c 100644
--- a/Makefile.dep
+++ b/Makefile.dep
@@ -100,6 +100,7 @@ ifneq (,$(filter ng_netbase,$(USEMODULE)))
   USEMODULE += ng_netapi
   USEMODULE += ng_netreg
   USEMODULE += ng_netif
+  USEMODULE += ng_netif_hdr
   USEMODULE += ng_pktbuf
 endif
 
diff --git a/sys/Makefile b/sys/Makefile
index 9ac918dd98..da888e73cf 100644
--- a/sys/Makefile
+++ b/sys/Makefile
@@ -86,6 +86,9 @@ endif
 ifneq (,$(filter ng_netif,$(USEMODULE)))
     DIRS += net/crosslayer/ng_netif
 endif
+ifneq (,$(filter ng_netif_hdr,$(USEMODULE)))
+    DIRS += net/crosslayer/ng_netif/hdr
+endif
 ifneq (,$(filter ng_netreg,$(USEMODULE)))
     DIRS += net/crosslayer/ng_netreg
 endif
diff --git a/sys/include/net/ng_netif/hdr.h b/sys/include/net/ng_netif/hdr.h
index 8e58c0da33..c77ba30f13 100644
--- a/sys/include/net/ng_netif/hdr.h
+++ b/sys/include/net/ng_netif/hdr.h
@@ -32,6 +32,12 @@
 extern "C" {
 #endif
 
+/**
+ * @brief   Maximum length of the l2 addresses of the generic interface header
+ *          in bytes.
+ */
+#define NG_NETIF_HDR_L2ADDR_MAX_LEN     (8)
+
 /**
  * @{
  * @name    Flags for the ng_netif_hdr_t
@@ -208,6 +214,13 @@ static inline ng_pktsnip_t *ng_netif_hdr_build(uint8_t *src, uint8_t src_len,
     return pkt;
 }
 
+/**
+ * @brief   Outputs a generic interface header to stdout.
+ *
+ * @param[in] hdr   A generic interface header.
+ */
+void ng_netif_hdr_print(ng_netif_hdr_t *hdr);
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/sys/net/crosslayer/ng_netif/hdr/Makefile b/sys/net/crosslayer/ng_netif/hdr/Makefile
new file mode 100644
index 0000000000..0615f67908
--- /dev/null
+++ b/sys/net/crosslayer/ng_netif/hdr/Makefile
@@ -0,0 +1,3 @@
+MODULE = ng_netif_hdr
+
+include $(RIOTBASE)/Makefile.base
diff --git a/sys/net/crosslayer/ng_netif/hdr/ng_netif_hdr_print.c b/sys/net/crosslayer/ng_netif/hdr/ng_netif_hdr_print.c
new file mode 100644
index 0000000000..0c7bd3b71b
--- /dev/null
+++ b/sys/net/crosslayer/ng_netif/hdr/ng_netif_hdr_print.c
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2015 Martine Lenders <mlenders@inf.fu-berlin.de>
+ *
+ * This file is subject to the terms and conditions of the GNU Lesser
+ * General Public License v2.1. See the file LICENSE in the top level
+ * directory for more details.
+ */
+
+/**
+ * @{
+ *
+ * @file
+ */
+
+#include <stdio.h>
+
+#include "net/ng_netif.h"
+#include "net/ng_netif/hdr.h"
+
+void ng_netif_hdr_print(ng_netif_hdr_t *hdr)
+{
+    char addr_str[NG_NETIF_HDR_L2ADDR_MAX_LEN * 3];
+
+    printf("if_pid: %" PRIkernel_pid "  ", hdr->if_pid);
+    printf("rssi: %" PRIu8 "  ", hdr->rssi);
+    printf("lqi: %" PRIu8 "\n", hdr->lqi);
+    printf("src_l2addr: %s\n",
+           ng_netif_addr_to_str(addr_str, sizeof(addr_str),
+                                ng_netif_hdr_get_src_addr(hdr),
+                                (size_t)hdr->src_l2addr_len));
+    printf("dst_l2addr: %s\n",
+           ng_netif_addr_to_str(addr_str, sizeof(addr_str),
+                                ng_netif_hdr_get_dst_addr(hdr),
+                                (size_t)hdr->dst_l2addr_len));
+}
+
+/** @} */
diff --git a/sys/net/crosslayer/ng_pktdump/ng_pktdump.c b/sys/net/crosslayer/ng_pktdump/ng_pktdump.c
index 5498fb55a1..44c3e70ed1 100644
--- a/sys/net/crosslayer/ng_pktdump/ng_pktdump.c
+++ b/sys/net/crosslayer/ng_pktdump/ng_pktdump.c
@@ -41,27 +41,6 @@ static kernel_pid_t _pid = KERNEL_PID_UNDEF;
  */
 static char _stack[NG_PKTDUMP_STACKSIZE];
 
-#define ADDR_STR_MAX    (24)
-
-#ifdef MODULE_NG_NETIF
-static void _dump_netif_hdr(ng_netif_hdr_t *hdr)
-{
-    char addr_str[ADDR_STR_MAX];
-
-    printf("if_pid: %" PRIkernel_pid "  ", hdr->if_pid);
-    printf("rssi: %" PRIu8 "  ", hdr->rssi);
-    printf("lqi: %" PRIu8 "\n", hdr->lqi);
-    printf("src_l2addr: %s\n",
-           ng_netif_addr_to_str(addr_str, sizeof(addr_str),
-                                ng_netif_hdr_get_src_addr(hdr),
-                                (size_t)hdr->src_l2addr_len));
-    printf("dst_l2addr: %s\n",
-           ng_netif_addr_to_str(addr_str, sizeof(addr_str),
-                                ng_netif_hdr_get_dst_addr(hdr),
-                                (size_t)hdr->dst_l2addr_len));
-}
-#endif
-
 static void _dump_snip(ng_pktsnip_t *pkt)
 {
     switch (pkt->type) {
@@ -72,7 +51,7 @@ static void _dump_snip(ng_pktsnip_t *pkt)
 #ifdef MODULE_NG_NETIF
         case NG_NETTYPE_NETIF:
             printf("NETTYPE_NETIF (%i)\n", pkt->type);
-            _dump_netif_hdr(pkt->data);
+            ng_netif_hdr_print(pkt->data);
             break;
 #endif
 #ifdef MODULE_NG_SIXLOWPAN
-- 
GitLab