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.


Definition at line 60 of file include/openthread/platform/dns.h

Function Documentation#

otPlatDnsStartUpstreamQuery#

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

Starts an upstream query transaction.

Parameters
[in]aInstance

The OpenThread instance structure.

[in]aTxn

A pointer to the opaque DNS query transaction object.

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


Definition at line 76 of file include/openthread/platform/dns.h

otPlatDnsCancelUpstreamQuery#

void otPlatDnsCancelUpstreamQuery (otInstance *aInstance, otPlatDnsUpstreamQuery *aTxn)

Cancels a transaction of upstream query.

Parameters
[in]aInstance

The OpenThread instance structure.

[in]aTxn

A pointer to the opaque DNS query transaction object.

The platform must call otPlatDnsUpstreamQueryDone to release the resources.


Definition at line 87 of file include/openthread/platform/dns.h

otPlatDnsUpstreamQueryDone#

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

The platform calls this function to finish DNS query.

Parameters
[in]aInstance

The OpenThread instance structure.

[in]aTxn

A pointer to the opaque DNS query transaction object.

[in]aResponse

A message buffer of the DNS response payload or nullptr 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 a nullptr to close a transaction without a response.


Definition at line 103 of file include/openthread/platform/dns.h