nRF5 SDK for Thread and Zigbee v3.2.0
Macros
Compile-time configuration parameters

Macros

#define STACK_NETWORK_SELECT   0x00
 
#define STACK_2007   0x01
 
#define STACK_PRO   0x02
 
#define ZB_PRO_STACK
 
#define ZB_USE_NVRAM
 
#define ZB_USE_NVRAM
 
#define ZB_TIMER_32
 
#define ZB_DEFAULT_APS_CHANNEL_MASK   (ZB_TRANSCEIVER_ALL_CHANNELS_MASK)
 
#define ZB_NWK_STOCHASTIC_ADDRESS_ASSIGN
 
#define ZB_NWK_MAX_PATH_LENGTH   3
 
#define ZB_NWK_MAX_SRC_ROUTES   3
 
#define ZB_NEIGHBOR_TABLE_SIZE   32
 
#define ZB_NEIGHBOR_TABLE_SIZE   32
 
#define ZB_NEIGHBOR_TABLE_SIZE   32
 
#define ZB_TIME_ED_IDLE   ZB_MILLISECONDS_TO_BEACON_INTERVAL(7500)
 
#define ZB_NWK_ROUTING
 
#define N_SECUR_MATERIAL   3
 
#define ZB_NWK_MESH_ROUTING
 
#define ZB_APS_SRC_BINDING_TABLE_SIZE   32
 
#define ZB_APS_DST_BINDING_TABLE_SIZE   32
 
#define ZB_APS_GROUP_UP_Q_SIZE   8
 
#define ZB_N_APS_KEY_PAIR_ARR_MAX_SIZE   5
 
#define ZB_APS_SECURITY_TIME_OUT_PERIOD   ZB_MILLISECONDS_TO_BEACON_INTERVAL(1700)
 
#define ZB_N_APS_ACK_WAIT_DURATION(_rx_on_when_idle)
 
#define ZB_APS_DUPS_TABLE_SIZE   32
 
#define ZB_IEEE_ADDR_TABLE_SIZE   101
 
#define ZB_NWK_USE_SEND_JITTER
 
#define ZB_DEFAULT_SCAN_DURATION   3
 
#define ZB_ZDO_PENDING_LEAVE_SIZE   4
 
#define ZB_NWK_BLACKLIST
 
#define ZB_NWK_BLACKLIST_SIZE   16
 
#define ZB_NWK_ROUTING_TABLE_SIZE   ZB_NEIGHBOR_TABLE_SIZE
 
#define ZB_NWK_NEIGHBOUR_PATH_COST_LQI_BASED
 
#define ZB_STACK_PROFILE   STACK_PRO
 
#define ZB_PROTOCOL_VERSION   0x02
 
#define ZB_IO_BUF_SIZE   148
 
#define ZB_UINT24_48_SUPPORT
 
#define ZB_NWK_ROUTING_FAILURE_ATTEMTS_NUM
 
#define ZB_NWK_ROUTING_FAILURE_EXPIRY_STEP   (ZB_NWK_ROUTING_TABLE_EXPIRY / ZB_NWK_ROUTING_FAILURE_ATTEMTS_NUM)
 
#define ZB_ZDO_PARENT_LINK_FAILURE_CNT   12
 
#define ZB_ZDO_CHECK_FAILS_NWK_UPDATE_NOTIFY_LIMIT   4
 
#define ZB_ZDO_CHECK_FAILS_NWK_UPDATE_NOTIFY_TIMEOUT   (60 * 60 * ZB_TIME_ONE_SECOND)
 
#define ZB_ZDO_CHECK_FAILS_CLEAR_TIMEOUT   (30 * ZB_TIME_ONE_SECOND)
 
#define ZB_PREDEFINED_ROUTER_ADDR   0x3344
 
#define ZB_PREDEFINED_ED_ADDR   0x3344
 
#define ZB_N_VIZIBLE_ADDRESSES   6
 
#define ZB_CHECK_OOM_STATUS
 
#define ZB_ENABLE_ZCL
 
#define ZB_ENABLE_INTER_PAN_EXCHANGE
 Controls inter-PAN exchange feature.
 
#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_MEMTRACE_BUF_SIZE   4080
 
#define ZB_NET_TRACE_PORTION   1020
 
#define ZB_TRACE_SWITCH_OFF_FILE_NAME   "trace_off"
 
#define ZB_WATCHDOG_SCHED_QUANT   (20 * ZB_TIME_ONE_SECOND)
 
#define ZB_OOM_THRESHOLD   (120 * ZB_TIME_ONE_SECOND)
 
#define ZB_SEND_OOM_DELAY   (5 * ZB_TIME_ONE_SECOND)
 
#define ZB_TEST_PROFILE
 
#define ZB_PRO_TESTING_MODE
 
#define ZB_PRO_ADDRESS_ASSIGNMENT_CB
 
#define ZLL_TEST_WITH_EMBER
 
#define ZB_SEND_EMPTY_DATA_WITHOUT_APS_ENCRYPTION
 
#define MAC_FRAME_VERSION   MAC_FRAME_IEEE_802_15_4_2003
 
#define ZB_BLOCK_BROADCASTS_SLEEPY_ED
 
#define ZB_DISABLE_APS_ACK_FOR_TRANSPORT_KEY
 
#define ZB_STORE_COUNTERS
 
#define ZB_LAZY_COUNTER_INTERVAL   0x400
 
#define ZB_NVRAM_DATASET_MIGRATION
 
#define ZB_STORE_ADDR_MAP
 
#define ZB_STORE_NEIGHBOR_TBL
 
#define ZB_NVRAM_DATASET_OWN_VERSIONING
 
#define ZB_STANDARD_TC_KEY   {0x5A, 0x69, 0x67, 0x42, 0x65, 0x65, 0x41, 0x6C, 0x6C, 0x69, 0x61, 0x6E, 0x63, 0x65, 0x30, 0x39 };
 
#define ZB_DISTRIBUTED_GLOBAL_KEY   {0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf};
 
#define ZB_STANDARD_SECURITY
 
#define ZB_TC_GENERATES_KEYS
 
#define ZB_TC_AT_ZC
 
#define ZB_CCM_KEY_SIZE   16
 
#define ZB_SECUR_N_SECUR_MATERIAL   3
 
#define ZB_SECURITY_LEVEL   5
 
#define ZB_CCM_L   2
 
#define ZB_CCM_NONCE_LEN   (15 - ZB_CCM_L)
 
#define ZB_CCM_M   4
 
#define ZB_SECUR_NWK_COUNTER_LIMIT   (((zb_uint32_t)~0) - 128)
 
#define ZB_DEFAULT_SECURE_ALL_FRAMES   1
 
#define ZB_APS_SECUR_APS_USE_EXT_NONCE
 
#define ZB_APS_SECUR_APS_USE_EXT_NONCE
 
#define ZB_NWK_SECUR_UNSECURE_FRAME_ATTEMPTS   4
 
#define ZB_APS_DUP_INITIAL_CLOCK   21
 
#define ZB_APS_DUP_CHECK_TIMEOUT   ZB_MILLISECONDS_TO_BEACON_INTERVAL(1000)
 
#define ZB_APS_DUPS_TABLE_SIZE   32
 
#define ZB_MAC_INDIRECT_POLL_EXPIRE_TMO   ZB_MILLISECONDS_TO_BEACON_INTERVAL(7680)
 
#define ZB_N_APS_MAX_FRAME_RETRIES   3
 
#define ZB_N_APS_ACK_WAIT_DURATION_FROM_SLEEPY   (10*ZB_TIME_ONE_SECOND)
 
#define ZB_APS_PARENT_ANNOUNCE_BASE_TIMER   (10 * ZB_TIME_ONE_SECOND)
 
#define ZB_APS_PARENT_ANNOUNCE_JITTER_MAX   (10 * ZB_TIME_ONE_SECOND)
 
#define ZB_N_APS_ACK_WAIT_DURATION_FROM_NON_SLEEPY   (3*ZB_TIME_ONE_SECOND)
 
#define ZB_N_APS_BINDTRANS_ARR_MAX_SIZE   5
 
#define ZB_N_APS_BINDTRANS_DST_INDEX_ARR_MAX_SIZE   ZB_APS_DST_BINDING_TABLE_SIZE
 
#define ZB_APS_DISABLE_ACK_IN_COMMANDS
 
#define ZB_APS_MAX_BROADCAST_PAYLOAD_SIZE   74
 
#define ZB_APS_MAX_MAX_BROADCAST_PAYLOAD_SIZE   (74 + 8)
 
#define ZB_NWK_MAX_BROADCAST_HDR_SIZE   16
 
#define ZB_NWK_MAX_SECURITY_HDR_SIZE   18
 
#define ZB_NWK_MAX_BROADCAST_PAYLOAD_SIZE
 
#define ZB_APS_MAX_PAYLOAD_SIZE   (ZB_APS_MAX_BROADCAST_PAYLOAD_SIZE - 8)
 
#define ZB_ZDO_MAX_PAYLOAD_SIZE   (ZB_APS_MAX_PAYLOAD_SIZE-1)
 
#define ZB_NWKC_MAC_FRAME_OVERHEAD   0xB
 
#define ZB_NWKC_MIN_HEADER_OVERHEAD   0x8
 
#define ZB_NSDU_MAX_LEN   (MAX_PHY_FRM_SIZE - (ZB_NWKC_MAC_FRAME_OVERHEAD + ZB_NWKC_MIN_HEADER_OVERHEAD))
 
#define ZB_APSC_MIN_HEADER_OVERHEAD   0x0C
 
#define ZB_ASDU_MAX_LEN   (ZB_NSDU_MAX_LEN - ZB_APSC_MIN_HEADER_OVERHEAD)
 
#define ZB_APS_HEADER_MAX_LEN
 
#define ZB_APS_PAYLOAD_MAX_LEN   ZB_ASDU_MAX_LEN - ZB_APS_HEADER_MAX_LEN
 
#define ZB_NWK_MAX_CHILDREN   4
 
#define ZB_NWK_MAX_ROUTERS   4
 
#define ZB_NWK_TREE_ROUTING_DEPTH   5
 
#define ZB_NWK_STOCH_DEPTH   15
 
#define ZB_NWK_ROUTE_DISCOVERY_TABLE_SIZE   5
 
#define ZB_NWK_ROUTE_DISCOVERY_EXPIRY   10
 
#define ZB_NWK_EXPIRY_ROUTE_DISCOVERY   (ZB_N_APS_ACK_WAIT_DURATION_FROM_SLEEPY / ZB_NWK_ROUTE_DISCOVERY_EXPIRY)
 
#define ZB_NWK_INITIAL_RREQ_RETRIES   3
 
#define ZB_NWK_RREQ_RETRIES   2
 
#define ZB_NWK_PENDING_TABLE_SIZE   5
 
#define ZB_NWK_PENDING_ENTRY_EXPIRY   2
 
#define ZB_NWK_STATIC_PATH_COST   7
 
#define ZB_NWK_SEND_AFTER_RRESP_RECV_DELAY_MS   1000
 
#define ZB_NWK_BTR_TABLE_SIZE   16
 
#define ZB_NWK_BRR_TABLE_SIZE   8
 
#define ZB_NWK_MAX_BROADCAST_JITTER_INTERVAL   ZB_MILLISECONDS_TO_BEACON_INTERVAL(0x40)
 
#define ZB_NWK_RREQ_RETRY_INTERVAL   ZB_MILLISECONDS_TO_BEACON_INTERVAL(0xFE)
 
#define ZB_NWK_RREQ_RETRY_JITTER_MIN   ZB_MILLISECONDS_TO_BEACON_INTERVAL(2)
 
#define ZB_NWK_RREQ_RETRY_JITTER_MAX   ZB_MILLISECONDS_TO_BEACON_INTERVAL(128)
 
#define ZB_NWK_EXPIRY_PENDING   (ZB_N_APS_ACK_WAIT_DURATION_FROM_SLEEPY / 2) /* 5 seconds */
 
#define ZB_NWK_EXPIRY_BROADCAST   9 /* 9 seconds */
 
#define ZB_NWK_ROUTING_TABLE_EXPIRY
 
#define ZB_NWK_MAX_BROADCAST_RETRIES   0x02
 
#define ZB_NWK_PASSIVE_ACK_TIMEOUT   ZB_MILLISECONDS_TO_BEACON_INTERVAL(500)
 
#define ZB_NWK_BROADCAST_DELIVERY_TIME()   (9 * ZB_TIME_ONE_SECOND)
 
#define ZB_NWK_LINK_STATUS_PERIOD   0xf
 
#define ZB_NWK_ROUTER_AGE_LIMIT   3
 
#define ZB_NWK_REJOIN_REQUEST_TABLE_SIZE   3
 
#define ZB_NWK_REJOIN_TIMEOUT   (ZB_TIME_ONE_SECOND * 5)
 
#define ZB_NWK_REJOIN_FIRST_POLL_DELAY   (ZB_TIME_ONE_SECOND / 2)
 
#define ZB_NWK_REJOIN_POLL_ATTEMPTS   3
 
#define ZB_NWK_CHANNEL_ACCEPT_LEVEL   0x60
 
#define ZB_DEFAULT_PRMIT_JOINING_DURATION   0xff
 
#define ZB_DEFAULT_MAX_CHILDREN   32
 
#define ZB_TC_REJOIN_ENABLE
 
#define ZB_REJOIN_IGNORES_FLAGS
 
#define xZB_NO_KEY_AFTER_REJOIN
 
#define ZB_LEAVE_USE_APP_CALLBACK
 
#define ZB_ZDO_INDIRECT_POLL_TIMER   (5*ZB_TIME_ONE_SECOND) /* ZB_TIME_ONE_SECOND*10 */
 
#define ZB_ZDO_MAX_PARENT_THRESHOLD_RETRY   10
 
#define ZB_ZDO_MIN_SCAN_DURATION   0
 
#define ZB_ZDO_MAX_SCAN_DURATION   5
 
#define ZB_ZDO_NEW_ACTIVE_CHANNEL   0xFE
 
#define ZB_ZDO_NEW_CHANNEL_MASK   0xFF
 
#define ZB_ZDO_CHANNEL_CHECK_TIMEOUT   (ZB_TIME_ONE_SECOND * 60 * 2)
 
#define ZB_ZDO_APS_CHANEL_TIMER   (1 * 60)
 
#define ZB_ZDO_15_MIN_TIMEOUT   (ZB_TIME_ONE_SECOND * 60 * 15)
 
#define ZB_ZDO_1_MIN_TIMEOUT   (ZB_TIME_ONE_SECOND * 60)
 
#define ZB_PIM_DEFAULT_FAST_POLL_TIMEOUT   (ZB_TIME_ONE_SECOND * 10)
 
#define ZB_PIM_DEFAULT_FAST_POLL_INTERVAL   ZB_QUARTERECONDS_TO_BEACON_INTERVAL(2)
 
#define ZB_PIM_DEFAULT_LONG_POLL_INTERVAL   (ZB_TIME_ONE_SECOND * 5)
 
#define ZB_PIM_DEFAULT_TURBO_POLL_INTERVAL   ZB_MILLISECONDS_TO_BEACON_INTERVAL(100)
 
#define ZB_PIM_DEFAULT_MIN_TURBO_POLL_INTERVAL   ZB_MILLISECONDS_TO_BEACON_INTERVAL(100)
 
#define ZB_PIM_DEFAULT_MAX_TURBO_POLL_INTERVAL   ZB_MILLISECONDS_TO_BEACON_INTERVAL(3000)
 
#define ZB_PIM_TURBO_POLL_PACKETS_TIMEOUT   (ZB_TIME_ONE_SECOND * 15)
 
#define ZB_PIM_TURBO_POLL_LEAVE_TIMEOUT   (ZB_TIME_ONE_SECOND / 3)
 
#define ZB_PIM_POLL_ALLOC_TIMEOUT   ZB_MILLISECONDS_TO_BEACON_INTERVAL(500)
 
#define ZB_ZDO_NWK_TIME_BTWN_SCANS   30
 
#define ZB_ZDO_ENDDEV_BIND_TIMEOUT   30
 
#define ZDO_TRAN_TABLE_SIZE   16
 
#define ZB_ZDO_NEIGHBOR_FAILURE_PKT_THRESHOLD   5
 
#define ZB_ZDO_NEIGHBOR_UNREACHABLE_TIMEOUT   60 /* 60 seconds */
 
#define ZB_ZDO_NWK_SCAN_ATTEMPTS   1
 
#define ZB_MAC_A_TURNAROUND_TIME_SYM   12
 
#define ZB_MAC_PEAMBLE_LEN   4
 
#define ZB_MAC_PHR_LEN   1
 
#define ZB_MAC_SFD_LEN   1
 
#define ZB_MAC_FRAME_PPDU_HDR_LEN   (ZB_MAC_PEAMBLE_LEN + ZB_MAC_SFD_LEN + ZB_MAC_PHR_LEN)
 
#define ZB_MAC_SUBG_PEAMBLE_LEN   8
 
#define ZB_MAC_SUBG_SFD_LEN   2
 
#define ZB_MAC_SUBG_PHR_LEN   2
 
#define ZB_MAC_SUBG_FRAME_PPDU_HDR_LEN   (ZB_MAC_SUBG_PEAMBLE_LEN + ZB_MAC_SUBG_SFD_LEN + ZB_MAC_SUBG_PHR_LEN)
 
#define ZB_MAC_SUBG_FRAME_PPDU_FOOTER_LEN   2
 
#define ZB_MAC_SUBG_SYMBOL_DURATION_USEC   10
 
#define ZB_MAC_SUBG_OCTET_TO_SYMBOL(octets)   ((octets) * 8)
 
#define ZB_MAC_SUBG_TURNAROUND_TIME_SYM   100 /* aRxTxTurnAround - see Table D-23 LBT MAC Sublayer Constants - Implementation */
 
#define ZB_MAC_OCTET_TO_SYMBOL(octets)   ((octets) * 2)
 
#define ZB_MAC_MIN_BE   3
 
#define ZB_MAC_MAX_BE   5
 
#define ZB_MAC_MAX_CSMA_BACKOFFS   4
 
#define ZB_MAC_A_UNIT_BACKOFF_PERIOD   20
 
#define ZB_MAC_CCA_PERIOD   8
 
#define ZB_MAC_NUM_CCA   2
 
#define ZB_TX_TOTAL_THRESHOLD   20 /* Annex E, total transmissions attempted */
 
#define ZB_CHANNEL_BUSY_ED_VALUE   0x60 /* TODO: check it */
 
#define ZB_CHANNEL_FREE_ED_VALUE   0x60 /* TODO: check it */
 
#define ZB_FAILS_PERCENTAGE   4 /* use it as divider, 25% */
 
#define ZB_MAC_QUEUE_SIZE   5
 
#define ZB_MAC_RESPONSE_WAIT_TIME   32
 
#define ZB_CONFIGURABLE_MAC_PIB
 
#define ZB_MAX_FRAME_TOTAL_WAIT_TIME   ZB_MILLISECONDS_TO_BEACON_INTERVAL(40)
 
#define ZB_MAC_MAX_FRAME_RETRIES   3
 
#define ZB_SET_MAC_ADDRESS
 
#define ZB_SEND_BEACON_AFTER_RANDOM_DELAY
 
#define ZB_MAC_EXT_DATA_REQ
 
#define ZB_MAC_HANDLE_BEACON_REQ_TMO   8
 
#define ZB_DEFAULT_BDB_TRUST_CENTER_NODE_JOIN_TIMEOUT   ZB_MILLISECONDS_TO_BEACON_INTERVAL(0xf * 1000)
 
#define ZB_BDBC_TCLINK_KEY_EXCHANGE_TIMEOUT   ZB_MILLISECONDS_TO_BEACON_INTERVAL(5000)
 
#define ZB_BDBC_MIN_COMMISSIONING_TIME_S   180
 
#define ZB_DEFAULT_BDB_TCLINK_KEY_EXCHANGE_ATTEMPTS_MAX   3
 
#define ZB_STACK_SPEC_VERSION   21
 
#define ZB_ZGP_DUPLICATE_TIMEOUT   (1 * ZB_TIME_ONE_SECOND)
 zgpDuplicateTimeout value More...
 
#define ZB_ZGPD_FIRST_CH   11
 
#define ZB_ZGPD_LAST_CH   26
 
#define ZB_ZGP_CHANNEL_REQ_ON_TX_CH_TIMEOUT   (5 * ZB_TIME_ONE_SECOND)
 
#define ZB_ZGP_TIMEOUT_BEFORE_FORCE_CANCEL   (3 * ZB_TIME_ONE_SECOND)
 
#define ZB_ZGPD_MANUF_ID_UNSPEC   0xFFFF
 
#define ZB_ZGPD_DEF_MANUFACTURER_ID   0x10d0
 
#define ZB_ZGP_MAX_LW_UNICAST_ADDR_PER_GPD   2
 
#define ZB_ZGP_MAX_SINK_GROUP_PER_GPD   2
 
#define ZB_ZGP_MAX_PAIRED_ENDPOINTS   2
 
#define ZB_ZGP_MAX_PAIRED_CONF_GPD_COMMANDS   2
 
#define ZB_ZGP_MAX_PAIRED_CONF_CLUSTERS   2
 

Detailed Description

Macro Definition Documentation

#define MAC_FRAME_VERSION   MAC_FRAME_IEEE_802_15_4_2003
  • This define is for APS retransmissions test, do not use it for the normal work This define turns on/off channel error mode (set errors while data sending) Disabling of processing of bind_req and end_device_bind_req for certification purposes Disabling of processing of end device bind requests Default value for mac frame version subfield
#define N_SECUR_MATERIAL   3

Number of secure materials to store

#define STACK_NETWORK_SELECT   0x00

Ids of stack profiles, network selection, 2007, and Pro respectively

#define xZB_NO_KEY_AFTER_REJOIN

Workaroud for secure rejoin

#define ZB_APS_DISABLE_ACK_IN_COMMANDS

NWK radius to be used when sending APS command

#define ZB_APS_DST_BINDING_TABLE_SIZE   32

APS: DST binding table size

#define ZB_APS_DUP_INITIAL_CLOCK   21

APS: dup check timeout.

APS dup checks resolution is 1 sec, so dup timeout is 21 sec. This interval guaranties total APS retransmission interval (1 original + 2 retransmits).

#define ZB_APS_GROUP_UP_Q_SIZE   8

APS: man number of groups in the system APS: max number of endpoints per group table entry APS: size of queue to be used to pass incoming group addresses packets up

#define ZB_APS_HEADER_MAX_LEN
Value:
(2 + /* fc + APS counter */ \
/* Packet either has dest and src endpoints (1+1 byte) if not group \
* addressing or Group address elsewhere - so 2 anyway */ \
2 + \
/* cluster id, profile id */ \
4 + \
\
/* TODO: handle fragmentation and Extended header. Now suppose no Extended header */ \
0)
#define ZB_APS_MAX_MAX_BROADCAST_PAYLOAD_SIZE   (74 + 8)

Maximum proadcast APS payload size supposing NWK encryption only, no long address in NWK header - means, really possible maximum.

#define ZB_APS_MAX_PAYLOAD_SIZE   (ZB_APS_MAX_BROADCAST_PAYLOAD_SIZE - 8)

max unicast aps payload size, supposing no APS encryption

#define ZB_APS_PARENT_ANNOUNCE_BASE_TIMER   (10 * ZB_TIME_ONE_SECOND)

APS: The base amount of delay before each broadcast parent announce is sent.

#define ZB_APS_PARENT_ANNOUNCE_JITTER_MAX   (10 * ZB_TIME_ONE_SECOND)

The max amount of jitter that is added to the apsParentAnnounceBaseTimer before each broadcast parent announce is sent.

#define ZB_APS_SECUR_APS_USE_EXT_NONCE

If defined, include long address into APS security header

#define ZB_APS_SECUR_APS_USE_EXT_NONCE

If defined, include long address into APS security header

#define ZB_APS_SECURITY_TIME_OUT_PERIOD   ZB_MILLISECONDS_TO_BEACON_INTERVAL(1700)

If the joining device does not receive any of the keys within apsSecurityTimeOutPeriod, of receiving the NLMEJOIN. confirm primitive, it shall reset

i.e. 1.7 seconds on 2.4 GHz.

#define ZB_APS_SRC_BINDING_TABLE_SIZE   32

APS: SRC binding tble size

#define ZB_BLOCK_BROADCASTS_SLEEPY_ED

Block sleepy end devices (devices with rx-on-when-idle == false) from receiving broadcasts (drop it at MAC level)

#define ZB_CCM_KEY_SIZE   16

SECUR: CCM key size. Hard-coded

#define ZB_CCM_L   2

SECUR: CCM L parameter. Fixed to 2 for security level 5

#define ZB_CCM_M   4

SECUR: CCM M parameter. Fixed to 4 for security level 5

#define ZB_CCM_NONCE_LEN   (15 - ZB_CCM_L)

SECUR: CCM nonce length. Now fixed.

#define ZB_DEFAULT_APS_CHANNEL_MASK   (ZB_TRANSCEIVER_ALL_CHANNELS_MASK)

ZigBee channel selection. Default value of ZB_AIB().aps_channel_mask Channels to be used for discovery and join. If here is single channel, not need to do energy scan.

Note
ZLL, HA, ZLL tests can redefine this mask by other constants
#define ZB_DEFAULT_BDB_TRUST_CENTER_NODE_JOIN_TIMEOUT   ZB_MILLISECONDS_TO_BEACON_INTERVAL(0xf * 1000)

bdbTrustCenterNodeJoinTimeout

The bdbTrustCenterNodeJoinTimeout attribute specifies a timeout in seconds for the Trust Center to remove the Trust Center link key of the newly joined node that did not successfully establish a new link key. This attribute is used by ZigBee coordinator nodes.

#define ZB_DEFAULT_MAX_CHILDREN   32

Default value of nib.max_children - max number of children which can join to this device

#define ZB_DEFAULT_PRMIT_JOINING_DURATION   0xff

Default duration to permit joining (currently infinite)

#define ZB_DEFAULT_SCAN_DURATION   3

NWK: default energy/active scan duration

#define ZB_DEFAULT_SECURE_ALL_FRAMES   1

Default value for nib.secure_all_frames

#define ZB_DISTRIBUTED_GLOBAL_KEY   {0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf};

6.3.2 Distributed security global link key

The distributed security global link key is used to join a distributed security network. This link key is provided to a company as a result of a successful certification of a product. For testing, this key SHALL have the value of:

In ZLL specification this is ZLL Certification pre-installed link key - see 8.7.2 Transfer ring the network key dur ing classical ZigBee commissioning.

"During classical ZigBee commissioning where a non-ZLL device is being joined to a ZLL network without a trust center, a pre-installed link key is used to secure the transfer of the network key when authenticating." - means,

#define ZB_IEEE_ADDR_TABLE_SIZE   101

NWK: size of the long-short address translation table

#define ZB_IO_BUF_SIZE   148

Size of queue for wait for free packet buffer Size, in bytes, of the packet buffer

Be sure keep it multiple of 4 to exclude alignment problems at ARM

#define ZB_MAC_A_TURNAROUND_TIME_SYM   12

RX-to-TX or TX-to-RX maximum turnaround time (in symbol periods) (see 6.9.1 and 6.9.2)

#define ZB_MAC_A_UNIT_BACKOFF_PERIOD   20

The number of symbols forming the basic time period used by the CSMA-CA algorithm.

See 7.4.1 MAC constants

#define ZB_MAC_CCA_PERIOD   8

6.9.9 Clear channel assessment (CCA) The CCA detection time shall be equal to 8 symbol periods.

#define ZB_MAC_EXT_DATA_REQ

Define it for external MAC

#define ZB_MAC_FRAME_PPDU_HDR_LEN   (ZB_MAC_PEAMBLE_LEN + ZB_MAC_SFD_LEN + ZB_MAC_PHR_LEN)

MAC frame preamble length, octets

6.3 PPDU format Each PPDU packet consists of the following basic components: A synchronization header (SHR), which allows a receiving device to synchronize and lock onto the bit stream A PHY header (PHR), which contains frame length information A variable length payload, which carries the MAC sublayer frame

#define ZB_MAC_INDIRECT_POLL_EXPIRE_TMO   ZB_MILLISECONDS_TO_BEACON_INTERVAL(7680)

Maximum MAC packet waiting time to expire

#define ZB_MAC_MAX_BE   5

The maximum value of the backoff exponent, BE, in the CSMA-CA algorithm. See 7.5.1.4 for a detailed explanation of the backoff exponent.

#define ZB_MAC_MAX_CSMA_BACKOFFS   4

The maximum number of backoffs the CSMA-CA algorithm will attempt before declaring a channel access failure.

#define ZB_MAC_MAX_FRAME_RETRIES   3

MAC: The maximum number of retries allowed after a transmission failure 0-7

#define ZB_MAC_MIN_BE   3

The minimum value of the backoff exponent (BE) in the CSMA-CA algorithm. See 7.5.1.4 for a detailed explanation of the backoff exponent.

#define ZB_MAC_OCTET_TO_SYMBOL (   octets)    ((octets) * 2)

Define how many symbols used to transmit given number of octets

6.5.2.2 Bit-to-symbol mapping All binary data contained in the PPDU shall be encoded using the modulation and spreading functions shown in Figure 18. This subclause describes how binary information is mapped into data symbols. The 4 LSBs (b0, b1, b2, b3) of each octet shall map into one data symbol, and the 4 MSBs (b4, b5, b6, b7) of each octet shall map into the next data symbol. Each octet of the PPDU is processed through the modulation and spreading functions (see Figure 18) sequentially, beginning with the Preamble field and ending with the last octet of the PSDU.

#define ZB_MAC_PEAMBLE_LEN   4

6.3.1 Preamble field, octets Table 19Preamble field length

24002483.5 MHz O-QPSK 4 octets 8 symbols

#define ZB_MAC_PHR_LEN   1

PHY hdr len, octets

6.3 PPDU format This subclause specifies the

#define ZB_MAC_RESPONSE_WAIT_TIME   32

The maximum time, in multiples of aBaseSuperframeDuration, a device shall wait for a response command frame to be available following a request command frame.

MAC: max time to wait for a response command frame, range 2-64 Default is 32, 64 set for better compatibility

#define ZB_MAC_SFD_LEN   1

The SFD is a field indicating the end of the SHR and the start of the packet data.

6.3.2 SFD field

#define ZB_MAX_FRAME_TOTAL_WAIT_TIME   ZB_MILLISECONDS_TO_BEACON_INTERVAL(40)

MAC: max time to wait for indirect data.

See 7.4.2 MAC PIB attributes in 802.15.4.

Note
This time period must not be too long.

As an option: maybe, always send empty data packet as GP does?

#define ZB_MEMTRACE_BUF_SIZE   4080

(defined ZB_SERIAL_FOR_TRACE || defined ZB_TRACE_OVER_JTAG) && defined ZB_NET_TRACE

#define ZB_N_APS_ACK_WAIT_DURATION (   _rx_on_when_idle)
Value:
((_rx_on_when_idle) ? \
#define ZB_N_APS_ACK_WAIT_DURATION_FROM_NON_SLEEPY
Definition: zb_config_common.h:266
#define ZB_N_APS_ACK_WAIT_DURATION_FROM_SLEEPY
Definition: zb_config_common.h:246

APS: Get APS ACK wait time for the device depending on its receiver on when idle

#define ZB_N_APS_ACK_WAIT_DURATION_FROM_NON_SLEEPY   (3*ZB_TIME_ONE_SECOND)

APS: APS ACK wait time from Non Sleepy devices. After this timeout resend APS packet see ZB spec 2.2.7.1

#define ZB_N_APS_ACK_WAIT_DURATION_FROM_SLEEPY   (10*ZB_TIME_ONE_SECOND)

APS: APS ACK wait time from Sleepy devices. After this timeout resend APS packet see ZB spec 2.2.7.1

#define ZB_N_APS_BINDTRANS_ARR_MAX_SIZE   5

APS: maximum number of tables with information from a binding table to be sent to the devices

#define ZB_N_APS_BINDTRANS_DST_INDEX_ARR_MAX_SIZE   ZB_APS_DST_BINDING_TABLE_SIZE

APS: maximum number of elements in array with index from dst array in bind table

#define ZB_N_APS_KEY_PAIR_ARR_MAX_SIZE   5

APS: maximum number of tables with key-pair information

#define ZB_N_APS_MAX_FRAME_RETRIES   3

APS retransmissions APS: max number of packets waiting for APS ACK

Derive it from the pool size. Keep some free buffers in the pool, remember some buffers are reserved at start (I see 4 out buffers resetved). APS maximum of apscMaxFrameRetries times see ZB spec 2.2.7.1

#define ZB_N_VIZIBLE_ADDRESSES   6

Maximum number of addresses in the visibility limit arrays

#define ZB_NEIGHBOR_TABLE_SIZE   32

defined ZB_ED_ROLE && !defined ZB_ZGPD_ROLE NWK: size of the neighbor table

NWK: size of the neighbor table + ext neighbor table

#define ZB_NEIGHBOR_TABLE_SIZE   32

defined ZB_ED_ROLE && !defined ZB_ZGPD_ROLE NWK: size of the neighbor table

NWK: size of the neighbor table + ext neighbor table

#define ZB_NEIGHBOR_TABLE_SIZE   32

defined ZB_ED_ROLE && !defined ZB_ZGPD_ROLE NWK: size of the neighbor table

NWK: size of the neighbor table + ext neighbor table

#define ZB_NVRAM_DATASET_MIGRATION

Migration datasets when page overflow in NVRAM

#define ZB_NWK_BROADCAST_DELIVERY_TIME ( )    (9 * ZB_TIME_ONE_SECOND)

NWK Broadcast delivery time See 3.5.2.1 nwkBroadcastDeliveryTime = 2*nwkMaxDepth* ((0.05+(nwkcMaxBroadcastJitter/2))+ nwkPassiveAckTimeout*nwkBroadcastRetries/1000 nwkcMaxBroadcastJitter and nwkPassiveAckTimeout are measured in OctetDurations (!).

In PICS NDF4 for PRO:

nwkBroadcastDeliveryTime = 0x44AA27 Octet durations (9 seconds on 2.4 GHz) nwkPassiveAckTimeout = 0x3D098 Octet Durations9 (500 ms on 2.4 GHz) maximum nwkMaxBroadcastRetries = 2

#define ZB_NWK_CHANNEL_ACCEPT_LEVEL   0x60

acceptable energy level on channel

#define ZB_NWK_INITIAL_RREQ_RETRIES   3

nwkcInitialRREQRetries

The number of times the first broadcast transmission of a route request command frame is retried.

#define ZB_NWK_LINK_STATUS_PERIOD   0xf

nwkLinkStatusPeriod: period for link status commands, in seconds

#define ZB_NWK_MAX_BROADCAST_HDR_SIZE   16

max broadcast nwk payload size

#define ZB_NWK_MAX_BROADCAST_PAYLOAD_SIZE
Value:
(MAX_PHY_FRM_SIZE - (MAX_MAC_OVERHEAD_SHORT_ADDRS + \
ZB_NWK_MAX_BROADCAST_HDR_SIZE + ZB_NWK_MAX_SECURITY_HDR_SIZE))
#define ZB_NWK_MAX_BROADCAST_HDR_SIZE
Definition: zb_config_common.h:364
#define ZB_NWK_MAX_BROADCAST_RETRIES   0x02

The maximum number of retries allowed after a broadcast transmission failure.

See PICS NDF4.

#define ZB_NWK_MAX_CHILDREN   4

NWK: Max number of children per node

#define ZB_NWK_MAX_ROUTERS   4

NWK: Max number of routers per node

#define ZB_NWK_MESH_ROUTING

If not defined, implement tree routing NWK: if defined, implement mesh routing

#define ZB_NWK_NEIGHBOUR_PATH_COST_LQI_BASED

Neighbor path cost calculation method. By default, calculate neighbor path cost from LQI value as describe in ZB spec. But for some special cases (e.g. LCGW)) the path cost must be calculated from RSSI value.

#define ZB_NWK_PASSIVE_ACK_TIMEOUT   ZB_MILLISECONDS_TO_BEACON_INTERVAL(500)

The maximum time duration in milliseconds allowed for the parent and all child devices to retransmit a broadcast message.

See PICS NDF4.

#define ZB_NWK_REJOIN_REQUEST_TABLE_SIZE   3

Maximum number of rejoin requests in progress

#define ZB_NWK_ROUTE_DISCOVERY_TABLE_SIZE   5

NWK Mesh route stuff: route discovery table size

#define ZB_NWK_ROUTER_AGE_LIMIT   3

nwkRouterAgeLimit: The number of missed link status command framesbefore resetting the link costs to zero.

#define ZB_NWK_ROUTING

Scheduler callbacks queue size. Ususlly not need to change it. NWK: If defined, enable routing functionality

#define ZB_NWK_ROUTING_FAILURE_ATTEMTS_NUM
Value:
1 /*Should expire in this number of
* attemptes if failure * */
#define ZB_NWK_ROUTING_TABLE_EXPIRY
Value:
60 /* Should correspond to ( 5
* minutes = 300 seconds / ZB_NWK_EXPIRY_PENDING ) */
#define ZB_NWK_ROUTING_TABLE_SIZE   ZB_NEIGHBOR_TABLE_SIZE

NWK Mesh route stuff: routing table size

#define ZB_NWK_RREQ_RETRIES   2

nwkcRREQRetries

The number of times the broadcast transmission of a route request command frame is retried on relay by an intermediate ZigBee router or ZigBee coordinator.

#define ZB_NWK_SECUR_UNSECURE_FRAME_ATTEMPTS   4

This macro defines total number of NWK frame unsecure attempts before NWK decides that frame can not be processed. Made as Workaround for Onsemi platform, used for all. If frame was not unsecured, cut 1 byte of buffer end and try to unsecure frame again.

#define ZB_NWK_SEND_AFTER_RRESP_RECV_DELAY_MS   1000

Delay to wait before sending packet after receiving route replay.

Used only if ZB_CERT_HACKS().delay_pending_tx_on_rresp is 1. Useful for test TP_PRO_BV-04. Normally ZBOSS sends NWK immediately after receiving any route.

#define ZB_NWK_STOCH_DEPTH   15

NWK: network depth in stochastic addressing mode (NLF90)

#define ZB_NWK_STOCHASTIC_ADDRESS_ASSIGN

If defined, do not compile some features, even Mandatory, to fir into 64k ROM at 2410/64k device in Keil debug build. PRO stack specific details NWK: If defined, use stochastic address assing (ZigBee PRO).

#define ZB_NWK_TREE_ROUTING_DEPTH   5

NWK: max network depth for tree routing

#define ZB_NWK_USE_SEND_JITTER

If defined, add jitter to broadcast transmits etc.

Note
It adds zb_random() and, so. breaks some tests which supposes to know next generated address by setting random generator start.
#define ZB_PIM_DEFAULT_FAST_POLL_INTERVAL   ZB_QUARTERECONDS_TO_BEACON_INTERVAL(2)

Default fast poll interval

#define ZB_PIM_DEFAULT_FAST_POLL_TIMEOUT   (ZB_TIME_ONE_SECOND * 10)

Default fast poll timeout

#define ZB_PIM_DEFAULT_LONG_POLL_INTERVAL   (ZB_TIME_ONE_SECOND * 5)

Default long poll interval

#define ZB_PIM_DEFAULT_MAX_TURBO_POLL_INTERVAL   ZB_MILLISECONDS_TO_BEACON_INTERVAL(3000)

Maximal possible turbo poll interval

#define ZB_PIM_DEFAULT_MIN_TURBO_POLL_INTERVAL   ZB_MILLISECONDS_TO_BEACON_INTERVAL(100)

Minimal possible turbo poll interval

#define ZB_PIM_DEFAULT_TURBO_POLL_INTERVAL   ZB_MILLISECONDS_TO_BEACON_INTERVAL(100)

Default turbo poll interval (TODO: tune it)

#define ZB_PIM_POLL_ALLOC_TIMEOUT   ZB_MILLISECONDS_TO_BEACON_INTERVAL(500)

Timeout for poll buffer allocation retry

#define ZB_PIM_TURBO_POLL_LEAVE_TIMEOUT   (ZB_TIME_ONE_SECOND / 3)

Timeout for turbo poll

#define ZB_PIM_TURBO_POLL_PACKETS_TIMEOUT   (ZB_TIME_ONE_SECOND * 15)

Timeout for turbo poll

#define ZB_PRO_ADDRESS_ASSIGNMENT_CB

defined ZB_LIMIT_VISIBILITY && !defined ZB_MEMORY_COMPACT

#define ZB_PRO_STACK

This define switches PRO version of or off.

#define ZB_PROTOCOL_VERSION   0x02

Protocol version selection: see table 1.1(pro-specification)

#define ZB_SECUR_NWK_COUNTER_LIMIT   (((zb_uint32_t)~0) - 128)

Value of nwk packets counter which triggered nwk key switch

#define ZB_SECURITY_LEVEL   5

SECUR: security level. Now fixed to be 5

#define ZB_SEND_BEACON_AFTER_RANDOM_DELAY

Replay to the beacon request after jitter (meaningful for DSR MAC only).

#define ZB_SET_MAC_ADDRESS

Define it to set MAC address at start (currently - all platforms)

#define ZB_STANDARD_SECURITY

SECUR: if defined, implement Standard security

Note: High Security is obsolet and will never be implemented.

#define ZB_STORE_COUNTERS

Storing NWK security counter in NVRAM

#define ZB_TC_AT_ZC

SECUR: If defined, trust Center is at ZC (currently - always)

#define ZB_TC_GENERATES_KEYS

SECUR: If defined, generate random keys at Trust Center at start of pre-configured jey is not set.

#define ZB_TEST_PROFILE

This define turns on/off test profile Compile Test Profile feature

#define ZB_TIME_ED_IDLE   ZB_MILLISECONDS_TO_BEACON_INTERVAL(7500)

End device idle time-out

#define ZB_TIMER_32

Use 32-bit timer

#define ZB_TRACE_SWITCH_OFF_FILE_NAME   "trace_off"

If defined, transport calls traffic dump by itself, generic MAC not need to do it Name for trace off switch file

If file of this name exists in the current directory, swicth off both trace and traffic dump.

#define ZB_UINT24_48_SUPPORT

Number of packet buffers. More buffers - more memory. Less buffers - risk to be blocked due to buffer absence.

#define ZB_USE_NVRAM

Define to let us work properly with Ember stack 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

#define ZB_USE_NVRAM

Define to let us work properly with Ember stack 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

#define ZB_ZDO_15_MIN_TIMEOUT   (ZB_TIME_ONE_SECOND * 60 * 15)

15 minutes timer to measure large timeouts

#define ZB_ZDO_1_MIN_TIMEOUT   (ZB_TIME_ONE_SECOND * 60)

1 minute timer to measure large timeouts

#define ZB_ZDO_APS_CHANEL_TIMER   (1 * 60)

A countdown timer (in minutes) indicating the time to the next permitted frequency agility channel change

#define ZB_ZDO_CHANNEL_CHECK_TIMEOUT   (ZB_TIME_ONE_SECOND * 60 * 2)

15 minutes timeout. KLUDGE: it is 2 bytes value, 15 minutes is nearly maximum value that can be stored,

#define ZB_ZDO_ENDDEV_BIND_TIMEOUT   30

Timeout value in seconds employed in End Device Binding

#define ZB_ZDO_INDIRECT_POLL_TIMER   (5*ZB_TIME_ONE_SECOND) /* ZB_TIME_ONE_SECOND*10 */

ZDO Indirect poll timer

#define ZB_ZDO_MAX_PARENT_THRESHOLD_RETRY   10

ZDO Max parent threshold retry

#define ZB_ZDO_MAX_SCAN_DURATION   5

Max scan duration for mgmt_nwk_update_req

#define ZB_ZDO_MIN_SCAN_DURATION   0

Min scan duration for mgmt_nwk_update_req

#define ZB_ZDO_NEW_ACTIVE_CHANNEL   0xFE

Special value of the scan duration for mgmt_nwk_update_req: change active channel (by number) Table 2.88 Fields of the Mgmt_NWK_Update_req Command If ScanDuration has a value of 0xfe this is a request for channel change.

#define ZB_ZDO_NEW_CHANNEL_MASK   0xFF

Special value of the scan duration for mgmt_nwk_update_req: change channels mask

#define ZB_ZDO_NWK_SCAN_ATTEMPTS   1

Integer value representing the number of scan attempts to make before the NWK layer decides which ZigBee coordinator or router to associate with

#define ZB_ZDO_NWK_TIME_BTWN_SCANS   30

Integer value representing the time duration (in milliseconds)

#define ZB_ZDO_PARENT_LINK_FAILURE_CNT   12

Number of times device failes to send packet to the parent before rejoin

#define ZB_ZDO_PENDING_LEAVE_SIZE   4

Number of pending Mgmt_Leave requests allowed

#define ZB_ZGP_DUPLICATE_TIMEOUT   (1 * ZB_TIME_ONE_SECOND)

zgpDuplicateTimeout value

The time the EPP of the ZGPS and ZGPP keeps the information on the received GPDF with random sequence number, in order to filter out duplicates.

The default value of 2 seconds can be modified by the application profile

See also
ZGP spec, A.3.6.1.2.1
#define ZB_ZGP_TIMEOUT_BEFORE_FORCE_CANCEL   (3 * ZB_TIME_ONE_SECOND)

If commissioning on the last stage, then it determines time to wait until commissioning is complete. If commissioning is not completed during this time, then commissioning cancel procedure is started.

#define ZDO_TRAN_TABLE_SIZE   16

ZDO: transactions table size


Documentation feedback | Developer Zone | Subscribe | Updated