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>
This commit is contained in:
Nikita Ryaskin 2019-03-05 14:47:27 +03:00 committed by Anders Broman
parent cdb5924c40
commit 09a04829cb
1 changed files with 729 additions and 21 deletions

View File

@ -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 */
@ -13049,6 +13194,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.
*
@ -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 */