|
|
|
@ -202,8 +202,8 @@ bool ng_sixlowpan_iphc_decode(ng_pktsnip_t *pkt)
|
|
|
|
|
|
|
|
|
|
case IPHC_SAC_SAM_L2:
|
|
|
|
|
ieee802154_get_iid((eui64_t *)(&ipv6_hdr->src.u64[1]),
|
|
|
|
|
ng_netif_hdr_get_src_addr(netif_hdr),
|
|
|
|
|
netif_hdr->src_l2addr_len);
|
|
|
|
|
ng_netif_hdr_get_src_addr(netif_hdr),
|
|
|
|
|
netif_hdr->src_l2addr_len);
|
|
|
|
|
ng_ipv6_addr_set_link_local_prefix(&ipv6_hdr->src);
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
@ -229,8 +229,8 @@ bool ng_sixlowpan_iphc_decode(ng_pktsnip_t *pkt)
|
|
|
|
|
|
|
|
|
|
case IPHC_SAC_SAM_CTX_L2:
|
|
|
|
|
ieee802154_get_iid((eui64_t *)(&ipv6_hdr->src.u64[1]),
|
|
|
|
|
ng_netif_hdr_get_src_addr(netif_hdr),
|
|
|
|
|
netif_hdr->src_l2addr_len);
|
|
|
|
|
ng_netif_hdr_get_src_addr(netif_hdr),
|
|
|
|
|
netif_hdr->src_l2addr_len);
|
|
|
|
|
ng_ipv6_addr_init_prefix(&ipv6_hdr->src, &ctx->prefix,
|
|
|
|
|
ctx->prefix_len);
|
|
|
|
|
break;
|
|
|
|
@ -277,8 +277,8 @@ bool ng_sixlowpan_iphc_decode(ng_pktsnip_t *pkt)
|
|
|
|
|
|
|
|
|
|
case IPHC_M_DAC_DAM_U_L2:
|
|
|
|
|
ieee802154_get_iid((eui64_t *)(&ipv6_hdr->dst.u64[1]),
|
|
|
|
|
ng_netif_hdr_get_dst_addr(netif_hdr),
|
|
|
|
|
netif_hdr->dst_l2addr_len);
|
|
|
|
|
ng_netif_hdr_get_dst_addr(netif_hdr),
|
|
|
|
|
netif_hdr->dst_l2addr_len);
|
|
|
|
|
ng_ipv6_addr_set_link_local_prefix(&ipv6_hdr->dst);
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
@ -300,8 +300,8 @@ bool ng_sixlowpan_iphc_decode(ng_pktsnip_t *pkt)
|
|
|
|
|
|
|
|
|
|
case IPHC_M_DAC_DAM_U_CTX_L2:
|
|
|
|
|
ieee802154_get_iid((eui64_t *)(&ipv6_hdr->dst.u64[1]),
|
|
|
|
|
ng_netif_hdr_get_dst_addr(netif_hdr),
|
|
|
|
|
netif_hdr->dst_l2addr_len);
|
|
|
|
|
ng_netif_hdr_get_dst_addr(netif_hdr),
|
|
|
|
|
netif_hdr->dst_l2addr_len);
|
|
|
|
|
ng_ipv6_addr_init_prefix(&ipv6_hdr->dst, &ctx->prefix,
|
|
|
|
|
ctx->prefix_len);
|
|
|
|
|
break;
|
|
|
|
@ -511,7 +511,7 @@ bool ng_sixlowpan_iphc_encode(ng_pktsnip_t *pkt)
|
|
|
|
|
(netif_hdr->src_l2addr_len == 8)) {
|
|
|
|
|
/* prefer to create IID from netif header if available */
|
|
|
|
|
ieee802154_get_iid(&iid, ng_netif_hdr_get_src_addr(netif_hdr),
|
|
|
|
|
netif_hdr->src_l2addr_len);
|
|
|
|
|
netif_hdr->src_l2addr_len);
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
/* but take from driver otherwise */
|
|
|
|
@ -620,7 +620,7 @@ bool ng_sixlowpan_iphc_encode(ng_pktsnip_t *pkt)
|
|
|
|
|
eui64_t iid;
|
|
|
|
|
|
|
|
|
|
ieee802154_get_iid(&iid, ng_netif_hdr_get_dst_addr(netif_hdr),
|
|
|
|
|
netif_hdr->dst_l2addr_len);
|
|
|
|
|
netif_hdr->dst_l2addr_len);
|
|
|
|
|
|
|
|
|
|
if ((ipv6_hdr->dst.u64[1].u64 == iid.uint64.u64) ||
|
|
|
|
|
_context_overlaps_iid(dst_ctx, &(ipv6_hdr->dst), &iid)) {
|
|
|
|
|