DNS - Platform#

This module includes the platform abstraction for sending recursive DNS query to upstream DNS servers.

Typedefs#

typedef struct otPlatDnsUpstreamQuery

This opaque type represents an upstream DNS query transaction.

Functions#

void
otPlatDnsStartUpstreamQuery(otInstance *aInstance, otPlatDnsUpstreamQuery *aTxn, const otMessage *aQuery)

Starts an upstream query transaction.

void
otPlatDnsCancelUpstreamQuery(otInstance *aInstance, otPlatDnsUpstreamQuery *aTxn)

Cancels a transaction of upstream query.

void
otPlatDnsUpstreamQueryDone(otInstance *aInstance, otPlatDnsUpstreamQuery *aTxn, otMessage *aResponse)

The platform calls this function to finish DNS query.

Typedef Documentation#

otPlatDnsUpstreamQuery#

typedef struct otPlatDnsUpstreamQuery otPlatDnsUpstreamQuery

This opaque type represents an upstream DNS query transaction.


Function Documentation#

otPlatDnsStartUpstreamQuery#

void otPlatDnsStartUpstreamQuery (otInstance * aInstance, otPlatDnsUpstreamQuery * aTxn, const otMessage * aQuery)

Starts an upstream query transaction.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

The OpenThread instance structure.

otPlatDnsUpstreamQuery *[in]aTxn

A pointer to the opaque DNS query transaction object.

const otMessage *[in]aQuery

A message buffer of the DNS payload that should be sent to upstream DNS server.

  • In success case (and errors represented by DNS protocol messages), the platform is expected to call otPlatDnsUpstreamQueryDone.

  • The OpenThread core may cancel a (possibly timeout) query transaction by calling otPlatDnsCancelUpstreamQuery, the platform must not call otPlatDnsUpstreamQueryDone on a cancelled transaction.


otPlatDnsCancelUpstreamQuery#

void otPlatDnsCancelUpstreamQuery (otInstance * aInstance, otPlatDnsUpstreamQuery * aTxn)

Cancels a transaction of upstream query.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

The OpenThread instance structure.

otPlatDnsUpstreamQuery *[in]aTxn

A pointer to the opaque DNS query transaction object.

The platform must call otPlatDnsUpstreamQueryDone to release the resources.


otPlatDnsUpstreamQueryDone#

void otPlatDnsUpstreamQueryDone (otInstance * aInstance, otPlatDnsUpstreamQuery * aTxn, otMessage * aResponse)

The platform calls this function to finish DNS query.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

The OpenThread instance structure.

otPlatDnsUpstreamQuery *[in]aTxn

A pointer to the opaque DNS query transaction object.

otMessage *[in]aResponse

A message buffer of the DNS response payload or NULL to close a transaction without a response.

The transaction will be released, so the platform must not call on the same transaction twice. This function passes the ownership of aResponse to OpenThread stack.

Platform can pass NULL to close a transaction without a response.