@@ -845,6 +845,7 @@ static void ws_bootstrap_pan_advertisement_analyse(struct protocol_interface_inf
845
845
846
846
// Save route cost for all neighbours
847
847
llc_neighbour_req_t neighbor_info ;
848
+ neighbor_info .neighbor = NULL ;
848
849
if (ws_bootstrap_neighbor_info_request (cur , data -> SrcAddr , & neighbor_info , false)) {
849
850
neighbor_info .ws_neighbor -> routing_cost = pan_information .routing_cost ;
850
851
}
@@ -921,12 +922,16 @@ static void ws_bootstrap_pan_advertisement_analyse(struct protocol_interface_inf
921
922
ws_bootstrap_pan_advertisement_analyse_active (cur , & pan_information );
922
923
923
924
// Learn latest network information
924
- if (cur -> bootsrap_mode != ARM_NWK_BOOTSRAP_MODE_6LoWPAN_BORDER_ROUTER ) {
925
- cur -> ws_info -> pan_information .pan_size = pan_information .pan_size ;
926
- cur -> ws_info -> pan_information .routing_cost = pan_information .routing_cost ;
927
- cur -> ws_info -> pan_information .rpl_routing_method = pan_information .rpl_routing_method ;
928
- cur -> ws_info -> pan_information .use_parent_bs = pan_information .use_parent_bs ;
929
- cur -> ws_info -> pan_information .version = pan_information .version ;
925
+ if (cur -> bootsrap_mode != ARM_NWK_BOOTSRAP_MODE_6LoWPAN_BORDER_ROUTER && neighbor_info .neighbor ) {
926
+
927
+ if (neighbor_info .neighbor -> link_role == PRIORITY_PARENT_NEIGHBOUR ) {
928
+ cur -> ws_info -> pan_information .pan_size = pan_information .pan_size ;
929
+ cur -> ws_info -> pan_information .routing_cost = pan_information .routing_cost ;
930
+ cur -> ws_info -> pan_information .rpl_routing_method = pan_information .rpl_routing_method ;
931
+ cur -> ws_info -> pan_information .use_parent_bs = pan_information .use_parent_bs ;
932
+ cur -> ws_info -> pan_information .version = pan_information .version ;
933
+ }
934
+
930
935
}
931
936
}
932
937
0 commit comments