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#

Network Steering

API#

Initiate a network-steering procedure.

Stops the network steering procedure.

Enumerations#

enum
SL_ZIGBEE_AF_PLUGIN_NETWORK_STEERING_STATE_NONE = 0x00
SL_ZIGBEE_AF_PLUGIN_NETWORK_STEERING_STATE_SCAN_PRIMARY_CONFIGURED = 0x01
SL_ZIGBEE_AF_PLUGIN_NETWORK_STEERING_STATE_SCAN_PRIMARY_INSTALL_CODE = 0x02
SL_ZIGBEE_AF_PLUGIN_NETWORK_STEERING_STATE_SCAN_PRIMARY_CENTRALIZED = 0x03
SL_ZIGBEE_AF_PLUGIN_NETWORK_STEERING_STATE_SCAN_PRIMARY_DISTRIBUTED = 0x04
SL_ZIGBEE_AF_PLUGIN_NETWORK_STEERING_STATE_SCAN_SECONDARY_CONFIGURED = 0x05
SL_ZIGBEE_AF_PLUGIN_NETWORK_STEERING_STATE_SCAN_SECONDARY_INSTALL_CODE = 0x06
SL_ZIGBEE_AF_PLUGIN_NETWORK_STEERING_STATE_SCAN_SECONDARY_CENTRALIZED = 0x07
SL_ZIGBEE_AF_PLUGIN_NETWORK_STEERING_STATE_SCAN_SECONDARY_DISTRIBUTED = 0x08
SL_ZIGBEE_AF_PLUGIN_NETWORK_STEERING_STATE_SCAN_PRIMARY_USE_ALL_KEYS = 0x09
SL_ZIGBEE_AF_PLUGIN_NETWORK_STEERING_STATE_SCAN_SECONDARY_USE_ALL_KEYS = 0x0A
SL_ZIGBEE_AF_PLUGIN_NETWORK_STEERING_STATE_SCAN_FINISHED = 0x0B
SL_ZIGBEE_AF_PLUGIN_NETWORK_STEERING_STATE_UPDATE_TCLK = 0x10
}

Various states of the network steering process.

enum
SL_ZIGBEE_AF_PLUGIN_NETWORK_STEERING_OPTIONS_NONE = 0x00
SL_ZIGBEE_AF_PLUGIN_NETWORK_STEERING_OPTIONS_NO_TCLK_UPDATE = 0x01
}

Network steering options.

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#

sl_zigbee_af_network_steering_start#

sl_status_t sl_zigbee_af_network_steering_start (void )

Initiate a network-steering procedure.

Parameters
TypeDirectionArgument NameDescription
voidN/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.

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.

Parameters
TypeDirectionArgument NameDescription
voidN/A

Returns


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.