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.

Enumerations

anonymous enum{
  OT_NETWORK_DIAGNOSTIC_TLV_EXT_ADDRESS = 0,
  OT_NETWORK_DIAGNOSTIC_TLV_SHORT_ADDRESS = 1,
  OT_NETWORK_DIAGNOSTIC_TLV_MODE = 2,
  OT_NETWORK_DIAGNOSTIC_TLV_TIMEOUT = 3,
  OT_NETWORK_DIAGNOSTIC_TLV_CONNECTIVITY = 4,
  OT_NETWORK_DIAGNOSTIC_TLV_ROUTE = 5,
  OT_NETWORK_DIAGNOSTIC_TLV_LEADER_DATA = 6,
  OT_NETWORK_DIAGNOSTIC_TLV_NETWORK_DATA = 7,
  OT_NETWORK_DIAGNOSTIC_TLV_IP6_ADDR_LIST = 8,
  OT_NETWORK_DIAGNOSTIC_TLV_MAC_COUNTERS = 9,
  OT_NETWORK_DIAGNOSTIC_TLV_BATTERY_LEVEL = 14,
  OT_NETWORK_DIAGNOSTIC_TLV_SUPPLY_VOLTAGE = 15,
  OT_NETWORK_DIAGNOSTIC_TLV_CHILD_TABLE = 16,
  OT_NETWORK_DIAGNOSTIC_TLV_CHANNEL_PAGES = 17,
  OT_NETWORK_DIAGNOSTIC_TLV_TYPE_LIST = 18,
  OT_NETWORK_DIAGNOSTIC_TLV_MAX_CHILD_TIMEOUT = 19,
  OT_NETWORK_DIAGNOSTIC_TLV_VERSION = 24,
  OT_NETWORK_DIAGNOSTIC_TLV_VENDOR_NAME = 25,
  OT_NETWORK_DIAGNOSTIC_TLV_VENDOR_MODEL = 26,
  OT_NETWORK_DIAGNOSTIC_TLV_VENDOR_SW_VERSION = 27,
  OT_NETWORK_DIAGNOSTIC_TLV_THREAD_STACK_VERSION = 28
}
enum
otDeviceRole{
  OT_DEVICE_ROLE_DISABLED = 0,
  OT_DEVICE_ROLE_DETACHED = 1,
  OT_DEVICE_ROLE_CHILD = 2,
  OT_DEVICE_ROLE_ROUTER = 3,
  OT_DEVICE_ROLE_LEADER = 4
}
enum
Represents a Thread device role.
otNetDataPublisherEvent{
  OT_NETDATA_PUBLISHER_EVENT_ENTRY_ADDED = 0,
  OT_NETDATA_PUBLISHER_EVENT_ENTRY_REMOVED = 1
}
enum
Represents the events reported from the Publisher callbacks.
otRoutePreference{
  OT_ROUTE_PREFERENCE_LOW = -1,
  OT_ROUTE_PREFERENCE_MED = 0,
  OT_ROUTE_PREFERENCE_HIGH = 1
}
enum
Defines valid values for mPreference in otExternalRouteConfig and otBorderRouterConfig.

Typedefs

otBorderRouterConfig typedef
Represents a Border Router configuration.
otDetachGracefullyCallback)(void *aContext) typedef
void(*
This callback informs the application that the detaching process has finished.
otExternalRouteConfig typedef
Represents an External Route configuration.
otIpCounters typedef
struct otIpCounters
Represents the IP level counters.
otLeaderData typedef
struct otLeaderData
Represents the Thread Leader Data.
otLinkModeConfig typedef
Represents an MLE Link Mode configuration.
otLowpanContextInfo typedef
Represents 6LoWPAN Context ID information associated with a prefix in Network Data.
otMleCounters typedef
struct otMleCounters
Represents the Thread MLE counters.
otNeighborInfoIterator typedef
int16_t
Used to iterate through neighbor table.
otNetDataDnsSrpServicePublisherCallback)(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.
otNetDataPrefixPublisherCallback)(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.
otNetDataPublisherEvent typedef
Represents the events reported from the Publisher callbacks.
otNetworkDataIterator typedef
uint32_t
Used to iterate through Network Data information.
otNetworkDiagChildEntry typedef
Represents a Network Diagnostic Child Table Entry.
otNetworkDiagConnectivity typedef
Represents a Network Diagnostic Connectivity value.
otNetworkDiagIterator typedef
uint16_t
Used to iterate through Network Diagnostic TLV.
otNetworkDiagMacCounters typedef
Represents a Network Diagnostic Mac Counters value.
otNetworkDiagRoute typedef
Represents a Network Diagnostic Route TLV value.
otNetworkDiagRouteData typedef
Represents a Network Diagnostic Route data.
otNetworkDiagTlv typedef
Represents a Network Diagnostic TLV.
otReceiveDiagnosticGetCallback)(otError aError, otMessage *aMessage, const otMessageInfo *aMessageInfo, void *aContext) typedef
void(*
Pointer is called when Network Diagnostic Get response is received.
otRoutePreference typedef
Defines valid values for mPreference in otExternalRouteConfig and otBorderRouterConfig.
otServerConfig typedef
Represents a Server configuration.
otServiceConfig typedef
Represents a Service configuration.
otThreadAnycastLocatorCallback)(void *aContext, otError aError, const otIp6Address *aMeshLocalAddress, uint16_t aRloc16) typedef
void(*
Pointer type defines the callback to notify the outcome of a otThreadLocateAnycastDestination() request.
otThreadDiscoveryRequestCallback)(const otThreadDiscoveryRequestInfo *aInfo, void *aContext) typedef
void(*
Pointer is called every time an MLE Discovery Request message is received.
otThreadDiscoveryRequestInfo typedef
Represents the Thread Discovery Request data.
otThreadParentResponseCallback)(otThreadParentResponseInfo *aInfo, void *aContext) typedef
void(*
Pointer is called every time an MLE Parent Response message is received.
otThreadParentResponseInfo typedef
Represents the MLE Parent Response data.

Functions

otConvertDurationInSecondsToString(uint32_t aDuration, char *aBuffer, uint16_t aSize)
void
Converts an uint32_t duration (in seconds) to a human-readable string.
otNetDataContainsOmrPrefix(otInstance *aInstance, const otIp6Prefix *aPrefix)
bool
Check whether a given Prefix can act as a valid OMR prefix and also the Leader's Network Data contains this prefix.
otNetDataGet(otInstance *aInstance, bool aStable, uint8_t *aData, uint8_t *aDataLength)
Provide full or stable copy of the Partition's Thread Network Data.
otNetDataGetLength(otInstance *aInstance)
uint8_t
Get the current length (number of bytes) of Partition's Thread Network Data.
otNetDataGetMaxLength(otInstance *aInstance)
uint8_t
Get the maximum observed length of the Thread Network Data since OT stack initialization or since the last call to otNetDataResetMaxLength().
otNetDataGetNextLowpanContextInfo(otInstance *aInstance, otNetworkDataIterator *aIterator, otLowpanContextInfo *aContextInfo)
Get the next 6LoWPAN Context ID info in the partition's Network Data.
otNetDataGetNextOnMeshPrefix(otInstance *aInstance, otNetworkDataIterator *aIterator, otBorderRouterConfig *aConfig)
Get the next On Mesh Prefix in the partition's Network Data.
otNetDataGetNextRoute(otInstance *aInstance, otNetworkDataIterator *aIterator, otExternalRouteConfig *aConfig)
Get the next external route in the partition's Network Data.
otNetDataGetNextService(otInstance *aInstance, otNetworkDataIterator *aIterator, otServiceConfig *aConfig)
Get the next service in the partition's Network Data.
otNetDataGetStableVersion(otInstance *aInstance)
uint8_t
Get the Stable Network Data Version.
otNetDataGetVersion(otInstance *aInstance)
uint8_t
Get the Network Data Version.
otNetDataIsDnsSrpServiceAdded(otInstance *aInstance)
bool
Indicates whether or not currently the "DNS/SRP Service" entry is added to the Thread Network Data.
otNetDataIsPrefixAdded(otInstance *aInstance, const otIp6Prefix *aPrefix)
bool
Indicates whether or not currently a published prefix entry (on-mesh or external route) is added to the Thread Network Data.
otNetDataPublishDnsSrpServiceAnycast(otInstance *aInstance, uint8_t aSequenceNUmber)
void
Requests "DNS/SRP Service Anycast Address" to be published in the Thread Network Data.
otNetDataPublishDnsSrpServiceUnicast(otInstance *aInstance, const otIp6Address *aAddress, uint16_t aPort)
void
Requests "DNS/SRP Service Unicast Address" to be published in the Thread Network Data.
otNetDataPublishDnsSrpServiceUnicastMeshLocalEid(otInstance *aInstance, uint16_t aPort)
void
Requests "DNS/SRP Service Unicast Address" to be published in the Thread Network Data.
otNetDataPublishExternalRoute(otInstance *aInstance, const otExternalRouteConfig *aConfig)
Requests an external route prefix to be published in the Thread Network Data.
otNetDataPublishOnMeshPrefix(otInstance *aInstance, const otBorderRouterConfig *aConfig)
Requests an on-mesh prefix to be published in the Thread Network Data.
otNetDataReplacePublishedExternalRoute(otInstance *aInstance, const otIp6Prefix *aPrefix, const otExternalRouteConfig *aConfig)
Replaces a previously published external route in the Thread Network Data.
otNetDataResetMaxLength(otInstance *aInstance)
void
Reset the tracked maximum length of the Thread Network Data.
otNetDataSetDnsSrpServicePublisherCallback(otInstance *aInstance, otNetDataDnsSrpServicePublisherCallback 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.
otNetDataSetPrefixPublisherCallback(otInstance *aInstance, otNetDataPrefixPublisherCallback 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.
otNetDataSteeringDataCheckJoiner(otInstance *aInstance, const otExtAddress *aEui64)
Check if the steering data includes a Joiner.
otNetDataSteeringDataCheckJoinerWithDiscerner(otInstance *aInstance, const struct otJoinerDiscerner *aDiscerner)
Check if the steering data includes a Joiner with a given discerner value.
otNetDataUnpublishDnsSrpService(otInstance *aInstance)
void
Unpublishes any previously added DNS/SRP (Anycast or Unicast) Service entry from the Thread Network Data.
otNetDataUnpublishPrefix(otInstance *aInstance, const otIp6Prefix *aPrefix)
Unpublishes a previously published On-Mesh or External Route Prefix.
otThreadBecomeChild(otInstance *aInstance)
Attempt to reattach as a child.
otThreadBecomeDetached(otInstance *aInstance)
Detach from the Thread network.
otThreadDetachGracefully(otInstance *aInstance, otDetachGracefullyCallback aCallback, void *aContext)
Notifies other nodes in the network (if any) and then stops Thread protocol operation.
otThreadDeviceRoleToString(otDeviceRole aRole)
const char *
Convert the device role to human-readable string.
otThreadDiscover(otInstance *aInstance, uint32_t aScanChannels, uint16_t aPanId, bool aJoiner, bool aEnableEui64Filtering, otHandleActiveScanResult aCallback, void *aCallbackContext)
Starts a Thread Discovery scan.
otThreadGetChildTimeout(otInstance *aInstance)
uint32_t
Gets the Thread Child Timeout (in seconds) used when operating in the Child role.
otThreadGetDeviceRole(otInstance *aInstance)
Get the device role.
otThreadGetDomainName(otInstance *aInstance)
const char *
Gets the Thread Domain Name.
otThreadGetExtendedPanId(otInstance *aInstance)
const otExtendedPanId *
Gets the IEEE 802.15.4 Extended PAN ID.
otThreadGetFixedDuaInterfaceIdentifier(otInstance *aInstance)
Gets the Interface Identifier manually specified for the Thread Domain Unicast Address.
otThreadGetIp6Counters(otInstance *aInstance)
const otIpCounters *
Gets the IPv6 counters.
otThreadGetKeySequenceCounter(otInstance *aInstance)
uint32_t
Gets the thrKeySequenceCounter.
otThreadGetKeySwitchGuardTime(otInstance *aInstance)
uint32_t
Gets the thrKeySwitchGuardTime (in hours).
otThreadGetLeaderData(otInstance *aInstance, otLeaderData *aLeaderData)
Get the Thread Leader Data.
otThreadGetLeaderRloc(otInstance *aInstance, otIp6Address *aLeaderRloc)
Returns a pointer to the Leader's RLOC.
otThreadGetLeaderRouterId(otInstance *aInstance)
uint8_t
Get the Leader's Router ID.
otThreadGetLeaderWeight(otInstance *aInstance)
uint8_t
Get the Leader's Weight.
otThreadGetLinkLocalAllThreadNodesMulticastAddress(otInstance *aInstance)
const otIp6Address *
Gets the Thread Link-Local All Thread Nodes multicast address.
otThreadGetLinkLocalIp6Address(otInstance *aInstance)
const otIp6Address *
Gets the Thread link-local IPv6 address.
otThreadGetLinkMode(otInstance *aInstance)
Get the MLE Link Mode configuration.
otThreadGetMeshLocalEid(otInstance *aInstance)
const otIp6Address *
Gets the Mesh Local EID address.
otThreadGetMeshLocalPrefix(otInstance *aInstance)
Returns a pointer to the Mesh Local Prefix.
otThreadGetMleCounters(otInstance *aInstance)
const otMleCounters *
Gets the Thread MLE counters.
otThreadGetNetworkKey(otInstance *aInstance, otNetworkKey *aNetworkKey)
void
Get the Thread Network Key.
otThreadGetNetworkKeyRef(otInstance *aInstance)
Get the otNetworkKeyRef for Thread Network Key.
otThreadGetNetworkName(otInstance *aInstance)
const char *
Get the Thread Network Name.
otThreadGetNextDiagnosticTlv(const otMessage *aMessage, otNetworkDiagIterator *aIterator, otNetworkDiagTlv *aNetworkDiagTlv)
Gets the next Network Diagnostic TLV in the message.
otThreadGetNextNeighborInfo(otInstance *aInstance, otNeighborInfoIterator *aIterator, otNeighborInfo *aInfo)
Gets the next neighbor information.
otThreadGetParentAverageRssi(otInstance *aInstance, int8_t *aParentRssi)
The function retrieves the average RSSI for the Thread Parent.
otThreadGetParentInfo(otInstance *aInstance, otRouterInfo *aParentInfo)
The function retrieves diagnostic information for a Thread Router as parent.
otThreadGetParentLastRssi(otInstance *aInstance, int8_t *aLastRssi)
The function retrieves the RSSI of the last packet from the Thread Parent.
otThreadGetPartitionId(otInstance *aInstance)
uint32_t
Get the Partition ID.
otThreadGetRealmLocalAllThreadNodesMulticastAddress(otInstance *aInstance)
const otIp6Address *
Gets the Thread Realm-Local All Thread Nodes multicast address.
otThreadGetRloc(otInstance *aInstance)
const otIp6Address *
Gets the Thread Routing Locator (RLOC) address.
otThreadGetRloc16(otInstance *aInstance)
uint16_t
Get the RLOC16.
otThreadGetServiceAloc(otInstance *aInstance, uint8_t aServiceId, otIp6Address *aServiceAloc)
Retrieves the Service ALOC for given Service ID.
otThreadGetVendorModel(otInstance *aInstance)
const char *
Get the vendor model string.
otThreadGetVendorName(otInstance *aInstance)
const char *
Get the vendor name string.
otThreadGetVendorSwVersion(otInstance *aInstance)
const char *
Get the vendor sw version string.
otThreadGetVersion(void)
uint16_t
Gets the Thread protocol version.
otThreadIsAnycastLocateInProgress(otInstance *aInstance)
bool
Indicates whether an anycast locate request is currently in progress.
otThreadIsDiscoverInProgress(otInstance *aInstance)
bool
Determines if an MLE Thread Discovery is currently in progress.
otThreadIsSingleton(otInstance *aInstance)
bool
Indicates whether a node is the only router on the network.
otThreadLocateAnycastDestination(otInstance *aInstance, const otIp6Address *aAnycastAddress, otThreadAnycastLocatorCallback aCallback, void *aContext)
Requests the closest destination of a given anycast address to be located.
otThreadRegisterParentResponseCallback(otInstance *aInstance, otThreadParentResponseCallback aCallback, void *aContext)
void
Registers a callback to receive MLE Parent Response data.
otThreadResetIp6Counters(otInstance *aInstance)
void
Resets the IPv6 counters.
otThreadResetMleCounters(otInstance *aInstance)
void
Resets the Thread MLE counters.
otThreadSearchForBetterParent(otInstance *aInstance)
Starts the process for child to search for a better parent while staying attached to its current parent.
otThreadSendAddressNotification(otInstance *aInstance, otIp6Address *aDestination, otIp6Address *aTarget, otIp6InterfaceIdentifier *aMlIid)
void
Sends a Proactive Address Notification (ADDR_NTF.ntf) message.
otThreadSendDiagnosticGet(otInstance *aInstance, const otIp6Address *aDestination, const uint8_t aTlvTypes[], uint8_t aCount, otReceiveDiagnosticGetCallback aCallback, void *aCallbackContext)
Send a Network Diagnostic Get request.
otThreadSendDiagnosticReset(otInstance *aInstance, const otIp6Address *aDestination, const uint8_t aTlvTypes[], uint8_t aCount)
Send a Network Diagnostic Reset request.
otThreadSendProactiveBackboneNotification(otInstance *aInstance, otIp6Address *aTarget, otIp6InterfaceIdentifier *aMlIid, uint32_t aTimeSinceLastTransaction)
Sends a Proactive Backbone Notification (PRO_BB.ntf) message on the Backbone link.
otThreadSetChildTimeout(otInstance *aInstance, uint32_t aTimeout)
void
Sets the Thread Child Timeout (in seconds) used when operating in the Child role.
otThreadSetDiscoveryRequestCallback(otInstance *aInstance, otThreadDiscoveryRequestCallback aCallback, void *aContext)
void
Sets a callback to receive MLE Discovery Request data.
otThreadSetDomainName(otInstance *aInstance, const char *aDomainName)
Sets the Thread Domain Name.
otThreadSetEnabled(otInstance *aInstance, bool aEnabled)
Starts Thread protocol operation.
otThreadSetExtendedPanId(otInstance *aInstance, const otExtendedPanId *aExtendedPanId)
Sets the IEEE 802.15.4 Extended PAN ID.
otThreadSetFixedDuaInterfaceIdentifier(otInstance *aInstance, const otIp6InterfaceIdentifier *aIid)
Sets or clears the Interface Identifier manually specified for the Thread Domain Unicast Address.
otThreadSetJoinerAdvertisement(otInstance *aInstance, uint32_t aOui, const uint8_t *aAdvData, uint8_t aAdvDataLength)
Sets the Thread Joiner Advertisement when discovering Thread network.
otThreadSetKeySequenceCounter(otInstance *aInstance, uint32_t aKeySequenceCounter)
void
Sets the thrKeySequenceCounter.
otThreadSetKeySwitchGuardTime(otInstance *aInstance, uint32_t aKeySwitchGuardTime)
void
Sets the thrKeySwitchGuardTime (in hours).
otThreadSetLinkMode(otInstance *aInstance, otLinkModeConfig aConfig)
Set the MLE Link Mode configuration.
otThreadSetMeshLocalPrefix(otInstance *aInstance, const otMeshLocalPrefix *aMeshLocalPrefix)
Sets the Mesh Local Prefix.
otThreadSetNetworkKey(otInstance *aInstance, const otNetworkKey *aKey)
Set the Thread Network Key.
otThreadSetNetworkKeyRef(otInstance *aInstance, otNetworkKeyRef aKeyRef)
Set the Thread Network Key as a otNetworkKeyRef.
otThreadSetNetworkName(otInstance *aInstance, const char *aNetworkName)
Set the Thread Network Name.
otThreadSetVendorModel(otInstance *aInstance, const char *aVendorModel)
Set the vendor model string.
otThreadSetVendorName(otInstance *aInstance, const char *aVendorName)
Set the vendor name string.
otThreadSetVendorSwVersion(otInstance *aInstance, const char *aVendorSwVersion)
Set the vendor software version string.

Structs

otBorderRouterConfig

Represents a Border Router configuration.

otExternalRouteConfig

Represents an External Route configuration.

otIpCounters

Represents the IP level counters.

otLeaderData

Represents the Thread Leader Data.

otLinkModeConfig

Represents an MLE Link Mode configuration.

otLowpanContextInfo

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

otMleCounters

Represents the Thread MLE counters.

otNeighborInfo

Holds diagnostic information for a neighboring Thread node.

otNetworkDiagChildEntry

Represents a Network Diagnostic Child Table Entry.

otNetworkDiagConnectivity

Represents a Network Diagnostic Connectivity value.

otNetworkDiagMacCounters

Represents a Network Diagnostic Mac Counters value.

otNetworkDiagRoute

Represents a Network Diagnostic Route TLV value.

otNetworkDiagRouteData

Represents a Network Diagnostic Route data.

otNetworkDiagTlv

Represents a Network Diagnostic TLV.

otRouterInfo

Holds diagnostic information for a Thread Router.

otServerConfig

Represents a Server configuration.

otServiceConfig

Represents a Service configuration.

otThreadDiscoveryRequestInfo

Represents the Thread Discovery Request data.

otThreadParentResponseInfo

Represents the MLE Parent Response data.

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 otExternalRouteConfig and otBorderRouterConfig.

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.

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

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.

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.

otNetworkDiagChildEntry

struct otNetworkDiagChildEntry otNetworkDiagChildEntry

Represents a Network Diagnostic Child Table Entry.

otNetworkDiagConnectivity

struct otNetworkDiagConnectivity otNetworkDiagConnectivity

Represents a Network Diagnostic Connectivity 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 for definitions of member fields.

otNetworkDiagRoute

struct otNetworkDiagRoute otNetworkDiagRoute

Represents a Network Diagnostic Route 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.

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 otExternalRouteConfig and otBorderRouterConfig.

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 otThreadLocateAnycastDestination() request.

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.

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.

otThreadParentResponseCallback

void(* otThreadParentResponseCallback)(otThreadParentResponseInfo *aInfo, void *aContext)

Pointer is called every time an MLE Parent Response message is received.

This is used in otThreadRegisterParentResponseCallback().

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.

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

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 otNeighborInfo or otChildInfo structures.

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.

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.

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.

otNetDataGetLength

uint8_t otNetDataGetLength(
  otInstance *aInstance
)

Get the current length (number of bytes) of Partition's Thread Network Data.

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

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.

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.

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.

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.

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.

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.

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.

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.

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
)

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

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

otNetDataPublishDnsSrpServiceUnicast

void otNetDataPublishDnsSrpServiceUnicast(
  otInstance *aInstance,
  const otIp6Address *aAddress,
  uint16_t aPort
)

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.

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.

otNetDataPublishDnsSrpServiceUnicastMeshLocalEid

void otNetDataPublishDnsSrpServiceUnicastMeshLocalEid(
  otInstance *aInstance,
  uint16_t aPort
)

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

Details
Parameters
[in] aInstance
A pointer to an OpenThread instance.
[in] aPort
The SRP server port 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.

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.

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 otNetDataPublishExternalRoute(), 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).

Details
Parameters
[in] aPrefix
The previously published external route prefix to replace.
[in] aConfig
The external route config to publish.
[in] aRequester
The requester (kFromUser or kFromRoutingManager module).
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.

Details
Parameters
[in] aInstance
A pointer to an OpenThread instance.
See also:
otNetDataGetMaxLength

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

Details
Parameters
[in] aInstance
A pointer to an OpenThread instance.
Returns
The Thread Child Timeout value in seconds.
See also:
otThreadSetChildTimeout

otThreadGetDeviceRole

otDeviceRole otThreadGetDeviceRole(
  otInstance *aInstance
)

Get the device role.

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.

Details
Parameters
[in] aInstance
A pointer to an OpenThread instance.
Returns
A pointer to the Thread Domain Name.
See also:
otThreadSetDomainName

otThreadGetExtendedPanId

const otExtendedPanId * otThreadGetExtendedPanId(
  otInstance *aInstance
)

Gets the IEEE 802.15.4 Extended PAN ID.

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

otThreadGetFixedDuaInterfaceIdentifier

const otIp6InterfaceIdentifier * otThreadGetFixedDuaInterfaceIdentifier(
  otInstance *aInstance
)

Gets the Interface Identifier manually specified for the Thread Domain Unicast Address.

Available when OPENTHREAD_CONFIG_DUA_ENABLE is enabled.

Details
Parameters
[in] aInstance
A pointer to an OpenThread instance.
Returns
A pointer to the Interface Identifier which was set manually, or NULL if none was set.
See also:
otThreadSetFixedDuaInterfaceIdentifier

otThreadGetIp6Counters

const otIpCounters * otThreadGetIp6Counters(
  otInstance *aInstance
)

Gets the IPv6 counters.

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.

Details
Parameters
[in] aInstance
A pointer to an OpenThread instance.
Returns
The thrKeySequenceCounter value.
See also:
otThreadSetKeySequenceCounter

otThreadGetKeySwitchGuardTime

uint32_t otThreadGetKeySwitchGuardTime(
  otInstance *aInstance
)

Gets the thrKeySwitchGuardTime (in hours).

Details
Parameters
[in] aInstance
A pointer to an OpenThread instance.
Returns
The thrKeySwitchGuardTime value (in hours).
See also:
otThreadSetKeySwitchGuardTime

otThreadGetLeaderData

otError otThreadGetLeaderData(
  otInstance *aInstance,
  otLeaderData *aLeaderData
)

Get the Thread Leader Data.

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.

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.

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.

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

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.

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.

Details
Parameters
[in] aInstance
A pointer to an OpenThread instance.
Returns
The MLE Link Mode configuration.
See also:
otThreadSetLinkMode

otThreadGetMeshLocalEid

const otIp6Address * otThreadGetMeshLocalEid(
  otInstance *aInstance
)

Gets the Mesh Local EID address.

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.

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.

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

otThreadGetNetworkKey

void otThreadGetNetworkKey(
  otInstance *aInstance,
  otNetworkKey *aNetworkKey
)

Get the Thread Network Key.

Details
Parameters
[in] aInstance
A pointer to an OpenThread instance.
[out] aNetworkKey
A pointer to an otNetworkKey to return the Thread Network Key.
See also:
otThreadSetNetworkKey

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.

Details
Parameters
[in] aInstance
A pointer to an OpenThread instance.
Returns
Reference to the Thread Network Key stored in memory.
See also:
otThreadSetNetworkKeyRef

otThreadGetNetworkName

const char * otThreadGetNetworkName(
  otInstance *aInstance
)

Get the Thread Network Name.

Details
Parameters
[in] aInstance
A pointer to an OpenThread instance.
Returns
A pointer to the Thread Network Name.
See also:
otThreadSetNetworkName

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.

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.

otThreadGetParentAverageRssi

otError otThreadGetParentAverageRssi(
  otInstance *aInstance,
  int8_t *aParentRssi
)

The function retrieves the average RSSI for the Thread Parent.

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.

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.

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.

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

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.

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.

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.

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.

otThreadGetVendorModel

const char * otThreadGetVendorModel(
  otInstance *aInstance
)

Get the vendor model string.

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.

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

otThreadGetVendorSwVersion

const char * otThreadGetVendorSwVersion(
  otInstance *aInstance
)

Get the vendor sw version string.

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

otThreadGetVersion

uint16_t otThreadGetVersion(
  void
)

Gets the Thread protocol version.

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.

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.

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.

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.

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.

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.

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

otThreadResetMleCounters

void otThreadResetMleCounters(
  otInstance *aInstance
)

Resets the Thread MLE counters.

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.

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.

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.

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.

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.

otThreadSendProactiveBackboneNotification

otError otThreadSendProactiveBackboneNotification(
  otInstance *aInstance,
  otIp6Address *aTarget,
  otIp6InterfaceIdentifier *aMlIid,
  uint32_t aTimeSinceLastTransaction
)

Sends a Proactive Backbone Notification (PRO_BB.ntf) message on the Backbone link.

Is only available when OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE is enabled.

Details
Parameters
[in] aInstance
A pointer to an OpenThread instance.
[in] aTarget
The target address of the PRO_BB.ntf message.
[in] aMlIid
The ML-IID of the PRO_BB.ntf message.
[in] aTimeSinceLastTransaction
Time since last transaction (in seconds).
Return Values
OT_ERROR_NONE
Successfully sent PRO_BB.ntf on backbone link.
OT_ERROR_NO_BUFS
If insufficient message buffers available.

otThreadSetChildTimeout

void otThreadSetChildTimeout(
  otInstance *aInstance,
  uint32_t aTimeout
)

Sets the Thread Child Timeout (in seconds) used when operating in the Child role.

Details
Parameters
[in] aInstance
A pointer to an OpenThread instance.
[in] aTimeout
The timeout value in seconds.
See also:
otThreadGetChildTimeout

otThreadSetDiscoveryRequestCallback

void otThreadSetDiscoveryRequestCallback(
  otInstance *aInstance,
  otThreadDiscoveryRequestCallback aCallback,
  void *aContext
)

Sets a callback to receive MLE Discovery Request data.

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.

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

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(). Its callback will be called.

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

otThreadSetExtendedPanId

otError otThreadSetExtendedPanId(
  otInstance *aInstance,
  const otExtendedPanId *aExtendedPanId
)

Sets the IEEE 802.15.4 Extended PAN ID.

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

otThreadSetFixedDuaInterfaceIdentifier

otError otThreadSetFixedDuaInterfaceIdentifier(
  otInstance *aInstance,
  const otIp6InterfaceIdentifier *aIid
)

Sets or clears the Interface Identifier manually specified for the Thread Domain Unicast Address.

Available when OPENTHREAD_CONFIG_DUA_ENABLE is enabled.

Details
Parameters
[in] aInstance
A pointer to an OpenThread instance.
[in] aIid
A pointer to the Interface Identifier to set or NULL to clear.
Return Values
OT_ERROR_NONE
Successfully set/cleared the Interface Identifier.
OT_ERROR_INVALID_ARGS
The specified Interface Identifier is reserved.
See also:
otThreadGetFixedDuaInterfaceIdentifier

otThreadSetJoinerAdvertisement

otError otThreadSetJoinerAdvertisement(
  otInstance *aInstance,
  uint32_t aOui,
  const uint8_t *aAdvData,
  uint8_t aAdvDataLength
)

Sets the Thread Joiner Advertisement when discovering Thread network.

Thread Joiner Advertisement is used to allow a Joiner to advertise its own application-specific information (such as Vendor ID, Product ID, Discriminator, etc.) via a newly-proposed Joiner Advertisement TLV, and to make this information available to Commissioners or Commissioner Candidates without human interaction.

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

Details
Parameters
[in] aInstance
A pointer to an OpenThread instance.
[in] aKeySequenceCounter
The thrKeySequenceCounter value.
See also:
otThreadGetKeySequenceCounter

otThreadSetKeySwitchGuardTime

void otThreadSetKeySwitchGuardTime(
  otInstance *aInstance,
  uint32_t aKeySwitchGuardTime
)

Sets the thrKeySwitchGuardTime (in hours).

Details
Parameters
[in] aInstance
A pointer to an OpenThread instance.
[in] aKeySwitchGuardTime
The thrKeySwitchGuardTime value (in hours).
See also:
otThreadGetKeySwitchGuardTime

otThreadSetLinkMode

otError otThreadSetLinkMode(
  otInstance *aInstance,
  otLinkModeConfig aConfig
)

Set the MLE Link Mode configuration.

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

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.

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.

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

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.

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

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.

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

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.

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.

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 (too long or not UTF8).

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.

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

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_CHILD_TABLE_ENTRY_SIZE

 OT_NETWORK_DIAGNOSTIC_CHILD_TABLE_ENTRY_SIZE 3

Size of Network Diagnostic Child Table entry.

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_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_TYPELIST_MAX_ENTRIES

 OT_NETWORK_DIAGNOSTIC_TYPELIST_MAX_ENTRIES 19

Maximum Number of Network Diagnostic TLV Types to Request or Reset.

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.

Resources

OpenThread API Reference topics originate from the source code, available on GitHub. For more information, or to contribute to our documentation, refer to Resources.