aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-zbee-zdp-discovery.c
diff options
context:
space:
mode:
authordsrsupport <eugene.exarevsky@dsr-company.com>2015-12-25 15:38:56 +0300
committerMichael Mann <mmann78@netscape.net>2015-12-26 02:58:44 +0000
commit88f01f8bcc476c855f7a7a36b19f198b4c5819b3 (patch)
treefec4124838e67db62c7f9003e284f075ddd87598 /epan/dissectors/packet-zbee-zdp-discovery.c
parentf4bbe108dff17fdf4550d34580fb1f19f47c6d7b (diff)
ZigBee: Implement ZDO Parent Annce according to r21
Change-Id: I208688c00e1cd7cb38c0d26a34ef8e49af3347e8 Reviewed-on: https://code.wireshark.org/review/12867 Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
Diffstat (limited to 'epan/dissectors/packet-zbee-zdp-discovery.c')
-rw-r--r--epan/dissectors/packet-zbee-zdp-discovery.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/epan/dissectors/packet-zbee-zdp-discovery.c b/epan/dissectors/packet-zbee-zdp-discovery.c
index 2a906138dc..9f6d6c3a88 100644
--- a/epan/dissectors/packet-zbee-zdp-discovery.c
+++ b/epan/dissectors/packet-zbee-zdp-discovery.c
@@ -306,6 +306,36 @@ dissect_zbee_zdp_device_annce(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tre
} /* dissect_zbee_zdp_device_annce */
/**
+ *ZigBee Device Profile dissector for the parent announce
+ *
+ *@param tvb pointer to buffer containing raw packet.
+ *@param pinfo pointer to packet information fields
+ *@param tree pointer to data tree Wireshark uses to display packet.
+*/
+void
+dissect_zbee_zdp_parent_annce(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+{
+ guint offset = 0;
+ guint n_children;
+ guint i;
+ guint64 ext_addr;
+
+ n_children = zbee_parse_uint(tree, hf_zbee_zdp_device, tvb, &offset, (int)1, NULL);
+ zbee_append_info(tree, pinfo, ", # children %d :", n_children);
+ for (i = 0 ; i < n_children ; ++i)
+ {
+ ext_addr = zbee_parse_eui64(tree, hf_zbee_zdp_ext_addr, tvb, &offset, (int)sizeof(guint64), NULL);
+ if (i == 0)
+ {
+ zbee_append_info(tree, pinfo, n_children == 1 ? " %s" : " %s ...", eui64_to_display(wmem_packet_scope(), ext_addr));
+ }
+ }
+
+ /* Dump any leftover bytes. */
+ zdp_dump_excess(tvb, offset, pinfo, tree);
+} /* dissect_zbee_zdp_parent_annce */
+
+/**
*ZigBee Device Profile dissector for the end set user
*
*@param tvb pointer to buffer containing raw packet.