From 42122b7f734e36656fbf6679e3a11d45c0a33a7d Mon Sep 17 00:00:00 2001 From: Juha Heiskanen Date: Thu, 16 Aug 2018 15:00:59 +0300 Subject: [PATCH] Added support to report Driver if FHSS return unknow neighbor error. --- source/MAC/IEEE802_15_4/mac_defines.h | 3 ++- source/MAC/IEEE802_15_4/mac_mcps_sap.c | 2 ++ source/MAC/IEEE802_15_4/mac_pd_sap.c | 6 ++++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/source/MAC/IEEE802_15_4/mac_defines.h b/source/MAC/IEEE802_15_4/mac_defines.h index 9315d36e95c..71e63a93366 100644 --- a/source/MAC/IEEE802_15_4/mac_defines.h +++ b/source/MAC/IEEE802_15_4/mac_defines.h @@ -37,7 +37,8 @@ typedef enum mac_event_t { MAC_TIMER_ACK, MAC_TIMER_CCA, MAC_TX_FAIL, - MAC_TX_TIMEOUT + MAC_TX_TIMEOUT, + MAC_UNKNOWN_DESTINATION, } mac_event_t; typedef enum mac_tx_status_type_t { diff --git a/source/MAC/IEEE802_15_4/mac_mcps_sap.c b/source/MAC/IEEE802_15_4/mac_mcps_sap.c index 7a42bab4f4f..7c87456621b 100644 --- a/source/MAC/IEEE802_15_4/mac_mcps_sap.c +++ b/source/MAC/IEEE802_15_4/mac_mcps_sap.c @@ -1359,6 +1359,8 @@ static void mac_common_data_confirmation_handle (protocol_interface_rf_mac_setup //Enable Radio mac_mlme_mac_radio_enable(rf_mac_setup); buf->status = MLME_TRANSACTION_EXPIRED; + } else if (m_event == MAC_UNKNOWN_DESTINATION) { + buf->status = MLME_UNAVAILABLE_KEY; } } } diff --git a/source/MAC/IEEE802_15_4/mac_pd_sap.c b/source/MAC/IEEE802_15_4/mac_pd_sap.c index 98586cf813a..fef90d52807 100644 --- a/source/MAC/IEEE802_15_4/mac_pd_sap.c +++ b/source/MAC/IEEE802_15_4/mac_pd_sap.c @@ -254,6 +254,9 @@ void mac_pd_sap_state_machine(protocol_interface_rf_mac_setup_s *rf_mac_setup) if (tx_handle_retval == -3) { mac_tx_done_state_set(rf_mac_setup, MAC_CCA_FAIL); return; + } else if (tx_handle_retval == -2) { + mac_tx_done_state_set(rf_mac_setup, MAC_UNKNOWN_DESTINATION); + return; } } if (mac_plme_cca_req(rf_mac_setup) != 0) { @@ -361,6 +364,9 @@ static int8_t mac_data_interface_tx_done_cb(protocol_interface_rf_mac_setup_s *r if (tx_handle_retval == -3) { mac_tx_done_state_set(rf_ptr, MAC_CCA_FAIL); return -3; + } else if (tx_handle_retval == -2) { + mac_tx_done_state_set(rf_ptr, MAC_UNKNOWN_DESTINATION); + return -2; } } }