Modules#

EmberReleaseTypeStruct

EmberVersion

EmberZigbeeNetwork

EmberNetworkInitStruct

EmberBeaconSurvey

EmberBeaconData

EmberBeaconIterator

EmberNetworkParameters

EmberMultiPhyRadioParameters

EmberApsFrame

EmberChildData

EmberBindingTableEntry

EmberNeighborTableEntry

EmberRouteTableEntry

EmberMulticastTableEntry

EmberMultiprotocolPriorities

EmberCounterInfo

EmberExtraCounterInfo

EmberEventControl

EmberEventData

EmberTaskControl

EmberKeyData

EmberCertificateData

EmberPublicKeyData

EmberPrivateKeyData

EmberSmacData

EmberSignatureData

EmberMessageDigest

EmberAesMmoHashContext

EmberCertificate283k1Data

EmberPublicKey283k1Data

EmberPrivateKey283k1Data

EmberSignature283k1Data

EmberInitialSecurityState

EmberCurrentSecurityState

EmberTransientKeyData

EmberKeyStruct

EmberMfgSecurityStruct

EmberDutyCycleLimits

EmberPerDeviceDutyCycle

sl_nwk_packet_exchange_t

EmberMacFilterMatchStruct

SourceRouteTableEntry

EmberBeaconClassificationParams

EmberTagMapEntry

Ember Common Data Types#

See ember-types.h for source code.

Miscellaneous Ember Types#

enum
EMBER_VERSION_TYPE_PRE_RELEASE = 0x00
EMBER_VERSION_TYPE_ALPHA_1 = 0x11
EMBER_VERSION_TYPE_ALPHA_2 = 0x12
EMBER_VERSION_TYPE_ALPHA_3 = 0x13
EMBER_VERSION_TYPE_BETA_1 = 0x21
EMBER_VERSION_TYPE_BETA_2 = 0x22
EMBER_VERSION_TYPE_BETA_3 = 0x23
EMBER_VERSION_TYPE_GA = 0xAA
}

Type of Ember software version.

enum
EMBER_STACK_PROFILE_NONE = 0x00
EMBER_STACK_PROFILE_ZIGBEE_PRO = 0x02
}

EmberReleaseTypeStruct Data that relates release type to the correct string.

enum
EMBER_SECURITY_LEVEL_NONE = 0x00
EMBER_SECURITY_LEVEL_Z3 = 0x05
}

EmberReleaseTypeStruct Data that relates release type to the correct string.

enum
EMBER_ZIGBEE_LEAVE_AND_REJOIN = 0x80
EMBER_ZIGBEE_LEAVE_WITHOUT_REJOIN = 0x00
}

EmberReleaseTypeStruct Data that relates release type to the correct string.

enum
EMBER_LEAVE_REASON_NONE = 0
EMBER_LEAVE_DUE_TO_NWK_LEAVE_MESSAGE = 1
EMBER_LEAVE_DUE_TO_APS_REMOVE_MESSAGE = 2
EMBER_LEAVE_DUE_TO_ZDO_LEAVE_MESSAGE = 3
EMBER_LEAVE_DUE_TO_ZLL_TOUCHLINK = 4
EMBER_LEAVE_DUE_TO_APP_EVENT_1 = 0xFF
}

EmberReleaseTypeStruct Data that relates release type to the correct string.

typedef uint16_t

16-bit ZigBee network address.

typedef uint16_t

802.15.4 PAN ID.

A structure containing the version information.

#define
EMBER_RELEASE_TYPE_TO_STRING_STRUCT_DATA undefined

EmberReleaseTypeStruct Data that relates release type to the correct string.

#define
EUI64_SIZE 8

Size of EUI64 (an IEEE address) in bytes (8).

#define
EXTENDED_PAN_ID_SIZE 8

Size of an extended PAN identifier in bytes (8).

#define
EMBER_ENCRYPTION_KEY_SIZE 16

Size of an encryption key in bytes (16).

#define
EMBER_CERTIFICATE_SIZE 48

Size of Implicit Certificates used for Certificate-based Key Exchange(CBKE).

#define
EMBER_PUBLIC_KEY_SIZE 22

Size of Public Keys used in Elliptical Cryptography ECMQV algorithms.

#define
EMBER_PRIVATE_KEY_SIZE 21

Size of Private Keys used in Elliptical Cryptography ECMQV algorithms.

#define
EMBER_SMAC_SIZE 16

Size of the SMAC used in Elliptical Cryptography ECMQV algorithms.

#define
EMBER_SIGNATURE_SIZE 42

Size of the DSA signature used in Elliptical Cryptography Digital Signature Algorithms.

#define
EMBER_AES_HASH_BLOCK_SIZE 16

The size of AES-128 MMO hash is 16-bytes. This is defined in the core. ZigBee specification.

#define
EMBER_CERTIFICATE_283K1_SIZE 74

Size of Implicit Certificates used for Certificate Based Key Exchange using the ECC283K1 curve in bytes.

#define
EMBER_PUBLIC_KEY_283K1_SIZE 37

Size of Public Keys used in SECT283k1 Elliptical Cryptography ECMQV algorithms.

#define
EMBER_PRIVATE_KEY_283K1_SIZE 36

Size of Private Keys used SECT283k1 in Elliptical Cryptography ECMQV algorithms.

#define
EMBER_SIGNATURE_283K1_SIZE 72

Size of the DSA signature used in SECT283k1 Elliptical Cryptography Digital Signature Algorithms.

#define
__EMBERSTATUS_TYPE__

Return type for Ember functions.

#define
NULL_BUFFER 0x0000u

EUI 64-bit ID (an IEEE address).

#define
EMBER_MAX_802_15_4_CHANNEL_NUMBER 26

The maximum 802.15.4 channel number is 26.

#define
EMBER_MIN_802_15_4_CHANNEL_NUMBER 11

The minimum 2.4GHz 802.15.4 channel number is 11.

#define
EMBER_MIN_SUBGHZ_CHANNEL_NUMBER 0

The minimum SubGhz channel number is 0.

#define
EMBER_ACTIVE_SCAN_DURATION 3
#define
EMBER_SUB_GHZ_SCAN_DURATION 5

The SubGhz scan duration is 5.

#define
EMBER_NUM_802_15_4_CHANNELS (EMBER_MAX_802_15_4_CHANNEL_NUMBER - EMBER_MIN_802_15_4_CHANNEL_NUMBER + 1)

There are sixteen 802.15.4 channels.

#define
EMBER_ALL_802_15_4_CHANNELS_MASK 0x07FFF800UL

A bitmask to scan all 2.4 GHz 802.15.4 channels.

#define
EMBER_MAX_CHANNELS_PER_PAGE 27

The maximum channels per page are 27 page bits 31...27, channel bits 26...0.

#define
EMBER_ALL_SUBGHZ_CHANNELS_MASK_FOR_PAGES_28_30_31 0x07FFFFFFUL

Sub-GHz channel bitmasks for pages 28, 30, 31.

#define
EMBER_MAX_SUBGHZ_CHANNEL_NUMBER_ON_PAGES_28_30_31 26

The maximum SubGhz channel number on pages 28, 30, 31 is 26.

#define
EMBER_ALL_SUBGHZ_CHANNELS_MASK_FOR_PAGES_29 0x1FF

SubGhz channel bitmasks for page 29.

#define
EMBER_MAX_SUBGHZ_CHANNEL_NUMBER_ON_PAGE_29 8

The maximum SubGhz channel number on page 29 is 8.

#define
EMBER_MIN_SUGBHZ_PAGE_NUMBER 28

The minimum SubGhz page number is 28.

#define
EMBER_MAX_SUGBHZ_PAGE_NUMBER 31

The maximum SubGhz page number is 31.

#define
EMBER_ALL_CHANNEL_PAGE_MASK 0xF8000000UL

A bitmask for the channel page within a channel mask.

#define
EMBER_PAGE_CHANNEL_MASK_FROM_CHANNEL_MASK (page, mask)

A page-channel mask for a given page and channel mask.

#define
EMBER_PAGE_CHANNEL_MASK_FROM_CHANNEL_NUMBER (page, channel)

A page-channel mask for a given page and channel.

#define
EMBER_ZIGBEE_COORDINATOR_ADDRESS 0x0000u

The network ID of the coordinator in a ZigBee network is 0x0000.

#define
EMBER_NULL_NODE_ID 0xFFFFu

A distinguished network ID that will never be assigned to any node. It is used to indicate the absence of a node ID.

#define
EMBER_NO_CHANNEL_PAGE_IN_USE 0

The channel page value used to indicate just the 2.4GHz channels.

#define
EMBER_NULL_EUI64 { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }

A distinguished EUI64 that is commonly used to indicate an invalid EUI64.

#define
EMBER_NULL_BINDING 0xFFu

A distinguished binding index used to indicate the absence of a binding.

#define
EMBER_TABLE_ENTRY_UNUSED_NODE_ID 0xFFFFu

A distinguished network ID that will never be assigned to any node.

#define
EMBER_MULTICAST_NODE_ID 0xFFFEu

A distinguished network ID that will never be assigned to any node. This value is returned when getting the remote node ID from the binding table and the given binding table index refers to a multicast binding entry.

#define
EMBER_UNKNOWN_NODE_ID 0xFFFDu

A distinguished network ID that will never be assigned to any node. This value is used when getting the remote node ID from the address or binding tables. It indicates that the address or binding table entry is currently in use but the node ID corresponding to the EUI64 in the table is currently unknown.

#define
EMBER_DISCOVERY_ACTIVE_NODE_ID 0xFFFCu

A distinguished network ID that will never be assigned to any node. This value is used when getting the remote node ID from the address or binding tables. It indicates that the address or binding table entry is currently in use and network address discovery is underway.

#define
EMBER_NULL_ADDRESS_TABLE_INDEX 0xFFu

A distinguished address table index used to indicate the absence of an address table entry.

#define
EMBER_ZDO_ENDPOINT 0u

The endpoint where the ZigBee Device Object (ZDO) resides.

#define
EMBER_BROADCAST_ENDPOINT 0xFFu

The broadcast endpoint, as defined in the ZigBee spec.

#define
EMBER_ZDO_PROFILE_ID 0x0000u

The profile ID used by the ZigBee Device Object (ZDO).

#define
EMBER_WILDCARD_PROFILE_ID 0xFFFFu

The profile ID used to address all the public profiles.

#define
EMBER_MAXIMUM_STANDARD_PROFILE_ID 0x7FFFu

The maximum value for a profile ID in the standard profile range.

#define
EMBER_BROADCAST_TABLE_TIMEOUT_QS (20 * 4)

The broadcast table entry timeout, which specifies, in quarter seconds, how long an entry persists in the local device's broadcast table.

#define
EMBER_MANUFACTURER_ID 0x1002u

Ember's Manufacturer ID.

#define
EMBER_NULL_NETWORK_INDEX 0xFFu

An invalid network index.

#define
EMBER_DC_LIMIT_USE_DEFAULT 0

Use Ember's default duty cycle limit configurations.

ZigBee Broadcast Addresses#

ZigBee specifies three different broadcast addresses that reach different collections of nodes. Broadcasts are normally sent only to routers. Broadcasts can also be forwarded to end devices, either all of them or only those that do not sleep. Broadcasting to end devices is both significantly more resource-intensive and significantly less reliable than broadcasting to routers.

#define
EMBER_BROADCAST_ADDRESS 0xFFFCu
#define
EMBER_RX_ON_WHEN_IDLE_BROADCAST_ADDRESS 0xFFFDu
#define
EMBER_SLEEPY_BROADCAST_ADDRESS 0xFFFFu

Ember Concentrator Types#

enum
EMBER_ASSUME_TRUST_CENTER_IS_NOT_A_CONCENTRATOR = 0
EMBER_ASSUME_TRUST_CENTER_IS_LOW_RAM_CONCENTRATOR = 1
EMBER_ASSUME_TRUST_CENTER_IS_HIGH_RAM_CONCENTRATOR = 2
}

To configure non trust center node to assume a concentrator type of the trust center it join to, until it receive many-to-one route request from the trust center. For the trust center node, concentrator type is configured from the concentrator plugin. The stack by default assumes trust center be a low RAM concentrator that make other devices send route record to the trust center even without receiving a many-to-one route request. The assumed concentrator type can be changed by setting appropriate value to emberAssumedTrustCenterConcentratorType.

enum
EMBER_USE_PRECONFIGURED_KEY = 0
EMBER_SEND_KEY_IN_THE_CLEAR
EMBER_DENY_JOIN
EMBER_NO_ACTION
EMBER_ALLOW_REJOINS_ONLY
}

The decision made by the Trust Center when a node attempts to join.

enum
EMBER_STANDARD_SECURITY_SECURED_REJOIN = 0
EMBER_STANDARD_SECURITY_UNSECURED_JOIN = 1
EMBER_DEVICE_LEFT = 2
EMBER_STANDARD_SECURITY_UNSECURED_REJOIN = 3
}

The Status of the Update Device message sent to the Trust Center. The device may have joined or rejoined insecurely, rejoined securely, or left. MAC Security has been deprecated and therefore there is no secure join.

enum
EMBER_REJOIN_REASON_NONE = 0
EMBER_REJOIN_DUE_TO_NWK_KEY_UPDATE = 1
EMBER_REJOIN_DUE_TO_LEAVE_MESSAGE = 2
EMBER_REJOIN_DUE_TO_NO_PARENT = 3
EMBER_REJOIN_DUE_TO_ZLL_TOUCHLINK = 4
EMBER_REJOIN_DUE_TO_END_DEVICE_REBOOT = 5
EMBER_REJOIN_DUE_TO_APP_EVENT_5 = 0xFB
EMBER_REJOIN_DUE_TO_APP_EVENT_4 = 0xFC
EMBER_REJOIN_DUE_TO_APP_EVENT_3 = 0xFD
EMBER_REJOIN_DUE_TO_APP_EVENT_2 = 0xFE
EMBER_REJOIN_DUE_TO_APP_EVENT_1 = 0xFF
}

Notes the last rejoin reason.

enum
EMBER_INPUT_CLUSTER_LIST = 0
EMBER_OUTPUT_CLUSTER_LIST = 1
}

Defines the lists of clusters that must be provided for each endpoint.

enum
EMBER_EVENT_INACTIVE = 0
EMBER_EVENT_MS_TIME
EMBER_EVENT_QS_TIME
EMBER_EVENT_MINUTE_TIME
EMBER_EVENT_ZERO_DELAY
}

Either marks an event as inactive or specifies the units for the event execution time.

enum
EMBER_USE_MAC_ASSOCIATION = 0
EMBER_USE_NWK_REJOIN = 1
EMBER_USE_NWK_REJOIN_HAVE_NWK_KEY = 2
EMBER_USE_CONFIGURED_NWK_STATE = 3
}

The type of method used for joining.

enum
EMBER_COUNTER_MAC_RX_BROADCAST = 0
EMBER_COUNTER_MAC_TX_BROADCAST = 1
EMBER_COUNTER_MAC_RX_UNICAST = 2
EMBER_COUNTER_MAC_TX_UNICAST_SUCCESS = 3
EMBER_COUNTER_MAC_TX_UNICAST_RETRY = 4
EMBER_COUNTER_MAC_TX_UNICAST_FAILED = 5
EMBER_COUNTER_APS_DATA_RX_BROADCAST = 6
EMBER_COUNTER_APS_DATA_TX_BROADCAST = 7
EMBER_COUNTER_APS_DATA_RX_UNICAST = 8
EMBER_COUNTER_APS_DATA_TX_UNICAST_SUCCESS = 9
EMBER_COUNTER_APS_DATA_TX_UNICAST_RETRY = 10
EMBER_COUNTER_APS_DATA_TX_UNICAST_FAILED = 11
EMBER_COUNTER_ROUTE_DISCOVERY_INITIATED = 12
EMBER_COUNTER_NEIGHBOR_ADDED = 13
EMBER_COUNTER_NEIGHBOR_REMOVED = 14
EMBER_COUNTER_NEIGHBOR_STALE = 15
EMBER_COUNTER_JOIN_INDICATION = 16
EMBER_COUNTER_CHILD_REMOVED = 17
EMBER_COUNTER_ASH_OVERFLOW_ERROR = 18
EMBER_COUNTER_ASH_FRAMING_ERROR = 19
EMBER_COUNTER_ASH_OVERRUN_ERROR = 20
EMBER_COUNTER_NWK_FRAME_COUNTER_FAILURE = 21
EMBER_COUNTER_APS_FRAME_COUNTER_FAILURE = 22
EMBER_COUNTER_ASH_XOFF = 23
EMBER_COUNTER_APS_LINK_KEY_NOT_AUTHORIZED = 24
EMBER_COUNTER_NWK_DECRYPTION_FAILURE = 25
EMBER_COUNTER_APS_DECRYPTION_FAILURE = 26
EMBER_COUNTER_ALLOCATE_PACKET_BUFFER_FAILURE = 27
EMBER_COUNTER_RELAYED_UNICAST = 28
EMBER_COUNTER_PHY_TO_MAC_QUEUE_LIMIT_REACHED = 29
EMBER_COUNTER_PACKET_VALIDATE_LIBRARY_DROPPED_COUNT = 30
EMBER_COUNTER_TYPE_NWK_RETRY_OVERFLOW = 31
EMBER_COUNTER_PHY_CCA_FAIL_COUNT = 32
EMBER_COUNTER_BROADCAST_TABLE_FULL = 33
EMBER_COUNTER_PTA_LO_PRI_REQUESTED = 34
EMBER_COUNTER_PTA_HI_PRI_REQUESTED = 35
EMBER_COUNTER_PTA_LO_PRI_DENIED = 36
EMBER_COUNTER_PTA_HI_PRI_DENIED = 37
EMBER_COUNTER_PTA_LO_PRI_TX_ABORTED = 38
EMBER_COUNTER_PTA_HI_PRI_TX_ABORTED = 39
EMBER_COUNTER_ADDRESS_CONFLICT_SENT = 40
EMBER_COUNTER_TYPE_COUNT = 41
}

Defines the events reported to the application by the emberCounterHandler().

typedef uint8_t
#define
EMBER_LOW_RAM_CONCENTRATOR 0xFFF8u
#define
EMBER_HIGH_RAM_CONCENTRATOR 0xFFF9u
#define
EMBER_JOIN_DECISION_STRINGS undefined
#define
EMBER_DEVICE_UPDATE_STRINGS undefined
#define
emberInitializeNetworkParameters (parameters)
#define
EMBER_COUNTER_STRINGS

txPowerModes for emberSetTxPowerMode and mfglibSetPower#

#define
EMBER_TX_POWER_MODE_DEFAULT 0x0000

The application should call emberSetTxPowerMode() with the txPowerMode parameter set to this value to disable all power mode options, resulting in normal power mode and bi-directional RF transmitter output.

#define
EMBER_TX_POWER_MODE_BOOST 0x0001

The application should call emberSetTxPowerMode() with the txPowerMode parameter set to this value to enable boost power mode.

#define
EMBER_TX_POWER_MODE_ALTERNATE 0x0002

The application should call emberSetTxPowerMode() with the txPowerMode parameter set to this value to enable the alternate transmitter output.

#define
EMBER_TX_POWER_MODE_BOOST_AND_ALTERNATE undefined

The application should call emberSetTxPowerMode() with the txPowerMode parameter set to this value to enable both boost mode and the alternate transmitter output.

Counters Request Definitions#

enum
EMBER_DISTRIBUTED_TRUST_CENTER_MODE = 0x0002
EMBER_TRUST_CENTER_GLOBAL_LINK_KEY = 0x0004
EMBER_PRECONFIGURED_NETWORK_KEY_MODE = 0x0008
EMBER_HAVE_TRUST_CENTER_EUI64 = 0x0040
EMBER_TRUST_CENTER_USES_HASHED_LINK_KEY = 0x0084
EMBER_HAVE_PRECONFIGURED_KEY = 0x0100
EMBER_HAVE_NETWORK_KEY = 0x0200
EMBER_GET_LINK_KEY_WHEN_JOINING = 0x0400
EMBER_REQUIRE_ENCRYPTED_KEY = 0x0800
EMBER_NO_FRAME_COUNTER_RESET = 0x1000
EMBER_GET_PRECONFIGURED_KEY_FROM_INSTALL_CODE = 0x2000
}

This is the Initial Security Bitmask that controls the use of various security features.

enum
EMBER_SECURE_NETWORK_KEY_ROTATION = 0x0002
EMBER_JOINER_GLOBAL_LINK_KEY = 0x0010
EMBER_EXT_NO_FRAME_COUNTER_RESET = 0x0020
EMBER_NWK_LEAVE_WITHOUT_REJOIN_NOT_ALLOWED = 0x0040
EMBER_NWK_LEAVE_REQUEST_NOT_ALLOWED = 0x0100
}

This is the Extended Security Bitmask that controls the use of various extended security features.

enum
EMBER_STANDARD_SECURITY_MODE_ = 0x0000
EMBER_DISTRIBUTED_TRUST_CENTER_MODE_ = 0x0002
EMBER_TRUST_CENTER_GLOBAL_LINK_KEY_ = 0x0004
EMBER_HAVE_TRUST_CENTER_LINK_KEY = 0x0010
EMBER_TRUST_CENTER_USES_HASHED_LINK_KEY_ = 0x0084
}

This is the Current Security Bitmask that details the use of various security features.

enum
EMBER_KEY_HAS_SEQUENCE_NUMBER = 0x0001
EMBER_KEY_HAS_OUTGOING_FRAME_COUNTER = 0x0002
EMBER_KEY_HAS_INCOMING_FRAME_COUNTER = 0x0004
EMBER_KEY_HAS_PARTNER_EUI64 = 0x0008
EMBER_KEY_IS_AUTHORIZED = 0x0010
EMBER_KEY_PARTNER_IS_SLEEPY = 0x0020
EMBER_UNCONFIRMED_TRANSIENT_KEY = 0x0040
}

This bitmask describes the presence of fields within the EmberKeyStruct.

enum
EMBER_TRUST_CENTER_LINK_KEY = 1
EMBER_CURRENT_NETWORK_KEY = 3
EMBER_NEXT_NETWORK_KEY = 4
EMBER_APPLICATION_LINK_KEY = 5
}

This denotes the type of security key.

enum
EMBER_KEY_STATUS_NONE = 0x00
EMBER_APP_LINK_KEY_ESTABLISHED = 0x01
EMBER_TRUST_CENTER_LINK_KEY_ESTABLISHED = 0x03
EMBER_KEY_ESTABLISHMENT_TIMEOUT = 0x04
EMBER_KEY_TABLE_FULL = 0x05
EMBER_TC_RESPONDED_TO_KEY_REQUEST = 0x06
EMBER_TC_APP_KEY_SENT_TO_REQUESTER = 0x07
EMBER_TC_RESPONSE_TO_KEY_REQUEST_FAILED = 0x08
EMBER_TC_REQUEST_KEY_TYPE_NOT_SUPPORTED = 0x09
EMBER_TC_NO_LINK_KEY_FOR_REQUESTER = 0x0A
EMBER_TC_REQUESTER_EUI64_UNKNOWN = 0x0B
EMBER_TC_RECEIVED_FIRST_APP_KEY_REQUEST = 0x0C
EMBER_TC_TIMEOUT_WAITING_FOR_SECOND_APP_KEY_REQUEST = 0x0D
EMBER_TC_NON_MATCHING_APP_KEY_REQUEST_RECEIVED = 0x0E
EMBER_TC_FAILED_TO_SEND_APP_KEYS = 0x0F
EMBER_TC_FAILED_TO_STORE_APP_KEY_REQUEST = 0x10
EMBER_TC_REJECTED_APP_KEY_REQUEST = 0x11
EMBER_TC_FAILED_TO_GENERATE_NEW_KEY = 0x12
EMBER_TC_FAILED_TO_SEND_TC_KEY = 0x13
EMBER_TRUST_CENTER_IS_PRE_R21 = 0x1E
EMBER_TC_REQUESTER_VERIFY_KEY_TIMEOUT = 0x32
EMBER_TC_REQUESTER_VERIFY_KEY_FAILURE = 0x33
EMBER_TC_REQUESTER_VERIFY_KEY_SUCCESS = 0x34
EMBER_VERIFY_LINK_KEY_FAILURE = 0x64
EMBER_VERIFY_LINK_KEY_SUCCESS = 0x65
}

This denotes the status of an attempt to establish a key with another device.

enum
EMBER_DENY_TC_LINK_KEY_REQUESTS = 0x00
EMBER_ALLOW_TC_LINK_KEY_REQUEST_AND_SEND_CURRENT_KEY = 0x01
EMBER_ALLOW_TC_LINK_KEY_REQUEST_AND_GENERATE_NEW_KEY = 0x02
}

This enumeration determines whether or not a Trust Center answers trust center link key requests.

enum
EMBER_DENY_APP_LINK_KEY_REQUESTS = 0x00
EMBER_ALLOW_APP_LINK_KEY_REQUEST = 0x01
}

This enumeration determines whether or not a Trust Center answers app link key requests.

enum
EMBER_KEY_PERMISSIONS_NONE = 0x0000
EMBER_KEY_PERMISSIONS_READING_ALLOWED = 0x0001
EMBER_KEY_PERMISSIONS_HASHING_ALLOWED = 0x0002
}

This is a ZigBee application profile ID that has been assigned to Ember Corporation.

enum
EMBER_MAC_PASSTHROUGH_NONE = 0x00
EMBER_MAC_PASSTHROUGH_SE_INTERPAN = 0x01
EMBER_MAC_PASSTHROUGH_EMBERNET = 0x02
EMBER_MAC_PASSTHROUGH_EMBERNET_SOURCE = 0x04
EMBER_MAC_PASSTHROUGH_APPLICATION = 0x08
EMBER_MAC_PASSTHROUGH_CUSTOM = 0x10
}

The types of MAC passthrough messages that an application may receive. This is a bitmask.

uint8_t *
emberKeyContents(EmberKeyData *key)

This function allows access to the actual key data bytes of the EmberKeyData structure.

uint8_t *
emberCertificateContents(EmberCertificateData *cert)

This function allows access to the actual certificate data bytes of the EmberCertificateData structure.

uint8_t *
emberPublicKeyContents(EmberPublicKeyData *key)

This function allows access to the actual public key data bytes of the EmberPublicKeyData structure.

uint8_t *
emberPrivateKeyContents(EmberPrivateKeyData *key)

This function allows access to the actual private key data bytes of the EmberPrivateKeyData structure.

uint8_t *
emberSmacContents(EmberSmacData *key)

This function allows access to the actual SMAC (Secured Message Authentication Code) data of the EmberSmacData structure.

uint8_t *
emberSignatureContents(EmberSignatureData *sig)

This function allows access to the actual ECDSA signature data of the EmberSignatureData structure.

uint8_t *
emberCertificate283k1Contents(EmberCertificate283k1Data *cert)

This function allows access to the actual certificate data bytes of the Ember283k1CertificateData structure.

uint8_t *
emberPublicKey283k1Contents(EmberPublicKey283k1Data *key)

This function allows access to the actual public key data bytes of the Ember283k1PublicKeyData structure.

uint8_t *
emberPrivateKey283k1Contents(EmberPrivateKey283k1Data *key)

This function allows access to the actual private key data bytes of the Ember283k1PrivateKeyData structure.

uint8_t *
ember283k1SignatureContents(Ember283k1SignatureData *sig)

This function allows access to the actual ECDSA signature data of the Ember283k1SignatureData structure.

#define
EMBER_PRIVATE_PROFILE_ID 0xC00Eu

This is a ZigBee application profile ID that has been assigned to Ember Corporation.

#define
EMBER_PRIVATE_PROFILE_ID_START 0xC00Du

Ember's first private profile ID.

#define
EMBER_PRIVATE_PROFILE_ID_END 0xC016u

Ember's last private profile ID.

#define
EMBER_REPORT_COUNTERS_REQUEST 0x0003u
#define
EMBER_REPORT_COUNTERS_RESPONSE 0x8003u
#define
EMBER_REPORT_AND_CLEAR_COUNTERS_REQUEST 0x0004u
#define
EMBER_REPORT_AND_CLEAR_COUNTERS_RESPONSE 0x8004u
#define
EMBER_OTA_CERTIFICATE_UPGRADE_CLUSTER 0x0005u
#define
EMBER_STANDARD_SECURITY_MODE 0x0000

This is an EmberInitialSecurityBitmask value but it does not actually set anything. It is the default mode used by the ZigBee Pro stack. It is defined here so that no legacy code is broken by referencing it.

#define
EMBER_TRUST_CENTER_NODE_ID 0x0000u

The short address of the trust center. This address never changes dynamically.

#define
EMBER_NO_TRUST_CENTER_MODE EMBER_DISTRIBUTED_TRUST_CENTER_MODE

This is the legacy name for the Distributed Trust Center Mode.

#define
EMBER_GLOBAL_LINK_KEY EMBER_TRUST_CENTER_GLOBAL_LINK_KEY

This is the legacy name for the Trust Center Global Link Key.

#define
EMBER_MFG_SECURITY_CONFIG_MAGIC_NUMBER 0xCABAD11FUL

This magic number prevents accidentally changing the key settings. The emberSetMfgSecurityConfig() API will return EMBER_INVALID_CALL unless it is passed in.

ZDO response status.#

Most responses to ZDO commands contain a status byte. The meaning of this byte is defined by the ZigBee Device Profile.

enum
EMBER_ZDP_SUCCESS = 0x00
EMBER_ZDP_INVALID_REQUEST_TYPE = 0x80
EMBER_ZDP_DEVICE_NOT_FOUND = 0x81
EMBER_ZDP_INVALID_ENDPOINT = 0x82
EMBER_ZDP_NOT_ACTIVE = 0x83
EMBER_ZDP_NOT_SUPPORTED = 0x84
EMBER_ZDP_TIMEOUT = 0x85
EMBER_ZDP_NO_MATCH = 0x86
EMBER_ZDP_NO_ENTRY = 0x88
EMBER_ZDP_NO_DESCRIPTOR = 0x89
EMBER_ZDP_INSUFFICIENT_SPACE = 0x8a
EMBER_ZDP_NOT_PERMITTED = 0x8b
EMBER_ZDP_TABLE_FULL = 0x8c
EMBER_ZDP_NOT_AUTHORIZED = 0x8d
EMBER_ZDP_DEVICE_BINDING_TABLE_FULL = 0x8e
EMBER_ZDP_INVALID_INDEX = 0x8f
EMBER_NWK_ALREADY_PRESENT = 0xC5
EMBER_NWK_TABLE_FULL = 0xC7
EMBER_NWK_UNKNOWN_DEVICE = 0xC8
}

Network and IEEE Address Request/Response#

Defines for ZigBee device profile cluster IDs follow. These include descriptions of the formats of the messages.Note that each message starts with a 1-byte transaction sequence number. This sequence number is used to match a response command frame to the request frame that it is replying to. The application shall maintain a 1-byte counter that is copied into this field and incremented by one for each command sent. When a value of 0xff is reached, the next command shall re-start the counter with a value of 0x00.Network request: <transaction sequence number: 1> <EUI64:8> <type:1> <start index:1>IEEE request: <transaction sequence number: 1> <node ID:2> <type:1> <start index:1> <type> = 0x00 single address response, ignore the start index = 0x01 extended response -> sends kid's IDs as wellResponse: <transaction sequence number: 1> <status:1> <EUI64:8> <node ID:2> <ID count:1> <start index:1> <child ID:2>*

#define
NETWORK_ADDRESS_REQUEST 0x0000u
#define
NETWORK_ADDRESS_RESPONSE 0x8000u
#define
IEEE_ADDRESS_REQUEST 0x0001u
#define
IEEE_ADDRESS_RESPONSE 0x8001u

Node Descriptor Request/Response#

Request: <transaction sequence number: 1> <node ID:2> Response: <transaction sequence number: 1> <status:1> <node ID:2>// <node descriptor: 13>//// Node Descriptor field is divided into subfields of bitmasks as follows:// (Note: All lengths below are given in bits rather than bytes.)// Logical Type: 3// Complex Descriptor Available: 1// User Descriptor Available: 1// (reserved/unused): 3// APS Flags: 3// Frequency Band: 5// MAC capability flags: 8// Manufacturer Code: 16// Maximum buffer size: 8// Maximum incoming transfer size: 16// Server mask: 16// Maximum outgoing transfer size: 16// Descriptor Capability Flags: 8// See ZigBee document 053474, Section 2.3.2.3 for more details.

#define
NODE_DESCRIPTOR_REQUEST 0x0002u
#define
NODE_DESCRIPTOR_RESPONSE 0x8002u

Power Descriptor Request / Response#

Request: <transaction sequence number: 1> <node ID:2> Response: <transaction sequence number: 1> <status:1> <node ID:2> <current power mode, available power sources:1> <current power source, current power source level:1>// See ZigBee document 053474, Section 2.3.2.4 for more details.

#define
POWER_DESCRIPTOR_REQUEST 0x0003u
#define
POWER_DESCRIPTOR_RESPONSE 0x8003u

Simple Descriptor Request / Response#

Request: <transaction sequence number: 1> <node ID:2> <endpoint:1>Response: <transaction sequence number: 1> <status:1> <node ID:2> <length:1> <endpoint:1> <app profile ID:2> <app device ID:2> <app device version, app flags:1> <input cluster count:1> <input cluster:2>* <output cluster count:1> <output cluster:2>*

#define
SIMPLE_DESCRIPTOR_REQUEST 0x0004u
#define
SIMPLE_DESCRIPTOR_RESPONSE 0x8004u

Active Endpoints Request / Response#

Request: <transaction sequence number: 1> <node ID:2>Response: <transaction sequence number: 1> <status:1> <node ID:2> <endpoint count:1> <endpoint:1>*

#define
ACTIVE_ENDPOINTS_REQUEST 0x0005u
#define
ACTIVE_ENDPOINTS_RESPONSE 0x8005u

Match Descriptors Request / Response#

Request: <transaction sequence number: 1> <node ID:2> <app profile ID:2> <input cluster count:1> <input cluster:2>* <output cluster count:1> <output cluster:2>*Response: <transaction sequence number: 1> <status:1> <node ID:2> <endpoint count:1> <endpoint:1>*

#define
MATCH_DESCRIPTORS_REQUEST 0x0006u
#define
MATCH_DESCRIPTORS_RESPONSE 0x8006u

Discovery Cache Request / Response#

Request: <transaction sequence number: 1> <source node ID:2> <source EUI64:8>Response: <transaction sequence number: 1> <status (== EMBER_ZDP_SUCCESS):1>

#define
DISCOVERY_CACHE_REQUEST 0x0012u
#define
DISCOVERY_CACHE_RESPONSE 0x8012u

End Device Announce and End Device Announce Response#

Request: <transaction sequence number: 1> <node ID:2> <EUI64:8> <capabilities:1>No response is sent.

#define
END_DEVICE_ANNOUNCE 0x0013u
#define
END_DEVICE_ANNOUNCE_RESPONSE 0x8013u

System Server Discovery Request / Response#

This is broadcast and only servers which have matching services respond. The response contains the request services that the recipient provides.Request: <transaction sequence number: 1> <server mask:2>Response: <transaction sequence number: 1> <status (== EMBER_ZDP_SUCCESS):1> <server mask:2>

#define
SYSTEM_SERVER_DISCOVERY_REQUEST 0x0015u
#define
SYSTEM_SERVER_DISCOVERY_RESPONSE 0x8015u

Parent Announce and Parent Announce Response#

This is broadcast and only servers which have matching children respond. The response contains the list of children that the recipient now holds.Request: <transaction sequence number: 1> <number of children:1> <child EUI64:8> <child Age:4>*Response: <transaction sequence number: 1> <number of children:1> <child EUI64:8> <child Age:4>*

#define
PARENT_ANNOUNCE 0x001Fu
#define
PARENT_ANNOUNCE_RESPONSE 0x801Fu

ZDO server mask bits#

These are used in server discovery requests and responses.

enum
EMBER_ZDP_PRIMARY_TRUST_CENTER = 0x0001
EMBER_ZDP_SECONDARY_TRUST_CENTER = 0x0002
EMBER_ZDP_PRIMARY_BINDING_TABLE_CACHE = 0x0004
EMBER_ZDP_SECONDARY_BINDING_TABLE_CACHE = 0x0008
EMBER_ZDP_PRIMARY_DISCOVERY_CACHE = 0x0010
EMBER_ZDP_SECONDARY_DISCOVERY_CACHE = 0x0020
EMBER_ZDP_NETWORK_MANAGER = 0x0040
}

Find Node Cache Request / Response#

This is broadcast and only discovery servers which have the information for the device of interest, or the device of interest itself, respond. The requesting device can then direct any service discovery requests to the responder.Request: <transaction sequence number: 1> <device of interest ID:2> <d-of-i EUI64:8>Response: <transaction sequence number: 1> <responder ID:2> <device of interest ID:2> <d-of-i EUI64:8>

#define
FIND_NODE_CACHE_REQUEST 0x001Cu
#define
FIND_NODE_CACHE_RESPONSE 0x801Cu

End Device Bind Request / Response#

Request: <transaction sequence number: 1> <node ID:2> <EUI64:8> <endpoint:1> <app profile ID:2> <input cluster count:1> <input cluster:2>* <output cluster count:1> <output cluster:2>*Response: <transaction sequence number: 1> <status:1>

#define
END_DEVICE_BIND_REQUEST 0x0020u
#define
END_DEVICE_BIND_RESPONSE 0x8020u

Binding types and Request / Response#

Bind and unbind have the same formats. There are two possible formats, depending on whether the destination is a group address or a device address. Device addresses include an endpoint, groups don't.Request: <transaction sequence number: 1> <source EUI64:8> <source endpoint:1> <cluster ID:2> <destination address:3 or 10>Destination address: <0x01:1> <destination group:2>Or: <0x03:1> <destination EUI64:8> <destination endpoint:1>Response: <transaction sequence number: 1> <status:1>

#define
UNICAST_BINDING 0x03u
#define
UNICAST_MANY_TO_ONE_BINDING 0x83u
#define
MULTICAST_BINDING 0x01u
#define
BIND_REQUEST 0x0021u
#define
BIND_RESPONSE 0x8021u
#define
UNBIND_REQUEST 0x0022u
#define
UNBIND_RESPONSE 0x8022u

LQI Table Request / Response#

Request: <transaction sequence number: 1> <start index:1>Response: <transaction sequence number: 1> <status:1> <neighbor table entries:1> <start index:1> <entry count:1> <entry:22>* <entry> = <extended PAN ID:8> <EUI64:8> <node ID:2> <device type, RX on when idle, relationship:1> <permit joining:1> <depth:1> <LQI:1>The device-type byte has the following fields: Name Mask Valuesdevice type 0x03 0x00 coordinator 0x01 router 0x02 end device 0x03 unknownrx mode 0x0C 0x00 off when idle 0x04 on when idle 0x08 unknownrelationship 0x70 0x00 parent 0x10 child 0x20 sibling 0x30 other 0x40 previous childreserved 0x10The permit-joining byte has the following fields Name Mask Valuespermit joining 0x03 0x00 not accepting join requests 0x01 accepting join requests 0x02 unknownreserved 0xFC

#define
LQI_TABLE_REQUEST 0x0031u
#define
LQI_TABLE_RESPONSE 0x8031u

Routing Table Request / Response#

Request: <transaction sequence number: 1> <start index:1>Response: <transaction sequence number: 1> <status:1> <routing table entries:1> <start index:1> <entry count:1> <entry:5>* <entry> = <destination address:2> <status:1> <next hop:2>The status byte has the following fields: Name Mask Valuesstatus 0x07 0x00 active 0x01 discovery underway 0x02 discovery failed 0x03 inactive 0x04 validation underwayflags 0x38 0x08 memory constrained 0x10 many-to-one 0x20 route record requiredreserved 0xC0

#define
ROUTING_TABLE_REQUEST 0x0032u
#define
ROUTING_TABLE_RESPONSE 0x8032u

Binding Table Request / Response#

Request: <transaction sequence number: 1> <start index:1>Response: <transaction sequence number: 1> <status:1> <binding table entries:1> <start index:1> <entry count:1> <entry:14/21>* <entry> = <source EUI64:8> <source endpoint:1> <cluster ID:2> <dest addr mode:1> <dest:2/8> <dest endpoint:0/1>If Dest. Address Mode = 0x03, then the Long Dest. Address will be used and Dest. endpoint will be included. If Dest. Address Mode = 0x01, then the Short Dest. Address will be used and there will be no Dest. endpoint.

#define
BINDING_TABLE_REQUEST 0x0033u
#define
BINDING_TABLE_RESPONSE 0x8033u

Leave Request / Response#

Request: <transaction sequence number: 1> <EUI64:8> <flags:1> The flag bits are: 0x40 remove children 0x80 rejoinResponse: <transaction sequence number: 1> <status:1>

#define
LEAVE_REQUEST 0x0034u
#define
LEAVE_RESPONSE 0x8034u
#define
LEAVE_REQUEST_REMOVE_CHILDREN_FLAG 0x40u
#define
LEAVE_REQUEST_REJOIN_FLAG 0x80u

Permit Joining Request / Response#

Request: <transaction sequence number: 1> <duration:1> <permit authentication:1>Response: <transaction sequence number: 1> <status:1>

#define
PERMIT_JOINING_REQUEST 0x0036u
#define
PERMIT_JOINING_RESPONSE 0x8036u

Network Update Request / Response#

Request: <transaction sequence number: 1> <scan channels:4> <duration:1> <count:0/1> <manager:0/2> If the duration is in 0x00 ... 0x05, 'count' is present but not 'manager'. Perform 'count' scans of the given duration on the given channels. If duration is 0xFE, 'channels' should have a single channel and 'count' and 'manager' are not present. Switch to the indicated channel. If duration is 0xFF, 'count' is not present. Set the active channels and the network manager ID to the values given. Unicast requests always get a response, which is INVALID_REQUEST if the duration is not a legal value.Response: <transaction sequence number: 1> <status:1> <scanned channels:4> <transmissions:2> <failures:2> <energy count:1> <energy:1>*

#define
NWK_UPDATE_REQUEST 0x0038u
#define
NWK_UPDATE_RESPONSE 0x8038u
#define
NWK_UPDATE_ENHANCED_REQUEST 0x0039u
#define
NWK_UPDATE_ENHANCED_RESPONSE 0x8039u
#define
NWK_UPDATE_IEEE_JOINING_LIST_REQUEST 0x003Au
#define
NWK_UPDATE_IEEE_JOINING_LIST_REPONSE 0x803Au
#define
NWK_UNSOLICITED_ENHANCED_UPDATE_NOTIFY 0x803Bu

Unsupported#

Not mandatory and not supported.

#define
COMPLEX_DESCRIPTOR_REQUEST 0x0010u
#define
COMPLEX_DESCRIPTOR_RESPONSE 0x8010u
#define
USER_DESCRIPTOR_REQUEST 0x0011u
#define
USER_DESCRIPTOR_RESPONSE 0x8011u
#define
DISCOVERY_REGISTER_REQUEST 0x0012u
#define
DISCOVERY_REGISTER_RESPONSE 0x8012u
#define
USER_DESCRIPTOR_SET 0x0014u
#define
USER_DESCRIPTOR_CONFIRM 0x8014u
#define
NETWORK_DISCOVERY_REQUEST 0x0030u
#define
NETWORK_DISCOVERY_RESPONSE 0x8030u
#define
DIRECT_JOIN_REQUEST 0x0035u
#define
DIRECT_JOIN_RESPONSE 0x8035u
#define
CLUSTER_ID_RESPONSE_MINIMUM 0x8000u

ZDO configuration flags.#

Control which ZDO requests are passed to the application. These are normally controlled via the following configuration definitions:EMBER_APPLICATION_RECEIVES_SUPPORTED_ZDO_REQUESTS EMBER_APPLICATION_HANDLES_UNSUPPORTED_ZDO_REQUESTS EMBER_APPLICATION_HANDLES_ENDPOINT_ZDO_REQUESTS EMBER_APPLICATION_HANDLES_BINDING_ZDO_REQUESTSSee ember-configuration.h for more information.

enum
EMBER_APP_RECEIVES_SUPPORTED_ZDO_REQUESTS = 0x01
EMBER_APP_HANDLES_UNSUPPORTED_ZDO_REQUESTS = 0x02
EMBER_APP_HANDLES_ZDO_ENDPOINT_REQUESTS = 0x04
EMBER_APP_HANDLES_ZDO_BINDING_REQUESTS = 0x08
}

Defines the maximum number of counters that are specified as reporting either on 2.4 GHz or Sub-GHz.

enum
EMBER_MULTI_PHY_ROUTERS_ALLOWED = 0x01
EMBER_MULTI_PHY_BROADCASTS_ENABLED = 0x02
EMBER_MULTI_PHY_DISABLED = 0x80
}

Defines the maximum number of counters that are specified as reporting either on 2.4 GHz or Sub-GHz.

enum
@0 {
PRIORITIZE_BEACONS_BASED_ON_PARENT_CLASSIFICATION = 0x0001
PRIORITIZE_BEACONS_BASED_ON_TC_CONNECTVITY = 0x0002
TC_CONNECTIVITY = 0x0010
LONG_UPTIME = 0x0020
BAD_PARENT_CONNECTIVITY = 0x0040
EMBER_OUTGOING_MESSAGES = 0x0001
EMBER_INCOMING_MESSAGES = 0x0002
EMBER_RADIO_IS_ON = 0x0004
EMBER_TRANSPORT_ACTIVE = 0x0008
EMBER_APS_LAYER_ACTIVE = 0x0010
EMBER_ASSOCIATING = 0x0020
EMBER_ZLL_TOUCH_LINKING = 0x0040
EMBER_NETWORK_TIMEOUT_REQUEST = 0x0200
EMBER_SEND_ORPHAN_NOTIFICATION = 0x0400
EMBER_MAC_DATA_POLL_SUPER_RETRY = 0x0800
}

Defines the maximum number of counters that are specified as reporting either on 2.4 GHz or Sub-GHz.

enum
EMBER_ENTROPY_SOURCE_ERROR = 0x00
EMBER_ENTROPY_SOURCE_RADIO = 0x01
EMBER_ENTROPY_SOURCE_MBEDTLS_TRNG = 0x02
EMBER_ENTROPY_SOURCE_MBEDTLS = 0x03
}

Defines the entropy source used by the stack.

enum
@1 {
EMBER_POLL_TIMEOUT_10_SECONDS = 0
EMBER_POLL_TIMEOUT_2_MINUTES = 1
EMBER_POLL_TIMEOUT_4_MINUTES = 2
EMBER_POLL_TIMEOUT_8_MINUTES = 3
EMBER_POLL_TIMEOUT_16_MINUTES = 4
EMBER_POLL_TIMEOUT_32_MINUTES = 5
EMBER_POLL_TIMEOUT_64_MINUTES = 6
EMBER_POLL_TIMEOUT_128_MINUTES = 7
EMBER_POLL_TIMEOUT_256_MINUTES = 8
EMBER_POLL_TIMEOUT_512_MINUTES = 9
EMBER_POLL_TIMEOUT_1024_MINUTES = 10
EMBER_POLL_TIMEOUT_2048_MINUTES = 11
EMBER_POLL_TIMEOUT_4096_MINUTES = 12
EMBER_POLL_TIMEOUT_8192_MINUTES = 13
EMBER_POLL_TIMEOUT_16384_MINUTES = 14
}

Defines the maximum number of counters that are specified as reporting either on 2.4 GHz or Sub-GHz.

enum
TC_APS_ENCRYPT_DEFAULT = 0x00
TC_APS_ENCRYPT_ENABLE = 0x01
TC_APS_ENCRYPT_DISABLE = 0x02
}

Defines the trust center APS encryption mode when sending a newer (alternate) network key to a device. The value settings below do not take effect when sending the initial network key during joining or rejoining.

typedef uint8_t

Radio power mode.

#define
WEAK_TEST

Defines the maximum number of counters that are specified as reporting either on 2.4 GHz or Sub-GHz.

#define
EMBER_MAX_MAC_ONLY_COUNTERS 33u

Defines the maximum number of counters that are specified as reporting either on 2.4 GHz or Sub-GHz.

#define
EMBER_MAX_NUM_PHYS 2u

Defines the maximum number of PHYs supported.

#define
PHY_INDEX_NATIVE 0u

PHY index for 2.4 GHz radio interface, valid for simultaneous multi radio network.

#define
PHY_INDEX_PRO2PLUS 1u

PHY index for Sub-GHz radio interface, valid for simultaneous multi radio network.

Enumerations#

enum
EMBER_UNKNOWN_DEVICE = 0
EMBER_COORDINATOR = 1
EMBER_ROUTER = 2
EMBER_END_DEVICE = 3
EMBER_SLEEPY_END_DEVICE = 4
EMBER_WIREFREE_INITIATOR_DEVICE = 5
EMBER_WIREFREE_TARGET_DEVICE = 6
}

Defines the possible types of nodes and the roles that a node might play in a network.

enum
EMBER_END_DEVICE_CONFIG_NONE = 0x00
EMBER_END_DEVICE_CONFIG_PERSIST_DATA_ON_PARENT = 0x01
}

The configuration advertised by the end device to the parent when joining/rejoining.

enum
EMBER_NETWORK_INIT_NO_OPTIONS = 0x0000
EMBER_NETWORK_INIT_PARENT_INFO_IN_TOKEN = 0x0001
EMBER_NETWORK_INIT_END_DEVICE_REJOIN_ON_REBOOT = 0x0002
}

Defines the options that should be used when initializing the node's network configuration.

enum
NO_REJOIN
REJOIN_ANY_LINK_KEY
REJOIN_NON_DEFAULT_LINK_KEY
}

Options to allow/disallow rejoins using the default link key.

enum
EMBER_APS_OPTION_NONE = 0x0000
EMBER_APS_OPTION_DSA_SIGN = 0x0010
EMBER_APS_OPTION_ENCRYPTION = 0x0020
EMBER_APS_OPTION_RETRY = 0x0040
EMBER_APS_OPTION_ENABLE_ROUTE_DISCOVERY = 0x0100
EMBER_APS_OPTION_FORCE_ROUTE_DISCOVERY = 0x0200
EMBER_APS_OPTION_SOURCE_EUI64 = 0x0400
EMBER_APS_OPTION_DESTINATION_EUI64 = 0x0800
EMBER_APS_OPTION_ENABLE_ADDRESS_DISCOVERY = 0x1000
EMBER_APS_OPTION_POLL_RESPONSE = 0x2000
EMBER_APS_OPTION_ZDO_RESPONSE_REQUIRED = 0x4000
EMBER_APS_OPTION_FRAGMENT = SIGNED_ENUM 0x8000
}

Options to use when sending a message.

enum
EMBER_INCOMING_UNICAST
EMBER_INCOMING_UNICAST_REPLY
EMBER_INCOMING_MULTICAST
EMBER_INCOMING_MULTICAST_LOOPBACK
EMBER_INCOMING_BROADCAST
EMBER_INCOMING_BROADCAST_LOOPBACK
}

Defines the possible incoming message types.

enum
EMBER_OUTGOING_DIRECT
EMBER_OUTGOING_VIA_ADDRESS_TABLE
EMBER_OUTGOING_VIA_BINDING
EMBER_OUTGOING_MULTICAST
EMBER_OUTGOING_MULTICAST_WITH_ALIAS
EMBER_OUTGOING_BROADCAST_WITH_ALIAS
EMBER_OUTGOING_BROADCAST
}

Defines the possible outgoing message types.

enum
EMBER_ZIGBEE_COMMAND_TYPE_RAW_MAC
EMBER_ZIGBEE_COMMAND_TYPE_MAC_COMMAND
EMBER_ZIGBEE_COMMAND_TYPE_NWK
EMBER_ZIGBEE_COMMAND_TYPE_APS
EMBER_ZIGBEE_COMMAND_TYPE_ZDO
EMBER_ZIGBEE_COMMAND_TYPE_ZCL
EMBER_ZIGBEE_COMMAND_TYPE_BEACON
}

A type of command received by the stack.

enum
EMBER_DROP_PACKET = 0
EMBER_ACCEPT_PACKET = 1
EMBER_MANGLE_PACKET
EMBER_ACCEPT_PACKET_OVERRIDE_SECURITY
EMBER_ACCEPT_PACKET_SKIP_NWK_CRYPTO
}

indication of the action taken on a packet

enum
EMBER_ZIGBEE_PACKET_TYPE_RAW_MAC
EMBER_ZIGBEE_PACKET_TYPE_MAC_COMMAND
EMBER_ZIGBEE_PACKET_TYPE_NWK_DATA
EMBER_ZIGBEE_PACKET_TYPE_NWK_COMMAND
EMBER_ZIGBEE_PACKET_TYPE_APS_DATA
EMBER_ZIGBEE_PACKET_TYPE_APS_COMMAND
EMBER_ZIGBEE_PACKET_TYPE_ZDO
EMBER_ZIGBEE_PACKET_TYPE_ZCL
EMBER_ZIGBEE_PACKET_TYPE_BEACON
EMBER_ZIGBEE_PACKET_TYPE_INTERPAN
EMBER_ZIGBEE_PACKET_TYPE_NWK_DATA_PRE_DECRYPTION
EMBER_ZIGBEE_PACKET_TYPE_NWK_COMMAND_PRE_DECRYPTION
}

A type of packet received by the stack.

enum
EMBER_NO_NETWORK
EMBER_JOINING_NETWORK
EMBER_JOINED_NETWORK
EMBER_JOINED_NETWORK_NO_PARENT
EMBER_JOINED_NETWORK_WF_INITIATOR
EMBER_JOINED_NETWORK_WF_TARGET
EMBER_LEAVING_NETWORK
}

Defines the possible join states for a node.