Merge pull request #1994 from yatch/pr/bugfix-framer802154-sender-addr
Bugfix on source address setting in framer_802154.create()
This commit is contained in:
commit
53efcec1fa
|
@ -873,6 +873,10 @@ qsend_list(mac_callback_t sent, void *ptr, struct rdc_buf_list *buf_list)
|
||||||
if(next != NULL) {
|
if(next != NULL) {
|
||||||
packetbuf_set_attr(PACKETBUF_ATTR_PENDING, 1);
|
packetbuf_set_attr(PACKETBUF_ATTR_PENDING, 1);
|
||||||
}
|
}
|
||||||
|
#if !NETSTACK_CONF_BRIDGE_MODE
|
||||||
|
/* If NETSTACK_CONF_BRIDGE_MODE is set, assume PACKETBUF_ADDR_SENDER is already set. */
|
||||||
|
packetbuf_set_addr(PACKETBUF_ADDR_SENDER, &linkaddr_node_addr);
|
||||||
|
#endif
|
||||||
packetbuf_set_attr(PACKETBUF_ATTR_MAC_ACK, 1);
|
packetbuf_set_attr(PACKETBUF_ATTR_MAC_ACK, 1);
|
||||||
if(NETSTACK_FRAMER.create() < 0) {
|
if(NETSTACK_FRAMER.create() < 0) {
|
||||||
PRINTF("contikimac: framer failed\n");
|
PRINTF("contikimac: framer failed\n");
|
||||||
|
|
|
@ -173,7 +173,8 @@ create_frame(int type, int do_create)
|
||||||
* Set up the source address using only the long address mode for
|
* Set up the source address using only the long address mode for
|
||||||
* phase 1.
|
* phase 1.
|
||||||
*/
|
*/
|
||||||
linkaddr_copy((linkaddr_t *)¶ms.src_addr, &linkaddr_node_addr);
|
linkaddr_copy((linkaddr_t *)¶ms.src_addr,
|
||||||
|
packetbuf_addr(PACKETBUF_ADDR_SENDER));
|
||||||
|
|
||||||
params.payload = packetbuf_dataptr();
|
params.payload = packetbuf_dataptr();
|
||||||
params.payload_len = packetbuf_datalen();
|
params.payload_len = packetbuf_datalen();
|
||||||
|
|
|
@ -910,6 +910,15 @@ send_packet(mac_callback_t sent, void *ptr)
|
||||||
|
|
||||||
packet_count_before = tsch_queue_packet_count(addr);
|
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) {
|
if((hdr_len = NETSTACK_FRAMER.create()) < 0) {
|
||||||
PRINTF("TSCH:! can't send packet due to framer error\n");
|
PRINTF("TSCH:! can't send packet due to framer error\n");
|
||||||
ret = MAC_TX_ERR;
|
ret = MAC_TX_ERR;
|
||||||
|
|
Loading…
Reference in a new issue