Zigbee Protocol Controller 1.6.0
ZigPC Network Management

The role of the ZigPC Network Management component is to handle all logic related to changing the Zigbee network, such as: network formation adding nodes to the network, discovering nodes, and removing nodes. More...

Modules

 ZigPC Observer API
 Observer API for getting events from zigpc_gateway.
 
 ZigPC Network Management Process
 Process related fixtures for ZigPC Network Management.
 
 ZigPC Net Mgmt Process Event API
 Contiki Process API to send events to ZigPC Net Mgmt.
 

Classes

struct  zigpc_net_mgmt_state_change_request_t
 Container for state change request for the ZigPC Network Management FSM. Depending on the state requested, the FSM will require additional information suppled (that ) More...
 

Typedefs

typedef enum zigpc_net_mgmt_fsm_state zigpc_net_mgmt_fsm_state_t
 Network Management FSM States. More...
 

Enumerations

enum  zigpc_net_mgmt_fsm_state {
  ZIGPC_NET_MGMT_FSM_STATE_MIN_VAL = 0 , ZIGPC_NET_MGMT_FSM_STATE_INIT , ZIGPC_NET_MGMT_FSM_STATE_IDLE , ZIGPC_NET_MGMT_FSM_STATE_NODE_ADD ,
  ZIGPC_NET_MGMT_FSM_STATE_NODE_REMOVE , ZIGPC_NET_MGMT_FSM_STATE_NODE_INTERVIEW , ZIGPC_NET_MGMT_FSM_STATE_MAX_VAL
}
 Network Management FSM States. More...
 

Functions

sl_status_t zigpc_netmgmt_network_permit_joins (bool enable)
 Request to enable/disable permitting Zigbee devices to join the network. More...
 
sl_status_t zigpc_net_mgmt_add_node (const zigbee_eui64_t node_eui64, const zigbee_install_code_t install_code, const uint8_t install_code_length, bool is_well_known_key_add)
 Request to add a new end device to the Zigbee PAN. More...
 
sl_status_t zigpc_net_mgmt_remove_node (const zigbee_eui64_t eui64)
 Request to remove a node already on the network. This request can only be fullfilled if the FSM is in an idle state. The request, if successful, will transition the FSM to the "remove node" state. If the node is not on the network, or if the interview process has not completed, a node interview timeout will expire which will transition back the FSM to the idle state. More...
 
sl_status_t zigpc_net_mgmt_state_change_request (const zigpc_net_mgmt_state_change_request_t *request)
 Request a state change request external to Protocol Controller. This request is usually sent by the Unify MQTT facing components to manually transition to a particular network managment state to perform an action such as add node, remove node, etc. Passing the "idle" state to this request will abort any on-going requests. More...
 

Detailed Description

The role of the ZigPC Network Management component is to handle all logic related to changing the Zigbee network, such as: network formation adding nodes to the network, discovering nodes, and removing nodes.

Typedef Documentation

◆ zigpc_net_mgmt_fsm_state_t

Network Management FSM States.

Enumeration Type Documentation

◆ zigpc_net_mgmt_fsm_state

Network Management FSM States.

Enumerator
ZIGPC_NET_MGMT_FSM_STATE_MIN_VAL 
ZIGPC_NET_MGMT_FSM_STATE_INIT 
ZIGPC_NET_MGMT_FSM_STATE_IDLE 
ZIGPC_NET_MGMT_FSM_STATE_NODE_ADD 
ZIGPC_NET_MGMT_FSM_STATE_NODE_REMOVE 
ZIGPC_NET_MGMT_FSM_STATE_NODE_INTERVIEW 
ZIGPC_NET_MGMT_FSM_STATE_MAX_VAL 

Function Documentation

◆ zigpc_net_mgmt_add_node()

sl_status_t zigpc_net_mgmt_add_node ( const zigbee_eui64_t  node_eui64,
const zigbee_install_code_t  install_code,
const uint8_t  install_code_length,
bool  is_well_known_key_add 
)

Request to add a new end device to the Zigbee PAN.

Parameters
node_eui64To be added End Device
install_codeInstall code buffer
install_code_lengthInstall code length
is_well_known_key_addif True : use well known joining method, if false : use install code method
Returns
sl_status_t Returns if Network Management can service the request

◆ zigpc_net_mgmt_remove_node()

sl_status_t zigpc_net_mgmt_remove_node ( const zigbee_eui64_t  eui64)

Request to remove a node already on the network. This request can only be fullfilled if the FSM is in an idle state. The request, if successful, will transition the FSM to the "remove node" state. If the node is not on the network, or if the interview process has not completed, a node interview timeout will expire which will transition back the FSM to the idle state.

Parameters
eui64Identifier of the node to be interviewed
Returns
sl_status_t SL_STATUS_OK if the request has been accepted, SL_STATUS_BUSY if the network is busy to service the request

◆ zigpc_net_mgmt_state_change_request()

sl_status_t zigpc_net_mgmt_state_change_request ( const zigpc_net_mgmt_state_change_request_t request)

Request a state change request external to Protocol Controller. This request is usually sent by the Unify MQTT facing components to manually transition to a particular network managment state to perform an action such as add node, remove node, etc. Passing the "idle" state to this request will abort any on-going requests.

Parameters
requestNetwork Managment State Change Request
Returns
sl_status_t SL_STATUS_OK if the requested has been accepted as input to the FSM, SL_STATUS_NULL_POINTER if the input is invlid, or SL_STATUS_INVALID_TYPE if the requested state type is unknown.

◆ zigpc_netmgmt_network_permit_joins()

sl_status_t zigpc_netmgmt_network_permit_joins ( bool  enable)

Request to enable/disable permitting Zigbee devices to join the network.

Returns
sl_status_t Returns if Network Management can service the request. If Network management is already going through an node addition through a state change, the request to disable permit joins is denied by returning SL_STATUS_BUSY.