From ac16fb9e2bae6d05ceebdfc87cb9eaa21b79ce9b Mon Sep 17 00:00:00 2001 From: Simon Duquennoy Date: Wed, 20 Apr 2016 11:46:52 +0200 Subject: [PATCH] TSCH fixes for the short-address case --- core/net/mac/tsch/tsch-packet.c | 6 +++--- core/net/mac/tsch/tsch.c | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/core/net/mac/tsch/tsch-packet.c b/core/net/mac/tsch/tsch-packet.c index 17601d054..52c7b4cc8 100644 --- a/core/net/mac/tsch/tsch-packet.c +++ b/core/net/mac/tsch/tsch-packet.c @@ -85,12 +85,12 @@ tsch_packet_create_eack(uint8_t *buf, int buf_size, p.seq = seqno; #if TSCH_PACKET_EACK_WITH_DEST_ADDR if(dest_addr != NULL) { - p.fcf.dest_addr_mode = FRAME802154_LONGADDRMODE; + p.fcf.dest_addr_mode = LINKADDR_SIZE > 2 ? FRAME802154_LONGADDRMODE : FRAME802154_SHORTADDRMODE;; linkaddr_copy((linkaddr_t *)&p.dest_addr, dest_addr); } #endif #if TSCH_PACKET_EACK_WITH_SRC_ADDR - p.fcf.src_addr_mode = FRAME802154_LONGADDRMODE; + p.fcf.src_addr_mode = LINKADDR_SIZE > 2 ? FRAME802154_LONGADDRMODE : FRAME802154_SHORTADDRMODE;; p.src_pid = IEEE802154_PANID; linkaddr_copy((linkaddr_t *)&p.src_addr, &linkaddr_node_addr); #endif @@ -208,7 +208,7 @@ tsch_packet_create_eb(uint8_t *buf, int buf_size, uint8_t seqno, p.fcf.frame_type = FRAME802154_BEACONFRAME; p.fcf.ie_list_present = 1; p.fcf.frame_version = FRAME802154_IEEE802154E_2012; - p.fcf.src_addr_mode = FRAME802154_LONGADDRMODE; + p.fcf.src_addr_mode = LINKADDR_SIZE > 2 ? FRAME802154_LONGADDRMODE : FRAME802154_SHORTADDRMODE; p.fcf.dest_addr_mode = FRAME802154_SHORTADDRMODE; p.seq = seqno; p.fcf.sequence_number_suppression = FRAME802154_SUPPR_SEQNO; diff --git a/core/net/mac/tsch/tsch.c b/core/net/mac/tsch/tsch.c index 2085f39ff..32942686e 100644 --- a/core/net/mac/tsch/tsch.c +++ b/core/net/mac/tsch/tsch.c @@ -69,8 +69,10 @@ /* Use to collect link statistics even on Keep-Alive, even though they were * not sent from an upper layer and don't have a valid packet_sent callback */ #ifndef TSCH_LINK_NEIGHBOR_CALLBACK +#if NETSTACK_CONF_WITH_IPV6 void uip_ds6_link_neighbor_callback(int status, int numtx); #define TSCH_LINK_NEIGHBOR_CALLBACK(dest, status, num) uip_ds6_link_neighbor_callback(status, num) +#endif /* NETSTACK_CONF_WITH_IPV6 */ #endif /* TSCH_LINK_NEIGHBOR_CALLBACK */ /* 802.15.4 duplicate frame detection */