@@ -182,6 +182,8 @@ static fhss_ws_neighbor_timing_info_t *ws_get_neighbor_info(const fhss_api_t *ap
182
182
static void ws_bootstrap_llc_hopping_update (struct protocol_interface_info_entry * cur , const fhss_ws_configuration_t * fhss_configuration )
183
183
{
184
184
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 ;
185
187
cur -> ws_info -> hopping_schdule .uc_channel_function = fhss_configuration -> ws_uc_channel_function ;
186
188
cur -> ws_info -> hopping_schdule .bc_channel_function = fhss_configuration -> ws_bc_channel_function ;
187
189
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
240
242
fhss_configuration -> ws_bc_channel_function = cur -> ws_info -> fhss_bc_channel_function ;
241
243
fhss_configuration -> fhss_bc_dwell_interval = cur -> ws_info -> fhss_bc_dwell_interval ;
242
244
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 ;
245
247
ws_generate_channel_list (fhss_configuration -> channel_mask , cur -> ws_info -> hopping_schdule .number_of_channels , cur -> ws_info -> hopping_schdule .regulatory_domain );
246
248
247
249
// 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)
277
279
fhss_configuration .ws_bc_channel_function = WS_FIXED_CHANNEL ;
278
280
fhss_configuration .fhss_bc_dwell_interval = 0 ;
279
281
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 );
282
284
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 ;
286
288
ns_fhss_ws_configuration_set (cur -> ws_info -> fhss_api ,& fhss_configuration );
287
289
ws_bootstrap_llc_hopping_update (cur ,& fhss_configuration );
288
290
@@ -328,8 +330,8 @@ static void ws_bootstrap_primary_parent_set(struct protocol_interface_info_entry
328
330
fhss_configuration .bsi = neighbor_info -> ws_neighbor -> fhss_data .bc_timing_info .broadcast_schedule_id ;
329
331
fhss_configuration .fhss_bc_dwell_interval = neighbor_info -> ws_neighbor -> fhss_data .bc_timing_info .broadcast_dwell_interval ;
330
332
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 ;
333
335
ns_fhss_ws_configuration_set (cur -> ws_info -> fhss_api , & fhss_configuration );
334
336
335
337
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)
1158
1160
tr_debug ("MAC init" );
1159
1161
mac_helper_pib_boolean_set (cur , macRxOnWhenIdle , true);
1160
1162
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);
1162
1164
return ;
1163
1165
}
1164
1166
@@ -1561,8 +1563,8 @@ static void ws_bootstrap_event_handler(arm_event_s *event)
1561
1563
if (cur -> bootsrap_mode == ARM_NWK_BOOTSRAP_MODE_6LoWPAN_BORDER_ROUTER ) {
1562
1564
tr_debug ("Border router start network" );
1563
1565
// 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 );
1566
1568
cur -> ws_info -> network_pan_id = randLIB_get_random_in_range (0 ,0xfffd );
1567
1569
cur -> ws_info -> pan_information .pan_size = 0 ;
1568
1570
cur -> ws_info -> pan_information .pan_version = randLIB_get_random_in_range (0 ,0xffff );
0 commit comments