-
Notifications
You must be signed in to change notification settings - Fork 2k
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
Handling DNS-SD services updates by the controller #11040
Comments
@LuDuda @Damian-Nordic @andy31415 @tcarmelveilleux @bzbarsky-apple @msandstedt any thoughts on that? Please add to discussion anybody who could be interested in it. |
I think 3rd option is the minimum we must do as the behavior is required by the spec. Also, the controller should periodically invalidate the cached values according to the TTL of the DNS records. I'm not sure, however if 4th option is required by the spec or not. |
Right, third option is a minimal bar. Once we have that in place, we can think about 4th option.... |
We have some prototypes that use chip::Controller::DeviceController from the sdk and some where we've rolled our own. Where we've rolled our own controller object, we've used a variant of option 3. Our variant is that we have a dedicated (polling) keepalive read and, when this hits a failure threshold, we resolve and establish a new session. We will likely move from a polling keepalive to a subscription-based keepalive because this has nice semantics for this type of thing. Either way, these approaches are very similar to option 3 and seem to work well. Option 4 also sounds great and very sophisticated, but it seems risky to assume broadcast of unsolicited advertisements. I assume such an approach would likely still have to be done in conjunction with option 3. In summary, yes I also agree that implementing option 3 makes sense right now. |
Thanks for sharing your opinion, I also think that 3rd option is the best for the first shot. |
@pan-apple FYI |
Problem
Currently the controller is getting DNS-SD services from the accessory device by manually triggering this action with
resolve
command. However there might be several cases (at least I see 2) when some of the data in the advertised records changed and controller should be aware of that:If the controller will not update this information it might result in communication failures.
I would like to discuss and figure out the solution on how should the controller update such information. I see several options, like:
resolve
once again when we are aware of the changes. That might be useful in the test scenarios, but not in the final implementation.Proposed Solution
The text was updated successfully, but these errors were encountered: