Network Steering#

API and Callbacks for the Network Steering Component.

This component performs the necessary steps to join the network of any Zigbee Profile. It first tries to perform a join using an install code using the primary channel mask, and then the secondary channel mask. If that does not work, it then tries to use the default well-known link key (ZigBeeAlliance09) to join on the primary channel mask, and then the secondary channel mask. Finally, if the previous two key types fail, the component tries to use the distributed security link key (D0D1D2...) to join on the primary channel mask, and then the secondary channel mask.

Modules#

NetworkSteeringState

Network Steering

API#

EmberStatus

Initiate a network-steering procedure.

EmberStatus

Stops the network steering procedure.

Enumerations#

enum
EMBER_AF_PLUGIN_NETWORK_STEERING_STATE_NONE = 0x00
EMBER_AF_PLUGIN_NETWORK_STEERING_STATE_SCAN_PRIMARY_INSTALL_CODE = 0x01
EMBER_AF_PLUGIN_NETWORK_STEERING_STATE_SCAN_PRIMARY_CENTRALIZED = 0x02
EMBER_AF_PLUGIN_NETWORK_STEERING_STATE_SCAN_PRIMARY_DISTRIBUTED = 0x03
EMBER_AF_PLUGIN_NETWORK_STEERING_STATE_SCAN_SECONDARY_INSTALL_CODE = 0x04
EMBER_AF_PLUGIN_NETWORK_STEERING_STATE_SCAN_SECONDARY_CENTRALIZED = 0x05
EMBER_AF_PLUGIN_NETWORK_STEERING_STATE_SCAN_SECONDARY_DISTRIBUTED = 0x06
EMBER_AF_PLUGIN_NETWORK_STEERING_STATE_SCAN_PRIMARY_USE_ALL_KEYS = 0x07
EMBER_AF_PLUGIN_NETWORK_STEERING_STATE_SCAN_SECONDARY_USE_ALL_KEYS = 0x08
EMBER_AF_PLUGIN_NETWORK_STEERING_STATE_SCAN_FINISHED = 0x09
EMBER_AF_PLUGIN_NETWORK_STEERING_STATE_UPDATE_TCLK = 0x10
EMBER_AF_PLUGIN_NETWORK_STEERING_STATE_VERIFY_TCLK = 0x20
}
enum
EMBER_AF_PLUGIN_NETWORK_STEERING_OPTIONS_NONE = 0x00
EMBER_AF_PLUGIN_NETWORK_STEERING_OPTIONS_NO_TCLK_UPDATE = 0x01
}

Variables#

uint32_t

The first set of channels on which to search for joinable networks.

uint32_t

The second set of channels on which to search for joinable networks.

API Documentation#

emberAfPluginNetworkSteeringStart#

EmberStatus emberAfPluginNetworkSteeringStart (void)

Initiate a network-steering procedure.

Parameters
N/A

If the node is currently on a network, it performs network steering in which it opens up the network with a broadcast permit join message.

If the node is not on a network, it scans a series of primary channels (see sli_zigbee_af_network_steering_primary_channel_mask) to find possible networks to join. If it is unable to join any of those networks, it tries scanning on a set of secondary channels (see sli_zigbee_af_network_steering_secondary_channel_mask). Upon completion of this process, the plugin calls emberAfPluginNetworkSteeringCompleteCallback with information regarding the success or failure of the procedure.

This procedure will try to join networks using install codes, the centralized default key, and the distributed default key.

Returns

  • An ::EmberStatus value that indicates the success or failure of the initiating of the network steering process.

Note

  • Do not call this API from a stack status callback, as this plugin acts when its own stack status callback is invoked.


Definition at line 170 of file app/framework/plugin/network-steering/network-steering.h

emberAfPluginNetworkSteeringStop#

EmberStatus emberAfPluginNetworkSteeringStop (void)

Stops the network steering procedure.

Parameters
N/A

Returns

  • An ::EmberStatus value that indicates the success or failure of the initiating of the network steering process.


Definition at line 178 of file app/framework/plugin/network-steering/network-steering.h

Enumeration Documentation#

EmberAfPluginNetworkSteeringState#

EmberAfPluginNetworkSteeringState
Enumerator
EMBER_AF_PLUGIN_NETWORK_STEERING_STATE_NONE
EMBER_AF_PLUGIN_NETWORK_STEERING_STATE_SCAN_PRIMARY_INSTALL_CODE
EMBER_AF_PLUGIN_NETWORK_STEERING_STATE_SCAN_PRIMARY_CENTRALIZED
EMBER_AF_PLUGIN_NETWORK_STEERING_STATE_SCAN_PRIMARY_DISTRIBUTED
EMBER_AF_PLUGIN_NETWORK_STEERING_STATE_SCAN_SECONDARY_INSTALL_CODE
EMBER_AF_PLUGIN_NETWORK_STEERING_STATE_SCAN_SECONDARY_CENTRALIZED
EMBER_AF_PLUGIN_NETWORK_STEERING_STATE_SCAN_SECONDARY_DISTRIBUTED
EMBER_AF_PLUGIN_NETWORK_STEERING_STATE_SCAN_PRIMARY_USE_ALL_KEYS
EMBER_AF_PLUGIN_NETWORK_STEERING_STATE_SCAN_SECONDARY_USE_ALL_KEYS
EMBER_AF_PLUGIN_NETWORK_STEERING_STATE_SCAN_FINISHED
EMBER_AF_PLUGIN_NETWORK_STEERING_STATE_UPDATE_TCLK
EMBER_AF_PLUGIN_NETWORK_STEERING_STATE_VERIFY_TCLK

Definition at line 71 of file app/framework/plugin/network-steering/network-steering.h

EmberAfPluginNetworkSteeringOptions#

EmberAfPluginNetworkSteeringOptions
Enumerator
EMBER_AF_PLUGIN_NETWORK_STEERING_OPTIONS_NONE
EMBER_AF_PLUGIN_NETWORK_STEERING_OPTIONS_NO_TCLK_UPDATE

Definition at line 112 of file app/framework/plugin/network-steering/network-steering.h

Typedef Documentation#

EmberAfPluginNetworkSteeringJoiningState#

typedef uint8_t EmberAfPluginNetworkSteeringJoiningState

Definition at line 109 of file app/framework/plugin/network-steering/network-steering.h

EmberAfPluginNetworkSteeringOptions#

typedef uint8_t EmberAfPluginNetworkSteeringOptions

Definition at line 120 of file app/framework/plugin/network-steering/network-steering.h

Variable Documentation#

sli_zigbee_af_network_steering_options_mask#

EmberAfPluginNetworkSteeringOptions sli_zigbee_af_network_steering_options_mask

Definition at line 127 of file app/framework/plugin/network-steering/network-steering.h

sli_zigbee_af_network_steering_primary_channel_mask#

uint32_t sli_zigbee_af_network_steering_primary_channel_mask

The first set of channels on which to search for joinable networks.


Definition at line 133 of file app/framework/plugin/network-steering/network-steering.h

sli_zigbee_af_network_steering_secondary_channel_mask#

uint32_t sli_zigbee_af_network_steering_secondary_channel_mask

The second set of channels on which to search for joinable networks.


Definition at line 135 of file app/framework/plugin/network-steering/network-steering.h