@@ -1102,6 +1102,7 @@ static void ws_bootstrap_start_configuration_learn(protocol_interface_info_entry
11021102 // Clear all temporary information
11031103 ws_bootstrap_ip_stack_reset (cur );
11041104
1105+ cur -> ws_info -> pas_requests = 0 ;
11051106 // Reset advertisement solicit trickle to start discovering network
11061107 trickle_start (& cur -> ws_info -> trickle_pan_config_solicit , & trickle_params_pan_discovery );
11071108 trickle_inconsistent_heard (& cur -> ws_info -> trickle_pan_config_solicit , & trickle_params_pan_discovery );
@@ -1334,7 +1335,6 @@ static void ws_bootstrap_event_handler(arm_event_s *event)
13341335 ws_bootstrap_ip_stack_activate (cur );
13351336 ws_bootstrap_rpl_activate (cur );
13361337 ws_bootstrap_network_start (cur );
1337- ws_bootstrap_advertise_start (cur );
13381338 // Wait for RPL start
13391339 if (cur -> bootsrap_mode == ARM_NWK_BOOTSRAP_MODE_6LoWPAN_BORDER_ROUTER ) {
13401340 ws_bootstrap_event_routing_ready (cur );
@@ -1345,6 +1345,7 @@ static void ws_bootstrap_event_handler(arm_event_s *event)
13451345 break ;
13461346 case WS_ROUTING_READY :
13471347 tr_info ("Routing ready" );
1348+ ws_bootstrap_advertise_start (cur );
13481349 ws_bootstrap_state_change (cur , ER_BOOTSRAP_DONE );
13491350 break ;
13501351 case WS_ADDRESS_ADDED :
@@ -1483,7 +1484,13 @@ void ws_bootstrap_seconds_timer(protocol_interface_info_entry_t *cur, uint32_t s
14831484 }
14841485 if (trickle_timer (& cur -> ws_info -> trickle_pan_config_solicit , & trickle_params_pan_discovery , seconds )) {
14851486 // send PAN Configuration solicit
1487+ if (cur -> ws_info -> pas_requests > PCS_MAX ) {
1488+ // if MAX PCS sent restart discovery
1489+ ws_bootstrap_event_discovery_start (cur );
1490+ return ;
1491+ }
14861492 tr_info ("Send PAN configuration Solicit" );
1493+ cur -> ws_info -> pas_requests ++ ;
14871494 ws_bootstrap_pan_config_solicit (cur );
14881495 }
14891496 if (trickle_timer (& cur -> ws_info -> trickle_pan_advertisement , & trickle_params_pan_discovery , seconds )) {
0 commit comments