DNS-SD Server

This module includes APIs for DNS-SD server.

Classes

struct otDnssdServiceInstanceInfo
This structure represents information of a discovered service instance for a DNS-SD query.
struct otDnssdHostInfo
This structure represents information of a discovered host for a DNS-SD query.

Typedefs

typedef void(* otDnssdQuerySubscribeCallback ) (void *aContext, const char *aFullName)
This function is called when a DNS-SD query subscribes one of:
typedef void(* otDnssdQueryUnsubscribeCallback ) (void *aContext, const char *aFullName)
This function is called when a DNS-SD query unsubscribes one of:
typedef void otDnssdQuery
This opaque type represents a DNS-SD query.
typedef struct otDnssdServiceInstanceInfo otDnssdServiceInstanceInfo
This structure represents information of a discovered service instance for a DNS-SD query.
typedef struct otDnssdHostInfo otDnssdHostInfo
This structure represents information of a discovered host for a DNS-SD query.

Enumerations

enum 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
}
This enumeration specifies a DNS-SD query type.

Functions

void otDnssdQuerySetCallbacks ( otInstance *aInstance, otDnssdQuerySubscribeCallback aSubscribe, otDnssdQueryUnsubscribeCallback aUnsubscribe, void *aContext)
This function sets DNS-SD server query callbacks.
void otDnssdQueryHandleDiscoveredServiceInstance ( otInstance *aInstance, const char *aServiceFullName, otDnssdServiceInstanceInfo *aInstanceInfo)
This function notifies a discovered service instance.
void otDnssdQueryHandleDiscoveredHost ( otInstance *aInstance, const char *aHostFullName, otDnssdHostInfo *aHostInfo)
This function notifies a discovered host.
const otDnssdQuery * otDnssdGetNextQuery ( otInstance *aInstance, const otDnssdQuery *aQuery)
This function acquires the next query in the DNS-SD server.
otDnssdQueryType otDnssdGetQueryTypeAndName (const otDnssdQuery *aQuery, char(*aNameOutput)[ OT_DNS_MAX_NAME_SIZE ])
This function acquires the DNS-SD query type and name for a specific query.

Detailed Description

This module includes APIs for DNS-SD server.

Typedef Documentation

otDnssdQuerySubscribeCallback

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

This function 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 .

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

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

This function 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.

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

Enumeration Type Documentation

otDnssdQueryType

This enumeration 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.

Function Documentation

otDnssdGetNextQuery()

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

This function 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.

otDnssdGetQueryTypeAndName()

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

This function 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.

otDnssdQueryHandleDiscoveredHost()

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

This function notifies a discovered host.

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

This function 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.

Note
aInstanceInfo must not contain unspecified or link-local or loop-back or multicast IP addresses.
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
)

This function 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.

Note
aSubscribe and aUnsubscribe must be both set or unset.
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.