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