General#

This module includes functions for all Thread roles.

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

  • The functions in this module require OPENTHREAD_FTD=1 or OPENTHREAD_MTD=1.

Modules#

otBorderRouterConfig

otLowpanContextInfo

otExternalRouteConfig

otServerConfig

otServiceConfig

otNetworkDiagConnectivity

otNetworkDiagRouteData

otNetworkDiagRoute

otNetworkDiagMacCounters

otNetworkDiagMleCounters

otNetworkDiagChildEntry

otNetworkDiagTlv

otLinkModeConfig

otNeighborInfo

otLeaderData

otRouterInfo

otIpCounters

otMleCounters

otThreadParentResponseInfo

otThreadDiscoveryRequestInfo

Enumerations#

enum
OT_ROUTE_PREFERENCE_LOW = -1
OT_ROUTE_PREFERENCE_MED = 0
OT_ROUTE_PREFERENCE_HIGH = 1
}

Defines valid values for mPreference in otExternalRouteConfig and otBorderRouterConfig.

enum
OT_NETDATA_PUBLISHER_EVENT_ENTRY_ADDED = 0
OT_NETDATA_PUBLISHER_EVENT_ENTRY_REMOVED = 1
}

Represents the events reported from the Publisher callbacks.

enum
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
}

Represents a Thread device role.

Typedefs#

typedef uint32_t

Used to iterate through Network Data information.

typedef struct otBorderRouterConfig

Represents a Border Router configuration.

typedef struct otLowpanContextInfo

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

typedef struct otExternalRouteConfig

Represents an External Route configuration.

typedef enum otRoutePreference

Defines valid values for mPreference in otExternalRouteConfig and otBorderRouterConfig.

typedef struct otServerConfig

Represents a Server configuration.

typedef struct otServiceConfig

Represents a Service configuration.

Represents the events reported from the Publisher callbacks.

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

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

typedef uint16_t

Used to iterate through Network Diagnostic TLV.

Represents a Network Diagnostic Connectivity value.

typedef struct otNetworkDiagRouteData

Represents a Network Diagnostic Route data.

typedef struct otNetworkDiagRoute

Represents a Network Diagnostic Route64 TLV value.

Represents a Network Diagnostic Mac Counters value.

Represents a Network Diagnostics MLE Counters value.

Represents a Network Diagnostic Child Table Entry.

typedef struct otNetworkDiagTlv

Represents a Network Diagnostic TLV.

typedef void(*
otReceiveDiagnosticGetCallback)(otError aError, otMessage *aMessage, const otMessageInfo *aMessageInfo, void *aContext)

Pointer is called when Network Diagnostic Get response is received.

typedef struct otLinkModeConfig

Represents an MLE Link Mode configuration.

typedef int16_t

Used to iterate through neighbor table.

typedef struct otLeaderData

Represents the Thread Leader Data.

typedef struct otIpCounters

Represents the IP level counters.

typedef struct otMleCounters

Represents the Thread MLE counters.

Represents the MLE Parent Response data.

typedef void(*

This callback informs the application that the detaching process has finished.

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

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

Represents the Thread Discovery Request data.

typedef void(*
otThreadDiscoveryRequestCallback)(const otThreadDiscoveryRequestInfo *aInfo, void *aContext)

Pointer is called every time an MLE Discovery Request message is received.

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

Functions#

otNetDataGet(otInstance *aInstance, bool aStable, uint8_t *aData, uint8_t *aDataLength)

Provide full or stable copy of the Partition's Thread Network Data.

uint8_t
otNetDataGetLength(otInstance *aInstance)

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

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

void
otNetDataResetMaxLength(otInstance *aInstance)

Reset the tracked maximum length of the Thread 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.

otNetDataGetNextLowpanContextInfo(otInstance *aInstance, otNetworkDataIterator *aIterator, otLowpanContextInfo *aContextInfo)

Get the next 6LoWPAN Context ID info in the partition's Network Data.

void
otNetDataGetCommissioningDataset(otInstance *aInstance, otCommissioningDataset *aDataset)

Gets the Commissioning Dataset from the partition's Network Data.

uint8_t
otNetDataGetVersion(otInstance *aInstance)

Get the Network Data Version.

uint8_t
otNetDataGetStableVersion(otInstance *aInstance)

Get the Stable Network Data Version.

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.

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.

void
otNetDataPublishDnsSrpServiceAnycast(otInstance *aInstance, uint8_t aSequenceNUmber)

Requests "DNS/SRP Service Anycast Address" to be published in the Thread Network Data.

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

Requests "DNS/SRP Service Unicast Address" to be published in the Thread Network Data.

void
otNetDataPublishDnsSrpServiceUnicastMeshLocalEid(otInstance *aInstance, uint16_t aPort)

Requests "DNS/SRP Service Unicast Address" to be published in the Thread Network Data.

bool
otNetDataIsDnsSrpServiceAdded(otInstance *aInstance)

Indicates whether or not currently the "DNS/SRP Service" entry is added to the Thread Network Data.

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.

void
otNetDataUnpublishDnsSrpService(otInstance *aInstance)

Unpublishes any previously added DNS/SRP (Anycast or Unicast) Service entry from the Thread Network Data.

otNetDataPublishOnMeshPrefix(otInstance *aInstance, const otBorderRouterConfig *aConfig)

Requests an on-mesh prefix 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.

otNetDataReplacePublishedExternalRoute(otInstance *aInstance, const otIp6Prefix *aPrefix, const otExternalRouteConfig *aConfig)

Replaces a previously published external route in the Thread Network Data.

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.

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.

otNetDataUnpublishPrefix(otInstance *aInstance, const otIp6Prefix *aPrefix)

Unpublishes a previously published On-Mesh or External Route Prefix.

otThreadGetNextDiagnosticTlv(const otMessage *aMessage, otNetworkDiagIterator *aIterator, otNetworkDiagTlv *aNetworkDiagTlv)

Gets the next Network Diagnostic TLV in the 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.

const char *
otThreadGetVendorName(otInstance *aInstance)

Get the vendor name string.

const char *
otThreadGetVendorModel(otInstance *aInstance)

Get the vendor model string.

const char *
otThreadGetVendorSwVersion(otInstance *aInstance)

Get the vendor software version string.

const char *
otThreadGetVendorAppUrl(otInstance *aInstance)

Get the vendor app URL string.

otThreadSetVendorName(otInstance *aInstance, const char *aVendorName)

Set the vendor name string.

otThreadSetVendorModel(otInstance *aInstance, const char *aVendorModel)

Set the vendor model string.

otThreadSetVendorSwVersion(otInstance *aInstance, const char *aVendorSwVersion)

Set the vendor software version string.

otThreadSetVendorAppUrl(otInstance *aInstance, const char *aVendorAppUrl)

Set the vendor app URL string.

otThreadSetEnabled(otInstance *aInstance, bool aEnabled)

Starts Thread protocol operation.

uint16_t

Gets the Thread protocol version.

bool
otThreadIsSingleton(otInstance *aInstance)

Indicates whether a node is the only router on the network.

otThreadDiscover(otInstance *aInstance, uint32_t aScanChannels, uint16_t aPanId, bool aJoiner, bool aEnableEui64Filtering, otHandleActiveScanResult aCallback, void *aCallbackContext)

Starts a Thread Discovery scan.

bool
otThreadIsDiscoverInProgress(otInstance *aInstance)

Determines if an MLE Thread Discovery is currently in progress.

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

Sets the Thread Joiner Advertisement when discovering Thread network.

uint32_t
otThreadGetChildTimeout(otInstance *aInstance)

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

void
otThreadSetChildTimeout(otInstance *aInstance, uint32_t aTimeout)

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

otThreadGetExtendedPanId(otInstance *aInstance)

Gets the IEEE 802.15.4 Extended PAN ID.

otThreadSetExtendedPanId(otInstance *aInstance, const otExtendedPanId *aExtendedPanId)

Sets the IEEE 802.15.4 Extended PAN ID.

otThreadGetLeaderRloc(otInstance *aInstance, otIp6Address *aLeaderRloc)

Returns a pointer to the Leader's RLOC.

otThreadGetLinkMode(otInstance *aInstance)

Get the MLE Link Mode configuration.

otThreadSetLinkMode(otInstance *aInstance, otLinkModeConfig aConfig)

Set the MLE Link Mode configuration.

void
otThreadGetNetworkKey(otInstance *aInstance, otNetworkKey *aNetworkKey)

Get the Thread Network Key.

otThreadGetNetworkKeyRef(otInstance *aInstance)

Get the otNetworkKeyRef for Thread Network Key.

otThreadSetNetworkKey(otInstance *aInstance, const otNetworkKey *aKey)

Set the Thread Network Key.

otThreadSetNetworkKeyRef(otInstance *aInstance, otNetworkKeyRef aKeyRef)

Set the Thread Network Key as a otNetworkKeyRef.

const otIp6Address *
otThreadGetRloc(otInstance *aInstance)

Gets the Thread Routing Locator (RLOC) address.

const otIp6Address *
otThreadGetMeshLocalEid(otInstance *aInstance)

Gets the Mesh Local EID address.

otThreadGetMeshLocalPrefix(otInstance *aInstance)

Returns a pointer to the Mesh Local Prefix.

otThreadSetMeshLocalPrefix(otInstance *aInstance, const otMeshLocalPrefix *aMeshLocalPrefix)

Sets the Mesh Local Prefix.

const otIp6Address *
otThreadGetLinkLocalIp6Address(otInstance *aInstance)

Gets the Thread link-local IPv6 address.

const otIp6Address *

Gets the Thread Link-Local All Thread Nodes multicast address.

const otIp6Address *

Gets the Thread Realm-Local All Thread Nodes multicast address.

otThreadGetServiceAloc(otInstance *aInstance, uint8_t aServiceId, otIp6Address *aServiceAloc)

Retrieves the Service ALOC for given Service ID.

const char *
otThreadGetNetworkName(otInstance *aInstance)

Get the Thread Network Name.

otThreadSetNetworkName(otInstance *aInstance, const char *aNetworkName)

Set the Thread Network Name.

const char *
otThreadGetDomainName(otInstance *aInstance)

Gets the Thread Domain Name.

otThreadSetDomainName(otInstance *aInstance, const char *aDomainName)

Sets the Thread Domain Name.

otThreadSetFixedDuaInterfaceIdentifier(otInstance *aInstance, const otIp6InterfaceIdentifier *aIid)

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

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

uint32_t
otThreadGetKeySequenceCounter(otInstance *aInstance)

Gets the thrKeySequenceCounter.

void
otThreadSetKeySequenceCounter(otInstance *aInstance, uint32_t aKeySequenceCounter)

Sets the thrKeySequenceCounter.

uint16_t
otThreadGetKeySwitchGuardTime(otInstance *aInstance)

Gets the thrKeySwitchGuardTime (in hours).

void
otThreadSetKeySwitchGuardTime(otInstance *aInstance, uint16_t aKeySwitchGuardTime)

Sets the thrKeySwitchGuardTime (in hours).

otThreadBecomeDetached(otInstance *aInstance)

Detach from the Thread network.

otThreadBecomeChild(otInstance *aInstance)

Attempt to reattach as a child.

otThreadGetNextNeighborInfo(otInstance *aInstance, otNeighborInfoIterator *aIterator, otNeighborInfo *aInfo)

Gets the next neighbor information.

otThreadGetDeviceRole(otInstance *aInstance)

Get the device role.

const char *
otThreadDeviceRoleToString(otDeviceRole aRole)

Convert the device role to human-readable string.

otThreadGetLeaderData(otInstance *aInstance, otLeaderData *aLeaderData)

Get the Thread Leader Data.

uint8_t
otThreadGetLeaderRouterId(otInstance *aInstance)

Get the Leader's Router ID.

uint8_t
otThreadGetLeaderWeight(otInstance *aInstance)

Get the Leader's Weight.

uint32_t
otThreadGetPartitionId(otInstance *aInstance)

Get the Partition ID.

uint16_t
otThreadGetRloc16(otInstance *aInstance)

Get the RLOC16.

otThreadGetParentInfo(otInstance *aInstance, otRouterInfo *aParentInfo)

The function retrieves diagnostic information for a Thread Router as parent.

otThreadGetParentAverageRssi(otInstance *aInstance, int8_t *aParentRssi)

The function retrieves the average RSSI for the Thread Parent.

otThreadGetParentLastRssi(otInstance *aInstance, int8_t *aLastRssi)

The function retrieves the RSSI of the last packet from the Thread Parent.

otThreadSearchForBetterParent(otInstance *aInstance)

Starts the process for child to search for a better parent while staying attached to its current parent.

const otIpCounters *
otThreadGetIp6Counters(otInstance *aInstance)

Gets the IPv6 counters.

void
otThreadResetIp6Counters(otInstance *aInstance)

Resets the IPv6 counters.

const uint32_t *
otThreadGetTimeInQueueHistogram(otInstance *aInstance, uint16_t *aNumBins, uint32_t *aBinInterval)

Gets the time-in-queue histogram for messages in the TX queue.

uint32_t
otThreadGetMaxTimeInQueue(otInstance *aInstance)

Gets the maximum time-in-queue for messages in the TX queue.

void
otThreadResetTimeInQueueStat(otInstance *aInstance)

Resets the TX queue time-in-queue statistics.

otThreadGetMleCounters(otInstance *aInstance)

Gets the Thread MLE counters.

void
otThreadResetMleCounters(otInstance *aInstance)

Resets the Thread MLE counters.

void
otThreadRegisterParentResponseCallback(otInstance *aInstance, otThreadParentResponseCallback aCallback, void *aContext)

Registers a callback to receive MLE Parent Response data.

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

Sets a callback to receive MLE Discovery Request data.

otThreadLocateAnycastDestination(otInstance *aInstance, const otIp6Address *aAnycastAddress, otThreadAnycastLocatorCallback aCallback, void *aContext)

Requests the closest destination of a given anycast address to be located.

bool
otThreadIsAnycastLocateInProgress(otInstance *aInstance)

Indicates whether an anycast locate request is currently in progress.

void
otThreadSendAddressNotification(otInstance *aInstance, otIp6Address *aDestination, otIp6Address *aTarget, otIp6InterfaceIdentifier *aMlIid)

Sends a Proactive Address Notification (ADDR_NTF.ntf) message.

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

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

otThreadDetachGracefully(otInstance *aInstance, otDetachGracefullyCallback aCallback, void *aContext)

Notifies other nodes in the network (if any) and then stops Thread protocol operation.

void
otConvertDurationInSecondsToString(uint32_t aDuration, char *aBuffer, uint16_t aSize)

Converts an uint32_t duration (in seconds) to a human-readable string.

Macros#

#define
OT_NETWORK_DATA_ITERATOR_INIT 0

Value to initialize otNetworkDataIterator.

#define
OT_SERVICE_DATA_MAX_SIZE 252

Max size of Service Data in bytes.

#define
OT_SERVER_DATA_MAX_SIZE 248

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

#define
OT_NETWORK_DIAGNOSTIC_TLV_EXT_ADDRESS 0

MAC Extended Address TLV.

#define
OT_NETWORK_DIAGNOSTIC_TLV_SHORT_ADDRESS 1

Address16 TLV.

#define
OT_NETWORK_DIAGNOSTIC_TLV_MODE 2

Mode TLV.

#define
OT_NETWORK_DIAGNOSTIC_TLV_TIMEOUT 3

Timeout TLV (max polling time period for SEDs)

#define
OT_NETWORK_DIAGNOSTIC_TLV_CONNECTIVITY 4

Connectivity TLV.

#define
OT_NETWORK_DIAGNOSTIC_TLV_ROUTE 5

Route64 TLV.

#define
OT_NETWORK_DIAGNOSTIC_TLV_LEADER_DATA 6

Leader Data TLV.

#define
OT_NETWORK_DIAGNOSTIC_TLV_NETWORK_DATA 7

Network Data TLV.

#define
OT_NETWORK_DIAGNOSTIC_TLV_IP6_ADDR_LIST 8

IPv6 Address List TLV.

#define
OT_NETWORK_DIAGNOSTIC_TLV_MAC_COUNTERS 9

MAC Counters TLV.

#define
OT_NETWORK_DIAGNOSTIC_TLV_BATTERY_LEVEL 14

Battery Level TLV.

#define
OT_NETWORK_DIAGNOSTIC_TLV_SUPPLY_VOLTAGE 15

Supply Voltage TLV.

#define
OT_NETWORK_DIAGNOSTIC_TLV_CHILD_TABLE 16

Child Table TLV.

#define
OT_NETWORK_DIAGNOSTIC_TLV_CHANNEL_PAGES 17

Channel Pages TLV.

#define
OT_NETWORK_DIAGNOSTIC_TLV_TYPE_LIST 18

Type List TLV.

#define
OT_NETWORK_DIAGNOSTIC_TLV_MAX_CHILD_TIMEOUT 19

Max Child Timeout TLV.

#define
OT_NETWORK_DIAGNOSTIC_TLV_EUI64 23

EUI64 TLV.

#define
OT_NETWORK_DIAGNOSTIC_TLV_VERSION 24

Thread Version TLV.

#define
OT_NETWORK_DIAGNOSTIC_TLV_VENDOR_NAME 25

Vendor Name TLV.

#define
OT_NETWORK_DIAGNOSTIC_TLV_VENDOR_MODEL 26

Vendor Model TLV.

#define
OT_NETWORK_DIAGNOSTIC_TLV_VENDOR_SW_VERSION 27

Vendor SW Version TLV.

#define
OT_NETWORK_DIAGNOSTIC_TLV_THREAD_STACK_VERSION 28

Thread Stack Version TLV (codebase/commit version)

#define
OT_NETWORK_DIAGNOSTIC_TLV_CHILD 29

Child TLV.

#define
OT_NETWORK_DIAGNOSTIC_TLV_CHILD_IP6_ADDR_LIST 30

Child IPv6 Address List TLV.

#define
OT_NETWORK_DIAGNOSTIC_TLV_ROUTER_NEIGHBOR 31

Router Neighbor TLV.

#define
OT_NETWORK_DIAGNOSTIC_TLV_ANSWER 32

Answer TLV.

#define
OT_NETWORK_DIAGNOSTIC_TLV_QUERY_ID 33

Query ID TLV.

#define
OT_NETWORK_DIAGNOSTIC_TLV_MLE_COUNTERS 34

MLE Counters TLV.

#define
OT_NETWORK_DIAGNOSTIC_TLV_VENDOR_APP_URL 35

Vendor App URL TLV.

#define
OT_NETWORK_DIAGNOSTIC_MAX_VENDOR_NAME_TLV_LENGTH 32

Max length of Vendor Name TLV.

#define
OT_NETWORK_DIAGNOSTIC_MAX_VENDOR_MODEL_TLV_LENGTH 32

Max length of Vendor Model TLV.

#define
OT_NETWORK_DIAGNOSTIC_MAX_VENDOR_SW_VERSION_TLV_LENGTH 16

Max length of Vendor SW Version TLV.

#define
OT_NETWORK_DIAGNOSTIC_MAX_THREAD_STACK_VERSION_TLV_LENGTH 64

Max length of Thread Stack Version TLV.

#define
OT_NETWORK_DIAGNOSTIC_MAX_VENDOR_APP_URL_TLV_LENGTH 96

Max length of Vendor App URL TLV.

#define
OT_NETWORK_DIAGNOSTIC_ITERATOR_INIT 0

Initializer for otNetworkDiagIterator.

#define
OT_NETWORK_BASE_TLV_MAX_LENGTH 254

Maximum value length of Thread Base TLV.

#define
OT_NETWORK_MAX_ROUTER_ID 62

Maximum Router ID.

#define
OT_NEIGHBOR_INFO_ITERATOR_INIT 0

Initializer for otNeighborInfoIterator.

#define
OT_JOINER_ADVDATA_MAX_LENGTH 64

Maximum AdvData Length of Joiner Advertisement.

#define
OT_DURATION_STRING_SIZE 21

Recommended size for string representation of uint32_t duration in seconds.

Enumeration Documentation#

otRoutePreference#

otRoutePreference

Defines valid values for mPreference in otExternalRouteConfig and otBorderRouterConfig.

Enumerator
OT_ROUTE_PREFERENCE_LOW

Low route preference.

OT_ROUTE_PREFERENCE_MED

Medium route preference.

OT_ROUTE_PREFERENCE_HIGH

High route preference.


otNetDataPublisherEvent#

otNetDataPublisherEvent

Represents the events reported from the Publisher callbacks.

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


otDeviceRole#

otDeviceRole

Represents a Thread device role.

Enumerator
OT_DEVICE_ROLE_DISABLED

The Thread stack is disabled.

OT_DEVICE_ROLE_DETACHED

Not currently participating in a Thread network/partition.

OT_DEVICE_ROLE_CHILD

The Thread Child role.

OT_DEVICE_ROLE_ROUTER

The Thread Router role.

OT_DEVICE_ROLE_LEADER

The Thread Leader role.


Typedef Documentation#

otNetworkDataIterator#

typedef uint32_t otNetworkDataIterator

Used to iterate through Network Data information.


otBorderRouterConfig#

typedef struct otBorderRouterConfig otBorderRouterConfig

Represents a Border Router configuration.


otLowpanContextInfo#

typedef struct otLowpanContextInfo otLowpanContextInfo

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


otExternalRouteConfig#

typedef struct otExternalRouteConfig otExternalRouteConfig

Represents an External Route configuration.


otRoutePreference#

typedef enum otRoutePreference otRoutePreference

Defines valid values for mPreference in otExternalRouteConfig and otBorderRouterConfig.


otServerConfig#

typedef struct otServerConfig otServerConfig

Represents a Server configuration.


otServiceConfig#

typedef struct otServiceConfig otServiceConfig

Represents a Service configuration.


otNetDataPublisherEvent#

typedef enum otNetDataPublisherEvent otNetDataPublisherEvent

Represents the events reported from the Publisher callbacks.


otNetDataDnsSrpServicePublisherCallback#

typedef void(* otNetDataDnsSrpServicePublisherCallback) (otNetDataPublisherEvent aEvent, void *aContext) )(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.

Parameters
TypeDirectionArgument NameDescription
[in]aEvent

Indicates the event (whether the entry was added or removed).

[in]aContext

A pointer to application-specific context.

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


otNetDataPrefixPublisherCallback#

typedef void(* otNetDataPrefixPublisherCallback) (otNetDataPublisherEvent aEvent, const otIp6Prefix *aPrefix, void *aContext) )(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.

Parameters
TypeDirectionArgument NameDescription
[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.

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.


otNetworkDiagIterator#

typedef uint16_t otNetworkDiagIterator

Used to iterate through Network Diagnostic TLV.


otNetworkDiagConnectivity#

typedef struct otNetworkDiagConnectivity otNetworkDiagConnectivity

Represents a Network Diagnostic Connectivity value.


otNetworkDiagRouteData#

typedef struct otNetworkDiagRouteData otNetworkDiagRouteData

Represents a Network Diagnostic Route data.


otNetworkDiagRoute#

typedef struct otNetworkDiagRoute otNetworkDiagRoute

Represents a Network Diagnostic Route64 TLV value.


otNetworkDiagMacCounters#

typedef struct otNetworkDiagMacCounters otNetworkDiagMacCounters

Represents a Network Diagnostic Mac Counters value.

See RFC 2863 for definitions of member fields.


otNetworkDiagMleCounters#

typedef struct otNetworkDiagMleCounters otNetworkDiagMleCounters

Represents a Network Diagnostics MLE Counters value.


otNetworkDiagChildEntry#

typedef struct otNetworkDiagChildEntry otNetworkDiagChildEntry

Represents a Network Diagnostic Child Table Entry.


otNetworkDiagTlv#

typedef struct otNetworkDiagTlv otNetworkDiagTlv

Represents a Network Diagnostic TLV.


otReceiveDiagnosticGetCallback#

typedef void(* otReceiveDiagnosticGetCallback) (otError aError, otMessage *aMessage, const otMessageInfo *aMessageInfo, void *aContext) )(otError aError, otMessage *aMessage, const otMessageInfo *aMessageInfo, void *aContext)

Pointer is called when Network Diagnostic Get response is received.

Parameters
TypeDirectionArgument NameDescription
[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.


otLinkModeConfig#

typedef struct otLinkModeConfig otLinkModeConfig

Represents an MLE Link Mode configuration.


otNeighborInfoIterator#

typedef int16_t otNeighborInfoIterator

Used to iterate through neighbor table.


otLeaderData#

typedef struct otLeaderData otLeaderData

Represents the Thread Leader Data.


otIpCounters#

typedef struct otIpCounters otIpCounters

Represents the IP level counters.


otMleCounters#

typedef struct otMleCounters otMleCounters

Represents the Thread MLE counters.


otThreadParentResponseInfo#

typedef struct otThreadParentResponseInfo otThreadParentResponseInfo

Represents the MLE Parent Response data.


otDetachGracefullyCallback#

typedef void(* otDetachGracefullyCallback) (void *aContext) )(void *aContext)

This callback informs the application that the detaching process has finished.

Parameters
TypeDirectionArgument NameDescription
[in]aContext

A pointer to application-specific context.


otThreadParentResponseCallback#

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

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

Parameters
TypeDirectionArgument NameDescription
[in]aInfo

A pointer to a location on stack holding the stats data.

[in]aContext

A pointer to callback client-specific context.

This is used in otThreadRegisterParentResponseCallback().


otThreadDiscoveryRequestInfo#

typedef struct otThreadDiscoveryRequestInfo otThreadDiscoveryRequestInfo

Represents the Thread Discovery Request data.


otThreadDiscoveryRequestCallback#

typedef void(* otThreadDiscoveryRequestCallback) (const otThreadDiscoveryRequestInfo *aInfo, void *aContext) )(const otThreadDiscoveryRequestInfo *aInfo, void *aContext)

Pointer is called every time an MLE Discovery Request message is received.

Parameters
TypeDirectionArgument NameDescription
[in]aInfo

A pointer to the Discovery Request info data.

[in]aContext

A pointer to callback application-specific context.


otThreadAnycastLocatorCallback#

typedef void(* otThreadAnycastLocatorCallback) (void *aContext, otError aError, const otIp6Address *aMeshLocalAddress, uint16_t aRloc16) )(void *aContext, otError aError, const otIp6Address *aMeshLocalAddress, uint16_t aRloc16)

Pointer type defines the callback to notify the outcome of a otThreadLocateAnycastDestination() request.

Parameters
TypeDirectionArgument NameDescription
[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).


Function Documentation#

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.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

bool[in]aStable

TRUE when copying the stable version, FALSE when copying the full version.

uint8_t *[out]aData

A pointer to the data buffer.

uint8_t *[inout]aDataLength

On entry, size of the data buffer pointed to by aData. On exit, number of copied bytes.


otNetDataGetLength#

uint8_t otNetDataGetLength (otInstance * aInstance)

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

Parameters
TypeDirectionArgument NameDescription
otInstance *[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().

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

Returns

  • The maximum length of the Network Data (high water mark for Network Data length).


otNetDataResetMaxLength#

void otNetDataResetMaxLength (otInstance * aInstance)

Reset the tracked maximum length of the Thread Network Data.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

See Also


otNetDataGetNextOnMeshPrefix#

otError otNetDataGetNextOnMeshPrefix (otInstance * aInstance, otNetworkDataIterator * aIterator, otBorderRouterConfig * aConfig)

Get the next On Mesh Prefix in the partition's Network Data.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

otNetworkDataIterator *[inout]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.

otBorderRouterConfig *[out]aConfig

A pointer to where the On Mesh Prefix information will be placed.


otNetDataGetNextRoute#

otError otNetDataGetNextRoute (otInstance * aInstance, otNetworkDataIterator * aIterator, otExternalRouteConfig * aConfig)

Get the next external route in the partition's Network Data.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

otNetworkDataIterator *[inout]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.

otExternalRouteConfig *[out]aConfig

A pointer to where the External Route information will be placed.


otNetDataGetNextService#

otError otNetDataGetNextService (otInstance * aInstance, otNetworkDataIterator * aIterator, otServiceConfig * aConfig)

Get the next service in the partition's Network Data.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

otNetworkDataIterator *[inout]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.

otServiceConfig *[out]aConfig

A pointer to where the service information will be placed.


otNetDataGetNextLowpanContextInfo#

otError otNetDataGetNextLowpanContextInfo (otInstance * aInstance, otNetworkDataIterator * aIterator, otLowpanContextInfo * aContextInfo)

Get the next 6LoWPAN Context ID info in the partition's Network Data.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

otNetworkDataIterator *[inout]aIterator

A pointer to the Network Data iterator. To get the first service entry it should be set to OT_NETWORK_DATA_ITERATOR_INIT.

otLowpanContextInfo *[out]aContextInfo

A pointer to where the retrieved 6LoWPAN Context ID information will be placed.


otNetDataGetCommissioningDataset#

void otNetDataGetCommissioningDataset (otInstance * aInstance, otCommissioningDataset * aDataset)

Gets the Commissioning Dataset from the partition's Network Data.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to the OpenThread instance.

otCommissioningDataset *[out]aDataset

A pointer to a otCommissioningDataset to populate.


otNetDataGetVersion#

uint8_t otNetDataGetVersion (otInstance * aInstance)

Get the Network Data Version.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

Returns

  • The Network Data Version.


otNetDataGetStableVersion#

uint8_t otNetDataGetStableVersion (otInstance * aInstance)

Get the Stable Network Data Version.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

Returns

  • The Stable Network Data Version.


otNetDataSteeringDataCheckJoiner#

otError otNetDataSteeringDataCheckJoiner (otInstance * aInstance, const otExtAddress * aEui64)

Check if the steering data includes a Joiner.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

const otExtAddress *[in]aEui64

A pointer to the Joiner's IEEE EUI-64.


otNetDataSteeringDataCheckJoinerWithDiscerner#

otError otNetDataSteeringDataCheckJoinerWithDiscerner (otInstance * aInstance, const struct otJoinerDiscerner * aDiscerner)

Check if the steering data includes a Joiner with a given discerner value.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

const struct otJoinerDiscerner *[in]aDiscerner

A pointer to the Joiner Discerner.


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.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

const otIp6Prefix *[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.

Note

  • This API is only available when OPENTHREAD_CONFIG_BORDER_ROUTING_ENABLE is used.


otNetDataPublishDnsSrpServiceAnycast#

void otNetDataPublishDnsSrpServiceAnycast (otInstance * aInstance, uint8_t aSequenceNUmber)

Requests "DNS/SRP Service Anycast Address" to be published in the Thread Network Data.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

uint8_t[in]aSequenceNUmber

The sequence number of DNS/SRP Anycast Service.

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


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.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

const otIp6Address *[in]aAddress

The DNS/SRP server address to publish (MUST NOT be NULL).

uint16_t[in]aPort

The SRP server port number to publish.

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.


otNetDataPublishDnsSrpServiceUnicastMeshLocalEid#

void otNetDataPublishDnsSrpServiceUnicastMeshLocalEid (otInstance * aInstance, uint16_t aPort)

Requests "DNS/SRP Service Unicast Address" to be published in the Thread Network Data.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

uint16_t[in]aPort

The SRP server port number to publish.

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.


otNetDataIsDnsSrpServiceAdded#

bool otNetDataIsDnsSrpServiceAdded (otInstance * aInstance)

Indicates whether or not currently the "DNS/SRP Service" entry is added to the Thread Network Data.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

Requires the feature OPENTHREAD_CONFIG_TMF_NETDATA_SERVICE_ENABLE to be enabled.


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.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

otNetDataDnsSrpServicePublisherCallback[in]aCallback

The callback function pointer (can be NULL if not needed).

void *[in]aContext

A pointer to application-specific context (used when aCallback is invoked).

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

Requires the feature OPENTHREAD_CONFIG_TMF_NETDATA_SERVICE_ENABLE to be enabled.


otNetDataUnpublishDnsSrpService#

void otNetDataUnpublishDnsSrpService (otInstance * aInstance)

Unpublishes any previously added DNS/SRP (Anycast or Unicast) Service entry from the Thread Network Data.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

OPENTHREAD_CONFIG_TMF_NETDATA_SERVICE_ENABLE must be enabled.


otNetDataPublishOnMeshPrefix#

otError otNetDataPublishOnMeshPrefix (otInstance * aInstance, const otBorderRouterConfig * aConfig)

Requests an on-mesh prefix to be published in the Thread Network Data.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

const otBorderRouterConfig *[in]aConfig

The on-mesh prefix config to publish (MUST NOT be NULL).

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.


otNetDataPublishExternalRoute#

otError otNetDataPublishExternalRoute (otInstance * aInstance, const otExternalRouteConfig * aConfig)

Requests an external route prefix to be published in the Thread Network Data.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

const otExternalRouteConfig *[in]aConfig

The external route config to publish (MUST NOT be NULL).

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.


otNetDataReplacePublishedExternalRoute#

otError otNetDataReplacePublishedExternalRoute (otInstance * aInstance, const otIp6Prefix * aPrefix, const otExternalRouteConfig * aConfig)

Replaces a previously published external route in the Thread Network Data.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

const otIp6Prefix *[in]aPrefix

The previously published external route prefix to replace.

const otExternalRouteConfig *[in]aConfig

The external route config to publish.

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


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.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

const otIp6Prefix *[in]aPrefix

A pointer to the prefix (MUST NOT be NULL).

Requires the feature OPENTHREAD_CONFIG_BORDER_ROUTER_ENABLE to be enabled.


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.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

otNetDataPrefixPublisherCallback[in]aCallback

The callback function pointer (can be NULL if not needed).

void *[in]aContext

A pointer to application-specific context (used when aCallback is invoked).

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

Requires the feature OPENTHREAD_CONFIG_BORDER_ROUTER_ENABLE to be enabled.


otNetDataUnpublishPrefix#

otError otNetDataUnpublishPrefix (otInstance * aInstance, const otIp6Prefix * aPrefix)

Unpublishes a previously published On-Mesh or External Route Prefix.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

const otIp6Prefix *[in]aPrefix

The prefix to unpublish (MUST NOT be NULL).

OPENTHREAD_CONFIG_BORDER_ROUTER_ENABLE must be enabled.


otThreadGetNextDiagnosticTlv#

otError otThreadGetNextDiagnosticTlv (const otMessage * aMessage, otNetworkDiagIterator * aIterator, otNetworkDiagTlv * aNetworkDiagTlv)

Gets the next Network Diagnostic TLV in the message.

Parameters
TypeDirectionArgument NameDescription
const otMessage *[in]aMessage

A pointer to a message.

otNetworkDiagIterator *[inout]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.

otNetworkDiagTlv *[out]aNetworkDiagTlv

A pointer to where the Network Diagnostic TLV information will be placed.

Requires OPENTHREAD_CONFIG_TMF_NETDIAG_CLIENT_ENABLE.

@Note A subsequent call to this function is allowed only when current return value is OT_ERROR_NONE.


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.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

const otIp6Address *[in]aDestination

A pointer to destination address.

const uint8_t[in]aTlvTypes

An array of Network Diagnostic TLV types.

uint8_t[in]aCount

Number of types in aTlvTypes.

otReceiveDiagnosticGetCallback[in]aCallback

A pointer to a function that is called when Network Diagnostic Get response is received or NULL to disable the callback.

void *[in]aCallbackContext

A pointer to application-specific context.

Requires OPENTHREAD_CONFIG_TMF_NETDIAG_CLIENT_ENABLE.


otThreadSendDiagnosticReset#

otError otThreadSendDiagnosticReset (otInstance * aInstance, const otIp6Address * aDestination, const uint8_t aTlvTypes, uint8_t aCount)

Send a Network Diagnostic Reset request.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

const otIp6Address *[in]aDestination

A pointer to destination address.

const uint8_t[in]aTlvTypes

An array of Network Diagnostic TLV types. Currently only Type 9 is allowed.

uint8_t[in]aCount

Number of types in aTlvTypes

Requires OPENTHREAD_CONFIG_TMF_NETDIAG_CLIENT_ENABLE.


otThreadGetVendorName#

const char * otThreadGetVendorName (otInstance * aInstance)

Get the vendor name string.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

Returns

  • The vendor name string.


otThreadGetVendorModel#

const char * otThreadGetVendorModel (otInstance * aInstance)

Get the vendor model string.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

Returns

  • The vendor model string.


otThreadGetVendorSwVersion#

const char * otThreadGetVendorSwVersion (otInstance * aInstance)

Get the vendor software version string.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

Returns

  • The vendor software version string.


otThreadGetVendorAppUrl#

const char * otThreadGetVendorAppUrl (otInstance * aInstance)

Get the vendor app URL string.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

Returns

  • The vendor app URL string.


otThreadSetVendorName#

otError otThreadSetVendorName (otInstance * aInstance, const char * aVendorName)

Set the vendor name string.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

const char *[in]aVendorName

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.


otThreadSetVendorModel#

otError otThreadSetVendorModel (otInstance * aInstance, const char * aVendorModel)

Set the vendor model string.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

const char *[in]aVendorModel

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.


otThreadSetVendorSwVersion#

otError otThreadSetVendorSwVersion (otInstance * aInstance, const char * aVendorSwVersion)

Set the vendor software version string.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

const char *[in]aVendorSwVersion

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.


otThreadSetVendorAppUrl#

otError otThreadSetVendorAppUrl (otInstance * aInstance, const char * aVendorAppUrl)

Set the vendor app URL string.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

const char *[in]aVendorAppUrl

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.


otThreadSetEnabled#

otError otThreadSetEnabled (otInstance * aInstance, bool aEnabled)

Starts Thread protocol operation.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

bool[in]aEnabled

TRUE if Thread is enabled, FALSE otherwise.

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.


otThreadGetVersion#

uint16_t otThreadGetVersion (void )

Gets the Thread protocol version.

Parameters
TypeDirectionArgument NameDescription
voidN/A

Returns

  • the Thread protocol version.


otThreadIsSingleton#

bool otThreadIsSingleton (otInstance * aInstance)

Indicates whether a node is the only router on the network.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.


otThreadDiscover#

otError otThreadDiscover (otInstance * aInstance, uint32_t aScanChannels, uint16_t aPanId, bool aJoiner, bool aEnableEui64Filtering, otHandleActiveScanResult aCallback, void * aCallbackContext)

Starts a Thread Discovery scan.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

uint32_t[in]aScanChannels

A bit vector indicating which channels to scan (e.g. OT_CHANNEL_11_MASK).

uint16_t[in]aPanId

The PAN ID filter (set to Broadcast PAN to disable filter).

bool[in]aJoiner

Value of the Joiner Flag in the Discovery Request TLV.

bool[in]aEnableEui64Filtering

TRUE to filter responses on EUI-64, FALSE otherwise.

otHandleActiveScanResult[in]aCallback

A pointer to a function called on receiving an MLE Discovery Response or scan completes.

void *[in]aCallbackContext

A pointer to application-specific context.

Note

  • A successful call to this function enables the rx-on-when-idle mode for the entire scan procedure.


otThreadIsDiscoverInProgress#

bool otThreadIsDiscoverInProgress (otInstance * aInstance)

Determines if an MLE Thread Discovery is currently in progress.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.


otThreadSetJoinerAdvertisement#

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

Sets the Thread Joiner Advertisement when discovering Thread network.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

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

const uint8_t *[in]aAdvData

A pointer to the AdvData that will be included in the Joiner Advertisement.

uint8_t[in]aAdvDataLength

The length of AdvData in bytes.

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.


otThreadGetChildTimeout#

uint32_t otThreadGetChildTimeout (otInstance * aInstance)

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

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

Returns

  • The Thread Child Timeout value in seconds.

See Also


otThreadSetChildTimeout#

void otThreadSetChildTimeout (otInstance * aInstance, uint32_t aTimeout)

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

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

uint32_t[in]aTimeout

The timeout value in seconds.

See Also


otThreadGetExtendedPanId#

const otExtendedPanId * otThreadGetExtendedPanId (otInstance * aInstance)

Gets the IEEE 802.15.4 Extended PAN ID.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

Returns

  • A pointer to the IEEE 802.15.4 Extended PAN ID.

See Also


otThreadSetExtendedPanId#

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

Sets the IEEE 802.15.4 Extended PAN ID.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

const otExtendedPanId *[in]aExtendedPanId

A pointer to the IEEE 802.15.4 Extended PAN ID.

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.

See Also


otThreadGetLeaderRloc#

otError otThreadGetLeaderRloc (otInstance * aInstance, otIp6Address * aLeaderRloc)

Returns a pointer to the Leader's RLOC.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

otIp6Address *[out]aLeaderRloc

A pointer to the Leader's RLOC.


otThreadGetLinkMode#

otLinkModeConfig otThreadGetLinkMode (otInstance * aInstance)

Get the MLE Link Mode configuration.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

Returns

  • The MLE Link Mode configuration.

See Also


otThreadSetLinkMode#

otError otThreadSetLinkMode (otInstance * aInstance, otLinkModeConfig aConfig)

Set the MLE Link Mode configuration.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

otLinkModeConfig[in]aConfig

A pointer to the Link Mode configuration.

See Also


otThreadGetNetworkKey#

void otThreadGetNetworkKey (otInstance * aInstance, otNetworkKey * aNetworkKey)

Get the Thread Network Key.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

otNetworkKey *[out]aNetworkKey

A pointer to an otNetworkKey to return the Thread Network Key.

See Also


otThreadGetNetworkKeyRef#

otNetworkKeyRef otThreadGetNetworkKeyRef (otInstance * aInstance)

Get the otNetworkKeyRef for Thread Network Key.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

Requires the build-time feature OPENTHREAD_CONFIG_PLATFORM_KEY_REFERENCES_ENABLE to be enabled.

Returns

  • Reference to the Thread Network Key stored in memory.

See Also


otThreadSetNetworkKey#

otError otThreadSetNetworkKey (otInstance * aInstance, const otNetworkKey * aKey)

Set the Thread Network Key.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

const otNetworkKey *[in]aKey

A pointer to a buffer containing 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.

See Also


otThreadSetNetworkKeyRef#

otError otThreadSetNetworkKeyRef (otInstance * aInstance, otNetworkKeyRef aKeyRef)

Set the Thread Network Key as a otNetworkKeyRef.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

otNetworkKeyRef[in]aKeyRef

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

Requires the build-time feature OPENTHREAD_CONFIG_PLATFORM_KEY_REFERENCES_ENABLE to be enabled.

See Also


otThreadGetRloc#

const otIp6Address * otThreadGetRloc (otInstance * aInstance)

Gets the Thread Routing Locator (RLOC) address.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

Returns

  • A pointer to the Thread Routing Locator (RLOC) address.


otThreadGetMeshLocalEid#

const otIp6Address * otThreadGetMeshLocalEid (otInstance * aInstance)

Gets the Mesh Local EID address.

Parameters
TypeDirectionArgument NameDescription
otInstance *[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.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

Returns

  • A pointer to the Mesh Local Prefix.


otThreadSetMeshLocalPrefix#

otError otThreadSetMeshLocalPrefix (otInstance * aInstance, const otMeshLocalPrefix * aMeshLocalPrefix)

Sets the Mesh Local Prefix.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

const otMeshLocalPrefix *[in]aMeshLocalPrefix

A pointer to 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.


otThreadGetLinkLocalIp6Address#

const otIp6Address * otThreadGetLinkLocalIp6Address (otInstance * aInstance)

Gets the Thread link-local IPv6 address.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

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

Returns

  • A pointer to Thread link-local IPv6 address.


otThreadGetLinkLocalAllThreadNodesMulticastAddress#

const otIp6Address * otThreadGetLinkLocalAllThreadNodesMulticastAddress (otInstance * aInstance)

Gets the Thread Link-Local All Thread Nodes multicast address.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

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

Returns

  • A pointer to Thread Link-Local All Thread Nodes multicast address.


otThreadGetRealmLocalAllThreadNodesMulticastAddress#

const otIp6Address * otThreadGetRealmLocalAllThreadNodesMulticastAddress (otInstance * aInstance)

Gets the Thread Realm-Local All Thread Nodes multicast address.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

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

Returns

  • A pointer to Thread Realm-Local All Thread Nodes multicast address.


otThreadGetServiceAloc#

otError otThreadGetServiceAloc (otInstance * aInstance, uint8_t aServiceId, otIp6Address * aServiceAloc)

Retrieves the Service ALOC for given Service ID.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

uint8_t[in]aServiceId

Service ID to get ALOC for.

otIp6Address *[out]aServiceAloc

A pointer to output the Service ALOC. MUST NOT BE NULL.


otThreadGetNetworkName#

const char * otThreadGetNetworkName (otInstance * aInstance)

Get the Thread Network Name.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

Returns

  • A pointer to the Thread Network Name.

See Also


otThreadSetNetworkName#

otError otThreadSetNetworkName (otInstance * aInstance, const char * aNetworkName)

Set the Thread Network Name.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

const char *[in]aNetworkName

A pointer to 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.

See Also


otThreadGetDomainName#

const char * otThreadGetDomainName (otInstance * aInstance)

Gets the Thread Domain Name.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

Note

  • Available since Thread 1.2.

Returns

  • A pointer to the Thread Domain Name.

See Also


otThreadSetDomainName#

otError otThreadSetDomainName (otInstance * aInstance, const char * aDomainName)

Sets the Thread Domain Name.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

const char *[in]aDomainName

A pointer to the Thread Domain Name.

Only succeeds when Thread protocols are disabled.

Note

  • Available since Thread 1.2.

See Also


otThreadSetFixedDuaInterfaceIdentifier#

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

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

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

const otIp6InterfaceIdentifier *[in]aIid

A pointer to the Interface Identifier to set or NULL to clear.

Available when OPENTHREAD_CONFIG_DUA_ENABLE is enabled.

Note

  • Only available since Thread 1.2.

See Also


otThreadGetFixedDuaInterfaceIdentifier#

const otIp6InterfaceIdentifier * otThreadGetFixedDuaInterfaceIdentifier (otInstance * aInstance)

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

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

Available when OPENTHREAD_CONFIG_DUA_ENABLE is enabled.

Note

  • Only available since Thread 1.2.

Returns

  • A pointer to the Interface Identifier which was set manually, or NULL if none was set.

See Also


otThreadGetKeySequenceCounter#

uint32_t otThreadGetKeySequenceCounter (otInstance * aInstance)

Gets the thrKeySequenceCounter.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

Returns

  • The thrKeySequenceCounter value.

See Also


otThreadSetKeySequenceCounter#

void otThreadSetKeySequenceCounter (otInstance * aInstance, uint32_t aKeySequenceCounter)

Sets the thrKeySequenceCounter.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

uint32_t[in]aKeySequenceCounter

The thrKeySequenceCounter value.

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.

See Also


otThreadGetKeySwitchGuardTime#

uint16_t otThreadGetKeySwitchGuardTime (otInstance * aInstance)

Gets the thrKeySwitchGuardTime (in hours).

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

Returns

  • The thrKeySwitchGuardTime value (in hours).

See Also


otThreadSetKeySwitchGuardTime#

void otThreadSetKeySwitchGuardTime (otInstance * aInstance, uint16_t aKeySwitchGuardTime)

Sets the thrKeySwitchGuardTime (in hours).

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

uint16_t[in]aKeySwitchGuardTime

The thrKeySwitchGuardTime value (in hours).

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.

See Also


otThreadBecomeDetached#

otError otThreadBecomeDetached (otInstance * aInstance)

Detach from the Thread network.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.


otThreadBecomeChild#

otError otThreadBecomeChild (otInstance * aInstance)

Attempt to reattach as a child.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

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.


otThreadGetNextNeighborInfo#

otError otThreadGetNextNeighborInfo (otInstance * aInstance, otNeighborInfoIterator * aIterator, otNeighborInfo * aInfo)

Gets the next neighbor information.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

otNeighborInfoIterator *[inout]aIterator

A pointer to the iterator context. To get the first neighbor entry it should be set to OT_NEIGHBOR_INFO_ITERATOR_INIT.

otNeighborInfo *[out]aInfo

A pointer to the neighbor information.

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


otThreadGetDeviceRole#

otDeviceRole otThreadGetDeviceRole (otInstance * aInstance)

Get the device role.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.


otThreadDeviceRoleToString#

const char * otThreadDeviceRoleToString (otDeviceRole aRole)

Convert the device role to human-readable string.

Parameters
TypeDirectionArgument NameDescription
otDeviceRole[in]aRole

The device role to convert.

Returns

  • A string representing aRole.


otThreadGetLeaderData#

otError otThreadGetLeaderData (otInstance * aInstance, otLeaderData * aLeaderData)

Get the Thread Leader Data.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

otLeaderData *[out]aLeaderData

A pointer to where the leader data is placed.


otThreadGetLeaderRouterId#

uint8_t otThreadGetLeaderRouterId (otInstance * aInstance)

Get the Leader's Router ID.

Parameters
TypeDirectionArgument NameDescription
otInstance *[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.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

Returns

  • The Leader's Weight.


otThreadGetPartitionId#

uint32_t otThreadGetPartitionId (otInstance * aInstance)

Get the Partition ID.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

Returns

  • The Partition ID.


otThreadGetRloc16#

uint16_t otThreadGetRloc16 (otInstance * aInstance)

Get the RLOC16.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

Returns

  • The RLOC16.


otThreadGetParentInfo#

otError otThreadGetParentInfo (otInstance * aInstance, otRouterInfo * aParentInfo)

The function retrieves diagnostic information for a Thread Router as parent.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

otRouterInfo *[out]aParentInfo

A pointer to where the parent router information is placed.


otThreadGetParentAverageRssi#

otError otThreadGetParentAverageRssi (otInstance * aInstance, int8_t * aParentRssi)

The function retrieves the average RSSI for the Thread Parent.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

int8_t *[out]aParentRssi

A pointer to where the parent RSSI should be placed.


otThreadGetParentLastRssi#

otError otThreadGetParentLastRssi (otInstance * aInstance, int8_t * aLastRssi)

The function retrieves the RSSI of the last packet from the Thread Parent.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

int8_t *[out]aLastRssi

A pointer to where the last RSSI should be placed.


otThreadSearchForBetterParent#

otError otThreadSearchForBetterParent (otInstance * aInstance)

Starts the process for child to search for a better parent while staying attached to its current parent.

Parameters
TypeDirectionArgument NameDescription
otInstance *N/AaInstance

Must be used when device is attached as a child.


otThreadGetIp6Counters#

const otIpCounters * otThreadGetIp6Counters (otInstance * aInstance)

Gets the IPv6 counters.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

Returns

  • A pointer to the IPv6 counters.


otThreadResetIp6Counters#

void otThreadResetIp6Counters (otInstance * aInstance)

Resets the IPv6 counters.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.


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.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

uint16_t *[out]aNumBins

Pointer to return the number of bins in histogram (array length).

uint32_t *[out]aBinInterval

Pointer to return the histogram bin interval length in milliseconds.

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 otThreadResetTimeInQueueStat(). The histogram information is collected since the OpenThread instance was initialized or since the last time statistics collection was reset by calling the otThreadResetTimeInQueueStat().

Pointers aNumBins and aBinInterval MUST NOT be NULL.

Returns

  • A pointer to an array of aNumBins entries representing the collected histogram info.


otThreadGetMaxTimeInQueue#

uint32_t otThreadGetMaxTimeInQueue (otInstance * aInstance)

Gets the maximum time-in-queue for messages in the TX queue.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

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

Returns

  • The maximum time-in-queue in milliseconds for all messages in the TX queue (so far).


otThreadResetTimeInQueueStat#

void otThreadResetTimeInQueueStat (otInstance * aInstance)

Resets the TX queue time-in-queue statistics.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

Requires OPENTHREAD_CONFIG_TX_QUEUE_STATISTICS_ENABLE.


otThreadGetMleCounters#

const otMleCounters * otThreadGetMleCounters (otInstance * aInstance)

Gets the Thread MLE counters.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

Returns

  • A pointer to the Thread MLE counters.


otThreadResetMleCounters#

void otThreadResetMleCounters (otInstance * aInstance)

Resets the Thread MLE counters.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.


otThreadRegisterParentResponseCallback#

void otThreadRegisterParentResponseCallback (otInstance * aInstance, otThreadParentResponseCallback aCallback, void * aContext)

Registers a callback to receive MLE Parent Response data.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

otThreadParentResponseCallback[in]aCallback

A pointer to a function that is called upon receiving an MLE Parent Response message.

void *[in]aContext

A pointer to callback client-specific context.

Requires OPENTHREAD_CONFIG_MLE_PARENT_RESPONSE_CALLBACK_API_ENABLE.


otThreadSetDiscoveryRequestCallback#

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

Sets a callback to receive MLE Discovery Request data.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

otThreadDiscoveryRequestCallback[in]aCallback

A pointer to a function that is called upon receiving an MLE Discovery Request message.

void *[in]aContext

A pointer to callback application-specific context.


otThreadLocateAnycastDestination#

otError otThreadLocateAnycastDestination (otInstance * aInstance, const otIp6Address * aAnycastAddress, otThreadAnycastLocatorCallback aCallback, void * aContext)

Requests the closest destination of a given anycast address to be located.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

const otIp6Address *[in]aAnycastAddress

The anycast address to locate. MUST NOT be NULL.

otThreadAnycastLocatorCallback[in]aCallback

The callback function to report the result.

void *[in]aContext

An arbitrary context used with aCallback.

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.


otThreadIsAnycastLocateInProgress#

bool otThreadIsAnycastLocateInProgress (otInstance * aInstance)

Indicates whether an anycast locate request is currently in progress.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

Is only available when OPENTHREAD_CONFIG_TMF_ANYCAST_LOCATOR_ENABLE is enabled.

Returns

  • TRUE if an anycast locate request is currently in progress, FALSE otherwise.


otThreadSendAddressNotification#

void otThreadSendAddressNotification (otInstance * aInstance, otIp6Address * aDestination, otIp6Address * aTarget, otIp6InterfaceIdentifier * aMlIid)

Sends a Proactive Address Notification (ADDR_NTF.ntf) message.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

otIp6Address *[in]aDestination

The destination to send the ADDR_NTF.ntf message.

otIp6Address *[in]aTarget

The target address of the ADDR_NTF.ntf message.

otIp6InterfaceIdentifier *[in]aMlIid

The ML-IID of the ADDR_NTF.ntf message.

Is only available when OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE is enabled.


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.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

otIp6Address *[in]aTarget

The target address of the PRO_BB.ntf message.

otIp6InterfaceIdentifier *[in]aMlIid

The ML-IID of the PRO_BB.ntf message.

uint32_t[in]aTimeSinceLastTransaction

Time since last transaction (in seconds).

Is only available when OPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE is enabled.


otThreadDetachGracefully#

otError otThreadDetachGracefully (otInstance * aInstance, otDetachGracefullyCallback aCallback, void * aContext)

Notifies other nodes in the network (if any) and then stops Thread protocol operation.

Parameters
TypeDirectionArgument NameDescription
otInstance *[in]aInstance

A pointer to an OpenThread instance.

otDetachGracefullyCallback[in]aCallback

A pointer to a function that is called upon finishing detaching.

void *[in]aContext

A pointer to callback application-specific context.

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


otConvertDurationInSecondsToString#

void otConvertDurationInSecondsToString (uint32_t aDuration, char * aBuffer, uint16_t aSize)

Converts an uint32_t duration (in seconds) to a human-readable string.

Parameters
TypeDirectionArgument NameDescription
uint32_t[in]aDuration

A duration interval in seconds.

char *[out]aBuffer

A pointer to a char array to output the string.

uint16_t[in]aSize

The size of aBuffer (in bytes). Recommended to use OT_DURATION_STRING_SIZE.

Requires OPENTHREAD_CONFIG_UPTIME_ENABLE to be enabled.

The string follows the format "<hh>:<mm>:<ss>" for hours, minutes, seconds (if duration is shorter than one day) or "<dd>d.<hh>:<mm>:<ss>" (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.