Skip to content

Commit

Permalink
Merge pull request #10379 from cgundogan/pr/sixlowpan_nonipv6
Browse files Browse the repository at this point in the history
sixlowpan: minor fixes for non-ipv6 usage
  • Loading branch information
miri64 authored Dec 18, 2018
2 parents 5e03f58 + 79de5ae commit 3ce4b74
Showing 1 changed file with 11 additions and 4 deletions.
15 changes: 11 additions & 4 deletions sys/net/gnrc/network_layer/sixlowpan/gnrc_sixlowpan.c
Original file line number Diff line number Diff line change
Expand Up @@ -67,19 +67,18 @@ void gnrc_sixlowpan_dispatch_recv(gnrc_pktsnip_t *pkt, void *context,

(void)context;
(void)page;
#ifdef MODULE_CCNLITE
#ifndef MODULE_GNRC_IPV6
type = GNRC_NETTYPE_UNDEF;
for (gnrc_pktsnip_t *ptr = pkt; (ptr || (type == GNRC_NETTYPE_UNDEF));
ptr = ptr->next) {
if ((ptr->next) && (ptr->next->type == GNRC_NETTYPE_NETIF)) {
type = ptr->type;
}
}
assert(network_snip);
#else /* MODULE_CCNLITE */
#else /* MODULE_GNRC_IPV6 */
/* just assume normal IPv6 traffic */
type = GNRC_NETTYPE_IPV6;
#endif /* MODULE_CCNLITE */
#endif /* MODULE_GNRC_IPV6 */
if (!gnrc_netapi_dispatch_receive(type,
GNRC_NETREG_DEMUX_CTX_ALL, pkt)) {
DEBUG("6lo: No receivers for this packet found\n");
Expand Down Expand Up @@ -200,7 +199,13 @@ static void _receive(gnrc_pktsnip_t *pkt)
}

pkt = gnrc_pktbuf_remove_snip(pkt, sixlowpan);
#if defined(MODULE_CCN_LITE)
payload->type = GNRC_NETTYPE_CCN;
#elif defined(MODULE_GNRC_IPV6)
payload->type = GNRC_NETTYPE_IPV6;
#else
payload->type = GNRC_NETTYPE_UNDEF;
#endif
}
#ifdef MODULE_GNRC_SIXLOWPAN_FRAG
else if (sixlowpan_frag_is((sixlowpan_frag_t *)dispatch)) {
Expand Down Expand Up @@ -257,11 +262,13 @@ static void _send(gnrc_pktsnip_t *pkt)
return;
}

#ifdef MODULE_GNRC_IPV6
if ((pkt->next == NULL) || (pkt->next->type != GNRC_NETTYPE_IPV6)) {
DEBUG("6lo: Sending packet has no IPv6 header\n");
gnrc_pktbuf_release(pkt);
return;
}
#endif

tmp = gnrc_pktbuf_start_write(pkt);

Expand Down

0 comments on commit 3ce4b74

Please sign in to comment.