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

  1. ZPS_tsAplZdpNwkAddrReq

  2. ZPS_tsAplZdpIEEEAddrReq

  3. ZPS_tsAplZdpDeviceAnnceReq

    Service Discovery Request Structures

  4. ZPS_tsAplZdpNodeDescReq

  5. ZPS_tsAplZdpPowerDescReq

  6. ZPS_tsAplZdpSimpleDescReq

  7. ZPS_tsAplZdpExtendedSimpleDescReq

  8. ZPS_tsAplZdpComplexDescReq

  9. ZPS_tsAplZdpUserDescReq

  10. ZPS_tsAplZdpMatchDescReq

  11. ZPS_tsAplZdpActiveEpReq

  12. ZPS_tsAplZdpExtendedActiveEpReq

  13. ZPS_tsAplZdpUserDescSet

  14. ZPS_tsAplZdpSystemServerDiscoveryReq

  15. ZPS_tsAplZdpDiscoveryCacheReq

  16. ZPS_tsAplZdpDiscoveryStoreReq

  17. ZPS_tsAplZdpNodeDescStoreReq

  18. ZPS_tsAplZdpPowerDescStoreReq

  19. ZPS_tsAplZdpSimpleDescStoreReq

  20. ZPS_tsAplZdpActiveEpStoreReq

  21. ZPS_tsAplZdpFindNodeCacheReq

  22. ZPS_tsAplZdpRemoveNodeCacheReq

    Binding Request Structures

  23. ZPS_tsAplZdpEndDeviceBindReq

  24. ZPS_tsAplZdpBindUnbindReq

  25. ZPS_tsAplZdpBindUnbindReq

  26. ZPS_tsAplZdpBindRegisterReq

  27. ZPS_tsAplZdpReplaceDeviceReq

  28. ZPS_tsAplZdpStoreBkupBindEntryReq

  29. ZPS_tsAplZdpRemoveBkupBindEntryReq

  30. ZPS_tsAplZdpBackupBindTableReq

  31. ZPS_tsAplZdpRecoverBindTableReq

  32. ZPS_tsAplZdpBackupSourceBindReq

  33. ZPS_tsAplZdpRecoverSourceBindReq

    Network Management Services Request Structures

  34. ZPS_tsAplZdpMgmtNwkDiscReq

  35. ZPS_tsAplZdpMgmtLqiReq

  36. ZPS_tsAplZdpMgmtRtgReq

  37. ZPS_tsAplZdpMgmtBindReq

  38. ZPS_tsAplZdpMgmtLeaveReq

  39. ZPS_tsAplZdpMgmtDirectJoinReq

  40. ZPS_tsAplZdpMgmtPermitJoiningReq

  41. ZPS_tsAplZdpMgmtCacheReq

  42. ZPS_tsAplZdpMgmtNwkUpdateReq

  43. ZPS_tsAplZdpParentAnnceReq

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_tsAplZdpNwkAddrReqstructure 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_tsAplZdpIEEEAddrReqstructure is detailed below.

typedef struct {

uint16 u16NwkAddrOfInterest; uint8 u8RequestType;

uint8 u8StartIndex;

} ZPS_tsAplZdpIEEEAddrReq;

where:

  • u16NwkAddrOfInterestis the network address of the node of interest

  • u8RequestTypeis 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

  • u8StartIndexis 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_tsAplZdpDeviceAnnceReqstructure is detailed below.

typedef struct { uint16 u16NwkAddr; uint64 u64IeeeAddr;

uint8 u8Capability;

} ZPS_tsAplZdpDeviceAnnceReq;

where:

  • u16NwkAddris the network address of the sending node

  • u64IeeeAddris the IEEE address of the sending node

  • u8Capabilityis 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_tsAplZdpNodeDescReqstructure is detailed below.

typedef struct {

uint16 u16NwkAddrOfInterest;

} ZPS_tsAplZdpNodeDescReq;

where u16NwkAddrOfInterestis 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_tsAplZdpPowerDescReqstructure is detailed below.

typedef struct {

uint16 u16NwkAddrOfInterest;

} ZPS_tsAplZdpPowerDescReq;

where u16NwkAddrOfInterestis 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_tsAplZdpSimpleDescReqstructure is detailed below.

typedef struct {
    uint16 u16NwkAddrOfInterest;
    uint8 u8EndPoint;
} ZPS_tsAplZdpSimpleDescReq;

where:

  • u16NwkAddrOfInterestis the network address of the node of interest.

  • u8EndPointis 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_tsAplZdpExtendedSimpleDescReqstructure is detailed below.

typedef struct { uint16 u16NwkAddr; uint8 u8EndPoint;

uint8 u8StartIndex;

} ZPS_tsAplZdpExtendedSimpleDescReq;

where:

  • u16NwkAddrOfInterestis the network address of the node of interest

  • u8EndPointis the number of the relevant endpoint on the node (1-240)

  • u8StartIndexis 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_tsAplZdpComplexDescReqstructure is detailed below.

typedef struct {

uint16 u16NwkAddrOfInterest;

} ZPS_tsAplZdpComplexDescReq;

where u16NwkAddrOfInterestis 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_tsAplZdpUserDescReqstructure is detailed below.

typedef struct {

uint16 u16NwkAddrOfInterest;

} ZPS_tsAplZdpUserDescReq;

where u16NwkAddrOfInterestis 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_tsAplZdpMatchDescReqstructure 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:

  • u16NwkAddrOfInterestis the network address of the node of interest

  • u16ProfileIdis the identifier of the ZigBee application profile used

  • u8NumInClustersis the number of input clusters to be matched

  • pu16InClusterListis 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 cluster

  • u8NumOutClustersis the number of output clusters to be matched

  • pu16OutClusterListis 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_tsAplZdpActiveEpReqstructure is detailed below.

typedef struct {

uint16 u16NwkAddrOfInterest;

} ZPS_tsAplZdpActiveEpReq;

where u16NwkAddrOfInterestis 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_tsAplZdpExtendedActiveEpReqstructure is detailed below.

typedef struct { uint16 u16NwkAddr;

uint8 u8StartIndex;

} ZPS_tsAplZdpExtendedActiveEpReq;

where:

  • u16NwkAddris the network address of the node of interest

  • u8StartIndexis 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_tsAplZdpUserDescSetstructure is detailed below.

typedef struct {

uint16 u16NwkAddrOfInterest; uint8 u8Length;

char szUserDescriptor[ZPS_ZDP_LENGTH_OF_USER_DESC];

} ZPS_tsAplZdpUserDescSet;

where:

  • u16NwkAddrOfInterestis the network address of the node of interest

  • u8Lengthis the length of the User descriptor

  • szUserDescriptoris 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_tsAplZdpSystemServerDiscoveryReqstructure is detailed below.

typedef struct {
uint16 u16ServerMask;
} ZPS_tsAplZdpSystemServerDiscoveryReq;

where u16ServerMaskis 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_tsAplZdpDiscoveryCacheReqstructure is detailed below.

typedef struct { uint16 u16NwkAddr; uint64 u64IeeeAddr;

} ZPS_tsAplZdpDiscoveryCacheReq;

where:

  • u16NwkAddris the network address of the sending node

  • u64IeeeAddris 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_tsAplZdpDiscoveryStoreReqstructure 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:

  • u16NwkAddris the network address of the sending node

  • u64IeeeAddris the IEEE address of the sending node

  • u8NodeDescSizeis the size of the Node descriptor to store

  • u8PowerDescSizeis the size of the Power descriptor to store

  • u8ActiveEpSizeis the size of the list of active endpoints to store

  • u8SimpleDescCountis the number of Simple descriptors to store

  • pu8SimpleDescSizeListis 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_tsAplZdpNodeDescStoreReqstructure is detailed below.

typedef struct { uint16 u16NwkAddr; uint64 u64IeeeAddr;

/* Rest of message is variable length */ ZPS_tsAplZdpNodeDescriptor sNodeDescriptor;

} ZPS_tsAplZdpNodeDescStoreReq;

where:

  • u16NwkAddris the network address of the sending node

  • u64IeeeAddris the IEEE address of the sending node

  • sNodeDescriptoris a pointer to the Node descriptor to store (this is itself a structure of the type ZPS_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_tsAplZdpPowerDescStoreReqstructure is detailed below.

typedef struct { uint16 u16NwkAddr; uint64 u64IeeeAddr;

/* Rest of message is variable length */ ZPS_tsAplZdpNodePowerDescriptor sPowerDescriptor;

} ZPS_tsAplZdpPowerDescStoreReq;

where:

  • u16NwkAddris the network address of the sending node

  • u64IeeeAddris the IEEE address of the sending node

  • sPowerDescriptoris a pointer to the Power descriptor to store (this is itself a structure of the type ZPS_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_tsAplZdpSimpleDescStoreReqstructure is detailed below.

typedef struct { uint16 u16NwkAddr; uint64 u64IeeeAddr; uint8 u8Length;

/* Rest of message is variable length */ ZPS_tsAplZdpSimpleDescType sSimpleDescriptor;

} ZPS_tsAplZdpSimpleDescStoreReq;

where:

  • u16NwkAddris the network address of the sending node

  • u64IeeeAddris the IEEE address of the sending node

  • u8Lengthis the length of the Simple descriptor to store

  • sSimpleDescriptoris a pointer to the Simple descriptor to store (this is itself a structure of the type ZPS_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_tsAplZdpActiveEpStoreReqstructure is detailed below.

typedef struct { uint16 u16NwkAddr; uint64 u64IeeeAddr;

uint8 u8ActiveEPCount;

/* Rest of message is variable length */ uint8* pu8ActiveEpList;

} ZPS_tsAplZdpActiveEpStoreReq;

where:

  • u16NwkAddris the network address of the sending node

  • u64IeeeAddris the IEEE address of the sending node

  • u8ActiveEPCountis the number of active endpoints in the list to store

  • pu8ActiveEpListis 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_tsAplZdpFindNodeCacheReqstructure is detailed below.

typedef struct { uint16 u16NwkAddr; uint64 u64IeeeAddr;
} ZPS_tsAplZdpFindNodeCacheReq;

where:

  • u16NwkAddris the network address of the node of interest

  • u64IeeeAddris 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_tsAplZdpRemoveNodeCacheReqstructure is detailed below.

typedef struct { uint16 u16NwkAddr; uint64 u64IeeeAddr;
} ZPS_tsAplZdpRemoveNodeCacheReq;

where:

  • u16NwkAddris the network address of the End Device of interest

  • u64IeeeAddris 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_tsAplZdpEndDeviceBindReqstructure 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:

  • u16BindingTargetis the network address of the node to hold the binding (either a node with primary binding table cache or the local node).

  • u64SrcIeeeAddressis the IEEE address of the local node.

  • u8SrcEndpointis the number of the local endpoint to be bound (1-240).

  • u16ProfileIdis the application profile ID to be matched for the binding.

  • u8NumInClustersis the number of input clusters of the local endpoint (available for matching with output clusters of remote node to be bound).

  • pu16InClusterListis a pointer to the input cluster list of the local endpoint (containing clusters for matching with output clusters of remote node).

  • u8NumOutClustersis the number of output clusters of the local endpoint (available for matching with input clusters of remote node to be bound).

  • pu16OutClusterListis 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_tsAplZdpBindUnbindReqstructure 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:

  • u64SrcAddressis the IEEE address of the source node for the binding

  • u8SrcEndpointis the number of the source endpoint for the binding (1-240)

  • u16ClusterIdis the ID of the cluster (on the local endpoint) for the binding

  • u8DstAddrModeis the destination addressing mode (see Table 14 below):

    • ZPS_E_ADDR_MODE_SHORT: network address (u8DstEndPointis unspecified)

    • ZPS_E_ADDR_MODE_IEEE: IEEE address (u8DstEndPointis specified)

    • All other values are reserved

  • u16DstAddressor u64DstAddressis the address of the destination node for the binding:

    • network address u16DstAddressif u8DstAddrModeis set to ZPS_E_ADDR_MODE_SHORT

    • IEEE address u64DstAddressif 8DstAddrModeis set to ZPS_E_ADDR_MODE_IEEE

  • u8DstEndPointis the number of the destination endpoint for the binding

(1-240) - not required if u8DstAddrModeset 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_tsAplZdpBindRegisterReqstructure is detailed below.

typedef struct {

uint64 u64NodeAddress;

} ZPS_tsAplZdpBindRegisterReq;

where u64NodeAddressis 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_tsAplZdpReplaceDeviceReqstructure is detailed below.

typedef struct {

uint64 u64OldAddress; uint8 u8OldEndPoint; uint64 u64NewAddress; uint8 u8NewEndPoint;

} ZPS_tsAplZdpReplaceDeviceReq;

where:

  • u64OldAddressis the IEEE address to be replaced

  • u8OldEndPointis the endpoint number to be replaced

(0-240, where 0 indicates that the endpoint number is not to be replaced)

  • u64NewAddressis the replacement IEEE address

  • u8NewEndPointis 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_tsAplZdpStoreBkupBindEntryReqstructure 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:

  • u64SrcAddressis the IEEE address of the source node for the binding entry

  • u8SrcEndpointis the number of the source endpoint for the binding (1-240)

  • u16ClusterIdis the ID of the cluster (on the local endpoint) for the binding

  • u8DstAddrModeis the destination addressing mode for remaining elements (see Table 15 below)

  • u16DstAddressis the address of the destination node for the binding (address type according to setting of u8DstAddrMode)

  • u8DstEndPointis 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_tsAplZdpRemoveBkupBindEntryReqstructure 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:

  • u64SrcAddressis the IEEE address of the source node for the binding entry.

  • u8SrcEndpointis the number of the source endpoint for the binding (1-240).

  • u16ClusterIdis the ID of the cluster (on the local endpoint) for the binding.

  • u8DstAddrModeis the destination addressing mode for remaining elements (see the Table below) .

  • u16DstAddressis the address the destination node for the binding (address type according to setting of u8DstAddrMode).

  • u8DstEndPointis 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_tsAplZdpBackupBindTableReqstructure is detailed below.

typedef struct {
    uint16 u16BindingTableEntries;
    uint16 u16StartIndex;
    uint16 u16BindingTableListCount;
    /* Rest of message is variable length */
    ZPS_tsAplZdpBindingTable sBindingTable;
} ZPS_tsAplZdpBackupBindTableReq;

where:

  • u16BindingTableEntriesis the total number of entries in the primary binding table cache.

  • u16StartIndexis the binding table index of the first entry to be backed up.

  • u16BindingTableListCountis the number of binding table entries in the list to be backed up (sBindingTable).

  • sBindingTableis a pointer to the list of binding table entries to be backed up. Each list item is of the type ZPS_tsAplZdpBindingTabledetailed below:

ZPS_tsAplZdpBindingTable

typedef struct
{
uint64 u64SourceAddress;
ZPS_tsAplZdpBindingTableEntry* psBindingTableEntryForSpSrcAddr;
}ZPS_tsAplZdpBindingTable;

where:

  • u64SourceAddressis the IEEE source address for the binding table entry.

  • psBindingTableEntryForSpSrcAddris the binding table entry. This is of the type ZPS_tsAplZdpBindingTableEntrydetailed 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:

  • u16ClusterIdis the ID of the cluster (on the local endpoint) for the binding

  • u8SrcEndpointis the number of the source endpoint for the binding (1-240)

  • u8DstAddrModeis the destination addressing mode for remaining elements (see Table below)

  • u16DstAddressis the address the destination node for the binding (address type according to setting of u8DstAddrMode)

  • u8DstEndPointis 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_tsAplZdpRecoverBindTableReqstructure is detailed below.

typedef struct {
uint16 u16StartIndex;
} ZPS_tsAplZdpRecoverBindTableReq;

where u16StartIndexis 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_tsAplZdpBackupSourceBindReqstructure is detailed below.

typedef struct {
  uint16 u16SourceTableEntries;
  uint16 u16StartIndex;
  uint16 u16SourceTableListCount;
  /* Rest of message is variable length */
  uint64* pu64SourceAddress;
} ZPS_tsAplZdpBackupSourceBindReq;

where:

  • u16SourceTableEntriesis the total number of entries in the source binding table.

  • u16StartIndexis the binding table index of the first entry to be backed up.

  • u16SourceTableListCountis the number of binding table entries in the list to be backed up (pu64SourceAddress).

  • pu64SourceAddressis 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_tsAplZdpRecoverSourceBindReqstructure is detailed below.

typedef struct {
uint16 u16StartIndex;
} ZPS_tsAplZdpRecoverSourceBindReq;

where u16StartIndexis 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_tsAplZdpMgmtNwkDiscReqstructure is detailed below.

typedef struct {
 uint32 u32ScanChannels;
 uint8 u8ScanDuration;
 uint8 u8StartIndex;
} ZPS_tsAplZdpMgmtNwkDiscReq;

where:

  • u32ScanChannelsis 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

  • u8ScanDurationis a value in the range 0x00 to 0x0E that determines the time spent scanning each channel - this time is proportional to 2u8ScanDuration+1

  • u8StartIndexis 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_tsAplZdpMgmtLqiReqstructure is detailed below.

typedef struct {
uint8 u8StartIndex;
} ZPS_tsAplZdpMgmtLqiReq;

where u8StartIndexis 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_tsAplZdpMgmtRtgReqstructure is detailed below.

typedef struct {
uint8 u8StartIndex;
} ZPS_tsAplZdpMgmtRtgReq;

where u8StartIndexis 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_tsAplZdpMgmtBindReqstructure is detailed below.

typedef struct {
    uint8 u8StartIndex;
} ZPS_tsAplZdpMgmtBindReq;

where u8StartIndexis 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_tsAplZdpMgmtLeaveReqstructure is detailed below.

typedef struct {
    uint64 u64DeviceAddress;
    uint8 u8Flags;
} ZPS_tsAplZdpMgmtLeaveReq;

where:

  • u64DeviceAddressis the IEEE address of the device being asked to leave the network.

  • u8Flagsis 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_tsAplZdpMgmtDirectJoinReqstructure is detailed below.

typedef struct { uint64 u64DeviceAddress; uint8 u8Capability; } ZPS_tsAplZdpMgmtDirectJoinReq;

where:

  • u64DeviceAddressis the IEEE address of the device to be allowed to join

  • u8Capabilityis 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_tsAplZdpMgmtPermitJoiningReqstructure is detailed below.

typedef struct {

uint8 u8PermitDuration; bool_t bTcSignificance;

} ZPS_tsAplZdpMgmtPermitJoiningReq;

where:

  • u8PermitDurationis the time period, in seconds, during which joining will be allowed (0x00 means that joining is enabled or disabled with no time limit)

  • bTcSignificancedetermines 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_tsAplZdpMgmtCacheReqstructure is detailed below.

typedef struct {

uint8 u8StartIndex;

} ZPS_tsAplZdpMgmtCacheReq;

where u8StartIndexis 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_tsAplZdpMgmtNwkUpdateReqstructure is detailed below.

typedef struct {

uint32 u32ScanChannels; uint8 u8ScanDuration; uint8 u8ScanCount; uint8 u8NwkUpdateId;

uint16 u16NwkManagerAddr;

} ZPS_tsAplZdpMgmtNwkUpdateReq;

where:

  • u32ScanChannelsis 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

  • u8ScanDurationis 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 2u8ScanDuration+1. The set of channels to scan is specified through

u32ScanChannelsand 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 u32ScanChannelsand that network manager address to be set to that specified through u16NwkManagerAddr. Valid for broadcasts only

  • 0xFF: Indicates that stored radio channel mask to be updated with that specified through u32ScanChannels(but scan not required). Valid for broadcasts only.

  • u8ScanCountis the number of energy scans to be conducted and reported. Valid only if a scan has been enabled through u8ScanDuration(0x00-0x05)

  • u8NwkUpdateIdis a value set by the Network Channel Manager before the request is sent. Valid only if u8ScanDurationset to 0xFE or 0xFF

  • u16NwkManagerAddris the 16-bit network address of the Network Manager (node nominated to manage radio-band operation of network). Valid only if u8ScanDurationset 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_tsAplZdpParentAnnceReqstructure is detailed below.

typedef struct {

uint8 u8NumberOfChildren; uint64* pu64ChildList;

} ZPS_tsAplZdpParentAnnceReq;

where:

  • u8NumberOfChildrenis the number of child nodes

  • pu64ChildListis 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