@@ -94,7 +94,7 @@ static void ws_bbr_rpl_root_start(uint8_t *dodag_id)
94
94
uint8_t t_flags = PIO_A ;
95
95
96
96
rpl_control_update_dodag_prefix (protocol_6lowpan_rpl_root_dodag , dodag_id , 64 , t_flags , 0xffffffff , 0xffffffff , false);
97
- rpl_control_update_dodag_route (protocol_6lowpan_rpl_root_dodag , dodag_id , 64 , 0 , 0xffffffff , false);
97
+ rpl_control_update_dodag_route (protocol_6lowpan_rpl_root_dodag , dodag_id , 64 , 0x18 , 0xffffffff , false);
98
98
rpl_control_update_dodag_route (protocol_6lowpan_rpl_root_dodag , NULL , 0 , 0 , 0xffffffff , false);
99
99
}
100
100
@@ -147,7 +147,8 @@ static int ws_bbr_static_ula_create(protocol_interface_info_entry_t *cur)
147
147
}
148
148
tr_info ("BBR generate ula prefix" );
149
149
150
- if_address_entry_t * add_entry = icmpv6_slaac_address_add (cur , static_dodag_prefix , 64 , 0xffffffff , 0xffffffff , true, SLAAC_IID_FIXED );
150
+ // This address is only used if no other address available.
151
+ if_address_entry_t * add_entry = icmpv6_slaac_address_add (cur , static_dodag_prefix , 64 , 0xffffffff , 0 , true, SLAAC_IID_FIXED );
151
152
if (!add_entry ) {
152
153
return -1 ;
153
154
}
@@ -239,8 +240,10 @@ static void ws_bbr_rpl_status_check(protocol_interface_info_entry_t *cur)
239
240
// TODO remove old global prefix
240
241
tr_info ("RPL GUA deactivate %s" , trace_ipv6 (global_dodag_id ));
241
242
242
- rpl_control_update_dodag_prefix (protocol_6lowpan_rpl_root_dodag , global_dodag_id , 64 , 0 , 7200 , 0 , false);
243
- rpl_control_update_dodag_route (protocol_6lowpan_rpl_root_dodag , global_dodag_id , 64 , 0 , 7200 , false);
243
+ rpl_control_update_dodag_prefix (protocol_6lowpan_rpl_root_dodag , static_dodag_id , 64 , PIO_A , 7200 , 7200 , false);
244
+ rpl_control_update_dodag_route (protocol_6lowpan_rpl_root_dodag , static_dodag_id , 64 , 0x18 , 7200 , false);
245
+ rpl_control_update_dodag_prefix (protocol_6lowpan_rpl_root_dodag , global_dodag_id , 64 , 0 , 7200 , 0 , true);
246
+ rpl_control_update_dodag_route (protocol_6lowpan_rpl_root_dodag , global_dodag_id , 64 , 0 , 7200 , true);
244
247
ipv6_route_add_with_info (global_dodag_id , 64 , backbone_interface_id , NULL , ROUTE_THREAD_BBR , NULL , 0 , 7200 , 0 );
245
248
}
246
249
// TODO add global prefix
@@ -261,8 +264,10 @@ static void ws_bbr_rpl_status_check(protocol_interface_info_entry_t *cur)
261
264
tr_info ("RPL GUA activate %s" , trace_ipv6 (global_id ));
262
265
ws_dhcp_client_address_request (cur , global_id , ll );
263
266
264
- rpl_control_update_dodag_prefix (protocol_6lowpan_rpl_root_dodag , global_id , 64 , 0 , 0xffffffff , 0xffffffff , false);
265
- rpl_control_update_dodag_route (protocol_6lowpan_rpl_root_dodag , global_id , 64 , 0 , 0xffffffff , false);
267
+ rpl_control_update_dodag_prefix (protocol_6lowpan_rpl_root_dodag , static_dodag_id , 64 , PIO_A , 7200 , 0 , false);
268
+ rpl_control_update_dodag_route (protocol_6lowpan_rpl_root_dodag , static_dodag_id , 64 , 0x18 , 7200 , false);
269
+ rpl_control_update_dodag_prefix (protocol_6lowpan_rpl_root_dodag , global_id , 64 , 0 , 7200 , 7200 , false);
270
+ rpl_control_update_dodag_route (protocol_6lowpan_rpl_root_dodag , global_id , 64 , 0 , 7200 , false);
266
271
ipv6_route_add_with_info (global_id , 64 , backbone_interface_id , NULL , ROUTE_THREAD_BBR , NULL , 0 , 0xffffffff , 0 );
267
272
}
268
273
memcpy (global_dodag_id , global_id , 16 );
0 commit comments