DNS-SD Server

This module includes APIs for DNS-SD server.

Summary

Enumerations

otDnssdQueryType{
  OT_DNSSD_QUERY_TYPE_NONE = 0,
  OT_DNSSD_QUERY_TYPE_BROWSE = 1,
  OT_DNSSD_QUERY_TYPE_RESOLVE = 2,
  OT_DNSSD_QUERY_TYPE_RESOLVE_HOST = 3
}
enum
Specifies a DNS-SD query type.

Typedefs

otDnssdCounters typedef
Contains the counters of DNS-SD server.
otDnssdHostInfo typedef
Represents information of a discovered host for a DNS-SD query.
otDnssdQuery typedef
void
This opaque type represents a DNS-SD query.
otDnssdQuerySubscribeCallback)(void *aContext, const char *aFullName) typedef
void(*
Is called when a DNS-SD query subscribes one of:
otDnssdQueryUnsubscribeCallback)(void *aContext, const char *aFullName) typedef
void(*
Is called when a DNS-SD query unsubscribes one of:
otDnssdServiceInstanceInfo typedef
Represents information of a discovered service instance for a DNS-SD query.
otUpstreamDnsCounters typedef
Represents the count of queries, responses, failures handled by upstream DNS server.

Functions

otDnssdGetCounters(otInstance *aInstance)
const otDnssdCounters *
Returns the counters of the DNS-SD server.
otDnssdGetNextQuery(otInstance *aInstance, const otDnssdQuery *aQuery)
const otDnssdQuery *
Acquires the next query in the DNS-SD server.
otDnssdGetQueryTypeAndName(const otDnssdQuery *aQuery, char(*) aNameOutput[OT_DNS_MAX_NAME_SIZE])
Acquires the DNS-SD query type and name for a specific query.
otDnssdQueryHandleDiscoveredHost(otInstance *aInstance, const char *aHostFullName, otDnssdHostInfo *aHostInfo)
void
Notifies a discovered host.
otDnssdQueryHandleDiscoveredServiceInstance(otInstance *aInstance, const char *aServiceFullName, otDnssdServiceInstanceInfo *aInstanceInfo)
void
Notifies a discovered service instance.
otDnssdQuerySetCallbacks(otInstance *aInstance, otDnssdQuerySubscribeCallback aSubscribe, otDnssdQueryUnsubscribeCallback aUnsubscribe, void *aContext)
void
Sets DNS-SD server query callbacks.
otDnssdUpstreamQueryIsEnabled(otInstance *aInstance)
bool
Returns whether the DNSSD server will forward DNS queries to the platform DNS upstream API.
otDnssdUpstreamQuerySetEnabled(otInstance *aInstance, bool aEnabled)
void
Enable or disable forwarding DNS queries to platform DNS upstream API.

Structs

otDnssdCounters

Contains the counters of DNS-SD server.

otDnssdHostInfo

Represents information of a discovered host for a DNS-SD query.

otDnssdServiceInstanceInfo

Represents information of a discovered service instance for a DNS-SD query.

otUpstreamDnsCounters

Represents the count of queries, responses, failures handled by upstream DNS server.

Enumerations

otDnssdQueryType

 otDnssdQueryType

Specifies a DNS-SD query type.

Properties
OT_DNSSD_QUERY_TYPE_BROWSE

Service type browse service.

OT_DNSSD_QUERY_TYPE_NONE

Service type unspecified.

OT_DNSSD_QUERY_TYPE_RESOLVE

Service type resolve service instance.

OT_DNSSD_QUERY_TYPE_RESOLVE_HOST

Service type resolve hostname.

Typedefs

otDnssdCounters

struct otDnssdCounters otDnssdCounters

Contains the counters of DNS-SD server.

otDnssdHostInfo

struct otDnssdHostInfo otDnssdHostInfo

Represents information of a discovered host for a DNS-SD query.

otDnssdQuery

void otDnssdQuery

This opaque type represents a DNS-SD query.

otDnssdQuerySubscribeCallback

void(* otDnssdQuerySubscribeCallback)(void *aContext, const char *aFullName)

Is called when a DNS-SD query subscribes one of:

  1. a service name.
  2. a service instance name.
  3. a host name.

The DNS-SD query implementation is responsible for identifying what aFullName is. If aFullName is a service name or service instance name, the DNS-SD query implementation should discover corresponding service instance information and notify the DNS-SD server using otDnssdQueryHandleDiscoveredServiceInstance. If aFullName is a host name, the DNS-SD query implementation should discover the host information and notify the DNS-SD server using otDnssdQueryHandleDiscoveredHost.

Details
Parameters
[in] aContext
A pointer to the application-specific context.
[in] aFullName
The null-terminated full service name (e.g. "_ipps._tcp.default.service.arpa."), or full service instance name (e.g. "OpenThread._ipps._tcp.default.service.arpa."), or full host name (e.g. "ot-host.default.service.arpa.").
See also:
otDnssdQueryHandleDiscoveredServiceInstance
otDnssdQueryHandleDiscoveredHost

otDnssdQueryUnsubscribeCallback

void(* otDnssdQueryUnsubscribeCallback)(void *aContext, const char *aFullName)

Is called when a DNS-SD query unsubscribes one of:

  1. a service name.
  2. a service instance name.
  3. a host name.

The DNS-SD query implementation is responsible for identifying what aFullName is.

Details
Parameters
[in] aContext
A pointer to the application-specific context.
[in] aFullName
The null-terminated full service name (e.g. "_ipps._tcp.default.service.arpa."), or full service instance name (e.g. "OpenThread._ipps._tcp.default.service.arpa.").

otDnssdServiceInstanceInfo

struct otDnssdServiceInstanceInfo otDnssdServiceInstanceInfo

Represents information of a discovered service instance for a DNS-SD query.

otUpstreamDnsCounters

struct otUpstreamDnsCounters otUpstreamDnsCounters

Represents the count of queries, responses, failures handled by upstream DNS server.

Requires OPENTHREAD_CONFIG_DNS_UPSTREAM_QUERY_ENABLE.

Functions

otDnssdGetCounters

const otDnssdCounters * otDnssdGetCounters(
  otInstance *aInstance
)

Returns the counters of the DNS-SD server.

Details
Parameters
[in] aInstance
The OpenThread instance structure.
Returns
A pointer to the counters of the DNS-SD server.

otDnssdGetNextQuery

const otDnssdQuery * otDnssdGetNextQuery(
  otInstance *aInstance,
  const otDnssdQuery *aQuery
)

Acquires the next query in the DNS-SD server.

Details
Parameters
[in] aInstance
The OpenThread instance structure.
[in] aQuery
The query pointer. Pass NULL to get the first query.
Returns
A pointer to the query or NULL if no more queries.

otDnssdGetQueryTypeAndName

otDnssdQueryType otDnssdGetQueryTypeAndName(
  const otDnssdQuery *aQuery,
  char(*) aNameOutput[OT_DNS_MAX_NAME_SIZE]
)

Acquires the DNS-SD query type and name for a specific query.

Details
Parameters
[in] aQuery
The query pointer acquired from otDnssdGetNextQuery.
[out] aNameOutput
The name output buffer, which should be OT_DNS_MAX_NAME_SIZE bytes long.
Returns
The DNS-SD query type.

otDnssdQueryHandleDiscoveredHost

void otDnssdQueryHandleDiscoveredHost(
  otInstance *aInstance,
  const char *aHostFullName,
  otDnssdHostInfo *aHostInfo
)

Notifies a discovered host.

The external query resolver (e.g. Discovery Proxy) should call this function to notify OpenThread core of the subscribed hosts.

Details
Parameters
[in] aInstance
The OpenThread instance structure.
[in] aHostFullName
The null-terminated full host name.
[in] aHostInfo
A pointer to the discovered service instance information.

otDnssdQueryHandleDiscoveredServiceInstance

void otDnssdQueryHandleDiscoveredServiceInstance(
  otInstance *aInstance,
  const char *aServiceFullName,
  otDnssdServiceInstanceInfo *aInstanceInfo
)

Notifies a discovered service instance.

The external query resolver (e.g. Discovery Proxy) should call this function to notify OpenThread core of the subscribed services or service instances.

Details
Parameters
[in] aInstance
The OpenThread instance structure.
[in] aServiceFullName
The null-terminated full service name.
[in] aInstanceInfo
A pointer to the discovered service instance information.

otDnssdQuerySetCallbacks

void otDnssdQuerySetCallbacks(
  otInstance *aInstance,
  otDnssdQuerySubscribeCallback aSubscribe,
  otDnssdQueryUnsubscribeCallback aUnsubscribe,
  void *aContext
)

Sets DNS-SD server query callbacks.

The DNS-SD server calls aSubscribe to subscribe to a service or service instance to resolve a DNS-SD query and aUnsubscribe to unsubscribe when the query is resolved or timeout.

Details
Parameters
[in] aInstance
The OpenThread instance structure.
[in] aSubscribe
A pointer to the callback function to subscribe a service or service instance.
[in] aUnsubscribe
A pointer to the callback function to unsubscribe a service or service instance.
[in] aContext
A pointer to the application-specific context.

otDnssdUpstreamQueryIsEnabled

bool otDnssdUpstreamQueryIsEnabled(
  otInstance *aInstance
)

Returns whether the DNSSD server will forward DNS queries to the platform DNS upstream API.

Available when OPENTHREAD_CONFIG_DNS_UPSTREAM_QUERY_ENABLE is enabled.

Details
Parameters
[in] aInstance
A pointer to an OpenThread instance.
Return Values
TRUE
If the DNSSD server will forward DNS queries.
FALSE
If the DNSSD server will not forward DNS queries.
See also:
otDnssdUpstreamQuerySetEnabled

otDnssdUpstreamQuerySetEnabled

void otDnssdUpstreamQuerySetEnabled(
  otInstance *aInstance,
  bool aEnabled
)

Enable or disable forwarding DNS queries to platform DNS upstream API.

Available when OPENTHREAD_CONFIG_DNS_UPSTREAM_QUERY_ENABLE is enabled.

Details
Parameters
[in] aInstance
A pointer to an OpenThread instance.
[in] aEnabled
A boolean to enable/disable forwarding DNS queries to upstream.
See also:
otPlatDnsStartUpstreamQuery
otPlatDnsCancelUpstreamQuery
otPlatDnsUpstreamQueryDone

Resources

OpenThread API Reference topics originate from the source code, available on GitHub. For more information, or to contribute to our documentation, refer to Resources.