DNS-SD Server#

This module includes APIs for DNS-SD server.

Modules#

otDnssdServiceInstanceInfo

otDnssdHostInfo

otDnssdCounters

Enumerations#

enum
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
}

Specifies a DNS-SD query type.

Typedefs#

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

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

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

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

typedef void

This opaque type represents a DNS-SD query.

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

typedef struct otDnssdHostInfo

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

typedef struct otDnssdCounters

Contains the counters of DNS-SD server.

Functions#

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

Sets DNS-SD server query callbacks.

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

Notifies a discovered service instance.

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

Notifies a discovered host.

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

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.

otDnssdGetCounters(otInstance *aInstance)

Returns the counters of the DNS-SD server.

void
otDnssdUpstreamQuerySetEnabled(otInstance *aInstance, bool aEnabled)

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

bool
otDnssdUpstreamQueryIsEnabled(otInstance *aInstance)

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

Enumeration Documentation#

otDnssdQueryType#

otDnssdQueryType

Specifies a DNS-SD query type.

Enumerator
OT_DNSSD_QUERY_TYPE_NONE

Service type unspecified.

OT_DNSSD_QUERY_TYPE_BROWSE

Service type browse service.

OT_DNSSD_QUERY_TYPE_RESOLVE

Service type resolve service instance.

OT_DNSSD_QUERY_TYPE_RESOLVE_HOST

Service type resolve hostname.


Definition at line 142 of file include/openthread/dnssd_server.h

Typedef Documentation#

otDnssdQuerySubscribeCallback#

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

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

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.").

  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.

Note

  • There can be multiple subscription to the same name. DNS-SD query implementation should record the number of active subscriptions and stop notifying when there is no active subscription for aFullName.

See Also


Definition at line 83 of file include/openthread/dnssd_server.h

otDnssdQueryUnsubscribeCallback#

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

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

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.").

  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.

Note

  • There can be multiple subscription to the same name. DNS-SD query implementation should record the number of active subscriptions and stop notifying when there is no active subscription for aFullName.


Definition at line 101 of file include/openthread/dnssd_server.h

otDnssdQuery#

typedef void otDnssdQuery

This opaque type represents a DNS-SD query.


Definition at line 107 of file include/openthread/dnssd_server.h

otDnssdServiceInstanceInfo#

typedef struct otDnssdServiceInstanceInfo otDnssdServiceInstanceInfo

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


Definition at line 125 of file include/openthread/dnssd_server.h

otDnssdHostInfo#

typedef struct otDnssdHostInfo otDnssdHostInfo

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


Definition at line 136 of file include/openthread/dnssd_server.h

otDnssdCounters#

typedef struct otDnssdCounters otDnssdCounters

Contains the counters of DNS-SD server.


Definition at line 164 of file include/openthread/dnssd_server.h

Function Documentation#

otDnssdQuerySetCallbacks#

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

Sets DNS-SD server query callbacks.

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.

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.

Note

  • aSubscribe and aUnsubscribe must be both set or unset.


Definition at line 180 of file include/openthread/dnssd_server.h

otDnssdQueryHandleDiscoveredServiceInstance#

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

Notifies a discovered service instance.

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.

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

Note

  • aInstanceInfo must not contain unspecified or link-local or loop-back or multicast IP addresses.


Definition at line 198 of file include/openthread/dnssd_server.h

otDnssdQueryHandleDiscoveredHost#

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

Notifies a discovered host.

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.

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

Note

  • aHostInfo must not contain unspecified or link-local or loop-back or multicast IP addresses.


Definition at line 214 of file include/openthread/dnssd_server.h

otDnssdGetNextQuery#

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

Acquires the next query in the DNS-SD server.

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.


Definition at line 225 of file include/openthread/dnssd_server.h

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.

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.


Definition at line 236 of file include/openthread/dnssd_server.h

otDnssdGetCounters#

const otDnssdCounters * otDnssdGetCounters (otInstance *aInstance)

Returns the counters of the DNS-SD server.

Parameters
[in]aInstance

The OpenThread instance structure.

Returns

  • A pointer to the counters of the DNS-SD server.


Definition at line 246 of file include/openthread/dnssd_server.h

otDnssdUpstreamQuerySetEnabled#

void otDnssdUpstreamQuerySetEnabled (otInstance *aInstance, bool aEnabled)

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

Parameters
[in]aInstance

A pointer to an OpenThread instance.

[in]aEnabled

A boolean to enable/disable forwarding DNS queries to upstream.

Available when OPENTHREAD_CONFIG_DNS_UPSTREAM_QUERY_ENABLE is enabled.

See Also


Definition at line 261 of file include/openthread/dnssd_server.h

otDnssdUpstreamQueryIsEnabled#

bool otDnssdUpstreamQueryIsEnabled (otInstance *aInstance)

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

Parameters
[in]aInstance

A pointer to an OpenThread instance.

Available when OPENTHREAD_CONFIG_DNS_UPSTREAM_QUERY_ENABLE is enabled.

See Also


Definition at line 275 of file include/openthread/dnssd_server.h