diff mbox

[v2,net-next,07/12] 6lowpan: add debug messages for 6LoWPAN fragmentation

Message ID 1364270372-19430-8-git-send-email-tony.cheneau@amnesiak.org
State Accepted, archived
Delegated to: David Miller
Headers show

Commit Message

Tony Cheneau March 26, 2013, 3:59 a.m. UTC
Add pr_debug() call in order to debug 6LoWPAN fragmentation and
reassembly.

Signed-off-by: Tony Cheneau <tony.cheneau@amnesiak.org>
---
 net/ieee802154/6lowpan.c | 25 +++++++++++++++++++++----
 1 file changed, 21 insertions(+), 4 deletions(-)
diff mbox

Patch

diff --git a/net/ieee802154/6lowpan.c b/net/ieee802154/6lowpan.c
index 4a62289..61eee9d 100644
--- a/net/ieee802154/6lowpan.c
+++ b/net/ieee802154/6lowpan.c
@@ -742,10 +742,16 @@  lowpan_process_data(struct sk_buff *skb)
 		/* adds the 3 MSB to the 8 LSB to retrieve the 11 bits length */
 		len = ((iphc0 & 7) << 8) | slen;
 
-		/* FRAGN */
-		if ((iphc0 & LOWPAN_DISPATCH_MASK) != LOWPAN_DISPATCH_FRAG1) {
+		if ((iphc0 & LOWPAN_DISPATCH_MASK) == LOWPAN_DISPATCH_FRAG1) {
+			pr_debug("%s received a FRAG1 packet (tag: %d, "
+				 "size of the entire IP packet: %d)",
+				 __func__, tag, len);
+		} else { /* FRAGN */
 			if (lowpan_fetch_skb_u8(skb, &offset))
 				goto unlock_and_drop;
+			pr_debug("%s received a FRAGN packet (tag: %d, "
+				 "size of the entire IP packet: %d, "
+				 "offset: %d)", __func__, tag, len, offset * 8);
 		}
 
 		/*
@@ -762,6 +768,8 @@  lowpan_process_data(struct sk_buff *skb)
 
 		/* alloc new frame structure */
 		if (!found) {
+			pr_debug("%s first fragment received for tag %d, "
+				 "begin packet reassembly", __func__, tag);
 			frame = lowpan_alloc_new_frame(skb, len, tag);
 			if (!frame)
 				goto unlock_and_drop;
@@ -784,6 +792,9 @@  lowpan_process_data(struct sk_buff *skb)
 			list_del(&frame->list);
 			spin_unlock_bh(&flist_lock);
 
+			pr_debug("%s successfully reassembled fragment "
+				 "(tag %d)", __func__, tag);
+
 			dev_kfree_skb(skb);
 			skb = frame->skb;
 			kfree(frame);
@@ -1034,8 +1045,11 @@  lowpan_skb_fragmentation(struct sk_buff *skb)
 	err = lowpan_fragment_xmit(skb, head, header_length, LOWPAN_FRAG_SIZE,
 				   0, LOWPAN_DISPATCH_FRAG1);
 
-	if (err)
+	if (err) {
+		pr_debug("%s unable to send FRAG1 packet (tag: %d)",
+			 __func__, tag);
 		goto exit;
+	}
 
 	offset = LOWPAN_FRAG_SIZE;
 
@@ -1053,8 +1067,11 @@  lowpan_skb_fragmentation(struct sk_buff *skb)
 
 		err = lowpan_fragment_xmit(skb, head, header_length,
 					   len, offset, LOWPAN_DISPATCH_FRAGN);
-		if (err)
+		if (err) {
+			pr_debug("%s unable to send a subsequent FRAGN packet "
+				 "(tag: %d, offset: %d", __func__, tag, offset);
 			goto exit;
+		}
 
 		offset += len;
 	}