1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2025-12-25 06:23:53 +01:00

Merge pull request #3499 from authmillenon/ng_ipv6/enh/send-dispatch-for-6lowpan

ng_ipv6: use ng_netapi_dispatch_send to dispatch to 6LoWPAN
This commit is contained in:
Oleg Hahm 2015-07-27 16:42:37 +02:00
commit 199736d8db

View File

@ -66,7 +66,7 @@ kernel_pid_t ng_ipv6_init(void)
{
if (ng_ipv6_pid == KERNEL_PID_UNDEF) {
ng_ipv6_pid = thread_create(_stack, sizeof(_stack), NG_IPV6_PRIO,
CREATE_STACKTEST, _event_loop, NULL, "ipv6");
CREATE_STACKTEST, _event_loop, NULL, "ipv6");
}
return ng_ipv6_pid;
@ -201,20 +201,9 @@ static void _send_to_iface(kernel_pid_t iface, ng_pktsnip_t *pkt)
if ((if_entry != NULL) && (if_entry->flags & NG_IPV6_NETIF_FLAGS_SIXLOWPAN)) {
DEBUG("ipv6: send to 6LoWPAN instead\n");
ng_netreg_entry_t *reg = ng_netreg_lookup(NG_NETTYPE_SIXLOWPAN,
NG_NETREG_DEMUX_CTX_ALL);
if (reg != NULL) {
ng_pktbuf_hold(pkt, ng_netreg_num(NG_NETTYPE_SIXLOWPAN,
NG_NETREG_DEMUX_CTX_ALL) - 1);
}
else {
if (!ng_netapi_dispatch_send(NG_NETTYPE_SIXLOWPAN, NG_NETREG_DEMUX_CTX_ALL, pkt)) {
DEBUG("ipv6: no 6LoWPAN thread found");
}
while (reg) {
ng_netapi_send(reg->pid, pkt);
reg = ng_netreg_getnext(reg);
ng_pktbuf_release(pkt);
}
}
else {
@ -343,7 +332,7 @@ static int _fill_ipv6_hdr(kernel_pid_t iface, ng_pktsnip_t *ipv6,
}
static inline void _send_multicast_over_iface(kernel_pid_t iface, ng_pktsnip_t *pkt,
ng_pktsnip_t *netif)
ng_pktsnip_t *netif)
{
DEBUG("ipv6: send multicast over interface %" PRIkernel_pid "\n", iface);
/* mark as multicast */