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.

  1. ZPS_tsAplZdpNwkAddrRsp

  2. ZPS_tsAplZdpIeeeAddrRsp

    Service Discovery Response Structures

  3. ZPS_tsAplZdpNodeDescRsp

  4. ZPS_tsAplZdpPowerDescRsp

  5. ZPS_tsAplZdpSimpleDescRsp

  6. ZPS_tsAplZdpExtendedSimpleDescRsp

  7. ZPS_tsAplZdpComplexDescRsp

  8. ZPS_tsAplZdpUserDescRsp

  9. ZPS_tsAplZdpMatchDescRsp

  10. ZPS_tsAplZdpActiveEpRsp

  11. ZPS_tsAplZdpExtendedActiveEpRsp

  12. ZPS_tsAplZdpUserDescConf

  13. ZPS_tsAplZdpSystemServerDiscoveryRsp

  14. ZPS_tsAplZdpDiscoveryCacheRsp

  15. ZPS_tsAplZdpDiscoveryStoreRsp

  16. ZPS_tsAplZdpNodeDescStoreRsp

  17. ZPS_tsAplZdpPowerDescStoreRsp

  18. ZPS_tsAplZdpSimpleDescStoreRsp

  19. ZPS_tsAplZdpActiveEpStoreRsp

  20. ZPS_tsAplZdpFindNodeCacheRsp

  21. ZPS_tsAplZdpRemoveNodeCacheRsp

    Binding Response Structures

  22. ZPS_tsAplZdpEndDeviceBindRsp

  23. ZPS_tsAplZdpBindRsp

  24. ZPS_tsAplZdpUnbindRsp

  25. ZPS_tsAplZdpBindRegisterRsp

  26. ZPS_tsAplZdpReplaceDeviceRsp

  27. ZPS_tsAplZdpStoreBkupBindEntryRsp

  28. ZPS_tsAplZdpRemoveBkupBindEntryRsp

  29. ZPS_tsAplZdpBackupBindTableRsp

  30. ZPS_tsAplZdpRecoverBindTableRsp

  31. ZPS_tsAplZdpBackupSourceBindRsp

  32. ZPS_tsAplZdpRecoverSourceBindRsp

    Network Management Services Response Structures

  33. ZPS_tsAplZdpMgmtNwkDiscRsp

  34. ZPS_tsAplZdpMgmtLqiRsp

  35. ZPS_tsAplZdpMgmtRtgRsp

  36. ZPS_tsAplZdpMgmtBindRsp

  37. ZPS_tsAplZdpMgmtLeaveRsp

  38. ZPS_tsAplZdpMgmtDirectJoinRsp

  39. ZPS_tsAplZdpMgmtPermitJoiningRsp

  40. ZPS_tsAplZdpMgmtCacheRsp

  41. ZPS_tsAplZdpMgmtNwkUpdateNotify

  42. ZPS_tsAplZdpParentAnnceRsp

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_tsAplZdpNwkAddrRspstructure 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:

  • u8Statusis the return status for ZPS_eAplZdpNwkAddrRequest()

  • u64IeeeAddrRemoteDevis the IEEE address of the remote node that sent the response (this is the IEEE address specified in the original request)

  • u16NwkAddrRemoteDevis the network address of the remote node that sent the response (this is the network address that was requested)

  • u8NumAssocDevis the number of neighboring nodes for which network addresses are also being reported (in the remainder of the structure)

  • u8StartIndexis 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 element u8NumAssocDevis 0.

  • pNwkAddrAssocDevListis 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 element u8NumAssocDevis 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_tsAplZdpIeeeAddrRspstructure 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:

  • u8Statusis the return status for ZPS_eAplZdpIeeeAddrRequest().

  • u64IeeeAddrRemoteDevis the IEEE address of the remote node that sent the response (this is the IEEE address that was requested).

  • u16NwkAddrRemoteDevis the network address of the remote node that sent the response (this is the network address specified in the original request).

  • u8NumAssocDevis the number of neighboring nodes for which network addresses are also being reported (in the remainder of the structure).

  • u8StartIndexis 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 element u8NumAssocDevis 0.

  • pNwkAddrAssocDevListis 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 element u8NumAssocDevis 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_tsAplZdpNodeDescRspstructure is detailed below.

typedef struct {
    uint8     u8Status;
    uint16    u16NwkAddrOfInterest;
    /* Rest of the message is variable length */
    ZPS_tsAplZdpNodeDescriptor tsNodeDescriptor;
} ZPS_tsAplZdpNodeDescRsp;

where:

  • u8Statusis the return status for ZPS_eAplZdpNodeDescRequest().

  • u16NwkAddrOfInterestis the network address of the remote node that sent the response (this is the network address that was specified in the request).

  • tsNodeDescriptoris the returned Node descriptor, a structure of type ZPS_tsAplZdpNodeDescriptor(detailed in Section 9.2.1.1). This is only included if u8Statusreports 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_tsAplZdpPowerDescRspstructure is detailed below.

typedef struct {
    uint8 u8Status;
    uint16 u16NwkAddrOfInterest;
    /* Rest of the message is variable length */
    ZPS_tsAplZdpNodePowerDescriptor sPowerDescriptor;
} ZPS_tsAplZdpPowerDescRsp;

where:

  • u8Statusis the return status for ZPS_eAplZdpPowerDescRequest()

  • u16NwkAddrOfInterestis the network address of the remote node that sent the response (this is the network address that was specified in the request)

  • sPowerDescriptoris the returned Power descriptor, a structure of type ZPS_tsAplZdpNodePowerDescriptor(detailed in Section 9.2.1.2). This is only included if u8Statusreports 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_tsAplZdpSimpleDescRspstructure is detailed below.

typedef struct {
    uint8 u8Status;
    uint16 u16NwkAddrOfInterest;
    uint8 u8Length;
    /* Rest of the message is variable length */
    ZPS_tsAplZdpSimpleDescType sSimpleDescriptor;
} ZPS_tsAplZdpSimpleDescRsp;

where:

  • u8Statusis the return status for ZPS_eAplZdpSimpleDescRequest().

  • u16NwkAddrOfInterestis the network address of the remote node that sent the response (this is the network address that was specified in the request).

  • u8Lengthis the length of the returned Simple descriptor, in bytes (depends on the number of clusters supported by the endpoint).

  • sSimpleDescriptoris the returned Simple descriptor, a structure of type ZPS_tsAplZdpSimpleDescType(detailed in Section 9.2.1.3). This is only included if u8Statusreports 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_tsAplZdpExtendedSimpleDescRspstructure 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:

  • u8Statusis the return status for ZPS_eAplZdpExtendedSimpleDescRequest()

  • u16NwkAddris the network address of the remote node that sent the response (this is the network address that was specified in the request)

  • u8EndPointis the number of the endpoint for which the response was sent (this is the endpoint number that was specified in the request)

  • u8AppInputClusterCountis the total number of input clusters in the endpoint’s complete input cluster list

  • u8AppOutputClusterCountis the total number of output clusters in the endpoint’s complete output cluster list

  • u8StartIndexis the index, in the endpoint’s complete input or output cluster list, of the first cluster reported in this response

  • pAppClusterListis a pointer to the reported cluster list, input clusters first then output clusters. This is only included if u8Statusreports 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_tsAplZdpComplexDescRspstructure is detailed below.

typedef struct {
        uint8 u8Status;
        uint16 u16NwkAddrOfInterest;
        uint8 u8Length;
        /* Rest of the message is variable Length */
        ZPS_tsAplZdpComplexDescElement sComplexDescriptor;
} ZPS_tsAplZdpComplexDescRsp;

where:

  • u8Statusis the return status for ZPS_eAplZdpComplexDescRequest().

  • u16NwkAddrOfInterestis the network address of the remote node that sent the response (this is the network address that was specified in the request).

  • u8Lengthis the length of the returned Complex descriptor, in bytes.

  • sComplexDescriptoris the returned Complex descriptor, a structure of type. ZPS_tsAplZdpComplexDescRsp(described below). This is only included if u8Statusreports success .

ZPS_tsAplZdpComplexDescElement

typedef struct { uint8 u8XMLTag;
        uint8 u8FieldCount;
        uint8 *pu8Data;
} ZPS_tsAplZdpComplexDescElement;

where:

  • u8XMLTagis the XML tag for the current field.

  • u8FieldCountis the number of fields in the Complex descriptor.

  • *pu8Datais 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_tsAplZdpUserDescRspstructure 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:

  • u8Statusis the return status for ZPS_eAplZdpUserDescRequest().

  • u16NwkAddrOfInterestis the network address of the remote node that sent the response (this is the network address that was specified in the request).

  • u8Lengthis the length of the returned User descriptor, in bytes (maximum: 16).

  • szUserDescriptoris the returned User descriptor as a character array. This is only included if u8Statusreports 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_tsAplZdpMatchDescRspstructure is detailed below.

typedef struct {
        uint8 u8Status;
        uint16 u16NwkAddrOfInterest;
        uint8 u8MatchLength;
        /* Rest of message is variable length */
        uint8* u8MatchList;
} ZPS_tsAplZdpMatchDescRsp;

where:

  • u8Statusis the return status for ZPS_eAplZdpMatchDescRequest().

  • u16NwkAddrOfInterestis the network address of the remote node that sent the response (this is the network address that was specified in the request).

  • u8MatchLengthis the length of the list of matched endpoints, in bytes.

  • u8MatchListis 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_tsAplZdpActiveEpRspstructure is detailed below.

typedef struct {
    uint8 u8Status;
    uint16 u16NwkAddrOfInterest;
    uint8 u8ActiveEpCount;
    /* Rest of the message is variable */
    uint8* pActiveEpList;
} ZPS_tsAplZdpActiveEpRsp;

where:

  • u8Statusis the return status for ZPS_eAplZdpActiveEpRequest().

  • u16NwkAddrOfInterestis the network address of the remote node that sent the response (this is the network address that was specified in the request).

  • u8ActiveEpCountis the number of active endpoints on the node.

  • pActiveEpListis 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_tsAplZdpExtendedActiveEpRspstructure 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:

  • u8Statusis the return status for ZPS_eAplZdpExtendedActiveEpRequest().

  • 16NwkAddris the network address of the remote node that sent the response (this is the network address that was specified in the request).

  • u8ActiveEpCountis the total number of active endpoints on the node.

  • u8StartIndexis the index, in the node’s list of active endpoints, of the first endpoint reported in this response.

  • pActiveEpListis a pointer to the reported list of active endpoints (starting with the endpoint with index u8StartIndex).

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

typedef struct {
        uint8 u8Status;
        uint16 u16NwkAddrOfInterest;
} ZPS_tsAplZdpUserDescConf;

where:

  • u8Statusis the return status for ZPS_eAplZdpUserDescSetRequest().

  • u16NwkAddrOfInterestis 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_tsAplZdpSystemServerDiscoveryRspstructure is detailed below.

typedef struct {
    uint8 u8Status;
    uint16 u16ServerMask;
} ZPS_tsAplZdpSystemServerDiscoveryRsp;

where:

  • u8Statusis the return status for the function ZPS_eAplZdpSystemServerDiscoveryRequest().

  • u16ServerMaskis 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_tsAplZdpDiscoveryCacheRspstructure is detailed below.

typedef struct {
    uint8 u8Status;
} ZPS_tsAplZdpDiscoveryCacheRsp;

where u8Statusis 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_tsAplZdpDiscoveryStoreRspstructure is detailed below.

typedef struct {
    uint8 u8Status;
} ZPS_tsAplZdpDiscoveryStoreRsp;

where u8Statusis 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_tsAplZdpNodeDescStoreRspstructure is detailed below.

typedef struct {
     uint8 u8Status;
} ZPS_tsAplZdpNodeDescStoreRsp;

where u8Statusis 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_tsAplZdpPowerDescStoreRspstructure is detailed below.

typedef struct {
        uint8 u8Status;
        uint64 u64IeeeAddr;
        /* Rest of message is variable length */
        ZPS_tsAplZdpNodePowerDescriptor sPowerDescriptor;
} ZPS_tsAplZdpPowerDescStoreRsp;

where:

  • u8Statusis the return status for ZPS_eAplZdpPowerDescStoreRequest().

  • u64IeeeAddris the IEEE/MAC address of the device whose Power descriptor has been stored in the primary discovery cache.

  • sPowerDescriptoris 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_tsAplZdpSimpleDescStoreRspstructure is detailed below.

typedef struct {
    uint8 u8Status;
} ZPS_tsAplZdpSimpleDescStoreRsp;

where u8Statusis 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_tsAplZdpActiveEpStoreRspstructure is detailed below.

typedef struct {
    uint8 u8Status;
} ZPS_tsAplZdpActiveEpStoreRsp;

where u8Statusis 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_tsAplZdpFindNodeCacheRspstructure is detailed below.

typedef struct {
    uint16 u16CacheNwkAddr;
    uint16 u16NwkAddr;
    uint64 u64IeeeAddr;
} ZPS_tsAplZdpFindNodeCacheRsp;

where:

  • u16CacheNwkAddris the network address of the remote node that sent the response.

  • u16NwkAddris the network address of the node of interest (this is the network address that was specified in the request).

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

typedef struct {
     uint8 u8Status;
} ZPS_tsAplZdpRemoveNodeCacheRsp;

where u8Statusis 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_tsAplZdpEndDeviceBindRspstructure is detailed below.

typedef struct {
    uint8 u8Status;
} ZPS_tsAplZdpEndDeviceBindRsp;

where u8Statusis 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_tsAplZdpBindRspstructure is detailed below.

typedef struct {
    uint8 u8Status;
} ZPS_tsAplZdpBindRsp;

where u8Statusis 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_tsAplZdpUnbindRspstructure is detailed below.

typedef struct {
    uint8 u8Status;
} ZPS_tsAplZdpUnbindRsp;

where u8Statusis 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_tsAplZdpBindRegisterRspstructure is detailed below.

typedef struct {
    uint8 u8Status;
    uint16 u16BindingTableEntries;
    uint16 u16BindingTableListCount;
    /* Rest of the message is variable Length */
    ZPS_tsAplZdpBindingTable sBindingTableList;
} ZPS_tsAplZdpBindRegisterRsp;

where:

  • u8Statusis the return status for ZPS_eAplZdpBindRegisterRequest().

  • u16BindingTableEntriesis the total number of binding table entries concerning the requesting node held on the responding node.

  • u16BindingTableListCountis the number of binding table entries concerning the requesting node contained in this response.

  • sBindingTableListis a pointer to the first item in the list of reported binding table entries. A list item is of type ZPS_tsAplZdpBindingTabledetailed below.

ZPS_tsAplZdpBindingTable

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

where:

  • u64SourceAddressis the IEEE address of the node to which the binding table entry relates.

  • psBindingTableEntryForSpSrcAddris a pointer to the relevant binding table information. This information is contained in a structure of type ZPS_tsAplZdpBindingTableEntrydetailed 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:

  • u8SourceEndpointis the number of the bound endpoint (1-240) on the source node of the binding

  • u16ClusterIdis the ID of the cluster involved in the binding, on the source node of the binding

  • u8DstAddrModeis the addressing mode used in the rest of the structure (see Table 19 below)

  • u16DstAddressis the network address of the destination node of the binding (this is only application if u8DstAddrModeis set to 0x03)

  • u64DstAddressis the IEEE address of the destination node of the binding (this is only application if u8DstAddrModeis set to 0x04)

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

typedef struct {
    uint8 u8Status;
} ZPS_tsAplZdpReplaceDeviceRsp;

where u8Statusis 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_tsAplZdpStoreBkupBindEntryRspstructure is detailed below.

typedef struct {
    uint8 u8Status;
} ZPS_tsAplZdpStoreBkupBindEntryRsp;

where u8Statusis 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_tsAplZdpRemoveBkupBindEntryRspstructure is detailed below.

typedef struct {
    uint8 u8Status;
} ZPS_tsAplZdpRemoveBkupBindEntryRsp;

where u8Statusis 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_tsAplZdpBackupBindTableRspstructure is detailed below.

typedef struct {
    uint8 u8Status;
    uint16 u16EntryCount;
} ZPS_tsAplZdpBackupBindTableRsp;

where:

  • u8Statusis the return status for ZPS_eAplZdpBackupBindTableRequest()

  • u16EntryCountis 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_tsAplZdpRecoverBindTableRspstructure 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:

  • u8Statusis the return status for ZPS_eAplZdpRecoverBindTableRequest()

  • u16StartIndexis the binding table index of the first entry in the set of recovered binding table entries (sBindingTableList)

  • u16BindingTableEntriesis the total number of entries in the back-up binding table cache

  • u16BindingTableListCountis the number of entries in the set of recovered binding table entries (sBindingTableList)

  • sBindingTableListis a pointer to the first item in the list of recovered binding table entries. A list item is of type ZPS_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_tsAplZdpBackupSourceBindRspstructure is detailed below.

typedef struct {
    uint8 u8Status;
} ZPS_tsAplZdpBackupSourceBindRsp;

where u8Statusis 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_tsAplZdpRecoverSourceBindRspstructure 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:

  • u8Statusis the return status for the function ZPS_eAplZdpRecoverSourceBindRequest().

  • u16StartIndexis the binding table index of the first entry in the set of recovered binding table entries (pu64SourceTableList).

  • u16SourceTableEntriesis the total number of source binding table entries in the back-up binding table cache.

  • u16SourceTableListCountis the number of entries in the set of recovered binding table entries. (pu64SourceTableList).

  • pu64SourceTableListis 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_tsAplZdpMgmtNwkDiscRspstructure 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:

  • u8Statusis the return status for ZPS_eAplZdpMgmtNwkDiscRequest()

  • u8NetworkCountis the total number of networks discovered

  • u8StartIndexis the index, in the complete list of discovered networks, of the first network reported in this response (through psNetworkDescrList)

  • u8NetworkListCountis the number of discovered networks reported in this response (through psNetworkDescrList)

  • psNetworkDescrListis a pointer to the first entry in a list of network descriptors for the discovered networks. Each entry is of the type ZPS_tsAplZdpNetworkDescrdetailed below.

    ZPS_tsAplZdpNetworkDescr

    
    typedef struct
    {
        uint64 u64ExtPanId;
        uint8 u8LogicalChan;
        uint8 u8StackProfile;
        uint8 u8ZigBeeVersion;
        uint8 u8PermitJoining;
        uint8 u8RouterCapacity;
        uint8 u8EndDeviceCapacity;
    } ZPS_tsAplZdpNetworkDescr;
    

    where:

    • u64ExtPanIdis the 64-bit extended PAN ID of the discovered network.

    • u8LogicalChanis 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).

    • u8StackProfileis 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.

    • u8ZigBeeVersionis the 4-bit version of the ZigBee protocol used by the discovered network.

    • u8PermitJoiningindicates 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.

    • u8RouterCapacityindicates whether the device is capable of accepting join requests from Routers - set to TRUE if capable, FALSE otherwise.

    • u8EndDeviceCapacityindicates 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_tsAplZdpMgmtLqiRspstructure 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:

  • u8Statusis the return status for ZPS_eAplZdpMgmtLqiRequest()

  • u8NeighborTableEntriesis the total number of Neighbor table entries on the remote node

  • u8StartIndexis the Neighbor table index of the first entry reported in this response (through pNetworkTableList)

  • u8NetworkListCountis the number of Neighbor table entries reported in this response (through pNetworkTableList)

  • pNetworkTableListis a pointer to the first entry in the list of reported Neighbor table entries. Each entry is of the type ZPS_tsAplZdpNtListEntrydetailed 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:

    • u64ExtPanIdis the 64-bit extended PAN ID of the network .

    • u64ExtendedAddressis the IEEE address of the neighboring node.

    • u16NwkAddris the network address of the neighboring node.

    • u8LinkQualityis the estimated LQI (link quality) value for radio transmissions from the neighboring node.

    • u8Depthis the tree depth of the neighboring node (where the Coordinator is at depth zero).

    • u1Reserved1:1is a 1-bit reserved value and should be set zero.

    • u2Relationship:3is 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:2is 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:2is a 2-bit value representing the ZigBee device type of the neighboring node:

      • 0: Coordinator

      • 1: Router

      • 2: End Device

      • 3: Unknown

    • u6Reserved2:6is a 6-bit reserved value and should be set zero.

    • u2PermitJoining:2is 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_tsAplZdpMgmtRtgRspstructure 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:

  • u8Statusis the return status for ZPS_eAplZdpMgmtRtgRequest()

  • u8RoutingTableEntriesis the total number of Routing table entries on the remote node

  • u8StartIndexis the Routing table index of the first entry reported in this response (through pRoutingTableList)

  • u8RoutingTableCountis the number of Routing table entries reported in this response (through pRoutingTableList)

  • pRoutingTableListis a pointer to the first entry in the list of reported Routing table entries. Each entry is of the type ZPS_tsAplZdpRtEntrydetailed below

    
    typedef 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:

    • u16NwkDstAddris the destination network address of the route.

    • u16NwkNxtHopAddris the ‘next hop’ network address of the route.

    • u3Status:3is the 3-bit status for the route:

      • 000 = ACTIVE

      • 001 = DISCOVERY_UNDERWAY

      • 010 = DISCOVERY_FAILED

      • 011 = INACTIVE

      • 100 = VALIDATION_UNDERWAY

      • 101-111 = Reserved.

    • u1MemConst:1is a bit indicating whether the device is a memory-constrained concentrator.

    • u1ManyToOne:1is a bit indicating whether the destination node is a concentrator that issued a many-to-one request.

    • u1RouteRecordReqd:1is a bit indicating whether a route record command frame. should be sent to the destination before the next data packet.

    • u1Reserved:2are reserved bits.

    • u8Fieldcontains the full set of flags of the bfBitfieldssub-structure, with u3Status:3occupying the most significant bits and u1Reserved:2occupying 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_tsAplZdpMgmtBindRspstructure 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:

  • u8Statusis the return status for ZPS_eAplZdpMgmtBindRequest()

  • u16BindingTableEntriesis the total number of Binding table entries on the remote node

  • u8StartIndexis the Binding table index of the first entry reported in this response (through sBindingTableList)

  • u16BindingTableListCountis the number of Binding table entries reported in this response (through sBindingTableList)

  • sBindingTableListis a pointer to the first entry in the list of reported Binding table entries. Each entry is of the type ZPS_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_tsAplZdpMgmtLeaveRspstructure is detailed below.

typedef struct {
    uint8 u8Status;
} ZPS_tsAplZdpMgmtLeaveRsp;

where u8Statusis 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_tsAplZdpMgmtDirectJoinRspstructure is detailed below.

typedef struct {
        uint8 u8Status;
} ZPS_tsAplZdpMgmtDirectJoinRsp;

where u8Statusis 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_tsAplZdpMgmtPermitJoiningRspstructure is detailed below.

typedef struct {
     uint8 u8Status;
} ZPS_tsAplZdpMgmtPermitJoiningRsp;

where u8Statusis 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_tsAplZdpMgmtCacheRspstructure 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:

  • u8Statusis the return status for ZPS_eAplZdpMgmtCacheRequest()

  • u8DiscoveryCacheEntriesis the total number of discovery cache entries on the remote node.

  • u8StartIndexis the discovery cache index of the first entry reported in this response (through pDiscoveryCacheList).

  • u8DiscoveryCacheListCountis the number of discovery cache entries reported in this response (through pDiscoveryCacheList).

  • pRoutingTableListis a pointer to the first entry in the list of reported discovery cache entries. Each entry is of the type ZPS_tsAplDiscoveryCachedetailed below.

ZPS_tsAplDiscoveryCache

typedef struct {
      uint64 u64ExtendedAddress;
      uint16 u16NwkAddress;
} ZPS_tsAplDiscoveryCache;

where:

  • u64ExtendedAddressis the IEEE address of the End Device.

  • u16NwkAddressis 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_tsAplZdpMgmtNwkUpdateNotifystructure 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:

  • u8Statusis the return status for ZPS_eAplZdpMgmtNwkUpdateRequest()

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

  • u16TotalTransmissionsis the total number of transmissions (from other networks) detected during the scan

  • u16TransmissionFailuresis the number of failed transmissions detected during the scan

  • u8ScannedChannelListCountis the number of energy-level measurements (one per scanned channel) reported in this notification (through u8EnergyValuesList)

  • u8EnergyValuesListis 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_tsAplZdpParentAnnceRspstructure is detailed below.

typedef struct {
   uint64* pu64ChildList;
   uint8 u8NumberOfChildren;
   uint8 u8Status;
} ZPS_tsAplZdpParentAnnceRsp;

where:

  • pu64ChildListis a pointer to a list of 64-bit IEEE/MAC addresses of the child nodes in common.

  • u8NumberOfChildrenis the number of child nodes in common.

  • u8Statusis the status of the response.

Parent topic:ZDP response structures

Parent topic:ZDP structures