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.
The plugin operates through a series of states, such as scanning primary channels with different keys, then secondary channels, and so on. These states are represented by enumerations like SL_ZIGBEE_AF_PLUGIN_NETWORK_STEERING_STATE_SCAN_PRIMARY_CENTRALIZED and others.
Modules#
Enumerations#
Various states of the network steering process.
Network steering options.
Variables#
The first set of channels on which to search for joinable networks.
The second set of channels on which to search for joinable networks.
API Documentation#
sl_zigbee_af_network_steering_start#
sl_status_t sl_zigbee_af_network_steering_start (void )
Initiate a network-steering procedure.
Type | Direction | Argument Name | Description |
---|---|---|---|
void | 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 sl_zigbee_af_network_steering_complete_cb 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 sl_status_t value that indicates the success or failure of the initiating of the network steering process. The function may also return the success or failure of sl_zigbee_af_permit_join() if the device is already in a network and the function is called.
SL_STATUS_INVALID_STATE if both channel masks are not configured or network steering is in process.
SL_STATUS_FAIL is scan queue is full.
SL_STATUS_OK if the device has started scanning.
Note
Do not call this API from a stack status callback, as this plugin acts when its own stack status callback is invoked.
sl_zigbee_af_network_steering_stop#
sl_status_t sl_zigbee_af_network_steering_stop (void )
Stops the network steering procedure.
Type | Direction | Argument Name | Description |
---|---|---|---|
void | N/A |
Returns
An sl_status_t value that indicates the success or failure of the initiating of the network steering process.
SL_STATUS_INVALID_STATE if no network steering is in progress.
SL_STATUS_OK if the steering was successfully stopped.
Enumeration Documentation#
sl_zigbee_af_plugin_network_steering_state_t#
sl_zigbee_af_plugin_network_steering_state_t
Various states of the network steering process.
Enumerator | |
---|---|
SL_ZIGBEE_AF_PLUGIN_NETWORK_STEERING_STATE_NONE | (0x00) No network steering in progress |
SL_ZIGBEE_AF_PLUGIN_NETWORK_STEERING_STATE_SCAN_PRIMARY_CONFIGURED | (0x01) Scanning primary mask using pre-configured key |
SL_ZIGBEE_AF_PLUGIN_NETWORK_STEERING_STATE_SCAN_PRIMARY_INSTALL_CODE | (0x02) Scanning secondary mask using pre-configured key |
SL_ZIGBEE_AF_PLUGIN_NETWORK_STEERING_STATE_SCAN_PRIMARY_CENTRALIZED | (0x03) Scanning primary mask using install code |
SL_ZIGBEE_AF_PLUGIN_NETWORK_STEERING_STATE_SCAN_PRIMARY_DISTRIBUTED | (0x04) Scanning secondary mask using install code |
SL_ZIGBEE_AF_PLUGIN_NETWORK_STEERING_STATE_SCAN_SECONDARY_CONFIGURED | (0x05) Scanning primary mask using well-known key |
SL_ZIGBEE_AF_PLUGIN_NETWORK_STEERING_STATE_SCAN_SECONDARY_INSTALL_CODE | (0x06) Scanning secondary mask using well-known key |
SL_ZIGBEE_AF_PLUGIN_NETWORK_STEERING_STATE_SCAN_SECONDARY_CENTRALIZED | (0x07) Scanning primary mask using distributed key |
SL_ZIGBEE_AF_PLUGIN_NETWORK_STEERING_STATE_SCAN_SECONDARY_DISTRIBUTED | (0x08) Scanning secondary mask using distributed key |
SL_ZIGBEE_AF_PLUGIN_NETWORK_STEERING_STATE_SCAN_PRIMARY_USE_ALL_KEYS | (0x09) Scanning primary mask using all keys at once |
SL_ZIGBEE_AF_PLUGIN_NETWORK_STEERING_STATE_SCAN_SECONDARY_USE_ALL_KEYS | (0x0A) Scanning secondary mask using all keys at once |
SL_ZIGBEE_AF_PLUGIN_NETWORK_STEERING_STATE_SCAN_FINISHED | (0x0B) Scan has finished |
SL_ZIGBEE_AF_PLUGIN_NETWORK_STEERING_STATE_UPDATE_TCLK | (0x10) Updating TC Link Key |
sl_zigbee_af_plugin_network_steering_options_t#
sl_zigbee_af_plugin_network_steering_options_t
Network steering options.
Enumerator | |
---|---|
SL_ZIGBEE_AF_PLUGIN_NETWORK_STEERING_OPTIONS_NONE | (0x00) No options specified |
SL_ZIGBEE_AF_PLUGIN_NETWORK_STEERING_OPTIONS_NO_TCLK_UPDATE | (0x01) No TC Link Key Update |
Typedef Documentation#
sl_zigbee_af_plugin_network_steering_joining_state_t#
typedef uint8_t sl_zigbee_af_plugin_network_steering_joining_state_t
sl_zigbee_af_plugin_network_steering_options_t#
typedef uint8_t sl_zigbee_af_plugin_network_steering_options_t
Variable Documentation#
sli_zigbee_af_network_steering_options_mask#
sl_zigbee_af_plugin_network_steering_options_t sli_zigbee_af_network_steering_options_mask
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.
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.