@@ -468,7 +468,7 @@ static int thread_pbbr_bb_qry_cb(int8_t service_id, uint8_t source_address[16],
468
468
rloc_ptr = & rloc ;
469
469
}
470
470
471
- uint32_t last_transaction_time = this -> mlr_timeout > route -> lifetime ? this -> mlr_timeout - route -> lifetime : 0 ;
471
+ uint32_t last_transaction_time = 30 ;
472
472
uint8_t * ml_eid_ptr = & route -> prefix [8 ];// TODO MLEID needs to be stored in own structure route->info.info and support for dealloc made
473
473
474
474
// This address is valid in our MESH
@@ -500,7 +500,7 @@ static int thread_pbbr_dua_duplicate_address_detection(int8_t service_id, uint8_
500
500
}
501
501
502
502
// We have pending request and received answer
503
- if (memcmp (ml_eid_ptr ,tr_ptr -> ml_eid , 8 ) ! = 0 ){
503
+ if (memcmp (ml_eid_ptr ,tr_ptr -> ml_eid , 8 ) = = 0 ){
504
504
// Different ml_eid but same address means duplicate address detected
505
505
thread_resolution_client_address_error (this -> interface_id , tr_ptr -> source_address , tr_ptr -> target_eid , tr_ptr -> ml_eid );
506
506
ipv6_neighbour_t * neighbour_entry ;
@@ -1068,6 +1068,9 @@ bool thread_extension_bbr_nd_query_process(protocol_interface_info_entry_t *cur,
1068
1068
1069
1069
static void thread_extension_bbr_dad_process (protocol_interface_info_entry_t * cur , thread_pbbr_t * this , uint32_t seconds )
1070
1070
{
1071
+ if (!this ) {
1072
+ return ;
1073
+ }
1071
1074
ns_list_foreach_safe (duplicate_dua_tr_t , cur_dup_tr , & duplicate_dua_tr_list ) {
1072
1075
if (cur_dup_tr -> interface_id != cur -> id ) {
1073
1076
continue ;
@@ -1080,7 +1083,6 @@ static void thread_extension_bbr_dad_process(protocol_interface_info_entry_t *cu
1080
1083
if (cur_dup_tr -> dua_dad_repeat > 0 ) {
1081
1084
cur_dup_tr -> ttl = THREAD_BBR_DUA_DAD_QUERY_TIMEOUT ;
1082
1085
thread_border_router_bb_qry_send (this ,cur_dup_tr -> target_eid ,NULL );
1083
- return ;
1084
1086
} else {
1085
1087
// dad completed
1086
1088
// send PRO_BB.ntf and delete dad entry
0 commit comments