aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-zbee-zcl-se.c
diff options
context:
space:
mode:
authorNikita Ryaskin <nikita.ryaskin@dsr-corporation.com>2019-03-05 14:47:27 +0300
committerAnders Broman <a.broman58@gmail.com>2019-03-11 13:32:46 +0000
commit09a04829cb1560389d60e8ddd1ab8218e6a1a14a (patch)
tree5ad499aafffd91d0b0bd9c41cc40281c1e166208 /epan/dissectors/packet-zbee-zcl-se.c
parentcdb5924c4026e26298961e9686c91d64ea96acb5 (diff)
ZBEE ZCL: updated Device Management Cluster dissection.
Implemented dissection for commands payload. Change-Id: I856ff2ad824d8b8b9df4b1d2121d64f8e2940e54 Reviewed-on: https://code.wireshark.org/review/32347 Reviewed-by: Kenneth Soerensen <knnthsrnsn@gmail.com> Petri-Dish: Anders Broman <a.broman58@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'epan/dissectors/packet-zbee-zcl-se.c')
-rw-r--r--epan/dissectors/packet-zbee-zcl-se.c750
1 files changed, 729 insertions, 21 deletions
diff --git a/epan/dissectors/packet-zbee-zcl-se.c b/epan/dissectors/packet-zbee-zcl-se.c
index cb22cac0dd..3b7c80e87f 100644
--- a/epan/dissectors/packet-zbee-zcl-se.c
+++ b/epan/dissectors/packet-zbee-zcl-se.c
@@ -12994,6 +12994,53 @@ VALUE_STRING_ARRAY(zbee_zcl_device_management_srv_rx_cmd_names);
VALUE_STRING_ENUM(zbee_zcl_device_management_srv_tx_cmd_names);
VALUE_STRING_ARRAY(zbee_zcl_device_management_srv_tx_cmd_names);
+#define zbee_zcl_device_management_password_types_VALUE_STRING_LIST(XXX) \
+ XXX(ZBEE_ZCL_DEVICE_MANAGEMENT_PASSWORD_TYPE_RESERVED, 0x00, "Reserved") \
+ XXX(ZBEE_ZCL_DEVICE_MANAGEMENT_PASSWORD_TYPE_PASSWORD_1, 0x01, "Password 1") \
+ XXX(ZBEE_ZCL_DEVICE_MANAGEMENT_PASSWORD_TYPE_PASSWORD_2, 0x02, "Password 2") \
+ XXX(ZBEE_ZCL_DEVICE_MANAGEMENT_PASSWORD_TYPE_PASSWORD_3, 0x03, "Password 3") \
+ XXX(ZBEE_ZCL_DEVICE_MANAGEMENT_PASSWORD_TYPE_PASSWORD_4, 0x04, "Password 4")
+
+VALUE_STRING_ENUM(zbee_zcl_device_management_password_types);
+VALUE_STRING_ARRAY(zbee_zcl_device_management_password_types);
+
+#define zbee_zcl_device_management_event_configuration_log_types_VALUE_STRING_LIST(XXX) \
+ XXX(ZBEE_ZCL_DEVICE_MANAGEMENT_EVENT_CONFIGURATION_DO_NOT_LOG, 0x0, "Do not Log") \
+ XXX(ZBEE_ZCL_DEVICE_MANAGEMENT_EVENT_CONFIGURATION_LOG_AS_TAMPER, 0x1, "Log as Tamper") \
+ XXX(ZBEE_ZCL_DEVICE_MANAGEMENT_EVENT_CONFIGURATION_LOG_AS_FAULT, 0x2, "Log as Fault") \
+ XXX(ZBEE_ZCL_DEVICE_MANAGEMENT_EVENT_CONFIGURATION_LOG_AS_GENERAL_EVENT, 0x3, "Log as General Event") \
+ XXX(ZBEE_ZCL_DEVICE_MANAGEMENT_EVENT_CONFIGURATION_LOG_AS_SECURITY_EVENT, 0x4, "Log as Security Event") \
+ XXX(ZBEE_ZCL_DEVICE_MANAGEMENT_EVENT_CONFIGURATION_LOG_AS_NETWORK_EVENT, 0x5, "Log as Network Event")
+
+VALUE_STRING_ENUM(zbee_zcl_device_management_event_configuration_log_types);
+VALUE_STRING_ARRAY(zbee_zcl_device_management_event_configuration_log_types);
+
+#define zbee_zcl_device_management_tariff_types_VALUE_STRING_LIST(XXX) \
+ XXX(ZBEE_ZCL_DEVICE_MANAGEMENT_TARIFF_TYPE_DELIVERED_TARIFF, 0x0, "Delivered Tariff") \
+ XXX(ZBEE_ZCL_DEVICE_MANAGEMENT_TARIFF_TYPE_RECEIVED_TARIFF, 0x1, "Received Tariff") \
+ XXX(ZBEE_ZCL_DEVICE_MANAGEMENT_TARIFF_TYPE_DELIVERED_AND_RECEIVED_TARIFF, 0x2, "Delivered and Received Tariff")
+
+VALUE_STRING_ENUM(zbee_zcl_device_management_tariff_types);
+VALUE_STRING_ARRAY(zbee_zcl_device_management_tariff_types);
+
+#define zbee_zcl_device_management_contactor_states_VALUE_STRING_LIST(XXX) \
+ XXX(ZBEE_ZCL_DEVICE_MANAGEMENT_SUPPLY_OFF, 0x0, "Supply OFF") \
+ XXX(ZBEE_ZCL_DEVICE_MANAGEMENT_SUPPLY_OFF_ARMED, 0x1, "Supply OFF / ARMED") \
+ XXX(ZBEE_ZCL_DEVICE_MANAGEMENT_SUPPLY_ON, 0x2, "Supply ON") \
+ XXX(ZBEE_ZCL_DEVICE_MANAGEMENT_SUPPLY_UNCHANGED, 0x3, "Supply UNCHANGED")
+
+VALUE_STRING_ENUM(zbee_zcl_device_management_contactor_states);
+VALUE_STRING_ARRAY(zbee_zcl_device_management_contactor_states);
+
+#define zbee_zcl_device_management_configuration_controls_VALUE_STRING_LIST(XXX) \
+ XXX(ZBEE_ZCL_DEVICE_MANAGEMENT_CONFIGURATION_CONTROL_APPLY_BY_LIST, 0x00, "Apply by List") \
+ XXX(ZBEE_ZCL_DEVICE_MANAGEMENT_CONFIGURATION_CONTROL_APPLY_BY_EVENT_GROUP, 0x01, "Apply by Event Group") \
+ XXX(ZBEE_ZCL_DEVICE_MANAGEMENT_CONFIGURATION_CONTROL_APPLY_BY_LOG_TYPE, 0x02, "Apply by Log Type") \
+ XXX(ZBEE_ZCL_DEVICE_MANAGEMENT_CONFIGURATION_CONTROL_APPLY_BY_CONFIGURATION_MATCH, 0x03, "Apply by Configuration Match")
+
+VALUE_STRING_ENUM(zbee_zcl_device_management_configuration_controls);
+VALUE_STRING_ARRAY(zbee_zcl_device_management_configuration_controls);
+
/*************************/
/* Function Declarations */
/*************************/
@@ -13015,9 +13062,107 @@ static int hf_zbee_zcl_device_management_srv_rx_cmd_id = -1;
static int hf_zbee_zcl_device_management_attr_server_id = -1;
static int hf_zbee_zcl_device_management_attr_client_id = -1;
static int hf_zbee_zcl_device_management_attr_reporting_status = -1;
+static int hf_zbee_zcl_device_management_password_type = -1;
+static int hf_zbee_zcl_device_management_command_index = -1;
+static int hf_zbee_zcl_device_management_total_commands = -1;
+static int hf_zbee_zcl_device_management_event_id= -1;
+static int hf_zbee_zcl_device_management_event_configuration = -1;
+static int hf_zbee_zcl_device_management_event_configuration_logging = -1;
+static int hf_zbee_zcl_device_management_event_configuration_push_event_to_wan = -1;
+static int hf_zbee_zcl_device_management_event_configuration_push_event_to_han = -1;
+static int hf_zbee_zcl_device_management_event_configuration_raise_alarm_zigbee = -1;
+static int hf_zbee_zcl_device_management_event_configuration_raise_alarm_physical = -1;
+static int hf_zbee_zcl_device_management_event_configuration_reserved = -1;
+static int hf_zbee_zcl_device_management_publish_change_of_tenancy_provider_id = -1;
+static int hf_zbee_zcl_device_management_publish_change_of_tenancy_issuer_event_id = -1;
+static int hf_zbee_zcl_device_management_publish_change_of_tenancy_tariff_type = -1;
+static int hf_zbee_zcl_device_management_publish_change_of_tenancy_implementation_date = -1;
+static int hf_zbee_zcl_device_management_publish_change_of_tenancy_proposed_tenancy_change_control = -1;
+static int hf_zbee_zcl_device_management_publish_change_of_tenancy_proposed_tenancy_change_control_pre_snapshot = -1;
+static int hf_zbee_zcl_device_management_publish_change_of_tenancy_proposed_tenancy_change_control_post_snapshot = -1;
+static int hf_zbee_zcl_device_management_publish_change_of_tenancy_proposed_tenancy_change_control_reset_credit_register = -1;
+static int hf_zbee_zcl_device_management_publish_change_of_tenancy_proposed_tenancy_change_control_reset_debit_register = -1;
+static int hf_zbee_zcl_device_management_publish_change_of_tenancy_proposed_tenancy_change_control_reset_billing_period = -1;
+static int hf_zbee_zcl_device_management_publish_change_of_tenancy_proposed_tenancy_change_control_clear_tariff_plan = -1;
+static int hf_zbee_zcl_device_management_publish_change_of_tenancy_proposed_tenancy_change_control_clear_standing_charge = -1;
+static int hf_zbee_zcl_device_management_publish_change_of_tenancy_proposed_tenancy_change_control_block_historical_load_profile_information = -1;
+static int hf_zbee_zcl_device_management_publish_change_of_tenancy_proposed_tenancy_change_control_clear_historical_load_profile_information = -1;
+static int hf_zbee_zcl_device_management_publish_change_of_tenancy_proposed_tenancy_change_control_clear_ihd_data_consumer = -1;
+static int hf_zbee_zcl_device_management_publish_change_of_tenancy_proposed_tenancy_change_control_clear_ihd_data_supplier = -1;
+static int hf_zbee_zcl_device_management_publish_change_of_tenancy_proposed_tenancy_change_control_meter_contactor_state = -1;
+static int hf_zbee_zcl_device_management_publish_change_of_tenancy_proposed_tenancy_change_control_clear_transaction_log = -1;
+static int hf_zbee_zcl_device_management_publish_change_of_tenancy_proposed_tenancy_change_control_clear_prepayment_data = -1;
+static int hf_zbee_zcl_device_management_publish_change_of_tenancy_proposed_tenancy_change_control_reserved = -1;
+
+static int hf_zbee_zcl_device_management_publish_change_of_supplier_current_provider_id = -1;
+static int hf_zbee_zcl_device_management_publish_change_of_supplier_issuer_event_id = -1;
+static int hf_zbee_zcl_device_management_publish_change_of_supplier_tariff_type = -1;
+static int hf_zbee_zcl_device_management_publish_change_of_supplier_proposed_provider_id = -1;
+static int hf_zbee_zcl_device_management_publish_change_of_supplier_provider_change_implementation_time = -1;
+static int hf_zbee_zcl_device_management_publish_change_of_supplier_provider_change_control = -1;
+static int hf_zbee_zcl_device_management_publish_change_of_supplier_provider_proposed_provider_name = -1;
+static int hf_zbee_zcl_device_management_publish_change_of_supplier_provider_proposed_provider_contact_details = -1;
+
+static int hf_zbee_zcl_device_management_request_new_password_issuer_event_id = -1;
+static int hf_zbee_zcl_device_management_request_new_password_implementation_date = -1;
+static int hf_zbee_zcl_device_management_request_new_password_password = -1;
+static int hf_zbee_zcl_device_management_request_new_password_duration_in_minutes = -1;
+
+static int hf_zbee_zcl_device_management_update_site_id_issuer_event_id = -1;
+static int hf_zbee_zcl_device_management_update_site_id_site_id_time = -1;
+static int hf_zbee_zcl_device_management_update_site_id_provider_id = -1;
+static int hf_zbee_zcl_device_management_update_site_id_site_id = -1;
+
+static int hf_zbee_zcl_device_management_set_event_configuration_issuer_event_id = -1;
+static int hf_zbee_zcl_device_management_set_event_configuration_start_time = -1;
+static int hf_zbee_zcl_device_management_set_event_configuration_configuration_control = -1;
+static int hf_zbee_zcl_device_management_set_event_configuration_event_configuration_number_of_events = -1;
+static int hf_zbee_zcl_device_management_set_event_configuration_event_configuration_event_id = -1;
+static int hf_zbee_zcl_device_management_set_event_configuration_event_configuration_event_group_id = -1;
+static int hf_zbee_zcl_device_management_set_event_configuration_event_configuration_event_log_id = -1;
+static int hf_zbee_zcl_device_management_set_event_configuration_event_configuration_event_configuration_value_match = -1;
+
+static int hf_zbee_zcl_device_management_get_event_configuration_event_id = -1;
+
+static int hf_zbee_zcl_device_management_update_cin_issuer_event_id = -1;
+static int hf_zbee_zcl_device_management_update_cin_cin_implementation_time = -1;
+static int hf_zbee_zcl_device_management_update_cin_provider_id = -1;
+static int hf_zbee_zcl_device_management_update_cin_customerid_number = -1;
+
+static const int* hf_zbee_zcl_device_management_event_configuration_flags[] = {
+ &hf_zbee_zcl_device_management_event_configuration_logging,
+ &hf_zbee_zcl_device_management_event_configuration_push_event_to_wan,
+ &hf_zbee_zcl_device_management_event_configuration_push_event_to_han,
+ &hf_zbee_zcl_device_management_event_configuration_raise_alarm_zigbee,
+ &hf_zbee_zcl_device_management_event_configuration_raise_alarm_physical,
+ &hf_zbee_zcl_device_management_event_configuration_reserved,
+ NULL
+};
+
+static const int* hf_zbee_zcl_device_management_publish_change_of_tenancy_proposed_tenancy_change_control_flags[] = {
+ &hf_zbee_zcl_device_management_publish_change_of_tenancy_proposed_tenancy_change_control_pre_snapshot,
+ &hf_zbee_zcl_device_management_publish_change_of_tenancy_proposed_tenancy_change_control_post_snapshot,
+ &hf_zbee_zcl_device_management_publish_change_of_tenancy_proposed_tenancy_change_control_reset_credit_register,
+ &hf_zbee_zcl_device_management_publish_change_of_tenancy_proposed_tenancy_change_control_reset_debit_register,
+ &hf_zbee_zcl_device_management_publish_change_of_tenancy_proposed_tenancy_change_control_reset_billing_period,
+ &hf_zbee_zcl_device_management_publish_change_of_tenancy_proposed_tenancy_change_control_clear_tariff_plan,
+ &hf_zbee_zcl_device_management_publish_change_of_tenancy_proposed_tenancy_change_control_clear_standing_charge,
+ &hf_zbee_zcl_device_management_publish_change_of_tenancy_proposed_tenancy_change_control_block_historical_load_profile_information,
+ &hf_zbee_zcl_device_management_publish_change_of_tenancy_proposed_tenancy_change_control_clear_historical_load_profile_information,
+ &hf_zbee_zcl_device_management_publish_change_of_tenancy_proposed_tenancy_change_control_clear_ihd_data_consumer,
+ &hf_zbee_zcl_device_management_publish_change_of_tenancy_proposed_tenancy_change_control_clear_ihd_data_supplier,
+ &hf_zbee_zcl_device_management_publish_change_of_tenancy_proposed_tenancy_change_control_meter_contactor_state,
+ &hf_zbee_zcl_device_management_publish_change_of_tenancy_proposed_tenancy_change_control_clear_transaction_log,
+ &hf_zbee_zcl_device_management_publish_change_of_tenancy_proposed_tenancy_change_control_clear_prepayment_data,
+ &hf_zbee_zcl_device_management_publish_change_of_tenancy_proposed_tenancy_change_control_reserved,
+ NULL
+};
/* Initialize the subtree pointers */
static gint ett_zbee_zcl_device_management = -1;
+static gint ett_zbee_zcl_device_management_event_configuration_payload = -1;
+static gint ett_zbee_zcl_device_management_event_configuration = -1;
+static gint ett_zbee_zcl_device_management_proposed_tenancy_change_control = -1;
/*************************/
/* Function Bodies */
@@ -13050,6 +13195,328 @@ dissect_zcl_device_management_attr_data(proto_tree *tree, tvbuff_t *tvb, guint *
} /*dissect_zcl_device_management_attr_data*/
/**
+ *This function is called by ZCL foundation dissector in order to decode
+ *
+ *@param tree pointer to data tree Wireshark uses to display packet.
+ *@param tvb pointer to buffer containing raw packet.
+ *@param offset pointer to buffer offset
+*/
+static void
+dissect_zcl_device_management_request_new_password(proto_tree *tree, tvbuff_t *tvb, guint *offset)
+{
+ /* Password Type */
+ proto_tree_add_item(tree, hf_zbee_zcl_device_management_password_type, tvb, *offset, 1, ENC_NA);
+ *offset += 1;
+}
+
+/**
+ *This function is called by ZCL foundation dissector in order to decode
+ *
+ *@param tree pointer to data tree Wireshark uses to display packet.
+ *@param tvb pointer to buffer containing raw packet.
+ *@param offset pointer to buffer offset
+*/
+static void
+dissect_zcl_device_management_report_event_configuration(proto_tree *tree, tvbuff_t *tvb, guint *offset)
+{
+ proto_tree *event_configuration_payload;
+ guint rem_len;
+
+ /* Command Index */
+ proto_tree_add_item(tree, hf_zbee_zcl_device_management_command_index, tvb, *offset, 1, ENC_NA);
+ *offset += 1;
+
+ /* Total Commands */
+ proto_tree_add_item(tree, hf_zbee_zcl_device_management_total_commands, tvb, *offset, 1, ENC_NA);
+ *offset += 1;
+
+ rem_len = tvb_reported_length_remaining(tvb, *offset);
+ /* Event Configuration Payload */
+ event_configuration_payload = proto_tree_add_subtree(tree, tvb, *offset, rem_len, ett_zbee_zcl_device_management_event_configuration_payload, NULL, "Event Configuration Payload");
+
+ while(tvb_reported_length_remaining(tvb, *offset) > 2) {
+ /* Event ID */
+ proto_tree_add_item(event_configuration_payload, hf_zbee_zcl_device_management_event_id, tvb, *offset, 2, ENC_LITTLE_ENDIAN);
+ *offset += 2;
+
+ /* Event Configuration */
+ proto_tree_add_bitmask(event_configuration_payload, tvb, *offset, hf_zbee_zcl_device_management_event_configuration,
+ ett_zbee_zcl_device_management_event_configuration, hf_zbee_zcl_device_management_event_configuration_flags, ENC_NA);
+ *offset += 1;
+ }
+}
+
+/**
+ *This function is called by ZCL foundation dissector in order to decode
+ *
+ *@param tree pointer to data tree Wireshark uses to display packet.
+ *@param tvb pointer to buffer containing raw packet.
+ *@param offset pointer to buffer offset
+*/
+static void
+dissect_zcl_device_management_publish_change_of_tenancy(proto_tree *tree, tvbuff_t *tvb, guint *offset)
+{
+ nstime_t impl_date;
+
+ /* Provider ID */
+ proto_tree_add_item(tree, hf_zbee_zcl_device_management_publish_change_of_tenancy_provider_id, tvb, *offset, 4, ENC_LITTLE_ENDIAN);
+ *offset += 4;
+
+ /* Issuer Event ID */
+ proto_tree_add_item(tree, hf_zbee_zcl_device_management_publish_change_of_tenancy_issuer_event_id, tvb, *offset, 4, ENC_LITTLE_ENDIAN);
+ *offset += 4;
+
+ /* Tariff Type */
+ proto_tree_add_item(tree, hf_zbee_zcl_device_management_publish_change_of_tenancy_tariff_type, tvb, *offset, 1, ENC_NA);
+ *offset += 1;
+
+ /* Implementation Date/Time */
+ impl_date.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
+ impl_date.nsecs = 0;
+ proto_tree_add_time(tree, hf_zbee_zcl_device_management_publish_change_of_tenancy_implementation_date, tvb, *offset, 4, &impl_date);
+ *offset += 4;
+
+ /* Proposed Tenancy Change Control */
+ proto_tree_add_bitmask(tree, tvb, *offset, hf_zbee_zcl_device_management_publish_change_of_tenancy_proposed_tenancy_change_control,
+ ett_zbee_zcl_device_management_proposed_tenancy_change_control, hf_zbee_zcl_device_management_publish_change_of_tenancy_proposed_tenancy_change_control_flags, ENC_NA);
+ *offset += 4;
+
+} /*dissect_zcl_device_management_publish_change_of_tenancy*/
+
+/**
+ *This function is called by ZCL foundation dissector in order to decode
+ *
+ *@param tree pointer to data tree Wireshark uses to display packet.
+ *@param tvb pointer to buffer containing raw packet.
+ *@param offset pointer to buffer offset
+*/
+static void
+dissect_zcl_device_management_publish_change_of_supplier(proto_tree *tree, tvbuff_t *tvb, guint *offset)
+{
+ nstime_t impl_time;
+ gint name_length;
+ gint detail_length;
+
+ /* Current Provider ID */
+ proto_tree_add_item(tree, hf_zbee_zcl_device_management_publish_change_of_supplier_current_provider_id, tvb, *offset, 4, ENC_LITTLE_ENDIAN);
+ *offset += 4;
+
+ /* Issuer Event ID */
+ proto_tree_add_item(tree, hf_zbee_zcl_device_management_publish_change_of_supplier_issuer_event_id, tvb, *offset, 4, ENC_LITTLE_ENDIAN);
+ *offset += 4;
+
+ /* Tariff Type */
+ proto_tree_add_item(tree, hf_zbee_zcl_device_management_publish_change_of_supplier_tariff_type, tvb, *offset, 1, ENC_NA);
+ *offset += 1;
+
+ /* Proposed Provider ID */
+ proto_tree_add_item(tree, hf_zbee_zcl_device_management_publish_change_of_supplier_proposed_provider_id, tvb, *offset, 4, ENC_LITTLE_ENDIAN);
+ *offset += 4;
+
+ /* Provider Change Implementation Time */
+ impl_time.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
+ impl_time.nsecs = 0;
+ proto_tree_add_time(tree, hf_zbee_zcl_device_management_publish_change_of_supplier_provider_change_implementation_time, tvb, *offset, 4, &impl_time);
+ *offset += 4;
+
+ /* Provider Change Control */
+ proto_tree_add_item(tree, hf_zbee_zcl_device_management_publish_change_of_supplier_provider_change_control, tvb, *offset, 4, ENC_LITTLE_ENDIAN);
+ *offset += 4;
+
+ /* Proposed Provider Name */
+ proto_tree_add_item_ret_length(tree, hf_zbee_zcl_device_management_publish_change_of_supplier_provider_proposed_provider_name, tvb, *offset, 1, ENC_NA|ENC_ZIGBEE, &name_length);
+ *offset += name_length;
+
+ /* Proposed Provider Contact Details */
+ proto_tree_add_item_ret_length(tree, hf_zbee_zcl_device_management_publish_change_of_supplier_provider_proposed_provider_contact_details, tvb, *offset, 1, ENC_NA|ENC_ZIGBEE, &detail_length);
+ *offset += detail_length;
+
+} /*dissect_zcl_device_management_publish_change_of_supplier*/
+
+/**
+ *This function is called by ZCL foundation dissector in order to decode
+ *
+ *@param tree pointer to data tree Wireshark uses to display packet.
+ *@param tvb pointer to buffer containing raw packet.
+ *@param offset pointer to buffer offset
+*/
+static void
+dissect_zcl_device_management_request_new_password_response(proto_tree *tree, tvbuff_t *tvb, guint *offset)
+{
+ nstime_t impl_date;
+ gint password_length;
+
+ /* Issuer Event ID */
+ proto_tree_add_item(tree, hf_zbee_zcl_device_management_request_new_password_issuer_event_id, tvb, *offset, 4, ENC_LITTLE_ENDIAN);
+ *offset += 4;
+
+ /* Implementation Date/Time */
+ impl_date.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
+ impl_date.nsecs = 0;
+ proto_tree_add_time(tree, hf_zbee_zcl_device_management_request_new_password_implementation_date, tvb, *offset, 4, &impl_date);
+ *offset += 4;
+
+ /* Duration in minutes */
+ proto_tree_add_item(tree, hf_zbee_zcl_device_management_request_new_password_duration_in_minutes, tvb, *offset, 2, ENC_NA);
+ *offset += 2;
+
+ /* Password Type */
+ proto_tree_add_item(tree, hf_zbee_zcl_device_management_password_type, tvb, *offset, 1, ENC_NA);
+ *offset += 1;
+
+ /* Password */
+ proto_tree_add_item_ret_length(tree, hf_zbee_zcl_device_management_request_new_password_password, tvb, *offset, 1, ENC_NA|ENC_ZIGBEE, &password_length);
+ *offset += password_length;
+
+} /*dissect_zcl_device_management_request_new_password_response*/
+
+/**
+ *This function is called by ZCL foundation dissector in order to decode
+ *
+ *@param tree pointer to data tree Wireshark uses to display packet.
+ *@param tvb pointer to buffer containing raw packet.
+ *@param offset pointer to buffer offset
+*/
+static void
+dissect_zcl_device_management_update_site_id(proto_tree *tree, tvbuff_t *tvb, guint *offset)
+{
+ nstime_t siteid_time;
+ gint siteid_length;
+
+ /* Issuer Event ID */
+ proto_tree_add_item(tree, hf_zbee_zcl_device_management_update_site_id_issuer_event_id, tvb, *offset, 4, ENC_LITTLE_ENDIAN);
+ *offset += 4;
+
+ /* SiteID Time */
+ siteid_time.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
+ siteid_time.nsecs = 0;
+ proto_tree_add_time(tree, hf_zbee_zcl_device_management_update_site_id_site_id_time, tvb, *offset, 4, &siteid_time);
+ *offset += 4;
+
+ /* Provider ID */
+ proto_tree_add_item(tree, hf_zbee_zcl_device_management_update_site_id_provider_id, tvb, *offset, 4, ENC_LITTLE_ENDIAN);
+ *offset += 4;
+
+ /* SiteID */
+ proto_tree_add_item_ret_length(tree, hf_zbee_zcl_device_management_update_site_id_site_id, tvb, *offset, 1, ENC_NA|ENC_ZIGBEE, &siteid_length);
+ *offset += siteid_length;
+
+} /*dissect_zcl_device_management_update_site_id*/
+
+/**
+ *This function is called by ZCL foundation dissector in order to decode
+ *
+ *@param tree pointer to data tree Wireshark uses to display packet.
+ *@param tvb pointer to buffer containing raw packet.
+ *@param offset pointer to buffer offset
+*/
+static void
+dissect_zcl_device_management_set_event_configuration(proto_tree *tree, tvbuff_t *tvb, guint *offset)
+{
+ nstime_t start_time;
+ guint8 config_control;
+ guint8 number_of_events;
+
+ /* Issuer Event ID */
+ proto_tree_add_item(tree, hf_zbee_zcl_device_management_set_event_configuration_issuer_event_id, tvb, *offset, 4, ENC_LITTLE_ENDIAN);
+ *offset += 4;
+
+ /* Start Date/Time */
+ start_time.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
+ start_time.nsecs = 0;
+ proto_tree_add_time(tree, hf_zbee_zcl_device_management_set_event_configuration_start_time, tvb, *offset, 4, &start_time);
+ *offset += 4;
+
+ /* Event Configuration */
+ proto_tree_add_bitmask(tree, tvb, *offset, hf_zbee_zcl_device_management_event_configuration,
+ ett_zbee_zcl_device_management_event_configuration, hf_zbee_zcl_device_management_event_configuration_flags, ENC_NA);
+ *offset += 1;
+
+ /* Configuration Control */
+ config_control = tvb_get_guint8(tvb, *offset);
+ proto_tree_add_item(tree, hf_zbee_zcl_device_management_set_event_configuration_configuration_control, tvb, *offset, 1, ENC_NA);
+ *offset += 1;
+
+ /* Event Configuration Payload */
+ switch (config_control) {
+ case ZBEE_ZCL_DEVICE_MANAGEMENT_CONFIGURATION_CONTROL_APPLY_BY_LIST:
+ number_of_events = tvb_get_guint8(tvb, *offset);
+ /* Number of Events */
+ proto_tree_add_item(tree, hf_zbee_zcl_device_management_set_event_configuration_event_configuration_number_of_events, tvb, *offset, 1, ENC_NA);
+ *offset += 1;
+
+ /* Event IDs */
+ for (guint i = 0; tvb_reported_length_remaining(tvb, *offset) > 0 && i < number_of_events; i++) {
+ proto_tree_add_item(tree, hf_zbee_zcl_device_management_set_event_configuration_event_configuration_event_id, tvb, *offset, 2, ENC_LITTLE_ENDIAN);
+ *offset += 2;
+ }
+ break;
+ case ZBEE_ZCL_DEVICE_MANAGEMENT_CONFIGURATION_CONTROL_APPLY_BY_EVENT_GROUP:
+ /* Event Group ID */
+ proto_tree_add_item(tree, hf_zbee_zcl_device_management_set_event_configuration_event_configuration_event_group_id, tvb, *offset, 2, ENC_LITTLE_ENDIAN);
+ *offset += 2;
+ break;
+ case ZBEE_ZCL_DEVICE_MANAGEMENT_CONFIGURATION_CONTROL_APPLY_BY_LOG_TYPE:
+ /* Log ID */
+ proto_tree_add_item(tree, hf_zbee_zcl_device_management_set_event_configuration_event_configuration_event_log_id, tvb, *offset, 1, ENC_LITTLE_ENDIAN);
+ *offset += 1;
+ break;
+ case ZBEE_ZCL_DEVICE_MANAGEMENT_CONFIGURATION_CONTROL_APPLY_BY_CONFIGURATION_MATCH:
+ /* Configuration Value Match */
+ proto_tree_add_item(tree, hf_zbee_zcl_device_management_set_event_configuration_event_configuration_event_configuration_value_match, tvb, *offset, 1, ENC_LITTLE_ENDIAN);
+ *offset += 1;
+ break;
+ }
+} /*dissect_zcl_device_management_set_event_configuration*/
+
+/**
+ *This function is called by ZCL foundation dissector in order to decode
+ *
+ *@param tree pointer to data tree Wireshark uses to display packet.
+ *@param tvb pointer to buffer containing raw packet.
+ *@param offset pointer to buffer offset
+*/
+static void
+dissect_zcl_device_management_get_event_configuration(proto_tree *tree, tvbuff_t *tvb, guint *offset)
+{
+ /* Event ID */
+ proto_tree_add_item(tree, hf_zbee_zcl_device_management_get_event_configuration_event_id, tvb, *offset, 2, ENC_LITTLE_ENDIAN);
+ *offset += 2;
+} /*dissect_zcl_device_management_get_event_configuration*/
+
+/**
+ *This function is called by ZCL foundation dissector in order to decode
+ *
+ *@param tree pointer to data tree Wireshark uses to display packet.
+ *@param tvb pointer to buffer containing raw packet.
+ *@param offset pointer to buffer offset
+*/
+static void
+dissect_zcl_device_management_update_cin(proto_tree *tree, tvbuff_t *tvb, guint *offset)
+{
+ nstime_t cin_impl_time;
+ gint customer_id_length;
+
+ /* Issuer Event ID */
+ proto_tree_add_item(tree, hf_zbee_zcl_device_management_update_cin_issuer_event_id, tvb, *offset, 4, ENC_LITTLE_ENDIAN);
+ *offset += 4;
+
+ /* CIN Implementation Time */
+ cin_impl_time.secs = (time_t)tvb_get_letohl(tvb, *offset) + ZBEE_ZCL_NSTIME_UTC_OFFSET;
+ cin_impl_time.nsecs = 0;
+ proto_tree_add_time(tree, hf_zbee_zcl_device_management_update_cin_cin_implementation_time, tvb, *offset, 4, &cin_impl_time);
+ *offset += 4;
+
+ /* Provider ID */
+ proto_tree_add_item(tree, hf_zbee_zcl_device_management_update_cin_provider_id, tvb, *offset, 4, ENC_LITTLE_ENDIAN);
+ *offset += 4;
+
+ /* CustomerID Number */
+ proto_tree_add_item_ret_length(tree, hf_zbee_zcl_device_management_update_cin_customerid_number, tvb, *offset, 1, ENC_NA|ENC_ZIGBEE, &customer_id_length);
+ *offset += customer_id_length;
+} /*dissect_zcl_device_management_update_cin*/
+
+/**
*ZigBee ZCL Device Management cluster dissector for wireshark.
*
*@param tvb pointer to buffer containing raw packet.
@@ -13059,7 +13526,8 @@ dissect_zcl_device_management_attr_data(proto_tree *tree, tvbuff_t *tvb, guint *
static int
dissect_zbee_zcl_device_management(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data)
{
- zbee_zcl_packet *zcl;
+ zbee_zcl_packet *zcl;
+ proto_tree *payload_tree;
guint offset = 0;
guint8 cmd_id;
gint rem_len;
@@ -13083,32 +13551,29 @@ dissect_zbee_zcl_device_management(tvbuff_t *tvb, packet_info *pinfo, proto_tree
/* Check is this command has a payload, than add the payload tree */
rem_len = tvb_reported_length_remaining(tvb, ++offset);
if (rem_len > 0) {
- proto_tree_add_subtree(tree, tvb, offset, rem_len, ett_zbee_zcl_device_management, NULL, "Payload");
-
+ payload_tree = proto_tree_add_subtree(tree, tvb, offset, rem_len, ett_zbee_zcl_device_management, NULL, "Payload");
/* Call the appropriate command dissector */
switch (cmd_id) {
-
- case ZBEE_ZCL_CMD_ID_DEVICE_MANAGEMENT_GET_CHANGE_OF_TENANCY:
- /* Add function to dissect payload */
+ case ZBEE_ZCL_CMD_ID_DEVICE_MANAGEMENT_GET_CHANGE_OF_TENANCY:
+ /* No Payload */
break;
- case ZBEE_ZCL_CMD_ID_DEVICE_MANAGEMENT_GET_CHANGE_OF_SUPPLIER:
- /* Add function to dissect payload */
+ case ZBEE_ZCL_CMD_ID_DEVICE_MANAGEMENT_GET_CHANGE_OF_SUPPLIER:
+ /* No Payload */
break;
-
case ZBEE_ZCL_CMD_ID_DEVICE_MANAGEMENT_REQUEST_NEW_PASSWORD:
- /* Add function to dissect payload */
+ dissect_zcl_device_management_request_new_password(payload_tree, tvb, &offset);
break;
case ZBEE_ZCL_CMD_ID_DEVICE_MANAGEMENT_GET_SITE_ID:
- /* Add function to dissect payload */
+ /* No Payload */
break;
case ZBEE_ZCL_CMD_ID_DEVICE_MANAGEMENT_REPORT_EVENT_CONFIGURATION:
- /* Add function to dissect payload */
+ dissect_zcl_device_management_report_event_configuration(payload_tree, tvb, &offset);
break;
case ZBEE_ZCL_CMD_ID_DEVICE_MANAGEMENT_GET_CIN:
- /* Add function to dissect payload */
+ /* No Payload */
break;
default:
@@ -13128,36 +13593,36 @@ dissect_zbee_zcl_device_management(tvbuff_t *tvb, packet_info *pinfo, proto_tree
/* Check is this command has a payload, than add the payload tree */
rem_len = tvb_reported_length_remaining(tvb, ++offset);
if (rem_len > 0) {
- proto_tree_add_subtree(tree, tvb, offset, rem_len, ett_zbee_zcl_device_management, NULL, "Payload");
+ payload_tree = proto_tree_add_subtree(tree, tvb, offset, rem_len, ett_zbee_zcl_device_management, NULL, "Payload");
/* Call the appropriate command dissector */
switch (cmd_id) {
case ZBEE_ZCL_CMD_ID_DEVICE_MANAGEMENT_PUBLISH_CHANGE_OF_TENANCY:
- /* Add function to dissect payload */
+ dissect_zcl_device_management_publish_change_of_tenancy(payload_tree, tvb, &offset);
break;
case ZBEE_ZCL_CMD_ID_DEVICE_MANAGEMENT_PUBLISH_CHANGE_OF_SUPPLIER:
- /* Add function to dissect payload */
+ dissect_zcl_device_management_publish_change_of_supplier(payload_tree, tvb, &offset);
break;
case ZBEE_ZCL_CMD_ID_DEVICE_MANAGEMENT_REQUEST_NEW_PASSWORD_RESPONSE:
- /* Add function to dissect payload */
+ dissect_zcl_device_management_request_new_password_response(payload_tree, tvb, &offset);
break;
case ZBEE_ZCL_CMD_ID_DEVICE_MANAGEMENT_UPDATE_SITE_ID:
- /* Add function to dissect payload */
+ dissect_zcl_device_management_update_site_id(payload_tree, tvb, &offset);
break;
case ZBEE_ZCL_CMD_ID_DEVICE_MANAGEMENT_SET_EVENT_CONFIGURATION:
- /* Add function to dissect payload */
+ dissect_zcl_device_management_set_event_configuration(payload_tree, tvb, &offset);
break;
case ZBEE_ZCL_CMD_ID_DEVICE_MANAGEMENT_GET_EVENT_CONFIGURATION:
- /* Add function to dissect payload */
+ dissect_zcl_device_management_get_event_configuration(payload_tree, tvb, &offset);
break;
case ZBEE_ZCL_CMD_ID_DEVICE_MANAGEMENT_UPDATE_CIN:
- /* Add function to dissect payload */
+ dissect_zcl_device_management_update_cin(payload_tree, tvb, &offset);
break;
default:
@@ -13198,11 +13663,254 @@ proto_register_zbee_zcl_device_management(void)
{ "Command", "zbee_zcl_se.device_management.cmd.srv_rx.id", FT_UINT8, BASE_HEX, VALS(zbee_zcl_device_management_srv_rx_cmd_names),
0x00, NULL, HFILL } },
+ { &hf_zbee_zcl_device_management_password_type,
+ { "Password Type", "zbee_zcl_se.device_management.password_type", FT_UINT8, BASE_HEX, VALS(zbee_zcl_device_management_password_types),
+ 0x00, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_command_index,
+ { "Command Index", "zbee_zcl_se.device_management.command_index", FT_UINT8, BASE_HEX, NULL,
+ 0x00, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_total_commands,
+ { "Total Commands", "zbee_zcl_se.device_management.total_commands", FT_UINT8, BASE_HEX, NULL,
+ 0x00, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_event_id,
+ { "Event ID", "zbee_zcl_se.device_management.event_id", FT_UINT16, BASE_HEX, NULL,
+ 0x00, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_event_configuration,
+ { "Event Configuration", "zbee_zcl_se.device_management.event_configuration", FT_UINT8, BASE_HEX, NULL,
+ 0x00, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_event_configuration_logging,
+ { "Logging", "zbee_zcl_se.device_management.event_configuration.logging", FT_UINT8, BASE_HEX, VALS(zbee_zcl_device_management_event_configuration_log_types),
+ 0x07, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_event_configuration_push_event_to_wan,
+ { "Push Event to WAN", "zbee_zcl_se.device_management.event_configuration.push_event_to_wan", FT_BOOLEAN, 8, NULL,
+ 0x08, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_event_configuration_push_event_to_han,
+ { "Push Event to HAN", "zbee_zcl_se.device_management.event_configuration.push_event_to_han", FT_BOOLEAN, 8, NULL,
+ 0x10, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_event_configuration_raise_alarm_zigbee,
+ { "Raise Alarm (Zigbee)", "zbee_zcl_se.device_management.event_configuration.raise_alarm_zigbee", FT_BOOLEAN, 8, NULL,
+ 0x20, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_event_configuration_raise_alarm_physical,
+ { "Raise Alarm (Physical)", "zbee_zcl_se.device_management.event_configuration.raise_alarm_physical", FT_BOOLEAN, 8, NULL,
+ 0x40, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_event_configuration_reserved,
+ { "Reserved", "zbee_zcl_se.device_management.event_configuration.reserved", FT_UINT8, BASE_HEX, NULL,
+ 0x80, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_publish_change_of_tenancy_provider_id,
+ { "Provider ID", "zbee_zcl_se.device_management.publish_change_of_tenancy.provider_id", FT_UINT32, BASE_HEX, NULL,
+ 0x0, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_publish_change_of_tenancy_issuer_event_id,
+ { "Issuer Event ID", "zbee_zcl_se.device_management.publish_change_of_tenancy.issuer_event_id", FT_UINT32, BASE_HEX, NULL,
+ 0x0, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_publish_change_of_tenancy_tariff_type,
+ { "Tariff Type", "zbee_zcl_se.device_management.publish_change_of_tenancy.tariff_type", FT_UINT8, BASE_HEX, VALS(zbee_zcl_device_management_tariff_types),
+ 0x0, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_publish_change_of_tenancy_implementation_date,
+ { "Implementation Date/Time", "zbee_zcl_se.device_management.publish_change_of_tenancy.implementation_date", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_UTC, NULL,
+ 0x0, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_publish_change_of_tenancy_proposed_tenancy_change_control,
+ { "Proposed Tenancy Change Control", "zbee_zcl_se.device_management.publish_change_of_tenancy.proposed_tenancy_change_control", FT_UINT32, BASE_HEX, NULL,
+ 0x0, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_publish_change_of_tenancy_proposed_tenancy_change_control_pre_snapshot,
+ { "Pre Snapshots", "zbee_zcl_se.device_management.publish_change_of_tenancy.proposed_tenancy_change_control.pre_snapshot", FT_BOOLEAN, 32, NULL,
+ 0x00000001, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_publish_change_of_tenancy_proposed_tenancy_change_control_post_snapshot,
+ { "Post Snapshots", "zbee_zcl_se.device_management.publish_change_of_tenancy.proposed_tenancy_change_control.post_snapshot", FT_BOOLEAN, 32, NULL,
+ 0x00000002, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_publish_change_of_tenancy_proposed_tenancy_change_control_reset_credit_register,
+ { "Reset Credit Register", "zbee_zcl_se.device_management.publish_change_of_tenancy.proposed_tenancy_change_control.reset_credit_register", FT_BOOLEAN, 32, NULL,
+ 0x00000004, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_publish_change_of_tenancy_proposed_tenancy_change_control_reset_debit_register,
+ { "Reset Debit Register", "zbee_zcl_se.device_management.publish_change_of_tenancy.proposed_tenancy_change_control.reset_debit_register", FT_BOOLEAN, 32, NULL,
+ 0x00000008, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_publish_change_of_tenancy_proposed_tenancy_change_control_reset_billing_period,
+ { "Reset Billing Period", "zbee_zcl_se.device_management.publish_change_of_tenancy.proposed_tenancy_change_control.reset_billing_period", FT_BOOLEAN, 32, NULL,
+ 0x00000010, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_publish_change_of_tenancy_proposed_tenancy_change_control_clear_tariff_plan,
+ { "Clear Tariff Plan", "zbee_zcl_se.device_management.publish_change_of_tenancy.proposed_tenancy_change_control.clear_tariff_plan", FT_BOOLEAN, 32, NULL,
+ 0x00000020, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_publish_change_of_tenancy_proposed_tenancy_change_control_clear_standing_charge,
+ { "Clear Standing Charge", "zbee_zcl_se.device_management.publish_change_of_tenancy.proposed_tenancy_change_control.clear_standing_charge", FT_BOOLEAN, 32, NULL,
+ 0x00000040, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_publish_change_of_tenancy_proposed_tenancy_change_control_block_historical_load_profile_information,
+ { "Block Historical Load Profile Information", "zbee_zcl_se.device_management.publish_change_of_tenancy.proposed_tenancy_change_control.block_historical_load_profile_information", FT_BOOLEAN, 32, NULL,
+ 0x00000080, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_publish_change_of_tenancy_proposed_tenancy_change_control_clear_historical_load_profile_information,
+ { "Clear Historical Load Profile Information", "zbee_zcl_se.device_management.publish_change_of_tenancy.proposed_tenancy_change_control.clear_historical_load_profile_information", FT_BOOLEAN, 32, NULL,
+ 0x00000100, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_publish_change_of_tenancy_proposed_tenancy_change_control_clear_ihd_data_consumer,
+ { "Clear IHD Data - Consumer", "zbee_zcl_se.device_management.publish_change_of_tenancy.proposed_tenancy_change_control.clear_ihd_data_consumer", FT_BOOLEAN, 32, NULL,
+ 0x00000200, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_publish_change_of_tenancy_proposed_tenancy_change_control_clear_ihd_data_supplier,
+ { "Clear IHD Data - Supplier", "zbee_zcl_se.device_management.publish_change_of_tenancy.proposed_tenancy_change_control.clear_ihd_data_supplier", FT_BOOLEAN, 32, NULL,
+ 0x00000400, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_publish_change_of_tenancy_proposed_tenancy_change_control_meter_contactor_state,
+ { "Meter Contactor State \"On / Off / Armed\"", "zbee_zcl_se.device_management.publish_change_of_tenancy.proposed_tenancy_change_control.meter_contactor_state", FT_UINT32, BASE_HEX, VALS(zbee_zcl_device_management_contactor_states),
+ 0x00001800, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_publish_change_of_tenancy_proposed_tenancy_change_control_clear_transaction_log,
+ { "Clear Transaction Log", "zbee_zcl_se.device_management.publish_change_of_tenancy.proposed_tenancy_change_control.clear_transaction_log", FT_BOOLEAN, 32, NULL,
+ 0x00002000, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_publish_change_of_tenancy_proposed_tenancy_change_control_clear_prepayment_data,
+ { "Clear Prepayment Data", "zbee_zcl_se.device_management.publish_change_of_tenancy.proposed_tenancy_change_control.clear_prepayment_data", FT_BOOLEAN, 32, NULL,
+ 0x00004000, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_publish_change_of_tenancy_proposed_tenancy_change_control_reserved,
+ { "Reserved", "zbee_zcl_se.device_management.publish_change_of_tenancy.proposed_tenancy_change_control.reserved", FT_UINT32, BASE_HEX, NULL,
+ 0xFFFF8000, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_publish_change_of_supplier_current_provider_id,
+ { "Current Provider ID", "zbee_zcl_se.device_management.publish_change_of_supplier.current_provider_id", FT_UINT32, BASE_HEX, NULL,
+ 0x0, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_publish_change_of_supplier_issuer_event_id,
+ { "Issuer Event ID", "zbee_zcl_se.device_management.publish_change_of_supplier.issuer_event_id", FT_UINT32, BASE_HEX, NULL,
+ 0x0, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_publish_change_of_supplier_tariff_type,
+ { "Tariff Type", "zbee_zcl_se.device_management.publish_change_of_supplier.tariff_type", FT_UINT8, BASE_HEX, VALS(zbee_zcl_device_management_tariff_types),
+ 0x0, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_publish_change_of_supplier_proposed_provider_id,
+ { "Proposed Provider ID", "zbee_zcl_se.device_management.publish_change_of_supplier.proposed_provider_id", FT_UINT32, BASE_HEX, NULL,
+ 0x0, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_publish_change_of_supplier_provider_change_implementation_time,
+ { "Provider Change Implementation Time", "zbee_zcl_se.device_management.publish_change_of_supplier.provider_change_implementation_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_UTC, NULL,
+ 0x0, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_publish_change_of_supplier_provider_change_control,
+ { "Provider Change Control", "zbee_zcl_se.device_management.publish_change_of_supplier.provider_change_control", FT_UINT32, BASE_HEX, NULL,
+ 0x0, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_publish_change_of_supplier_provider_proposed_provider_name,
+ { "Proposed Provider Name", "zbee_zcl_se.device_management.publish_change_of_supplier.provider_proposed_provider_name", FT_UINT_STRING, STR_UNICODE, NULL,
+ 0x0, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_publish_change_of_supplier_provider_proposed_provider_contact_details,
+ { "Proposed Provider Contact Details", "zbee_zcl_se.device_management.publish_change_of_supplier.provider_proposed_provider_contact_details", FT_UINT_STRING, STR_UNICODE, NULL,
+ 0x0, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_request_new_password_issuer_event_id,
+ { "Issuer Event ID", "zbee_zcl_se.device_management.request_new_password.issuer_event_id", FT_UINT32, BASE_HEX, NULL,
+ 0x0, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_request_new_password_implementation_date,
+ { "Implementation Date/Time", "zbee_zcl_se.device_management.request_new_password.implementation_date", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_UTC, NULL,
+ 0x0, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_request_new_password_duration_in_minutes,
+ { "Duration in minutes", "zbee_zcl_se.device_management.request_new_password.duration_in_minutes", FT_UINT16, BASE_DEC, NULL,
+ 0x0, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_request_new_password_password,
+ { "Password", "zbee_zcl_se.device_management.request_new_password.password", FT_UINT_STRING, STR_UNICODE, NULL,
+ 0x0, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_update_site_id_issuer_event_id,
+ { "Issuer Event ID", "zbee_zcl_se.device_management.update_site_id.issuer_event_id", FT_UINT32, BASE_HEX, NULL,
+ 0x0, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_update_site_id_site_id_time,
+ { "SiteID Time", "zbee_zcl_se.device_management.update_site_id.site_id_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_UTC, NULL,
+ 0x0, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_update_site_id_provider_id,
+ { "Provider ID", "zbee_zcl_se.device_management.update_site_id.provider_id", FT_UINT32, BASE_HEX, NULL,
+ 0x0, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_update_site_id_site_id,
+ { "SiteID", "zbee_zcl_se.device_management.update_site_id.site_id", FT_UINT_STRING, STR_UNICODE, NULL,
+ 0x0, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_get_event_configuration_event_id,
+ { "Event ID", "zbee_zcl_se.device_management.get_event_configuration.event_id", FT_UINT16, BASE_HEX, NULL,
+ 0x0, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_update_cin_issuer_event_id,
+ { "Issuer Event ID", "zbee_zcl_se.device_management.update_cin.issuer_event_id", FT_UINT32, BASE_HEX, NULL,
+ 0x0, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_update_cin_cin_implementation_time,
+ { "CIN Implementation Time", "zbee_zcl_se.device_management.update_cin.cin_implementation_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_UTC, NULL,
+ 0x0, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_update_cin_provider_id,
+ { "Provider ID", "zbee_zcl_se.device_management.update_cin.provider_id", FT_UINT32, BASE_HEX, NULL,
+ 0x0, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_update_cin_customerid_number,
+ { "CustomerID Number", "zbee_zcl_se.device_management.update_cin.customerid_number", FT_UINT_STRING, STR_UNICODE, NULL,
+ 0x0, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_set_event_configuration_issuer_event_id,
+ { "Issuer Event ID", "zbee_zcl_se.device_management.set_event_configuration.issuer_event_id", FT_UINT32, BASE_HEX, NULL,
+ 0x0, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_set_event_configuration_start_time,
+ { "Start Date/Time", "zbee_zcl_se.device_management.set_event_configuration.start_time", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_UTC, NULL,
+ 0x0, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_set_event_configuration_configuration_control,
+ { "Configuration Control", "zbee_zcl_se.device_management.set_event_configuration.configuration_control", FT_UINT8, BASE_HEX, VALS(zbee_zcl_device_management_configuration_controls),
+ 0x0, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_set_event_configuration_event_configuration_number_of_events,
+ { "Number of Events", "zbee_zcl_se.device_management.set_event_configuration.event_configuration.number_of_events", FT_UINT8, BASE_DEC, NULL,
+ 0x0, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_set_event_configuration_event_configuration_event_id,
+ { "Event ID", "zbee_zcl_se.device_management.set_event_configuration.event_configuration.number_of_events", FT_UINT16, BASE_DEC, NULL,
+ 0x0, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_set_event_configuration_event_configuration_event_group_id,
+ { "Event Group ID", "zbee_zcl_se.device_management.set_event_configuration.event_configuration.event_group_id", FT_UINT16, BASE_DEC, NULL,
+ 0x0, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_set_event_configuration_event_configuration_event_log_id,
+ { "Log ID", "zbee_zcl_se.device_management.set_event_configuration.event_configuration.log_id", FT_UINT8, BASE_DEC, NULL,
+ 0x0, NULL, HFILL } },
+
+ { &hf_zbee_zcl_device_management_set_event_configuration_event_configuration_event_configuration_value_match,
+ { "Configuration Value Match", "zbee_zcl_se.device_management.set_event_configuration.event_configuration.configuration_value_match", FT_UINT8, BASE_DEC, NULL,
+ 0x0, NULL, HFILL } },
+
};
/* ZCL Device Management subtrees */
gint *ett[] = {
&ett_zbee_zcl_device_management,
+ &ett_zbee_zcl_device_management_event_configuration_payload,
+ &ett_zbee_zcl_device_management_event_configuration,
+ &ett_zbee_zcl_device_management_proposed_tenancy_change_control
};
/* Register the ZigBee ZCL Device Management cluster protocol name and description */