As a ZigBee recognised test house we do a lot of certification testing of ZigBee products. One problem that we see repeatedly within the devices we test is the incorrect processing of the Default Response bit within the ZCL frame control header of an incoming frame.
The behaviour of a device which receives such a frame is defined in the ZigBee Cluster Library (075123r03) in section 2.4.12.2. This states that,
The default response command is generated when a device receives a unicast command, there is no other relevant response specified for the command, and either an error results or the Disable default response bit of its Frame control field is set to 0
What this basically means, is that when this bit is set to 0, then the receiving device must send back a Default Response frame if no other relevant response frame exists.
By way of example, consider a Read Attribute/Read Attribute Response frame exchange…
If the Read Attribute frame has the Disable Default Response bit set to 0, then this is ignored by the receiving side, as a relevant response frame already exists (ie. the Read Attribute Response)
However if the Read Attribute Response frame has the Disable Default Response bit set to 0, then the receiving side must send back a Default Response frame (usually with its Status set to Success)
This whole functionality is considered key to successful frame exchange management and as such was incorporated in an official Mandatory Advisory Note which was circulated to the membership by the ZigBee Alliance in Jan 2010.
As any frame, for any cluster, of any profile could make use of this functionality, it is important to check a device’s design carefully to ensure compliance. The Tracer test harness (produced by TRaC) comprehensively tests this and can confirm compliance to this requirement prior to attending the recognised test house for a formal certification test run.
