DNS-SD (mDNS)#

This module includes the platform abstraction for DNS-SD (e.g., mDNS) on the infrastructure network.

The DNS-SD platform APIs are used only when OPENTHREAD_CONFIG_PLATFORM_DNSSD_ENABLE is enabled.

Modules#

otPlatDnssdService

otPlatDnssdHost

otPlatDnssdKey

otPlatDnssdBrowseResult

otPlatDnssdBrowser

otPlatDnssdSrvResult

otPlatDnssdSrvResolver

otPlatDnssdTxtResult

otPlatDnssdTxtResolver

otPlatDnssdAddressAndTtl

otPlatDnssdAddressResult

otPlatDnssdAddressResolver

Enumerations#

enum
OT_PLAT_DNSSD_STOPPED
OT_PLAT_DNSSD_READY
}

Represents the state of the DNS-SD platform.

Typedefs#

typedef enum otPlatDnssdState

Represents the state of the DNS-SD platform.

typedef uint32_t

Represents a request ID for registering/unregistering a service or host.

typedef void(*
otPlatDnssdRegisterCallback)(otInstance *aInstance, otPlatDnssdRequestId aRequestId, otError aError)

Represents the callback function used when registering/unregistering a host or service.

typedef struct otPlatDnssdService

Represents a DNS-SD service.

typedef struct otPlatDnssdHost

Represents a DNS-SD host.

typedef struct otPlatDnssdKey

Represents a DNS-SD key record.

Represents a browse result.

typedef void(*
otPlatDnssdBrowseCallback)(otInstance *aInstance, const otPlatDnssdBrowseResult *aResult)

Represents the callback function used to report a browse result.

typedef struct otPlatDnssdBrowser

Represents a service browser.

typedef struct otPlatDnssdSrvResult

Represents an SRV resolver result.

typedef void(*
otPlatDnssdSrvCallback)(otInstance *aInstance, const otPlatDnssdSrvResult *aResult)

Represents the callback function used to report an SRV resolve result.

typedef struct otPlatDnssdSrvResolver

Represents an SRV service resolver.

typedef struct otPlatDnssdTxtResult

Represents a TXT resolver result.

typedef void(*
otPlatDnssdTxtCallback)(otInstance *aInstance, const otPlatDnssdTxtResult *aResult)

Represents the callback function used to report a TXT resolve result.

typedef struct otPlatDnssdTxtResolver

Represents a TXT service resolver.

Represents a discovered host address and its TTL.

Represents address resolver result.

typedef void(*
otPlatDnssdAddressCallback)(otInstance *aInstance, const otPlatDnssdAddressResult *aResult)

Represents the callback function use to report a IPv6/IPv4 address resolve result.

Represents an address resolver.

Functions#

void
otPlatDnssdStateHandleStateChange(otInstance *aInstance)

Callback to notify state changes of the DNS-SD platform.

otPlatDnssdGetState(otInstance *aInstance)

Gets the current state of the DNS-SD module.

void
otPlatDnssdRegisterService(otInstance *aInstance, const otPlatDnssdService *aService, otPlatDnssdRequestId aRequestId, otPlatDnssdRegisterCallback aCallback)

Registers or updates a service on the infrastructure network's DNS-SD module.

void
otPlatDnssdUnregisterService(otInstance *aInstance, const otPlatDnssdService *aService, otPlatDnssdRequestId aRequestId, otPlatDnssdRegisterCallback aCallback)

Unregisters a service on the infrastructure network's DNS-SD module.

void
otPlatDnssdRegisterHost(otInstance *aInstance, const otPlatDnssdHost *aHost, otPlatDnssdRequestId aRequestId, otPlatDnssdRegisterCallback aCallback)

Registers or updates a host on the infrastructure network's DNS-SD module.

void
otPlatDnssdUnregisterHost(otInstance *aInstance, const otPlatDnssdHost *aHost, otPlatDnssdRequestId aRequestId, otPlatDnssdRegisterCallback aCallback)

Unregisters a host on the infrastructure network's DNS-SD module.

void
otPlatDnssdRegisterKey(otInstance *aInstance, const otPlatDnssdKey *aKey, otPlatDnssdRequestId aRequestId, otPlatDnssdRegisterCallback aCallback)

Registers or updates a key record on the infrastructure network's DNS-SD module.

void
otPlatDnssdUnregisterKey(otInstance *aInstance, const otPlatDnssdKey *aKey, otPlatDnssdRequestId aRequestId, otPlatDnssdRegisterCallback aCallback)

Unregisters a key record on the infrastructure network's DNS-SD module.

void
otPlatDnssdStartBrowser(otInstance *aInstance, const otPlatDnssdBrowser *aBrowser)

Starts a service browser.

void
otPlatDnssdStopBrowser(otInstance *aInstance, const otPlatDnssdBrowser *aBrowser)

Stops a service browser.

void
otPlatDnssdStartSrvResolver(otInstance *aInstance, const otPlatDnssdSrvResolver *aResolver)

Starts an SRV record resolver.

void
otPlatDnssdStopSrvResolver(otInstance *aInstance, const otPlatDnssdSrvResolver *aResolver)

Stops an SRV record resolver.

void
otPlatDnssdStartTxtResolver(otInstance *aInstance, const otPlatDnssdTxtResolver *aResolver)

Starts a TXT record resolver.

void
otPlatDnssdStopTxtResolver(otInstance *aInstance, const otPlatDnssdTxtResolver *aResolver)

Stops a TXT record resolver.

void
otPlatDnssdStartIp6AddressResolver(otInstance *aInstance, const otPlatDnssdAddressResolver *aResolver)

Starts an IPv6 address resolver.

void
otPlatDnssdStopIp6AddressResolver(otInstance *aInstance, const otPlatDnssdAddressResolver *aResolver)

Stops an IPv6 address resolver.

void
otPlatDnssdStartIp4AddressResolver(otInstance *aInstance, const otPlatDnssdAddressResolver *aResolver)

Starts an IPv4 address resolver.

void
otPlatDnssdStopIp4AddressResolver(otInstance *aInstance, const otPlatDnssdAddressResolver *aResolver)

Stops an IPv4 address resolver.

Enumeration Documentation#

otPlatDnssdState#

otPlatDnssdState

Represents the state of the DNS-SD platform.

Enumerator
OT_PLAT_DNSSD_STOPPED

Stopped and unable to register any service or host, or start any browser/resolver.

OT_PLAT_DNSSD_READY

Running and ready to register service or host.


Definition at line 63 of file include/openthread/platform/dnssd.h

Typedef Documentation#

otPlatDnssdState#

typedef enum otPlatDnssdState otPlatDnssdState

Represents the state of the DNS-SD platform.


Definition at line 67 of file include/openthread/platform/dnssd.h

otPlatDnssdRequestId#

typedef uint32_t otPlatDnssdRequestId

Represents a request ID for registering/unregistering a service or host.


Definition at line 72 of file include/openthread/platform/dnssd.h

otPlatDnssdRegisterCallback#

typedef void(* otPlatDnssdRegisterCallback) (otInstance *aInstance, otPlatDnssdRequestId aRequestId, otError aError) )(otInstance *aInstance, otPlatDnssdRequestId aRequestId, otError aError)

Represents the callback function used when registering/unregistering a host or service.

Parameters
[in]aInstance

The OpenThread instance.

[in]aRequestId

The request ID.

[in]aError

Error indicating the outcome of request.

See otPlatDnssdRegisterService(), otPlatDnssdUnregisterService(), otPlatDnssdRegisterHost(), and otPlatDnssdUnregisterHost() for more details about when to invoke the callback and the aError values that can be returned in each case.


Definition at line 85 of file include/openthread/platform/dnssd.h

otPlatDnssdService#

typedef struct otPlatDnssdService otPlatDnssdService

Represents a DNS-SD service.

See otPlatDnssdRegisterService(), otPlatDnssdUnregisterService() for more details about fields in each case.


Definition at line 106 of file include/openthread/platform/dnssd.h

otPlatDnssdHost#

typedef struct otPlatDnssdHost otPlatDnssdHost

Represents a DNS-SD host.

See otPlatDnssdRegisterHost(), otPlatDnssdUnregisterHost() for more details about fields in each case.


Definition at line 120 of file include/openthread/platform/dnssd.h

otPlatDnssdKey#

typedef struct otPlatDnssdKey otPlatDnssdKey

Represents a DNS-SD key record.

See otPlatDnssdRegisterKey(), otPlatDnssdUnregisterKey() for more details about fields in each case.


Definition at line 136 of file include/openthread/platform/dnssd.h

otPlatDnssdBrowseResult#

typedef struct otPlatDnssdBrowseResult otPlatDnssdBrowseResult

Represents a browse result.


Definition at line 417 of file include/openthread/platform/dnssd.h

otPlatDnssdBrowseCallback#

typedef void(* otPlatDnssdBrowseCallback) (otInstance *aInstance, const otPlatDnssdBrowseResult *aResult) )(otInstance *aInstance, const otPlatDnssdBrowseResult *aResult)

Represents the callback function used to report a browse result.

Parameters
[in]aInstance

The OpenThread instance.

[in]aResult

The browse result.


Definition at line 425 of file include/openthread/platform/dnssd.h

otPlatDnssdBrowser#

typedef struct otPlatDnssdBrowser otPlatDnssdBrowser

Represents a service browser.


Definition at line 436 of file include/openthread/platform/dnssd.h

otPlatDnssdSrvResult#

typedef struct otPlatDnssdSrvResult otPlatDnssdSrvResult

Represents an SRV resolver result.


Definition at line 451 of file include/openthread/platform/dnssd.h

otPlatDnssdSrvCallback#

typedef void(* otPlatDnssdSrvCallback) (otInstance *aInstance, const otPlatDnssdSrvResult *aResult) )(otInstance *aInstance, const otPlatDnssdSrvResult *aResult)

Represents the callback function used to report an SRV resolve result.

Parameters
[in]aInstance

The OpenThread instance.

[in]aResult

The SRV resolve result.


Definition at line 459 of file include/openthread/platform/dnssd.h

otPlatDnssdSrvResolver#

typedef struct otPlatDnssdSrvResolver otPlatDnssdSrvResolver

Represents an SRV service resolver.


Definition at line 470 of file include/openthread/platform/dnssd.h

otPlatDnssdTxtResult#

typedef struct otPlatDnssdTxtResult otPlatDnssdTxtResult

Represents a TXT resolver result.


Definition at line 483 of file include/openthread/platform/dnssd.h

otPlatDnssdTxtCallback#

typedef void(* otPlatDnssdTxtCallback) (otInstance *aInstance, const otPlatDnssdTxtResult *aResult) )(otInstance *aInstance, const otPlatDnssdTxtResult *aResult)

Represents the callback function used to report a TXT resolve result.

Parameters
[in]aInstance

The OpenThread instance.

[in]aResult

The TXT resolve result.


Definition at line 491 of file include/openthread/platform/dnssd.h

otPlatDnssdTxtResolver#

typedef struct otPlatDnssdTxtResolver otPlatDnssdTxtResolver

Represents a TXT service resolver.


Definition at line 502 of file include/openthread/platform/dnssd.h

otPlatDnssdAddressAndTtl#

typedef struct otPlatDnssdAddressAndTtl otPlatDnssdAddressAndTtl

Represents a discovered host address and its TTL.


Definition at line 511 of file include/openthread/platform/dnssd.h

otPlatDnssdAddressResult#

typedef struct otPlatDnssdAddressResult otPlatDnssdAddressResult

Represents address resolver result.


Definition at line 522 of file include/openthread/platform/dnssd.h

otPlatDnssdAddressCallback#

typedef void(* otPlatDnssdAddressCallback) (otInstance *aInstance, const otPlatDnssdAddressResult *aResult) )(otInstance *aInstance, const otPlatDnssdAddressResult *aResult)

Represents the callback function use to report a IPv6/IPv4 address resolve result.

Parameters
[in]aInstance

The OpenThread instance.

[in]aResult

The address resolve result.


Definition at line 530 of file include/openthread/platform/dnssd.h

otPlatDnssdAddressResolver#

typedef struct otPlatDnssdAddressResolver otPlatDnssdAddressResolver

Represents an address resolver.


Definition at line 540 of file include/openthread/platform/dnssd.h

Function Documentation#

otPlatDnssdStateHandleStateChange#

void otPlatDnssdStateHandleStateChange (otInstance * aInstance)

Callback to notify state changes of the DNS-SD platform.

Parameters
[in]aInstance

The OpenThread instance structure.

The OpenThread stack will call otPlatDnssdGetState() (from this callback or later) to get the new state. The platform MUST therefore ensure that the returned state from otPlatDnssdGetState() is updated before calling this.

When the platform signals a state change to OT_PLAT_DNSSD_STOPPED using this callback, all active browsers and resolvers are considered to be stopped, and any previously registered host, service, key entries as removed.


Definition at line 149 of file include/openthread/platform/dnssd.h

otPlatDnssdGetState#

otPlatDnssdState otPlatDnssdGetState (otInstance * aInstance)

Gets the current state of the DNS-SD module.

Parameters
[in]aInstance

The OpenThread instance.

The platform MUST notify the OpenThread stack whenever its state gets changed by invoking otPlatDnssdStateHandleStateChange().

Returns

  • The current state of the DNS-SD module.


Definition at line 161 of file include/openthread/platform/dnssd.h

otPlatDnssdRegisterService#

void otPlatDnssdRegisterService (otInstance * aInstance, const otPlatDnssdService * aService, otPlatDnssdRequestId aRequestId, otPlatDnssdRegisterCallback aCallback)

Registers or updates a service on the infrastructure network's DNS-SD module.

Parameters
[in]aInstance

The OpenThread instance.

[in]aService

Information about the service to register.

[in]aRequestId

The ID associated with this request.

[in]aCallback

The callback function pointer to report the outcome (may be NULL if no callback needed).

The aService and all its contained information (strings and buffers) are only valid during this call. The platform MUST save a copy of the information if it wants to retain the information after returning from this function.

The fields in aService follow these rules:

  • The mServiceInstance and mServiceType fields specify the service instance label and service type name, respectively. They are never NULL.

  • The mHostName field specifies the host name of the service if it is not NULL. Otherwise, if it is NULL, it indicates that this service is for the device itself and leaves the host name selection to DNS-SD platform.

  • The mSubTypeLabels is an array of strings representing sub-types associated with the service. It can be NULL if there are no sub-types. Otherwise, the array length is specified by mSubTypeLabelsLength.

  • The mTxtData and mTxtDataLength fields specify the encoded TXT data.

  • The mPort, mWeight, and mPriority fields specify the service's parameters (as specified in DNS SRV record).

  • The mTtl field specifies the TTL if non-zero. If zero, the platform can choose the TTL to use.

  • The mInfraIfIndex field, if non-zero, specifies the infrastructure network interface index to use for this request. If zero, the platform implementation can decided the interface.

When the mHostName field in aService is not NULL (indicating that this registration is on behalf of another host), the OpenThread stack will ensure that otPlatDnssdRegisterHost() is also called for the same host before any service registration requests for the same host.

Once the registration request is finished, either successfully or failed, the platform reports the outcome by invoking the aCallback and passing the same aRequestId in the callback. The aCallback function pointer can be NULL, which indicates that the OpenThread stack does not need to be notified of the outcome of the request. If the outcome is determined, the platform implementation may invoke the aCallback before returning from this function. The OpenThread stack will ensure to handle such a situation.

On success, the aCallback MUST be called (if non-NULL) with OT_ERROR_NONE as the aError input parameter. If the registration causes a name conflict on DNS-SD domain (the service instance name is already claimed by another host), the OT_ERROR_DUPLICATED error MUST be used. The platform implementation can use other OT_ERROR types for other types of errors.

The platform implementation MUST not assume that the aRequestId used in subsequent requests will be different. OpenThread may reuse the same request ID again for a different request.

The OpenThread stack will not register the same service (with no changes) that was registered successfully earlier. Therefore, the platform implementation does not need to check for duplicate/same service and can assume that calls to this function are either registering a new entry or changing some parameter in a previously registered item. As a result, these changes always need to be synced on the infrastructure DNS-SD module.

The OpenThread stack does not require the platform implementation to always invoke the aCallback function. The OpenThread stack has its own mechanism to time out an aged request with no response. This relaxes the requirement for platform implementations.


Definition at line 216 of file include/openthread/platform/dnssd.h

otPlatDnssdUnregisterService#

void otPlatDnssdUnregisterService (otInstance * aInstance, const otPlatDnssdService * aService, otPlatDnssdRequestId aRequestId, otPlatDnssdRegisterCallback aCallback)

Unregisters a service on the infrastructure network's DNS-SD module.

Parameters
[in]aInstance

The OpenThread instance.

[in]aService

Information about the service to unregister.

[in]aRequestId

The ID associated with this request.

[in]aCallback

The callback function pointer to report the outcome (may be NULL if no callback needed).

The aService and all its contained information (strings and buffers) are only valid during this call. The platform MUST save a copy of the information if it wants to retain the information after returning from this function.

The fields in aService follow these rules:

  • The mServiceInstance and mServiceType fields specify the service instance label and service type name, respectively. They are never NULL.

  • The mHostName field specifies the host name of the service if it is not NULL. Otherwise, if it is NULL, it indicates that this service is for the device itself and leaves the host name selection to DNS-SD platform.

  • The mInfraIfIndex field, if non-zero, specifies the infrastructure network interface index to use for this request. If zero, the platform implementation can decided the interface.

  • The rest of the fields in aService structure MUST be ignored in otPlatDnssdUnregisterService() call and may be set to zero by the OpenThread stack.

Regarding the invocation of the aCallback and the reuse of the aRequestId, this function follows the same rules as described in otPlatDnssdRegisterService().

The OpenThread stack may request the unregistration of a service that was not previously registered, and the platform implementation MUST handle this case. In such a case, the platform can use either OT_ERROR_NOT_FOUND to indicate that there was no such registration, or OT_ERROR_NONE when invoking the aCallback function. The OpenThread stack will handle either case correctly.


Definition at line 252 of file include/openthread/platform/dnssd.h

otPlatDnssdRegisterHost#

void otPlatDnssdRegisterHost (otInstance * aInstance, const otPlatDnssdHost * aHost, otPlatDnssdRequestId aRequestId, otPlatDnssdRegisterCallback aCallback)

Registers or updates a host on the infrastructure network's DNS-SD module.

Parameters
[in]aInstance

The OpenThread instance.

[in]aHost

Information about the host to register.

[in]aRequestId

The ID associated with this request.

[in]aCallback

The callback function pointer to report the outcome (may be NULL if no callback needed).

The aHost and all its contained information (strings and arrays) are only valid during this call. The platform MUST save a copy of the information if it wants to retain the information after returning from this function.

The fields in aHost follow these rules:

  • The mHostName field specifies the host name to register. It is never NULL.

  • The mAddresses field is an array of IPv6 addresses to register with the host. mAddressesLength field provides the number of entries in mAddresses array. The platform implementation MUST not filter or remove any of addresses in the list. The OpenThread stack will already ensure that the given addresses are externally reachable. For example, when registering host from an SRP registration, link-local or mesh-local addresses associated with the host which are intended for use within Thread mesh are not included in mAddresses array passed to this API. The mAddresses array can be empty with zero mAddressesLength. In such a case, the platform MUST stop advertising any addresses for this host name on the infrastructure DNS-SD.

  • The mTtl field specifies the TTL if non-zero. If zero, the platform can choose the TTL to use.

  • The mInfraIfIndex field, if non-zero, specifies the infrastructure network interface index to use for this request. If zero, the platform implementation can decided the interface.

Regarding the invocation of the aCallback and the reuse of the aRequestId, this function follows the same rules as described in otPlatDnssdRegisterService().

The OpenThread stack will not register the same host (with no changes) that was registered successfully earlier. Therefore, the platform implementation does not need to check for duplicate/same host and can assume that calls to this function are either registering a new entry or changing some parameter in a previously registered item. As a result, these changes always need to be synced on the infrastructure DNS-SD module.


Definition at line 292 of file include/openthread/platform/dnssd.h

otPlatDnssdUnregisterHost#

void otPlatDnssdUnregisterHost (otInstance * aInstance, const otPlatDnssdHost * aHost, otPlatDnssdRequestId aRequestId, otPlatDnssdRegisterCallback aCallback)

Unregisters a host on the infrastructure network's DNS-SD module.

Parameters
[in]aInstance

The OpenThread instance.

[in]aHost

Information about the host to unregister.

[in]aRequestId

The ID associated with this request.

[in]aCallback

The callback function pointer to report the outcome (may be NULL if no callback needed).

The aHost and all its contained information (strings and arrays) are only valid during this call. The platform MUST save a copy of the information if it wants to retain the information after returning from this function.

The fields in aHost follow these rules:

  • The mHostName field specifies the host name to unregister. It is never NULL.

  • The mInfraIfIndex field, if non-zero, specifies the infrastructure network interface index to use for this request. If zero, the platform implementation can decided the interface.

  • The rest of the fields in aHost structure MUST be ignored in otPlatDnssdUnregisterHost() call and may be set to zero by the OpenThread stack.

Regarding the invocation of the aCallback and the reuse of the aRequestId, this function follows the same rules as described in otPlatDnssdRegisterService().

The OpenThread stack may request the unregistration of a host that was not previously registered, and the platform implementation MUST handle this case. In such a case, the platform can use either OT_ERROR_NOT_FOUND to indicate that there was no such registration, or OT_ERROR_NONE when invoking the aCallback function. OpenThread stack will handle either case correctly.

When unregistering a host, the OpenThread stack will also unregister any previously registered services associated with the same host (by calling otPlatDnssdUnregisterService()). However, the platform implementation MAY assume that unregistering a host also unregisters all its associated services.


Definition at line 329 of file include/openthread/platform/dnssd.h

otPlatDnssdRegisterKey#

void otPlatDnssdRegisterKey (otInstance * aInstance, const otPlatDnssdKey * aKey, otPlatDnssdRequestId aRequestId, otPlatDnssdRegisterCallback aCallback)

Registers or updates a key record on the infrastructure network's DNS-SD module.

Parameters
[in]aInstance

The OpenThread instance.

[in]aKey

Information about the key record to register.

[in]aRequestId

The ID associated with this request.

[in]aCallback

The callback function pointer to report the outcome (may be NULL if no callback needed).

The aKey and all its contained information (strings and arrays) are only valid during this call. The platform MUST save a copy of the information if it wants to retain the information after returning from this function.

The fields in aKey follow these rules:

  • If the key is associated with a host, mName field specifies the host name and mServiceType will be NULL.

  • If the key is associated with a service, mName field specifies the service instance label and mServiceType field specifies the service type. In this case the DNS name for key record is {mName}.{mServiceTye}.

  • The mKeyData field contains the key record's data with mKeyDataLength as its length in byes. It is never NULL.

  • The mClass fields specifies the resource record class to use when registering key record.

  • The mTtl field specifies the TTL if non-zero. If zero, the platform can choose the TTL to use.

  • The mInfraIfIndex field, if non-zero, specifies the infrastructure network interface index to use for this request. If zero, the platform implementation can decided the interface.

Regarding the invocation of the aCallback and the reuse of the aRequestId, this function follows the same rules as described in otPlatDnssdRegisterService().

The OpenThread stack will not register the same key (with no changes) that was registered successfully earlier. Therefore, the platform implementation does not need to check for duplicate/same name and can assume that calls to this function are either registering a new key or changing the key data in a previously registered one. As a result, these changes always need to be synced on the infrastructure DNS-SD module.


Definition at line 365 of file include/openthread/platform/dnssd.h

otPlatDnssdUnregisterKey#

void otPlatDnssdUnregisterKey (otInstance * aInstance, const otPlatDnssdKey * aKey, otPlatDnssdRequestId aRequestId, otPlatDnssdRegisterCallback aCallback)

Unregisters a key record on the infrastructure network's DNS-SD module.

Parameters
[in]aInstance

The OpenThread instance.

[in]aKey

Information about the key to unregister.

[in]aRequestId

The ID associated with this request.

[in]aCallback

The callback function pointer to report the outcome (may be NULL if no callback needed).

The aKey and all its contained information (strings and arrays) are only valid during this call. The platform MUST save a copy of the information if it wants to retain the information after returning from this function.

The fields in aKey follow these rules:

  • If the key is associated with a host, mName field specifies the host name and mServiceType will be NULL.

  • If the key is associated with a service, mName field specifies the service instance label and mServiceType field specifies the service type. In this case the DNS name for key record is {mName}.{mServiceTye}.

  • The mInfraIfIndex field, if non-zero, specifies the infrastructure network interface index to use for this request. If zero, the platform implementation can decided the interface.

  • The rest of the fields in aKey structure MUST be ignored in otPlatDnssdUnregisterKey() call and may be set to zero by the OpenThread stack.

Regarding the invocation of the aCallback and the reuse of the aRequestId, this function follows the same rules as described in otPlatDnssdRegisterService().

The OpenThread stack may request the unregistration of a key that was not previously registered, and the platform implementation MUST handle this case. In such a case, the platform can use either OT_ERROR_NOT_FOUND to indicate that there was no such registration, or OT_ERROR_NONE when invoking the aCallback function. the OpenThread stack will handle either case correctly.


Definition at line 400 of file include/openthread/platform/dnssd.h

otPlatDnssdStartBrowser#

void otPlatDnssdStartBrowser (otInstance * aInstance, const otPlatDnssdBrowser * aBrowser)

Starts a service browser.

Parameters
[in]aInstance

The OpenThread instance.

[in]aBrowser

The browser to be started.

Initiates a continuous search for the specified mServiceType in aBrowser. For sub-type services, mSubTypeLabel specifies the sub-type, for base services, mSubTypeLabel is set to NULL.

Discovered services should be reported through the mCallback function in aBrowser. Services that have been removed are reported with a TTL value of zero. The callback may be invoked immediately with cached information (if available) and potentially before this function returns. When cached results are used, the reported TTL value should reflect the original TTL from the last received response.

Multiple browsers can be started for the same service, provided they use different callback functions.

The aBrowser and all its contained information (strings) are only valid during this call. The platform MUST save a copy of the information if it wants to retain the information after returning from this function.


Definition at line 561 of file include/openthread/platform/dnssd.h

otPlatDnssdStopBrowser#

void otPlatDnssdStopBrowser (otInstance * aInstance, const otPlatDnssdBrowser * aBrowser)

Stops a service browser.

Parameters
[in]aInstance

The OpenThread instance.

[in]aBrowser

The browser to stop.

No action is performed if no matching browser with the same service and callback is currently active.

The aBrowser and all its contained information (strings) are only valid during this call. The platform MUST save a copy of the information if it wants to retain the information after returning from this function.


Definition at line 574 of file include/openthread/platform/dnssd.h

otPlatDnssdStartSrvResolver#

void otPlatDnssdStartSrvResolver (otInstance * aInstance, const otPlatDnssdSrvResolver * aResolver)

Starts an SRV record resolver.

Parameters
[in]aInstance

The OpenThread instance.

[in]aResolver

The resolver to be started.

Initiates a continuous SRV record resolver for the specified service in aResolver.

Discovered information should be reported through the mCallback function in aResolver. When the service is removed it is reported with a TTL value of zero. In this case, mHostName may be NULL and other result fields (such as mPort) will be ignored by the OpenThread stack.

The callback may be invoked immediately with cached information (if available) and potentially before this function returns. When cached result is used, the reported TTL value should reflect the original TTL from the last received response.

Multiple resolvers can be started for the same service, provided they use different callback functions.

The aResolver and all its contained information (strings) are only valid during this call. The platform MUST save a copy of the information if it wants to retain the information after returning from this function.


Definition at line 597 of file include/openthread/platform/dnssd.h

otPlatDnssdStopSrvResolver#

void otPlatDnssdStopSrvResolver (otInstance * aInstance, const otPlatDnssdSrvResolver * aResolver)

Stops an SRV record resolver.

Parameters
[in]aInstance

The OpenThread instance.

[in]aResolver

The resolver to stop.

No action is performed if no matching resolver with the same service and callback is currently active.

The aResolver and all its contained information (strings) are only valid during this call. The platform MUST save a copy of the information if it wants to retain the information after returning from this function.


Definition at line 610 of file include/openthread/platform/dnssd.h

otPlatDnssdStartTxtResolver#

void otPlatDnssdStartTxtResolver (otInstance * aInstance, const otPlatDnssdTxtResolver * aResolver)

Starts a TXT record resolver.

Parameters
[in]aInstance

The OpenThread instance.

[in]aResolver

The resolver to be started.

Initiates a continuous TXT record resolver for the specified service in aResolver.

Discovered information should be reported through the mCallback function in aResolver. When the TXT record is removed it is reported with a TTL value of zero. In this case, mTxtData may be NULL, and other result fields (such as mTxtDataLength) will be ignored by the OpenThread stack.

The callback may be invoked immediately with cached information (if available) and potentially before this function returns. When cached result is used, the reported TTL value should reflect the original TTL from the last received response.

Multiple resolvers can be started for the same service, provided they use different callback functions.

The aResolver and all its contained information (strings) are only valid during this call. The platform MUST save a copy of the information if it wants to retain the information after returning from this function.


Definition at line 633 of file include/openthread/platform/dnssd.h

otPlatDnssdStopTxtResolver#

void otPlatDnssdStopTxtResolver (otInstance * aInstance, const otPlatDnssdTxtResolver * aResolver)

Stops a TXT record resolver.

Parameters
[in]aInstance

The OpenThread instance.

[in]aResolver

The resolver to stop.

No action is performed if no matching resolver with the same service and callback is currently active.

The aResolver and all its contained information (strings) are only valid during this call. The platform MUST save a copy of the information if it wants to retain the information after returning from this function.


Definition at line 646 of file include/openthread/platform/dnssd.h

otPlatDnssdStartIp6AddressResolver#

void otPlatDnssdStartIp6AddressResolver (otInstance * aInstance, const otPlatDnssdAddressResolver * aResolver)

Starts an IPv6 address resolver.

Parameters
[in]aInstance

The OpenThread instance.

[in]aResolver

The resolver to be started.

Initiates a continuous IPv6 address resolver for the specified host name in aResolver.

Discovered addresses should be reported through the mCallback function in aResolver. The callback should be invoked whenever addresses are added or removed, providing an updated list. If all addresses are removed, the callback should be invoked with an empty list (mAddressesLength set to zero).

The callback may be invoked immediately with cached information (if available) and potentially before this function returns. When cached result is used, the reported TTL values should reflect the original TTL from the last received response.

Multiple resolvers can be started for the same host name, provided they use different callback functions.

The aResolver and all its contained information (strings) are only valid during this call. The platform MUST save a copy of the information if it wants to retain the information after returning from this function.


Definition at line 669 of file include/openthread/platform/dnssd.h

otPlatDnssdStopIp6AddressResolver#

void otPlatDnssdStopIp6AddressResolver (otInstance * aInstance, const otPlatDnssdAddressResolver * aResolver)

Stops an IPv6 address resolver.

Parameters
[in]aInstance

The OpenThread instance.

[in]aResolver

The resolver to stop.

No action is performed if no matching resolver with the same host name and callback is currently active.

The aResolver and all its contained information (strings) are only valid during this call. The platform MUST save a copy of the information if it wants to retain the information after returning from this function.


Definition at line 682 of file include/openthread/platform/dnssd.h

otPlatDnssdStartIp4AddressResolver#

void otPlatDnssdStartIp4AddressResolver (otInstance * aInstance, const otPlatDnssdAddressResolver * aResolver)

Starts an IPv4 address resolver.

Parameters
[in]aInstance

The OpenThread instance.

[in]aResolver

The resolver to be started.

Initiates a continuous IPv4 address resolver for the specified host name in aResolver.

Discovered addresses should be reported through the mCallback function in aResolver. The IPv4 addresses are represented using the IPv4-mapped IPv6 address format in mAddresses array. The callback should be invoked whenever addresses are added or removed, providing an updated list. If all addresses are removed, the callback should be invoked with an empty list (mAddressesLength set to zero).

The callback may be invoked immediately with cached information (if available) and potentially before this function returns. When cached result is used, the reported TTL values will reflect the original TTL from the last received response.

Multiple resolvers can be started for the same host name, provided they use different callback functions.

The aResolver and all its contained information (strings) are only valid during this call. The platform MUST save a copy of the information if it wants to retain the information after returning from this function.


Definition at line 706 of file include/openthread/platform/dnssd.h

otPlatDnssdStopIp4AddressResolver#

void otPlatDnssdStopIp4AddressResolver (otInstance * aInstance, const otPlatDnssdAddressResolver * aResolver)

Stops an IPv4 address resolver.

Parameters
[in]aInstance

The OpenThread instance.

[in]aResolver

The resolver to stop.

No action is performed if no matching resolver with the same host name and callback is currently active.

The aResolver and all its contained information (strings) are only valid during this call. The platform MUST save a copy of the information if it wants to retain the information after returning from this function.


Definition at line 719 of file include/openthread/platform/dnssd.h