Skip to content

Commit

Permalink
Adding design document for ICD Check-in handler
Browse files Browse the repository at this point in the history
  • Loading branch information
thivya-amazon committed Oct 1, 2024
1 parent fcf1ccc commit 94ca058
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 0 deletions.
21 changes: 21 additions & 0 deletions src/app/icd/docs/check-in_handler_design.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Check-in handler overview

ICD servers send check-in messages to a registered ICD client when a subscription is lost or one was never established. A subscription can be lost for several reasons, such as:

• The ICD might not have full RAM retention when it is in an idle state.

• When the ICD is powered off to change the battery.

• Power or network outage causing the connection between the client and the ICD to be interrupted.

• The client is unavailable for any reason

The Check-In handler in an ICD client is responsible for handling unsolicited check-in messages from an ICD server. All ICD clients should add support for Check-In protocol as it is a fail safe mechanism that provides a means to re-establish a secure session with an ICD server. The heart of the module is the check-in handler that receives and parses check-in messages from ICD servers. After ensuring the validity of the message, the check-in handler passes it on to the check-in protocol to parse the message and retrieves the ICD counter value. The ICD counter is used to derive the nonce in the encryption process of the check-in protocol. Beyond that, ICD counters are also used to detect repeated reception of the same message and eliminate duplicates. Once the maximum value for an ICD counter is reached, the counter should roll-over to 0 and when that is done, it is necessary for the ICD client to re-register with the ICD server using a fresh key.

The design below shows how the Check-in handler and key refresh algorithm is implemented in the Matter SDK.

The following diagram shows a simplified structure of a Matter application which
runs on the top of the Mbed-OS.

![check-in_handler_design](images/check-in_handler_design.png)

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 94ca058

Please sign in to comment.