XRD document discovery using DNS SD
In the context of Project Baird, services provided by broadcasters are discovered using a variant of RadioDNS. In addition, can be provided on local networks and by service providers using DNS-SD -- either in conjunction with multicast DNS, or through specific browse domains. The browse domain list can be augmented by the user in order to allow for manual subscriptions to groups of services.
Parts of Project Baird rely on XRD as a service description mechanism. The expectation is that service providers will advertise XRD documents using DNS such that they can be automatically discovered.
An XRD advertisment uses the service type of xrd
, and so DNS records take the form of _xrd._tcp.<domain>
. The service type registration for this purpose will occur in due course.
The SRV
record identifies servers which make the XRD document available, and specifies the port numbers, weights and priorities of each. The corresponding TXT
record specifies the resource path and protocol (http or https), such that a complete request URL can be constructed.
The corresponding TXT
record has the notional format of:
name=value[<space>name=value[<space>...]]
Each value
is URI (percent)-encoded. The order of the name/value pairs is not important. Results
A parameter named txtvers
must be present for the advertisement to be considered valid. It must contain the value 1
.
A parameter named path
must be present for the advertisement to be considered valid. Its value is the host-relative request URI as would be included in the HTTP request (that is, the portion of the absolute request URL from the first /
of the path onwards). The path MUST begin with the /
character, and clients may discard advertisements which do not conform to this.
A parameter named proto
may optionally be included which should consist of one of the values http
or https
. If the proto
parameter is omitted, HTTP should be assumed. If the proto
value contains some other value, and it is not a protocol understood by the client, the whole advertisement should be discarded. Clients may support protocols beyond http
and https
.
The absolute URL which is constructed takes the form:
<proto>://<hostname>:<port><path>
The hostname
is:
-
for RadioDNS/TVDNS-based discovery, the "RadioDNS Fully-Qualfied Domain Name" (that is, the domain name ending in
.radiodns.org
or.tvdns.net
) -
for DNS-SD based discovery, the hostname from the
SRV
record (consistent with thehttp
DNS-SD service).