/* ZigBee Device Profile dissector for the complex descriptor */
void dissect_zbee_zdp_rsp_complex_desc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
/* ZigBee Device Profile dissector for the complex descriptor */
void dissect_zbee_zdp_rsp_complex_desc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
    guint       offset = 0;
    guint8      status;
    guint8      length;
    guint16     device;
    status   = zdp_parse_status(tree, tvb, &offset);
    device   = zbee_parse_uint(tree, hf_zbee_zdp_device, tvb, &offset, (int)sizeof(guint16), NULL);
    length   = zbee_parse_uint(tree, hf_zbee_zdp_complex_length, tvb, &offset, (int)sizeof(guint8), NULL);
    if (length) {
        zdp_parse_complex_desc(tree, -1, tvb, &offset, length);
    }
    zbee_append_info(tree, pinfo, ", Device: 0x%04x", device);
    zbee_append_info(tree, pinfo, ", Status: %s", zdp_status_name(status));
    zdp_dump_excess(tvb, offset, pinfo, tree);
}