From c6fb2618c43fec1be34a2e0644a6f8fb7473b4e4 Mon Sep 17 00:00:00 2001 From: Martine Lenders <mail@martine-lenders.eu> Date: Thu, 23 Jul 2015 16:55:24 +0200 Subject: [PATCH] ng_{sixlowpan|ipv6}_netif: don't create ng_sixlowpan_netif_ts adhoc --- .../network_layer/ng_ipv6/netif/ng_ipv6_netif.c | 15 +++++++++++++-- .../network_layer/ng_sixlowpan/ng_sixlowpan.c | 16 +++------------- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/sys/net/network_layer/ng_ipv6/netif/ng_ipv6_netif.c b/sys/net/network_layer/ng_ipv6/netif/ng_ipv6_netif.c index f56185dd8c..66b2032f5e 100644 --- a/sys/net/network_layer/ng_ipv6/netif/ng_ipv6_netif.c +++ b/sys/net/network_layer/ng_ipv6/netif/ng_ipv6_netif.c @@ -26,6 +26,7 @@ #include "net/ng_netapi.h" #include "net/ng_netif.h" #include "net/ng_netif/hdr.h" +#include "net/ng_sixlowpan/netif.h" #include "net/ng_ipv6/netif.h" @@ -474,14 +475,24 @@ void ng_ipv6_netif_init_by_dev(void) sizeof(if_type)) != -ENOTSUP) && (if_type == NG_NETTYPE_SIXLOWPAN)) { uint16_t src_len = 8; - DEBUG("Set 6LoWPAN flag\n"); + uint16_t max_frag_size = UINT16_MAX; + + DEBUG("ipv6 netif: Set 6LoWPAN flag\n"); ipv6_ifs[i].flags |= NG_IPV6_NETIF_FLAGS_SIXLOWPAN; /* use EUI-64 (8-byte address) for IID generation and for sending * packets */ ng_netapi_set(ifs[i], NG_NETOPT_SRC_LEN, 0, &src_len, sizeof(src_len)); /* don't care for result */ - } + if (ng_netapi_get(ifs[i], NG_NETOPT_MAX_PACKET_SIZE, + 0, &max_frag_size, sizeof(max_frag_size)) < 0) { + /* if error we assume it works */ + DEBUG("ipv6 netif: Can not get max packet size from interface %" + PRIkernel_pid "\n", ifs[i]); + } + + ng_sixlowpan_netif_add(ifs[i], max_frag_size); + } #endif if ((ng_netapi_get(ifs[i], NG_NETOPT_IPV6_IID, 0, &iid, diff --git a/sys/net/network_layer/ng_sixlowpan/ng_sixlowpan.c b/sys/net/network_layer/ng_sixlowpan/ng_sixlowpan.c index b89d48251e..94c1b35f81 100644 --- a/sys/net/network_layer/ng_sixlowpan/ng_sixlowpan.c +++ b/sys/net/network_layer/ng_sixlowpan/ng_sixlowpan.c @@ -196,19 +196,9 @@ static void _send(ng_pktsnip_t *pkt) iface = ng_sixlowpan_netif_get(hdr->if_pid); if (iface == NULL) { - if (ng_netapi_get(hdr->if_pid, NG_NETOPT_MAX_PACKET_SIZE, - 0, &max_frag_size, sizeof(max_frag_size)) < 0) { - /* if error we assume it works */ - DEBUG("6lo: can not get max packet size from interface %" - PRIkernel_pid "\n", hdr->if_pid); - max_frag_size = UINT16_MAX; - } - - ng_sixlowpan_netif_add(hdr->if_pid, max_frag_size); - iface = ng_sixlowpan_netif_get(hdr->if_pid); - } - else { - max_frag_size = iface->max_frag_size; + DEBUG("6lo: Can not get 6LoWPAN specific interface information.\n"); + ng_pktbuf_release(pkt); + return; } #ifdef MODULE_NG_SIXLOWPAN_IPHC -- GitLab