ZDP structures
This section describes the structures used by the ZigBee Device Profile (ZDP) API. Three sets of structures are presented:
Structures used to represent the descriptors that reside on a node - see Section9.2.1
Structures used to issue requests using the ZDP functions - see Section 9.2.2
Structures used to receive responses to the ZDP requests - see Section 9.2.3
Descriptor structures
These structures are used to represent the following descriptors that contain information about the host node:
Node descriptor
Node Power descriptor
Simple descriptor
The structures are listed below.
ZPS_tsAplZdpNodeDescriptor
The ZDP Node descriptor structure ZPS_tsAplZdpNodeDescriptor
is shown below.
typedef struct {
union
{
ZPS_tsAplZdpNodeDescBitFields sBitFields;
uint16 u16Value;
} uBitUnion;
uint8 u8MacFlags;
uint16 u16ManufacturerCode;
uint8 u8MaxBufferSize;
uint16 u16MaxRxSize;
uint16 u16ServerMask;
uint16 u16MaxTxSize;
uint8 u8DescriptorCapability;
} ZPS_tsAplZdpNodeDescriptor;
where:
sBitFields
is a structure of the typeZPS_tsAplZdpNodeDescBitFields
(described below) containing various items of information about the node.
u16Value
is used for the union and should be set to 0x0000.eMacFlags
contains 8 bits (bits 0-7) indicating the node capabilities, as required by the IEEE 802.15.4 MAC sub-layer. These node capability flags are described in Table 8.u16ManufacturerCode
contains 16 bits (bits 0-15) indicating the manufacturer code for the node, where this code is allocated to the manufacturer by the ZigBee Alliance.u8MaxBufferSize
is the maximum size, in bytes, of an NPDU (Network Protocol Data Unit).u16MaxRxSize
is the maximum size, in bytes, of an APDU (Application Protocol Data Unit). This value can be greater than the value ofu8MaxBufferSize
, due to the fragmentation of an APDU into NPDUs.u16ServerMask
contains 8 bits (bits 0-7) indicating the server status of the node. This server mask is detailed in Table 18 on page 389.u16MaxTxSize
is the maximum size, in bytes, of the ASDU (Application Sub- layer Data Unit) in which a message can be sent (the message may actually be transmitted in smaller fragments)u8DescriptorCapability
contains 8 bits (bits 0-7) indicating the properties of the node that can be used by other nodes in network discovery, as indicated in the table below.
Bit |
Description |
---|---|
0 |
Set to 1 if Extended Active Endpoint List is available on the node, 0 otherwise. |
1 |
Set to 1 if Extended Simple Descriptor List is available on the node, 0 otherwise. |
2-7 |
Reserved |
ZPS_tsAplZdpNodeDescBitFields
The ZPS_tsAplZdpNodeDescBitFields
structure is used by the sBitFields
element in the Node descriptor structure (see above), and is shown below:
typedef struct {
unsigned eFrequencyBand : 5;
unsigned eApsFlags : 3;
unsigned eReserved : 3; /* reserved */
unsigned bUserDescAvail : 1;
unsigned bComplexDescAvail : 1;
unsigned eLogicalType : 3;
}ZPS_tsAplZdpNodeDescBitFields;
where:
eFrequencyBand
is a 5-bit value representing the IEEE 802.15.4 radio- frequency band used by the node:0: 868-MHz band
2: 915-MHz band
3: 2400-MHz band
eApsFlags
is a 3-bit value containing flags that indicate the ZigBee APS capabilities of the node (not currently supported and should be set to 0).eReserved
is a 3-bit reserved value.bUserDescAvail
is a 1-bit value indicating whether a User descriptor is available for the node - 1 indicates available, 0 indicates unavailable.bComplexDescAvail
is a 1-bit value indicating whether a Complex descriptor is available for the node - 1 indicates available, 0 indicates unavailable.eLogicalType
is a 3-bit value indicating the ZigBee device of the node:0: Coordinator
1: Router
2: End Device
Parent topic:ZPS_tsAplZdpNodeDescriptor
Parent topic:Descriptor structures
ZPS_tsAplZdpNodePowerDescriptor
The ZDP Node Power descriptor structure ZPS_tsAplZdpNodePowerDescriptor
is shown below.
typedef struct {
union
{
ZPS_tsAplZdpPowerDescBitFields sBitFields;
uint16 u16Value;
}uBitUnion;
} ZPS_tsAplZdpNodePowerDescriptor;
where:
sBitFields
is a structure of typeZPS_tsAplZdpPowerDescBitFields
(described below) containing various items of information about the node’s power.u16value
is used for the union and should be set to 0x0000.
ZPS_tsAplZdpPowerDescBitFields
The ZPS_tsAplZdpPowerDescBitFields
structure is used by the sBitFields
element in the Node Power descriptor structure (see above), and is shown below:
typedef struct {
unsigned eCurrentPowerSourceLevel : 4;
unsigned eCurrentPowerSource : 4;
unsigned eAvailablePowerSource : 4;
unsigned eCurrentPowerMode : 4;
}ZPS_tsAplZdpPowerDescBitFields;
where:
eCurrentPowerSourceLevel
is a 4-bit value roughly indicating the level of charge of the node’s power source (mainly useful for batteries), as follows:0000: Critically low
0100: Approximately 33%
1000: Approximately 66%
1100: Approximately 100% (near fully charged)
eCurrentPowerSource
is a 4-bit value indicating the current power source for the node, as detailed below (the bit corresponding to the current power source is set to 1, all other bits are set to 0):Bit 0: Permanent mains supply
Bit 1: Rechargeable battery
Bit 2: Disposable battery
Bit 4: Reserved
eAvailablePowerSource
is a 4-bit value indicating the available power sources for the node, as detailed above (a bit is set to 1 if the corresponding power source is available).eCurrentPowerMode
is a 4-bit value indicating the power mode currently used by the node, as follows:0000: Receiver synchronized with the “receiver on when idle” subfield of the Node descriptor
0001: Receiver switched on periodically, as defined by the Node Power descriptor
0010: Receiver switched on when stimulated, for example, by pressing a button
All other values are reserved.
Parent topic:ZPS_tsAplZdpNodePowerDescriptor
Parent topic:Descriptor structures
ZPS_tsAplZdpSimpleDescType
The ZDP Simple descriptor structure ZPS_tsAplZdpSimpleDescType
is shown below.
typedef struct {
uint8 u8Endpoint;
uint16 u16ApplicationProfileId;
uint16 u16DeviceId;
union
{
ZPS_tsAplZdpSimpleDescBitFields sBitFields;
uint8 u8Value;
}uBitUnion;
uint8 u8InClusterCount;
uint16* pu16InClusterList;
uint8 u8OutClusterCount;
uint16* pu16OutClusterList;
}ZPS_tsAplZdpSimpleDescType;
where:
u8Endpoint
is the number, in the range 1-240, of the endpoint to which the Simple descriptor corresponds.u16ApplicationProfileId
is the 16-bit identifier of the ZigBee application profile supported by the endpoint. This must be an application profile identifier issued by the ZigBee Alliance (for Lighting & Occupancy devices, it is 0x0104).u16DeviceId
is the 16-bit identifier of the ZigBee device description supported by the endpoint. This must be a device description identifier issued by the ZigBee Alliance.sBitFields
is a structure of typeZPS_tsAplZdpSimpleDescBitFields
(described below) containing information about the endpoint.u8Value
is used for the union and must be set to 0x00.u8InClusterCount
is an 8-bit count of the number of input clusters, supported on the endpoint, that will appear in the list pointed to by thepu16InClusterList
element.*pu16InClusterList
is a pointer to the list of input clusters supported by the endpoint (for use during the service discovery and binding procedures). This is a sequence of 16-bit values, representing the cluster numbers (in the range 1-240), where the number of values is equal to countu8InClusterCount
. If this count is zero, the pointer can be set to NULL.u8OutClusterCount
is an 8-bit count of the number of output clusters, supported on the endpoint, that will appear in thepu16OutClusterList
element.*pu16OutClusterList
is a pointer to the list of output clusters supported by the endpoint (for use during the service discovery and binding procedures). This is a sequence of 16-bit values, representing the cluster numbers (in the range 1-240), where the number of values is equal to countu8OutClusterCount
. If this count is zero, the pointer can be set to NULL.
ZPS_tsAplZdpSimpleDescBitFields
The ZPS_tsAplZdpSimpleDescBitFields
structure is used by the sBitFields
element in the Simple descriptor structure (see above), and is shown below:
typedef struct
{
unsigned eDeviceVersion :4;
unsigned eReserved :4;
}ZPS_tsAplZdpSimpleDescBitFields;
where:
eDeviceVersion
is a 4-bit value identifying the version of the device description supported by the endpoint.eReserved
is a 4-bit reserved value.
Parent topic:ZPS_tsAplZdpSimpleDescType
Parent topic:Descriptor structures
Parent topic:ZDP structures
ZDP Request structures
These structures are used to represent requests in the ZDP functions.
The ZDP request structures are listed below.
Address Discovery Request Structures
-
Service Discovery Request Structures
ZPS_tsAplZdpRemoveNodeCacheReq
Binding Request Structures
ZPS_tsAplZdpRecoverSourceBindReq
Network Management Services Request Structures
ZPS_tsAplZdpNwkAddrReq
This structure is used by the function ZPS_eAplZdpNwkAddrRequest(). It represents a request for the network address of the node with a given IEEE address.
The ZPS_tsAplZdpNwkAddrReq
structure is detailed below.
typedef struct {
uint64 u64IeeeAddr;
uint8 u8RequestType;
uint8 u8StartIndex;
} ZPS_tsAplZdpNwkAddrReq;
where:
u64IeeeAddr
is the IEEE address of the node of interest.u8RequestType
is the type of response required:0x00: Single device response, which contains only the network address of the target node.
0x01: Extended response, which also includes the network addresses of neighboring nodes.
All other values are reserved.
u8StartIndex
is the Neighbor table index of the first neighboring node to be included in the response, if an extended response has been selected.
Parent topic:ZDP Request structures
ZPS_tsAplZdpIEEEAddrReq
This structure is used by the function ZPS_eAplZdpIEEEAddrRequest(). It represents a request for the IEEE address of a node with a given network address.
The ZPS_tsAplZdpIEEEAddrReq
structure is detailed below.
typedef struct {
uint16 u16NwkAddrOfInterest; uint8 u8RequestType;
uint8 u8StartIndex;
} ZPS_tsAplZdpIEEEAddrReq;
where:
u16NwkAddrOfInterest
is the network address of the node of interestu8RequestType
is the type of response required:0x00: Single device response, which will contain only the IEEE address of the target node
0x01: Extended response, which will also include the IEEE addresses of neighboring nodes
All other values are reserved
u8StartIndex
is the Neighbor table index of the first neighboring node to be included in the response, if an extended response has been selected
Parent topic:ZDP Request structures
ZPS_tsAplZdpDeviceAnnceReq
This structure is used by the function ZPS_eAplZdpDeviceAnnceRequest(). It represents an announcement that the sending node has joined or rejoined the network.
The ZPS_tsAplZdpDeviceAnnceReq
structure is detailed below.
typedef struct { uint16 u16NwkAddr; uint64 u64IeeeAddr;
uint8 u8Capability;
} ZPS_tsAplZdpDeviceAnnceReq;
where:
u16NwkAddr
is the network address of the sending nodeu64IeeeAddr
is the IEEE address of the sending nodeu8Capability
is a bitmap representing the capabilities of the sending node. This bitmap is detailed in Table 1 in section ZPS_tsAfNwkJoinIndEvent.
Parent topic:ZDP Request structures
ZPS_tsAplZdpNodeDescReq
This structure is used by the function ZPS_eAplZdpNodeDescRequest(). It represents a request for the Node descriptor of the node with a given network address.
The ZPS_tsAplZdpNodeDescReq
structure is detailed below.
typedef struct {
uint16 u16NwkAddrOfInterest;
} ZPS_tsAplZdpNodeDescReq;
where u16NwkAddrOfInterest
is the network address of the node of interest.
Parent topic:ZDP Request structures
ZPS_tsAplZdpPowerDescReq
This structure is used by the function ZPS_eAplZdpPowerDescRequest(). It represents a request for the Power descriptor of the node with a given network address.
The ZPS_tsAplZdpPowerDescReq
structure is detailed below.
typedef struct {
uint16 u16NwkAddrOfInterest;
} ZPS_tsAplZdpPowerDescReq;
where u16NwkAddrOfInterest
is the network address of the node of interest.
Parent topic:ZDP Request structures
ZPS_tsAplZdpSimpleDescReq
This structure is used by the function ZPS_eAplZdpSimpleDescRequest(). It represents a request for the Simple descriptor of an endpoint on the node with a given network address.
The ZPS_tsAplZdpSimpleDescReq
structure is detailed below.
typedef struct {
uint16 u16NwkAddrOfInterest;
uint8 u8EndPoint;
} ZPS_tsAplZdpSimpleDescReq;
where:
u16NwkAddrOfInterest
is the network address of the node of interest.u8EndPoint
is the number of the relevant endpoint on the node (1-240).
Parent topic:ZDP Request structures
ZPS_tsAplZdpExtendedSimpleDescReq
This structure is used by the **ZPS_eAplZdpExtendedSimpleDescRequest()**function. It represents a request for the Simple descriptor of an endpoint on the node with a given network address. This request is required when the endpoint has more input/output clusters than the usual ZPS_eAplZdpSimpleDescRequest() function can deal with.
The ZPS_tsAplZdpExtendedSimpleDescReq
structure is detailed below.
typedef struct { uint16 u16NwkAddr; uint8 u8EndPoint;
uint8 u8StartIndex;
} ZPS_tsAplZdpExtendedSimpleDescReq;
where:
u16NwkAddrOfInterest
is the network address of the node of interestu8EndPoint
is the number of the relevant endpoint on the node (1-240)u8StartIndex
is the index of the first cluster of interest in the input and output cluster lists for the endpoint (this and subsequent clusters will be reported in the response)
Parent topic:ZDP Request structures
ZPS_tsAplZdpComplexDescReq
This structure is used by the function ZPS_eAplZdpComplexDescRequest(). It represents a request for the Complex descriptor of the node with a given network address.
The ZPS_tsAplZdpComplexDescReq
structure is detailed below.
typedef struct {
uint16 u16NwkAddrOfInterest;
} ZPS_tsAplZdpComplexDescReq;
where u16NwkAddrOfInterest
is the network address of the node of interest.
Parent topic:ZDP Request structures
ZPS_tsAplZdpUserDescReq
This structure is used by the function ZPS_eAplZdpUserDescRequest(). It represents a request for the User descriptor of the node with a given network address.
The ZPS_tsAplZdpUserDescReq
structure is detailed below.
typedef struct {
uint16 u16NwkAddrOfInterest;
} ZPS_tsAplZdpUserDescReq;
where u16NwkAddrOfInterest
is the network address of the node of interest.
Parent topic:ZDP Request structures
ZPS_tsAplZdpMatchDescReq
This structure is used by the function ZPS_eAplZdpMatchDescRequest(). It represents a request for nodes with endpoints that match certain criteria in their Simple descriptors.
The ZPS_tsAplZdpMatchDescReq
structure is detailed below.
typedef struct {
uint16 u16NwkAddrOfInterest; uint16 u16ProfileId;
/* rest of message is variable length */ uint8 u8NumInClusters;
uint16* pu16InClusterList; uint8 u8NumOutClusters; uint16* pu16OutClusterList;
} ZPS_tsAplZdpMatchDescReq;
where:
u16NwkAddrOfInterest
is the network address of the node of interestu16ProfileId
is the identifier of the ZigBee application profile usedu8NumInClusters
is the number of input clusters to be matchedpu16InClusterList
is a pointer to the list of input clusters to be matched - this is a variable-length list of input cluster IDs, two bytes for each clusteru8NumOutClusters
is the number of output clusters to be matchedpu16OutClusterList
is a pointer to the list of output clusters to be matched - this is a variable-length list of output cluster IDs, two bytes for each cluster
Parent topic:ZDP Request structures
ZPS_tsAplZdpActiveEpReq
This structure is used by the function ZPS_eAplZdpActiveEpRequest(). It represents a request for a list of the active endpoints on the node with a given network address.
The ZPS_tsAplZdpActiveEpReq
structure is detailed below.
typedef struct {
uint16 u16NwkAddrOfInterest;
} ZPS_tsAplZdpActiveEpReq;
where u16NwkAddrOfInterest
is the network address of the node of interest.
Parent topic:ZDP Request structures
ZPS_tsAplZdpExtendedActiveEpReq
This structure is used by the function ZPS_eAplZdpExtendedActiveEpRequest(). It represents a request for a list of the active endpoints on the node with a given network address. This request is required when the node has more active endpoints than the usual ZPS_eAplZdpActiveEpRequest() function can deal with.
The ZPS_tsAplZdpExtendedActiveEpReq
structure is detailed below.
typedef struct { uint16 u16NwkAddr;
uint8 u8StartIndex;
} ZPS_tsAplZdpExtendedActiveEpReq;
where:
u16NwkAddr
is the network address of the node of interestu8StartIndex
is the index of the first endpoint of interest in the list of active endpoints (this and subsequent endpoints will be reported in the response)
Parent topic:ZDP Request structures
ZPS_tsAplZdpUserDescSet
This structure is used by the function ZPS_eAplZdpUserDescSetRequest(). It represents a request used to configure the User descriptor on a remote node.
The ZPS_tsAplZdpUserDescSet
structure is detailed below.
typedef struct {
uint16 u16NwkAddrOfInterest; uint8 u8Length;
char szUserDescriptor[ZPS_ZDP_LENGTH_OF_USER_DESC];
} ZPS_tsAplZdpUserDescSet;
where:
u16NwkAddrOfInterest
is the network address of the node of interestu8Length
is the length of the User descriptorszUserDescriptor
is the new User descriptor for the remote node as a character array.
Parent topic:ZDP Request structures
ZPS_tsAplZdpSystemServerDiscoveryReq
This structure is used by the ZPS_eAplZdpSystemServerDiscoveryRequest() function. It represents a request for information on the available services of a remote node.
The ZPS_tsAplZdpSystemServerDiscoveryReq
structure is detailed below.
typedef struct {
uint16 u16ServerMask;
} ZPS_tsAplZdpSystemServerDiscoveryReq;
where u16ServerMask
is a bitmask representing the required services (1 for ‘required’, 0 for ‘not required’). This bitmask is detailed in the table below.
Services Bitmask
Bit |
Service |
---|---|
0 |
Primary Trust Centre |
1 |
Backup Trust Centre |
2 |
Primary Binding Table Cache |
3 |
Backup Binding Table Cache |
4 |
Primary Discovery Cache |
5 |
Back-up Discovery Cache |
6 |
Network Manager |
7-15 |
Reserved |
Parent topic:ZDP Request structures
ZPS_tsAplZdpDiscoveryCacheReq
This structure is used by the function ZPS_eAplZdpDiscoveryCacheRequest(). It represents a request to find the nodes in the network which have a primary discovery cache.
The ZPS_tsAplZdpDiscoveryCacheReq
structure is detailed below.
typedef struct { uint16 u16NwkAddr; uint64 u64IeeeAddr;
} ZPS_tsAplZdpDiscoveryCacheReq;
where:
u16NwkAddr
is the network address of the sending nodeu64IeeeAddr
is the IEEE address of the sending node
Parent topic:ZDP Request structures
ZPS_tsAplZdpDiscoveryStoreReq
This structure is used by the function ZPS_eAplZdpDiscoveryStoreRequest(). It represents a request to a remote node to reserve memory space to store the local node’s ‘discovery information’.
The ZPS_tsAplZdpDiscoveryStoreReq
structure is detailed below.
typedef struct { uint16 u16NwkAddr; uint64 u64IeeeAddr;
uint8 u8NodeDescSize; uint8 u8PowerDescSize; uint8 u8ActiveEpSize; uint8 u8SimpleDescCount;
/* Rest of message is variable length */ uint8* pu8SimpleDescSizeList;
} ZPS_tsAplZdpDiscoveryStoreReq;
where:
u16NwkAddr
is the network address of the sending nodeu64IeeeAddr
is the IEEE address of the sending nodeu8NodeDescSize
is the size of the Node descriptor to storeu8PowerDescSize
is the size of the Power descriptor to storeu8ActiveEpSize
is the size of the list of active endpoints to storeu8SimpleDescCount
is the number of Simple descriptors to storepu8SimpleDescSizeList
is a pointer to a list of sizes of the Simple descriptors
Parent topic:ZDP Request structures
ZPS_tsAplZdpNodeDescStoreReq
This structure is used by the function ZPS_eAplZdpNodeDescStoreRequest(). It represents a request to a remote node to store the Node descriptor of the local node.
The ZPS_tsAplZdpNodeDescStoreReq
structure is detailed below.
typedef struct { uint16 u16NwkAddr; uint64 u64IeeeAddr;
/* Rest of message is variable length */ ZPS_tsAplZdpNodeDescriptor sNodeDescriptor;
} ZPS_tsAplZdpNodeDescStoreReq;
where:
u16NwkAddr
is the network address of the sending nodeu64IeeeAddr
is the IEEE address of the sending nodesNodeDescriptor
is a pointer to the Node descriptor to store (this is itself a structure of the typeZPS_tsAplZdpNodeDescriptor
, detailed in Section8.2.1.1)
Parent topic:ZDP Request structures
ZPS_tsAplZdpPowerDescStoreReq
This structure is used by the function ZPS_eAplZdpPowerDescStoreRequest(). It represents a request to a remote node to store the Power descriptor of the local node.
The ZPS_tsAplZdpPowerDescStoreReq
structure is detailed below.
typedef struct { uint16 u16NwkAddr; uint64 u64IeeeAddr;
/* Rest of message is variable length */ ZPS_tsAplZdpNodePowerDescriptor sPowerDescriptor;
} ZPS_tsAplZdpPowerDescStoreReq;
where:
u16NwkAddr
is the network address of the sending nodeu64IeeeAddr
is the IEEE address of the sending nodesPowerDescriptor
is a pointer to the Power descriptor to store (this is itself a structure of the typeZPS_tsAplZdpNodePowerDescriptor
, detailed in Section8.2.1.2)
Parent topic:ZDP Request structures
ZPS_tsAplZdpSimpleDescStoreReq
This structure is used by the function ZPS_eAplZdpSimpleDescStoreRequest(). It represents a request to a remote node to store the Simple descriptor of one of the local node’s endpoints.
The ZPS_tsAplZdpSimpleDescStoreReq
structure is detailed below.
typedef struct { uint16 u16NwkAddr; uint64 u64IeeeAddr; uint8 u8Length;
/* Rest of message is variable length */ ZPS_tsAplZdpSimpleDescType sSimpleDescriptor;
} ZPS_tsAplZdpSimpleDescStoreReq;
where:
u16NwkAddr
is the network address of the sending nodeu64IeeeAddr
is the IEEE address of the sending nodeu8Length
is the length of the Simple descriptor to storesSimpleDescriptor
is a pointer to the Simple descriptor to store (this is itself a structure of the typeZPS_tsAplZdpSimpleDescType
, detailed in Section8.2.1.3)
Parent topic:ZDP Request structures
ZPS_tsAplZdpActiveEpStoreReq
This structure is used by the function ZPS_eAplZdpActiveEpStoreRequest(). It represents a request to a remote node to store the list of active endpoints of the local node.
The ZPS_tsAplZdpActiveEpStoreReq
structure is detailed below.
typedef struct { uint16 u16NwkAddr; uint64 u64IeeeAddr;
uint8 u8ActiveEPCount;
/* Rest of message is variable length */ uint8* pu8ActiveEpList;
} ZPS_tsAplZdpActiveEpStoreReq;
where:
u16NwkAddr
is the network address of the sending nodeu64IeeeAddr
is the IEEE address of the sending nodeu8ActiveEPCount
is the number of active endpoints in the list to storepu8ActiveEpList
is a pointer to the list of active endpoints to store
Parent topic:ZDP Request structures
ZPS_tsAplZdpFindNodeCacheReq
This structure is used by the function ZPS_eAplZdpActiveEpStoreRequest(). It represents a request to search for nodes in the network that hold ‘discovery information’ about a particular node.
The ZPS_tsAplZdpFindNodeCacheReq
structure is detailed below.
typedef struct { uint16 u16NwkAddr; uint64 u64IeeeAddr;
} ZPS_tsAplZdpFindNodeCacheReq;
where:
u16NwkAddr
is the network address of the node of interestu64IeeeAddr
is the IEEE address of the node of interest
Parent topic:ZDP Request structures
ZPS_tsAplZdpRemoveNodeCacheReq
This structure is used by the function ZPS_eAplZdpActiveEpStoreRequest(). It represents a request to a remote node to remove from its Primary Discovery Cache all ‘discovery information’ relating to a particular End Device.
The ZPS_tsAplZdpRemoveNodeCacheReq
structure is detailed below.
typedef struct { uint16 u16NwkAddr; uint64 u64IeeeAddr;
} ZPS_tsAplZdpRemoveNodeCacheReq;
where:
u16NwkAddr
is the network address of the End Device of interestu64IeeeAddr
is the IEEE address of the End Device of interest
Parent topic:ZDP Request structures
ZPS_tsAplZdpEndDeviceBindReq
This structure is used by the function ZPS_eAplZdpEndDeviceBindRequest(). It represents a request to the Coordinator to bind an endpoint on the local node to an endpoint on a remote node (the Coordinator must match two such binding requests, from the local node and remote node).
The ZPS_tsAplZdpEndDeviceBindReq
structure is detailed below.
typedef struct {
uint16 u16BindingTarget;
uint64 u64SrcIeeeAddress;
uint8 u8SrcEndpoint;
uint16 u16ProfileId;
/* Rest of the message is variable length */
uint8 u8NumInClusters;
uint16 *pu16InClusterList;
uint8 u8NumOutClusters;
uint16 *pu16OutClusterList;
} ZPS_tsAplZdpEndDeviceBindReq;
where:
u16BindingTarget
is the network address of the node to hold the binding (either a node with primary binding table cache or the local node).u64SrcIeeeAddress
is the IEEE address of the local node.u8SrcEndpoint
is the number of the local endpoint to be bound (1-240).u16ProfileId
is the application profile ID to be matched for the binding.u8NumInClusters
is the number of input clusters of the local endpoint (available for matching with output clusters of remote node to be bound).pu16InClusterList
is a pointer to the input cluster list of the local endpoint (containing clusters for matching with output clusters of remote node).u8NumOutClusters
is the number of output clusters of the local endpoint (available for matching with input clusters of remote node to be bound).pu16OutClusterList
is a pointer to the output cluster list of the local endpoint (containing clusters for matching with input clusters of remote node).
Parent topic:ZDP Request structures
ZPS_tsAplZdpBindUnbindReq
This structure is used by the function ZPS_eAplZdpBindUnbindRequest(). It represents a request for a modification of the Binding table on the target node, in order to either bind or unbind two nodes in the network.
The ZPS_tsAplZdpBindUnbindReq
structure is detailed below.
typedef struct {
uint64 u64SrcAddress;
uint8 u8SrcEndpoint;
uint16 u16ClusterId;
uint8 u8DstAddrMode;
union {
struct {
uint16 u16DstAddress;
} sShort;
struct {
uint64 u64DstAddress;
uint8 u8DstEndPoint;
} sExtended;
} uAddressField;
} ZPS_tsAplZdpBindUnbindReq;
where:
u64SrcAddress
is the IEEE address of the source node for the bindingu8SrcEndpoint
is the number of the source endpoint for the binding (1-240)u16ClusterId
is the ID of the cluster (on the local endpoint) for the bindingu8DstAddrMode
is the destination addressing mode (see Table 14 below):ZPS_E_ADDR_MODE_SHORT: network address (
u8DstEndPoint
is unspecified)ZPS_E_ADDR_MODE_IEEE: IEEE address (
u8DstEndPoint
is specified)All other values are reserved
u16DstAddress
oru64DstAddress
is the address of the destination node for the binding:network address
u16DstAddress
ifu8DstAddrMode
is set to ZPS_E_ADDR_MODE_SHORTIEEE address
u64DstAddress
if8DstAddrMode
is set to ZPS_E_ADDR_MODE_IEEE
u8DstEndPoint
is the number of the destination endpoint for the binding
(1-240) - not required if u8DstAddrMode
set to ZPS_E_ADDR_MODE_SHORT (network address)
Addressing modes
u8DstAddrMode |
Code |
Description |
---|---|---|
0x02 |
ZPS_E_ADDR_MODE_SHORT |
16-bit Network (Short) address |
0x03 |
ZPS_E_ADDR_MODE_IEEE |
64-bit IEEE/MAC address |
Parent topic:ZDP Request structures
ZPS_tsAplZdpBindRegisterReq
This structure is used by the function ZPS_eAplZdpBindRegisterRequest(). It represents a request to inform a remote node with a primary binding table cache that the local node will hold its own Binding table entries.
The ZPS_tsAplZdpBindRegisterReq
structure is detailed below.
typedef struct {
uint64 u64NodeAddress;
} ZPS_tsAplZdpBindRegisterReq;
where u64NodeAddress
is the IEEE address of the local node.
Parent topic:ZDP Request structures
ZPS_tsAplZdpReplaceDeviceReq
This structure is used by the function ZPS_eAplZdpReplaceDeviceRequest(). It represents a request to a remote node (with a primary binding table cache) to modify its binding table entries by replacing an IEEE address and/or associated endpoint number.
The ZPS_tsAplZdpReplaceDeviceReq
structure is detailed below.
typedef struct {
uint64 u64OldAddress; uint8 u8OldEndPoint; uint64 u64NewAddress; uint8 u8NewEndPoint;
} ZPS_tsAplZdpReplaceDeviceReq;
where:
u64OldAddress
is the IEEE address to be replacedu8OldEndPoint
is the endpoint number to be replaced
(0-240, where 0 indicates that the endpoint number is not to be replaced)
u64NewAddress
is the replacement IEEE addressu8NewEndPoint
is the replacement endpoint number (1-240)
Parent topic:ZDP Request structures
ZPS_tsAplZdpStoreBkupBindEntryReq
This structure is used by the function ZPS_eAplZdpStoreBkupBindEntryRequest(). It represents a request to a remote node to save a back-up of an entry from the local primary binding table cache.
The ZPS_tsAplZdpStoreBkupBindEntryReq
structure is detailed below.
typedef struct {
uint64 u64SrcAddress;
uint8 u8SrcEndPoint;
uint16 u16ClusterId;
uint8 u8DstAddrMode;
union {
struct {
uint16 u16DstAddress;
} sShort;
struct {
uint64 u64DstAddress;
uint8 u8DstEndPoint;
} sExtended;
};
} ZPS_tsAplZdpStoreBkupBindEntryReq;
where:
u64SrcAddress
is the IEEE address of the source node for the binding entryu8SrcEndpoint
is the number of the source endpoint for the binding (1-240)u16ClusterId
is the ID of the cluster (on the local endpoint) for the bindingu8DstAddrMode
is the destination addressing mode for remaining elements (see Table 15 below)u16DstAddress
is the address of the destination node for the binding (address type according to setting ofu8DstAddrMode
)u8DstEndPoint
is the number of the destination endpoint for the binding (1-240)
Addressing modes
u8DstAddrMode |
Code |
Description |
---|---|---|
0x01 |
ZPS_E_ADDR_MODE_GROUP |
16-bit Group address |
0x03 |
ZPS_E_ADDR_MODE_IEEE |
64-bit IEEE/MAC address |
Parent topic:ZDP Request structures
ZPS_tsAplZdpRemoveBkupBindEntryReq
This structure is used by the ZPS_eAplZdpRemoveBkupBindEntryRequest() function. It represents a request to a remote node to remove the back-up of an entry from the local primary binding table cache.
The ZPS_tsAplZdpRemoveBkupBindEntryReq
structure is detailed below.
typedef struct {
uint64 u64SrcAddress;
uint8 u8SrcEndPoint;
uint16 u16ClusterId;
uint8 u8DstAddrMode;
union {
struct {
uint16 u16DstAddress;
} sShort;
struct
{
uint64 u64DstAddress;
uint8 u8DstEndPoint;
} sExtended;
};
} ZPS_tsAplZdpRemoveBkupBindEntryReq;
where:
u64SrcAddress
is the IEEE address of the source node for the binding entry.u8SrcEndpoint
is the number of the source endpoint for the binding (1-240).u16ClusterId
is the ID of the cluster (on the local endpoint) for the binding.u8DstAddrMode
is the destination addressing mode for remaining elements (see the Table below) .u16DstAddress
is the address the destination node for the binding (address type according to setting ofu8DstAddrMode
).u8DstEndPoint
is the number of the destination endpoint for the binding (1-240).
Addressing modes
u8DstAddrMode |
Code |
Description |
---|---|---|
0x01 |
ZPS_E_ADDR_MODE_GROUP |
16-bit Group address |
0x03 |
ZPS_E_ADDR_MODE_IEEE |
64-bit IEEE/MAC address |
Parent topic:ZDP Request structures
ZPS_tsAplZdpBackupBindTableReq
This structure is used by the function ZPS_eAplZdpBackupBindTableRequest(). It represents a request to a remote node to save a back-up of the local primary binding table cache (whole or in part).
The ZPS_tsAplZdpBackupBindTableReq
structure is detailed below.
typedef struct {
uint16 u16BindingTableEntries;
uint16 u16StartIndex;
uint16 u16BindingTableListCount;
/* Rest of message is variable length */
ZPS_tsAplZdpBindingTable sBindingTable;
} ZPS_tsAplZdpBackupBindTableReq;
where:
u16BindingTableEntries
is the total number of entries in the primary binding table cache.u16StartIndex
is the binding table index of the first entry to be backed up.u16BindingTableListCount
is the number of binding table entries in the list to be backed up (sBindingTable
).sBindingTable
is a pointer to the list of binding table entries to be backed up. Each list item is of the typeZPS_tsAplZdpBindingTable
detailed below:
ZPS_tsAplZdpBindingTable
typedef struct
{
uint64 u64SourceAddress;
ZPS_tsAplZdpBindingTableEntry* psBindingTableEntryForSpSrcAddr;
}ZPS_tsAplZdpBindingTable;
where:
u64SourceAddress
is the IEEE source address for the binding table entry.psBindingTableEntryForSpSrcAddr
is the binding table entry. This is of the typeZPS_tsAplZdpBindingTableEntry
detailed below.
ZPS_tsAplZdpBindingTableEntry
typedef struct
{
uint16 u16ClusterId;
uint8 u8SourceEndpoint;
uint8 u8DstAddrMode;
union {
struct {
uint16 u16DstAddress;
} sShort;
struct {
uint64 u64DstAddress;
uint8 u8DstEndPoint;
} sExtended;
};
}ZPS_tsAplZdpBindingTableEntry;
where:
u16ClusterId
is the ID of the cluster (on the local endpoint) for the bindingu8SrcEndpoint
is the number of the source endpoint for the binding (1-240)u8DstAddrMode
is the destination addressing mode for remaining elements (see Table below)u16DstAddress
is the address the destination node for the binding (address type according to setting ofu8DstAddrMode
)u8DstEndPoint
is the number of the destination endpoint for the binding (1-240)
Addressing modes
u8DstAddrMode |
Code |
Description |
---|---|---|
0x01 |
ZPS_E_ADDR_MODE_GROUP |
16-bit Group address |
0x03 |
ZPS_E_ADDR_MODE_IEEE |
64-bit IEEE/MAC address |
Parent topic:ZDP Request structures
ZPS_tsAplZdpRecoverBindTableReq
This structure is used by the function ZPS_eAplZdpRecoverBindTableRequest(). It represents a request to a remote node to recover a back-up of the local primary binding table cache.
The ZPS_tsAplZdpRecoverBindTableReq
structure is detailed below.
typedef struct {
uint16 u16StartIndex;
} ZPS_tsAplZdpRecoverBindTableReq;
where u16StartIndex
is the binding table index of the first entry to be recovered.
Parent topic:ZDP Request structures
ZPS_tsAplZdpBackupSourceBindReq
This structure is used by the function ZPS_eAplZdpBackupSourceBindRequest(). It represents a request to a remote node to save a back-up of the local node’s source binding table (whole or in part).
The ZPS_tsAplZdpBackupSourceBindReq
structure is detailed below.
typedef struct {
uint16 u16SourceTableEntries;
uint16 u16StartIndex;
uint16 u16SourceTableListCount;
/* Rest of message is variable length */
uint64* pu64SourceAddress;
} ZPS_tsAplZdpBackupSourceBindReq;
where:
u16SourceTableEntries
is the total number of entries in the source binding table.u16StartIndex
is the binding table index of the first entry to be backed up.u16SourceTableListCount
is the number of binding table entries in the list to be backed up (pu64SourceAddress
).pu64SourceAddress
is a pointer to the list of IEEE source addresses corresponding to the binding table entries to be backed up.
Parent topic:ZDP Request structures
ZPS_tsAplZdpRecoverSourceBindReq
This structure is used by the function ZPS_eAplZdpRecoverSourceBindRequest(). It represents a request to a remote node to recover the back-up of the local node’s source binding table (whole or in part).
The ZPS_tsAplZdpRecoverSourceBindReq
structure is detailed below.
typedef struct {
uint16 u16StartIndex;
} ZPS_tsAplZdpRecoverSourceBindReq;
where u16StartIndex
is the binding table index of the first entry to be recovered.
Parent topic:ZDP Request structures
ZPS_tsAplZdpMgmtNwkDiscReq
This structure is used by the function ZPS_eAplZdpMgmtNwkDiscRequest(). It represents a request to a remote node to discover any other wireless networks that are operating in the neighborhood.
The ZPS_tsAplZdpMgmtNwkDiscReq
structure is detailed below.
typedef struct {
uint32 u32ScanChannels;
uint8 u8ScanDuration;
uint8 u8StartIndex;
} ZPS_tsAplZdpMgmtNwkDiscReq;
where:
u32ScanChannels
is a bitmask of the radio channels to scan (‘1’ means scan, ‘0’ means do not scan):Bits 0 to 26 respectively represent channels 0 to 26 (only bits 11 to 26 are relevant to the 2400-MHz band)
Bits 27 to 31 are reserved
u8ScanDuration
is a value in the range 0x00 to 0x0E that determines the time spent scanning each channel - this time is proportional to 2u8ScanDuration
+1u8StartIndex
is the index of the first result from the results list to include in the response to this request
Parent topic:ZDP Request structures
ZPS_tsAplZdpMgmtLqiReq
This structure is used by the function ZPS_eAplZdpMgmtLqiRequest(). It represents a request to a remote node to provide a list of neighboring nodes, from its Neighbor table, including a radio signal strength (LQI) value for each of these nodes.
The ZPS_tsAplZdpMgmtLqiReq
structure is detailed below.
typedef struct {
uint8 u8StartIndex;
} ZPS_tsAplZdpMgmtLqiReq;
where u8StartIndex
is the Neighbor table index of the first entry to be included in the response to this request.
Parent topic:ZDP Request structures
ZPS_tsAplZdpMgmtRtgReq
This structure is used by the function ZPS_eAplZdpMgmtRtgRequest(). It represents a request to a remote node to provide the contents of its Routing table.
The ZPS_tsAplZdpMgmtRtgReq
structure is detailed below.
typedef struct {
uint8 u8StartIndex;
} ZPS_tsAplZdpMgmtRtgReq;
where u8StartIndex
is the Routing table index of the first entry to be included in the response to this request.
Parent topic:ZDP Request structures
ZPS_tsAplZdpMgmtBindReq
This structure is used by the function ZPS_eAplZdpMgmtBindRequest(). It represents a request to a remote node to provide the contents of its Binding table.
The ZPS_tsAplZdpMgmtBindReq
structure is detailed below.
typedef struct {
uint8 u8StartIndex;
} ZPS_tsAplZdpMgmtBindReq;
where u8StartIndex
is the Binding table index of the first entry to be included in the response to this request.
Parent topic:ZDP Request structures
ZPS_tsAplZdpMgmtLeaveReq
This structure is used by the function ZPS_eAplZdpMgmtLeaveRequest(). It requests a remote node to leave the network.
The ZPS_tsAplZdpMgmtLeaveReq
structure is detailed below.
typedef struct {
uint64 u64DeviceAddress;
uint8 u8Flags;
} ZPS_tsAplZdpMgmtLeaveReq;
where:
u64DeviceAddress
is the IEEE address of the device being asked to leave the network.u8Flags
is an 8-bit bitmap containing the following flags:Rejoin flag (bit 0): Set to 1 if the node requested to leave the network should immediately try to rejoin the network, otherwise set to 0.
Remove Children flag (bit 1): Set to 1 if the node requested to leave the network should also request its own children (if any) to leave the network, otherwise set to 0.
Reserved (bits 7-2).
Parent topic:ZDP Request structures
ZPS_tsAplZdpMgmtDirectJoinReq
This structure is used by the function ZPS_eAplZdpMgmtDirectJoinRequest(). It requests a remote node to allow a particular device to join it (and therefore the network).
The ZPS_tsAplZdpMgmtDirectJoinReq
structure is detailed below.
typedef struct { uint64 u64DeviceAddress; uint8 u8Capability; } ZPS_tsAplZdpMgmtDirectJoinReq;
where:
u64DeviceAddress
is the IEEE address of the device to be allowed to joinu8Capability
is a bitmask of the operating capabilities of the device to be allowed to join. This bitmap is detailed in Table in section ZPS_tsAfNwkJoinIndEvent.
Parent topic:ZDP Request structures
ZPS_tsAplZdpMgmtPermitJoiningReq
This structure is used by the function ZPS_eAplZdpMgmtPermitJoiningRequest(). It requests a remote node (Router or Coordinator) to enable or disable joining for a specified amount of time.
The ZPS_tsAplZdpMgmtPermitJoiningReq
structure is detailed below.
typedef struct {
uint8 u8PermitDuration; bool_t bTcSignificance;
} ZPS_tsAplZdpMgmtPermitJoiningReq;
where:
u8PermitDuration
is the time period, in seconds, during which joining will be allowed (0x00 means that joining is enabled or disabled with no time limit)bTcSignificance
determines whether the remote device is a ‘Trust Centre’:TRUE: A Trust Centre
FALSE: Not a Trust Centre
Parent topic:ZDP Request structures
ZPS_tsAplZdpMgmtCacheReq
This structure is used by the function ZPS_eAplZdpMgmtCacheRequest(). It requests a remote node to provide a list of the End Devices registered in its primary discovery cache.
The ZPS_tsAplZdpMgmtCacheReq
structure is detailed below.
typedef struct {
uint8 u8StartIndex;
} ZPS_tsAplZdpMgmtCacheReq;
where u8StartIndex
is the discovery cache index of the first entry to be included in the response to this request.
Parent topic:ZDP Request structures
ZPS_tsAplZdpMgmtNwkUpdateReq
This structure is used by the function ZPS_eAplZdpMgmtNwkUpdateRequest(). It requests an update of network parameters related to radio communication and may optionally initiate an energy scan in the 2400-MHz band.
The ZPS_tsAplZdpMgmtNwkUpdateReq
structure is detailed below.
typedef struct {
uint32 u32ScanChannels; uint8 u8ScanDuration; uint8 u8ScanCount; uint8 u8NwkUpdateId;
uint16 u16NwkManagerAddr;
} ZPS_tsAplZdpMgmtNwkUpdateReq;
where:
u32ScanChannels
is a bitmask of the radio channels to be scanned (‘1’ means scan, ‘0’ means do not scan):Bits 0 to 26 respectively represent channels 0 to 26 (only bits 11 to 26 are relevant to the 2400-MHz band)
Bits 27 to 31 are reserved
u8ScanDuration
is a key value used to determine the action to be taken, as follows:0x00-0x05: Indicates that an energy scan is required and determines the time to be spent scanning each channel - this time is proportional to 2
u8ScanDuration
+1. The set of channels to scan is specified through
u32ScanChannels
and the maximum number of scans is equal to the value of u8ScanCount
. Valid for unicasts only
0x06-0xFD: Reserved
0xFE: Indicates that radio channel is to be changed to single channel specified through
u32ScanChannels
and that network manager address to be set to that specified throughu16NwkManagerAddr
. Valid for broadcasts only0xFF: Indicates that stored radio channel mask to be updated with that specified through
u32ScanChannels
(but scan not required). Valid for broadcasts only.u8ScanCount
is the number of energy scans to be conducted and reported. Valid only if a scan has been enabled throughu8ScanDuration
(0x00-0x05)u8NwkUpdateId
is a value set by the Network Channel Manager before the request is sent. Valid only ifu8ScanDuration
set to 0xFE or 0xFFu16NwkManagerAddr
is the 16-bit network address of the Network Manager (node nominated to manage radio-band operation of network). Valid only ifu8ScanDuration
set to 0xFF
Parent topic:ZDP Request structures
ZPS_tsAplZdpParentAnnceReq
This structure is used by the function ZPS_eAplZdpParentAnnceReq(), which sends out a Parent Announcement message. The structure specifies the nodes that are the children of the local node which called the function.
The ZPS_tsAplZdpParentAnnceReq
structure is detailed below.
typedef struct {
uint8 u8NumberOfChildren; uint64* pu64ChildList;
} ZPS_tsAplZdpParentAnnceReq;
where:
u8NumberOfChildren
is the number of child nodespu64ChildList
is a pointer to a list of the 64-bit IEEE/MAC addresses of the child nodes
Parent topic:ZDP Request structures
Parent topic:ZDP structures
ZDP response structures
This section details the structures that are used to store ZDP responses, resulting from requests sent using the ZDP functions. A received response is collected using the function ZQ_bZQueueReceive(). As part of this function call, you must provide a pointer to a structure to store the message data. This structure must be of the appropriate type for the response, from those described in this section.
The ZDP response structures are listed below.
-
Service Discovery Response Structures
ZPS_tsAplZdpRemoveNodeCacheRsp
Binding Response Structures
ZPS_tsAplZdpRecoverSourceBindRsp
Network Management Services Response Structures
ZPS_tsAplZdpNwkAddrRsp
This structure is used to store NWK_addr_rsp message data - a response to a call to the function ZPS_eAplZdpNwkAddrRequest(). This response contains the network address of the node with a given IEEE address.
The ZPS_tsAplZdpNwkAddrRsp
structure is detailed below.
typedef struct { uint8 u8Status;
uint64 u64IeeeAddrRemoteDev;
uint16 u16NwkAddrRemoteDev;
uint8 u8NumAssocDev;
uint8 u8StartIndex;
/* Rest of the message is variable Length */
uint16* pNwkAddrAssocDevList;
} ZPS_tsAplZdpNwkAddrRsp;
where:
u8Status
is the return status for ZPS_eAplZdpNwkAddrRequest()u64IeeeAddrRemoteDev
is the IEEE address of the remote node that sent the response (this is the IEEE address specified in the original request)u16NwkAddrRemoteDev
is the network address of the remote node that sent the response (this is the network address that was requested)u8NumAssocDev
is the number of neighboring nodes for which network addresses are also being reported (in the remainder of the structure)u8StartIndex
is the index in the remote node’s Neighbor table of the first entry to be included in this report. This element should be ignored if the elementu8NumAssocDev
is 0.pNwkAddrAssocDevList
is a pointer to a list of 16-bit network addresses of the remote node’s neighbors (this is a variable-length list with four bytes per node). This element should be ignored if the elementu8NumAssocDev
is 0.
Parent topic:ZDP response structures
ZPS_tsAplZdpIeeeAddrRsp
This structure is used to store IEEE_addr_rsp message data - a response to a call to the function ZPS_eAplZdpIeeeAddrRequest(). This response contains the IEEE address of the node with a given network address.
The ZPS_tsAplZdpIeeeAddrRsp
structure is detailed below.
typedef struct
{ uint8 u8Status;
uint64 u64IeeeAddrRemoteDev;
uint16 u16NwkAddrRemoteDev;
uint8 u8NumAssocDev;
uint8 u8StartIndex;
/* Rest of the message is variable Length */
uint16* pNwkAddrAssocDevList;
} ZPS_tsAplZdpIeeeAddrRsp;
where:
u8Status
is the return status for ZPS_eAplZdpIeeeAddrRequest().u64IeeeAddrRemoteDev
is the IEEE address of the remote node that sent the response (this is the IEEE address that was requested).u16NwkAddrRemoteDev
is the network address of the remote node that sent the response (this is the network address specified in the original request).u8NumAssocDev
is the number of neighboring nodes for which network addresses are also being reported (in the remainder of the structure).u8StartIndex
is the index in the remote node’s Neighbor table of the first entry to be included in this report. This element should be ignored if the elementu8NumAssocDev
is 0.pNwkAddrAssocDevList
is a pointer to a list of 16-bit network addresses of the remote node’s neighbors (this is a variable-length list with four bytes per node). This element should be ignored if the elementu8NumAssocDev
is 0.
Parent topic:ZDP response structures
ZPS_tsAplZdpNodeDescRsp
This structure is used to store Node_Desc_rsp message data - a response to a call to the function ZPS_eAplZdpNodeDescRequest(). This response contains the Node descriptor of the node with a given network address.
The ZPS_tsAplZdpNodeDescRsp
structure is detailed below.
typedef struct {
uint8 u8Status;
uint16 u16NwkAddrOfInterest;
/* Rest of the message is variable length */
ZPS_tsAplZdpNodeDescriptor tsNodeDescriptor;
} ZPS_tsAplZdpNodeDescRsp;
where:
u8Status
is the return status for ZPS_eAplZdpNodeDescRequest().u16NwkAddrOfInterest
is the network address of the remote node that sent the response (this is the network address that was specified in the request).tsNodeDescriptor
is the returned Node descriptor, a structure of typeZPS_tsAplZdpNodeDescriptor
(detailed in Section 9.2.1.1). This is only included ifu8Status
reports success.
Parent topic:ZDP response structures
ZPS_tsAplZdpPowerDescRsp
This structure is used to store Power_Desc_rsp message data - a response to a call to the function ZPS_eAplZdpPowerDescRequest(). This response contains the Power descriptor of the node with a given network address.
The ZPS_tsAplZdpPowerDescRsp
structure is detailed below.
typedef struct {
uint8 u8Status;
uint16 u16NwkAddrOfInterest;
/* Rest of the message is variable length */
ZPS_tsAplZdpNodePowerDescriptor sPowerDescriptor;
} ZPS_tsAplZdpPowerDescRsp;
where:
u8Status
is the return status for ZPS_eAplZdpPowerDescRequest()u16NwkAddrOfInterest
is the network address of the remote node that sent the response (this is the network address that was specified in the request)sPowerDescriptor
is the returned Power descriptor, a structure of typeZPS_tsAplZdpNodePowerDescriptor
(detailed in Section 9.2.1.2). This is only included ifu8Status
reports success
Parent topic:ZDP response structures
ZPS_tsAplZdpSimpleDescRsp
This structure is used to store Simple_Desc_rsp message data - a response to a call to the function ZPS_eAplZdpSimpleDescRequest(). This response contains the Simple descriptor of a given endpoint on the node with a given network address.
The ZPS_tsAplZdpSimpleDescRsp
structure is detailed below.
typedef struct {
uint8 u8Status;
uint16 u16NwkAddrOfInterest;
uint8 u8Length;
/* Rest of the message is variable length */
ZPS_tsAplZdpSimpleDescType sSimpleDescriptor;
} ZPS_tsAplZdpSimpleDescRsp;
where:
u8Status
is the return status for ZPS_eAplZdpSimpleDescRequest().u16NwkAddrOfInterest
is the network address of the remote node that sent the response (this is the network address that was specified in the request).u8Length
is the length of the returned Simple descriptor, in bytes (depends on the number of clusters supported by the endpoint).sSimpleDescriptor
is the returned Simple descriptor, a structure of typeZPS_tsAplZdpSimpleDescType
(detailed in Section 9.2.1.3). This is only included ifu8Status
reports success.
Parent topic:ZDP response structures
ZPS_tsAplZdpExtendedSimpleDescRsp
This structure is used to store Extended_Simple_Desc_rsp message data - a response to a call to the function ZPS_eAplZdpExtendedSimpleDescRequest(). This response contains a cluster list (combined input and output) for a given endpoint on the node with a given network address.
The ZPS_tsAplZdpExtendedSimpleDescRsp
structure is detailed below.
typedef struct {
uint8 u8Status;
uint16 u16NwkAddr;
uint8 u8EndPoint;
uint8 u8AppInputClusterCount;
uint8 u8AppOutputClusterCount;
uint8 u8StartIndex;
/* Rest of the message is variable length */
uint16* pAppClusterList;
} ZPS_tsAplZdpExtendedSimpleDescRsp;
where:
u8Status
is the return status for ZPS_eAplZdpExtendedSimpleDescRequest()u16NwkAddr
is the network address of the remote node that sent the response (this is the network address that was specified in the request)u8EndPoint
is the number of the endpoint for which the response was sent (this is the endpoint number that was specified in the request)u8AppInputClusterCount
is the total number of input clusters in the endpoint’s complete input cluster listu8AppOutputClusterCount
is the total number of output clusters in the endpoint’s complete output cluster listu8StartIndex
is the index, in the endpoint’s complete input or output cluster list, of the first cluster reported in this responsepAppClusterList
is a pointer to the reported cluster list, input clusters first then output clusters. This is only included ifu8Status
reports success
Parent topic:ZDP response structures
ZPS_tsAplZdpComplexDescRsp
This structure is used to store Complex_Desc_rsp message data - a response to a call to the function ZPS_eAplZdpComplexDescRequest(). This response contains the Complex descriptor of the node with a given network address.
The ZPS_tsAplZdpComplexDescRsp
structure is detailed below.
typedef struct {
uint8 u8Status;
uint16 u16NwkAddrOfInterest;
uint8 u8Length;
/* Rest of the message is variable Length */
ZPS_tsAplZdpComplexDescElement sComplexDescriptor;
} ZPS_tsAplZdpComplexDescRsp;
where:
u8Status
is the return status for ZPS_eAplZdpComplexDescRequest().u16NwkAddrOfInterest
is the network address of the remote node that sent the response (this is the network address that was specified in the request).u8Length
is the length of the returned Complex descriptor, in bytes.sComplexDescriptor
is the returned Complex descriptor, a structure of type.ZPS_tsAplZdpComplexDescRsp
(described below). This is only included ifu8Status
reports success .
ZPS_tsAplZdpComplexDescElement
typedef struct { uint8 u8XMLTag;
uint8 u8FieldCount;
uint8 *pu8Data;
} ZPS_tsAplZdpComplexDescElement;
where:
u8XMLTag
is the XML tag for the current field.u8FieldCount
is the number of fields in the Complex descriptor.*pu8Data
is a pointer to the data of the current field.
Parent topic:ZPS_tsAplZdpComplexDescRsp
Parent topic:ZDP response structures
ZPS_tsAplZdpUserDescRsp
This structure is used to store User_Desc_rsp message data - a response to a call to the function ZPS_eAplZdpUserDescRequest(). This response contains the User descriptor of the node with a given network address.
The ZPS_tsAplZdpUserDescRsp
structure is detailed below.
typedef struct {
uint8 u8Status;
uint16 u16NwkAddrOfInterest;
uint8 u8Length;
/* Rest of the message is variable Length */
char szUserDescriptor[ZPS_ZDP_LENGTH_OF_USER_DESC];
} ZPS_tsAplZdpUserDescRsp;
where:
u8Status
is the return status for ZPS_eAplZdpUserDescRequest().u16NwkAddrOfInterest
is the network address of the remote node that sent the response (this is the network address that was specified in the request).u8Length
is the length of the returned User descriptor, in bytes (maximum: 16).szUserDescriptor
is the returned User descriptor as a character array. This is only included ifu8Status
reports success.
Parent topic:ZDP response structures
ZPS_tsAplZdpMatchDescRsp
This structure is used to store Match_Desc_rsp message data - a response to a call to the function ZPS_eAplZdpMatchDescRequest(). This response contains details of the endpoints on the remote node that matched the criteria specified in the original request.
The ZPS_tsAplZdpMatchDescRsp
structure is detailed below.
typedef struct {
uint8 u8Status;
uint16 u16NwkAddrOfInterest;
uint8 u8MatchLength;
/* Rest of message is variable length */
uint8* u8MatchList;
} ZPS_tsAplZdpMatchDescRsp;
where:
u8Status
is the return status for ZPS_eAplZdpMatchDescRequest().u16NwkAddrOfInterest
is the network address of the remote node that sent the response (this is the network address that was specified in the request).u8MatchLength
is the length of the list of matched endpoints, in bytes.u8MatchList
is a pointer to the list of matched endpoints, where each endpoint is represented by an 8-bit value (in the range 1-240).
Parent topic:ZDP response structures
ZPS_tsAplZdpActiveEpRsp
This structure is used to store Active_EP_rsp message data - a response to a call to the function ZPS_eAplZdpActiveEpRequest(). This response contains a list of the active endpoints on a given network node.
The ZPS_tsAplZdpActiveEpRsp
structure is detailed below.
typedef struct {
uint8 u8Status;
uint16 u16NwkAddrOfInterest;
uint8 u8ActiveEpCount;
/* Rest of the message is variable */
uint8* pActiveEpList;
} ZPS_tsAplZdpActiveEpRsp;
where:
u8Status
is the return status for ZPS_eAplZdpActiveEpRequest().u16NwkAddrOfInterest
is the network address of the remote node that sent the response (this is the network address that was specified in the request).u8ActiveEpCount
is the number of active endpoints on the node.pActiveEpList
is a pointer to the list of active endpoints, where each endpoint is represented by an 8-bit value (in the range 1-240).
Parent topic:ZDP response structures
ZPS_tsAplZdpExtendedActiveEpRsp
This structure is used to store Extended_Active_EP_rsp message data - a response to a call to the function ZPS_eAplZdpExtendedActiveEpRequest(). This response contains a list of the active endpoints on the node with a given network address.
The ZPS_tsAplZdpExtendedActiveEpRsp
structure is detailed below.
typedef struct {
uint8 u8Status;
uint16 u16NwkAddr;
uint8 u8ActiveEpCount;
uint8 u8StartIndex;
/* Rest of the message is variable Length */
uint8* pActiveEpList;
} ZPS_tsAplZdpExtendedActiveEpRsp;
where:
u8Status
is the return status for ZPS_eAplZdpExtendedActiveEpRequest().16NwkAddr
is the network address of the remote node that sent the response (this is the network address that was specified in the request).u8ActiveEpCount
is the total number of active endpoints on the node.u8StartIndex
is the index, in the node’s list of active endpoints, of the first endpoint reported in this response.pActiveEpList
is a pointer to the reported list of active endpoints (starting with the endpoint with indexu8StartIndex
).
Parent topic:ZDP response structures
ZPS_tsAplZdpUserDescConf
This structure is used to store User_Desc_conf message data - a response to a call to the function ZPS_eAplZdpUserDescSetRequest(). This response contains a confirmation of the requested configuration of the User descriptor on a given network node.
The ZPS_tsAplZdpUserDescConf
structure is detailed below.
typedef struct {
uint8 u8Status;
uint16 u16NwkAddrOfInterest;
} ZPS_tsAplZdpUserDescConf;
where:
u8Status
is the return status for ZPS_eAplZdpUserDescSetRequest().u16NwkAddrOfInterest
is the network address of the remote node that sent the response (this is the network address that was specified in the request).
Parent topic:ZDP response structures
ZPS_tsAplZdpSystemServerDiscoveryRsp
This structure is used to store System_Server_Discovery_rsp message data - a response to a call to the function ZPS_eAplZdpSystemServerDiscoveryRequest(). This response indicates which of the requested services are supported by a given network node.
The ZPS_tsAplZdpSystemServerDiscoveryRsp
structure is detailed below.
typedef struct {
uint8 u8Status;
uint16 u16ServerMask;
} ZPS_tsAplZdpSystemServerDiscoveryRsp;
where:
u8Status
is the return status for the function ZPS_eAplZdpSystemServerDiscoveryRequest().u16ServerMask
is the returned bitmask that summarizes the requested services supported by the node (1 for ‘supported’, 0 for ‘not supported’ or ‘not requested’). This bitmask is detailed in the table below.
Services Bitmask
Bit |
Service |
---|---|
0 |
Primary Trust Centre |
1 |
Backup Trust Centre |
2 |
Primary Binding Table Cache |
3 |
Backup Binding Table Cache |
4 |
Primary Discovery Cache |
5 |
Back-up Discovery Cache |
6 |
Network Manager |
7-15 |
Reserved |
Parent topic:ZDP response structures
ZPS_tsAplZdpDiscoveryCacheRsp
This structure is used to store Discovery_Cache_rsp message data - a response to a call to the function ZPS_eAplZdpDiscoveryCacheRequest(). This response indicates that the sending node has a primary discovery cache.
The ZPS_tsAplZdpDiscoveryCacheRsp
structure is detailed below.
typedef struct {
uint8 u8Status;
} ZPS_tsAplZdpDiscoveryCacheRsp;
where u8Status
is the return status for ZPS_eAplZdpDiscoveryCacheRequest().
Parent topic:ZDP response structures
ZPS_tsAplZdpDiscoveryStoreRsp
This structure is used to store Discovery_Store_rsp message data - a response to a call to the function ZPS_eAplZdpDiscoveryStoreRequest(). This response indicates whether the sending node has successfully reserved space in its primary discovery cache.
The ZPS_tsAplZdpDiscoveryStoreRsp
structure is detailed below.
typedef struct {
uint8 u8Status;
} ZPS_tsAplZdpDiscoveryStoreRsp;
where u8Status
is the return status for ZPS_eAplZdpDiscoveryStoreRequest().
Parent topic:ZDP response structures
ZPS_tsAplZdpNodeDescStoreRsp
This structure is used to store Node_Desc_store_rsp
message data - a response to a call to the function ZPS_eAplZdpNodeDescStoreRequest(). This response indicates whether the sending node has successfully stored the received Node descriptor in its primary discovery cache.
The ZPS_tsAplZdpNodeDescStoreRsp
structure is detailed below.
typedef struct {
uint8 u8Status;
} ZPS_tsAplZdpNodeDescStoreRsp;
where u8Status
is the return status for ZPS_eAplZdpNodeDescStoreRequest().
Parent topic:ZDP response structures
ZPS_tsAplZdpPowerDescStoreRsp
This structure is used to store Power_Desc_store_rsp
message data - a response to a call to the function ZPS_eAplZdpPowerDescStoreRequest(). This response indicates whether the sending node has successfully stored the received Power descriptor in its primary discovery cache.
The ZPS_tsAplZdpPowerDescStoreRsp
structure is detailed below.
typedef struct {
uint8 u8Status;
uint64 u64IeeeAddr;
/* Rest of message is variable length */
ZPS_tsAplZdpNodePowerDescriptor sPowerDescriptor;
} ZPS_tsAplZdpPowerDescStoreRsp;
where:
u8Status
is the return status for ZPS_eAplZdpPowerDescStoreRequest().u64IeeeAddr
is the IEEE/MAC address of the device whose Power descriptor has been stored in the primary discovery cache.sPowerDescriptor
is the Power descriptor stored (see Section 9.2.1.1).
Parent topic:ZDP response structures
ZPS_tsAplZdpSimpleDescStoreRsp
This structure is used to store Power_Desc_store_rsp message data - a response to a call to the function ZPS_eAplZdpSimpleDescStoreRequest(). This response indicates whether the sending node has successfully stored the received Simple descriptor in its primary discovery cache.
The ZPS_tsAplZdpSimpleDescStoreRsp
structure is detailed below.
typedef struct {
uint8 u8Status;
} ZPS_tsAplZdpSimpleDescStoreRsp;
where u8Status
is the return status for ZPS_eAplZdpSimpleDescStoreRequest().
Parent topic:ZDP response structures
ZPS_tsAplZdpActiveEpStoreRsp
This structure is used to store Active_EP_store_rsp message data - a response to a call to the function ZPS_eAplZdpActiveEpStoreRequest(). This response indicates whether the sending node has successfully stored the received list of active endpoints in its primary discovery cache.
The ZPS_tsAplZdpActiveEpStoreRsp
structure is detailed below.
typedef struct {
uint8 u8Status;
} ZPS_tsAplZdpActiveEpStoreRsp;
where u8Status
is the return status for ZPS_eAplZdpActiveEpStoreRequest().
Parent topic:ZDP response structures
ZPS_tsAplZdpFindNodeCacheRsp
This structure is used to store Find_node_cache_rsp message data - a response to a call to the function ZPS_eAplZdpFindNodeCacheRequest(). This response indicates that the sending node holds ‘discovery information’ about a given network node in its primary discovery cache.
The ZPS_tsAplZdpFindNodeCacheRsp
structure is detailed below.
typedef struct {
uint16 u16CacheNwkAddr;
uint16 u16NwkAddr;
uint64 u64IeeeAddr;
} ZPS_tsAplZdpFindNodeCacheRsp;
where:
u16CacheNwkAddr
is the network address of the remote node that sent the response.u16NwkAddr
is the network address of the node of interest (this is the network address that was specified in the request).u64IeeeAddr
is the IEEE address of the node of interest (this is the IEEE address that was specified in the request).
Parent topic:ZDP response structures
ZPS_tsAplZdpRemoveNodeCacheRsp
This structure is used to store Remove_node_cache_rsp message data - a response to a call to the function ZPS_eAplZdpRemoveNodeCacheRequest(). This response indicates whether the sending node has successfully removed from its primary discovery cache all ‘discovery information’ relating to a given End Device node.
The ZPS_tsAplZdpRemoveNodeCacheRsp
structure is detailed below.
typedef struct {
uint8 u8Status;
} ZPS_tsAplZdpRemoveNodeCacheRsp;
where u8Status
is the return status for the function ZPS_eAplZdpRemoveNodeCacheRequest().
Parent topic:ZDP response structures
ZPS_tsAplZdpEndDeviceBindRsp
This structure is used to store End_Device_Bind_rsp message data - a response to a call to the function ZPS_eAplZdpEndDeviceBindRequest(). This response is issued by the Coordinator to indicate the status of an End Device binding request.
The ZPS_tsAplZdpEndDeviceBindRsp
structure is detailed below.
typedef struct {
uint8 u8Status;
} ZPS_tsAplZdpEndDeviceBindRsp;
where u8Status
is the return status for ZPS_eAplZdpEndDeviceBindRequest().
Parent topic:ZDP response structures
ZPS_tsAplZdpBindRsp
This structure is used to store Bind_rsp message data - a response to a call to the function ZPS_eAplZdpBindUnbindRequest(). This response indicates the status of a binding request (a request to modify of a binding table).
The ZPS_tsAplZdpBindRsp
structure is detailed below.
typedef struct {
uint8 u8Status;
} ZPS_tsAplZdpBindRsp;
where u8Status
is the return status for ZPS_eAplZdpBindUnbindRequest().
Parent topic:ZDP response structures
ZPS_tsAplZdpUnbindRsp
This structure is used to store Unbind_rsp message data - a response to a call to the function ZPS_eAplZdpBindUnbindRequest(). This response indicates the status of an unbinding request (a request to modify of a binding table).
The ZPS_tsAplZdpUnbindRsp
structure is detailed below.
typedef struct {
uint8 u8Status;
} ZPS_tsAplZdpUnbindRsp;
where u8Status
is the return status for ZPS_eAplZdpBindUnbindRequest().
Parent topic:ZDP response structures
ZPS_tsAplZdpBindRegisterRsp
This structure is used to store Bind_Register_rsp message data - a response to a call to the function ZPS_eAplZdpBindRegisterRequest(). This response contains binding information held on the responding node concerning the requesting node.
The ZPS_tsAplZdpBindRegisterRsp
structure is detailed below.
typedef struct {
uint8 u8Status;
uint16 u16BindingTableEntries;
uint16 u16BindingTableListCount;
/* Rest of the message is variable Length */
ZPS_tsAplZdpBindingTable sBindingTableList;
} ZPS_tsAplZdpBindRegisterRsp;
where:
u8Status
is the return status for ZPS_eAplZdpBindRegisterRequest().u16BindingTableEntries
is the total number of binding table entries concerning the requesting node held on the responding node.u16BindingTableListCount
is the number of binding table entries concerning the requesting node contained in this response.sBindingTableList
is a pointer to the first item in the list of reported binding table entries. A list item is of typeZPS_tsAplZdpBindingTable
detailed below.
ZPS_tsAplZdpBindingTable
typedef struct
{
uint64 u64SourceAddress;
ZPS_tsAplZdpBindingTableEntry* psBindingTableEntryForSpSrcAddr;
}ZPS_tsAplZdpBindingTable;
where:
u64SourceAddress
is the IEEE address of the node to which the binding table entry relates.psBindingTableEntryForSpSrcAddr
is a pointer to the relevant binding table information. This information is contained in a structure of typeZPS_tsAplZdpBindingTableEntry
detailed below.
Parent topic:ZPS_tsAplZdpBindRegisterRsp
ZPS_tsAplZdpBindingTableEntry
typedef struct
{
uint8 u8SourceEndpoint;
uint16 u16ClusterId;
uint8 u8DstAddrMode;
union {
struct {
uint16 u16DstAddress;
} sShort;
struct {
uint64 u64DstAddress;
uint8 u8DstEndPoint;
} sExtended;
};
}ZPS_tsAplZdpBindingTableEntry;
where:
u8SourceEndpoint
is the number of the bound endpoint (1-240) on the source node of the bindingu16ClusterId
is the ID of the cluster involved in the binding, on the source node of the bindingu8DstAddrMode
is the addressing mode used in the rest of the structure (see Table 19 below)u16DstAddress
is the network address of the destination node of the binding (this is only application ifu8DstAddrMode
is set to 0x03)u64DstAddress
is the IEEE address of the destination node of the binding (this is only application ifu8DstAddrMode
is set to 0x04)u8DstEndPoint
is the number of the bound endpoint (1-240) on the destination node of the binding
Addressing modes
u8DstAddrMode |
Code |
Description |
---|---|---|
0x00 |
ZPS_E_ADDR_MODE_BOUND |
Bound endpoint |
0x01 |
ZPS_E_ADDR_MODE_GROUP |
16-bit Group address |
0x02 |
ZPS_E_ADDR_MODE_SHORT |
16-bit Network (Short) address |
0x03 |
ZPS_E_ADDR_MODE_IEEE |
64-bit IEEE/MAC address |
Parent topic:ZPS_tsAplZdpBindRegisterRsp
Parent topic:ZDP response structures
ZPS_tsAplZdpReplaceDeviceRsp
This structure is used to store Replace_Device_rsp message data - a response to a call to the function ZPS_eAplZdpReplaceDeviceRequest(). This response indicates the status of the replace request.
The ZPS_tsAplZdpReplaceDeviceRsp
structure is detailed below.
typedef struct {
uint8 u8Status;
} ZPS_tsAplZdpReplaceDeviceRsp;
where u8Status
is the return status for ZPS_eAplZdpReplaceDeviceRequest().
Parent topic:ZDP response structures
ZPS_tsAplZdpStoreBkupBindEntryRsp
This structure is used to store Store_Bkup_Bind_Entry_rsp message data - a response to a call to the function ZPS_eAplZdpStoreBkupBindEntryRequest(). This response indicates the status of the back-up request.
The ZPS_tsAplZdpStoreBkupBindEntryRsp
structure is detailed below.
typedef struct {
uint8 u8Status;
} ZPS_tsAplZdpStoreBkupBindEntryRsp;
where u8Status
is the return status for the function ZPS_eAplZdpStoreBkupBindEntryRequest().
Parent topic:ZDP response structures
ZPS_tsAplZdpRemoveBkupBindEntryRsp
This structure is used to store Remove_Bkup_Bind_Entry_rsp message data - a response to a call to the function ZPS_eAplZdpRemoveBkupBindEntryRequest(). This response indicates the status of the remove request.
The ZPS_tsAplZdpRemoveBkupBindEntryRsp
structure is detailed below.
typedef struct {
uint8 u8Status;
} ZPS_tsAplZdpRemoveBkupBindEntryRsp;
where u8Status
is the return status for the function ZPS_eAplZdpRemoveBkupBindEntryRequest().
Parent topic:ZDP response structures
ZPS_tsAplZdpBackupBindTableRsp
This structure is used to store Backup_Bind_Table_rsp message data - a response to a call to the function ZPS_eAplZdpBackupBindTableRequest(). This response indicates the status of the back-up request.
The ZPS_tsAplZdpBackupBindTableRsp
structure is detailed below.
typedef struct {
uint8 u8Status;
uint16 u16EntryCount;
} ZPS_tsAplZdpBackupBindTableRsp;
where:
u8Status
is the return status for ZPS_eAplZdpBackupBindTableRequest()u16EntryCount
is the number of binding table entries that have been backed up
Parent topic:ZDP response structures
ZPS_tsAplZdpRecoverBindTableRsp
This structure is used to store Recover_Bind_Table_rsp message data - a response to a call to the function ZPS_eAplZdpRecoverBindTableRequest(). This response indicates the status of the recover request and contains the recovered binding table entries.
The ZPS_tsAplZdpRecoverBindTableRsp
structure is detailed below.
typedef struct {
uint8 u8Status;
uint16 u16StartIndex;
uint16 u16BindingTableEntries;
uint16 u16BindingTableListCount;
/* Rest of the message is variable length */
ZPS_tsAplZdpBindingTable sBindingTableList;
} ZPS_tsAplZdpRecoverBindTableRsp;
where:
u8Status
is the return status for ZPS_eAplZdpRecoverBindTableRequest()u16StartIndex
is the binding table index of the first entry in the set of recovered binding table entries (sBindingTableList
)u16BindingTableEntries
is the total number of entries in the back-up binding table cacheu16BindingTableListCount
is the number of entries in the set of recovered binding table entries (sBindingTableList
)sBindingTableList
is a pointer to the first item in the list of recovered binding table entries. A list item is of typeZPS_tsAplZdpBindingTable
, detailed in Section 8.2.3.26.
Parent topic:ZDP response structures
ZPS_tsAplZdpBackupSourceBindRsp
This structure is used to store Backup_Source_Bind_rsp message data - a response to a call to the function ZPS_eAplZdpBackupSourceBindRequest(). This response indicates the status of the back-up request.
The ZPS_tsAplZdpBackupSourceBindRsp
structure is detailed below.
typedef struct {
uint8 u8Status;
} ZPS_tsAplZdpBackupSourceBindRsp;
where u8Status
is the return status for the function ZPS_eAplZdpBackupSourceBindRequest().
Parent topic:ZDP response structures
ZPS_tsAplZdpRecoverSourceBindRsp
This structure is used to store Recover_Source_Bind_rsp message data - a response to a call to the function ZPS_eAplZdpRecoverSourceBindRequest(). This response indicates the status of the recover request and contains the recovered binding table entries.
The ZPS_tsAplZdpRecoverSourceBindRsp
structure is detailed below.
typedef struct {
uint8 u8Status;
uint16 u16StartIndex;
uint16 u16SourceTableEntries;
uint16 u16SourceTableListCount;
/* Rest of the message is variable length */
uint64* pu64SourceTableList;
} ZPS_tsAplZdpRecoverSourceBindRsp;
where:
u8Status
is the return status for the function ZPS_eAplZdpRecoverSourceBindRequest().u16StartIndex
is the binding table index of the first entry in the set of recovered binding table entries (pu64SourceTableList
).u16SourceTableEntries
is the total number of source binding table entries in the back-up binding table cache.u16SourceTableListCount
is the number of entries in the set of recovered binding table entries. (pu64SourceTableList
).pu64SourceTableList
is a pointer to the first item in the list of recovered binding table entries.
Parent topic:ZDP response structures
ZPS_tsAplZdpMgmtNwkDiscRsp
This structure is used to store Mgmt_NWK_Disc_rsp message data - a response to a call to the function ZPS_eAplZdpMgmtNwkDiscRequest(). This response reports the networks discovered in a network discovery (all the networks or a subset).
The ZPS_tsAplZdpMgmtNwkDiscRsp
structure is detailed below.
typedef struct {
uint8 u8Status;
uint8 u8NetworkCount;
uint8 u8StartIndex;
uint8 u8NetworkListCount;
/* Rest of the message is variable length */
ZPS_tsAplZdpNetworkDescr* psNetworkDescrList;
} ZPS_tsAplZdpMgmtNwkDiscRsp;
where:
u8Status
is the return status for ZPS_eAplZdpMgmtNwkDiscRequest()u8NetworkCount
is the total number of networks discoveredu8StartIndex
is the index, in the complete list of discovered networks, of the first network reported in this response (throughpsNetworkDescrList
)u8NetworkListCount
is the number of discovered networks reported in this response (throughpsNetworkDescrList
)psNetworkDescrList
is a pointer to the first entry in a list of network descriptors for the discovered networks. Each entry is of the typeZPS_tsAplZdpNetworkDescr
detailed below.ZPS_tsAplZdpNetworkDescr
typedef struct { uint64 u64ExtPanId; uint8 u8LogicalChan; uint8 u8StackProfile; uint8 u8ZigBeeVersion; uint8 u8PermitJoining; uint8 u8RouterCapacity; uint8 u8EndDeviceCapacity; } ZPS_tsAplZdpNetworkDescr;
where:
u64ExtPanId
is the 64-bit extended PAN ID of the discovered network.u8LogicalChan
is the radio channel in which the discovered network operates (value in range 0 to 26, but only channels 11 to 26 relevant to 2400-MHz band).u8StackProfile
is the 4-bit identifier of the ZigBee stack profile used by the discovered network (0 - manufacturer-specific, 1 - ZigBee, 2 - ZigBee PRO, other values reserved) and is fixed at 2 for the NXP stack.u8ZigBeeVersion
is the 4-bit version of the ZigBee protocol used by the discovered network.u8PermitJoining
indicates whether the discovered network is currently allowing joinings - that is, at least one node (a Router or the Coordinator) of the network is allowing other nodes to join it:0x01: Joinings allowed.
0x00: Joinings not allowed.
All other values reserved.
u8RouterCapacity
indicates whether the device is capable of accepting join requests from Routers - set to TRUE if capable, FALSE otherwise.u8EndDeviceCapacity
indicates whether the device is capable of accepting join requests from End Devices - set to TRUE capable, FALSE otherwise.
Parent topic:ZDP response structures
ZPS_tsAplZdpMgmtLqiRsp
This structure is used to store Mgmt_Lqi_rsp message data - a response to a call to the function ZPS_eAplZdpMgmtLqiRequest(). This response reports a list of neighboring nodes along with their LQI (link quality) values.
The ZPS_tsAplZdpMgmtLqiRsp
structure is detailed below.
typedef struct {
uint8 u8Status;
uint8 u8NeighborTableEntries;
uint8 u8StartIndex;
uint8 u8NeighborTableListCount;
/* Rest of the message is variable length */
ZPS_tsAplZdpNtListEntry* pNetworkTableList;
} ZPS_tsAplZdpMgmtLqiRsp;
where:
u8Status
is the return status for ZPS_eAplZdpMgmtLqiRequest()u8NeighborTableEntries
is the total number of Neighbor table entries on the remote nodeu8StartIndex
is the Neighbor table index of the first entry reported in this response (throughpNetworkTableList
)u8NetworkListCount
is the number of Neighbor table entries reported in this response (throughpNetworkTableList
)pNetworkTableList
is a pointer to the first entry in the list of reported Neighbor table entries. Each entry is of the typeZPS_tsAplZdpNtListEntry
detailed below.ZPS_tsAplZdpNtListEntry
typedef struct { uint64 u64ExtPanId; uint64 u64ExtendedAddress; uint16 u16NwkAddr; uint8 u8LinkQuality; uint8 u8Depth; /* * Bitfields are used for syntactic neatness and space saving. * May need to assess whether these are suitable for embedded environment and may need to watch endianness on u8Assignment */ union { struct { unsigned u1Reserved1:1; unsigned u2Relationship:3; unsigned u2RxOnWhenIdle:2; unsigned u2DeviceType:2; unsigned u6Reserved2:6; unsigned u2PermitJoining:2; } ; uint8 au8Field[2]; } uAncAttrs; } ZPS_tsAplZdpNtListEntry;
where:
u64ExtPanId
is the 64-bit extended PAN ID of the network .u64ExtendedAddress
is the IEEE address of the neighboring node.u16NwkAddr
is the network address of the neighboring node.u8LinkQuality
is the estimated LQI (link quality) value for radio transmissions from the neighboring node.u8Depth
is the tree depth of the neighboring node (where the Coordinator is at depth zero).u1Reserved1:1
is a 1-bit reserved value and should be set zero.u2Relationship:3
is a 3-bit value representing the neighboring node’s relationship to the local node:0: Neighbor is the parent.
1: Neighbor is a child.
2: Neighbor is a sibling (has same parent).
3: None of the above.
4: Neighbor is a former child.
u2RxOnWhenIdle:2
is a 2-bit value indicating whether the neighboring node’s receiver is enable during idle periods:0: Receiver off when idle (sleeping device)
1: Receiver on when idle (non-sleeping device)
2: Unknown
u2DeviceType:2
is a 2-bit value representing the ZigBee device type of the neighboring node:0: Coordinator
1: Router
2: End Device
3: Unknown
u6Reserved2:6
is a 6-bit reserved value and should be set zero.u2PermitJoining:2
is a 2-bit value indicating whether the neighboring node is accepting joining requests:0: Not accepting join requests
1: Accepting join requests
2: Unknown
au8Field[2]
is the allocation of two bytes for the union.
Parent topic:ZDP response structures
ZPS_tsAplZdpMgmtRtgRsp
This structure is used to store Mgmt_Rtg_rsp message data - a response to a call to the function ZPS_eAplZdpMgmtRtgRequest(). This response reports the contents of the remote node’s Routing table
The ZPS_tsAplZdpMgmtRtgRsp
structure is detailed below.
typedef struct {
uint8 u8Status;
uint8 u8RoutingTableEntries;
uint8 u8StartIndex;
uint8 u8RoutingTableCount;
/* Rest of the message is variable length */
ZPS_tsAplZdpRtEntry* pRoutingTableList;
} ZPS_tsAplZdpMgmtRtgRsp;
where:
u8Status
is the return status for ZPS_eAplZdpMgmtRtgRequest()u8RoutingTableEntries
is the total number of Routing table entries on the remote nodeu8StartIndex
is the Routing table index of the first entry reported in this response (throughpRoutingTableList
)u8RoutingTableCount
is the number of Routing table entries reported in this response (throughpRoutingTableList
)pRoutingTableList
is a pointer to the first entry in the list of reported Routing table entries. Each entry is of the typeZPS_tsAplZdpRtEntry
detailed belowtypedef struct { uint16 u16NwkDstAddr; /**< Destination Network address */ uint16 u16NwkNxtHopAddr; /**< Next hop Network address */ union { struct { unsigned u3Status:3; unsigned u1MemConst:1; unsigned u1ManyToOne:1; unsigned u1RouteRecordReqd:1; unsigned u1Reserved:2; } bfBitfields; uint8 u8Field; } uAncAttrs; } ZPS_tsAplZdpRtEntry;
where:
u16NwkDstAddr
is the destination network address of the route.u16NwkNxtHopAddr
is the ‘next hop’ network address of the route.u3Status:3
is the 3-bit status for the route:000 = ACTIVE
001 = DISCOVERY_UNDERWAY
010 = DISCOVERY_FAILED
011 = INACTIVE
100 = VALIDATION_UNDERWAY
101-111 = Reserved.
u1MemConst:1
is a bit indicating whether the device is a memory-constrained concentrator.u1ManyToOne:1
is a bit indicating whether the destination node is a concentrator that issued a many-to-one request.u1RouteRecordReqd:1
is a bit indicating whether a route record command frame. should be sent to the destination before the next data packet.u1Reserved:2
are reserved bits.u8Field
contains the full set of flags of thebfBitfields
sub-structure, withu3Status:3
occupying the most significant bits andu1Reserved:2
occupying the least significant bits (for a big-endian device).
Parent topic:ZDP response structures
ZPS_tsAplZdpMgmtBindRsp
This structure is used to store Mgmt_Bind_rsp message data - a response to a call to the function ZPS_eAplZdpMgmtBindRequest(). This response reports the contents of the remote node’s Binding table.
The ZPS_tsAplZdpMgmtBindRsp
structure is detailed below.
typedef struct {
uint8 u8Status;
uint16 u16BindingTableEntries;
uint16 u16StartIndex;
uint16 u16BindingTableListCount;
/* Rest of the message is variable length */
ZPS_tsAplZdpBindingTable sBindingTableList;
} ZPS_tsAplZdpMgmtBindRsp;
where:
u8Status
is the return status for ZPS_eAplZdpMgmtBindRequest()u16BindingTableEntries
is the total number of Binding table entries on the remote nodeu8StartIndex
is the Binding table index of the first entry reported in this response (throughsBindingTableList
)u16BindingTableListCount
is the number of Binding table entries reported in this response (throughsBindingTableList
)sBindingTableList
is a pointer to the first entry in the list of reported Binding table entries. Each entry is of the typeZPS_tsAplZdpBindingTable
, detailed in Section 9.2.2.29
Parent topic:ZDP response structures
ZPS_tsAplZdpMgmtLeaveRsp
This structure is used to store Mgmt_Leave_rsp message data - a response to a call to the function ZPS_eAplZdpMgmtLeaveRequest(). This response is issued by a remote node that has been requested to leave the network.
The ZPS_tsAplZdpMgmtLeaveRsp
structure is detailed below.
typedef struct {
uint8 u8Status;
} ZPS_tsAplZdpMgmtLeaveRsp;
where u8Status
is the return status for ZPS_eAplZdpMgmtLeaveRequest().
Parent topic:ZDP response structures
ZPS_tsAplZdpMgmtDirectJoinRsp
This structure is used to store Mgmt_Direct_Join_rsp message data - a response to a call to the function ZPS_eAplZdpMgmtDirectJoinRequest(). This response is issued by a remote node (Router or Coordinator) that has been requested to allow a particular device to join the network as a child of the node.
The ZPS_tsAplZdpMgmtDirectJoinRsp
structure is detailed below.
typedef struct {
uint8 u8Status;
} ZPS_tsAplZdpMgmtDirectJoinRsp;
where u8Status
is the return status for ZPS_eAplZdpMgmtDirectJoinRequest().
Parent topic:ZDP response structures
ZPS_tsAplZdpMgmtPermitJoiningRsp
This structure is used to store Mgmt_Permit_Joining_rsp message data - a response to a call to the function ZPS_eAplZdpMgmtPermitJoiningRequest(). This response is issued by a remote node (Router or Coordinator) that has been requested to enable or disable joining for a specified amount of time. The response is only sent if the original request was unicast (and not if it was broadcast).
The ZPS_tsAplZdpMgmtPermitJoiningRsp
structure is detailed below.
typedef struct {
uint8 u8Status;
} ZPS_tsAplZdpMgmtPermitJoiningRsp;
where u8Status
is the return status for the function ZPS_eAplZdpMgmtPermitJoiningRequest().
Parent topic:ZDP response structures
ZPS_tsAplZdpMgmtCacheRsp
This structure is used to store Mgmt_Cache_rsp message data - a response to a call to the function ZPS_eAplZdpMgmtCacheRequest(). This response reports a list of the End Devices registered in the node’s primary discovery cache.
The ZPS_tsAplZdpMgmtCacheRsp
structure is detailed below.
typedef struct {
uint8 u8Status;
uint8 u8DiscoveryCacheEntries;
uint8 u8StartIndex;
uint8 u8DiscoveryCacheListCount;
/* Rest of the message is variable length */
ZPS_tsAplDiscoveryCache* pDiscoveryCacheList;
} ZPS_tsAplZdpMgmtCacheRsp;
where:
u8Status
is the return status for ZPS_eAplZdpMgmtCacheRequest()u8DiscoveryCacheEntries
is the total number of discovery cache entries on the remote node.u8StartIndex
is the discovery cache index of the first entry reported in this response (throughpDiscoveryCacheList
).u8DiscoveryCacheListCount
is the number of discovery cache entries reported in this response (throughpDiscoveryCacheList
).pRoutingTableList
is a pointer to the first entry in the list of reported discovery cache entries. Each entry is of the typeZPS_tsAplDiscoveryCache
detailed below.
ZPS_tsAplDiscoveryCache
typedef struct {
uint64 u64ExtendedAddress;
uint16 u16NwkAddress;
} ZPS_tsAplDiscoveryCache;
where:
u64ExtendedAddress
is the IEEE address of the End Device.u16NwkAddress
is the network address of the End Device.
Parent topic:ZPS_tsAplZdpMgmtCacheRsp
Parent topic:ZDP response structures
ZPS_tsAplZdpMgmtNwkUpdateNotify
This structure is used to store Mgmt_NWK_Update_notify message data - a notification which can be sent in response to a call to the function ZPS_eAplZdpMgmtNwkUpdateRequest(). This notification reports the results of an energy scan on the wireless network radio channels.
The ZPS_tsAplZdpMgmtNwkUpdateNotify
structure is detailed below.
Sample Codeblock:
typedef struct {
uint8 u8Status;
uint32 u32ScannedChannels;
uint16 u16TotalTransmissions;
uint16 u16TransmissionFailures;
uint8 u8ScannedChannelListCount;
/* Rest of the message is variable Length */
uint8* u8EnergyValuesList;
} ZPS_tsAplZdpMgmtNwkUpdateNotify;
where:
u8Status
is the return status for ZPS_eAplZdpMgmtNwkUpdateRequest()u32ScannedChannels
is a bitmask of the set of scanned radio channels (‘1’ means scanned, ‘0’ means not scanned):Bits 0 to 26 respectively represent channels 0 to 26 (only bits 11 to 26 are relevant to the 2400-MHz band)
Bits 27 to 31 are reserved
u16TotalTransmissions
is the total number of transmissions (from other networks) detected during the scanu16TransmissionFailures
is the number of failed transmissions detected during the scanu8ScannedChannelListCount
is the number of energy-level measurements (one per scanned channel) reported in this notification (throughu8EnergyValuesList
)u8EnergyValuesList
is a pointer to the first in the set of reported energy-level measurements (the value 0xFF indicates there is too much interference on the channel)
Parent topic:ZDP response structures
ZPS_tsAplZdpParentAnnceRsp
This structure is used to store the data for a response to a Parent Announcement message that was sent using the function ZPS_eAplZdpParentAnnceReq(). This response reports any child nodes of the responding node that conflict with child nodes specified in the received Parent Announcement message.
The ZPS_tsAplZdpParentAnnceRsp
structure is detailed below.
typedef struct {
uint64* pu64ChildList;
uint8 u8NumberOfChildren;
uint8 u8Status;
} ZPS_tsAplZdpParentAnnceRsp;
where:
pu64ChildList
is a pointer to a list of 64-bit IEEE/MAC addresses of the child nodes in common.u8NumberOfChildren
is the number of child nodes in common.u8Status
is the status of the response.
Parent topic:ZDP response structures
Parent topic:ZDP structures
Parent topic:ZigBee Device Profile (ZDP) API