Stack Tokens#
These tokens are divided into three sections (the three main types of tokens mentioned in token.h):
manufacturing
stack
application
For a full explanation of the tokens, see hal/micro/token.h. See token-stack.h for source code.
A set of tokens is predefined in the APPLICATION DATA section at the end of token-stack.h because these tokens are required by the stack, but they are classified as application tokens since they are sized by the application via its CONFIGURATION_HEADER.
The user application can include its own tokens in a header file similar to this one. The macro ::APPLICATION_TOKEN_HEADER should be defined to equal the name of the header file in which application tokens are defined. See the APPLICATION DATA section at the end of token-stack.h for examples of token definitions.
Since token-stack.h contains both the typedefs and the token defs, two #defines are used to select which one is needed when this file is included. #define DEFINETYPES is used to select the type definitions and #define DEFINETOKENS is used to select the token definitions. See token.h and token.c to see how these are used.
Convenience Macros#
The following convenience macros are used to simplify the definition process for commonly specified parameters to the basic TOKEN_DEF macro. See hal/micro/token.h for a more complete explanation.
Creator Codes#
The CREATOR is used as a distinct identifier tag for the token.The CREATOR is necessary because the token name is defined differently depending on the hardware platform. Therefore, the CREATOR ensures that token definitions and data stay tagged and known. The only requirement is that each creator definition must be unique. See hal/micro/token.h for a more complete explanation.
NVM3 Object Keys#
The NVM3 object key is used as a distinct identifier tag for a token stored in NVM3.Every token must have a defined NVM3 object key and the object key must be unique. The object key defined must be in the following format: NVM3KEY_tokennamewhere tokenname is the name of the token without NVM3KEY_ or TOKEN_ prefix.
Macros#
By default, tokens are automatically located after the previous token.
The current version number of the stack tokens. MSB is the version, LSB is a complement.
Convenience Macros Documentation#
DEFINE_BASIC_TOKEN#
#define DEFINE_BASIC_TOKENValue:
(name, type, ...)
104
of file stack/config/token-stack.h
DEFINE_COUNTER_TOKEN#
#define DEFINE_COUNTER_TOKENValue:
(name, type, ...)
107
of file stack/config/token-stack.h
DEFINE_INDEXED_TOKEN#
#define DEFINE_INDEXED_TOKENValue:
(name, type, arraysize, ...)
110
of file stack/config/token-stack.h
DEFINE_FIXED_BASIC_TOKEN#
#define DEFINE_FIXED_BASIC_TOKENValue:
113
of file stack/config/token-stack.h
DEFINE_FIXED_COUNTER_TOKEN#
#define DEFINE_FIXED_COUNTER_TOKENValue:
117
of file stack/config/token-stack.h
DEFINE_FIXED_INDEXED_TOKEN#
#define DEFINE_FIXED_INDEXED_TOKENValue:
121
of file stack/config/token-stack.h
DEFINE_MFG_TOKEN#
#define DEFINE_MFG_TOKENValue:
125
of file stack/config/token-stack.h
Creator Codes Documentation#
CREATOR_STACK_NVDATA_VERSION#
#define CREATOR_STACK_NVDATA_VERSIONValue:
0xFF01
154
of file stack/config/token-stack.h
CREATOR_STACK_BOOT_COUNTER#
#define CREATOR_STACK_BOOT_COUNTERValue:
0xE263
155
of file stack/config/token-stack.h
CREATOR_STACK_NONCE_COUNTER#
#define CREATOR_STACK_NONCE_COUNTERValue:
0xE563
156
of file stack/config/token-stack.h
CREATOR_STACK_ANALYSIS_REBOOT#
#define CREATOR_STACK_ANALYSIS_REBOOTValue:
0xE162
157
of file stack/config/token-stack.h
CREATOR_STACK_KEYS#
#define CREATOR_STACK_KEYSValue:
0xEB79
158
of file stack/config/token-stack.h
CREATOR_STACK_NODE_DATA#
#define CREATOR_STACK_NODE_DATAValue:
0xEE64
159
of file stack/config/token-stack.h
CREATOR_STACK_CLASSIC_DATA#
#define CREATOR_STACK_CLASSIC_DATAValue:
0xE364
160
of file stack/config/token-stack.h
CREATOR_STACK_ALTERNATE_KEY#
#define CREATOR_STACK_ALTERNATE_KEYValue:
0xE475
161
of file stack/config/token-stack.h
CREATOR_STACK_APS_FRAME_COUNTER#
#define CREATOR_STACK_APS_FRAME_COUNTERValue:
0xE123
162
of file stack/config/token-stack.h
CREATOR_STACK_TRUST_CENTER#
#define CREATOR_STACK_TRUST_CENTERValue:
0xE124
163
of file stack/config/token-stack.h
CREATOR_STACK_NETWORK_MANAGEMENT#
#define CREATOR_STACK_NETWORK_MANAGEMENTValue:
0xE125
164
of file stack/config/token-stack.h
CREATOR_STACK_PARENT_INFO#
#define CREATOR_STACK_PARENT_INFOValue:
0xE126
165
of file stack/config/token-stack.h
CREATOR_STACK_PARENT_ADDITIONAL_INFO#
#define CREATOR_STACK_PARENT_ADDITIONAL_INFOValue:
0xE127
166
of file stack/config/token-stack.h
CREATOR_STACK_MULTI_PHY_NWK_INFO#
#define CREATOR_STACK_MULTI_PHY_NWK_INFOValue:
0xE128
167
of file stack/config/token-stack.h
CREATOR_STACK_MIN_RECEIVED_RSSI#
#define CREATOR_STACK_MIN_RECEIVED_RSSIValue:
0xE129
168
of file stack/config/token-stack.h
CREATOR_STACK_RESTORED_EUI64#
#define CREATOR_STACK_RESTORED_EUI64Value:
0xE12A
170
of file stack/config/token-stack.h
CREATOR_MULTI_NETWORK_STACK_KEYS#
#define CREATOR_MULTI_NETWORK_STACK_KEYSValue:
0xE210
173
of file stack/config/token-stack.h
CREATOR_MULTI_NETWORK_STACK_NODE_DATA#
#define CREATOR_MULTI_NETWORK_STACK_NODE_DATAValue:
0xE211
174
of file stack/config/token-stack.h
CREATOR_MULTI_NETWORK_STACK_ALTERNATE_KEY#
#define CREATOR_MULTI_NETWORK_STACK_ALTERNATE_KEYValue:
0xE212
175
of file stack/config/token-stack.h
CREATOR_MULTI_NETWORK_STACK_TRUST_CENTER#
#define CREATOR_MULTI_NETWORK_STACK_TRUST_CENTERValue:
0xE213
176
of file stack/config/token-stack.h
CREATOR_MULTI_NETWORK_STACK_NETWORK_MANAGEMENT#
#define CREATOR_MULTI_NETWORK_STACK_NETWORK_MANAGEMENTValue:
0xE214
177
of file stack/config/token-stack.h
CREATOR_MULTI_NETWORK_STACK_PARENT_INFO#
#define CREATOR_MULTI_NETWORK_STACK_PARENT_INFOValue:
0xE215
178
of file stack/config/token-stack.h
CREATOR_MULTI_NETWORK_STACK_NONCE_COUNTER#
#define CREATOR_MULTI_NETWORK_STACK_NONCE_COUNTERValue:
0xE220
182
of file stack/config/token-stack.h
CREATOR_MULTI_NETWORK_STACK_PARENT_ADDITIONAL_INFO#
#define CREATOR_MULTI_NETWORK_STACK_PARENT_ADDITIONAL_INFOValue:
0xE221
183
of file stack/config/token-stack.h
CREATOR_STACK_GP_DATA#
#define CREATOR_STACK_GP_DATAValue:
0xE258
186
of file stack/config/token-stack.h
CREATOR_STACK_GP_PROXY_TABLE#
#define CREATOR_STACK_GP_PROXY_TABLEValue:
0xE259
187
of file stack/config/token-stack.h
CREATOR_STACK_GP_SINK_TABLE#
#define CREATOR_STACK_GP_SINK_TABLEValue:
0xE25A
188
of file stack/config/token-stack.h
CREATOR_STACK_GP_INCOMING_FC#
#define CREATOR_STACK_GP_INCOMING_FCValue:
0xE25B
189
of file stack/config/token-stack.h
CREATOR_STACK_GP_INCOMING_FC_IN_SINK#
#define CREATOR_STACK_GP_INCOMING_FC_IN_SINKValue:
0xE25C
190
of file stack/config/token-stack.h
CREATOR_STACK_BINDING_TABLE#
#define CREATOR_STACK_BINDING_TABLEValue:
0xE274
192
of file stack/config/token-stack.h
CREATOR_STACK_CHILD_TABLE#
#define CREATOR_STACK_CHILD_TABLEValue:
0xFF0D
193
of file stack/config/token-stack.h
CREATOR_STACK_KEY_TABLE#
#define CREATOR_STACK_KEY_TABLEValue:
0xE456
194
of file stack/config/token-stack.h
CREATOR_STACK_CERTIFICATE_TABLE#
#define CREATOR_STACK_CERTIFICATE_TABLEValue:
0xE500
195
of file stack/config/token-stack.h
CREATOR_STACK_ZLL_DATA#
#define CREATOR_STACK_ZLL_DATAValue:
0xE501
196
of file stack/config/token-stack.h
CREATOR_STACK_ZLL_SECURITY#
#define CREATOR_STACK_ZLL_SECURITYValue:
0xE502
197
of file stack/config/token-stack.h
CREATOR_STACK_ADDITIONAL_CHILD_DATA#
#define CREATOR_STACK_ADDITIONAL_CHILD_DATAValue:
0xE503
198
of file stack/config/token-stack.h
CREATOR_STACK_KEY_TABLE_EXTENDED#
#define CREATOR_STACK_KEY_TABLE_EXTENDEDValue:
0xE510
199
of file stack/config/token-stack.h
NVM3 Object Keys Documentation#
NVM3KEY_DOMAIN_USER#
#define NVM3KEY_DOMAIN_USERValue:
0x00000U
220
of file stack/config/token-stack.h
NVM3KEY_DOMAIN_ZIGBEE#
#define NVM3KEY_DOMAIN_ZIGBEEValue:
0x10000U
221
of file stack/config/token-stack.h
NVM3KEY_DOMAIN_COMMON#
#define NVM3KEY_DOMAIN_COMMONValue:
0x80000U
222
of file stack/config/token-stack.h
NVM3KEY_STACK_NVDATA_VERSION#
#define NVM3KEY_STACK_NVDATA_VERSIONValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xFF01)
225
of file stack/config/token-stack.h
NVM3KEY_STACK_BOOT_COUNTER#
#define NVM3KEY_STACK_BOOT_COUNTERValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xE263)
226
of file stack/config/token-stack.h
NVM3KEY_STACK_NONCE_COUNTER#
#define NVM3KEY_STACK_NONCE_COUNTERValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xE563)
227
of file stack/config/token-stack.h
NVM3KEY_STACK_ANALYSIS_REBOOT#
#define NVM3KEY_STACK_ANALYSIS_REBOOTValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xE162)
228
of file stack/config/token-stack.h
NVM3KEY_STACK_KEYS#
#define NVM3KEY_STACK_KEYSValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xEB79)
229
of file stack/config/token-stack.h
NVM3KEY_STACK_NODE_DATA#
#define NVM3KEY_STACK_NODE_DATAValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xEE64)
230
of file stack/config/token-stack.h
NVM3KEY_STACK_CLASSIC_DATA#
#define NVM3KEY_STACK_CLASSIC_DATAValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xE364)
231
of file stack/config/token-stack.h
NVM3KEY_STACK_ALTERNATE_KEY#
#define NVM3KEY_STACK_ALTERNATE_KEYValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xE475)
232
of file stack/config/token-stack.h
NVM3KEY_STACK_APS_FRAME_COUNTER#
#define NVM3KEY_STACK_APS_FRAME_COUNTERValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xE123)
233
of file stack/config/token-stack.h
NVM3KEY_STACK_TRUST_CENTER#
#define NVM3KEY_STACK_TRUST_CENTERValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xE124)
234
of file stack/config/token-stack.h
NVM3KEY_STACK_NETWORK_MANAGEMENT#
#define NVM3KEY_STACK_NETWORK_MANAGEMENTValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xE125)
235
of file stack/config/token-stack.h
NVM3KEY_STACK_PARENT_INFO#
#define NVM3KEY_STACK_PARENT_INFOValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xE126)
236
of file stack/config/token-stack.h
NVM3KEY_STACK_PARENT_ADDITIONAL_INFO#
#define NVM3KEY_STACK_PARENT_ADDITIONAL_INFOValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xE127)
237
of file stack/config/token-stack.h
NVM3KEY_STACK_MULTI_PHY_NWK_INFO#
#define NVM3KEY_STACK_MULTI_PHY_NWK_INFOValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xE128)
238
of file stack/config/token-stack.h
NVM3KEY_STACK_MIN_RECEIVED_RSSI#
#define NVM3KEY_STACK_MIN_RECEIVED_RSSIValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xE129)
239
of file stack/config/token-stack.h
NVM3KEY_STACK_RESTORED_EUI64#
#define NVM3KEY_STACK_RESTORED_EUI64Value:
(NVM3KEY_DOMAIN_ZIGBEE | 0xE12A)
241
of file stack/config/token-stack.h
NVM3KEY_MULTI_NETWORK_STACK_KEYS#
#define NVM3KEY_MULTI_NETWORK_STACK_KEYSValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0x0000)
245
of file stack/config/token-stack.h
NVM3KEY_MULTI_NETWORK_STACK_NODE_DATA#
#define NVM3KEY_MULTI_NETWORK_STACK_NODE_DATAValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0x0080)
247
of file stack/config/token-stack.h
NVM3KEY_MULTI_NETWORK_STACK_ALTERNATE_KEY#
#define NVM3KEY_MULTI_NETWORK_STACK_ALTERNATE_KEYValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0x0100)
249
of file stack/config/token-stack.h
NVM3KEY_MULTI_NETWORK_STACK_TRUST_CENTER#
#define NVM3KEY_MULTI_NETWORK_STACK_TRUST_CENTERValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0x0180)
251
of file stack/config/token-stack.h
NVM3KEY_MULTI_NETWORK_STACK_NETWORK_MANAGEMENT#
#define NVM3KEY_MULTI_NETWORK_STACK_NETWORK_MANAGEMENTValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0x0200)
253
of file stack/config/token-stack.h
NVM3KEY_MULTI_NETWORK_STACK_PARENT_INFO#
#define NVM3KEY_MULTI_NETWORK_STACK_PARENT_INFOValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0x0280)
255
of file stack/config/token-stack.h
NVM3KEY_MULTI_NETWORK_STACK_NONCE_COUNTER#
#define NVM3KEY_MULTI_NETWORK_STACK_NONCE_COUNTERValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xE220)
259
of file stack/config/token-stack.h
NVM3KEY_MULTI_NETWORK_STACK_PARENT_ADDITIONAL_INFO#
#define NVM3KEY_MULTI_NETWORK_STACK_PARENT_ADDITIONAL_INFOValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0x0300)
261
of file stack/config/token-stack.h
NVM3KEY_STACK_GP_DATA#
#define NVM3KEY_STACK_GP_DATAValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xE258)
264
of file stack/config/token-stack.h
NVM3KEY_STACK_GP_PROXY_TABLE#
#define NVM3KEY_STACK_GP_PROXY_TABLEValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0x0380)
266
of file stack/config/token-stack.h
NVM3KEY_STACK_GP_SINK_TABLE#
#define NVM3KEY_STACK_GP_SINK_TABLEValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0x0400)
268
of file stack/config/token-stack.h
NVM3KEY_STACK_GP_INCOMING_FC#
#define NVM3KEY_STACK_GP_INCOMING_FCValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0x0480)
270
of file stack/config/token-stack.h
NVM3KEY_STACK_BINDING_TABLE#
#define NVM3KEY_STACK_BINDING_TABLEValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0x0500)
274
of file stack/config/token-stack.h
NVM3KEY_STACK_CHILD_TABLE#
#define NVM3KEY_STACK_CHILD_TABLEValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0x0580)
276
of file stack/config/token-stack.h
NVM3KEY_STACK_KEY_TABLE#
#define NVM3KEY_STACK_KEY_TABLEValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0x0600)
278
of file stack/config/token-stack.h
NVM3KEY_STACK_CERTIFICATE_TABLE#
#define NVM3KEY_STACK_CERTIFICATE_TABLEValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0x0680)
280
of file stack/config/token-stack.h
NVM3KEY_STACK_ZLL_DATA#
#define NVM3KEY_STACK_ZLL_DATAValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xE501)
281
of file stack/config/token-stack.h
NVM3KEY_STACK_ZLL_SECURITY#
#define NVM3KEY_STACK_ZLL_SECURITYValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xE502)
282
of file stack/config/token-stack.h
NVM3KEY_STACK_ADDITIONAL_CHILD_DATA#
#define NVM3KEY_STACK_ADDITIONAL_CHILD_DATAValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0x0700)
284
of file stack/config/token-stack.h
NVM3KEY_STACK_GP_INCOMING_FC_IN_SINK#
#define NVM3KEY_STACK_GP_INCOMING_FC_IN_SINKValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0x0780)
287
of file stack/config/token-stack.h
NVM3KEY_STACK_KEY_TABLE_EXTENDED#
#define NVM3KEY_STACK_KEY_TABLE_EXTENDEDValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0x892C)
290
of file stack/config/token-stack.h
Macro Definition Documentation#
TOKEN_NEXT_ADDRESS#
#define TOKEN_NEXT_ADDRESS
By default, tokens are automatically located after the previous token.
If a token needs to be placed at a specific location, one of the DEFINE_FIXED_* definitions should be used. This macro is inherently used in the DEFINE_FIXED_* definition to locate a token and under special circumstances (such as manufacturing tokens) it may be explicitly used.
69
of file stack/config/token-stack.h
CURRENT_STACK_TOKEN_VERSION#
#define CURRENT_STACK_TOKEN_VERSIONValue:
0x03FC
The current version number of the stack tokens. MSB is the version, LSB is a complement.
See hal/micro/token.h for a more complete explanation.
316
of file stack/config/token-stack.h
STACK_KEYS_DEFAULT_VALUE#
#define STACK_KEYS_DEFAULT_VALUEValue:
{ { 0, } }
376
of file stack/config/token-stack.h
STACK_ALT_NWK_KEY_DEFAULT_VALUE#
#define STACK_ALT_NWK_KEY_DEFAULT_VALUEValue:
{ { 0, } }
377
of file stack/config/token-stack.h
ZLL_TOKENS_PRESENT#
#define ZLL_TOKENS_PRESENT
597
of file stack/config/token-stack.h