Implement TR-10-9 Section 15 DNS-SD browse strategy#484
Open
simonbaren wants to merge 1 commit intosony:masterfrom
Open
Implement TR-10-9 Section 15 DNS-SD browse strategy#484simonbaren wants to merge 1 commit intosony:masterfrom
simonbaren wants to merge 1 commit intosony:masterfrom
Conversation
fb842e3 to
8a965c6
Compare
TR-10-9 Section 15 requires IPMX devices to:
- Support both mDNS and unicast DNS for DNS-SD browse operations
- Default to using both methods
- Provide user mechanisms to limit browsing to unicast or mDNS only
- When using both: try unicast DNS first, fall back to mDNS only
if unicast is unsuccessful (no service discovered)
- When multiple results are returned: select by best priority,
failing over to next-best if unresponsive
- Once a service is selected and responsive: perform no further
browse operations for that service type
- If the selected service becomes unresponsive: perform a new
DNS-SD browse and restart selection
Add dns_sd_browse_mode setting ("both"/"unicast"/"mdns") to implement
the required dual-discovery strategy. In "both" mode (default), unicast
DNS is tried first with half the timeout budget; if no records are
found, mDNS fallback gets the remaining half. "unicast" and "mdns"
modes restrict to a single method.
Also filters browse results by domain class to prevent mDNS results
leaking into unicast DNS queries and vice versa.
Signed-off-by: Semyon Barenboym <simonbaren@gmail.com>
8a965c6 to
cc1dab4
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Implements the DNS-SD browse strategy required by TR-10-9 Section 15 for IPMX device service discovery.
Changes
dns_sd_browse_modesetting ("both"/"unicast"/"mdns") to control DNS-SD browse method"both"(default): try unicast DNS first with half the timeout budget; fall back to mDNS if no services found"unicast": unicast DNS only"mdns": mDNS onlyresolve_serviceto delegate toresolve_service_with the dual-discovery logicMotivation
TR-10-9 Section 15 requires IPMX devices to support both mDNS and unicast DNS for DNS-SD browse operations, defaulting to using both methods. When using both, unicast DNS must be attempted first, with mDNS as a fallback only if unicast is unsuccessful.
Files changed
Development/nmos/settings.h— newdns_sd_browse_modefieldDevelopment/nmos/mdns.cpp— dual-browse logic and domain class filteringhttps://static.vsf.tv/download/technical_recommendations/VSF_TR-10-9_v2_2025-05-13.pdf