Modules#

NetworkSteeringState

Network Steering

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.

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_CONFIGURED = 0x01
EMBER_AF_PLUGIN_NETWORK_STEERING_STATE_SCAN_SECONDARY_CONFIGURED = 0x02
EMBER_AF_PLUGIN_NETWORK_STEERING_STATE_SCAN_PRIMARY_INSTALL_CODE = 0x03
EMBER_AF_PLUGIN_NETWORK_STEERING_STATE_SCAN_SECONDARY_INSTALL_CODE = 0x04
EMBER_AF_PLUGIN_NETWORK_STEERING_STATE_SCAN_PRIMARY_CENTRALIZED = 0x05
EMBER_AF_PLUGIN_NETWORK_STEERING_STATE_SCAN_SECONDARY_CENTRALIZED = 0x06
EMBER_AF_PLUGIN_NETWORK_STEERING_STATE_SCAN_PRIMARY_DISTRIBUTED = 0x07
EMBER_AF_PLUGIN_NETWORK_STEERING_STATE_SCAN_SECONDARY_DISTRIBUTED = 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 emAfPluginNetworkSteeringPrimaryChannelMask) 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 emAfPluginNetworkSteeringSecondaryChannelMask). 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 174 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 182 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_CONFIGURED
EMBER_AF_PLUGIN_NETWORK_STEERING_STATE_SCAN_SECONDARY_CONFIGURED
EMBER_AF_PLUGIN_NETWORK_STEERING_STATE_SCAN_PRIMARY_INSTALL_CODE
EMBER_AF_PLUGIN_NETWORK_STEERING_STATE_SCAN_SECONDARY_INSTALL_CODE
EMBER_AF_PLUGIN_NETWORK_STEERING_STATE_SCAN_PRIMARY_CENTRALIZED
EMBER_AF_PLUGIN_NETWORK_STEERING_STATE_SCAN_SECONDARY_CENTRALIZED
EMBER_AF_PLUGIN_NETWORK_STEERING_STATE_SCAN_PRIMARY_DISTRIBUTED
EMBER_AF_PLUGIN_NETWORK_STEERING_STATE_SCAN_SECONDARY_DISTRIBUTED
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 75 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 116 of file app/framework/plugin/network-steering/network-steering.h

Typedef Documentation#

EmberAfPluginNetworkSteeringJoiningState#

typedef uint8_t EmberAfPluginNetworkSteeringJoiningState

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

EmberAfPluginNetworkSteeringOptions#

typedef uint8_t EmberAfPluginNetworkSteeringOptions

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

Variable Documentation#

emAfPluginNetworkSteeringOptionsMask#

EmberAfPluginNetworkSteeringOptions emAfPluginNetworkSteeringOptionsMask

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

emAfPluginNetworkSteeringPrimaryChannelMask#

uint32_t emAfPluginNetworkSteeringPrimaryChannelMask

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


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

emAfPluginNetworkSteeringSecondaryChannelMask#

uint32_t emAfPluginNetworkSteeringSecondaryChannelMask

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


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