FW Version: Z-stack v2.5.1a for CC2530
As defined in MT_ZDO.c, there is a macro used to convert the rx zdo msg cluster id to Cmd1 ID for MT interface.
// Conversion from ZDO Cluster Id to the RPC AREQ Id is direct as follows:
#define MT_ZDO_CID_TO_AREQ_ID(CId) ((uint8)(CId) | 0x80)
Checking the ZDO services in ZigBee spec, some of the commands are incorrectly described in source file and document.
1. In Components/mt/mt.h, line 258-262
#define MT_ZDO_COMPLEX_DESC_RSP 0x87 //should be 0x90
#define MT_ZDO_USER_DESC_RSP 0x88 //should be 0x91
// /* 0x92 */ ((uint8)Discovery_Cache_req | 0x80)
#define MT_ZDO_USER_DESC_CONF 0x89 //should be 0x94
#define MT_ZDO_SERVER_DISC_RSP 0x8A //should be 0x95
2. In CC2530ZNP spec, Cmd1 value of each AREQ packet for these commands should be corrected relatively.
$4.5.38 ZDO_COMPLEX_DESC_RSP, Cmd1=0x87
$4.5.39 ZDO_USER_DESC_RSP, Cmd1=0x88
$4.5.39 ZDO_USER_DESC_CONF, Cmd1=0x89
$4.5.39 ZDO_SERVER_DESC_RSP, Cmd1=0x8A