@@ -68,6 +68,7 @@ static int8_t mac_mlme_rf_channel_set(struct protocol_interface_rf_mac_setup *rf
68
68
static void mac_mlme_timer_cb (int8_t timer_id , uint16_t slots );
69
69
static void mac_mlme_start_confirm_handler (protocol_interface_rf_mac_setup_s * rf_ptr , const mlme_start_conf_t * conf );
70
70
static void mac_mlme_scan_confirm_handler (protocol_interface_rf_mac_setup_s * rf_ptr , const mlme_scan_conf_t * conf );
71
+ static int mac_mlme_set_symbol_rate (protocol_interface_rf_mac_setup_s * rf_mac_setup );
71
72
72
73
static void mac_mlme_energy_scan_start (protocol_interface_rf_mac_setup_s * rf_mac_setup , uint8_t channel )
73
74
{
@@ -750,6 +751,7 @@ int8_t mac_mlme_set_req(protocol_interface_rf_mac_setup_s *rf_mac_setup, const m
750
751
return 0 ;
751
752
case macRfConfiguration :
752
753
rf_mac_setup -> dev_driver -> phy_driver -> extension (PHY_EXTENSION_SET_RF_CONFIGURATION , (uint8_t * ) set_req -> value_pointer );
754
+ mac_mlme_set_symbol_rate (rf_mac_setup );
753
755
return 0 ;
754
756
default :
755
757
return mac_mlme_handle_set_values (rf_mac_setup , set_req );
@@ -1037,6 +1039,17 @@ static uint8_t mac_backoff_ticks_calc(phy_device_driver_s *phy_driver)
1037
1039
return (uint8_t ) ticks ;
1038
1040
}
1039
1041
1042
+ static int mac_mlme_set_symbol_rate (protocol_interface_rf_mac_setup_s * rf_mac_setup )
1043
+ {
1044
+ if (rf_mac_setup -> rf_csma_extension_supported ) {
1045
+ rf_mac_setup -> dev_driver -> phy_driver -> extension (PHY_EXTENSION_GET_SYMBOLS_PER_SECOND , (uint8_t * ) & rf_mac_setup -> symbol_rate );
1046
+ rf_mac_setup -> symbol_time_us = 1000000 / rf_mac_setup -> symbol_rate ;
1047
+ tr_debug ("SW-MAC driver support rf extension %" PRIu32 " symbol/seconds %" PRIu32 " us symbol time length" , rf_mac_setup -> symbol_rate , rf_mac_setup -> symbol_time_us );
1048
+ return 0 ;
1049
+ }
1050
+ return -1 ;
1051
+ }
1052
+
1040
1053
protocol_interface_rf_mac_setup_s * mac_mlme_data_base_allocate (uint8_t * mac64 , arm_device_driver_list_s * dev_driver , mac_description_storage_size_t * storage_sizes )
1041
1054
{
1042
1055
uint16_t total_length = 0 ;
@@ -1127,11 +1140,7 @@ protocol_interface_rf_mac_setup_s *mac_mlme_data_base_allocate(uint8_t *mac64, a
1127
1140
bool rf_support = false;
1128
1141
dev_driver -> phy_driver -> extension (PHY_EXTENSION_DYNAMIC_RF_SUPPORTED , (uint8_t * )& rf_support );
1129
1142
entry -> rf_csma_extension_supported = rf_support ;
1130
- if (entry -> rf_csma_extension_supported ) {
1131
- entry -> dev_driver -> phy_driver -> extension (PHY_EXTENSION_GET_SYMBOLS_PER_SECOND , (uint8_t * ) & entry -> symbol_rate );
1132
- entry -> symbol_time_us = 1000000 / entry -> symbol_rate ;
1133
- tr_debug ("SW-MAC driver support rf extension %" PRIu32 " symbol/seconds %" PRIu32 " us symbol time length" , entry -> symbol_rate , entry -> symbol_time_us );
1134
- }
1143
+ mac_mlme_set_symbol_rate (entry );
1135
1144
1136
1145
//How many 10us ticks backoff period is for waiting 20symbols which is typically 10 bytes time
1137
1146
entry -> backoff_period_in_10us = mac_backoff_ticks_calc (dev_driver -> phy_driver );
0 commit comments