Operational Dataset

This module includes functions for Dataset Updater.

Classes

struct  otMasterKey
 This structure represents a Thread Master Key.
 
struct  otNetworkName
 This structure represents a Network Name.
 
struct  otExtendedPanId
 This structure represents an Extended PAN ID.
 
struct  otPskc
 This structure represents PSKc.
 
struct  otSecurityPolicy
 This structure represent Security Policy.
 
struct  otOperationalDatasetComponents
 This structure represents presence of different components in Active or Pending Operational Dataset.
 
struct  otOperationalDataset
 This structure represents an Active or Pending Operational Dataset.
 
struct  otOperationalDatasetTlvs
 This structure represents an Active or Pending Operational Dataset.

Macros

#define OT_MASTER_KEY_SIZE   16
 Size of the Thread Master Key (bytes)
 
#define OT_NETWORK_NAME_MAX_SIZE   16
 Maximum size of the Thread Network Name field (bytes)
 
#define OT_EXT_PAN_ID_SIZE   8
 Size of a Thread PAN ID (bytes)
 
#define OT_MESH_LOCAL_PREFIX_SIZE   OT_IP6_PREFIX_SIZE
 Size of the Mesh Local Prefix (bytes)
 
#define OT_PSKC_MAX_SIZE   16
 Maximum size of the PSKc (bytes)
 
#define OT_CHANNEL_1_MASK   (1 << 1)
 Channel 1.
 
#define OT_CHANNEL_2_MASK   (1 << 2)
 Channel 2.
 
#define OT_CHANNEL_3_MASK   (1 << 3)
 Channel 3.
 
#define OT_CHANNEL_4_MASK   (1 << 4)
 Channel 4.
 
#define OT_CHANNEL_5_MASK   (1 << 5)
 Channel 5.
 
#define OT_CHANNEL_6_MASK   (1 << 6)
 Channel 6.
 
#define OT_CHANNEL_7_MASK   (1 << 7)
 Channel 7.
 
#define OT_CHANNEL_8_MASK   (1 << 8)
 Channel 8.
 
#define OT_CHANNEL_9_MASK   (1 << 9)
 Channel 9.
 
#define OT_CHANNEL_10_MASK   (1 << 10)
 Channel 10.
 
#define OT_CHANNEL_11_MASK   (1 << 11)
 Channel 11.
 
#define OT_CHANNEL_12_MASK   (1 << 12)
 Channel 12.
 
#define OT_CHANNEL_13_MASK   (1 << 13)
 Channel 13.
 
#define OT_CHANNEL_14_MASK   (1 << 14)
 Channel 14.
 
#define OT_CHANNEL_15_MASK   (1 << 15)
 Channel 15.
 
#define OT_CHANNEL_16_MASK   (1 << 16)
 Channel 16.
 
#define OT_CHANNEL_17_MASK   (1 << 17)
 Channel 17.
 
#define OT_CHANNEL_18_MASK   (1 << 18)
 Channel 18.
 
#define OT_CHANNEL_19_MASK   (1 << 19)
 Channel 19.
 
#define OT_CHANNEL_20_MASK   (1 << 20)
 Channel 20.
 
#define OT_CHANNEL_21_MASK   (1 << 21)
 Channel 21.
 
#define OT_CHANNEL_22_MASK   (1 << 22)
 Channel 22.
 
#define OT_CHANNEL_23_MASK   (1 << 23)
 Channel 23.
 
#define OT_CHANNEL_24_MASK   (1 << 24)
 Channel 24.
 
#define OT_CHANNEL_25_MASK   (1 << 25)
 Channel 25.
 
#define OT_CHANNEL_26_MASK   (1 << 26)
 Channel 26.
 
#define OT_OPERATIONAL_DATASET_MAX_LENGTH   254
 Maximum length of Operational Dataset in bytes.

Typedefs

typedef struct otMasterKey otMasterKey
 This structure represents a Thread Master Key.
 
typedef struct otNetworkName otNetworkName
 This structure represents a Network Name.
 
typedef struct otExtendedPanId otExtendedPanId
 This structure represents an Extended PAN ID.
 
typedef otIp6NetworkPrefix otMeshLocalPrefix
 This structure represents a Mesh Local Prefix.
 
typedef struct otPskc otPskc
 This structure represents a PSKc.
 
typedef struct otSecurityPolicy otSecurityPolicy
 This structure represent Security Policy.
 
typedef uint32_t otChannelMask
 This type represents Channel Mask.
 
typedef struct otOperationalDatasetComponents otOperationalDatasetComponents
 This structure represents presence of different components in Active or Pending Operational Dataset.
 
typedef struct otOperationalDataset otOperationalDataset
 This structure represents an Active or Pending Operational Dataset.
 
typedef struct otOperationalDatasetTlvs otOperationalDatasetTlvs
 This structure represents an Active or Pending Operational Dataset.
 
typedef enum otMeshcopTlvType otMeshcopTlvType
 This enumeration represents meshcop TLV types.
 
typedef void(* otDatasetUpdaterCallback) (otError aError, void *aContext)
 This callback function pointer is called when a Dataset update request finishes, reporting success or failure status of the Dataset update request.

Enumerations

enum  otMeshcopTlvType {
  OT_MESHCOP_TLV_CHANNEL = 0,
  OT_MESHCOP_TLV_PANID = 1,
  OT_MESHCOP_TLV_EXTPANID = 2,
  OT_MESHCOP_TLV_NETWORKNAME = 3,
  OT_MESHCOP_TLV_PSKC = 4,
  OT_MESHCOP_TLV_MASTERKEY = 5,
  OT_MESHCOP_TLV_NETWORK_KEY_SEQUENCE = 6,
  OT_MESHCOP_TLV_MESHLOCALPREFIX = 7,
  OT_MESHCOP_TLV_STEERING_DATA = 8,
  OT_MESHCOP_TLV_BORDER_AGENT_RLOC = 9,
  OT_MESHCOP_TLV_COMMISSIONER_ID = 10,
  OT_MESHCOP_TLV_COMM_SESSION_ID = 11,
  OT_MESHCOP_TLV_SECURITYPOLICY = 12,
  OT_MESHCOP_TLV_GET = 13,
  OT_MESHCOP_TLV_ACTIVETIMESTAMP = 14,
  OT_MESHCOP_TLV_COMMISSIONER_UDP_PORT = 15,
  OT_MESHCOP_TLV_STATE = 16,
  OT_MESHCOP_TLV_JOINER_DTLS = 17,
  OT_MESHCOP_TLV_JOINER_UDP_PORT = 18,
  OT_MESHCOP_TLV_JOINER_IID = 19,
  OT_MESHCOP_TLV_JOINER_RLOC = 20,
  OT_MESHCOP_TLV_JOINER_ROUTER_KEK = 21,
  OT_MESHCOP_TLV_PROVISIONING_URL = 32,
  OT_MESHCOP_TLV_VENDOR_NAME_TLV = 33,
  OT_MESHCOP_TLV_VENDOR_MODEL_TLV = 34,
  OT_MESHCOP_TLV_VENDOR_SW_VERSION_TLV = 35,
  OT_MESHCOP_TLV_VENDOR_DATA_TLV = 36,
  OT_MESHCOP_TLV_VENDOR_STACK_VERSION_TLV = 37,
  OT_MESHCOP_TLV_UDP_ENCAPSULATION_TLV = 48,
  OT_MESHCOP_TLV_IPV6_ADDRESS_TLV = 49,
  OT_MESHCOP_TLV_PENDINGTIMESTAMP = 51,
  OT_MESHCOP_TLV_DELAYTIMER = 52,
  OT_MESHCOP_TLV_CHANNELMASK = 53,
  OT_MESHCOP_TLV_COUNT = 54,
  OT_MESHCOP_TLV_PERIOD = 55,
  OT_MESHCOP_TLV_SCAN_DURATION = 56,
  OT_MESHCOP_TLV_ENERGY_LIST = 57,
  OT_MESHCOP_TLV_DISCOVERYREQUEST = 128,
  OT_MESHCOP_TLV_DISCOVERYRESPONSE = 129,
  OT_MESHCOP_TLV_JOINERADVERTISEMENT = 241
}
 This enumeration represents meshcop TLV types.

Functions

bool otDatasetIsCommissioned (otInstance *aInstance)
 This function indicates whether a valid network is present in the Active Operational Dataset or not.
 
otError otDatasetGetActive (otInstance *aInstance, otOperationalDataset *aDataset)
 This function gets the Active Operational Dataset.
 
otError otDatasetGetActiveTlvs (otInstance *aInstance, otOperationalDatasetTlvs *aDataset)
 This function gets the Active Operational Dataset.
 
otError otDatasetSetActive (otInstance *aInstance, const otOperationalDataset *aDataset)
 This function sets the Active Operational Dataset.
 
otError otDatasetSetActiveTlvs (otInstance *aInstance, const otOperationalDatasetTlvs *aDataset)
 This function sets the Active Operational Dataset.
 
otError otDatasetGetPending (otInstance *aInstance, otOperationalDataset *aDataset)
 This function gets the Pending Operational Dataset.
 
otError otDatasetGetPendingTlvs (otInstance *aInstance, otOperationalDatasetTlvs *aDataset)
 This function gets the Pending Operational Dataset.
 
otError otDatasetSetPending (otInstance *aInstance, const otOperationalDataset *aDataset)
 This function sets the Pending Operational Dataset.
 
otError otDatasetSetPendingTlvs (otInstance *aInstance, const otOperationalDatasetTlvs *aDataset)
 This function sets the Pending Operational Dataset.
 
otError otDatasetSendMgmtActiveGet (otInstance *aInstance, const otOperationalDatasetComponents *aDatasetComponents, const uint8_t *aTlvTypes, uint8_t aLength, const otIp6Address *aAddress)
 This function sends MGMT_ACTIVE_GET.
 
otError otDatasetSendMgmtActiveSet (otInstance *aInstance, const otOperationalDataset *aDataset, const uint8_t *aTlvs, uint8_t aLength)
 This function sends MGMT_ACTIVE_SET.
 
otError otDatasetSendMgmtPendingGet (otInstance *aInstance, const otOperationalDatasetComponents *aDatasetComponents, const uint8_t *aTlvTypes, uint8_t aLength, const otIp6Address *aAddress)
 This function sends MGMT_PENDING_GET.
 
otError otDatasetSendMgmtPendingSet (otInstance *aInstance, const otOperationalDataset *aDataset, const uint8_t *aTlvs, uint8_t aLength)
 This function sends MGMT_PENDING_SET.
 
otError otDatasetGeneratePskc (const char *aPassPhrase, const otNetworkName *aNetworkName, const otExtendedPanId *aExtPanId, otPskc *aPskc)
 This function generates PSKc from a given pass-phrase, network name, and extended PAN ID.
 
otError otDatasetCreateNewNetwork (otInstance *aInstance, otOperationalDataset *aDataset)
 This method creates a new Operational Dataset to use when forming a new network.
 
uint32_t otDatasetGetDelayTimerMinimal (otInstance *aInstance)
 Get minimal delay timer.
 
otError otDatasetSetDelayTimerMinimal (otInstance *aInstance, uint32_t aDelayTimerMinimal)
 Set minimal delay timer.
 
otError otDatasetUpdaterRequestUpdate (otInstance *aInstance, const otOperationalDataset *aDataset, otDatasetUpdaterCallback aCallback, void *aContext)
 This function requests an update to Operational Dataset.
 
void otDatasetUpdaterCancelUpdate (otInstance *aInstance)
 This function cancels an ongoing (if any) Operational Dataset update request.
 
bool otDatasetUpdaterIsUpdateOngoing (otInstance *aInstance)
 This function indicates whether there is an ongoing Operation Dataset update request.

Variables

OT_TOOL_PACKED_BEGIN struct otMasterKey OT_TOOL_PACKED_END

Detailed Description

This module includes functions for Dataset Updater.

The functions in this module are available when Dataset Updater feature is enabled (i.e. OPENTHREAD_CONFIG_DATASET_UPDATER_ENABLE is set to 1). Further this feature is available only on an FTD build.

Typedef Documentation

◆ otDatasetUpdaterCallback

typedef void(* otDatasetUpdaterCallback) (otError aError, void *aContext)

This callback function pointer is called when a Dataset update request finishes, reporting success or failure status of the Dataset update request.

Parameters
[in]aErrorThe error status. OT_ERROR_NONE indicates successful Dataset update. OT_ERROR_INVALID_STATE indicates failure due invalid state (MLE being disabled). OT_ERROR_ALREADY indicates failure due to another device within network requesting a conflicting Dataset update.
[in]aContextA pointer to the arbitrary context (provided by user in otDatasetUpdaterRequestUpdate()).

◆ otOperationalDataset

This structure represents an Active or Pending Operational Dataset.

Components in Dataset are optional. mComponets structure specifies which components are present in the Dataset.

◆ otOperationalDatasetTlvs

This structure represents an Active or Pending Operational Dataset.

The Operational Dataset is TLV encoded as specified by Thread.

Enumeration Type Documentation

◆ otMeshcopTlvType

This enumeration represents meshcop TLV types.

Enumerator
OT_MESHCOP_TLV_CHANNEL 

meshcop Channel TLV

OT_MESHCOP_TLV_PANID 

meshcop Pan Id TLV

OT_MESHCOP_TLV_EXTPANID 

meshcop Extended Pan Id TLV

OT_MESHCOP_TLV_NETWORKNAME 

meshcop Network Name TLV

OT_MESHCOP_TLV_PSKC 

meshcop PSKc TLV

OT_MESHCOP_TLV_MASTERKEY 

meshcop Network Master Key TLV

OT_MESHCOP_TLV_NETWORK_KEY_SEQUENCE 

meshcop Network Key Sequence TLV

OT_MESHCOP_TLV_MESHLOCALPREFIX 

meshcop Mesh Local Prefix TLV

OT_MESHCOP_TLV_STEERING_DATA 

meshcop Steering Data TLV

OT_MESHCOP_TLV_BORDER_AGENT_RLOC 

meshcop Border Agent Locator TLV

OT_MESHCOP_TLV_COMMISSIONER_ID 

meshcop Commissioner ID TLV

OT_MESHCOP_TLV_COMM_SESSION_ID 

meshcop Commissioner Session ID TLV

OT_MESHCOP_TLV_SECURITYPOLICY 

meshcop Security Policy TLV

OT_MESHCOP_TLV_GET 

meshcop Get TLV

OT_MESHCOP_TLV_ACTIVETIMESTAMP 

meshcop Active Timestamp TLV

OT_MESHCOP_TLV_COMMISSIONER_UDP_PORT 

meshcop Commissioner UDP Port TLV

OT_MESHCOP_TLV_STATE 

meshcop State TLV

OT_MESHCOP_TLV_JOINER_DTLS 

meshcop Joiner DTLS Encapsulation TLV

OT_MESHCOP_TLV_JOINER_UDP_PORT 

meshcop Joiner UDP Port TLV

OT_MESHCOP_TLV_JOINER_IID 

meshcop Joiner IID TLV

OT_MESHCOP_TLV_JOINER_RLOC 

meshcop Joiner Router Locator TLV

OT_MESHCOP_TLV_JOINER_ROUTER_KEK 

meshcop Joiner Router KEK TLV

OT_MESHCOP_TLV_PROVISIONING_URL 

meshcop Provisioning URL TLV

OT_MESHCOP_TLV_VENDOR_NAME_TLV 

meshcop Vendor Name TLV

OT_MESHCOP_TLV_VENDOR_MODEL_TLV 

meshcop Vendor Model TLV

OT_MESHCOP_TLV_VENDOR_SW_VERSION_TLV 

meshcop Vendor SW Version TLV

OT_MESHCOP_TLV_VENDOR_DATA_TLV 

meshcop Vendor Data TLV

OT_MESHCOP_TLV_VENDOR_STACK_VERSION_TLV 

meshcop Vendor Stack Version TLV

OT_MESHCOP_TLV_UDP_ENCAPSULATION_TLV 

meshcop UDP encapsulation TLV

OT_MESHCOP_TLV_IPV6_ADDRESS_TLV 

meshcop IPv6 address TLV

OT_MESHCOP_TLV_PENDINGTIMESTAMP 

meshcop Pending Timestamp TLV

OT_MESHCOP_TLV_DELAYTIMER 

meshcop Delay Timer TLV

OT_MESHCOP_TLV_CHANNELMASK 

meshcop Channel Mask TLV

OT_MESHCOP_TLV_COUNT 

meshcop Count TLV

OT_MESHCOP_TLV_PERIOD 

meshcop Period TLV

OT_MESHCOP_TLV_SCAN_DURATION 

meshcop Scan Duration TLV

OT_MESHCOP_TLV_ENERGY_LIST 

meshcop Energy List TLV

OT_MESHCOP_TLV_DISCOVERYREQUEST 

meshcop Discovery Request TLV

OT_MESHCOP_TLV_DISCOVERYRESPONSE 

meshcop Discovery Response TLV

OT_MESHCOP_TLV_JOINERADVERTISEMENT 

meshcop Joiner Advertisement TLV

Function Documentation

◆ otDatasetCreateNewNetwork()

otError otDatasetCreateNewNetwork ( otInstance aInstance,
otOperationalDataset aDataset 
)

This method creates a new Operational Dataset to use when forming a new network.

Parameters
[in]aInstanceA pointer to an OpenThread instance.
[out]aDatasetThe Operational Dataset.
Return values
OT_ERROR_NONESuccessfully created a new Operational Dataset.
OT_ERROR_FAILEDFailed to generate random values for new parameters.

◆ otDatasetGeneratePskc()

otError otDatasetGeneratePskc ( const char *  aPassPhrase,
const otNetworkName aNetworkName,
const otExtendedPanId aExtPanId,
otPskc aPskc 
)

This function generates PSKc from a given pass-phrase, network name, and extended PAN ID.

PSKc is used to establish the Commissioner Session.

Parameters
[in]aPassPhraseThe commissioning pass-phrase.
[in]aNetworkNameThe network name for PSKc computation.
[in]aExtPanIdThe extended PAN ID for PSKc computation.
[out]aPskcA pointer to variable to output the generated PSKc.
Return values
OT_ERROR_NONESuccessfully generate PSKc.
OT_ERROR_INVALID_ARGSIf any of the input arguments is invalid.

◆ otDatasetGetActive()

otError otDatasetGetActive ( otInstance aInstance,
otOperationalDataset aDataset 
)

This function gets the Active Operational Dataset.

Parameters
[in]aInstanceA pointer to an OpenThread instance.
[out]aDatasetA pointer to where the Active Operational Dataset will be placed.
Return values
OT_ERROR_NONESuccessfully retrieved the Active Operational Dataset.
OT_ERROR_NOT_FOUNDNo corresponding value in the setting store.

◆ otDatasetGetActiveTlvs()

otError otDatasetGetActiveTlvs ( otInstance aInstance,
otOperationalDatasetTlvs aDataset 
)

This function gets the Active Operational Dataset.

Parameters
[in]aInstanceA pointer to an OpenThread instance.
[out]aDatasetA pointer to where the Active Operational Dataset will be placed.
Return values
OT_ERROR_NONESuccessfully retrieved the Active Operational Dataset.
OT_ERROR_NOT_FOUNDNo corresponding value in the setting store.

◆ otDatasetGetDelayTimerMinimal()

uint32_t otDatasetGetDelayTimerMinimal ( otInstance aInstance)

Get minimal delay timer.

Parameters
[in]aInstanceA pointer to an OpenThread instance.
Return values
thevalue of minimal delay timer (in ms).

◆ otDatasetGetPending()

otError otDatasetGetPending ( otInstance aInstance,
otOperationalDataset aDataset 
)

This function gets the Pending Operational Dataset.

Parameters
[in]aInstanceA pointer to an OpenThread instance.
[out]aDatasetA pointer to where the Pending Operational Dataset will be placed.
Return values
OT_ERROR_NONESuccessfully retrieved the Pending Operational Dataset.
OT_ERROR_NOT_FOUNDNo corresponding value in the setting store.

◆ otDatasetGetPendingTlvs()

otError otDatasetGetPendingTlvs ( otInstance aInstance,
otOperationalDatasetTlvs aDataset 
)

This function gets the Pending Operational Dataset.

Parameters
[in]aInstanceA pointer to an OpenThread instance.
[out]aDatasetA pointer to where the Pending Operational Dataset will be placed.
Return values
OT_ERROR_NONESuccessfully retrieved the Pending Operational Dataset.
OT_ERROR_NOT_FOUNDNo corresponding value in the setting store.

◆ otDatasetIsCommissioned()

bool otDatasetIsCommissioned ( otInstance aInstance)

This function indicates whether a valid network is present in the Active Operational Dataset or not.

Parameters
[in]aInstanceA pointer to an OpenThread instance.
Returns
TRUE if a valid network is present in the Active Operational Dataset, FALSE otherwise.

◆ otDatasetSendMgmtActiveGet()

otError otDatasetSendMgmtActiveGet ( otInstance aInstance,
const otOperationalDatasetComponents aDatasetComponents,
const uint8_t *  aTlvTypes,
uint8_t  aLength,
const otIp6Address aAddress 
)

This function sends MGMT_ACTIVE_GET.

Parameters
[in]aInstanceA pointer to an OpenThread instance.
[in]aDatasetComponentsA pointer to a Dataset Components structure specifying which components to request.
[in]aTlvTypesA pointer to array containing additional raw TLV types to be requested.
[in]aLengthThe length of aTlvTypes.
[in]aAddressA pointer to the IPv6 destination, if it is NULL, will use Leader ALOC as default.
Return values
OT_ERROR_NONESuccessfully send the meshcop dataset command.
OT_ERROR_NO_BUFSInsufficient buffer space to send.

◆ otDatasetSendMgmtActiveSet()

otError otDatasetSendMgmtActiveSet ( otInstance aInstance,
const otOperationalDataset aDataset,
const uint8_t *  aTlvs,
uint8_t  aLength 
)

This function sends MGMT_ACTIVE_SET.

Parameters
[in]aInstanceA pointer to an OpenThread instance.
[in]aDatasetA pointer to operational dataset.
[in]aTlvsA pointer to TLVs.
[in]aLengthThe length of TLVs.
Return values
OT_ERROR_NONESuccessfully send the meshcop dataset command.
OT_ERROR_NO_BUFSInsufficient buffer space to send.

◆ otDatasetSendMgmtPendingGet()

otError otDatasetSendMgmtPendingGet ( otInstance aInstance,
const otOperationalDatasetComponents aDatasetComponents,
const uint8_t *  aTlvTypes,
uint8_t  aLength,
const otIp6Address aAddress 
)

This function sends MGMT_PENDING_GET.

Parameters
[in]aInstanceA pointer to an OpenThread instance.
[in]aDatasetComponentsA pointer to a Dataset Components structure specifying which components to request.
[in]aTlvTypesA pointer to array containing additional raw TLV types to be requested.
[in]aLengthThe length of aTlvTypes.
[in]aAddressA pointer to the IPv6 destination, if it is NULL, will use Leader ALOC as default.
Return values
OT_ERROR_NONESuccessfully send the meshcop dataset command.
OT_ERROR_NO_BUFSInsufficient buffer space to send.

◆ otDatasetSendMgmtPendingSet()

otError otDatasetSendMgmtPendingSet ( otInstance aInstance,
const otOperationalDataset aDataset,
const uint8_t *  aTlvs,
uint8_t  aLength 
)

This function sends MGMT_PENDING_SET.

Parameters
[in]aInstanceA pointer to an OpenThread instance.
[in]aDatasetA pointer to operational dataset.
[in]aTlvsA pointer to TLVs.
[in]aLengthThe length of TLVs.
Return values
OT_ERROR_NONESuccessfully send the meshcop dataset command.
OT_ERROR_NO_BUFSInsufficient buffer space to send.

◆ otDatasetSetActive()

otError otDatasetSetActive ( otInstance aInstance,
const otOperationalDataset aDataset 
)

This function sets the Active Operational Dataset.

If the dataset does not include an Active Timestamp, the dataset is only partially complete.

If Thread is enabled on a device that has a partially complete Active Dataset, the device will attempt to attach to an existing Thread network using any existing information in the dataset. Only the Thread Master Key is needed to attach to a network.

If channel is not included in the dataset, the device will send MLE Announce messages across different channels to find neighbors on other channels.

If the device successfully attaches to a Thread network, the device will then retrieve the full Active Dataset from its Parent. Note that a router-capable device will not transition to the Router or Leader roles until it has a complete Active Dataset.

Parameters
[in]aInstanceA pointer to an OpenThread instance.
[in]aDatasetA pointer to the Active Operational Dataset.
Return values
OT_ERROR_NONESuccessfully set the Active Operational Dataset.
OT_ERROR_NO_BUFSInsufficient buffer space to set the Active Operational Dataset.
OT_ERROR_NOT_IMPLEMENTEDThe platform does not implement settings functionality.

◆ otDatasetSetActiveTlvs()

otError otDatasetSetActiveTlvs ( otInstance aInstance,
const otOperationalDatasetTlvs aDataset 
)

This function sets the Active Operational Dataset.

If the dataset does not include an Active Timestamp, the dataset is only partially complete.

If Thread is enabled on a device that has a partially complete Active Dataset, the device will attempt to attach to an existing Thread network using any existing information in the dataset. Only the Thread Master Key is needed to attach to a network.

If channel is not included in the dataset, the device will send MLE Announce messages across different channels to find neighbors on other channels.

If the device successfully attaches to a Thread network, the device will then retrieve the full Active Dataset from its Parent. Note that a router-capable device will not transition to the Router or Leader roles until it has a complete Active Dataset.

Parameters
[in]aInstanceA pointer to an OpenThread instance.
[in]aDatasetA pointer to the Active Operational Dataset.
Return values
OT_ERROR_NONESuccessfully set the Active Operational Dataset.
OT_ERROR_NO_BUFSInsufficient buffer space to set the Active Operational Dataset.
OT_ERROR_NOT_IMPLEMENTEDThe platform does not implement settings functionality.

◆ otDatasetSetDelayTimerMinimal()

otError otDatasetSetDelayTimerMinimal ( otInstance aInstance,
uint32_t  aDelayTimerMinimal 
)

Set minimal delay timer.

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.
Parameters
[in]aInstanceA pointer to an OpenThread instance.
[in]aDelayTimerMinimalThe value of minimal delay timer (in ms).
Return values
OT_ERROR_NONESuccessfully set minimal delay timer.
OT_ERROR_INVALID_ARGSIf aDelayTimerMinimal is not valid.

◆ otDatasetSetPending()

otError otDatasetSetPending ( otInstance aInstance,
const otOperationalDataset aDataset 
)

This function sets the Pending Operational Dataset.

Parameters
[in]aInstanceA pointer to an OpenThread instance.
[in]aDatasetA pointer to the Pending Operational Dataset.
Return values
OT_ERROR_NONESuccessfully set the Pending Operational Dataset.
OT_ERROR_NO_BUFSInsufficient buffer space to set the Pending Operational Dataset.
OT_ERROR_NOT_IMPLEMENTEDThe platform does not implement settings functionality.

◆ otDatasetSetPendingTlvs()

otError otDatasetSetPendingTlvs ( otInstance aInstance,
const otOperationalDatasetTlvs aDataset 
)

This function sets the Pending Operational Dataset.

Parameters
[in]aInstanceA pointer to an OpenThread instance.
[in]aDatasetA pointer to the Pending Operational Dataset.
Return values
OT_ERROR_NONESuccessfully set the Pending Operational Dataset.
OT_ERROR_NO_BUFSInsufficient buffer space to set the Pending Operational Dataset.
OT_ERROR_NOT_IMPLEMENTEDThe platform does not implement settings functionality.

◆ otDatasetUpdaterCancelUpdate()

void otDatasetUpdaterCancelUpdate ( otInstance aInstance)

This function cancels an ongoing (if any) Operational Dataset update request.

Parameters
[in]aInstanceA pointer to an OpenThread instance.

◆ otDatasetUpdaterIsUpdateOngoing()

bool otDatasetUpdaterIsUpdateOngoing ( otInstance aInstance)

This function indicates whether there is an ongoing Operation Dataset update request.

Parameters
[in]aInstanceA pointer to an OpenThread instance.
Return values
TRUEThere is an ongoing update.
FALSEThere is no ongoing update.

◆ otDatasetUpdaterRequestUpdate()

otError otDatasetUpdaterRequestUpdate ( otInstance aInstance,
const otOperationalDataset aDataset,
otDatasetUpdaterCallback  aCallback,
void *  aContext 
)

This function requests an update to Operational Dataset.

aDataset should contain the fields to be updated and their new value. It must not contain Active or Pending Timestamp fields. The Delay field is optional, if not provided a default value (1000 ms) would be used.

Parameters
[in]aInstanceA pointer to an OpenThread instance.
[in]aDatasetA pointer to the Dataset containing the fields to change.
[in]aCallbackA callback to indicate when Dataset update request finishes.
[in]aContextAn arbitrary context passed to callback.
Return values
OT_ERROR_NONEDataset update started successfully (aCallback will be invoked on completion).
OT_ERROR_INVALID_STATEDevice is disabled (MLE is disabled).
OT_ERROR_INVALID_ARGSThe aDataset is not valid (contains Active or Pending Timestamp).
OT_ERROR_BUSYCannot start update, a previous one is ongoing.
OT_ERROR_NO_BUFSCould not allocated buffer to save Dataset.