-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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
[dns-sd] Extended discovery improvements #16290
Conversation
fa00e05
to
547ade6
Compare
PR #16290: Size comparison from 193b4d0 to 547ade6 Increases (4 builds for cyw30739, telink)
Decreases (22 builds for efr32, esp32, k32w, linux, mbed, nrfconnect, p6)
Full report (26 builds for cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, telink)
|
PR #16290: Size comparison from 193b4d0 to f1f9fba Increases (4 builds for cyw30739, telink)
Decreases (22 builds for efr32, esp32, k32w, linux, mbed, nrfconnect, p6)
Full report (26 builds for cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, telink)
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for cleaning this up!
According to the spec, each time a commissionable node service is advertised and the device is not in the commissioning mode, the advertising should be treated as Extended Discovery. The current code, however, makes a distinction whether the device is on any fabric or not.
The spec recommends that the extended discovery by default time out after a period recommended in the "Announcement duration" section. Change the default from "no timeout" to 15 minutes. Use DefaultStorageKeyAllocator when persisting the timeout. Make extended discovery logs more meaningful for a non-implementer and remove some irrelevant messages.
Discriminator must be now explicitly specified in Linux apps. Previously the Cirque tests were passing only by chance.
Most platforms have it enabled, by default, and those that don't, have extended discovery disabled, too, which covers the case when the commissioning window is closed. On the other hand, when the commissioning window is open, the device should always try to advertise over DNS-SD.
f1f9fba
to
deeb2fd
Compare
PR #16290: Size comparison from 2e658fb to deeb2fd Increases (4 builds for cyw30739, telink)
Decreases (31 builds for efr32, esp32, k32w, linux, mbed, nrfconnect, p6)
Full report (35 builds for cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, telink)
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
changes look good, thanks
* [dns-sd] Change extended discovery condition According to the spec, each time a commissionable node service is advertised and the device is not in the commissioning mode, the advertising should be treated as Extended Discovery. The current code, however, makes a distinction whether the device is on any fabric or not. * [dns-sd] Set default extended discovery timeout to 15 minutes The spec recommends that the extended discovery by default time out after a period recommended in the "Announcement duration" section. Change the default from "no timeout" to 15 minutes. Use DefaultStorageKeyAllocator when persisting the timeout. Make extended discovery logs more meaningful for a non-implementer and remove some irrelevant messages. * Fix Cirque tests Discriminator must be now explicitly specified in Linux apps. Previously the Cirque tests were passing only by chance. * Remove CHIP_DEVICE_CONFIG_ENABLE_COMMISSIONABLE_DISCOVERY Most platforms have it enabled, by default, and those that don't, have extended discovery disabled, too, which covers the case when the commissioning window is closed. On the other hand, when the commissioning window is open, the device should always try to advertise over DNS-SD. * Fix build * Follow KVS key convention
Problem
Change overview
Fixes Extended timeout configuration value not initialized ? #11124
Testing
Built a sample with extended discovery disabled and observed that commissionable node advertising doesn't start until the commissioning window is opened.