Skip to content

Commit f5530b1

Browse files
author
Arto Kinnunen
authored
Thread key ID change during attach (#1627)
Child ID response saves link layer frame counters that were learned when parent response was received. If key ID is changed between parent response and child id response then link layer frame counter should be cleared.
1 parent 1b7fdc0 commit f5530b1

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

source/6LoWPAN/Thread/thread_host_bootstrap.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -832,6 +832,13 @@ static void thread_mle_child_request_receive_cb(int8_t interface_id, mle_message
832832

833833
mac_helper_coordinator_address_set(cur, ADDR_802_15_4_SHORT, shortAddress);
834834
mle_entry_timeout_update(entry_temp, thread_info(cur)->host_link_timeout);
835+
836+
if (scan_result->security_key_index != security_headers->KeyIndex) {
837+
// KeyIndex has been changed between parent_response and child_id_response, reset link layer frame counter
838+
scan_result->linLayerFrameCounter = 0;
839+
scan_result->security_key_index = security_headers->KeyIndex;
840+
}
841+
835842
mac_helper_devicetable_set(entry_temp, cur, scan_result->linLayerFrameCounter, security_headers->KeyIndex, new_entry_created);
836843

837844
thread_info(cur)->thread_attached_state = THREAD_STATE_CONNECTED;

0 commit comments

Comments
 (0)