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
NVM3 Object Keys Documentation#
NVM3KEY_DOMAIN_USER#
#define NVM3KEY_DOMAIN_USERValue:
0x00000U
219
of file stack/config/token-stack.h
NVM3KEY_DOMAIN_ZIGBEE#
#define NVM3KEY_DOMAIN_ZIGBEEValue:
0x10000U
220
of file stack/config/token-stack.h
NVM3KEY_DOMAIN_COMMON#
#define NVM3KEY_DOMAIN_COMMONValue:
0x80000U
221
of file stack/config/token-stack.h
NVM3KEY_STACK_NVDATA_VERSION#
#define NVM3KEY_STACK_NVDATA_VERSIONValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xFF01)
224
of file stack/config/token-stack.h
NVM3KEY_STACK_BOOT_COUNTER#
#define NVM3KEY_STACK_BOOT_COUNTERValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xE263)
225
of file stack/config/token-stack.h
NVM3KEY_STACK_NONCE_COUNTER#
#define NVM3KEY_STACK_NONCE_COUNTERValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xE563)
226
of file stack/config/token-stack.h
NVM3KEY_STACK_ANALYSIS_REBOOT#
#define NVM3KEY_STACK_ANALYSIS_REBOOTValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xE162)
227
of file stack/config/token-stack.h
NVM3KEY_STACK_KEYS#
#define NVM3KEY_STACK_KEYSValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xEB79)
228
of file stack/config/token-stack.h
NVM3KEY_STACK_NODE_DATA#
#define NVM3KEY_STACK_NODE_DATAValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xEE64)
229
of file stack/config/token-stack.h
NVM3KEY_STACK_CLASSIC_DATA#
#define NVM3KEY_STACK_CLASSIC_DATAValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xE364)
230
of file stack/config/token-stack.h
NVM3KEY_STACK_ALTERNATE_KEY#
#define NVM3KEY_STACK_ALTERNATE_KEYValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xE475)
231
of file stack/config/token-stack.h
NVM3KEY_STACK_APS_FRAME_COUNTER#
#define NVM3KEY_STACK_APS_FRAME_COUNTERValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xE123)
232
of file stack/config/token-stack.h
NVM3KEY_STACK_TRUST_CENTER#
#define NVM3KEY_STACK_TRUST_CENTERValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xE124)
233
of file stack/config/token-stack.h
NVM3KEY_STACK_NETWORK_MANAGEMENT#
#define NVM3KEY_STACK_NETWORK_MANAGEMENTValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xE125)
234
of file stack/config/token-stack.h
NVM3KEY_STACK_PARENT_INFO#
#define NVM3KEY_STACK_PARENT_INFOValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xE126)
235
of file stack/config/token-stack.h
NVM3KEY_STACK_PARENT_ADDITIONAL_INFO#
#define NVM3KEY_STACK_PARENT_ADDITIONAL_INFOValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xE127)
236
of file stack/config/token-stack.h
NVM3KEY_STACK_MULTI_PHY_NWK_INFO#
#define NVM3KEY_STACK_MULTI_PHY_NWK_INFOValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xE128)
237
of file stack/config/token-stack.h
NVM3KEY_STACK_MIN_RECEIVED_RSSI#
#define NVM3KEY_STACK_MIN_RECEIVED_RSSIValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xE129)
238
of file stack/config/token-stack.h
NVM3KEY_STACK_RESTORED_EUI64#
#define NVM3KEY_STACK_RESTORED_EUI64Value:
(NVM3KEY_DOMAIN_ZIGBEE | 0xE12A)
240
of file stack/config/token-stack.h
NVM3KEY_MULTI_NETWORK_STACK_KEYS#
#define NVM3KEY_MULTI_NETWORK_STACK_KEYSValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0x0000)
244
of file stack/config/token-stack.h
NVM3KEY_MULTI_NETWORK_STACK_NODE_DATA#
#define NVM3KEY_MULTI_NETWORK_STACK_NODE_DATAValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0x0080)
246
of file stack/config/token-stack.h
NVM3KEY_MULTI_NETWORK_STACK_ALTERNATE_KEY#
#define NVM3KEY_MULTI_NETWORK_STACK_ALTERNATE_KEYValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0x0100)
248
of file stack/config/token-stack.h
NVM3KEY_MULTI_NETWORK_STACK_TRUST_CENTER#
#define NVM3KEY_MULTI_NETWORK_STACK_TRUST_CENTERValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0x0180)
250
of file stack/config/token-stack.h
NVM3KEY_MULTI_NETWORK_STACK_NETWORK_MANAGEMENT#
#define NVM3KEY_MULTI_NETWORK_STACK_NETWORK_MANAGEMENTValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0x0200)
252
of file stack/config/token-stack.h
NVM3KEY_MULTI_NETWORK_STACK_PARENT_INFO#
#define NVM3KEY_MULTI_NETWORK_STACK_PARENT_INFOValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0x0280)
254
of file stack/config/token-stack.h
NVM3KEY_MULTI_NETWORK_STACK_NONCE_COUNTER#
#define NVM3KEY_MULTI_NETWORK_STACK_NONCE_COUNTERValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xE220)
258
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)
260
of file stack/config/token-stack.h
NVM3KEY_STACK_GP_DATA#
#define NVM3KEY_STACK_GP_DATAValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xE258)
263
of file stack/config/token-stack.h
NVM3KEY_STACK_GP_PROXY_TABLE#
#define NVM3KEY_STACK_GP_PROXY_TABLEValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0x0380)
265
of file stack/config/token-stack.h
NVM3KEY_STACK_GP_SINK_TABLE#
#define NVM3KEY_STACK_GP_SINK_TABLEValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0x0400)
267
of file stack/config/token-stack.h
NVM3KEY_STACK_GP_INCOMING_FC#
#define NVM3KEY_STACK_GP_INCOMING_FCValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0x0480)
269
of file stack/config/token-stack.h
NVM3KEY_STACK_BINDING_TABLE#
#define NVM3KEY_STACK_BINDING_TABLEValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0x0500)
273
of file stack/config/token-stack.h
NVM3KEY_STACK_CHILD_TABLE#
#define NVM3KEY_STACK_CHILD_TABLEValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0x0580)
275
of file stack/config/token-stack.h
NVM3KEY_STACK_KEY_TABLE#
#define NVM3KEY_STACK_KEY_TABLEValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0x0600)
277
of file stack/config/token-stack.h
NVM3KEY_STACK_CERTIFICATE_TABLE#
#define NVM3KEY_STACK_CERTIFICATE_TABLEValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0x0680)
279
of file stack/config/token-stack.h
NVM3KEY_STACK_ZLL_DATA#
#define NVM3KEY_STACK_ZLL_DATAValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xE501)
280
of file stack/config/token-stack.h
NVM3KEY_STACK_ZLL_SECURITY#
#define NVM3KEY_STACK_ZLL_SECURITYValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0xE502)
281
of file stack/config/token-stack.h
NVM3KEY_STACK_ADDITIONAL_CHILD_DATA#
#define NVM3KEY_STACK_ADDITIONAL_CHILD_DATAValue:
(NVM3KEY_DOMAIN_ZIGBEE | 0x0700)
283
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)
286
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.
312
of file stack/config/token-stack.h
STACK_KEYS_DEFAULT_VALUE#
#define STACK_KEYS_DEFAULT_VALUEValue:
{ { 0, } }
372
of file stack/config/token-stack.h
STACK_ALT_NWK_KEY_DEFAULT_VALUE#
#define STACK_ALT_NWK_KEY_DEFAULT_VALUEValue:
{ { 0, } }
373
of file stack/config/token-stack.h
ZLL_TOKENS_PRESENT#
#define ZLL_TOKENS_PRESENT
578
of file stack/config/token-stack.h