Skip to content

Commit 1d7693b

Browse files
Change the re-registration delay (ARMmbed#2016)
Re-registration delay needs to be coded with two bytes
1 parent 9640ec0 commit 1d7693b

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

source/6LoWPAN/Thread/thread_extension.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -451,7 +451,7 @@ int thread_extension_primary_bbr_get(struct protocol_interface_info_entry *cur,
451451
//tr_info("BBR server TLV: %s\r\n", trace_array(server_tlv_ptr, server_tlv_len));
452452
do {
453453
found_tlv_len = thread_meshcop_tlv_find_next(server_tlv_ptr, server_tlv_len, THREAD_NWK_DATA_TYPE_SERVER_DATA | THREAD_NWK_STABLE_DATA, &found_tlv);
454-
if (found_tlv && found_tlv_len > 10) {
454+
if (found_tlv && found_tlv_len > 8) {
455455
//tr_info("BBR server TLV: %s\r\n", trace_array(found_tlv, found_tlv_len));
456456
if (addr_ptr) {
457457
thread_addr_write_mesh_local_16(addr_ptr, common_read_16_bit(found_tlv), cur->thread_info);
@@ -460,10 +460,10 @@ int thread_extension_primary_bbr_get(struct protocol_interface_info_entry *cur,
460460
*seq_ptr = found_tlv[2];
461461
}
462462
if (delay_timer_ptr) {
463-
*delay_timer_ptr = common_read_32_bit(&found_tlv[3]);
463+
*delay_timer_ptr = common_read_16_bit(&found_tlv[3]);
464464
}
465465
if (mlr_timer_ptr) {
466-
*mlr_timer_ptr = common_read_32_bit(&found_tlv[7]);
466+
*mlr_timer_ptr = common_read_32_bit(&found_tlv[5]);
467467
if (*mlr_timer_ptr < THREAD_DEFAULT_MIN_MLR_TIMEOUT) {
468468
*mlr_timer_ptr = THREAD_DEFAULT_MIN_MLR_TIMEOUT;
469469
}

source/6LoWPAN/Thread/thread_extension_bbr.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1077,17 +1077,17 @@ static int thread_border_router_pbbr_nw_data_register(thread_pbbr_t *this)
10771077
{
10781078
// Create Primary BBR network data and send to leader
10791079
uint8_t service_data[1];
1080-
uint8_t server_data[9];
1080+
uint8_t server_data[7];
10811081
uint8_t *ptr = server_data;
10821082

10831083
service_data[0] = THREAD_SERVICE_DATA_BBR;
10841084
*ptr++ = this->sequence_number;
1085-
ptr = common_write_32_bit(this->delay_timer, ptr);
1085+
ptr = common_write_16_bit(this->delay_timer, ptr);
10861086
ptr = common_write_32_bit(this->mlr_timeout, ptr);
10871087

10881088
if (thread_border_router_service_add(this->interface_id, service_data,
10891089
1, 0, THREAD_ENTERPRISE_NUMBER,
1090-
server_data, 9, true) != 0) {
1090+
server_data, 7, true) != 0) {
10911091
tr_error("Adding service data failed!");
10921092
return -1;
10931093
}

0 commit comments

Comments
 (0)