From e879e2aba2efe701f5e889cfd2400fc18a3d2591 Mon Sep 17 00:00:00 2001 From: Oleg Hahm Date: Sun, 9 Mar 2014 15:25:23 +0000 Subject: [PATCH] fix low-level sending destination address --- examples/rpl_udp/main.c | 2 +- sys/net/network_layer/sixlowpan/mac.c | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/examples/rpl_udp/main.c b/examples/rpl_udp/main.c index 27001537ba..43fea6e422 100644 --- a/examples/rpl_udp/main.c +++ b/examples/rpl_udp/main.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2013. 2014 INRIA + * Copyright (C) 2013, 2014 INRIA * * This file is subject to the terms and conditions of the GNU Lesser * General Public License v2.1. See the file LICENSE in the top level diff --git a/sys/net/network_layer/sixlowpan/mac.c b/sys/net/network_layer/sixlowpan/mac.c index fd1efe3ab1..0c95523c91 100644 --- a/sys/net/network_layer/sixlowpan/mac.c +++ b/sys/net/network_layer/sixlowpan/mac.c @@ -256,7 +256,11 @@ int sixlowpan_mac_prepare_ieee802144_frame( ieee802154_frame_init(frame, (uint8_t *)&lowpan_mac_buf); memcpy(&lowpan_mac_buf[hdrlen], frame->payload, frame->payload_len); /* set FCS */ +#ifdef MODULE_CC110X_NG + fcs = (uint16_t *)&lowpan_mac_buf[frame->payload_len + hdrlen+1]; +#else fcs = (uint16_t *)&lowpan_mac_buf[frame->payload_len + hdrlen]; +#endif *fcs = ieee802154_frame_get_fcs(lowpan_mac_buf, frame->payload_len + hdrlen); DEBUG("IEEE802.15.4 frame - FCF: %02X %02X DPID: %02X SPID: %02X DSN: %02X\n", lowpan_mac_buf[0], lowpan_mac_buf[1], frame->dest_pan_id, @@ -281,7 +285,7 @@ int sixlowpan_mac_send_data(int if_id, payload, (size_t)payload_len); } else if (dest_len == 2) { - return net_if_send_packet(if_id, NTOHS(*((uint16_t *)dest)), + return net_if_send_packet(if_id, NTOHS((*((net_if_eui64_t*)dest)).uint16[0]), payload, (size_t)payload_len); } }