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
orOPENTHREAD_MTD=1
.
Modules#
Enumerations#
Defines valid values for mPreference
in otExternalRouteConfig
and otBorderRouterConfig
.
Represents the events reported from the Publisher callbacks.
Represents a Thread device role.
Typedefs#
Used to iterate through Network Data information.
Represents a Border Router configuration.
Represents 6LoWPAN Context ID information associated with a prefix in Network Data.
Represents an External Route configuration.
Defines valid values for mPreference
in otExternalRouteConfig
and otBorderRouterConfig
.
Represents a Server configuration.
Represents a Service configuration.
Represents the events reported from the Publisher callbacks.
Pointer type defines the callback used to notify when a "DNS/SRP Service" entry is added to or removed from the Thread Network Data.
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.
Used to iterate through Network Diagnostic TLV.
Represents a Network Diagnostic Connectivity value.
Represents a Network Diagnostic Route data.
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.
Represents a Network Diagnostic TLV.
Pointer is called when Network Diagnostic Get response is received.
Represents an MLE Link Mode configuration.
Used to iterate through neighbor table.
Represents the Thread Leader Data.
Represents the IP level counters.
Represents the Thread MLE counters.
Represents the MLE Parent Response data.
This callback informs the application that the detaching process has finished.
Pointer is called every time an MLE Parent Response message is received.
Represents the Thread Discovery Request data.
Pointer is called every time an MLE Discovery Request message is received.
Pointer type defines the callback to notify the outcome of a otThreadLocateAnycastDestination()
request.
Functions#
Provide full or stable copy of the Partition's Thread Network Data.
Get the current length (number of bytes) of Partition's Thread Network Data.
Get the maximum observed length of the Thread Network Data since OT stack initialization or since the last call to otNetDataResetMaxLength()
.
Reset the tracked maximum length of the Thread Network Data.
Get the next On Mesh Prefix in the partition's Network Data.
Get the next external route in the partition's Network Data.
Get the next service in the partition's Network Data.
Get the next 6LoWPAN Context ID info in the partition's Network Data.
Gets the Commissioning Dataset from the partition's Network Data.
Get the Network Data Version.
Get the Stable Network Data Version.
Check if the steering data includes a Joiner.
Check if the steering data includes a Joiner with a given discerner value.
Check whether a given Prefix can act as a valid OMR prefix and also the Leader's Network Data contains this prefix.
Requests "DNS/SRP Service Anycast Address" to be published in the Thread Network Data.
Requests "DNS/SRP Service Unicast Address" to be published in the Thread Network Data.
Requests "DNS/SRP Service Unicast Address" to be published in the Thread Network Data.
Indicates whether or not currently the "DNS/SRP Service" entry is added to the Thread Network Data.
Sets a callback for notifying when a published "DNS/SRP Service" is actually added to or removed from the Thread Network Data.
Unpublishes any previously added DNS/SRP (Anycast or Unicast) Service entry from the Thread Network Data.
Requests an on-mesh prefix to be published in the Thread Network Data.
Requests an external route prefix to be published in the Thread Network Data.
Replaces a previously published external route in the Thread Network Data.
Indicates whether or not currently a published prefix entry (on-mesh or external route) is added to the Thread Network Data.
Sets a callback for notifying when a published prefix entry is actually added to or removed from the Thread Network Data.
Unpublishes a previously published On-Mesh or External Route Prefix.
Gets the next Network Diagnostic TLV in the message.
Send a Network Diagnostic Get request.
Send a Network Diagnostic Reset request.
Get the vendor name string.
Get the vendor model string.
Get the vendor software version string.
Get the vendor app URL string.
Set the vendor name string.
Set the vendor model string.
Set the vendor software version string.
Set the vendor app URL string.
Starts Thread protocol operation.
Gets the Thread protocol version.
Indicates whether a node is the only router on the network.
Starts a Thread Discovery scan.
Determines if an MLE Thread Discovery is currently in progress.
Sets the Thread Joiner Advertisement when discovering Thread network.
Gets the Thread Child Timeout (in seconds) used when operating in the Child role.
Sets the Thread Child Timeout (in seconds) used when operating in the Child role.
Gets the IEEE 802.15.4 Extended PAN ID.
Sets the IEEE 802.15.4 Extended PAN ID.
Returns a pointer to the Leader's RLOC.
Get the MLE Link Mode configuration.
Set the MLE Link Mode configuration.
Get the Thread Network Key.
Get the otNetworkKeyRef
for Thread Network Key.
Set the Thread Network Key.
Set the Thread Network Key as a otNetworkKeyRef
.
Gets the Thread Routing Locator (RLOC) address.
Gets the Mesh Local EID address.
Returns a pointer to the Mesh Local Prefix.
Sets the Mesh Local Prefix.
Gets the Thread link-local IPv6 address.
Gets the Thread Link-Local All Thread Nodes multicast address.
Gets the Thread Realm-Local All Thread Nodes multicast address.
Retrieves the Service ALOC for given Service ID.
Get the Thread Network Name.
Set the Thread Network Name.
Gets the Thread Domain Name.
Sets the Thread Domain Name.
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.
Gets the thrKeySequenceCounter.
Sets the thrKeySequenceCounter.
Gets the thrKeySwitchGuardTime (in hours).
Sets the thrKeySwitchGuardTime (in hours).
Detach from the Thread network.
Attempt to reattach as a child.
Gets the next neighbor information.
Get the device role.
Convert the device role to human-readable string.
Get the Thread Leader Data.
Get the Leader's Router ID.
Get the Leader's Weight.
Get the Partition ID.
Get the RLOC16.
The function retrieves diagnostic information for a Thread Router as parent.
The function retrieves the average RSSI for the Thread Parent.
The function retrieves the RSSI of the last packet from the Thread Parent.
Starts the process for child to search for a better parent while staying attached to its current parent.
Gets the IPv6 counters.
Resets the IPv6 counters.
Gets the time-in-queue histogram for messages in the TX queue.
Gets the maximum time-in-queue for messages in the TX queue.
Resets the TX queue time-in-queue statistics.
Gets the Thread MLE counters.
Resets the Thread MLE counters.
Registers a callback to receive MLE Parent Response data.
Sets a callback to receive MLE Discovery Request data.
Requests the closest destination of a given anycast address to be located.
Indicates whether an anycast locate request is currently in progress.
Sends a Proactive Address Notification (ADDR_NTF.ntf) message.
Sends a Proactive Backbone Notification (PRO_BB.ntf) message on the Backbone link.
Notifies other nodes in the network (if any) and then stops Thread protocol operation.
Converts an uint32_t
duration (in seconds) to a human-readable string.
Macros#
Value to initialize otNetworkDataIterator
.
Max size of Service Data in bytes.
Max size of Server Data in bytes. Theoretical limit, practically much lower.
MAC Extended Address TLV.
Address16 TLV.
Mode TLV.
Timeout TLV (max polling time period for SEDs)
Connectivity TLV.
Route64 TLV.
Leader Data TLV.
Network Data TLV.
IPv6 Address List TLV.
MAC Counters TLV.
Battery Level TLV.
Supply Voltage TLV.
Child Table TLV.
Channel Pages TLV.
Type List TLV.
Max Child Timeout TLV.
EUI64 TLV.
Thread Version TLV.
Vendor Name TLV.
Vendor Model TLV.
Vendor SW Version TLV.
Thread Stack Version TLV (codebase/commit version)
Child TLV.
Child IPv6 Address List TLV.
Router Neighbor TLV.
Answer TLV.
Query ID TLV.
MLE Counters TLV.
Vendor App URL TLV.
Max length of Vendor Name TLV.
Max length of Vendor Model TLV.
Max length of Vendor SW Version TLV.
Max length of Thread Stack Version TLV.
Max length of Vendor App URL TLV.
Initializer for otNetworkDiagIterator
.
Maximum value length of Thread Base TLV.
Maximum Router ID.
Initializer for otNeighborInfoIterator.
Maximum AdvData Length of Joiner Advertisement.
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
.
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
[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.
Type | Direction | Argument Name | Description |
---|---|---|---|
[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.
Type | Direction | Argument Name | Description |
---|---|---|---|
[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 | |
[in] | aMessageInfo | A pointer to the message info for | |
[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.
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
[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.
Type | Direction | Argument Name | Description |
---|---|---|---|
[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.
Type | Direction | Argument Name | Description |
---|---|---|---|
[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.
Type | Direction | Argument Name | Description |
---|---|---|---|
[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 | |
[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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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 |
otNetDataGetLength#
uint8_t otNetDataGetLength (otInstance * aInstance)
Get the current length (number of bytes) of Partition's Thread Network Data.
Type | Direction | Argument Name | Description |
---|---|---|---|
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()
.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
otInstance * | [in] | aInstance | A pointer to the OpenThread instance. |
otCommissioningDataset * | [out] | aDataset | A pointer to a |
otNetDataGetVersion#
uint8_t otNetDataGetVersion (otInstance * aInstance)
Get the Network Data Version.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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 prefixaPrefix
.
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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 |
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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 inaConfig
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 newaConfig
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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 |
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
void | N/A |
Returns
the Thread protocol version.
otThreadIsSingleton#
bool otThreadIsSingleton (otInstance * aInstance)
Indicates whether a node is the only router on the network.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
otInstance * | [in] | aInstance | A pointer to an OpenThread instance. |
otNetworkKey * | [out] | aNetworkKey | A pointer to an |
See Also
otThreadGetNetworkKeyRef#
otNetworkKeyRef otThreadGetNetworkKeyRef (otInstance * aInstance)
Get the otNetworkKeyRef
for Thread Network Key.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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
.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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).
Type | Direction | Argument Name | Description |
---|---|---|---|
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).
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
otInstance * | [in] | aInstance | A pointer to an OpenThread instance. |
otThreadBecomeChild#
otError otThreadBecomeChild (otInstance * aInstance)
Attempt to reattach as a child.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
otInstance * | [in] | aInstance | A pointer to an OpenThread instance. |
otThreadDeviceRoleToString#
const char * otThreadDeviceRoleToString (otDeviceRole aRole)
Convert the device role to human-readable string.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
otInstance * | [in] | aInstance | A pointer to an OpenThread instance. |
Returns
The Leader's Weight.
otThreadGetPartitionId#
uint32_t otThreadGetPartitionId (otInstance * aInstance)
Get the Partition ID.
Type | Direction | Argument Name | Description |
---|---|---|---|
otInstance * | [in] | aInstance | A pointer to an OpenThread instance. |
Returns
The Partition ID.
otThreadGetRloc16#
uint16_t otThreadGetRloc16 (otInstance * aInstance)
Get the RLOC16.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
otInstance * | N/A | aInstance |
Must be used when device is attached as a child.
otThreadGetIp6Counters#
const otIpCounters * otThreadGetIp6Counters (otInstance * aInstance)
Gets the IPv6 counters.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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 |
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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.
Type | Direction | Argument Name | Description |
---|---|---|---|
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 |
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.