aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKenneth Soerensen <knnthsrnsn@gmail.com>2018-11-30 13:43:34 +0100
committerMichael Mann <mmann78@netscape.net>2018-12-02 02:49:50 +0000
commit82ebab607ec4634021f3b6a2ffadb06efcd6900c (patch)
treec77eaa493e6107b03587daabec1d46a119509506
parent5267fc7777bdd1338ac819d11d702f7fab51e856 (diff)
ZigBee: Correct unsolicited nwk update notify
- Correct cluster ID - Parse ZDP Status - Move from client to server - Classify as notify instead of request Change-Id: Idb3d26d3212af2762465d7ec02efcb8978830af3 Reviewed-on: https://code.wireshark.org/review/30859 Reviewed-by: Martin Boye Petersen <martinboyepetersen@gmail.com> Petri-Dish: Anders Broman <a.broman58@gmail.com> Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Michael Mann <mmann78@netscape.net>
-rw-r--r--epan/dissectors/packet-zbee-zdp-management.c53
-rw-r--r--epan/dissectors/packet-zbee-zdp.c8
-rw-r--r--epan/dissectors/packet-zbee-zdp.h4
3 files changed, 33 insertions, 32 deletions
diff --git a/epan/dissectors/packet-zbee-zdp-management.c b/epan/dissectors/packet-zbee-zdp-management.c
index 8195bcae42..29a4fcb598 100644
--- a/epan/dissectors/packet-zbee-zdp-management.c
+++ b/epan/dissectors/packet-zbee-zdp-management.c
@@ -471,32 +471,6 @@ dissect_zbee_zdp_req_mgmt_ieee_join_list(tvbuff_t *tvb, packet_info *pinfo, prot
zdp_dump_excess(tvb, offset, pinfo, tree);
} /* dissect_zbee_zdp_req_mgmt_ieee_join_list */
-/**
- *ZigBee Device Profile dissector for the unsolicited nwk update notify.
- *
- *@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_req_mgmt_unsolicited_nwkupdate(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
-{
- guint offset = 0;
-
- zdp_parse_chanmask(tree, tvb, &offset, hf_zbee_zdp_channel_page, hf_zbee_zdp_channel_mask);
- proto_tree_add_item(tree, hf_zbee_zdp_tx_total, tvb, offset, 2, ENC_LITTLE_ENDIAN);
- offset += 2;
- proto_tree_add_item(tree, hf_zbee_zdp_tx_fail, tvb, offset, 2, ENC_LITTLE_ENDIAN);
- offset += 2;
- proto_tree_add_item(tree, hf_zbee_zdp_tx_retries, tvb, offset, 2, ENC_LITTLE_ENDIAN);
- offset += 2;
- proto_tree_add_item(tree, hf_zbee_zdp_period_time_results, tvb, offset, 1, ENC_LITTLE_ENDIAN);
- offset += 1;
-
- /* Dump any leftover bytes. */
- zdp_dump_excess(tvb, offset, pinfo, tree);
-} /* dissect_zbee_zdp_req_mgmt_unsolicited_nwkupdate */
-
/**************************************
* MANAGEMENT RESPONSES
**************************************
@@ -848,6 +822,33 @@ dissect_zbee_zdp_rsp_mgmt_ieee_join_list(tvbuff_t *tvb, packet_info *pinfo, prot
zdp_dump_excess(tvb, offset, pinfo, tree);
} /* dissect_zbee_zdp_rsp_mgmt_ieee_join_list */
+/**
+ *ZigBee Device Profile dissector for the unsolicited nwk update notify.
+ *
+ *@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_not_mgmt_unsolicited_nwkupdate(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
+{
+ guint offset = 0;
+
+ zdp_parse_status(tree, tvb, &offset);
+ zdp_parse_chanmask(tree, tvb, &offset, hf_zbee_zdp_channel_page, hf_zbee_zdp_channel_mask);
+ proto_tree_add_item(tree, hf_zbee_zdp_tx_total, tvb, offset, 2, ENC_LITTLE_ENDIAN);
+ offset += 2;
+ proto_tree_add_item(tree, hf_zbee_zdp_tx_fail, tvb, offset, 2, ENC_LITTLE_ENDIAN);
+ offset += 2;
+ proto_tree_add_item(tree, hf_zbee_zdp_tx_retries, tvb, offset, 2, ENC_LITTLE_ENDIAN);
+ offset += 2;
+ proto_tree_add_item(tree, hf_zbee_zdp_period_time_results, tvb, offset, 1, ENC_LITTLE_ENDIAN);
+ offset += 1;
+
+ /* Dump any leftover bytes. */
+ zdp_dump_excess(tvb, offset, pinfo, tree);
+} /* dissect_zbee_zdp_not_mgmt_unsolicited_nwkupdate */
+
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*
diff --git a/epan/dissectors/packet-zbee-zdp.c b/epan/dissectors/packet-zbee-zdp.c
index 623352515c..0535913dec 100644
--- a/epan/dissectors/packet-zbee-zdp.c
+++ b/epan/dissectors/packet-zbee-zdp.c
@@ -281,7 +281,6 @@ const value_string zbee_zdp_cluster_names[] = {
{ ZBEE_ZDP_REQ_MGMT_NWKUPDATE, "Network Update Request" },
{ ZBEE_ZDP_REQ_MGMT_NWKUPDATE_ENH, "Network Update Enhanced Request" },
{ ZBEE_ZDP_REQ_MGMT_IEEE_JOIN_LIST, "IEEE Joining List Request" },
- { ZBEE_ZDP_REQ_MGMT_UNSOLICITED_NWKUPDATE, "Unsolicited Enhanced Network Update Notify" },
{ ZBEE_ZDP_RSP_NWK_ADDR, "Network Address Response" },
{ ZBEE_ZDP_RSP_IEEE_ADDR, "Extended Address Response" },
@@ -327,6 +326,7 @@ const value_string zbee_zdp_cluster_names[] = {
{ ZBEE_ZDP_NOT_MGMT_NWKUPDATE, "Network Update Notify" },
{ ZBEE_ZDP_NOT_MGMT_NWKUPDATE_ENH, "Network Enhanced Update Notify" },
{ ZBEE_ZDP_RSP_MGMT_IEEE_JOIN_LIST, "IEEE Joining List Response" },
+ { ZBEE_ZDP_NOT_MGMT_UNSOLICITED_NWKUPDATE, "Unsolicited Enhanced Network Update Notify" },
{ 0, NULL }
};
@@ -1189,9 +1189,6 @@ dissect_zbee_zdp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data
case ZBEE_ZDP_REQ_MGMT_IEEE_JOIN_LIST:
dissect_zbee_zdp_req_mgmt_ieee_join_list(zdp_tvb, pinfo, zdp_tree);
break;
- case ZBEE_ZDP_REQ_MGMT_UNSOLICITED_NWKUPDATE:
- dissect_zbee_zdp_req_mgmt_unsolicited_nwkupdate(zdp_tvb, pinfo, zdp_tree);
- break;
case ZBEE_ZDP_RSP_NWK_ADDR:
dissect_zbee_zdp_rsp_nwk_addr(zdp_tvb, pinfo, zdp_tree);
break;
@@ -1322,6 +1319,9 @@ dissect_zbee_zdp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data
case ZBEE_ZDP_RSP_MGMT_IEEE_JOIN_LIST:
dissect_zbee_zdp_rsp_mgmt_ieee_join_list(zdp_tvb, pinfo, zdp_tree);
break;
+ case ZBEE_ZDP_NOT_MGMT_UNSOLICITED_NWKUPDATE:
+ dissect_zbee_zdp_not_mgmt_unsolicited_nwkupdate(zdp_tvb, pinfo, zdp_tree);
+ break;
default:
/* Invalid Cluster Identifier. */
call_data_dissector(zdp_tvb, pinfo, tree);
diff --git a/epan/dissectors/packet-zbee-zdp.h b/epan/dissectors/packet-zbee-zdp.h
index 64226d984b..fd4cba0743 100644
--- a/epan/dissectors/packet-zbee-zdp.h
+++ b/epan/dissectors/packet-zbee-zdp.h
@@ -62,7 +62,6 @@
#define ZBEE_ZDP_REQ_MGMT_NWKUPDATE 0x0038 /* ZigBee 2007 & later. */
#define ZBEE_ZDP_REQ_MGMT_NWKUPDATE_ENH 0x0039 /* R22 */
#define ZBEE_ZDP_REQ_MGMT_IEEE_JOIN_LIST 0x003a /* R22 */
-#define ZBEE_ZDP_REQ_MGMT_UNSOLICITED_NWKUPDATE 0x003b /* R22 */
#define ZBEE_ZDP_RSP_NWK_ADDR 0x8000
#define ZBEE_ZDP_RSP_IEEE_ADDR 0x8001
@@ -108,6 +107,7 @@
#define ZBEE_ZDP_NOT_MGMT_NWKUPDATE 0x8038 /* ZigBee 2007 & later. */
#define ZBEE_ZDP_NOT_MGMT_NWKUPDATE_ENH 0x8039 /* R22 */
#define ZBEE_ZDP_RSP_MGMT_IEEE_JOIN_LIST 0x803a /* R22 */
+#define ZBEE_ZDP_NOT_MGMT_UNSOLICITED_NWKUPDATE 0x803b /* R22 */
#define ZBEE_ZDP_MSG_RESPONSE_BIT 0x8000
#define ZBEE_ZDP_MSG_MASK (ZBEE_ZDP_MSG_RESPONSE_BIT-1)
@@ -386,7 +386,6 @@ extern void dissect_zbee_zdp_req_mgmt_cache (tvbuff_t *tvb, packet_i
extern void dissect_zbee_zdp_req_mgmt_nwkupdate (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
extern void dissect_zbee_zdp_req_mgmt_nwkupdate_enh (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
extern void dissect_zbee_zdp_req_mgmt_ieee_join_list (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
-extern void dissect_zbee_zdp_req_mgmt_unsolicited_nwkupdate (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
extern void dissect_zbee_zdp_rsp_nwk_addr (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
extern void dissect_zbee_zdp_rsp_ext_addr (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
@@ -432,6 +431,7 @@ extern void dissect_zbee_zdp_rsp_mgmt_permit_join (tvbuff_t *tvb, packet_i
extern void dissect_zbee_zdp_rsp_mgmt_cache (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
extern void dissect_zbee_zdp_not_mgmt_nwkupdate (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
extern void dissect_zbee_zdp_rsp_mgmt_ieee_join_list (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
+extern void dissect_zbee_zdp_not_mgmt_unsolicited_nwkupdate (tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
extern const value_string zbee_zdp_cluster_names[];
extern const value_string zbee_zdp_rtg_status_vals[];