From f52b9ae9725ed6687dee918af363483169fa7b14 Mon Sep 17 00:00:00 2001
From: Joakim Gebart <joakim.gebart@eistec.se>
Date: Mon, 20 Jul 2015 10:55:15 +0200
Subject: [PATCH] sys/net/network_layer/ng_sixlowpan/iphc: Set IPv6 header
 length after decoding.

---
 sys/net/network_layer/ng_sixlowpan/iphc/ng_sixlowpan_iphc.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/sys/net/network_layer/ng_sixlowpan/iphc/ng_sixlowpan_iphc.c b/sys/net/network_layer/ng_sixlowpan/iphc/ng_sixlowpan_iphc.c
index 24867c77d1..eb29da9a89 100644
--- a/sys/net/network_layer/ng_sixlowpan/iphc/ng_sixlowpan_iphc.c
+++ b/sys/net/network_layer/ng_sixlowpan/iphc/ng_sixlowpan_iphc.c
@@ -372,6 +372,10 @@ bool ng_sixlowpan_iphc_decode(ng_pktsnip_t *pkt)
     payload = ng_pktbuf_add(pkt, pkt->data, payload_offset, NG_NETTYPE_SIXLOWPAN);
     pkt = ng_pktbuf_remove_snip(pkt, payload);
 
+    /* set IPv6 header payload length field to the length of whatever is left
+     * after removing the 6LoWPAN header */
+    ipv6_hdr->len = byteorder_htons(pkt->size);
+
     /* insert IPv6 header */
     ipv6->next = pkt->next;
     pkt->next = ipv6;
-- 
GitLab