Skip to content

Commit 14e1597

Browse files
Juha Heiskanenjuhhei01
authored andcommitted
Fixed missing TX ime calculation for pre-builded MAC packet send.
Change-Id: Iea6eb869a11138fbaffabe61140bd03a9bb36cd8
1 parent c3aa7d1 commit 14e1597

File tree

1 file changed

+14
-13
lines changed

1 file changed

+14
-13
lines changed

source/MAC/IEEE802_15_4/mac_mcps_sap.c

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1395,6 +1395,15 @@ static void mcps_generic_sequence_number_allocate(protocol_interface_rf_mac_setu
13951395
}
13961396

13971397

1398+
static uint32_t mcps_generic_backoff_calc(protocol_interface_rf_mac_setup_s *rf_ptr)
1399+
{
1400+
uint32_t random_period = mac_csma_backoff_get(rf_ptr);
1401+
if (rf_ptr->fhss_api) {
1402+
return mcps_calculate_tx_time(rf_ptr, random_period);
1403+
}
1404+
return random_period;
1405+
}
1406+
13981407
static int8_t mcps_generic_packet_build(protocol_interface_rf_mac_setup_s *rf_ptr, mac_pre_build_frame_t *buffer)
13991408
{
14001409
phy_device_driver_s *dev_driver = rf_ptr->dev_driver->phy_driver;
@@ -1411,6 +1420,7 @@ static int8_t mcps_generic_packet_build(protocol_interface_rf_mac_setup_s *rf_pt
14111420
tx_buf->len = buffer->mac_payload_length;
14121421

14131422
memcpy(ptr, buffer->mac_payload, buffer->mac_payload_length );
1423+
buffer->tx_time = mcps_generic_backoff_calc(rf_ptr);
14141424
return 0;
14151425
}
14161426

@@ -1466,13 +1476,7 @@ static int8_t mcps_generic_packet_build(protocol_interface_rf_mac_setup_s *rf_pt
14661476

14671477
tx_buf->len = frame_length;
14681478
uint8_t *mhr_start = ptr;
1469-
1470-
uint32_t random_period = mac_csma_backoff_get(rf_ptr);
1471-
if (rf_ptr->fhss_api) {
1472-
buffer->tx_time = mcps_calculate_tx_time(rf_ptr, random_period);
1473-
} else {
1474-
buffer->tx_time = random_period;
1475-
}
1479+
buffer->tx_time = mcps_generic_backoff_calc(rf_ptr);
14761480

14771481
ptr = mac_generic_packet_write(rf_ptr, ptr, buffer);
14781482

@@ -1506,6 +1510,7 @@ static int8_t mcps_generic_packet_rebuild(protocol_interface_rf_mac_setup_s *rf_
15061510
tx_buf->len = buffer->mac_payload_length;
15071511

15081512
memcpy(ptr, buffer->mac_payload, buffer->mac_payload_length );
1513+
buffer->tx_time = mcps_generic_backoff_calc(rf_ptr);
15091514
return 0;
15101515
}
15111516

@@ -1533,12 +1538,8 @@ static int8_t mcps_generic_packet_rebuild(protocol_interface_rf_mac_setup_s *rf_
15331538
tx_buf->len = frame_length;
15341539
uint8_t *mhr_start = ptr;
15351540

1536-
uint32_t random_period = mac_csma_backoff_get(rf_ptr);
1537-
if (rf_ptr->fhss_api) {
1538-
buffer->tx_time = mcps_calculate_tx_time(rf_ptr, random_period);
1539-
} else {
1540-
buffer->tx_time = random_period;
1541-
}
1541+
buffer->tx_time = mcps_generic_backoff_calc(rf_ptr);
1542+
15421543
ptr = mac_generic_packet_write(rf_ptr, ptr, buffer);
15431544

15441545
if (buffer->fcf_dsn.securityEnabled) {

0 commit comments

Comments
 (0)