Contribution by Cosmin-Teodor Grumei:
No Freescale device is a discovery cache by default, the desired services must be enabled manually. Also, even if enabled, the discovery cache related commands are not sent automatically. The cache operation is controlled by other devices through the relevant ZDO Client Services, the discovery information must be uploaded using the Node Descriptor store request, Power Descriptor store request, Active Endpoint store request and/or Simple Descriptor store request. For more information see 18.104.22.168 Primary Discovery Cache Device Operation of the ZigBee Pro R20 spec (DCN:3474 on docs.zigbee.org).
Attached is an example that shows how a ZR and a ZED might use a Discovery Cache located on ZC. The scenario has the following steps:
- Zed->Zc<-Zr network is formed.
- seqNo 56. Zed sends a Node Descriptor request to Zc with the Zr’s address of interest. Since Zr was not registered on Zc, the Zc answeres with a Device Not Found status at seqNo 60.
- seqNo 64. Zr requests storage space on Zc using the Discovery Store request. No discovery information was uploaded yet.
- seqNo 70. Zed sends a Node Descriptor request to Zc with the Zr’s address of interest. Since no discovery information was uploaded, Zc answers with a No Descriptor status.
- seqNo 76. Zed sends a Node Descriptor request to Zr with the Zr’s address of interest. This is not relevant to the discovery cache operation, its sent just to see how a Node Descriptor response from Zr would look like.
- seqNo 97. Zr sends a Node Descriptor Store request to Zc to upload discovery information on the discovery cache.
- seqNo 102. Zed sends a Node Descriptor request to Zc with the Zr’s address of interest. Zc as a discovery cache answers with Zr’s Node Descriptor.
- next, same steps as above are repeated for Zed’s Node Descriptor.
This scenario requires the following to be enabled: gDiscovery_Cache_req_d, gDiscovery_Cache_rsp_d, gDiscovery_store_req_d, gDiscovery_store_rsp_d, gNode_Desc_store_req_d, gNode_Desc_store_rsp_d. For a fully functional Discovery Cache all relevant primitives should be enabled.
Original Attachment has been moved to: DiscCacheExample.cubx.zip