Skip to content

Commit b7a8268

Browse files
author
Juha Heiskanen
authored
Merge pull request ARMmbed#2063 from ARMmbed/fhss_mac_retry_correct
CCA RETRY and and TX reretry clear calculation when FHSS re-send pack…
2 parents c7235f8 + a21bede commit b7a8268

File tree

2 files changed

+11
-2
lines changed

2 files changed

+11
-2
lines changed

source/MAC/IEEE802_15_4/mac_mcps_sap.c

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1423,13 +1423,20 @@ static void mcps_data_confirm_handle(protocol_interface_rf_mac_setup_s *rf_ptr,
14231423
// FHSS checks if this failed buffer needs to be pushed back to TX queue and retransmitted
14241424
if ((rf_ptr->mac_tx_result == MAC_TX_FAIL) || (rf_ptr->mac_tx_result == MAC_CCA_FAIL)) {
14251425
if (rf_ptr->fhss_api->data_tx_fail(rf_ptr->fhss_api, buffer->msduHandle, mac_convert_frame_type_to_fhss(buffer->fcf_dsn.frametype)) == true) {
1426+
1427+
if (rf_ptr->mac_tx_result == MAC_TX_FAIL) {
1428+
buffer->fhss_retry_count += 1 + rf_ptr->mac_tx_status.retry;
1429+
} else {
1430+
buffer->fhss_retry_count += rf_ptr->mac_tx_status.retry;
1431+
}
1432+
buffer->fhss_cca_retry_count += rf_ptr->mac_tx_status.cca_cnt;
14261433
mcps_sap_pd_req_queue_write(rf_ptr, buffer);
14271434
return;
14281435
}
14291436
}
14301437
}
1431-
confirm.cca_retries = rf_ptr->mac_tx_status.cca_cnt;
1432-
confirm.tx_retries = rf_ptr->mac_tx_status.retry;
1438+
confirm.cca_retries = rf_ptr->mac_tx_status.cca_cnt + buffer->fhss_cca_retry_count;
1439+
confirm.tx_retries = rf_ptr->mac_tx_status.retry + buffer->fhss_retry_count;
14331440
mac_common_data_confirmation_handle(rf_ptr, buffer);
14341441
confirm.msduHandle = buffer->msduHandle;
14351442
confirm.status = buffer->status;

source/MAC/IEEE802_15_4/mac_mcps_sap.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,8 @@ typedef struct mac_pre_build_frame {
132132
uint8_t status;
133133
uint8_t asynch_channel;
134134
uint8_t csma_periods_left;
135+
uint8_t fhss_retry_count;
136+
uint8_t fhss_cca_retry_count;
135137
uint32_t tx_time;
136138
bool upper_layer_request;
137139
bool mac_allocated_payload_ptr: 1;

0 commit comments

Comments
 (0)