From 5186fa2ef17fd8f0bfbcad4cb65399b8558f66bd Mon Sep 17 00:00:00 2001 From: Yasuyuki Tanaka Date: Tue, 13 Dec 2016 15:32:21 +0100 Subject: [PATCH] TSCH: set PACKETBUF_ADDR_SENDER before NETSTACK_framer.create() --- core/net/mac/tsch/tsch.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/core/net/mac/tsch/tsch.c b/core/net/mac/tsch/tsch.c index a31d4a1ae..348406dac 100644 --- a/core/net/mac/tsch/tsch.c +++ b/core/net/mac/tsch/tsch.c @@ -910,6 +910,15 @@ send_packet(mac_callback_t sent, void *ptr) packet_count_before = tsch_queue_packet_count(addr); +#if !NETSTACK_CONF_BRIDGE_MODE + /* + * In the Contiki stack, the source address of a frame is set at the RDC + * layer. Since TSCH doesn't use any RDC protocol and bypasses the layer to + * transmit a frame, it should set the source address by itself. + */ + packetbuf_set_addr(PACKETBUF_ADDR_SENDER, &linkaddr_node_addr); +#endif + if((hdr_len = NETSTACK_FRAMER.create()) < 0) { PRINTF("TSCH:! can't send packet due to framer error\n"); ret = MAC_TX_ERR;