Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ICD] Implement the Session Active Threshold Discovery Key #28025

Closed
mkardous-silabs opened this issue Jul 18, 2023 · 1 comment · Fixed by #28123
Closed

[ICD] Implement the Session Active Threshold Discovery Key #28025

mkardous-silabs opened this issue Jul 18, 2023 · 1 comment · Fixed by #28123
Assignees
Labels
spec Mismatch between spec and implementation
Milestone

Comments

@mkardous-silabs
Copy link
Contributor

This task is in two steps :

  1. Implement the SAT Discovery key with default value and update client side to take in the key into consideration in the MRP calculations
The optional key SAT indicates the SESSION_ACTIVE_THRESHOLD of the Node. 
This key MAY optionally be provided by a Node to override the default setting.
 If the key is not included or invalid, the Node querying the service record SHALL use the default MRP parameter value. 
The SAT value is an unsigned integer with units of milliseconds and SHALL be encoded as a variable-length decimal number in ASCII encoding, omitting any leading zeros. 
The SAT value SHALL NOT exceed 65535 (65.535 seconds). 

Add the Active mode threshold to the session-parameter-struct as define the MRP specification

session-parameter-struct => STRUCTURE [ tag-order ]
{
  SESSION_IDLE_INTERVAL     [1, optional] : UNSIGNED INTEGER [ range 32-bits ],
  SESSION_ACTIVE_INTERVAL   [2, optional] : UNSIGNED INTEGER [ range 32-bits ],
  SESSION_ACTIVE_THRESHOLD  [3, optional] : UNSIGNED INTEGER [ range 16-bits ],
} 

When the client resolves the SAT key, the value of the key should be used to determine if the peer is active or not instead of using the default 4000s value.

In Session.h,
constexpr System::Clock::Milliseconds32 kMinActiveTime = System::Clock::Milliseconds32(4000);

  1. When the device is an ICD, the device should advertise the attribute value in the discovery key. with the SAI and SII keys.
@mkardous-silabs mkardous-silabs added spec Mismatch between spec and implementation icd Intermittently Connected Devices labels Jul 18, 2023
@mkardous-silabs mkardous-silabs added this to the 1.2 milestone Jul 18, 2023
@github-actions github-actions bot removed the icd Intermittently Connected Devices label Jul 18, 2023
@bzbarsky-apple
Copy link
Contributor

Please watch out for https://github.com/CHIP-Specifications/connectedhomeip-spec/issues/7315 when fixing this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
spec Mismatch between spec and implementation
Development

Successfully merging a pull request may close this issue.

3 participants