# General

This module includes functions for all Thread roles.

## Summary

The Network Data Publisher provides mechanisms to limit the number of similar Service and/or Prefix (on-mesh prefix or external route) entries in the Thread Network Data by monitoring the Network Data and managing if or when to add or remove entries.

All the functions in this module require `OPENTHREAD_CONFIG_NETDATA_PUBLISHER_ENABLE` to be enabled.


> [!NOTE]
> **Note:** The functions in this module require `OPENTHREAD_FTD=1` or `OPENTHREAD_MTD=1`.

<br />

| ### Enumerations ||
|---|---|
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga46bf439d509e082c14fade133dc681af{ https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gga46bf439d509e082c14fade133dc681afa454ea8dd374c9bc9d1f4c6cc11738140 = 0, https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gga46bf439d509e082c14fade133dc681afa33eedd8181abc6c7117bc26c40eb7882 = 1, https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gga46bf439d509e082c14fade133dc681afabb1cf8c8fec45072042fa8a1d0b5d80e = 2, https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gga46bf439d509e082c14fade133dc681afa6abf487214a3484ca0452bebea90df74 = 3, https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gga46bf439d509e082c14fade133dc681afa7bb1a0afb1b20a1cd71ac876f0877bd2 = 4 }` | enumRepresents a Thread device role. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga14518cc12644cf92da46afe269a7324f{ https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gga14518cc12644cf92da46afe269a7324fa8c204b0fc423f0bf5f56e8f47b53a110 = 0, https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gga14518cc12644cf92da46afe269a7324fab95b3841b23807d6364f33a9711faba1 = 1 }` | enumRepresents the events reported from the Publisher callbacks. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga6085e64b90c7645b8d206edad0b14e1c{ https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gga6085e64b90c7645b8d206edad0b14e1cafe78210da474e99dbc0c67727704f5b8 = -1, https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gga6085e64b90c7645b8d206edad0b14e1ca6403ae4fe44464096ac301e6d8363523 = 0, https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gga6085e64b90c7645b8d206edad0b14e1cab01b0823f54bf7cd11201335702ce393 = 1 }` | enumDefines valid values for `mPreference` in `https://openthread.io/reference/struct/ot-external-route-config` and `https://openthread.io/reference/struct/ot-border-router-config`. |

| ### Typedefs ||
|---|---|
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga021164642188962b5372ef7e49940581` | typedef `struct https://openthread.io/reference/struct/ot-border-router-config` Represents a Border Router configuration. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga5c839c7f67abef74bbc52da8d6e8466f)(void *aContext)` | typedef `void(*` This callback informs the application that the detaching process has finished. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga65d4d5b42c866bce653a878f189bf1b7` | typedef `struct https://openthread.io/reference/struct/ot-external-route-config` Represents an External Route configuration. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga83a907700f4369f48338ac02c0b3e986` | typedef `struct https://openthread.io/reference/struct/ot-ip-counters` Represents the IP level counters. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga4ffad2e82ef7ca723cb8100dcb04de0b` | typedef `struct https://openthread.io/reference/struct/ot-leader-data` Represents the Thread Leader Data. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga7ef997873f4d40618d77330c34e5766c` | typedef `struct https://openthread.io/reference/struct/ot-link-mode-config` Represents an MLE Link Mode configuration. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga931f716d9c3c47a163c8e1ff027c83b4` | typedef `struct https://openthread.io/reference/struct/ot-lowpan-context-info` Represents 6LoWPAN Context ID information associated with a prefix in Network Data. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gaa5bfde9b5ad956b0f20e3808a2dbb572` | typedef `struct https://openthread.io/reference/struct/ot-mle-counters` Represents the Thread MLE counters. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga9af04696139e51b2ab276b117319216a` | typedef `int16_t` Used to iterate through neighbor table. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga1d468cdf395d94d5f804eec735895a46)(otNetDataPublisherEvent aEvent, void *aContext)` | typedef `void(*` Pointer type defines the callback used to notify when a "DNS/SRP Service" entry is added to or removed from the Thread Network Data. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga1595fb659e861214c6f0b6024f956019)(otNetDataPublisherEvent aEvent, const otIp6Prefix *aPrefix, void *aContext)` | typedef `void(*` Pointer type defines the callback used to notify when a prefix (on-mesh or external route) entry is added to or removed from the Thread Network Data. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga133c5e645d861cca5531e749fb486fd7` | typedef `enum https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga14518cc12644cf92da46afe269a7324f` Represents the events reported from the Publisher callbacks. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gac4be34b26a43e67d12ee7e0352ee4927` | typedef `uint32_t` Used to iterate through Network Data information. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga8dc96a988c9a53b28973bac0e5ca5e3d` | typedef `https://openthread.io/reference/group/api-border-routing#group__api-border-routing_1ga9552cad9ae4f9b7f0e4d412f34bc9c23` Represents a Border Router State TLV value. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga10dd035e5be14f74d957dad2574d893e` | typedef `struct https://openthread.io/reference/struct/ot-network-diag-child-entry` Represents a Network Diagnostic Child Table Entry. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga32c9330d99c5266b67868104e8b4848f` | typedef `struct https://openthread.io/reference/struct/ot-network-diag-child-table` Represents a Network Diagnostic Child Table TLV value. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga691d572e9765139af7d1eda8e91340b2` | typedef `struct https://openthread.io/reference/struct/ot-network-diag-connectivity` Represents a Network Diagnostic Connectivity value. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga3a5d39bb60dcc2e8e5cb26b0e6a5cd08` | typedef `struct https://openthread.io/reference/struct/ot-network-diag-data` Represents a Network Diagnostic TLV Data. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gafdfae962232086995f3f5c2160bcd3f2` | typedef `struct https://openthread.io/reference/struct/ot-network-diag-enh-route` Represents a Network Diagnostic Enhanced Route TLV value. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gaed6fef43fa37d902fcc2d4caa8ad102b` | typedef `struct https://openthread.io/reference/struct/ot-network-diag-enh-route-data` Represents a Network Diagnostic Enhanced Route data. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga1df866a0eaec1364abf995d459252879` | typedef `struct https://openthread.io/reference/struct/ot-network-diag-ip6-addr-list` Represents a Network Diagnostics IPv6 Address List TLV value. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gafe28456a857fefebf5dc4b63d3322a3f` | typedef `uint16_t` Used to iterate through Network Diagnostic TLV. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gac77f5e08708aab7b23deecfd43048cc8` | typedef `struct https://openthread.io/reference/struct/ot-network-diag-mac-counters` Represents a Network Diagnostic Mac Counters value. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga98fc39e0c39ceeab916756acdc1a4ee4` | typedef `struct https://openthread.io/reference/struct/ot-network-diag-mle-counters` Represents a Network Diagnostics MLE Counters value. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga2b33ad6254f320967c43c7a9245ba5c9` | typedef `struct https://openthread.io/reference/struct/ot-network-diag-route` Represents a Network Diagnostic Route64 TLV value. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga80443ec508c1b92c5a41838187f924db` | typedef `struct https://openthread.io/reference/struct/ot-network-diag-route-data` Represents a Network Diagnostic Route data. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga108d28cb17c9ca7ce756fae97b0a6656` | typedef `struct https://openthread.io/reference/struct/ot-network-diag-tlv` Represents a Network Diagnostic TLV. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga0472a838724883eadf9661544e1dac30)(otError aError, otMessage *aMessage, const otMessageInfo *aMessageInfo, void *aContext)` | typedef `void(*` Pointer is called when Network Diagnostic Get response is received. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gadd1b32507e676f1e8c9c9f6ff47a6a58` | typedef `enum https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga6085e64b90c7645b8d206edad0b14e1c` Defines valid values for `mPreference` in `https://openthread.io/reference/struct/ot-external-route-config` and `https://openthread.io/reference/struct/ot-border-router-config`. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gab7eb37840d7b34b7ab13b9ebe55cc3ce` | typedef `struct https://openthread.io/reference/struct/ot-server-config` Represents a Server configuration. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga1269ce0cec4da001d1622f29ef422b68` | typedef `struct https://openthread.io/reference/struct/ot-service-config` Represents a Service configuration. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gabbc9fbdcaf89d375c15a4f37e8b94a51)(void *aContext, otError aError, const otIp6Address *aMeshLocalAddress, uint16_t aRloc16)` | typedef `void(*` Pointer type defines the callback to notify the outcome of a `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gaf73ae270c84f95a16af7978ced3792b6` request. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga691d3abe519bdd219d4db4b3a5eb06b4)(const otThreadDiscoveryRequestInfo *aInfo, void *aContext)` | typedef `void(*` Pointer is called every time an MLE Discovery Request message is received. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gabee1d584b1e0700653d937f73deb6832` | typedef `struct https://openthread.io/reference/struct/ot-thread-discovery-request-info` Represents the Thread Discovery Request data. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga94bc0b3a5dc61ed170e92279ea9b6701)(void *aContext)` | typedef `void(*` Callback function pointer to notify when a Network Diagnostic Reset request message is received for the `OT_NETWORK_DIAGNOSTIC_TLV_NON_PREFERRED_CHANNELS` TLV. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gacfb77944eecd63d91d36e8237eff2384)(otThreadParentResponseInfo *aInfo, void *aContext)` | typedef `void(*` Pointer is called every time an MLE Parent Response message is received. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga32da82ad90f5085f393445e6058db1c7` | typedef `struct https://openthread.io/reference/struct/ot-thread-parent-response-info` Represents the MLE Parent Response data. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gad2ba609a2452ae4928a024753f543aa3` | typedef `struct https://openthread.io/reference/struct/ot-thread-vendor-oui` Represents a Thread Vendor OUI (Organizationally Unique Identifier) which can have different lengths. |

| ### Functions ||
|---|---|
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga2b25655138ab0f850cee29818f6110aa(uint32_t aDuration, char *aBuffer, uint16_t aSize)` | `void` Converts an `uint32_t` duration (in seconds) to a human-readable string. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga337f9ae6a4be7ecebb80c467eaca0db4(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, const https://openthread.io/reference/struct/ot-ip6-prefix *aPrefix)` | `bool` Check whether a given Prefix can act as a valid OMR prefix and also the Leader's Network Data contains this prefix. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga7ac436e5a832c99fd6cea5e159654011(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, bool aStable, uint8_t *aData, uint8_t *aDataLength)` | `https://openthread.io/reference/group/api-error#group__api-error_1gabaaa90aaa35da8f9d394a227a23a6a49` Provide full or stable copy of the Partition's Thread Network Data. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gae6167af4bb7df983d8fba18a27e5cd71(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, https://openthread.io/reference/struct/ot-commissioning-dataset *aDataset)` | `void` Gets the Commissioning Dataset from the partition's Network Data. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gaa28cfb123878da53749b8c0f86fdb8c1(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance)` | `uint8_t` Get the current length (number of bytes) of Partition's Thread Network Data. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga4eea4238a3c3ff2139287d1710bf56f2(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance)` | `uint8_t` Get the maximum observed length of the Thread Network Data since OT stack initialization or since the last call to `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gac191b8360f4723b4753c861aad8ebb75`. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gab208692622ac19dc49f30f092b1ed83a(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gac4be34b26a43e67d12ee7e0352ee4927 *aIterator, https://openthread.io/reference/struct/ot-lowpan-context-info *aContextInfo)` | `https://openthread.io/reference/group/api-error#group__api-error_1gabaaa90aaa35da8f9d394a227a23a6a49` Get the next 6LoWPAN Context ID info in the partition's Network Data. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga82b43e6622792329d78556d0b09b5fad(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gac4be34b26a43e67d12ee7e0352ee4927 *aIterator, https://openthread.io/reference/struct/ot-border-router-config *aConfig)` | `https://openthread.io/reference/group/api-error#group__api-error_1gabaaa90aaa35da8f9d394a227a23a6a49` Get the next On Mesh Prefix in the partition's Network Data. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gae302dc8a6ed2e60f7e2782f56219ec57(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gac4be34b26a43e67d12ee7e0352ee4927 *aIterator, https://openthread.io/reference/struct/ot-external-route-config *aConfig)` | `https://openthread.io/reference/group/api-error#group__api-error_1gabaaa90aaa35da8f9d394a227a23a6a49` Get the next external route in the partition's Network Data. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gac63dcc6d3242d69e8d6672d1df74f2fb(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gac4be34b26a43e67d12ee7e0352ee4927 *aIterator, https://openthread.io/reference/struct/ot-service-config *aConfig)` | `https://openthread.io/reference/group/api-error#group__api-error_1gabaaa90aaa35da8f9d394a227a23a6a49` Get the next service in the partition's Network Data. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga97b408e79ae40133bc31bdbfcb91dc65(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance)` | `uint8_t` Get the Stable Network Data Version. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga6d783ee15e8cd1888104fe749c37c164(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance)` | `uint8_t` Get the Network Data Version. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga6648956f6dddc7c713b8e15c7019d2ec(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance)` | `bool` Indicates whether or not currently the "DNS/SRP Service" entry is added to the Thread Network Data. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gae85eb47d6862f56448d569329200b651(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, const https://openthread.io/reference/struct/ot-ip6-prefix *aPrefix)` | `bool` Indicates whether or not currently a published prefix entry (on-mesh or external route) is added to the Thread Network Data. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gaeaf8323ef74a8c927659c92057f7fafb(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, uint8_t aSequenceNUmber, uint8_t aVersion)` | `void` Requests "DNS/SRP Service Anycast Address" to be published in the Thread Network Data. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gae6b0ff0306407945531dee48765ec764(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, const https://openthread.io/reference/struct/ot-ip6-address *aAddress, uint16_t aPort, uint8_t aVersion)` | `void` Requests "DNS/SRP Service Unicast Address" to be published in the Thread Network Data. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga073d93d23b0401928bcc8bdfe724b9d7(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, uint16_t aPort, uint8_t aVersion)` | `void` Requests "DNS/SRP Service Unicast Address" to be published in the Thread Network Data. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga77140dd06f0693583c0e53487eb3ca68(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, const https://openthread.io/reference/struct/ot-external-route-config *aConfig)` | `https://openthread.io/reference/group/api-error#group__api-error_1gabaaa90aaa35da8f9d394a227a23a6a49` Requests an external route prefix to be published in the Thread Network Data. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga077932af0654f6f1e9a025a67abd207a(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, const https://openthread.io/reference/struct/ot-border-router-config *aConfig)` | `https://openthread.io/reference/group/api-error#group__api-error_1gabaaa90aaa35da8f9d394a227a23a6a49` Requests an on-mesh prefix to be published in the Thread Network Data. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gac1efd7c6342afdacb97c3e0ba3564894(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, const https://openthread.io/reference/struct/ot-ip6-prefix *aPrefix, const https://openthread.io/reference/struct/ot-external-route-config *aConfig)` | `https://openthread.io/reference/group/api-error#group__api-error_1gabaaa90aaa35da8f9d394a227a23a6a49` Replaces a previously published external route in the Thread Network Data. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gac191b8360f4723b4753c861aad8ebb75(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance)` | `void` Reset the tracked maximum length of the Thread Network Data. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga8625c506911861f5f032c3e357f53dba(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga1d468cdf395d94d5f804eec735895a46 aCallback, void *aContext)` | `void` Sets a callback for notifying when a published "DNS/SRP Service" is actually added to or removed from the Thread Network Data. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gac81dd2cbe39c817a534805c838115edc(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga1595fb659e861214c6f0b6024f956019 aCallback, void *aContext)` | `void` Sets a callback for notifying when a published prefix entry is actually added to or removed from the Thread Network Data. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga11b0a0214db8ce6d0a4d9d8fe45aa894(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, const https://openthread.io/reference/struct/ot-ext-address *aEui64)` | `https://openthread.io/reference/group/api-error#group__api-error_1gabaaa90aaa35da8f9d394a227a23a6a49` Check if the steering data includes a Joiner. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gae69bda4c4a657ab9f1b9814020a77bfd(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, const struct https://openthread.io/reference/struct/ot-joiner-discerner *aDiscerner)` | `https://openthread.io/reference/group/api-error#group__api-error_1gabaaa90aaa35da8f9d394a227a23a6a49` Check if the steering data includes a Joiner with a given discerner value. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga053242a04ee49884d90a5ab6b1917d58(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance)` | `void` Unpublishes any previously added DNS/SRP (Anycast or Unicast) Service entry from the Thread Network Data. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga12c10595a6a0f1118b9653dc17996b42(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, const https://openthread.io/reference/struct/ot-ip6-prefix *aPrefix)` | `https://openthread.io/reference/group/api-error#group__api-error_1gabaaa90aaa35da8f9d394a227a23a6a49` Unpublishes a previously published On-Mesh or External Route Prefix. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gadb6ff4c47de43b90b9dd49cb600e418c(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance)` | `https://openthread.io/reference/group/api-error#group__api-error_1gabaaa90aaa35da8f9d394a227a23a6a49` Attempt to reattach as a child. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gafff60178c7e1567ffeb9b913d42edb8b(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance)` | `https://openthread.io/reference/group/api-error#group__api-error_1gabaaa90aaa35da8f9d394a227a23a6a49` Detach from the Thread network. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga3a73c474688be9ecddabfb977feb9ed6(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga5c839c7f67abef74bbc52da8d6e8466f aCallback, void *aContext)` | `https://openthread.io/reference/group/api-error#group__api-error_1gabaaa90aaa35da8f9d394a227a23a6a49` Notifies other nodes in the network (if any) and then stops Thread protocol operation. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga79b7c6d5fe559510cf3e5f7e4ca109b7(https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga46bf439d509e082c14fade133dc681af aRole)` | `const char *` Convert the device role to human-readable string. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gae679d41af515900cb4d0a576d2bbbad8(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, uint32_t aScanChannels, uint16_t aPanId, bool aJoiner, bool aEnableEui64Filtering, https://openthread.io/reference/group/api-link-link#group__api-link-link_1ga8717d8d12c10477157792b70780e3b74 aCallback, void *aCallbackContext)` | `https://openthread.io/reference/group/api-error#group__api-error_1gabaaa90aaa35da8f9d394a227a23a6a49` Starts a Thread Discovery scan. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gaf94d0e97079b92c925fa32a4c41c1cbd(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance)` | `uint32_t` Gets the Thread Child Timeout (in seconds) used when operating in the Child role. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga2cd470a54878f0b0e5590250c1bd2927(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance)` | `uint32_t` Gets the current attach duration (number of seconds since the device last attached). |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gaf25f6f93fbbc69549bc12444e49f9bc2(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance)` | `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga46bf439d509e082c14fade133dc681af` Get the device role. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gaf8a1d07cd4028ee2722f828f1a406d23(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance)` | `const char *` Gets the Thread Domain Name. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gad9fd1dbbe8ce2f3a3958ba7c78bf8af8(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance)` | `const https://openthread.io/reference/struct/ot-extended-pan-id *` Gets the IEEE 802.15.4 Extended PAN ID. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga63c33a0f89ac23df098fc4fa8c808d33(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance)` | `const https://openthread.io/reference/struct/ot-ip-counters *` Gets the IPv6 counters. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gaa008a54002f4e337e3ad14db1da1de5f(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance)` | `uint32_t` Gets the thrKeySequenceCounter. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gaf48470d150108c1f2f6538d703b85761(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance)` | `uint16_t` Gets the thrKeySwitchGuardTime (in hours). |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga60dbcadfdbff6d8f03544d1e20bf6e9e(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, https://openthread.io/reference/struct/ot-leader-data *aLeaderData)` | `https://openthread.io/reference/group/api-error#group__api-error_1gabaaa90aaa35da8f9d394a227a23a6a49` Get the Thread Leader Data. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gae9738dae1c5674e1a244ffd6efab6e64(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, https://openthread.io/reference/struct/ot-ip6-address *aLeaderRloc)` | `https://openthread.io/reference/group/api-error#group__api-error_1gabaaa90aaa35da8f9d394a227a23a6a49` Returns a pointer to the Leader's RLOC. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga7d8a11fb7e20316cfb2f924386884e42(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance)` | `uint8_t` Get the Leader's Router ID. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gac8d242d1ebb7fff38111ca4be2eacc21(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance)` | `uint8_t` Get the Leader's Weight. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga2e240d5d443560a31c5c2bb90adb67c4(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance)` | `const https://openthread.io/reference/struct/ot-ip6-address *` Gets the Thread Link-Local All Thread Nodes multicast address. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gaab6772b6b4c5bccdff308c94bc92445e(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance)` | `const https://openthread.io/reference/struct/ot-ip6-address *` Gets the Thread link-local IPv6 address. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gac802d68e457142652dd38a755ca9c04a(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance)` | `https://openthread.io/reference/struct/ot-link-mode-config` Get the MLE Link Mode configuration. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gaaadf64a5edef74cfc7537a78f9359544(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance)` | `uint32_t` Gets the maximum time-in-queue for messages in the TX queue. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gaef1ca2374a8ef770b6754cfc2aaef913(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance)` | `const https://openthread.io/reference/struct/ot-ip6-address *` Gets the Mesh Local EID address. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga0e0a3fb919278ea368a356a5b7be5a00(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance)` | `const https://openthread.io/reference/group/api-operational-dataset#group__api-operational-dataset_1ga793404eed6881d520a19a09da53b5cfc *` Returns a pointer to the Mesh Local Prefix. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga6bf32aaf2e08af395a6210cbfe95b2e0(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance)` | `const https://openthread.io/reference/struct/ot-mle-counters *` Gets the Thread MLE counters. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga173515e81d7e4f0868f2e637a70269ab(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, uint16_t aRloc16, https://openthread.io/reference/struct/ot-neighbor-info *aInfo)` | `https://openthread.io/reference/group/api-error#group__api-error_1gabaaa90aaa35da8f9d394a227a23a6a49` Gets the neighbor information for a neighbor with a given RLOC16. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga66892041d2c2a267f37a427e5f7d1fdb(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, https://openthread.io/reference/struct/ot-network-key *aNetworkKey)` | `void` Get the Thread Network Key. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gafa2b3c63e93492242b9d452036359638(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance)` | `https://openthread.io/reference/group/api-operational-dataset#group__api-operational-dataset_1ga9f8d0877d62959bcb9b2026358bdea62` Get the `otNetworkKeyRef` for Thread Network Key. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gac4e8ad0c332a142c823d2e3357a38f7d(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance)` | `const char *` Get the Thread Network Name. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gaad718c2bea272845aeaeb84dd96b5f3b(const https://openthread.io/reference/group/api-message#group__api-message_1ga42d128a0a9ad58de0eb79673843c2955 *aMessage, https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gafe28456a857fefebf5dc4b63d3322a3f *aIterator, https://openthread.io/reference/struct/ot-network-diag-tlv *aNetworkDiagTlv)` | `https://openthread.io/reference/group/api-error#group__api-error_1gabaaa90aaa35da8f9d394a227a23a6a49` Gets the next Network Diagnostic TLV in the message. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga92a74f751efa8e706e1098ce7d50ae51(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga9af04696139e51b2ab276b117319216a *aIterator, https://openthread.io/reference/struct/ot-neighbor-info *aInfo)` | `https://openthread.io/reference/group/api-error#group__api-error_1gabaaa90aaa35da8f9d394a227a23a6a49` Gets the next neighbor information. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga4194444deb8e75d25793c047b9df164f(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance)` | `https://openthread.io/reference/group/api-operational-dataset#group__api-operational-dataset_1ga316ddec5e36387eef45b2b1ae0180da1` Gets the non-preferred channels for `OT_NETWORK_DIAGNOSTIC_TLV_NON_PREFERRED_CHANNELS` TLV. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gad6da4580f5b1dfaf28b6a1fd08d5909d(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, int8_t *aParentRssi)` | `https://openthread.io/reference/group/api-error#group__api-error_1gabaaa90aaa35da8f9d394a227a23a6a49` The function retrieves the average RSSI for the Thread Parent. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gae0243c7f6dc457b4cc746d124e6bd221(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, https://openthread.io/reference/struct/ot-router-info *aParentInfo)` | `https://openthread.io/reference/group/api-error#group__api-error_1gabaaa90aaa35da8f9d394a227a23a6a49` The function retrieves diagnostic information for a Thread Router as parent. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga875d5b5cad3c6a49a19b795de22ec5cb(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, int8_t *aLastRssi)` | `https://openthread.io/reference/group/api-error#group__api-error_1gabaaa90aaa35da8f9d394a227a23a6a49` The function retrieves the RSSI of the last packet from the Thread Parent. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga1d782f30f142d223c96c3ae064e2de1d(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance)` | `uint32_t` Get the Partition ID. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gaf33d044532611c0341fbcf6f96e5fdfb(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance)` | `const https://openthread.io/reference/struct/ot-ip6-address *` Gets the Thread Realm-Local All Thread Nodes multicast address. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga05e888e2cdaad32e23c663a87dcf1972(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance)` | `const https://openthread.io/reference/struct/ot-ip6-address *` Gets the Thread Routing Locator (RLOC) address. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga6270041a9fd0a44e1644a33527014a97(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance)` | `uint16_t` Get the RLOC16. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gaf9a95226dd3c3980c91e17648fad02fd(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, uint8_t aServiceId, https://openthread.io/reference/struct/ot-ip6-address *aServiceAloc)` | `https://openthread.io/reference/group/api-error#group__api-error_1gabaaa90aaa35da8f9d394a227a23a6a49` Retrieves the Service ALOC for given Service ID. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga6c3868f45a2ae0df82e7916a2bc439c9(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance)` | `uint32_t` Gets the store frame counter ahead. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gad6b8273e3d74fa27cc4a27c2c69ca6e6(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, uint16_t *aNumBins, uint32_t *aBinInterval)` | `const uint32_t *` Gets the time-in-queue histogram for messages in the TX queue. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga7bd0fb917a8b75ec9254dbc2fb02c5ad(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance)` | `const char *` Get the vendor app URL string. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga6b6da1ade8c01f6bf4e317d4f8dca56b(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance)` | `const char *` Get the vendor model string. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga7850fbe02d1b5e13e98c3a91f8598f83(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance)` | `const char *` Get the vendor name string. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga2938ebceeb618be3db2b0bc7718b374e(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance)` | `uint32_t` **[Deprecated.](https://openthread.io/reference/deprecated/deprecated)** This function is deprecated. Use `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga31878c1dd1212a2b630528391ec63179` instead.Gets the vendor OUI-24. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga31878c1dd1212a2b630528391ec63179(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, https://openthread.io/reference/struct/ot-thread-vendor-oui *aOui)` | `void` Gets the vendor OUI. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga2533b7c73abcab2023d433d317faeb64(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance)` | `const char *` Get the vendor software version string. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga3344415a297eb3e2ae56b02295d9256a(void)` | `uint16_t` Gets the Thread protocol version. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga4410614ca31517e61bded8afd397fa29(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance)` | `bool` Indicates whether an anycast locate request is currently in progress. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gafb0521f0626af0b2d2c4e5949b6de91d(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance)` | `bool` Determines if an MLE Thread Discovery is currently in progress. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gaa14a442e6f7be4167e4b3ad892c1426c(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance)` | `bool` Indicates whether a node is the only router on the network. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gaf73ae270c84f95a16af7978ced3792b6(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, const https://openthread.io/reference/struct/ot-ip6-address *aAnycastAddress, https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gabbc9fbdcaf89d375c15a4f37e8b94a51 aCallback, void *aContext)` | `https://openthread.io/reference/group/api-error#group__api-error_1gabaaa90aaa35da8f9d394a227a23a6a49` Requests the closest destination of a given anycast address to be located. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gad496d3fff2ccbf9d01ce11e9c5282f67(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gacfb77944eecd63d91d36e8237eff2384 aCallback, void *aContext)` | `void` Registers a callback to receive MLE Parent Response data. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga4f285ce52a497eb62f222968ad55f8b9(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance)` | `void` Resets the IPv6 counters. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gad872eb77b20d4ac40cda1cffc3249398(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance)` | `void` Resets the Thread MLE counters. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gaa46968acc412f6ec71dfa036f8b3db36(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance)` | `void` Resets the TX queue time-in-queue statistics. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga08ab809bc2a595eed08ef9bd2d5f170e(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance)` | `https://openthread.io/reference/group/api-error#group__api-error_1gabaaa90aaa35da8f9d394a227a23a6a49` Starts the process for child to search for a better parent while staying attached to its current parent. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga5c30bb04cb19d8b0f4a19d2369ca19fa(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, https://openthread.io/reference/struct/ot-ip6-address *aDestination, https://openthread.io/reference/struct/ot-ip6-address *aTarget, https://openthread.io/reference/struct/ot-ip6-interface-identifier *aMlIid)` | `void` Sends a Proactive Address Notification (ADDR_NTF.ntf) message. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga8a13182cf63fa7263718a246f4dde8bf(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, const https://openthread.io/reference/struct/ot-ip6-address *aDestination, const uint8_t aTlvTypes[], uint8_t aCount, https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga0472a838724883eadf9661544e1dac30 aCallback, void *aCallbackContext)` | `https://openthread.io/reference/group/api-error#group__api-error_1gabaaa90aaa35da8f9d394a227a23a6a49` Send a Network Diagnostic Get request. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga310d96d798c167911ad220eb1d4d3a3f(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, const https://openthread.io/reference/struct/ot-ip6-address *aDestination, const uint8_t aTlvTypes[], uint8_t aCount)` | `https://openthread.io/reference/group/api-error#group__api-error_1gabaaa90aaa35da8f9d394a227a23a6a49` Send a Network Diagnostic Reset request. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gaf22e732ad154f5ca833957a1396d2e19(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, uint32_t aTimeout)` | `void` Sets the Thread Child Timeout (in seconds) used when operating in the Child role. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga271b175aca67c4ff553879fe0f040362(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga691d3abe519bdd219d4db4b3a5eb06b4 aCallback, void *aContext)` | `void` Sets a callback to receive MLE Discovery Request data. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga707829f290512c14a533d98eb8c11998(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, const char *aDomainName)` | `https://openthread.io/reference/group/api-error#group__api-error_1gabaaa90aaa35da8f9d394a227a23a6a49` Sets the Thread Domain Name. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga20a68a51ce7299b1c74c81812a4854a3(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, bool aEnabled)` | `https://openthread.io/reference/group/api-error#group__api-error_1gabaaa90aaa35da8f9d394a227a23a6a49` Starts Thread protocol operation. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga4c89cc9bd207df86a9d7e029e61e1d82(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, const https://openthread.io/reference/struct/ot-extended-pan-id *aExtendedPanId)` | `https://openthread.io/reference/group/api-error#group__api-error_1gabaaa90aaa35da8f9d394a227a23a6a49` Sets the IEEE 802.15.4 Extended PAN ID. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga496fbcdd21c8fa96e93f59fd8c5312d6(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, uint32_t aOui, const uint8_t *aAdvData, uint8_t aAdvDataLength)` | `https://openthread.io/reference/group/api-error#group__api-error_1gabaaa90aaa35da8f9d394a227a23a6a49` Sets the Thread Joiner Advertisement used when discovering a Thread network. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gadfb2f6ddd49b0694a1104694e8c1fbfa(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, uint32_t aKeySequenceCounter)` | `void` Sets the thrKeySequenceCounter. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gad383ddb17d1375fd2aed7f525769d68e(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, uint16_t aKeySwitchGuardTime)` | `void` Sets the thrKeySwitchGuardTime (in hours). |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga55503224cce967140b9e137095671dbe(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, https://openthread.io/reference/struct/ot-link-mode-config aConfig)` | `https://openthread.io/reference/group/api-error#group__api-error_1gabaaa90aaa35da8f9d394a227a23a6a49` Set the MLE Link Mode configuration. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga64eee750959fea66d78c5c21d9971aca(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, const https://openthread.io/reference/group/api-operational-dataset#group__api-operational-dataset_1ga793404eed6881d520a19a09da53b5cfc *aMeshLocalPrefix)` | `https://openthread.io/reference/group/api-error#group__api-error_1gabaaa90aaa35da8f9d394a227a23a6a49` Sets the Mesh Local Prefix. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga792903b29b3c3a4edee799d0833f79de(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, const https://openthread.io/reference/struct/ot-network-key *aKey)` | `https://openthread.io/reference/group/api-error#group__api-error_1gabaaa90aaa35da8f9d394a227a23a6a49` Set the Thread Network Key. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga1a6fbe7804f772f1ef1179735086fbb3(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, https://openthread.io/reference/group/api-operational-dataset#group__api-operational-dataset_1ga9f8d0877d62959bcb9b2026358bdea62 aKeyRef)` | `https://openthread.io/reference/group/api-error#group__api-error_1gabaaa90aaa35da8f9d394a227a23a6a49` Set the Thread Network Key as a `otNetworkKeyRef`. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga37cfaf05729b3d7d6a4f5a0a3794f962(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, const char *aNetworkName)` | `https://openthread.io/reference/group/api-error#group__api-error_1gabaaa90aaa35da8f9d394a227a23a6a49` Set the Thread Network Name. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gae61ebc19d48fb228144dfcef0f4a239f(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, https://openthread.io/reference/group/api-operational-dataset#group__api-operational-dataset_1ga316ddec5e36387eef45b2b1ae0180da1 aChannelMask)` | `void` Sets the non-preferred channels value for `OT_NETWORK_DIAGNOSTIC_TLV_NON_PREFERRED_CHANNELS` TLV. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga566997089901d0408ee834f2e5b5825b(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga94bc0b3a5dc61ed170e92279ea9b6701 aCallback, void *aContext)` | `void` Sets the callback to notify when a Network Diagnostic Reset request message is received for the `OT_NETWORK_DIAGNOSTIC_TLV_NON_PREFERRED_CHANNELS` TLV. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gab911fae50b4ad4cad853a5e799b77864(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, uint32_t aStoreFrameCounterAhead)` | `void` Sets the store frame counter ahead. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gac07c8ff2adb313ecc00f8c63db483702(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, const char *aVendorAppUrl)` | `https://openthread.io/reference/group/api-error#group__api-error_1gabaaa90aaa35da8f9d394a227a23a6a49` Set the vendor app URL string. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga6cce70a5e238d8004d52959a30dcc4c2(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, const char *aVendorModel)` | `https://openthread.io/reference/group/api-error#group__api-error_1gabaaa90aaa35da8f9d394a227a23a6a49` Set the vendor model string. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga039bf81e51fc23bf0530db197e1d7d83(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, const char *aVendorName)` | `https://openthread.io/reference/group/api-error#group__api-error_1gabaaa90aaa35da8f9d394a227a23a6a49` Set the vendor name string. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gab9d68209aa834b4f91fb676774e1250c(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, uint32_t aVendorOui)` | `https://openthread.io/reference/group/api-error#group__api-error_1gabaaa90aaa35da8f9d394a227a23a6a49` **[Deprecated.](https://openthread.io/reference/deprecated/deprecated)** This function is deprecated. Use `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga5b1317faad6cf6de3fc64dbb403a8466` instead.Sets the vendor OUI-24. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga5b1317faad6cf6de3fc64dbb403a8466(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, const https://openthread.io/reference/struct/ot-thread-vendor-oui *aOui)` | `https://openthread.io/reference/group/api-error#group__api-error_1gabaaa90aaa35da8f9d394a227a23a6a49` Sets the vendor OUI. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gab9ca12600c2a85ee0583da0438c52986(https://openthread.io/reference/group/api-instance#group__api-instance_1ga25440551213fb5b40869725378584960 *aInstance, const char *aVendorSwVersion)` | `https://openthread.io/reference/group/api-error#group__api-error_1gabaaa90aaa35da8f9d394a227a23a6a49` Set the vendor software version string. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gad3df88cd5ae7273ebe3e35fb48804073(const https://openthread.io/reference/struct/ot-thread-vendor-oui *aOui, char *aBuffer, uint16_t aSize)` | `void` Converts a given vendor OUI to a human-readable string. |

| ### Macros ||
|---|---|
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga9a511f18e58e588fc932ad957c2652c4 21` | Recommended size for string representation of `uint32_t` duration in seconds. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga6ce70ff87a919464e454977c7adac92b 64` | Maximum AdvData Length of Joiner Advertisement. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gac49516de451c74bdae510ae9a9cc1cb0 0` | Initializer for otNeighborInfoIterator. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gabddac9133c9195161bd3882276690099 254` | Maximum value length of Thread Base TLV. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga50b70c8de241d3444d91337ed7e0bac5 0` | Value to initialize `otNetworkDataIterator`. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga2b4e623053610a3108f0032aa0c5b415 0` | Initializer for `otNetworkDiagIterator`. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga56f865d1283e7bd20ca12069bab773fe 64` | Max length of Thread Stack Version TLV. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga663da579874d1e7d33fde31b74049aba 96` | Max length of Vendor App URL TLV. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga35b100bbac010e99ff601f03b3c2ecfa 32` | Max length of Vendor Model TLV. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga2d35547b715e3b73c959240504095b57 32` | Max length of Vendor Name TLV. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga2a24259a29887e0157faaf3df449af5e 16` | Max length of Vendor SW Version TLV. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga12faec9ccd7b935803815f9fbad21cc4 32` | Answer TLV. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga5d3f48979a940cf5ce60e1620226aeae 14` | Battery Level TLV. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga6e47a1e32df9fc373ee07bc33e72e46e 41` | Border Router DHCPv6-PD OMR Prefix TLV. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga8fa8d5e1c756da024879b65fc01caaf7 43` | Border Router Favored On-link Prefix TLV. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga265bb301f40e132afb3c5975d7ef5a23 39` | Border Router Infra Interface Addresses TLV. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gaa80526fbdcfcfb6174757871fad2e70c 42` | Border Router Local On-link Prefix TLV. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gaa3b66551ac97824a95bf2cefea087aee 40` | Border Router Local OMR Prefix TLV. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gacaef79e7037a4f0081564119cff65353 38` | Border Router State TLV. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga130fbf238f57567aa86e5a2a7364e9b0 17` | Channel Pages TLV. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga2141cd9bd9adc00c934c746092883e0d 29` | Child TLV. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gad63253a9e8df573db6c6099bad4ce4b2 30` | Child IPv6 Address List TLV. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga09afcde6aad02690e0e074a3cad73188 16` | Child Table TLV. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga403d56bcab87c1b0b6a0dbe294f468fb 4` | Connectivity TLV. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gad86cc4e0b47f71346d03c3ed6ecef469 37` | Enhanced Route TLV. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga28ca2f241cefb8df0c5d89d51669687c 23` | EUI64 TLV. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga36a9c07814d3ae411702f4ecffff7595 0` | MAC Extended Address TLV. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gab684d040a235ab3ddd909afa269c040c 8` | IPv6 Address List TLV. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gacda694df9578b92e53673a5e17b651b4 6` | Leader Data TLV. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga197cc5fcf375953e1f1fa5324f92ebce 9` | MAC Counters TLV. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga34f06fc93d714abd06d644b827695180 19` | Max Child Timeout TLV. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga35be049c6b0af00d1d1da0a96b651df6 34` | MLE Counters TLV. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga24acf6cb7e800f611c0e613c5a97ce6f 2` | Mode TLV. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga9ca373c00326f35f2e80bb28213d865b 7` | Network Data TLV. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga4963f41b5bf743e00d8eb6c5d1ccc92c 36` | Non-Preferred Channels Mask TLV. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga5035e2b9fda67e9e8269bfbeb1add0a1 33` | Query ID TLV. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gaea12c8ae995766faadf7830d465e6053 5` | Route64 TLV. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga8ccdb1ddb8d652b8d9f28a61c513abdb 31` | Router Neighbor TLV. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga16c98720f0830d9ffdad390a41e1a65d 1` | Address16 TLV. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gad70f4f4db9a626cb120b8dd3a33d4621 15` | Supply Voltage TLV. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gab012e2a95191abcb094988f4a82bbe9a 28` | Thread Stack Version TLV (codebase/commit version) |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga697ec8cfc145ffd9684465fcfc8d7262 3` | Timeout TLV (max polling time period for SEDs) |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga50fd93e40af84311332cf474d49d43a9 18` | Type List TLV. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gaef910e7f50e39b6da1c4a53877da0bc2 35` | Vendor App URL TLV. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gad633578896b86d3d62431eb0bd648f48 26` | Vendor Model TLV. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga8235d2b74f9a8f9462dfd1b414902f8d 25` | Vendor Name TLV. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gabe76e1c39c7d3ea3ea493e81afc0f359 44` | Vendor OUI TLV. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gac193f9588d44f36005e922abbe0649de 27` | Vendor SW Version TLV. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga32b31b3ddfe83c523749427901365566 24` | Thread Version TLV. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga3718cf770a57130e5b89ce236c81b1d6 62` | Maximum Router ID. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga1fcecd055d6f3328de017a1d13aadbad 248` | Max size of Server Data in bytes. Theoretical limit, practically much lower. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gafad636b7480da1153404b0ed6856eab4 252` | Max size of Service Data in bytes. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gabcbedc75561e7791f83102912332b965 (0xffffffff)` | Represents an unspecified Vendor OUI. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gad6c60070f137b0c392943db68a650603 5` | Specifies the maximum size of a Thread Vendor OUI in bytes. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga54c68c6db66d8a8762bb458817c01569 24` | Specifies the bit length of a MAC Address Block Large (MA-L) Vendor OUI. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga06421021c1cad58fb25eb93b1678bff2 28` | Specifies the bit length of a MAC Address Block Medium (MA-M) Vendor OUI. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gaebd0097f9067164fd18ff8d864811cb0 36` | Specifies the bit length of a MAC Address Block Small (MA-S) Vendor OUI. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gad9509ffe42447ccd3da411dd8e4015c9 16` | Recommended size for string representation of a vendor OUI. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga2761eeee8621c713605c068e27f72e46 2` | Thread Version 1.1. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gaac299991a259248841c93cb9c2a54e7d 3` | Thread Version 1.2. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gae9fb33922f937a7a233a5da76046c16f 4` | Thread Version 1.3. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga8a101b90041558605d2dfeab7d641d1c 5` | Thread Version 1.3.1 (alias for 1.4) |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gacc16b9836ef31229735afbf397ab3786 5` | Thread Version 1.4. |
| `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga99ed8546987dd81d6232b9ada2aa4d2a 0` | Invalid Thread version. |

| ### Structs ||
|---|---|
| [otBorderRouterConfig](https://openthread.io/reference/struct/ot-border-router-config) | Represents a Border Router configuration. |
| [otExternalRouteConfig](https://openthread.io/reference/struct/ot-external-route-config) | Represents an External Route configuration. |
| [otIpCounters](https://openthread.io/reference/struct/ot-ip-counters) | Represents the IP level counters. |
| [otLeaderData](https://openthread.io/reference/struct/ot-leader-data) | Represents the Thread Leader Data. |
| [otLinkModeConfig](https://openthread.io/reference/struct/ot-link-mode-config) | Represents an MLE Link Mode configuration. |
| [otLowpanContextInfo](https://openthread.io/reference/struct/ot-lowpan-context-info) | Represents 6LoWPAN Context ID information associated with a prefix in Network Data. |
| [otMleCounters](https://openthread.io/reference/struct/ot-mle-counters) | Represents the Thread MLE counters. |
| [otNeighborInfo](https://openthread.io/reference/struct/ot-neighbor-info) | Holds diagnostic information for a neighboring Thread node. |
| [otNetworkDiagChildEntry](https://openthread.io/reference/struct/ot-network-diag-child-entry) | Represents a Network Diagnostic Child Table Entry. |
| [otNetworkDiagChildTable](https://openthread.io/reference/struct/ot-network-diag-child-table) | Represents a Network Diagnostic Child Table TLV value. |
| [otNetworkDiagConnectivity](https://openthread.io/reference/struct/ot-network-diag-connectivity) | Represents a Network Diagnostic Connectivity value. |
| [otNetworkDiagData](https://openthread.io/reference/struct/ot-network-diag-data) | Represents a Network Diagnostic TLV Data. |
| [otNetworkDiagEnhRoute](https://openthread.io/reference/struct/ot-network-diag-enh-route) | Represents a Network Diagnostic Enhanced Route TLV value. |
| [otNetworkDiagEnhRouteData](https://openthread.io/reference/struct/ot-network-diag-enh-route-data) | Represents a Network Diagnostic Enhanced Route data. |
| [otNetworkDiagIp6AddrList](https://openthread.io/reference/struct/ot-network-diag-ip6-addr-list) | Represents a Network Diagnostics IPv6 Address List TLV value. |
| [otNetworkDiagMacCounters](https://openthread.io/reference/struct/ot-network-diag-mac-counters) | Represents a Network Diagnostic Mac Counters value. |
| [otNetworkDiagMleCounters](https://openthread.io/reference/struct/ot-network-diag-mle-counters) | Represents a Network Diagnostics MLE Counters value. |
| [otNetworkDiagRoute](https://openthread.io/reference/struct/ot-network-diag-route) | Represents a Network Diagnostic Route64 TLV value. |
| [otNetworkDiagRouteData](https://openthread.io/reference/struct/ot-network-diag-route-data) | Represents a Network Diagnostic Route data. |
| [otNetworkDiagTlv](https://openthread.io/reference/struct/ot-network-diag-tlv) | Represents a Network Diagnostic TLV. |
| [otRouterInfo](https://openthread.io/reference/struct/ot-router-info) | Holds diagnostic information for a Thread Router. |
| [otServerConfig](https://openthread.io/reference/struct/ot-server-config) | Represents a Server configuration. |
| [otServiceConfig](https://openthread.io/reference/struct/ot-service-config) | Represents a Service configuration. |
| [otThreadDiscoveryRequestInfo](https://openthread.io/reference/struct/ot-thread-discovery-request-info) | Represents the Thread Discovery Request data. |
| [otThreadParentResponseInfo](https://openthread.io/reference/struct/ot-thread-parent-response-info) | Represents the MLE Parent Response data. |
| [otThreadVendorOui](https://openthread.io/reference/struct/ot-thread-vendor-oui) | Represents a Thread Vendor OUI (Organizationally Unique Identifier) which can have different lengths. |

## Enumerations

### otDeviceRole

```
 otDeviceRole
```
Represents a Thread device role.

| Properties ||
|---|---|
| `OT_DEVICE_ROLE_CHILD` | The Thread Child role. |
| `OT_DEVICE_ROLE_DETACHED` | Not currently participating in a Thread network/partition. |
| `OT_DEVICE_ROLE_DISABLED` | The Thread stack is disabled. |
| `OT_DEVICE_ROLE_LEADER` | The Thread Leader role. |
| `OT_DEVICE_ROLE_ROUTER` | The Thread Router role. |

### otNetDataPublisherEvent

```
 otNetDataPublisherEvent
```
Represents the events reported from the Publisher callbacks.

| Properties ||
|---|---|
| `OT_NETDATA_PUBLISHER_EVENT_ENTRY_ADDED` | Published entry is added to the Thread Network Data. |
| `OT_NETDATA_PUBLISHER_EVENT_ENTRY_REMOVED` | Published entry is removed from the Thread Network Data. |

### otRoutePreference

```
 otRoutePreference
```
Defines valid values for `mPreference` in `https://openthread.io/reference/struct/ot-external-route-config` and `https://openthread.io/reference/struct/ot-border-router-config`.

| Properties ||
|---|---|
| `OT_ROUTE_PREFERENCE_HIGH` | High route preference. |
| `OT_ROUTE_PREFERENCE_LOW` | Low route preference. |
| `OT_ROUTE_PREFERENCE_MED` | Medium route preference. |

## Typedefs

### otBorderRouterConfig

```
struct otBorderRouterConfig otBorderRouterConfig
```
Represents a Border Router configuration.

### otDetachGracefullyCallback

```
void(* otDetachGracefullyCallback)(void *aContext)
```
This callback informs the application that the detaching process has finished.

<br />

Details Parameters `[in] aContext` A pointer to application-specific context.

### otExternalRouteConfig

```
struct otExternalRouteConfig otExternalRouteConfig
```
Represents an External Route configuration.

### otIpCounters

```
struct otIpCounters otIpCounters
```
Represents the IP level counters.

### otLeaderData

```
struct otLeaderData otLeaderData
```
Represents the Thread Leader Data.

### otLinkModeConfig

```
struct otLinkModeConfig otLinkModeConfig
```
Represents an MLE Link Mode configuration.

### otLowpanContextInfo

```
struct otLowpanContextInfo otLowpanContextInfo
```
Represents 6LoWPAN Context ID information associated with a prefix in Network Data.

### otMleCounters

```
struct otMleCounters otMleCounters
```
Represents the Thread MLE counters.

### otNeighborInfoIterator

```
int16_t otNeighborInfoIterator
```
Used to iterate through neighbor table.

### otNetDataDnsSrpServicePublisherCallback

```
void(* otNetDataDnsSrpServicePublisherCallback)(otNetDataPublisherEvent aEvent, void *aContext)
```
Pointer type defines the callback used to notify when a "DNS/SRP Service" entry is added to or removed from the Thread Network Data.

On remove the callback is invoked independent of whether the entry is removed by `Publisher` (e.g., when there are too many similar entries already present in the Network Data) or through an explicit call to unpublish the entry (i.e., a call to `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga053242a04ee49884d90a5ab6b1917d58`).

<br />

Details Parameters `[in] aEvent` Indicates the event (whether the entry was added or removed). `[in] aContext` A pointer to application-specific context.

### otNetDataPrefixPublisherCallback

```
void(* otNetDataPrefixPublisherCallback)(otNetDataPublisherEvent aEvent, const otIp6Prefix *aPrefix, void *aContext)
```
Pointer type defines the callback used to notify when a prefix (on-mesh or external route) entry is added to or removed from the Thread Network Data.

On remove the callback is invoked independent of whether the entry is removed by `Publisher` (e.g., when there are too many similar entries already present in the Network Data) or through an explicit call to unpublish the entry.

<br />

Details Parameters `[in] aEvent` Indicates the event (whether the entry was added or removed). `[in] aPrefix` A pointer to the prefix entry. `[in] aContext` A pointer to application-specific context.

### otNetDataPublisherEvent

```
enum otNetDataPublisherEvent otNetDataPublisherEvent
```
Represents the events reported from the Publisher callbacks.

### otNetworkDataIterator

```
uint32_t otNetworkDataIterator
```
Used to iterate through Network Data information.

### otNetworkDiagBrState

```
otBorderRoutingState otNetworkDiagBrState
```
Represents a Border Router State TLV value.

### otNetworkDiagChildEntry

```
struct otNetworkDiagChildEntry otNetworkDiagChildEntry
```
Represents a Network Diagnostic Child Table Entry.

### otNetworkDiagChildTable

```
struct otNetworkDiagChildTable otNetworkDiagChildTable
```
Represents a Network Diagnostic Child Table TLV value.

### otNetworkDiagConnectivity

```
struct otNetworkDiagConnectivity otNetworkDiagConnectivity
```
Represents a Network Diagnostic Connectivity value.

### otNetworkDiagData

```
struct otNetworkDiagData otNetworkDiagData
```
Represents a Network Diagnostic TLV Data.

### otNetworkDiagEnhRoute

```
struct otNetworkDiagEnhRoute otNetworkDiagEnhRoute
```
Represents a Network Diagnostic Enhanced Route TLV value.

### otNetworkDiagEnhRouteData

```
struct otNetworkDiagEnhRouteData otNetworkDiagEnhRouteData
```
Represents a Network Diagnostic Enhanced Route data.

### otNetworkDiagIp6AddrList

```
struct otNetworkDiagIp6AddrList otNetworkDiagIp6AddrList
```
Represents a Network Diagnostics IPv6 Address List TLV value.

### otNetworkDiagIterator

```
uint16_t otNetworkDiagIterator
```
Used to iterate through Network Diagnostic TLV.

### otNetworkDiagMacCounters

```
struct otNetworkDiagMacCounters otNetworkDiagMacCounters
```
Represents a Network Diagnostic Mac Counters value.

See [RFC 2863](https://www.ietf.org/rfc/rfc2863) for definitions of member fields.

### otNetworkDiagMleCounters

```
struct otNetworkDiagMleCounters otNetworkDiagMleCounters
```
Represents a Network Diagnostics MLE Counters value.

### otNetworkDiagRoute

```
struct otNetworkDiagRoute otNetworkDiagRoute
```
Represents a Network Diagnostic Route64 TLV value.

### otNetworkDiagRouteData

```
struct otNetworkDiagRouteData otNetworkDiagRouteData
```
Represents a Network Diagnostic Route data.

### otNetworkDiagTlv

```
struct otNetworkDiagTlv otNetworkDiagTlv
```
Represents a Network Diagnostic TLV.

### otReceiveDiagnosticGetCallback

```
void(* otReceiveDiagnosticGetCallback)(otError aError, otMessage *aMessage, const otMessageInfo *aMessageInfo, void *aContext)
```
Pointer is called when Network Diagnostic Get response is received.

<br />

Details Parameters `[in] aError` The error when failed to get the response. `[in] aMessage` A pointer to the message buffer containing the received Network Diagnostic Get response payload. Available only when `aError` is `OT_ERROR_NONE`. `[in] aMessageInfo` A pointer to the message info for `aMessage`. Available only when `aError` is `OT_ERROR_NONE`. `[in] aContext` A pointer to application-specific context.

### otRoutePreference

```
enum otRoutePreference otRoutePreference
```
Defines valid values for `mPreference` in `https://openthread.io/reference/struct/ot-external-route-config` and `https://openthread.io/reference/struct/ot-border-router-config`.

### otServerConfig

```
struct otServerConfig otServerConfig
```
Represents a Server configuration.

### otServiceConfig

```
struct otServiceConfig otServiceConfig
```
Represents a Service configuration.

### otThreadAnycastLocatorCallback

```
void(* otThreadAnycastLocatorCallback)(void *aContext, otError aError, const otIp6Address *aMeshLocalAddress, uint16_t aRloc16)
```
Pointer type defines the callback to notify the outcome of a `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gaf73ae270c84f95a16af7978ced3792b6` request.

<br />

Details Parameters `[in] aContext` A pointer to an arbitrary context (provided when callback is registered). `[in] aError` The error when handling the request. OT_ERROR_NONE indicates success. OT_ERROR_RESPONSE_TIMEOUT indicates a destination could not be found. OT_ERROR_ABORT indicates the request was aborted. `[in] aMeshLocalAddress` A pointer to the mesh-local EID of the closest destination of the anycast address when `aError` is OT_ERROR_NONE, NULL otherwise. `[in] aRloc16` The RLOC16 of the destination if found, otherwise invalid RLOC16 (0xfffe).

### otThreadDiscoveryRequestCallback

```
void(* otThreadDiscoveryRequestCallback)(const otThreadDiscoveryRequestInfo *aInfo, void *aContext)
```
Pointer is called every time an MLE Discovery Request message is received.

<br />

Details Parameters `[in] aInfo` A pointer to the Discovery Request info data. `[in] aContext` A pointer to callback application-specific context.

### otThreadDiscoveryRequestInfo

```
struct otThreadDiscoveryRequestInfo otThreadDiscoveryRequestInfo
```
Represents the Thread Discovery Request data.

### otThreadNonPreferredChannelsResetCallback

```
void(* otThreadNonPreferredChannelsResetCallback)(void *aContext)
```
Callback function pointer to notify when a Network Diagnostic Reset request message is received for the `OT_NETWORK_DIAGNOSTIC_TLV_NON_PREFERRED_CHANNELS` TLV.

This is used to inform the device to reevaluate the channels that are presently included in the non-preferred channels list and update it if needed based on the reevaluation.

<br />

Details Parameters `[in] aContext` A pointer to application-specific context.

### otThreadParentResponseCallback

```
void(* otThreadParentResponseCallback)(otThreadParentResponseInfo *aInfo, void *aContext)
```
Pointer is called every time an MLE Parent Response message is received.

This is used in `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gad496d3fff2ccbf9d01ce11e9c5282f67`.

<br />

Details Parameters `[in] aInfo` A pointer to a location on stack holding the stats data. `[in] aContext` A pointer to callback client-specific context.

### otThreadParentResponseInfo

```
struct otThreadParentResponseInfo otThreadParentResponseInfo
```
Represents the MLE Parent Response data.

### otThreadVendorOui

```
struct otThreadVendorOui otThreadVendorOui
```
Represents a Thread Vendor OUI (Organizationally Unique Identifier) which can have different lengths.

A Vendor OUI can be assigned in one of the following formats:


- 24-bit Prefix (MA-L): Exactly 3 bytes (24 bits). Example: `00-1A-2B` is represented with `mBitLength = 24` and `mBytes = [0x00, 0x1A, 0x2B, 0x00, 0x00]`.
- 28-bit Prefix (MA-M): Exactly 3.5 bytes (28 bits). The half-byte (4 bits) at the end of the prefix occupies the Most Significant Nibble of the 4th byte. The Least Significant Nibble of the 4th byte is set to zero. Example: `00-1A-2B-3` is represented with `mBitLength = 28` and `mBytes = [0x00, 0x1A, 0x2B, 0x30, 0x00]`.
- 36-bit Prefix (MA-S): Exactly 4.5 bytes (36 bits). The half-byte (4 bits) at the end of the prefix occupies the Most Significant Nibble of the 5th byte. The Least Significant Nibble of the 5th byte is set to zero. Example: `00-1A-2B-3C-4` is represented with `mBitLength = 36` and `mBytes = [0x00, 0x1A, 0x2B, 0x3C, 0x40]`.

<br />

## Functions

### otConvertDurationInSecondsToString

```
void otConvertDurationInSecondsToString(
  uint32_t aDuration,
  char *aBuffer,
  uint16_t aSize
)
```
Converts an `uint32_t` duration (in seconds) to a human-readable string.

Requires `OPENTHREAD_CONFIG_UPTIME_ENABLE` to be enabled.

The string follows the format "::" for hours, minutes, seconds (if duration is shorter than one day) or "
d.::" (if longer than a day).

<br />

If the resulting string does not fit in `aBuffer` (within its `aSize` characters), the string will be truncated but the outputted string is always null-terminated.

Is intended for use with `mAge` or `mConnectionTime` in `https://openthread.io/reference/struct/ot-neighbor-info` or `https://openthread.io/reference/struct/ot-child-info` structures.

<br />

Details Parameters `[in] aDuration` A duration interval in seconds. `[out] aBuffer` A pointer to a char array to output the string. `[in] aSize` The size of `aBuffer` (in bytes). Recommended to use `OT_DURATION_STRING_SIZE`.

### otNetDataContainsOmrPrefix

```
bool otNetDataContainsOmrPrefix(
  otInstance *aInstance,
  const otIp6Prefix *aPrefix
)
```
Check whether a given Prefix can act as a valid OMR prefix and also the Leader's Network Data contains this prefix.


> [!NOTE]
> **Note:** This API is only available when `OPENTHREAD_CONFIG_BORDER_ROUTING_ENABLE` is used.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[in] aPrefix` A pointer to the IPv6 prefix. **Returns** Whether `aPrefix` is a valid OMR prefix and Leader's Network Data contains the OMR prefix `aPrefix`.

### otNetDataGet

```
otError otNetDataGet(
  otInstance *aInstance,
  bool aStable,
  uint8_t *aData,
  uint8_t *aDataLength
)
```
Provide full or stable copy of the Partition's Thread Network Data.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[in] aStable` TRUE when copying the stable version, FALSE when copying the full version. `[out] aData` A pointer to the data buffer. `[in,out] aDataLength` On entry, size of the data buffer pointed to by `aData`. On exit, number of copied bytes. Return Values `OT_ERROR_NONE` Successfully copied the Thread Network Data into `aData` and updated `aDataLength`. `OT_ERROR_NO_BUFS` Not enough space in `aData` to fully copy the Thread Network Data.

### otNetDataGetCommissioningDataset

```
void otNetDataGetCommissioningDataset(
  otInstance *aInstance,
  otCommissioningDataset *aDataset
)
```
Gets the Commissioning Dataset from the partition's Network Data.

<br />

Details Parameters `[in] aInstance` A pointer to the OpenThread instance. `[out] aDataset` A pointer to a `https://openthread.io/reference/struct/ot-commissioning-dataset` to populate.

### otNetDataGetLength

```
uint8_t otNetDataGetLength(
  otInstance *aInstance
)
```
Get the current length (number of bytes) of Partition's Thread Network Data.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. **Returns** The length of the Network Data.

### otNetDataGetMaxLength

```
uint8_t otNetDataGetMaxLength(
  otInstance *aInstance
)
```
Get the maximum observed length of the Thread Network Data since OT stack initialization or since the last call to `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gac191b8360f4723b4753c861aad8ebb75`.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. **Returns** The maximum length of the Network Data (high water mark for Network Data length).

### otNetDataGetNextLowpanContextInfo

```
otError otNetDataGetNextLowpanContextInfo(
  otInstance *aInstance,
  otNetworkDataIterator *aIterator,
  otLowpanContextInfo *aContextInfo
)
```
Get the next 6LoWPAN Context ID info in the partition's Network Data.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[in,out] aIterator` A pointer to the Network Data iterator. To get the first service entry it should be set to OT_NETWORK_DATA_ITERATOR_INIT. `[out] aContextInfo` A pointer to where the retrieved 6LoWPAN Context ID information will be placed. Return Values `OT_ERROR_NONE` Successfully found the next 6LoWPAN Context ID info. `OT_ERROR_NOT_FOUND` No subsequent 6LoWPAN Context info exists in the partition's Network Data.

### otNetDataGetNextOnMeshPrefix

```
otError otNetDataGetNextOnMeshPrefix(
  otInstance *aInstance,
  otNetworkDataIterator *aIterator,
  otBorderRouterConfig *aConfig
)
```
Get the next On Mesh Prefix in the partition's Network Data.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[in,out] aIterator` A pointer to the Network Data iterator context. To get the first on-mesh entry it should be set to OT_NETWORK_DATA_ITERATOR_INIT. `[out] aConfig` A pointer to where the On Mesh Prefix information will be placed. Return Values `OT_ERROR_NONE` Successfully found the next On Mesh prefix. `OT_ERROR_NOT_FOUND` No subsequent On Mesh prefix exists in the Thread Network Data.

### otNetDataGetNextRoute

```
otError otNetDataGetNextRoute(
  otInstance *aInstance,
  otNetworkDataIterator *aIterator,
  otExternalRouteConfig *aConfig
)
```
Get the next external route in the partition's Network Data.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[in,out] aIterator` A pointer to the Network Data iterator context. To get the first external route entry it should be set to OT_NETWORK_DATA_ITERATOR_INIT. `[out] aConfig` A pointer to where the External Route information will be placed. Return Values `OT_ERROR_NONE` Successfully found the next External Route. `OT_ERROR_NOT_FOUND` No subsequent external route entry exists in the Thread Network Data.

### otNetDataGetNextService

```
otError otNetDataGetNextService(
  otInstance *aInstance,
  otNetworkDataIterator *aIterator,
  otServiceConfig *aConfig
)
```
Get the next service in the partition's Network Data.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[in,out] aIterator` A pointer to the Network Data iterator context. To get the first service entry it should be set to OT_NETWORK_DATA_ITERATOR_INIT. `[out] aConfig` A pointer to where the service information will be placed. Return Values `OT_ERROR_NONE` Successfully found the next service. `OT_ERROR_NOT_FOUND` No subsequent service exists in the partition's Network Data.

### otNetDataGetStableVersion

```
uint8_t otNetDataGetStableVersion(
  otInstance *aInstance
)
```
Get the Stable Network Data Version.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. **Returns** The Stable Network Data Version.

### otNetDataGetVersion

```
uint8_t otNetDataGetVersion(
  otInstance *aInstance
)
```
Get the Network Data Version.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. **Returns** The Network Data Version.

### otNetDataIsDnsSrpServiceAdded

```
bool otNetDataIsDnsSrpServiceAdded(
  otInstance *aInstance
)
```
Indicates whether or not currently the "DNS/SRP Service" entry is added to the Thread Network Data.

Requires the feature `OPENTHREAD_CONFIG_TMF_NETDATA_SERVICE_ENABLE` to be enabled.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. Return Values `TRUE` The published DNS/SRP Service entry is added to the Thread Network Data. `FALSE` The entry is not added to Thread Network Data or there is no entry to publish.

### otNetDataIsPrefixAdded

```
bool otNetDataIsPrefixAdded(
  otInstance *aInstance,
  const otIp6Prefix *aPrefix
)
```
Indicates whether or not currently a published prefix entry (on-mesh or external route) is added to the Thread Network Data.

Requires the feature `OPENTHREAD_CONFIG_BORDER_ROUTER_ENABLE` to be enabled.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[in] aPrefix` A pointer to the prefix (MUST NOT be NULL). Return Values `TRUE` The published prefix entry is added to the Thread Network Data. `FALSE` The entry is not added to Thread Network Data or there is no entry to publish.

### otNetDataPublishDnsSrpServiceAnycast

```
void otNetDataPublishDnsSrpServiceAnycast(
  otInstance *aInstance,
  uint8_t aSequenceNUmber,
  uint8_t aVersion
)
```
Requests "DNS/SRP Service Anycast Address" to be published in the Thread Network Data.

Requires the feature `OPENTHREAD_CONFIG_TMF_NETDATA_SERVICE_ENABLE` to be enabled.

A call to this function will remove and replace any previous "DNS/SRP Service" entry that was being published (from earlier call to any of `otNetDataPublishDnsSrpService{Type}()` functions).

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[in] aSequenceNUmber` The sequence number of DNS/SRP Anycast Service. `[in] aVersion` The version number to publish.

### otNetDataPublishDnsSrpServiceUnicast

```
void otNetDataPublishDnsSrpServiceUnicast(
  otInstance *aInstance,
  const otIp6Address *aAddress,
  uint16_t aPort,
  uint8_t aVersion
)
```
Requests "DNS/SRP Service Unicast Address" to be published in the Thread Network Data.

Requires the feature `OPENTHREAD_CONFIG_TMF_NETDATA_SERVICE_ENABLE` to be enabled.

A call to this function will remove and replace any previous "DNS/SRP Service" entry that was being published (from earlier call to any of `otNetDataPublishDnsSrpService{Type}()` functions).

Publishes the "DNS/SRP Service Unicast Address" by including the address and port info in the Service TLV data.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[in] aAddress` The DNS/SRP server address to publish (MUST NOT be NULL). `[in] aPort` The SRP server port number to publish. `[in] aVersion` The version number to publish.

### otNetDataPublishDnsSrpServiceUnicastMeshLocalEid

```
void otNetDataPublishDnsSrpServiceUnicastMeshLocalEid(
  otInstance *aInstance,
  uint16_t aPort,
  uint8_t aVersion
)
```
Requests "DNS/SRP Service Unicast Address" to be published in the Thread Network Data.

Requires the feature `OPENTHREAD_CONFIG_TMF_NETDATA_SERVICE_ENABLE` to be enabled.

A call to this function will remove and replace any previous "DNS/SRP Service" entry that was being published (from earlier call to any of `otNetDataPublishDnsSrpService{Type}()` functions).

Unlike `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gae6b0ff0306407945531dee48765ec764` which requires the published address to be given and includes the info in the Service TLV data, this function uses the device's mesh-local EID and includes the info in the Server TLV data.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[in] aPort` The SRP server port number to publish. `[in] aVersion` The version number to publish.

### otNetDataPublishExternalRoute

```
otError otNetDataPublishExternalRoute(
  otInstance *aInstance,
  const otExternalRouteConfig *aConfig
)
```
Requests an external route prefix to be published in the Thread Network Data.

Requires the feature `OPENTHREAD_CONFIG_BORDER_ROUTER_ENABLE` to be enabled.

Only stable entries can be published (i.e.,`aConfig.mStable` MUST be TRUE).

A subsequent call to this method will replace a previous request for the same prefix. In particular, if the new call only changes the flags (e.g., preference level) and the prefix is already added in the Network Data, the change to flags is immediately reflected in the Network Data. This ensures that existing entries in the Network Data are not abruptly removed. Note that a change in the preference level can potentially later cause the entry to be removed from the Network Data after determining there are other nodes that are publishing the same prefix with the same or higher preference.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[in] aConfig` The external route config to publish (MUST NOT be NULL). Return Values `OT_ERROR_NONE` The external route is published successfully. `OT_ERROR_INVALID_ARGS` The `aConfig` is not valid (bad prefix, invalid flag combinations, or not stable). `OT_ERROR_NO_BUFS` Could not allocate an entry for the new request. Publisher supports a limited number of entries (shared between on-mesh prefix and external route) determined by config `OPENTHREAD_CONFIG_NETDATA_PUBLISHER_MAX_PREFIX_ENTRIES`.

### otNetDataPublishOnMeshPrefix

```
otError otNetDataPublishOnMeshPrefix(
  otInstance *aInstance,
  const otBorderRouterConfig *aConfig
)
```
Requests an on-mesh prefix to be published in the Thread Network Data.

Requires the feature `OPENTHREAD_CONFIG_BORDER_ROUTER_ENABLE` to be enabled.

Only stable entries can be published (i.e.,`aConfig.mStable` MUST be TRUE).

A subsequent call to this method will replace a previous request for the same prefix. In particular, if the new call only changes the flags (e.g., preference level) and the prefix is already added in the Network Data, the change to flags is immediately reflected in the Network Data. This ensures that existing entries in the Network Data are not abruptly removed. Note that a change in the preference level can potentially later cause the entry to be removed from the Network Data after determining there are other nodes that are publishing the same prefix with the same or higher preference.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[in] aConfig` The on-mesh prefix config to publish (MUST NOT be NULL). Return Values `OT_ERROR_NONE` The on-mesh prefix is published successfully. `OT_ERROR_INVALID_ARGS` The `aConfig` is not valid (bad prefix, invalid flag combinations, or not stable). `OT_ERROR_NO_BUFS` Could not allocate an entry for the new request. Publisher supports a limited number of entries (shared between on-mesh prefix and external route) determined by config `OPENTHREAD_CONFIG_NETDATA_PUBLISHER_MAX_PREFIX_ENTRIES`.

### otNetDataReplacePublishedExternalRoute

```
otError otNetDataReplacePublishedExternalRoute(
  otInstance *aInstance,
  const otIp6Prefix *aPrefix,
  const otExternalRouteConfig *aConfig
)
```
Replaces a previously published external route in the Thread Network Data.

Requires the feature `OPENTHREAD_CONFIG_BORDER_ROUTER_ENABLE` to be enabled.

If there is no previously published external route matching `aPrefix`, this function behaves similarly to `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga77140dd06f0693583c0e53487eb3ca68`, i.e., it will start the process of publishing *aConfig* as an external route in the Thread Network Data.

If there is a previously published route entry matching `aPrefix`, it will be replaced with the new prefix from `aConfig`.


- If the `aPrefix` was already added in the Network Data, the change to the new prefix in `aConfig` is immediately reflected in the Network Data. This ensures that route entries in the Network Data are not abruptly removed and the transition from aPrefix to the new prefix is smooth.
- If the old published `aPrefix` was not added in the Network Data, it will be replaced with the new `aConfig` prefix but it will not be immediately added. Instead, it will start the process of publishing it in the Network Data (monitoring the Network Data to determine when/if to add the prefix, depending on the number of similar prefixes present in the Network Data).

<br />

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[in] aPrefix` The previously published external route prefix to replace. `[in] aConfig` The external route config to publish. Return Values `OT_ERROR_NONE` The external route is published successfully. `OT_ERROR_INVALID_ARGS` The `aConfig` is not valid (bad prefix, invalid flag combinations, or not stable). `OT_ERROR_NO_BUFS` Could not allocate an entry for the new request. Publisher supports a limited number of entries (shared between on-mesh prefix and external route) determined by config `OPENTHREAD_CONFIG_NETDATA_PUBLISHER_MAX_PREFIX_ENTRIES`.

### otNetDataResetMaxLength

```
void otNetDataResetMaxLength(
  otInstance *aInstance
)
```
Reset the tracked maximum length of the Thread Network Data.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. **See also:**   
[otNetDataGetMaxLength](https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga4eea4238a3c3ff2139287d1710bf56f2)   

### otNetDataSetDnsSrpServicePublisherCallback

```
void otNetDataSetDnsSrpServicePublisherCallback(
  otInstance *aInstance,
  otNetDataDnsSrpServicePublisherCallback aCallback,
  void *aContext
)
```
Sets a callback for notifying when a published "DNS/SRP Service" is actually added to or removed from the Thread Network Data.

A subsequent call to this function replaces any previously set callback function.

Requires the feature `OPENTHREAD_CONFIG_TMF_NETDATA_SERVICE_ENABLE` to be enabled.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[in] aCallback` The callback function pointer (can be NULL if not needed). `[in] aContext` A pointer to application-specific context (used when `aCallback` is invoked).

### otNetDataSetPrefixPublisherCallback

```
void otNetDataSetPrefixPublisherCallback(
  otInstance *aInstance,
  otNetDataPrefixPublisherCallback aCallback,
  void *aContext
)
```
Sets a callback for notifying when a published prefix entry is actually added to or removed from the Thread Network Data.

A subsequent call to this function replaces any previously set callback function.

Requires the feature `OPENTHREAD_CONFIG_BORDER_ROUTER_ENABLE` to be enabled.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[in] aCallback` The callback function pointer (can be NULL if not needed). `[in] aContext` A pointer to application-specific context (used when `aCallback` is invoked).

### otNetDataSteeringDataCheckJoiner

```
otError otNetDataSteeringDataCheckJoiner(
  otInstance *aInstance,
  const otExtAddress *aEui64
)
```
Check if the steering data includes a Joiner.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[in] aEui64` A pointer to the Joiner's IEEE EUI-64. Return Values `OT_ERROR_NONE` `aEui64` is included in the steering data. `OT_ERROR_INVALID_STATE` No steering data present. `OT_ERROR_NOT_FOUND` `aEui64` is not included in the steering data.

### otNetDataSteeringDataCheckJoinerWithDiscerner

```
otError otNetDataSteeringDataCheckJoinerWithDiscerner(
  otInstance *aInstance,
  const struct otJoinerDiscerner *aDiscerner
)
```
Check if the steering data includes a Joiner with a given discerner value.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[in] aDiscerner` A pointer to the Joiner Discerner. Return Values `OT_ERROR_NONE` `aDiscerner` is included in the steering data. `OT_ERROR_INVALID_STATE` No steering data present. `OT_ERROR_NOT_FOUND` `aDiscerner` is not included in the steering data.

### otNetDataUnpublishDnsSrpService

```
void otNetDataUnpublishDnsSrpService(
  otInstance *aInstance
)
```
Unpublishes any previously added DNS/SRP (Anycast or Unicast) Service entry from the Thread Network Data.

`OPENTHREAD_CONFIG_TMF_NETDATA_SERVICE_ENABLE` must be enabled.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance.

### otNetDataUnpublishPrefix

```
otError otNetDataUnpublishPrefix(
  otInstance *aInstance,
  const otIp6Prefix *aPrefix
)
```
Unpublishes a previously published On-Mesh or External Route Prefix.

`OPENTHREAD_CONFIG_BORDER_ROUTER_ENABLE` must be enabled.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[in] aPrefix` The prefix to unpublish (MUST NOT be NULL). Return Values `OT_ERROR_NONE` The prefix was unpublished successfully. `OT_ERROR_NOT_FOUND` Could not find the prefix in the published list.

### otThreadBecomeChild

```
otError otThreadBecomeChild(
  otInstance *aInstance
)
```
Attempt to reattach as a child.


> [!NOTE]
> **Note:** This API is reserved for testing and demo purposes only. Changing settings with this API will render a production application non-compliant with the Thread Specification.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. Return Values `OT_ERROR_NONE` Successfully begin attempt to become a child. `OT_ERROR_INVALID_STATE` Thread is disabled.

### otThreadBecomeDetached

```
otError otThreadBecomeDetached(
  otInstance *aInstance
)
```
Detach from the Thread network.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. Return Values `OT_ERROR_NONE` Successfully detached from the Thread network. `OT_ERROR_INVALID_STATE` Thread is disabled.

### otThreadDetachGracefully

```
otError otThreadDetachGracefully(
  otInstance *aInstance,
  otDetachGracefullyCallback aCallback,
  void *aContext
)
```
Notifies other nodes in the network (if any) and then stops Thread protocol operation.

It sends an Address Release if it's a router, or sets its child timeout to 0 if it's a child.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[in] aCallback` A pointer to a function that is called upon finishing detaching. `[in] aContext` A pointer to callback application-specific context. Return Values `OT_ERROR_NONE` Successfully started detaching. `OT_ERROR_BUSY` Detaching is already in progress.

### otThreadDeviceRoleToString

```
const char * otThreadDeviceRoleToString(
  otDeviceRole aRole
)
```
Convert the device role to human-readable string.

<br />

Details Parameters `[in] aRole` The device role to convert. **Returns** A string representing `aRole`.

### otThreadDiscover

```
otError otThreadDiscover(
  otInstance *aInstance,
  uint32_t aScanChannels,
  uint16_t aPanId,
  bool aJoiner,
  bool aEnableEui64Filtering,
  otHandleActiveScanResult aCallback,
  void *aCallbackContext
)
```
Starts a Thread Discovery scan.


> [!NOTE]
> **Note:** A successful call to this function enables the rx-on-when-idle mode for the entire scan procedure.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[in] aScanChannels` A bit vector indicating which channels to scan (e.g. OT_CHANNEL_11_MASK). `[in] aPanId` The PAN ID filter (set to Broadcast PAN to disable filter). `[in] aJoiner` Value of the Joiner Flag in the Discovery Request TLV. `[in] aEnableEui64Filtering` TRUE to filter responses on EUI-64, FALSE otherwise. `[in] aCallback` A pointer to a function called on receiving an MLE Discovery Response or scan completes. `[in] aCallbackContext` A pointer to application-specific context. Return Values `OT_ERROR_NONE` Successfully started a Thread Discovery Scan. `OT_ERROR_INVALID_STATE` The IPv6 interface is not enabled (netif is not up). `OT_ERROR_NO_BUFS` Could not allocate message for Discovery Request. `OT_ERROR_BUSY` Thread Discovery Scan is already in progress.

### otThreadGetChildTimeout

```
uint32_t otThreadGetChildTimeout(
  otInstance *aInstance
)
```
Gets the Thread Child Timeout (in seconds) used when operating in the Child role.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. **Returns** The Thread Child Timeout value in seconds. **See also:**   
[otThreadSetChildTimeout](https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gaf22e732ad154f5ca833957a1396d2e19)   

### otThreadGetCurrentAttachDuration

```
uint32_t otThreadGetCurrentAttachDuration(
  otInstance *aInstance
)
```
Gets the current attach duration (number of seconds since the device last attached).

If the device is not currently attached, zero will be returned.

Unlike the role-tracking variables in `https://openthread.io/reference/struct/ot-mle-counters`, which track the cumulative time the device is in each role, this function tracks the time since the last successful attachment, indicating how long the device has been connected to the Thread mesh (regardless of its role, whether acting as a child, router, or leader).

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. **Returns** The number of seconds since last attached.

### otThreadGetDeviceRole

```
otDeviceRole otThreadGetDeviceRole(
  otInstance *aInstance
)
```
Get the device role.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. Return Values `OT_DEVICE_ROLE_DISABLED` The Thread stack is disabled. `OT_DEVICE_ROLE_DETACHED` The device is not currently participating in a Thread network/partition. `OT_DEVICE_ROLE_CHILD` The device is currently operating as a Thread Child. `OT_DEVICE_ROLE_ROUTER` The device is currently operating as a Thread Router. `OT_DEVICE_ROLE_LEADER` The device is currently operating as a Thread Leader.

### otThreadGetDomainName

```
const char * otThreadGetDomainName(
  otInstance *aInstance
)
```
Gets the Thread Domain Name.


> [!NOTE]
> **Note:** Available since Thread 1.2.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. **Returns** A pointer to the Thread Domain Name. **See also:**   
[otThreadSetDomainName](https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga707829f290512c14a533d98eb8c11998)   

### otThreadGetExtendedPanId

```
const otExtendedPanId * otThreadGetExtendedPanId(
  otInstance *aInstance
)
```
Gets the IEEE 802.15.4 Extended PAN ID.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. **Returns** A pointer to the IEEE 802.15.4 Extended PAN ID. **See also:**   
[otThreadSetExtendedPanId](https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga4c89cc9bd207df86a9d7e029e61e1d82)   

### otThreadGetIp6Counters

```
const otIpCounters * otThreadGetIp6Counters(
  otInstance *aInstance
)
```
Gets the IPv6 counters.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. **Returns** A pointer to the IPv6 counters.

### otThreadGetKeySequenceCounter

```
uint32_t otThreadGetKeySequenceCounter(
  otInstance *aInstance
)
```
Gets the thrKeySequenceCounter.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. **Returns** The thrKeySequenceCounter value. **See also:**   
[otThreadSetKeySequenceCounter](https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gadfb2f6ddd49b0694a1104694e8c1fbfa)   

### otThreadGetKeySwitchGuardTime

```
uint16_t otThreadGetKeySwitchGuardTime(
  otInstance *aInstance
)
```
Gets the thrKeySwitchGuardTime (in hours).

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. **Returns** The thrKeySwitchGuardTime value (in hours). **See also:**   
[otThreadSetKeySwitchGuardTime](https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gad383ddb17d1375fd2aed7f525769d68e)   

### otThreadGetLeaderData

```
otError otThreadGetLeaderData(
  otInstance *aInstance,
  otLeaderData *aLeaderData
)
```
Get the Thread Leader Data.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[out] aLeaderData` A pointer to where the leader data is placed. Return Values `OT_ERROR_NONE` Successfully retrieved the leader data. `OT_ERROR_DETACHED` Not currently attached.

### otThreadGetLeaderRloc

```
otError otThreadGetLeaderRloc(
  otInstance *aInstance,
  otIp6Address *aLeaderRloc
)
```
Returns a pointer to the Leader's RLOC.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[out] aLeaderRloc` A pointer to the Leader's RLOC. Return Values `OT_ERROR_NONE` The Leader's RLOC was successfully written to `aLeaderRloc`. `OT_ERROR_INVALID_ARGS` `aLeaderRloc` was NULL. `OT_ERROR_DETACHED` Not currently attached to a Thread Partition.

### otThreadGetLeaderRouterId

```
uint8_t otThreadGetLeaderRouterId(
  otInstance *aInstance
)
```
Get the Leader's Router ID.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. **Returns** The Leader's Router ID.

### otThreadGetLeaderWeight

```
uint8_t otThreadGetLeaderWeight(
  otInstance *aInstance
)
```
Get the Leader's Weight.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. **Returns** The Leader's Weight.

### otThreadGetLinkLocalAllThreadNodesMulticastAddress

```
const otIp6Address * otThreadGetLinkLocalAllThreadNodesMulticastAddress(
  otInstance *aInstance
)
```
Gets the Thread Link-Local All Thread Nodes multicast address.

The address is a link-local Unicast Prefix-Based Multicast Address \[RFC 3306\], with:

- flgs set to 3 (P = 1 and T = 1)
- scop set to 2
- plen set to 64
- network prefix set to the Mesh Local Prefix
- group ID set to 1

<br />

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. **Returns** A pointer to Thread Link-Local All Thread Nodes multicast address.

### otThreadGetLinkLocalIp6Address

```
const otIp6Address * otThreadGetLinkLocalIp6Address(
  otInstance *aInstance
)
```
Gets the Thread link-local IPv6 address.

The Thread link local address is derived using IEEE802.15.4 Extended Address as Interface Identifier.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. **Returns** A pointer to Thread link-local IPv6 address.

### otThreadGetLinkMode

```
otLinkModeConfig otThreadGetLinkMode(
  otInstance *aInstance
)
```
Get the MLE Link Mode configuration.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. **Returns** The MLE Link Mode configuration. **See also:**   
[otThreadSetLinkMode](https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga55503224cce967140b9e137095671dbe)   

### otThreadGetMaxTimeInQueue

```
uint32_t otThreadGetMaxTimeInQueue(
  otInstance *aInstance
)
```
Gets the maximum time-in-queue for messages in the TX queue.

Requires `OPENTHREAD_CONFIG_TX_QUEUE_STATISTICS_ENABLE`.

The time-in-queue is tracked for direct transmissions only and is measured as the duration from when a message is added to the transmit queue until it is passed to the MAC layer for transmission or dropped.

The collected statistics can be reset by calling `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gaa46968acc412f6ec71dfa036f8b3db36`.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. **Returns** The maximum time-in-queue in milliseconds for all messages in the TX queue (so far).

### otThreadGetMeshLocalEid

```
const otIp6Address * otThreadGetMeshLocalEid(
  otInstance *aInstance
)
```
Gets the Mesh Local EID address.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. **Returns** A pointer to the Mesh Local EID address.

### otThreadGetMeshLocalPrefix

```
const otMeshLocalPrefix * otThreadGetMeshLocalPrefix(
  otInstance *aInstance
)
```
Returns a pointer to the Mesh Local Prefix.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. **Returns** A pointer to the Mesh Local Prefix.

### otThreadGetMleCounters

```
const otMleCounters * otThreadGetMleCounters(
  otInstance *aInstance
)
```
Gets the Thread MLE counters.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. **Returns** A pointer to the Thread MLE counters.

### otThreadGetNeighborInfoByRloc16

```
otError otThreadGetNeighborInfoByRloc16(
  otInstance *aInstance,
  uint16_t aRloc16,
  otNeighborInfo *aInfo
)
```
Gets the neighbor information for a neighbor with a given RLOC16.

This is a direct lookup alternative to iterating the whole neighbor table with `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga92a74f751efa8e706e1098ce7d50ae51` when the RLOC16 of the neighbor is already known (e.g., from the router table).

Only neighbors in a valid state are considered. On a router or leader, the lookup covers children and neighboring routers. On a child, it covers the parent. On an FTD child, it also covers neighboring routers with which the child has established a link.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[in] aRloc16` The RLOC16 of the neighbor. `[out] aInfo` A pointer to output the neighbor information. Return Values `OT_ERROR_NONE` Successfully found the neighbor and retrieved its information in `aInfo`. `OT_ERROR_NOT_FOUND` No valid neighbor with `aRloc16` exists in the neighbor table.

### otThreadGetNetworkKey

```
void otThreadGetNetworkKey(
  otInstance *aInstance,
  otNetworkKey *aNetworkKey
)
```
Get the Thread Network Key.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[out] aNetworkKey` A pointer to an `https://openthread.io/reference/struct/ot-network-key` to return the Thread Network Key. **See also:**   
[otThreadSetNetworkKey](https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga792903b29b3c3a4edee799d0833f79de)   

### otThreadGetNetworkKeyRef

```
otNetworkKeyRef otThreadGetNetworkKeyRef(
  otInstance *aInstance
)
```
Get the `otNetworkKeyRef` for Thread Network Key.

Requires the build-time feature `OPENTHREAD_CONFIG_PLATFORM_KEY_REFERENCES_ENABLE` to be enabled.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. **Returns** Reference to the Thread Network Key stored in memory. **See also:**   
[otThreadSetNetworkKeyRef](https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga1a6fbe7804f772f1ef1179735086fbb3)   

### otThreadGetNetworkName

```
const char * otThreadGetNetworkName(
  otInstance *aInstance
)
```
Get the Thread Network Name.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. **Returns** A pointer to the Thread Network Name. **See also:**   
[otThreadSetNetworkName](https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga37cfaf05729b3d7d6a4f5a0a3794f962)   

### otThreadGetNextDiagnosticTlv

```
otError otThreadGetNextDiagnosticTlv(
  const otMessage *aMessage,
  otNetworkDiagIterator *aIterator,
  otNetworkDiagTlv *aNetworkDiagTlv
)
```
Gets the next Network Diagnostic TLV in the message.

Requires `OPENTHREAD_CONFIG_TMF_NETDIAG_CLIENT_ENABLE`.


A subsequent call to this function is allowed only when current return value is OT_ERROR_NONE.
Details Parameters `[in] aMessage` A pointer to a message. `[in,out] aIterator` A pointer to the Network Diagnostic iterator context. To get the first Network Diagnostic TLV it should be set to OT_NETWORK_DIAGNOSTIC_ITERATOR_INIT. `[out] aNetworkDiagTlv` A pointer to where the Network Diagnostic TLV information will be placed. Return Values `OT_ERROR_NONE` Successfully found the next Network Diagnostic TLV. `OT_ERROR_NOT_FOUND` No subsequent Network Diagnostic TLV exists in the message. `OT_ERROR_PARSE` Parsing the next Network Diagnostic failed.

### otThreadGetNextNeighborInfo

```
otError otThreadGetNextNeighborInfo(
  otInstance *aInstance,
  otNeighborInfoIterator *aIterator,
  otNeighborInfo *aInfo
)
```
Gets the next neighbor information.

It is used to go through the entries of the neighbor table.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[in,out] aIterator` A pointer to the iterator context. To get the first neighbor entry it should be set to OT_NEIGHBOR_INFO_ITERATOR_INIT. `[out] aInfo` A pointer to the neighbor information. Return Values `OT_ERROR_NONE` Successfully found the next neighbor entry in table. `OT_ERROR_NOT_FOUND` No subsequent neighbor entry exists in the table. `OT_ERROR_INVALID_ARGS` `aIterator` or `aInfo` was NULL.

### otThreadGetNonPreferredChannels

```
otChannelMask otThreadGetNonPreferredChannels(
  otInstance *aInstance
)
```
Gets the non-preferred channels for `OT_NETWORK_DIAGNOSTIC_TLV_NON_PREFERRED_CHANNELS` TLV.

<br />

| Details ||
|---|---|
| **Returns** | The non-preferred channels as a channel mask. |

### otThreadGetParentAverageRssi

```
otError otThreadGetParentAverageRssi(
  otInstance *aInstance,
  int8_t *aParentRssi
)
```
The function retrieves the average RSSI for the Thread Parent.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[out] aParentRssi` A pointer to where the parent RSSI should be placed.

### otThreadGetParentInfo

```
otError otThreadGetParentInfo(
  otInstance *aInstance,
  otRouterInfo *aParentInfo
)
```
The function retrieves diagnostic information for a Thread Router as parent.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[out] aParentInfo` A pointer to where the parent router information is placed.

### otThreadGetParentLastRssi

```
otError otThreadGetParentLastRssi(
  otInstance *aInstance,
  int8_t *aLastRssi
)
```
The function retrieves the RSSI of the last packet from the Thread Parent.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[out] aLastRssi` A pointer to where the last RSSI should be placed. Return Values `OT_ERROR_NONE` Successfully retrieved the RSSI data. `OT_ERROR_FAILED` Unable to get RSSI data. `OT_ERROR_INVALID_ARGS` `aLastRssi` is NULL.

### otThreadGetPartitionId

```
uint32_t otThreadGetPartitionId(
  otInstance *aInstance
)
```
Get the Partition ID.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. **Returns** The Partition ID.

### otThreadGetRealmLocalAllThreadNodesMulticastAddress

```
const otIp6Address * otThreadGetRealmLocalAllThreadNodesMulticastAddress(
  otInstance *aInstance
)
```
Gets the Thread Realm-Local All Thread Nodes multicast address.

The address is a realm-local Unicast Prefix-Based Multicast Address \[RFC 3306\], with:

- flgs set to 3 (P = 1 and T = 1)
- scop set to 3
- plen set to 64
- network prefix set to the Mesh Local Prefix
- group ID set to 1

<br />

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. **Returns** A pointer to Thread Realm-Local All Thread Nodes multicast address.

### otThreadGetRloc

```
const otIp6Address * otThreadGetRloc(
  otInstance *aInstance
)
```
Gets the Thread Routing Locator (RLOC) address.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. **Returns** A pointer to the Thread Routing Locator (RLOC) address.

### otThreadGetRloc16

```
uint16_t otThreadGetRloc16(
  otInstance *aInstance
)
```
Get the RLOC16.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. **Returns** The RLOC16.

### otThreadGetServiceAloc

```
otError otThreadGetServiceAloc(
  otInstance *aInstance,
  uint8_t aServiceId,
  otIp6Address *aServiceAloc
)
```
Retrieves the Service ALOC for given Service ID.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[in] aServiceId` Service ID to get ALOC for. `[out] aServiceAloc` A pointer to output the Service ALOC. MUST NOT BE NULL. Return Values `OT_ERROR_NONE` Successfully retrieved the Service ALOC. `OT_ERROR_DETACHED` The Thread interface is not currently attached to a Thread Partition.

### otThreadGetStoreFrameCounterAhead

```
uint32_t otThreadGetStoreFrameCounterAhead(
  otInstance *aInstance
)
```
Gets the store frame counter ahead.

Requires `OPENTHREAD_CONFIG_DYNAMIC_STORE_FRAME_AHEAD_COUNTER_ENABLE` to be enabled.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. **Returns** The current store frame counter ahead.

### otThreadGetTimeInQueueHistogram

```
const uint32_t * otThreadGetTimeInQueueHistogram(
  otInstance *aInstance,
  uint16_t *aNumBins,
  uint32_t *aBinInterval
)
```
Gets the time-in-queue histogram for messages in the TX queue.

Requires `OPENTHREAD_CONFIG_TX_QUEUE_STATISTICS_ENABLE`.

Histogram of the time-in-queue of messages in the transmit queue is collected. The time-in-queue is tracked for direct transmissions only and is measured as the duration from when a message is added to the transmit queue until it is passed to the MAC layer for transmission or dropped.

The histogram is returned as an array of `uint32_t` values with `aNumBins` entries. The first entry in the array (at index 0) represents the number of messages with a time-in-queue less than `aBinInterval`. The second entry represents the number of messages with a time-in-queue greater than or equal to `aBinInterval`, but less than `2 * aBinInterval`. And so on. The last entry represents the number of messages with time-in-queue greater than or equal to `(aNumBins - 1) * aBinInterval`.

The collected statistics can be reset by calling `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gaa46968acc412f6ec71dfa036f8b3db36`. The histogram information is collected since the OpenThread instance was initialized or since the last time statistics collection was reset by calling the `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gaa46968acc412f6ec71dfa036f8b3db36`.

Pointers `aNumBins` and `aBinInterval` MUST NOT be NULL.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[out] aNumBins` Pointer to return the number of bins in histogram (array length). `[out] aBinInterval` Pointer to return the histogram bin interval length in milliseconds. **Returns** A pointer to an array of `aNumBins` entries representing the collected histogram info.

### otThreadGetVendorAppUrl

```
const char * otThreadGetVendorAppUrl(
  otInstance *aInstance
)
```
Get the vendor app URL string.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. **Returns** The vendor app URL string.

### otThreadGetVendorModel

```
const char * otThreadGetVendorModel(
  otInstance *aInstance
)
```
Get the vendor model string.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. **Returns** The vendor model string.

### otThreadGetVendorName

```
const char * otThreadGetVendorName(
  otInstance *aInstance
)
```
Get the vendor name string.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. **Returns** The vendor name string.

### otThreadGetVendorOui

```
uint32_t otThreadGetVendorOui(
  otInstance *aInstance
)
```
Gets the vendor OUI-24.

**[Deprecated.](https://openthread.io/reference/deprecated/deprecated)** This function is deprecated. Use `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga31878c1dd1212a2b630528391ec63179` instead.

If the configured Vendor OUI has a prefix length greater than 24 bits, this function returns the most significant 24 bits (first 3 bytes) of the OUI to maintain backward compatibility.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. **Returns** The vendor OUI-24 value, or `OT_THREAD_UNSPECIFIED_VENDOR_OUI` if not specified.

### otThreadGetVendorOuiInfo

```
void otThreadGetVendorOuiInfo(
  otInstance *aInstance,
  otThreadVendorOui *aOui
)
```
Gets the vendor OUI.

If no vendor OUI is yet set/configured on device, the `mBitLength` in `aOui` will be zero.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[out] aOui` A pointer to an `https://openthread.io/reference/struct/ot-thread-vendor-oui` to return the vendor OUI.

### otThreadGetVendorSwVersion

```
const char * otThreadGetVendorSwVersion(
  otInstance *aInstance
)
```
Get the vendor software version string.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. **Returns** The vendor software version string.

### otThreadGetVersion

```
uint16_t otThreadGetVersion(
  void
)
```
Gets the Thread protocol version.

The constants `OT_THREAD_VERSION_*` define the numerical version values.

<br />

| Details ||
|---|---|
| **Returns** | the Thread protocol version. |

### otThreadIsAnycastLocateInProgress

```
bool otThreadIsAnycastLocateInProgress(
  otInstance *aInstance
)
```
Indicates whether an anycast locate request is currently in progress.

Is only available when `OPENTHREAD_CONFIG_TMF_ANYCAST_LOCATOR_ENABLE` is enabled.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. **Returns** TRUE if an anycast locate request is currently in progress, FALSE otherwise.

### otThreadIsDiscoverInProgress

```
bool otThreadIsDiscoverInProgress(
  otInstance *aInstance
)
```
Determines if an MLE Thread Discovery is currently in progress.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance.

### otThreadIsSingleton

```
bool otThreadIsSingleton(
  otInstance *aInstance
)
```
Indicates whether a node is the only router on the network.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. Return Values `TRUE` It is the only router in the network. `FALSE` It is a child or is not a single router in the network.

### otThreadLocateAnycastDestination

```
otError otThreadLocateAnycastDestination(
  otInstance *aInstance,
  const otIp6Address *aAnycastAddress,
  otThreadAnycastLocatorCallback aCallback,
  void *aContext
)
```
Requests the closest destination of a given anycast address to be located.

Is only available when `OPENTHREAD_CONFIG_TMF_ANYCAST_LOCATOR_ENABLE` is enabled.

If a previous request is ongoing, a subsequent call to this function will cancel and replace the earlier request.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[in] aAnycastAddress` The anycast address to locate. MUST NOT be NULL. `[in] aCallback` The callback function to report the result. `[in] aContext` An arbitrary context used with `aCallback`. Return Values `OT_ERROR_NONE` The request started successfully. `aCallback` will be invoked to report the result. `OT_ERROR_INVALID_ARGS` The `aAnycastAddress` is not a valid anycast address or `aCallback` is NULL. `OT_ERROR_NO_BUFS` Out of buffer to prepare and send the request message.

### otThreadRegisterParentResponseCallback

```
void otThreadRegisterParentResponseCallback(
  otInstance *aInstance,
  otThreadParentResponseCallback aCallback,
  void *aContext
)
```
Registers a callback to receive MLE Parent Response data.

Requires `OPENTHREAD_CONFIG_MLE_PARENT_RESPONSE_CALLBACK_API_ENABLE`.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[in] aCallback` A pointer to a function that is called upon receiving an MLE Parent Response message. `[in] aContext` A pointer to callback client-specific context.

### otThreadResetIp6Counters

```
void otThreadResetIp6Counters(
  otInstance *aInstance
)
```
Resets the IPv6 counters.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance.

### otThreadResetMleCounters

```
void otThreadResetMleCounters(
  otInstance *aInstance
)
```
Resets the Thread MLE counters.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance.

### otThreadResetTimeInQueueStat

```
void otThreadResetTimeInQueueStat(
  otInstance *aInstance
)
```
Resets the TX queue time-in-queue statistics.

Requires `OPENTHREAD_CONFIG_TX_QUEUE_STATISTICS_ENABLE`.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance.

### otThreadSearchForBetterParent

```
otError otThreadSearchForBetterParent(
  otInstance *aInstance
)
```
Starts the process for child to search for a better parent while staying attached to its current parent.

Must be used when device is attached as a child.

<br />

Details Return Values `OT_ERROR_NONE` Successfully started the process to search for a better parent. `OT_ERROR_INVALID_STATE` Device role is not child.

### otThreadSendAddressNotification

```
void otThreadSendAddressNotification(
  otInstance *aInstance,
  otIp6Address *aDestination,
  otIp6Address *aTarget,
  otIp6InterfaceIdentifier *aMlIid
)
```
Sends a Proactive Address Notification (ADDR_NTF.ntf) message.

Is only available when `OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE` is enabled.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[in] aDestination` The destination to send the ADDR_NTF.ntf message. `[in] aTarget` The target address of the ADDR_NTF.ntf message. `[in] aMlIid` The ML-IID of the ADDR_NTF.ntf message.

### otThreadSendDiagnosticGet

```
otError otThreadSendDiagnosticGet(
  otInstance *aInstance,
  const otIp6Address *aDestination,
  const uint8_t aTlvTypes[],
  uint8_t aCount,
  otReceiveDiagnosticGetCallback aCallback,
  void *aCallbackContext
)
```
Send a Network Diagnostic Get request.

Requires `OPENTHREAD_CONFIG_TMF_NETDIAG_CLIENT_ENABLE`.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[in] aDestination` A pointer to destination address. `[in] aTlvTypes` An array of Network Diagnostic TLV types. `[in] aCount` Number of types in aTlvTypes. `[in] aCallback` A pointer to a function that is called when Network Diagnostic Get response is received or NULL to disable the callback. `[in] aCallbackContext` A pointer to application-specific context. Return Values `OT_ERROR_NONE` Successfully queued the DIAG_GET.req. `OT_ERROR_NO_BUFS` Insufficient message buffers available to send DIAG_GET.req.

### otThreadSendDiagnosticReset

```
otError otThreadSendDiagnosticReset(
  otInstance *aInstance,
  const otIp6Address *aDestination,
  const uint8_t aTlvTypes[],
  uint8_t aCount
)
```
Send a Network Diagnostic Reset request.

Requires `OPENTHREAD_CONFIG_TMF_NETDIAG_CLIENT_ENABLE`.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[in] aDestination` A pointer to destination address. `[in] aTlvTypes` An array of Network Diagnostic TLV types. Currently only Type 9 is allowed. `[in] aCount` Number of types in aTlvTypes Return Values `OT_ERROR_NONE` Successfully queued the DIAG_RST.ntf. `OT_ERROR_NO_BUFS` Insufficient message buffers available to send DIAG_RST.ntf.

### otThreadSetChildTimeout

```
void otThreadSetChildTimeout(
  otInstance *aInstance,
  uint32_t aTimeout
)
```
Sets the Thread Child Timeout (in seconds) used when operating in the Child role.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[in] aTimeout` The timeout value in seconds. **See also:**   
[otThreadGetChildTimeout](https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gaf94d0e97079b92c925fa32a4c41c1cbd)   

### otThreadSetDiscoveryRequestCallback

```
void otThreadSetDiscoveryRequestCallback(
  otInstance *aInstance,
  otThreadDiscoveryRequestCallback aCallback,
  void *aContext
)
```
Sets a callback to receive MLE Discovery Request data.

Requires `OPENTHREAD_CONFIG_MLE_DISCOVERY_SCAN_REQUEST_CALLBACK_ENABLE`.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[in] aCallback` A pointer to a function that is called upon receiving an MLE Discovery Request message. `[in] aContext` A pointer to callback application-specific context.

### otThreadSetDomainName

```
otError otThreadSetDomainName(
  otInstance *aInstance,
  const char *aDomainName
)
```
Sets the Thread Domain Name.

Only succeeds when Thread protocols are disabled.


> [!NOTE]
> **Note:** Available since Thread 1.2.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[in] aDomainName` A pointer to the Thread Domain Name. Return Values `OT_ERROR_NONE` Successfully set the Thread Domain Name. `OT_ERROR_INVALID_STATE` Thread protocols are enabled. **See also:**   
[otThreadGetDomainName](https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gaf8a1d07cd4028ee2722f828f1a406d23)   

### otThreadSetEnabled

```
otError otThreadSetEnabled(
  otInstance *aInstance,
  bool aEnabled
)
```
Starts Thread protocol operation.

The interface must be up when calling this function.

Calling this function with `aEnabled` set to FALSE stops any ongoing processes of detaching started by [otThreadDetachGracefully()](https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga3a73c474688be9ecddabfb977feb9ed6). Its callback will be called.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[in] aEnabled` TRUE if Thread is enabled, FALSE otherwise. Return Values `OT_ERROR_NONE` Successfully started Thread protocol operation. `OT_ERROR_INVALID_STATE` The network interface was not up.

### otThreadSetExtendedPanId

```
otError otThreadSetExtendedPanId(
  otInstance *aInstance,
  const otExtendedPanId *aExtendedPanId
)
```
Sets the IEEE 802.15.4 Extended PAN ID.


> [!NOTE]
> **Note:** Can only be called while Thread protocols are disabled. A successful call to this function invalidates the Active and Pending Operational Datasets in non-volatile memory.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[in] aExtendedPanId` A pointer to the IEEE 802.15.4 Extended PAN ID. Return Values `OT_ERROR_NONE` Successfully set the Extended PAN ID. `OT_ERROR_INVALID_STATE` Thread protocols are enabled. **See also:**   
[otThreadGetExtendedPanId](https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gad9fd1dbbe8ce2f3a3958ba7c78bf8af8)   

### otThreadSetJoinerAdvertisement

```
otError otThreadSetJoinerAdvertisement(
  otInstance *aInstance,
  uint32_t aOui,
  const uint8_t *aAdvData,
  uint8_t aAdvDataLength
)
```
Sets the Thread Joiner Advertisement used when discovering a Thread network.

Requires `OPENTHREAD_CONFIG_JOINER_ADV_EXPERIMENTAL_ENABLE`.

<br />

> [!NOTE]
> **Note:** This is an experimental feature and is not part of the Thread specification. OpenThread's implementation is partial: it provides the mechanism for a Joiner to include a new Joiner Adv TLV in its emitted Discovery Scan Request messages, but does not include the corresponding logic for the receiver of Scan Request to read or parse this TLV.

A Joiner can use this to advertise its own application-specific information (such as Vendor ID, Product ID, Discriminator, etc.) using a newly proposed Joiner Advertisement TLV (`OT_MESHCOP_TLV_JOINERADVERTISEMENT`). This TLV is appended as a sub-TLV within the MLE Discovery TLV in an MLE Discovery Scan Request message.

<br />

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[in] aOui` The Vendor IEEE OUI value that will be included in the Joiner Advertisement. Only the least significant 3 bytes will be used, and the most significant byte will be ignored. `[in] aAdvData` A pointer to the AdvData that will be included in the Joiner Advertisement. `[in] aAdvDataLength` The length of AdvData in bytes. Must not exceed `OT_JOINER_ADVDATA_MAX_LENGTH`. Return Values `OT_ERROR_NONE` Successfully set Joiner Advertisement. `OT_ERROR_INVALID_ARGS` Invalid AdvData.

### otThreadSetKeySequenceCounter

```
void otThreadSetKeySequenceCounter(
  otInstance *aInstance,
  uint32_t aKeySequenceCounter
)
```
Sets the thrKeySequenceCounter.


> [!NOTE]
> **Note:** This API is reserved for testing and demo purposes only. Changing settings with this API will render a production application non-compliant with the Thread Specification.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[in] aKeySequenceCounter` The thrKeySequenceCounter value. **See also:**   
[otThreadGetKeySequenceCounter](https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gaa008a54002f4e337e3ad14db1da1de5f)   

### otThreadSetKeySwitchGuardTime

```
void otThreadSetKeySwitchGuardTime(
  otInstance *aInstance,
  uint16_t aKeySwitchGuardTime
)
```
Sets the thrKeySwitchGuardTime (in hours).


> [!NOTE]
> **Note:** This API is reserved for testing and demo purposes only. Changing settings with this API will render a production application non-compliant with the Thread Specification.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[in] aKeySwitchGuardTime` The thrKeySwitchGuardTime value (in hours). **See also:**   
[otThreadGetKeySwitchGuardTime](https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gaf48470d150108c1f2f6538d703b85761)   

### otThreadSetLinkMode

```
otError otThreadSetLinkMode(
  otInstance *aInstance,
  otLinkModeConfig aConfig
)
```
Set the MLE Link Mode configuration.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[in] aConfig` A pointer to the Link Mode configuration. Return Values `OT_ERROR_NONE` Successfully set the MLE Link Mode configuration. **See also:**   
[otThreadGetLinkMode](https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gac802d68e457142652dd38a755ca9c04a)   

### otThreadSetMeshLocalPrefix

```
otError otThreadSetMeshLocalPrefix(
  otInstance *aInstance,
  const otMeshLocalPrefix *aMeshLocalPrefix
)
```
Sets the Mesh Local Prefix.

Succeeds only when Thread protocols are disabled. A successful call to this function invalidates the Active and Pending Operational Datasets in non-volatile memory.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[in] aMeshLocalPrefix` A pointer to the Mesh Local Prefix. Return Values `OT_ERROR_NONE` Successfully set the Mesh Local Prefix. `OT_ERROR_INVALID_STATE` Thread protocols are enabled.

### otThreadSetNetworkKey

```
otError otThreadSetNetworkKey(
  otInstance *aInstance,
  const otNetworkKey *aKey
)
```
Set the Thread Network Key.

Succeeds only when Thread protocols are disabled. A successful call to this function invalidates the Active and Pending Operational Datasets in non-volatile memory.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[in] aKey` A pointer to a buffer containing the Thread Network Key. Return Values `OT_ERROR_NONE` Successfully set the Thread Network Key. `OT_ERROR_INVALID_STATE` Thread protocols are enabled. **See also:**   
[otThreadGetNetworkKey](https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga66892041d2c2a267f37a427e5f7d1fdb)   

### otThreadSetNetworkKeyRef

```
otError otThreadSetNetworkKeyRef(
  otInstance *aInstance,
  otNetworkKeyRef aKeyRef
)
```
Set the Thread Network Key as a `otNetworkKeyRef`.

Succeeds only when Thread protocols are disabled. A successful call to this function invalidates the Active and Pending Operational Datasets in non-volatile memory.

Requires the build-time feature `OPENTHREAD_CONFIG_PLATFORM_KEY_REFERENCES_ENABLE` to be enabled.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[in] aKeyRef` Reference to the Thread Network Key. Return Values `OT_ERROR_NONE` Successfully set the Thread Network Key. `OT_ERROR_INVALID_STATE` Thread protocols are enabled. **See also:**   
[otThreadGetNetworkKeyRef](https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gafa2b3c63e93492242b9d452036359638)   

### otThreadSetNetworkName

```
otError otThreadSetNetworkName(
  otInstance *aInstance,
  const char *aNetworkName
)
```
Set the Thread Network Name.

Succeeds only when Thread protocols are disabled. A successful call to this function invalidates the Active and Pending Operational Datasets in non-volatile memory.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[in] aNetworkName` A pointer to the Thread Network Name. Return Values `OT_ERROR_NONE` Successfully set the Thread Network Name. `OT_ERROR_INVALID_STATE` Thread protocols are enabled. **See also:**   
[otThreadGetNetworkName](https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1gac4e8ad0c332a142c823d2e3357a38f7d)   

### otThreadSetNonPreferredChannels

```
void otThreadSetNonPreferredChannels(
  otInstance *aInstance,
  otChannelMask aChannelMask
)
```
Sets the non-preferred channels value for `OT_NETWORK_DIAGNOSTIC_TLV_NON_PREFERRED_CHANNELS` TLV.

This value is used to respond to a Network Diagnostic Get request for this TLV.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[in] aChannelMask` A channel mask specifying the non-preferred channels.

### otThreadSetNonPreferredChannelsResetCallback

```
void otThreadSetNonPreferredChannelsResetCallback(
  otInstance *aInstance,
  otThreadNonPreferredChannelsResetCallback aCallback,
  void *aContext
)
```
Sets the callback to notify when a Network Diagnostic Reset request message is received for the `OT_NETWORK_DIAGNOSTIC_TLV_NON_PREFERRED_CHANNELS` TLV.

A subsequent call to this function will replace the previously set callback.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[in] aCallback` The callback function pointer. Can be NULL. `[in] aContext` A pointer to application-specific context used with `aCallback`.

### otThreadSetStoreFrameCounterAhead

```
void otThreadSetStoreFrameCounterAhead(
  otInstance *aInstance,
  uint32_t aStoreFrameCounterAhead
)
```
Sets the store frame counter ahead.

Requires `OPENTHREAD_CONFIG_DYNAMIC_STORE_FRAME_AHEAD_COUNTER_ENABLE` to be enabled.

The OpenThread stack stores the MLE and MAC security frame counter values in non-volatile storage, ensuring they persist across device resets. These saved values are set to be ahead of their current values by the "frame counter ahead" value.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[in] aStoreFrameCounterAhead` The store frame counter ahead to set.

### otThreadSetVendorAppUrl

```
otError otThreadSetVendorAppUrl(
  otInstance *aInstance,
  const char *aVendorAppUrl
)
```
Set the vendor app URL string.

Requires `OPENTHREAD_CONFIG_NET_DIAG_VENDOR_INFO_SET_API_ENABLE`.

`aVendorAppUrl` should be UTF8 with max length of 64 chars (`MAX_VENDOR_APPL_URL_TLV_LENGTH`). Maximum length does not include the null `\0` character.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[in] aVendorAppUrl` The vendor app URL string. Return Values `OT_ERROR_NONE` Successfully set the vendor app URL string. `OT_ERROR_INVALID_ARGS` `aVendorAppUrl` is not valid (too long or not UTF8).

### otThreadSetVendorModel

```
otError otThreadSetVendorModel(
  otInstance *aInstance,
  const char *aVendorModel
)
```
Set the vendor model string.

Requires `OPENTHREAD_CONFIG_NET_DIAG_VENDOR_INFO_SET_API_ENABLE`.

`aVendorModel` should be UTF8 with max length of 32 chars (`MAX_VENDOR_MODEL_TLV_LENGTH`). Maximum length does not include the null `\0` character.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[in] aVendorModel` The vendor model string. Return Values `OT_ERROR_NONE` Successfully set the vendor model. `OT_ERROR_INVALID_ARGS` `aVendorModel` is not valid (too long or not UTF8).

### otThreadSetVendorName

```
otError otThreadSetVendorName(
  otInstance *aInstance,
  const char *aVendorName
)
```
Set the vendor name string.

Requires `OPENTHREAD_CONFIG_NET_DIAG_VENDOR_INFO_SET_API_ENABLE`.

`aVendorName` should be UTF8 with max length of 32 chars (`MAX_VENDOR_NAME_TLV_LENGTH`). Maximum length does not include the null `\0` character.

If `OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE` is enabled, `aVendorName` must start with the "RD:" prefix. This is enforced to ensure reference devices are identifiable. If `aVendorName` does not follow this pattern, the name is rejected, and `OT_ERROR_INVALID_ARGS` is returned.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[in] aVendorName` The vendor name string. Return Values `OT_ERROR_NONE` Successfully set the vendor name. `OT_ERROR_INVALID_ARGS` `aVendorName` is not valid. It is too long, is not UTF-8, or does not start with the "RD:" prefix when `OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE` is enabled.

### otThreadSetVendorOui

```
otError otThreadSetVendorOui(
  otInstance *aInstance,
  uint32_t aVendorOui
)
```
Sets the vendor OUI-24.

**[Deprecated.](https://openthread.io/reference/deprecated/deprecated)** This function is deprecated. Use `https://openthread.io/reference/group/api-thread-general#group__api-thread-general_1ga5b1317faad6cf6de3fc64dbb403a8466` instead.

Requires `OPENTHREAD_CONFIG_NET_DIAG_VENDOR_INFO_SET_API_ENABLE`.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[in] aVendorOui` The vendor OUI-24 value in Hexadecimal representation (e.g., OUI 64-16-66 is represented as `0x641666`). Must be a 24-bit value. Return Values `OT_ERROR_NONE` Successfully set the vendor OUI. `OT_ERROR_INVALID_ARGS` `aVendorOui` is not a valid 24-bit value.

### otThreadSetVendorOuiInfo

```
otError otThreadSetVendorOuiInfo(
  otInstance *aInstance,
  const otThreadVendorOui *aOui
)
```
Sets the vendor OUI.

Requires `OPENTHREAD_CONFIG_NET_DIAG_VENDOR_INFO_SET_API_ENABLE`.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[in] aOui` A pointer to the `https://openthread.io/reference/struct/ot-thread-vendor-oui` to set. Return Values `OT_ERROR_NONE` Successfully set the vendor OUI. `OT_ERROR_INVALID_ARGS` `aOui` has an invalid length.

### otThreadSetVendorSwVersion

```
otError otThreadSetVendorSwVersion(
  otInstance *aInstance,
  const char *aVendorSwVersion
)
```
Set the vendor software version string.

Requires `OPENTHREAD_CONFIG_NET_DIAG_VENDOR_INFO_SET_API_ENABLE`.

`aVendorSwVersion` should be UTF8 with max length of 16 chars(`MAX_VENDOR_SW_VERSION_TLV_LENGTH`). Maximum length does not include the null `\0` character.

<br />

Details Parameters `[in] aInstance` A pointer to an OpenThread instance. `[in] aVendorSwVersion` The vendor software version string. Return Values `OT_ERROR_NONE` Successfully set the vendor software version. `OT_ERROR_INVALID_ARGS` `aVendorSwVersion` is not valid (too long or not UTF8).

### otThreadVendorOuiToString

```
void otThreadVendorOuiToString(
  const otThreadVendorOui *aOui,
  char *aBuffer,
  uint16_t aSize
)
```
Converts a given vendor OUI to a human-readable string.

The generated string format is hyphen-separated uppercase hexadecimal bytes (e.g., "00-1A-2B" for a 24-bit OUI). For 28-bit and 36-bit OUIs, the trailing 4-bit nibble is appended as a single hexadecimal digit (e.g., "00-1A-2B-3" for a 28-bit OUI). If `aOui` is invalid or unspecified, the string "unspecified" is returned.

If the resulting string does not fit in `aBuffer` (within its `aSize` characters), the string will be truncated but the outputted string is always null-terminated.

<br />

Details Parameters `[in] aOui` The vendor OUI to convert. `[out] aBuffer` A pointer to a char array to output the string (MUST NOT be NULL). `[in] aSize` The size of `aBuffer` (in bytes). Recommended to use `OT_THREAD_VENDOR_OUI_STRING_SIZE`.

## Macros

### OT_DURATION_STRING_SIZE

```
 OT_DURATION_STRING_SIZE 21
```
Recommended size for string representation of `uint32_t` duration in seconds.

### OT_JOINER_ADVDATA_MAX_LENGTH

```
 OT_JOINER_ADVDATA_MAX_LENGTH 64
```
Maximum AdvData Length of Joiner Advertisement.

### OT_NEIGHBOR_INFO_ITERATOR_INIT

```
 OT_NEIGHBOR_INFO_ITERATOR_INIT 0
```
Initializer for otNeighborInfoIterator.

### OT_NETWORK_BASE_TLV_MAX_LENGTH

```
 OT_NETWORK_BASE_TLV_MAX_LENGTH 254
```
Maximum value length of Thread Base TLV.

### OT_NETWORK_DATA_ITERATOR_INIT

```
 OT_NETWORK_DATA_ITERATOR_INIT 0
```
Value to initialize `otNetworkDataIterator`.

### OT_NETWORK_DIAGNOSTIC_ITERATOR_INIT

```
 OT_NETWORK_DIAGNOSTIC_ITERATOR_INIT 0
```
Initializer for `otNetworkDiagIterator`.

### OT_NETWORK_DIAGNOSTIC_MAX_THREAD_STACK_VERSION_TLV_LENGTH

```
 OT_NETWORK_DIAGNOSTIC_MAX_THREAD_STACK_VERSION_TLV_LENGTH 64
```
Max length of Thread Stack Version TLV.

### OT_NETWORK_DIAGNOSTIC_MAX_VENDOR_APP_URL_TLV_LENGTH

```
 OT_NETWORK_DIAGNOSTIC_MAX_VENDOR_APP_URL_TLV_LENGTH 96
```
Max length of Vendor App URL TLV.

### OT_NETWORK_DIAGNOSTIC_MAX_VENDOR_MODEL_TLV_LENGTH

```
 OT_NETWORK_DIAGNOSTIC_MAX_VENDOR_MODEL_TLV_LENGTH 32
```
Max length of Vendor Model TLV.

### OT_NETWORK_DIAGNOSTIC_MAX_VENDOR_NAME_TLV_LENGTH

```
 OT_NETWORK_DIAGNOSTIC_MAX_VENDOR_NAME_TLV_LENGTH 32
```
Max length of Vendor Name TLV.

### OT_NETWORK_DIAGNOSTIC_MAX_VENDOR_SW_VERSION_TLV_LENGTH

```
 OT_NETWORK_DIAGNOSTIC_MAX_VENDOR_SW_VERSION_TLV_LENGTH 16
```
Max length of Vendor SW Version TLV.

### OT_NETWORK_DIAGNOSTIC_TLV_ANSWER

```
 OT_NETWORK_DIAGNOSTIC_TLV_ANSWER 32
```
Answer TLV.

### OT_NETWORK_DIAGNOSTIC_TLV_BATTERY_LEVEL

```
 OT_NETWORK_DIAGNOSTIC_TLV_BATTERY_LEVEL 14
```
Battery Level TLV.

### OT_NETWORK_DIAGNOSTIC_TLV_BR_DHCP6_PD_OMR_PREFIX

```
 OT_NETWORK_DIAGNOSTIC_TLV_BR_DHCP6_PD_OMR_PREFIX 41
```
Border Router DHCPv6-PD OMR Prefix TLV.

### OT_NETWORK_DIAGNOSTIC_TLV_BR_FAVORED_OL_PREFIX

```
 OT_NETWORK_DIAGNOSTIC_TLV_BR_FAVORED_OL_PREFIX 43
```
Border Router Favored On-link Prefix TLV.

### OT_NETWORK_DIAGNOSTIC_TLV_BR_IF_ADDRS

```
 OT_NETWORK_DIAGNOSTIC_TLV_BR_IF_ADDRS 39
```
Border Router Infra Interface Addresses TLV.

### OT_NETWORK_DIAGNOSTIC_TLV_BR_LOCAL_OL_PREFIX

```
 OT_NETWORK_DIAGNOSTIC_TLV_BR_LOCAL_OL_PREFIX 42
```
Border Router Local On-link Prefix TLV.

### OT_NETWORK_DIAGNOSTIC_TLV_BR_LOCAL_OMR_PREFIX

```
 OT_NETWORK_DIAGNOSTIC_TLV_BR_LOCAL_OMR_PREFIX 40
```
Border Router Local OMR Prefix TLV.

### OT_NETWORK_DIAGNOSTIC_TLV_BR_STATE

```
 OT_NETWORK_DIAGNOSTIC_TLV_BR_STATE 38
```
Border Router State TLV.

### OT_NETWORK_DIAGNOSTIC_TLV_CHANNEL_PAGES

```
 OT_NETWORK_DIAGNOSTIC_TLV_CHANNEL_PAGES 17
```
Channel Pages TLV.

### OT_NETWORK_DIAGNOSTIC_TLV_CHILD

```
 OT_NETWORK_DIAGNOSTIC_TLV_CHILD 29
```
Child TLV.

### OT_NETWORK_DIAGNOSTIC_TLV_CHILD_IP6_ADDR_LIST

```
 OT_NETWORK_DIAGNOSTIC_TLV_CHILD_IP6_ADDR_LIST 30
```
Child IPv6 Address List TLV.

### OT_NETWORK_DIAGNOSTIC_TLV_CHILD_TABLE

```
 OT_NETWORK_DIAGNOSTIC_TLV_CHILD_TABLE 16
```
Child Table TLV.

### OT_NETWORK_DIAGNOSTIC_TLV_CONNECTIVITY

```
 OT_NETWORK_DIAGNOSTIC_TLV_CONNECTIVITY 4
```
Connectivity TLV.

### OT_NETWORK_DIAGNOSTIC_TLV_ENHANCED_ROUTE

```
 OT_NETWORK_DIAGNOSTIC_TLV_ENHANCED_ROUTE 37
```
Enhanced Route TLV.

### OT_NETWORK_DIAGNOSTIC_TLV_EUI64

```
 OT_NETWORK_DIAGNOSTIC_TLV_EUI64 23
```
EUI64 TLV.

### OT_NETWORK_DIAGNOSTIC_TLV_EXT_ADDRESS

```
 OT_NETWORK_DIAGNOSTIC_TLV_EXT_ADDRESS 0
```
MAC Extended Address TLV.

### OT_NETWORK_DIAGNOSTIC_TLV_IP6_ADDR_LIST

```
 OT_NETWORK_DIAGNOSTIC_TLV_IP6_ADDR_LIST 8
```
IPv6 Address List TLV.

### OT_NETWORK_DIAGNOSTIC_TLV_LEADER_DATA

```
 OT_NETWORK_DIAGNOSTIC_TLV_LEADER_DATA 6
```
Leader Data TLV.

### OT_NETWORK_DIAGNOSTIC_TLV_MAC_COUNTERS

```
 OT_NETWORK_DIAGNOSTIC_TLV_MAC_COUNTERS 9
```
MAC Counters TLV.

### OT_NETWORK_DIAGNOSTIC_TLV_MAX_CHILD_TIMEOUT

```
 OT_NETWORK_DIAGNOSTIC_TLV_MAX_CHILD_TIMEOUT 19
```
Max Child Timeout TLV.

### OT_NETWORK_DIAGNOSTIC_TLV_MLE_COUNTERS

```
 OT_NETWORK_DIAGNOSTIC_TLV_MLE_COUNTERS 34
```
MLE Counters TLV.

### OT_NETWORK_DIAGNOSTIC_TLV_MODE

```
 OT_NETWORK_DIAGNOSTIC_TLV_MODE 2
```
Mode TLV.

### OT_NETWORK_DIAGNOSTIC_TLV_NETWORK_DATA

```
 OT_NETWORK_DIAGNOSTIC_TLV_NETWORK_DATA 7
```
Network Data TLV.

### OT_NETWORK_DIAGNOSTIC_TLV_NON_PREFERRED_CHANNELS

```
 OT_NETWORK_DIAGNOSTIC_TLV_NON_PREFERRED_CHANNELS 36
```
Non-Preferred Channels Mask TLV.

### OT_NETWORK_DIAGNOSTIC_TLV_QUERY_ID

```
 OT_NETWORK_DIAGNOSTIC_TLV_QUERY_ID 33
```
Query ID TLV.

### OT_NETWORK_DIAGNOSTIC_TLV_ROUTE

```
 OT_NETWORK_DIAGNOSTIC_TLV_ROUTE 5
```
Route64 TLV.

### OT_NETWORK_DIAGNOSTIC_TLV_ROUTER_NEIGHBOR

```
 OT_NETWORK_DIAGNOSTIC_TLV_ROUTER_NEIGHBOR 31
```
Router Neighbor TLV.

### OT_NETWORK_DIAGNOSTIC_TLV_SHORT_ADDRESS

```
 OT_NETWORK_DIAGNOSTIC_TLV_SHORT_ADDRESS 1
```
Address16 TLV.

### OT_NETWORK_DIAGNOSTIC_TLV_SUPPLY_VOLTAGE

```
 OT_NETWORK_DIAGNOSTIC_TLV_SUPPLY_VOLTAGE 15
```
Supply Voltage TLV.

### OT_NETWORK_DIAGNOSTIC_TLV_THREAD_STACK_VERSION

```
 OT_NETWORK_DIAGNOSTIC_TLV_THREAD_STACK_VERSION 28
```
Thread Stack Version TLV (codebase/commit version)

### OT_NETWORK_DIAGNOSTIC_TLV_TIMEOUT

```
 OT_NETWORK_DIAGNOSTIC_TLV_TIMEOUT 3
```
Timeout TLV (max polling time period for SEDs)

### OT_NETWORK_DIAGNOSTIC_TLV_TYPE_LIST

```
 OT_NETWORK_DIAGNOSTIC_TLV_TYPE_LIST 18
```
Type List TLV.

### OT_NETWORK_DIAGNOSTIC_TLV_VENDOR_APP_URL

```
 OT_NETWORK_DIAGNOSTIC_TLV_VENDOR_APP_URL 35
```
Vendor App URL TLV.

### OT_NETWORK_DIAGNOSTIC_TLV_VENDOR_MODEL

```
 OT_NETWORK_DIAGNOSTIC_TLV_VENDOR_MODEL 26
```
Vendor Model TLV.

### OT_NETWORK_DIAGNOSTIC_TLV_VENDOR_NAME

```
 OT_NETWORK_DIAGNOSTIC_TLV_VENDOR_NAME 25
```
Vendor Name TLV.

### OT_NETWORK_DIAGNOSTIC_TLV_VENDOR_OUI

```
 OT_NETWORK_DIAGNOSTIC_TLV_VENDOR_OUI 44
```
Vendor OUI TLV.

### OT_NETWORK_DIAGNOSTIC_TLV_VENDOR_SW_VERSION

```
 OT_NETWORK_DIAGNOSTIC_TLV_VENDOR_SW_VERSION 27
```
Vendor SW Version TLV.

### OT_NETWORK_DIAGNOSTIC_TLV_VERSION

```
 OT_NETWORK_DIAGNOSTIC_TLV_VERSION 24
```
Thread Version TLV.

### OT_NETWORK_MAX_ROUTER_ID

```
 OT_NETWORK_MAX_ROUTER_ID 62
```
Maximum Router ID.

### OT_SERVER_DATA_MAX_SIZE

```
 OT_SERVER_DATA_MAX_SIZE 248
```
Max size of Server Data in bytes. Theoretical limit, practically much lower.

### OT_SERVICE_DATA_MAX_SIZE

```
 OT_SERVICE_DATA_MAX_SIZE 252
```
Max size of Service Data in bytes.

### OT_THREAD_UNSPECIFIED_VENDOR_OUI

```
 OT_THREAD_UNSPECIFIED_VENDOR_OUI (0xffffffff)
```
Represents an unspecified Vendor OUI.

### OT_THREAD_VENDOR_OUI_MAX_SIZE

```
 OT_THREAD_VENDOR_OUI_MAX_SIZE 5
```
Specifies the maximum size of a Thread Vendor OUI in bytes.

### OT_THREAD_VENDOR_OUI_MA_L_BIT_LENGTH

```
 OT_THREAD_VENDOR_OUI_MA_L_BIT_LENGTH 24
```
Specifies the bit length of a MAC Address Block Large (MA-L) Vendor OUI.

### OT_THREAD_VENDOR_OUI_MA_M_BIT_LENGTH

```
 OT_THREAD_VENDOR_OUI_MA_M_BIT_LENGTH 28
```
Specifies the bit length of a MAC Address Block Medium (MA-M) Vendor OUI.

### OT_THREAD_VENDOR_OUI_MA_S_BIT_LENGTH

```
 OT_THREAD_VENDOR_OUI_MA_S_BIT_LENGTH 36
```
Specifies the bit length of a MAC Address Block Small (MA-S) Vendor OUI.

### OT_THREAD_VENDOR_OUI_STRING_SIZE

```
 OT_THREAD_VENDOR_OUI_STRING_SIZE 16
```
Recommended size for string representation of a vendor OUI.

### OT_THREAD_VERSION_1_1

```
 OT_THREAD_VERSION_1_1 2
```
Thread Version 1.1.

### OT_THREAD_VERSION_1_2

```
 OT_THREAD_VERSION_1_2 3
```
Thread Version 1.2.

### OT_THREAD_VERSION_1_3

```
 OT_THREAD_VERSION_1_3 4
```
Thread Version 1.3.

### OT_THREAD_VERSION_1_3_1

```
 OT_THREAD_VERSION_1_3_1 5
```
Thread Version 1.3.1 (alias for 1.4)

### OT_THREAD_VERSION_1_4

```
 OT_THREAD_VERSION_1_4 5
```
Thread Version 1.4.

### OT_THREAD_VERSION_INVALID

```
 OT_THREAD_VERSION_INVALID 0
```
Invalid Thread version.

## Resources

OpenThread API Reference topics originate from the source code, available
on [GitHub](https://github.com/openthread/openthread/tree/main/include/openthread).
For more information, or to contribute to our documentation, refer to
[Resources](https://openthread.io/resources).