@@ -182,6 +182,8 @@ static fhss_ws_neighbor_timing_info_t *ws_get_neighbor_info(const fhss_api_t *ap
182182static void ws_bootstrap_llc_hopping_update (struct protocol_interface_info_entry * cur , const fhss_ws_configuration_t * fhss_configuration )
183183{
184184 memcpy (cur -> ws_info -> hopping_schdule .channel_mask , fhss_configuration -> channel_mask , sizeof (uint32_t ) * 8 );
185+ cur -> ws_info -> hopping_schdule .uc_fixed_channel = fhss_configuration -> unicast_fixed_channel ;
186+ cur -> ws_info -> hopping_schdule .bc_fixed_channel = fhss_configuration -> broadcast_fixed_channel ;
185187 cur -> ws_info -> hopping_schdule .uc_channel_function = fhss_configuration -> ws_uc_channel_function ;
186188 cur -> ws_info -> hopping_schdule .bc_channel_function = fhss_configuration -> ws_bc_channel_function ;
187189 cur -> ws_info -> hopping_schdule .fhss_bc_dwell_interval = fhss_configuration -> fhss_bc_dwell_interval ;
@@ -240,8 +242,8 @@ static int8_t ws_fhss_set_defaults(protocol_interface_info_entry_t *cur, fhss_ws
240242 fhss_configuration -> ws_bc_channel_function = cur -> ws_info -> fhss_bc_channel_function ;
241243 fhss_configuration -> fhss_bc_dwell_interval = cur -> ws_info -> fhss_bc_dwell_interval ;
242244 fhss_configuration -> fhss_broadcast_interval = cur -> ws_info -> fhss_bc_interval ;
243- fhss_configuration -> unicast_fixed_channel = cur -> ws_info -> hopping_schdule . uc_fixed_channel ;
244- fhss_configuration -> broadcast_fixed_channel = cur -> ws_info -> hopping_schdule . bc_fixed_channel ;
245+ fhss_configuration -> unicast_fixed_channel = cur -> ws_info -> fhss_uc_fixed_channel ;
246+ fhss_configuration -> broadcast_fixed_channel = cur -> ws_info -> fhss_bc_fixed_channel ;
245247 ws_generate_channel_list (fhss_configuration -> channel_mask , cur -> ws_info -> hopping_schdule .number_of_channels , cur -> ws_info -> hopping_schdule .regulatory_domain );
246248
247249 // using bitwise AND operation for user set channel mask to remove channels not allowed in this device
@@ -277,12 +279,12 @@ static int8_t ws_fhss_discovery_configure(protocol_interface_info_entry_t *cur)
277279 fhss_configuration .ws_bc_channel_function = WS_FIXED_CHANNEL ;
278280 fhss_configuration .fhss_bc_dwell_interval = 0 ;
279281 fhss_configuration .fhss_broadcast_interval = 0 ;
280- cur -> ws_info -> hopping_schdule . uc_fixed_channel = randLIB_get_random_in_range (0 ,cur -> ws_info -> hopping_schdule .number_of_channels - 1 );
281- cur -> ws_info -> hopping_schdule . bc_fixed_channel = randLIB_get_random_in_range (0 ,cur -> ws_info -> hopping_schdule .number_of_channels - 1 );
282+ cur -> ws_info -> fhss_uc_fixed_channel = randLIB_get_random_in_range (0 ,cur -> ws_info -> hopping_schdule .number_of_channels - 1 );
283+ cur -> ws_info -> fhss_bc_fixed_channel = randLIB_get_random_in_range (0 ,cur -> ws_info -> hopping_schdule .number_of_channels - 1 );
282284 memset (fhss_configuration .channel_mask , 0 , sizeof (uint32_t ) * 8 );
283- channel_list_set_channel (fhss_configuration .channel_mask , cur -> ws_info -> hopping_schdule . uc_fixed_channel , true);
284- fhss_configuration .unicast_fixed_channel = cur -> ws_info -> hopping_schdule . uc_fixed_channel ;
285- fhss_configuration .broadcast_fixed_channel = cur -> ws_info -> hopping_schdule . bc_fixed_channel ;
285+ channel_list_set_channel (fhss_configuration .channel_mask , cur -> ws_info -> fhss_uc_fixed_channel , true);
286+ fhss_configuration .unicast_fixed_channel = cur -> ws_info -> fhss_uc_fixed_channel ;
287+ fhss_configuration .broadcast_fixed_channel = cur -> ws_info -> fhss_bc_fixed_channel ;
286288 ns_fhss_ws_configuration_set (cur -> ws_info -> fhss_api ,& fhss_configuration );
287289 ws_bootstrap_llc_hopping_update (cur ,& fhss_configuration );
288290
@@ -328,8 +330,8 @@ static void ws_bootstrap_primary_parent_set(struct protocol_interface_info_entry
328330 fhss_configuration .bsi = neighbor_info -> ws_neighbor -> fhss_data .bc_timing_info .broadcast_schedule_id ;
329331 fhss_configuration .fhss_bc_dwell_interval = neighbor_info -> ws_neighbor -> fhss_data .bc_timing_info .broadcast_dwell_interval ;
330332 fhss_configuration .fhss_broadcast_interval = neighbor_info -> ws_neighbor -> fhss_data .bc_timing_info .broadcast_interval ;
331- fhss_configuration .unicast_fixed_channel = cur -> ws_info -> hopping_schdule . uc_fixed_channel ;
332- fhss_configuration .broadcast_fixed_channel = cur -> ws_info -> hopping_schdule . bc_fixed_channel ;
333+ fhss_configuration .unicast_fixed_channel = cur -> ws_info -> fhss_uc_fixed_channel ;
334+ fhss_configuration .broadcast_fixed_channel = cur -> ws_info -> fhss_bc_fixed_channel ;
333335 ns_fhss_ws_configuration_set (cur -> ws_info -> fhss_api , & fhss_configuration );
334336
335337 if (fhss_configuration .fhss_bc_dwell_interval && fhss_configuration .fhss_broadcast_interval ) {
@@ -1158,7 +1160,7 @@ static void ws_bootstrap_fhss_activate(protocol_interface_info_entry_t *cur)
11581160 tr_debug ("MAC init" );
11591161 mac_helper_pib_boolean_set (cur , macRxOnWhenIdle , true);
11601162 cur -> lowpan_info &= ~INTERFACE_NWK_CONF_MAC_RX_OFF_IDLE ;
1161- ws_bootstrap_mac_activate (cur , cur -> ws_info -> hopping_schdule . uc_fixed_channel , cur -> ws_info -> network_pan_id , true);
1163+ ws_bootstrap_mac_activate (cur , cur -> ws_info -> fhss_uc_fixed_channel , cur -> ws_info -> network_pan_id , true);
11621164 return ;
11631165}
11641166
@@ -1561,8 +1563,8 @@ static void ws_bootstrap_event_handler(arm_event_s *event)
15611563 if (cur -> bootsrap_mode == ARM_NWK_BOOTSRAP_MODE_6LoWPAN_BORDER_ROUTER ) {
15621564 tr_debug ("Border router start network" );
15631565 // Randomize fixed channel. Only used if channel plan is fixed
1564- cur -> ws_info -> hopping_schdule . uc_fixed_channel = randLIB_get_random_in_range (0 ,cur -> ws_info -> hopping_schdule .number_of_channels - 1 );
1565- cur -> ws_info -> hopping_schdule . bc_fixed_channel = randLIB_get_random_in_range (0 ,cur -> ws_info -> hopping_schdule .number_of_channels - 1 );
1566+ cur -> ws_info -> fhss_uc_fixed_channel = randLIB_get_random_in_range (0 ,cur -> ws_info -> hopping_schdule .number_of_channels - 1 );
1567+ cur -> ws_info -> fhss_bc_fixed_channel = randLIB_get_random_in_range (0 ,cur -> ws_info -> hopping_schdule .number_of_channels - 1 );
15661568 cur -> ws_info -> network_pan_id = randLIB_get_random_in_range (0 ,0xfffd );
15671569 cur -> ws_info -> pan_information .pan_size = 0 ;
15681570 cur -> ws_info -> pan_information .pan_version = randLIB_get_random_in_range (0 ,0xffff );
0 commit comments