Logo
Developing with ZBOSS for Zigbee
zb_config.h File Reference
#include "zb_vendor.h"
#include "zb_config_common.h"
#include "zb_config_platform.h"

Macros

#define ZB_STACK_SPEC_VERSION   23U
 
#define ZB_BDB_ENABLE_FINDING_BINDING
 
#define ZB_ENABLE_ZGP
 
#define ZB_REJOIN_BACKOFF
 
#define ZB_DISTRIBUTED_SECURITY_ON
 
#define APS_FRAGMENTATION
 
#define ZB_BEACON_SURVEY
 
#define ZB_PARENT_CLASSIFICATION
 
#define TC_SWAPOUT
 
#define ZB_SECURITY_INSTALLCODES
 
#define ZB_ENABLE_ZGP_CLUSTER
 
#define ZB_ENABLE_ZGP_SECUR
 
#define ZB_USEALIAS
 
#define ZB_ENABLE_ZGP_DIRECT
 
#define ZB_ENABLE_ZGP_TX_QUEUE
 
#define ZB_ZGP_SINK_TBL_SIZE   32U
 
#define ZB_ZGP_DEFAULT_LINK_KEY   "ZigBeeAlliance09"
 
#define ZB_ZGP_DEFAULT_SHARED_SECURITY_KEY_TYPE   ZB_ZGP_SEC_KEY_TYPE_NO_KEY
 
#define ZB_ZGP_DEFAULT_COMMISSIONING_WINDOW   180U
 
#define ZB_ZGP_MIN_PROXY_TABLE_ENTRY_SIZE   7U
 
#define ZB_ZGP_PROXY_COMMISSIONING_DEFAULT_COMMUNICATION_MODE   ZGP_PROXY_COMM_MODE_UNICAST
 
#define ZB_ZGP_DEFAULT_COMMISSIONING_EXIT_MODE   ZGP_COMMISSIONING_EXIT_MODE_ON_PAIRING_SUCCESS
 
#define ZB_ZGP_DEFAULT_SEC_LEVEL_MIN_GPD_SEC_LEVEL   ZB_ZGP_SEC_LEVEL_FULL_NO_ENC
 
#define ZB_ZGP_DEFAULT_SEC_LEVEL_PROTECTION_WITH_GP_LINK_KEY   ZB_ZGP_SEC_LEVEL_PROTECTION_WITH_GP_LINK_KEY
 
#define ZB_ZGP_DEFAULT_SEC_LEVEL_INVOLVE_TC   ZB_ZGP_SEC_LEVEL_PROTECTION_DO_NOT_INVOLVE_TC
 
#define ZB_ZGP_MAX_TEMP_MASTER_COUNT   0x03U
 
#define ZB_ZGP_DMAX_FOR_ACCUMULATE_TEMP_MASTER_INFO   100U
 
#define ZB_ZGP_MIN_SINK_TABLE_ENTRY_SIZE   8U
 
#define MAX_ZGP_CLUSTER_GPDF_PAYLOAD_SIZE   65U /* (64 for APP_000 + 1 byte header size) */
 
#define ZB_GP_DMIN_U_MS   5U
 
#define ZB_GP_DMIN_B_MS   32U
 
#define ZB_ZGP_DEFAULT_COMMUNICATION_MODE   ZGP_COMMUNICATION_MODE_GROUPCAST_DERIVED
 
#define ZB_ZGP_TX_QUEUE_SIZE   10U
 
#define ZB_ZGP_TX_PACKET_INFO_COUNT   ZB_ZGP_TX_QUEUE_SIZE
 
#define ZB_ZGP_TX_CMD_PLD_MAX_SIZE   64U /* Maximum payload size of APP_0000 packet */
 
#define ZB_ZGP_LED_COMMISSIONING_PARAMS   ZB_LED_ARG_CREATE(0, ZB_LED_BLINK_HALF_SEC)
 
#define ZB_ENABLE_HA
 
#define ZB_DEV_MANUFACTURER_TABLE_SIZE   32U
 
#define ZB_ZGPD_GPFS_SIZE   4U
 
#define ZB_TRANSCEIVER_ALL_CHANNELS_MASK   0x07FFF800U /* 0000.0111 1111.1111 1111.1000 0000.0000*/
 
#define MAC_DEVICE_TABLE_SIZE   4U
 
#define ZB_VERSION   "0.2.0.1"
 
#define STACK_NETWORK_SELECT   0x00U
 
#define STACK_2007   0x01U
 
#define STACK_PRO   0x02U
 
#define ZB_PRO_STACK
 
#define ZB_TIMER_32
 
#define ZB_CB_QUANT   1U
 
#define ZB_DEFAULT_APS_CHANNEL_MASK   (ZB_TRANSCEIVER_ALL_CHANNELS_MASK)
 
#define ZB_NWK_STOCHASTIC_ADDRESS_ASSIGN
 
#define ZB_NWK_MAX_PATH_LENGTH   5U
 
#define ZB_NWK_MAX_SRC_ROUTES   ZB_NEIGHBOR_TABLE_SIZE
 
#define ZB_NWK_SRC_ROUTE_TABLE_EXPIRY   60U
 
#define ZB_MIN_TIME_BETWEEN_MTORR   ZB_MILLISECONDS_TO_BEACON_INTERVAL(10000u)
 
#define ZB_DELAY_BEFORE_ADVISED_MTORR   ZB_MILLISECONDS_TO_BEACON_INTERVAL(2000u)
 
#define ZB_DELAY_BEFORE_ADVISED_MTORR_HIPRI   ZB_MILLISECONDS_TO_BEACON_INTERVAL(500u)
 
#define ZB_DELAY_BEFORE_MTORR_AT_BOOT   ZB_MILLISECONDS_TO_BEACON_INTERVAL(100u)
 
#define ZB_JOIN_CLIENT
 
#define ZB_ED_FUNC
 
#define ZB_FORMATION
 
#define ZB_ROUTER_SECURITY
 
#define ZB_ED_FUNC
 
#define ZB_NEIGHBOR_TABLE_SIZE   32U
 
#define ZB_SCHEDULER_Q_SIZE   16U
 
#define ZB_TIME_ED_IDLE   ZB_MILLISECONDS_TO_BEACON_INTERVAL(7500)
 
#define ZB_NWK_ROUTING
 
#define N_SECUR_MATERIAL   3U
 
#define ZB_NWK_MESH_ROUTING
 
#define ZB_MAX_EP_NUMBER   5U
 
#define ZB_APS_SRC_BINDING_TABLE_SIZE   32U
 
#define ZB_APS_DST_BINDING_TABLE_SIZE   32U
 
#define ZB_APS_GROUP_TABLE_SIZE   16U
 
#define ZB_APS_ENDPOINTS_IN_GROUP_TABLE   8U
 
#define ZB_APS_GROUP_UP_Q_SIZE   8U
 
#define ZB_N_APS_KEY_PAIR_ARR_MAX_SIZE   5U
 
#define ZB_APS_SECURITY_TIME_OUT_PERIOD_DEFAULT   10000U
 
#define ZB_N_APS_ACK_WAIT_DURATION(_rx_on_when_idle)
 
#define ZB_IEEE_ADDR_TABLE_SIZE   101U
 
#define ZB_PANID_TABLE_SIZE   16U
 
#define ZB_DEFAULT_SCAN_DURATION   5U
 
#define ZB_DEFAULT_SCAN_DURATION_SUB_GHZ   ZB_DEFAULT_SCAN_DURATION
 
#define ZB_ZDO_PENDING_LEAVE_SIZE   4U
 
#define ZB_CHANNEL_PAGES_MAX_NUM   11u
 
#define ZB_CHANNEL_PAGES_NUM   1u
 
#define ZB_BUF_Q_SIZE   8U
 
#define ZB_IO_BUF_SIZE   152U
 
#define ZB_BUF_ALLOC_ALIGN   (4U)
 
#define ZB_APS_MAX_IN_FRAGMENT_TRANSMISSIONS   3U
 
#define ZB_IOBUF_POOL_SIZE   26U
 
#define ZB_NWK_ROUTING_FAILURE_ATTEMPTS_NUM   1U
 
#define ZB_NWK_ROUTING_FAILURE_EXPIRY_STEP   (ZB_NWK_ROUTING_TABLE_EXPIRY / ZB_NWK_ROUTING_FAILURE_ATTEMPTS_NUM)
 
#define ZB_ZDO_KEY_NEGOTIATIONS_NUM   1U
 
#define ZB_ZDO_PARENT_LINK_FAILURE_CNT   12U
 
#define ZB_ENABLE_INTER_PAN_EXCHANGE
 Controls inter-PAN exchange feature. More...
 
#define ZB_NEED_AES128_DEC
 
#define ZB_ZLL_ENABLE_COMMISSIONING_CLIENT
 
#define ZB_ZLL_ENABLE_COMMISSIONING_SERVER
 
#define ZB_ZLL_ADDR_ASSIGN_CAPABLE
 
#define ZB_ZLL_PRIMARY_CHANNELS   {11, 15, 20, 25}
 
#define ZB_TRACE_SERIAL_BAUDRATE   115200U
 
#define ZB_WATCHDOG_SCHED_QUANT   (20U * ZB_TIME_ONE_SECOND)
 
#define MAC_FRAME_VERSION   MAC_FRAME_IEEE_802_15_4_2003
 
#define ZB_ZGP_APP_DESCR_REPORTS_NUM   3U
 
#define ZB_ZGP_APP_DESCR_REPORT_DATA_SIZE   32U
 
#define MAC_AUTO_DELAY_IN_MAC_GP_SEND
 
#define ZB_GPD_RX_OFFSET_MS   20U
 
#define ZB_GPD_TX_OFFSET_US   (ZB_MILLISECONDS_TO_USEC(ZB_GPD_RX_OFFSET_MS))
 
#define ZB_GPD_MIN_RX_WINDOW_MS   50U
 
#define ZB_LAZY_COUNTER_INTERVAL   1023U
 
#define ZB_NVRAM_DATASET_MIGRATION
 
#define ZB_STORE_ADDR_MAP
 
#define ZB_STORE_NEIGHBOR_TBL
 
#define ZB_NO_NWK_MULTICAST
 
#define ZB_USE_SLEEP
 
#define ZB_N_BUF_IDS   (ZB_IOBUF_POOL_SIZE + 1U)
 
#define ZB_APS_USER_PAYLOAD
 
#define ZB_LQI_MIN   0
 
#define ZB_LQI_MAX   255
 
#define ZB_RSSI_MIN   -120
 
#define ZB_RSSI_MAX   20
 
#define ZB_DEPRECATED_API
 
#define ZB_SIGNAL_HANDLERS_MAX   5U
 
#define ZB_NWK_ADDR_REQ_PENDING_LIMIT   3U
 
#define ZB_COUNT_CHILDREN
 
#define ZB_DIAG_CORE_WATCHDOG_TMO_MS   1000U
 

Macro Definition Documentation

§ APS_FRAGMENTATION

#define APS_FRAGMENTATION

§ MAC_DEVICE_TABLE_SIZE

#define MAC_DEVICE_TABLE_SIZE   4U

§ MAX_ZGP_CLUSTER_GPDF_PAYLOAD_SIZE

#define MAX_ZGP_CLUSTER_GPDF_PAYLOAD_SIZE   65U /* (64 for APP_000 + 1 byte header size) */

§ N_SECUR_MATERIAL

#define N_SECUR_MATERIAL   3U

Number of secure materials to store

§ TC_SWAPOUT

#define TC_SWAPOUT

§ ZB_APS_USER_PAYLOAD

#define ZB_APS_USER_PAYLOAD

§ ZB_BDB_ENABLE_FINDING_BINDING

#define ZB_BDB_ENABLE_FINDING_BINDING

Load common ZBOSS definitions

§ ZB_BEACON_SURVEY

#define ZB_BEACON_SURVEY

§ ZB_CB_QUANT

#define ZB_CB_QUANT   1U

§ ZB_COUNT_CHILDREN

#define ZB_COUNT_CHILDREN

§ ZB_DELAY_BEFORE_ADVISED_MTORR

#define ZB_DELAY_BEFORE_ADVISED_MTORR   ZB_MILLISECONDS_TO_BEACON_INTERVAL(2000u)

If advised to send MTORR, do it after that delay

§ ZB_DELAY_BEFORE_ADVISED_MTORR_HIPRI

#define ZB_DELAY_BEFORE_ADVISED_MTORR_HIPRI   ZB_MILLISECONDS_TO_BEACON_INTERVAL(500u)

§ ZB_DELAY_BEFORE_MTORR_AT_BOOT

#define ZB_DELAY_BEFORE_MTORR_AT_BOOT   ZB_MILLISECONDS_TO_BEACON_INTERVAL(100u)

Delay to Send MTORR just after boot

§ ZB_DEPRECATED_API

#define ZB_DEPRECATED_API

§ ZB_DEV_MANUFACTURER_TABLE_SIZE

#define ZB_DEV_MANUFACTURER_TABLE_SIZE   32U

Size of table used for long addresses compression: 3 bytes of manufacturer ID.

ZBOSS implements long address compression: 3 bytes of manufacturer ID are stored in the separate table; reference to manufacturer entry is stored in the long address giving 2 bytes economy.

That is an absolute limit of numbers of manufacturers known to the device.

Note
All that machinery will not work if instead of legal manufacturer IDs (or illegal, but fixed IDs) use random values.

§ ZB_DIAG_CORE_WATCHDOG_TMO_MS

#define ZB_DIAG_CORE_WATCHDOG_TMO_MS   1000U

§ ZB_DISTRIBUTED_SECURITY_ON

#define ZB_DISTRIBUTED_SECURITY_ON

§ ZB_ED_FUNC [1/2]

#define ZB_ED_FUNC

ZB end device functionality

§ ZB_ED_FUNC [2/2]

#define ZB_ED_FUNC

ZB end device functionality

§ ZB_ENABLE_HA

#define ZB_ENABLE_HA

§ ZB_ENABLE_ZGP

#define ZB_ENABLE_ZGP

§ ZB_ENABLE_ZGP_CLUSTER

#define ZB_ENABLE_ZGP_CLUSTER

§ ZB_ENABLE_ZGP_DIRECT

#define ZB_ENABLE_ZGP_DIRECT

§ ZB_ENABLE_ZGP_SECUR

#define ZB_ENABLE_ZGP_SECUR

§ ZB_ENABLE_ZGP_TX_QUEUE

#define ZB_ENABLE_ZGP_TX_QUEUE

§ ZB_FORMATION

#define ZB_FORMATION

Formation is supported by ZC or ZR in Distributed mode

§ ZB_GP_DMIN_B_MS

#define ZB_GP_DMIN_B_MS   32U

§ ZB_GP_DMIN_U_MS

#define ZB_GP_DMIN_U_MS   5U

§ ZB_JOIN_CLIENT

#define ZB_JOIN_CLIENT

Define joiner client functionality

§ ZB_LAZY_COUNTER_INTERVAL

#define ZB_LAZY_COUNTER_INTERVAL   1023U

Interval in which counter is stored

§ ZB_LQI_MAX

#define ZB_LQI_MAX   255

§ ZB_LQI_MIN

#define ZB_LQI_MIN   0

§ ZB_MIN_TIME_BETWEEN_MTORR

#define ZB_MIN_TIME_BETWEEN_MTORR   ZB_MILLISECONDS_TO_BEACON_INTERVAL(10000u)

Minimal time between MTORR when ZBOSS decided to run MTORR at some event

§ ZB_NO_NWK_MULTICAST

#define ZB_NO_NWK_MULTICAST

Disable NWK multicast. Deprecated in R21. Use APS groups and NWK broadcast instead.

§ ZB_NVRAM_DATASET_MIGRATION

#define ZB_NVRAM_DATASET_MIGRATION

Migration datasets when page overflow in NVRAM

§ ZB_NWK_ADDR_REQ_PENDING_LIMIT

#define ZB_NWK_ADDR_REQ_PENDING_LIMIT   3U

§ ZB_NWK_MAX_PATH_LENGTH

#define ZB_NWK_MAX_PATH_LENGTH   5U

Source routing path length, also called nwkMaxSourceRoute

§ ZB_NWK_MAX_SRC_ROUTES

#define ZB_NWK_MAX_SRC_ROUTES   ZB_NEIGHBOR_TABLE_SIZE

Source route table capacity

§ ZB_NWK_MESH_ROUTING

#define ZB_NWK_MESH_ROUTING

NWK: if defined, implement mesh routing

§ ZB_NWK_ROUTING

#define ZB_NWK_ROUTING

NWK: If defined, enable routing functionality

§ ZB_NWK_SRC_ROUTE_TABLE_EXPIRY

#define ZB_NWK_SRC_ROUTE_TABLE_EXPIRY   60U

Expiration time of the source route table (300 sec)

§ ZB_NWK_STOCHASTIC_ADDRESS_ASSIGN

#define ZB_NWK_STOCHASTIC_ADDRESS_ASSIGN

NWK: If defined, use stochastic address assignment (Zigbee PRO).

§ ZB_PARENT_CLASSIFICATION

#define ZB_PARENT_CLASSIFICATION

§ ZB_REJOIN_BACKOFF

#define ZB_REJOIN_BACKOFF

§ ZB_ROUTER_SECURITY

#define ZB_ROUTER_SECURITY

Defines router security

§ ZB_RSSI_MAX

#define ZB_RSSI_MAX   20

§ ZB_RSSI_MIN

#define ZB_RSSI_MIN   -120

§ ZB_SECURITY_INSTALLCODES

#define ZB_SECURITY_INSTALLCODES

§ ZB_SIGNAL_HANDLERS_MAX

#define ZB_SIGNAL_HANDLERS_MAX   5U

§ ZB_STACK_SPEC_VERSION

#define ZB_STACK_SPEC_VERSION   23U

Load vendor specific configurations

Specification version of the specification

§ ZB_STORE_ADDR_MAP

#define ZB_STORE_ADDR_MAP

Save address map in the NVRAM

§ ZB_STORE_NEIGHBOR_TBL

#define ZB_STORE_NEIGHBOR_TBL

Save neighbor table in the NVRAM

§ ZB_TIME_ED_IDLE

#define ZB_TIME_ED_IDLE   ZB_MILLISECONDS_TO_BEACON_INTERVAL(7500)

End device idle time-out

§ ZB_TIMER_32

#define ZB_TIMER_32

If defined, 2007 stack profile is implemented If defined, NVRAM is used Create *.nvram file

To be used near always to prevent flash damage (flash can do ~1000 rewrites only)

For certification test need comment. Else change Assignment to Rejoin for second and last runs Use 32-bit timer

§ ZB_TRANSCEIVER_ALL_CHANNELS_MASK

#define ZB_TRANSCEIVER_ALL_CHANNELS_MASK   0x07FFF800U /* 0000.0111 1111.1111 1111.1000 0000.0000*/

§ ZB_USE_SLEEP

#define ZB_USE_SLEEP

§ ZB_USEALIAS

#define ZB_USEALIAS

§ ZB_VERSION

#define ZB_VERSION   "0.2.0.1"

§ ZB_ZGP_DEFAULT_COMMISSIONING_WINDOW

#define ZB_ZGP_DEFAULT_COMMISSIONING_WINDOW   180U

§ ZB_ZGP_DEFAULT_COMMUNICATION_MODE

#define ZB_ZGP_DEFAULT_COMMUNICATION_MODE   ZGP_COMMUNICATION_MODE_GROUPCAST_DERIVED

§ ZB_ZGP_DEFAULT_LINK_KEY

#define ZB_ZGP_DEFAULT_LINK_KEY   "ZigBeeAlliance09"

§ ZB_ZGP_DEFAULT_SEC_LEVEL_INVOLVE_TC

#define ZB_ZGP_DEFAULT_SEC_LEVEL_INVOLVE_TC   ZB_ZGP_SEC_LEVEL_PROTECTION_DO_NOT_INVOLVE_TC

§ ZB_ZGP_DEFAULT_SEC_LEVEL_MIN_GPD_SEC_LEVEL

#define ZB_ZGP_DEFAULT_SEC_LEVEL_MIN_GPD_SEC_LEVEL   ZB_ZGP_SEC_LEVEL_FULL_NO_ENC

§ ZB_ZGP_DEFAULT_SEC_LEVEL_PROTECTION_WITH_GP_LINK_KEY

#define ZB_ZGP_DEFAULT_SEC_LEVEL_PROTECTION_WITH_GP_LINK_KEY   ZB_ZGP_SEC_LEVEL_PROTECTION_WITH_GP_LINK_KEY

§ ZB_ZGP_DEFAULT_SHARED_SECURITY_KEY_TYPE

#define ZB_ZGP_DEFAULT_SHARED_SECURITY_KEY_TYPE   ZB_ZGP_SEC_KEY_TYPE_NO_KEY

§ ZB_ZGP_DMAX_FOR_ACCUMULATE_TEMP_MASTER_INFO

#define ZB_ZGP_DMAX_FOR_ACCUMULATE_TEMP_MASTER_INFO   100U

§ ZB_ZGP_LED_COMMISSIONING_PARAMS

#define ZB_ZGP_LED_COMMISSIONING_PARAMS   ZB_LED_ARG_CREATE(0, ZB_LED_BLINK_HALF_SEC)

§ ZB_ZGP_MAX_TEMP_MASTER_COUNT

#define ZB_ZGP_MAX_TEMP_MASTER_COUNT   0x03U

§ ZB_ZGP_MIN_PROXY_TABLE_ENTRY_SIZE

#define ZB_ZGP_MIN_PROXY_TABLE_ENTRY_SIZE   7U

§ ZB_ZGP_MIN_SINK_TABLE_ENTRY_SIZE

#define ZB_ZGP_MIN_SINK_TABLE_ENTRY_SIZE   8U

§ ZB_ZGP_PROXY_COMMISSIONING_DEFAULT_COMMUNICATION_MODE

#define ZB_ZGP_PROXY_COMMISSIONING_DEFAULT_COMMUNICATION_MODE   ZGP_PROXY_COMM_MODE_UNICAST

§ ZB_ZGP_SINK_TBL_SIZE

#define ZB_ZGP_SINK_TBL_SIZE   32U

Sink table size

§ ZB_ZGP_TX_CMD_PLD_MAX_SIZE

#define ZB_ZGP_TX_CMD_PLD_MAX_SIZE   64U /* Maximum payload size of APP_0000 packet */

Maximum payload length in outgoing ZGP frames

§ ZB_ZGP_TX_PACKET_INFO_COUNT

#define ZB_ZGP_TX_PACKET_INFO_COUNT   ZB_ZGP_TX_QUEUE_SIZE

§ ZB_ZGP_TX_QUEUE_SIZE

#define ZB_ZGP_TX_QUEUE_SIZE   10U

Number of frames in GPFS (repeated frames with same mac seq number)

For debug purposes set it to 1

§ ZB_ZGPD_GPFS_SIZE

#define ZB_ZGPD_GPFS_SIZE   4U