From f3e27b8a3e369f2fb974c59062bdd32bee39aa9f Mon Sep 17 00:00:00 2001 From: Paul Zander Date: Tue, 22 Jan 2019 08:29:22 +0100 Subject: [PATCH] Show manufacturer specific cluster When the ZCL cluster id is in the range 0xFC00 .. 0xFFFF the cluster is a manufacturer specific cluster. The information shown was 'Unknown' and should be 'Manufacturer Specific'. Change-Id: Id3ae90aea65c6049c38df2029871fdcfc41ce565 Reviewed-on: https://code.wireshark.org/review/31668 Petri-Dish: Anders Broman Reviewed-by: Kenneth Soerensen Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman --- epan/dissectors/packet-gbcs.c | 2 +- epan/dissectors/packet-zbee-aps.c | 185 ++++++++++---------- epan/dissectors/packet-zbee-aps.h | 5 +- epan/dissectors/packet-zbee-nwk-gp.c | 2 +- epan/dissectors/packet-zbee-zcl-general.c | 6 +- epan/dissectors/packet-zbee-zdp-binding.c | 12 +- epan/dissectors/packet-zbee-zdp-discovery.c | 8 +- epan/dissectors/packet-zbee-zdp.c | 6 +- 8 files changed, 116 insertions(+), 110 deletions(-) diff --git a/epan/dissectors/packet-gbcs.c b/epan/dissectors/packet-gbcs.c index 59aa5af4ed..44e02f8dfc 100755 --- a/epan/dissectors/packet-gbcs.c +++ b/epan/dissectors/packet-gbcs.c @@ -778,7 +778,7 @@ void proto_register_gbcs_gbz(void) }, {&hf_gbcs_gbz_extended_header_cluster, {"Extended Header Cluster ID", "gbcs_gbz.extended_header_cluster", - FT_UINT16, BASE_HEX, VALS(zbee_aps_cid_names), 0x0, NULL, HFILL} + FT_UINT16, BASE_HEX | BASE_RANGE_STRING, RVALS(zbee_aps_cid_names), 0x0, NULL, HFILL} }, {&hf_gbcs_gbz_extended_header_length, {"Extended Header Length", "gbcs_gbz.extended_header_length", diff --git a/epan/dissectors/packet-zbee-aps.c b/epan/dissectors/packet-zbee-aps.c index 73a3c5b337..f7a8a69ff5 100644 --- a/epan/dissectors/packet-zbee-aps.c +++ b/epan/dissectors/packet-zbee-aps.c @@ -533,117 +533,120 @@ const range_string zbee_aps_apid_abbrs[] = { /* ZCL Cluster Names */ /* BUGBUG: big enough to hash? */ -const value_string zbee_aps_cid_names[] = { +const range_string zbee_aps_cid_names[] = { /* General */ - { ZBEE_ZCL_CID_BASIC, "Basic"}, - { ZBEE_ZCL_CID_POWER_CONFIG, "Power Configuration"}, - { ZBEE_ZCL_CID_DEVICE_TEMP_CONFIG, "Device Temperature Configuration"}, - { ZBEE_ZCL_CID_IDENTIFY, "Identify"}, - { ZBEE_ZCL_CID_GROUPS, "Groups"}, - { ZBEE_ZCL_CID_SCENES, "Scenes"}, - { ZBEE_ZCL_CID_ON_OFF, "On/Off"}, - { ZBEE_ZCL_CID_ON_OFF_SWITCH_CONFIG, "On/Off Switch Configuration"}, - { ZBEE_ZCL_CID_LEVEL_CONTROL, "Level Control"}, - { ZBEE_ZCL_CID_ALARMS, "Alarms"}, - { ZBEE_ZCL_CID_TIME, "Time"}, - { ZBEE_ZCL_CID_RSSI_LOCATION, "RSSI Location"}, - { ZBEE_ZCL_CID_ANALOG_INPUT_BASIC, "Analog Input (Basic)"}, - { ZBEE_ZCL_CID_ANALOG_OUTPUT_BASIC, "Analog Output (Basic)"}, - { ZBEE_ZCL_CID_ANALOG_VALUE_BASIC, "Analog Value (Basic)"}, - { ZBEE_ZCL_CID_BINARY_INPUT_BASIC, "Binary Input (Basic)"}, - { ZBEE_ZCL_CID_BINARY_OUTPUT_BASIC, "Binary Output (Basic)"}, - { ZBEE_ZCL_CID_BINARY_VALUE_BASIC, "Binary Value (Basic)"}, - { ZBEE_ZCL_CID_MULTISTATE_INPUT_BASIC, "Multistate Input (Basic)"}, - { ZBEE_ZCL_CID_MULTISTATE_OUTPUT_BASIC, "Multistate Output (Basic)"}, - { ZBEE_ZCL_CID_MULTISTATE_VALUE_BASIC, "Multistate Value (Basic)"}, - { ZBEE_ZCL_CID_COMMISSIONING, "Commissioning"}, - { ZBEE_ZCL_CID_PARTITION, "Partition"}, - { ZBEE_ZCL_CID_OTA_UPGRADE, "OTA Upgrade"}, - { ZBEE_ZCL_CID_POLL_CONTROL, "Poll Control"}, - { ZBEE_ZCL_CID_GP, "Green Power"}, + { ZBEE_ZCL_CID_BASIC, ZBEE_ZCL_CID_BASIC, "Basic"}, + { ZBEE_ZCL_CID_POWER_CONFIG, ZBEE_ZCL_CID_POWER_CONFIG, "Power Configuration"}, + { ZBEE_ZCL_CID_DEVICE_TEMP_CONFIG, ZBEE_ZCL_CID_DEVICE_TEMP_CONFIG, "Device Temperature Configuration"}, + { ZBEE_ZCL_CID_IDENTIFY, ZBEE_ZCL_CID_IDENTIFY, "Identify"}, + { ZBEE_ZCL_CID_GROUPS, ZBEE_ZCL_CID_GROUPS, "Groups"}, + { ZBEE_ZCL_CID_SCENES, ZBEE_ZCL_CID_SCENES, "Scenes"}, + { ZBEE_ZCL_CID_ON_OFF, ZBEE_ZCL_CID_ON_OFF, "On/Off"}, + { ZBEE_ZCL_CID_ON_OFF_SWITCH_CONFIG, ZBEE_ZCL_CID_ON_OFF_SWITCH_CONFIG, "On/Off Switch Configuration"}, + { ZBEE_ZCL_CID_LEVEL_CONTROL, ZBEE_ZCL_CID_LEVEL_CONTROL, "Level Control"}, + { ZBEE_ZCL_CID_ALARMS, ZBEE_ZCL_CID_ALARMS, "Alarms"}, + { ZBEE_ZCL_CID_TIME, ZBEE_ZCL_CID_TIME, "Time"}, + { ZBEE_ZCL_CID_RSSI_LOCATION, ZBEE_ZCL_CID_RSSI_LOCATION, "RSSI Location"}, + { ZBEE_ZCL_CID_ANALOG_INPUT_BASIC, ZBEE_ZCL_CID_ANALOG_INPUT_BASIC, "Analog Input (Basic)"}, + { ZBEE_ZCL_CID_ANALOG_OUTPUT_BASIC, ZBEE_ZCL_CID_ANALOG_OUTPUT_BASIC, "Analog Output (Basic)"}, + { ZBEE_ZCL_CID_ANALOG_VALUE_BASIC, ZBEE_ZCL_CID_ANALOG_VALUE_BASIC, "Analog Value (Basic)"}, + { ZBEE_ZCL_CID_BINARY_INPUT_BASIC, ZBEE_ZCL_CID_BINARY_INPUT_BASIC, "Binary Input (Basic)"}, + { ZBEE_ZCL_CID_BINARY_OUTPUT_BASIC, ZBEE_ZCL_CID_BINARY_OUTPUT_BASIC, "Binary Output (Basic)"}, + { ZBEE_ZCL_CID_BINARY_VALUE_BASIC, ZBEE_ZCL_CID_BINARY_VALUE_BASIC, "Binary Value (Basic)"}, + { ZBEE_ZCL_CID_MULTISTATE_INPUT_BASIC, ZBEE_ZCL_CID_MULTISTATE_INPUT_BASIC, "Multistate Input (Basic)"}, + { ZBEE_ZCL_CID_MULTISTATE_OUTPUT_BASIC, ZBEE_ZCL_CID_MULTISTATE_OUTPUT_BASIC, "Multistate Output (Basic)"}, + { ZBEE_ZCL_CID_MULTISTATE_VALUE_BASIC, ZBEE_ZCL_CID_MULTISTATE_VALUE_BASIC, "Multistate Value (Basic)"}, + { ZBEE_ZCL_CID_COMMISSIONING, ZBEE_ZCL_CID_COMMISSIONING, "Commissioning"}, + { ZBEE_ZCL_CID_PARTITION, ZBEE_ZCL_CID_PARTITION, "Partition"}, + { ZBEE_ZCL_CID_OTA_UPGRADE, ZBEE_ZCL_CID_OTA_UPGRADE, "OTA Upgrade"}, + { ZBEE_ZCL_CID_POLL_CONTROL, ZBEE_ZCL_CID_POLL_CONTROL, "Poll Control"}, + { ZBEE_ZCL_CID_GP, ZBEE_ZCL_CID_GP, "Green Power"}, /* */ - { ZBEE_ZCL_CID_POWER_PROFILE, "Power Profile"}, - { ZBEE_ZCL_CID_APPLIANCE_CONTROL, "Appliance Control"}, + { ZBEE_ZCL_CID_POWER_PROFILE, ZBEE_ZCL_CID_POWER_PROFILE, "Power Profile"}, + { ZBEE_ZCL_CID_APPLIANCE_CONTROL, ZBEE_ZCL_CID_APPLIANCE_CONTROL, "Appliance Control"}, /* Closures */ - { ZBEE_ZCL_CID_SHADE_CONFIG, "Shade Configuration"}, - { ZBEE_ZCL_CID_DOOR_LOCK, "Door Lock"}, + { ZBEE_ZCL_CID_SHADE_CONFIG, ZBEE_ZCL_CID_SHADE_CONFIG, "Shade Configuration"}, + { ZBEE_ZCL_CID_DOOR_LOCK, ZBEE_ZCL_CID_DOOR_LOCK, "Door Lock"}, /* HVAC */ - { ZBEE_ZCL_CID_PUMP_CONFIG_CONTROL, "Pump Configuration Control"}, - { ZBEE_ZCL_CID_THERMOSTAT, "Thermostat"}, - { ZBEE_ZCL_CID_FAN_CONTROL, "Fan Control"}, - { ZBEE_ZCL_CID_DEHUMIDIFICATION_CONTROL, "Dehumidification Control"}, - { ZBEE_ZCL_CID_THERMOSTAT_UI_CONFIG, "Thermostat User Interface Configuration"}, + { ZBEE_ZCL_CID_PUMP_CONFIG_CONTROL, ZBEE_ZCL_CID_PUMP_CONFIG_CONTROL, "Pump Configuration Control"}, + { ZBEE_ZCL_CID_THERMOSTAT, ZBEE_ZCL_CID_THERMOSTAT, "Thermostat"}, + { ZBEE_ZCL_CID_FAN_CONTROL, ZBEE_ZCL_CID_FAN_CONTROL, "Fan Control"}, + { ZBEE_ZCL_CID_DEHUMIDIFICATION_CONTROL, ZBEE_ZCL_CID_DEHUMIDIFICATION_CONTROL, "Dehumidification Control"}, + { ZBEE_ZCL_CID_THERMOSTAT_UI_CONFIG, ZBEE_ZCL_CID_THERMOSTAT_UI_CONFIG, "Thermostat User Interface Configuration"}, /* Lighting */ - { ZBEE_ZCL_CID_COLOR_CONTROL, "Color Control"}, - { ZBEE_ZCL_CID_BALLAST_CONFIG, "Ballast Configuration"}, + { ZBEE_ZCL_CID_COLOR_CONTROL, ZBEE_ZCL_CID_COLOR_CONTROL, "Color Control"}, + { ZBEE_ZCL_CID_BALLAST_CONFIG, ZBEE_ZCL_CID_BALLAST_CONFIG, "Ballast Configuration"}, /* Measurement and Sensing */ - { ZBEE_ZCL_CID_ILLUMINANCE_MEASUREMENT, "Illuminance Measurement"}, - { ZBEE_ZCL_CID_ILLUMINANCE_LEVEL_SENSING, "Illuminance Level Sensing"}, - { ZBEE_ZCL_CID_TEMPERATURE_MEASUREMENT, "Temperature Measurement"}, - { ZBEE_ZCL_CID_PRESSURE_MEASUREMENT, "Pressure Measurement"}, - { ZBEE_ZCL_CID_FLOW_MEASUREMENT, "Flow Measurement"}, - { ZBEE_ZCL_CID_REL_HUMIDITY_MEASUREMENT, "Relative Humidity Measurement"}, - { ZBEE_ZCL_CID_OCCUPANCY_SENSING, "Occupancy Sensing"}, + { ZBEE_ZCL_CID_ILLUMINANCE_MEASUREMENT, ZBEE_ZCL_CID_ILLUMINANCE_MEASUREMENT, "Illuminance Measurement"}, + { ZBEE_ZCL_CID_ILLUMINANCE_LEVEL_SENSING, ZBEE_ZCL_CID_ILLUMINANCE_LEVEL_SENSING, "Illuminance Level Sensing"}, + { ZBEE_ZCL_CID_TEMPERATURE_MEASUREMENT, ZBEE_ZCL_CID_TEMPERATURE_MEASUREMENT, "Temperature Measurement"}, + { ZBEE_ZCL_CID_PRESSURE_MEASUREMENT, ZBEE_ZCL_CID_PRESSURE_MEASUREMENT, "Pressure Measurement"}, + { ZBEE_ZCL_CID_FLOW_MEASUREMENT, ZBEE_ZCL_CID_FLOW_MEASUREMENT, "Flow Measurement"}, + { ZBEE_ZCL_CID_REL_HUMIDITY_MEASUREMENT, ZBEE_ZCL_CID_REL_HUMIDITY_MEASUREMENT, "Relative Humidity Measurement"}, + { ZBEE_ZCL_CID_OCCUPANCY_SENSING, ZBEE_ZCL_CID_OCCUPANCY_SENSING, "Occupancy Sensing"}, /* Security and Safety */ - { ZBEE_ZCL_CID_IAS_ZONE, "Intruder Alarm System Zone"}, - { ZBEE_ZCL_CID_IAS_ACE, "Intruder Alarm System ACE"}, - { ZBEE_ZCL_CID_IAS_WD, "Intruder Alarm System WD"}, + { ZBEE_ZCL_CID_IAS_ZONE, ZBEE_ZCL_CID_IAS_ZONE, "Intruder Alarm System Zone"}, + { ZBEE_ZCL_CID_IAS_ACE, ZBEE_ZCL_CID_IAS_ACE, "Intruder Alarm System ACE"}, + { ZBEE_ZCL_CID_IAS_WD, ZBEE_ZCL_CID_IAS_WD, "Intruder Alarm System WD"}, /* Protocol Interfaces */ - { ZBEE_ZCL_CID_GENERIC_TUNNEL, "BACnet Generic Tunnel"}, - { ZBEE_ZCL_CID_BACNET_PROTOCOL_TUNNEL, "BACnet Protocol Tunnel"}, - { ZBEE_ZCL_CID_BACNET_ANALOG_INPUT_REG, "BACnet Analog Input (Regular)"}, - { ZBEE_ZCL_CID_BACNET_ANALOG_INPUT_EXT, "BACnet Analog Input (Extended)"}, - { ZBEE_ZCL_CID_BACNET_ANALOG_OUTPUT_REG, "BACnet Analog Output (Regular)"}, - { ZBEE_ZCL_CID_BACNET_ANALOG_OUTPUT_EXT, "BACnet Analog Output (Extended)"}, - { ZBEE_ZCL_CID_BACNET_ANALOG_VALUE_REG, "BACnet Analog Value (Regular)"}, - { ZBEE_ZCL_CID_BACNET_ANALOG_VALUE_EXT, "BACnet Analog Value (Extended)"}, - { ZBEE_ZCL_CID_BACNET_BINARY_INPUT_REG, "BACnet Binary Input (Regular)"}, - { ZBEE_ZCL_CID_BACNET_BINARY_INPUT_EXT, "BACnet Binary Input (Extended)"}, - { ZBEE_ZCL_CID_BACNET_BINARY_OUTPUT_REG, "BACnet Binary Output (Regular)"}, - { ZBEE_ZCL_CID_BACNET_BINARY_OUTPUT_EXT, "BACnet Binary Output (Extended)"}, - { ZBEE_ZCL_CID_BACNET_BINARY_VALUE_REG, "BACnet Binary Value (Regular)"}, - { ZBEE_ZCL_CID_BACNET_BINARY_VALUE_EXT, "BACnet Binary Value (Extended)"}, - { ZBEE_ZCL_CID_BACNET_MULTISTATE_INPUT_REG, "BACnet Multistage Input (Regular)"}, - { ZBEE_ZCL_CID_BACNET_MULTISTATE_INPUT_EXT, "BACnet Multistage Input (Extended)"}, - { ZBEE_ZCL_CID_BACNET_MULTISTATE_OUTPUT_REG, "BACnet Multistage Output (Regular)"}, - { ZBEE_ZCL_CID_BACNET_MULTISTATE_OUTPUT_EXT, "BACnet Multistage Output (Extended)"}, - { ZBEE_ZCL_CID_BACNET_MULTISTATE_VALUE_REG, "BACnet Multistage Value (Regular)"}, - { ZBEE_ZCL_CID_BACNET_MULTISTATE_VALUE_EXT, "BACnet Multistage Value (Extended)"}, + { ZBEE_ZCL_CID_GENERIC_TUNNEL, ZBEE_ZCL_CID_GENERIC_TUNNEL, "BACnet Generic Tunnel"}, + { ZBEE_ZCL_CID_BACNET_PROTOCOL_TUNNEL, ZBEE_ZCL_CID_BACNET_PROTOCOL_TUNNEL, "BACnet Protocol Tunnel"}, + { ZBEE_ZCL_CID_BACNET_ANALOG_INPUT_REG, ZBEE_ZCL_CID_BACNET_ANALOG_INPUT_REG, "BACnet Analog Input (Regular)"}, + { ZBEE_ZCL_CID_BACNET_ANALOG_INPUT_EXT, ZBEE_ZCL_CID_BACNET_ANALOG_INPUT_EXT, "BACnet Analog Input (Extended)"}, + { ZBEE_ZCL_CID_BACNET_ANALOG_OUTPUT_REG, ZBEE_ZCL_CID_BACNET_ANALOG_OUTPUT_REG, "BACnet Analog Output (Regular)"}, + { ZBEE_ZCL_CID_BACNET_ANALOG_OUTPUT_EXT, ZBEE_ZCL_CID_BACNET_ANALOG_OUTPUT_EXT, "BACnet Analog Output (Extended)"}, + { ZBEE_ZCL_CID_BACNET_ANALOG_VALUE_REG, ZBEE_ZCL_CID_BACNET_ANALOG_VALUE_REG, "BACnet Analog Value (Regular)"}, + { ZBEE_ZCL_CID_BACNET_ANALOG_VALUE_EXT, ZBEE_ZCL_CID_BACNET_ANALOG_VALUE_EXT, "BACnet Analog Value (Extended)"}, + { ZBEE_ZCL_CID_BACNET_BINARY_INPUT_REG, ZBEE_ZCL_CID_BACNET_BINARY_INPUT_REG, "BACnet Binary Input (Regular)"}, + { ZBEE_ZCL_CID_BACNET_BINARY_INPUT_EXT, ZBEE_ZCL_CID_BACNET_BINARY_INPUT_EXT, "BACnet Binary Input (Extended)"}, + { ZBEE_ZCL_CID_BACNET_BINARY_OUTPUT_REG, ZBEE_ZCL_CID_BACNET_BINARY_OUTPUT_REG, "BACnet Binary Output (Regular)"}, + { ZBEE_ZCL_CID_BACNET_BINARY_OUTPUT_EXT, ZBEE_ZCL_CID_BACNET_BINARY_OUTPUT_EXT, "BACnet Binary Output (Extended)"}, + { ZBEE_ZCL_CID_BACNET_BINARY_VALUE_REG, ZBEE_ZCL_CID_BACNET_BINARY_VALUE_REG, "BACnet Binary Value (Regular)"}, + { ZBEE_ZCL_CID_BACNET_BINARY_VALUE_EXT, ZBEE_ZCL_CID_BACNET_BINARY_VALUE_EXT, "BACnet Binary Value (Extended)"}, + { ZBEE_ZCL_CID_BACNET_MULTISTATE_INPUT_REG, ZBEE_ZCL_CID_BACNET_MULTISTATE_INPUT_REG, "BACnet Multistage Input (Regular)"}, + { ZBEE_ZCL_CID_BACNET_MULTISTATE_INPUT_EXT, ZBEE_ZCL_CID_BACNET_MULTISTATE_INPUT_EXT, "BACnet Multistage Input (Extended)"}, + { ZBEE_ZCL_CID_BACNET_MULTISTATE_OUTPUT_REG, ZBEE_ZCL_CID_BACNET_MULTISTATE_OUTPUT_REG, "BACnet Multistage Output (Regular)"}, + { ZBEE_ZCL_CID_BACNET_MULTISTATE_OUTPUT_EXT, ZBEE_ZCL_CID_BACNET_MULTISTATE_OUTPUT_EXT, "BACnet Multistage Output (Extended)"}, + { ZBEE_ZCL_CID_BACNET_MULTISTATE_VALUE_REG, ZBEE_ZCL_CID_BACNET_MULTISTATE_VALUE_REG, "BACnet Multistage Value (Regular)"}, + { ZBEE_ZCL_CID_BACNET_MULTISTATE_VALUE_EXT, ZBEE_ZCL_CID_BACNET_MULTISTATE_VALUE_EXT, "BACnet Multistage Value (Extended)"}, /* ZCL Cluster IDs - Smart Energy */ - { ZBEE_ZCL_CID_KEEP_ALIVE, "Keep-Alive"}, - { ZBEE_ZCL_CID_PRICE, "Price"}, - { ZBEE_ZCL_CID_DEMAND_RESPONSE_LOAD_CONTROL, "Demand Response and Load Control"}, - { ZBEE_ZCL_CID_SIMPLE_METERING, "Simple Metering"}, - { ZBEE_ZCL_CID_MESSAGE, "Message"}, - { ZBEE_ZCL_CID_TUNNELING, "Tunneling"}, - { ZBEE_ZCL_CID_PRE_PAYMENT, "Pre-Payment"}, - { ZBEE_ZCL_CID_ENERGY_MANAGEMENT, "Energy Management"}, - { ZBEE_ZCL_CID_CALENDAR, "Calendar"}, - { ZBEE_ZCL_CID_DEVICE_MANAGEMENT, "Device Management"}, - { ZBEE_ZCL_CID_EVENTS, "Events"}, - { ZBEE_ZCL_CID_MDU_PAIRING, "MDU Pairing"}, - { ZBEE_ZCL_CID_SUB_GHZ, "Sub-Ghz"}, - { ZBEE_ZCL_CID_DAILY_SCHEDULE, "Daily Schedule"}, + { ZBEE_ZCL_CID_KEEP_ALIVE, ZBEE_ZCL_CID_KEEP_ALIVE, "Keep-Alive"}, + { ZBEE_ZCL_CID_PRICE, ZBEE_ZCL_CID_PRICE, "Price"}, + { ZBEE_ZCL_CID_DEMAND_RESPONSE_LOAD_CONTROL, ZBEE_ZCL_CID_DEMAND_RESPONSE_LOAD_CONTROL, "Demand Response and Load Control"}, + { ZBEE_ZCL_CID_SIMPLE_METERING, ZBEE_ZCL_CID_SIMPLE_METERING, "Simple Metering"}, + { ZBEE_ZCL_CID_MESSAGE, ZBEE_ZCL_CID_MESSAGE, "Message"}, + { ZBEE_ZCL_CID_TUNNELING, ZBEE_ZCL_CID_TUNNELING, "Tunneling"}, + { ZBEE_ZCL_CID_PRE_PAYMENT, ZBEE_ZCL_CID_PRE_PAYMENT, "Pre-Payment"}, + { ZBEE_ZCL_CID_ENERGY_MANAGEMENT, ZBEE_ZCL_CID_ENERGY_MANAGEMENT, "Energy Management"}, + { ZBEE_ZCL_CID_CALENDAR, ZBEE_ZCL_CID_CALENDAR, "Calendar"}, + { ZBEE_ZCL_CID_DEVICE_MANAGEMENT, ZBEE_ZCL_CID_DEVICE_MANAGEMENT, "Device Management"}, + { ZBEE_ZCL_CID_EVENTS, ZBEE_ZCL_CID_EVENTS, "Events"}, + { ZBEE_ZCL_CID_MDU_PAIRING, ZBEE_ZCL_CID_MDU_PAIRING, "MDU Pairing"}, + { ZBEE_ZCL_CID_SUB_GHZ, ZBEE_ZCL_CID_SUB_GHZ, "Sub-Ghz"}, + { ZBEE_ZCL_CID_DAILY_SCHEDULE, ZBEE_ZCL_CID_DAILY_SCHEDULE, "Daily Schedule"}, /* ZCL Cluster IDs - Key Establishment */ - { ZBEE_ZCL_CID_KE, "Key Establishment"}, + { ZBEE_ZCL_CID_KE, ZBEE_ZCL_CID_KE, "Key Establishment"}, /* ZCL Cluster IDs - Home Automation */ - {ZBEE_ZCL_CID_APPLIANCE_IDENTIFICATION, "Appliance Identification"}, - {ZBEE_ZCL_CID_METER_IDENTIFICATION, "Meter Identification"}, - {ZBEE_ZCL_CID_APPLIANCE_EVENTS_AND_ALERT, "Appliance Events And Alerts"}, - {ZBEE_ZCL_CID_APPLIANCE_STATISTICS, "Appliance Statistics"}, + {ZBEE_ZCL_CID_APPLIANCE_IDENTIFICATION, ZBEE_ZCL_CID_APPLIANCE_IDENTIFICATION, "Appliance Identification"}, + {ZBEE_ZCL_CID_METER_IDENTIFICATION, ZBEE_ZCL_CID_METER_IDENTIFICATION, "Meter Identification"}, + {ZBEE_ZCL_CID_APPLIANCE_EVENTS_AND_ALERT, ZBEE_ZCL_CID_APPLIANCE_EVENTS_AND_ALERT, "Appliance Events And Alerts"}, + {ZBEE_ZCL_CID_APPLIANCE_STATISTICS, ZBEE_ZCL_CID_APPLIANCE_STATISTICS, "Appliance Statistics"}, - {ZBEE_ZCL_CID_ZLL, "ZLL Commissioning"}, - { 0, NULL } + {ZBEE_ZCL_CID_ZLL, ZBEE_ZCL_CID_ZLL, "ZLL Commissioning"}, + +/* ZCL Cluster IDs - Manufacturer Specific */ + {ZBEE_ZCL_CID_MANUFACTURER_SPECIFIC_MIN, ZBEE_ZCL_CID_MANUFACTURER_SPECIFIC_MAX, "Manufacturer Specific"}, + { 0, 0, NULL } }; /* APS Test Profile #2 Cluster Names */ @@ -1879,8 +1882,8 @@ void proto_register_zbee_aps(void) NULL, HFILL }}, { &hf_zbee_aps_cluster, - { "Cluster", "zbee_aps.cluster", FT_UINT16, BASE_HEX, - VALS(zbee_aps_cid_names), 0x0, NULL, HFILL }}, + { "Cluster", "zbee_aps.cluster", FT_UINT16, BASE_HEX | BASE_RANGE_STRING, + RVALS(zbee_aps_cid_names), 0x0, NULL, HFILL }}, { &hf_zbee_aps_profile, { "Profile", "zbee_aps.profile", FT_UINT16, BASE_HEX | BASE_RANGE_STRING, diff --git a/epan/dissectors/packet-zbee-aps.h b/epan/dissectors/packet-zbee-aps.h index 63ce4ff2c9..53e64c3e89 100644 --- a/epan/dissectors/packet-zbee-aps.h +++ b/epan/dissectors/packet-zbee-aps.h @@ -223,6 +223,9 @@ #define ZBEE_ZCL_CID_ZLL 0x1000 +#define ZBEE_ZCL_CID_MANUFACTURER_SPECIFIC_MIN 0xFC00 +#define ZBEE_ZCL_CID_MANUFACTURER_SPECIFIC_MAX 0xFFFF + /* ZCL Test Profile #2 Clusters */ #define ZBEE_APS_T2_CID_TCP 0x0001 #define ZBEE_APS_T2_CID_RESPC 0x0002 @@ -306,7 +309,7 @@ enum { ************************************** */ -extern const value_string zbee_aps_cid_names[]; +extern const range_string zbee_aps_cid_names[]; extern const range_string zbee_aps_apid_names[]; #endif /* PACKET_ZBEE_APS_H*/ diff --git a/epan/dissectors/packet-zbee-nwk-gp.c b/epan/dissectors/packet-zbee-nwk-gp.c index 09b73d7855..c4809e1627 100644 --- a/epan/dissectors/packet-zbee-nwk-gp.c +++ b/epan/dissectors/packet-zbee-nwk-gp.c @@ -2227,7 +2227,7 @@ proto_register_zbee_nwk_gp(void) 0x0, NULL, HFILL } }, { &hf_zbee_nwk_gp_zcl_attr_cluster_id, - { "ZigBee Cluster ID", "zbee_nwk_gp.zcl.attr.cluster_id", FT_UINT16, BASE_HEX, VALS(zbee_aps_cid_names), + { "ZigBee Cluster ID", "zbee_nwk_gp.zcl.attr.cluster_id", FT_UINT16, BASE_HEX | BASE_RANGE_STRING, RVALS(zbee_aps_cid_names), 0x0, NULL, HFILL }}, { &hf_zbee_nwk_gp_cmd_channel_request_toggling_behaviour, diff --git a/epan/dissectors/packet-zbee-zcl-general.c b/epan/dissectors/packet-zbee-zcl-general.c index 35e28113c9..362fa2d91a 100644 --- a/epan/dissectors/packet-zbee-zcl-general.c +++ b/epan/dissectors/packet-zbee-zcl-general.c @@ -3071,7 +3071,7 @@ proto_register_zbee_zcl_scenes(void) 0x00, NULL, HFILL }}, { &hf_zbee_zcl_scenes_extension_set_cluster, - { "Cluster", "zbee_zcl_general.scenes.extension_set.cluster", FT_UINT16, BASE_HEX, VALS(zbee_aps_cid_names), + { "Cluster", "zbee_zcl_general.scenes.extension_set.cluster", FT_UINT16, BASE_HEX | BASE_RANGE_STRING, RVALS(zbee_aps_cid_names), 0x00, NULL, HFILL }}, { &hf_zbee_zcl_scenes_extension_set_onoff, @@ -9632,7 +9632,7 @@ void proto_register_zbee_zcl_part(void) 0x00, NULL, HFILL } }, { &hf_zbee_zcl_part_partitioned_cluster_id, - { "Partitioned Cluster ID", "zbee_zcl_general.part.part_cluster_id", FT_UINT16, BASE_HEX, VALS(zbee_aps_cid_names), + { "Partitioned Cluster ID", "zbee_zcl_general.part.part_cluster_id", FT_UINT16, BASE_HEX | BASE_RANGE_STRING, RVALS(zbee_aps_cid_names), 0x00, NULL, HFILL } }, { &hf_zbee_zcl_part_ack_opt, @@ -15316,7 +15316,7 @@ proto_register_zbee_zcl_gp(void) { "Number of Client clusters", "zbee_zcl_general.gp.pc.n_srv_clusters", FT_UINT8, BASE_DEC, NULL, ZBEE_ZCL_GP_CLUSTER_LIST_LEN_CLI, NULL, HFILL }}, { &hf_zbee_gp_gpd_cluster_id, - { "Cluster ID", "zbee_zcl_general.gp.pc.cluster", FT_UINT8, BASE_HEX, VALS(zbee_aps_cid_names), + { "Cluster ID", "zbee_zcl_general.gp.pc.cluster", FT_UINT8, BASE_HEX | BASE_RANGE_STRING, RVALS(zbee_aps_cid_names), 0x0, NULL, HFILL }}, /* GP Sink Table Request and GP Proxy Table Request commands */ diff --git a/epan/dissectors/packet-zbee-zdp-binding.c b/epan/dissectors/packet-zbee-zdp-binding.c index 2687d06cf9..02d4bcce4b 100644 --- a/epan/dissectors/packet-zbee-zdp-binding.c +++ b/epan/dissectors/packet-zbee-zdp-binding.c @@ -170,7 +170,7 @@ dissect_zbee_zdp_req_bind(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, g offset += 1; ti = proto_tree_add_item_ret_uint(tree, hf_zbee_zdp_cluster, tvb, offset, sizeof_cluster, ENC_LITTLE_ENDIAN, &cluster); offset += sizeof_cluster; - proto_item_append_text(ti, " (%s)", val_to_str(cluster, zbee_aps_cid_names, "Unknown Cluster")); + proto_item_append_text(ti, " (%s)", rval_to_str(cluster, zbee_aps_cid_names, "Unknown Cluster")); if (version >= ZBEE_VERSION_2007) { proto_tree_add_item_ret_uint(tree, hf_zbee_zdp_addr_mode, tvb, offset, 1, ENC_LITTLE_ENDIAN, &dst_mode); @@ -201,7 +201,7 @@ dissect_zbee_zdp_req_bind(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, g zbee_append_info(tree, pinfo, ", Dst: %s", eui64_to_display(wmem_packet_scope(), dst64)); } - zbee_append_info(tree, pinfo, ", %s (Cluster ID: 0x%04x)", val_to_str(cluster, zbee_aps_cid_names, "Unknown Cluster"), cluster); + zbee_append_info(tree, pinfo, ", %s (Cluster ID: 0x%04x)", rval_to_str(cluster, zbee_aps_cid_names, "Unknown Cluster"), cluster); /* Dump any leftover bytes. */ zdp_dump_excess(tvb, offset, pinfo, tree); @@ -231,7 +231,7 @@ dissect_zbee_zdp_req_unbind(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, offset += 1; ti = proto_tree_add_item_ret_uint(tree, hf_zbee_zdp_cluster, tvb, offset, sizeof_cluster, ENC_LITTLE_ENDIAN, &cluster); offset += sizeof_cluster; - proto_item_append_text(ti, " (%s)", val_to_str(cluster, zbee_aps_cid_names, "Unknown Cluster")); + proto_item_append_text(ti, " (%s)", rval_to_str(cluster, zbee_aps_cid_names, "Unknown Cluster")); if (version >= ZBEE_VERSION_2007) { proto_tree_add_item_ret_uint(tree, hf_zbee_zdp_addr_mode, tvb, offset, 1, ENC_LITTLE_ENDIAN, &dst_mode); @@ -262,7 +262,7 @@ dissect_zbee_zdp_req_unbind(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, zbee_append_info(tree, pinfo, ", Dst: %s", eui64_to_display(wmem_packet_scope(), dst64)); } - zbee_append_info(tree, pinfo, ", %s (Cluster ID: 0x%04x)", val_to_str(cluster, zbee_aps_cid_names, "Unknown Cluster"), cluster); + zbee_append_info(tree, pinfo, ", %s (Cluster ID: 0x%04x)", rval_to_str(cluster, zbee_aps_cid_names, "Unknown Cluster"), cluster); /* Dump any leftover bytes. */ zdp_dump_excess(tvb, offset, pinfo, tree); @@ -339,7 +339,7 @@ dissect_zbee_zdp_req_store_bak_bind_entry(tvbuff_t *tvb, packet_info *pinfo, pro offset += 1; ti = proto_tree_add_item_ret_uint(tree, hf_zbee_zdp_cluster, tvb, offset, sizeof_cluster, ENC_LITTLE_ENDIAN, &cluster); offset += sizeof_cluster; - proto_item_append_text(ti, " (%s)", val_to_str(cluster, zbee_aps_cid_names, "Unknown Cluster")); + proto_item_append_text(ti, " (%s)", rval_to_str(cluster, zbee_aps_cid_names, "Unknown Cluster")); proto_tree_add_item_ret_uint(tree, hf_zbee_zdp_addr_mode, tvb, offset, 1, ENC_LITTLE_ENDIAN, &dst_mode); offset += 1; @@ -357,7 +357,7 @@ dissect_zbee_zdp_req_store_bak_bind_entry(tvbuff_t *tvb, packet_info *pinfo, pro zbee_append_info(tree, pinfo, ", Src: %s", eui64_to_display(wmem_packet_scope(), src64)); zbee_append_info(tree, pinfo, ", Src Endpoint: %d", src_ep); - zbee_append_info(tree, pinfo, ", %s (Cluster ID: 0x%04x)", val_to_str(cluster, zbee_aps_cid_names, "Unknown Cluster"), cluster); + zbee_append_info(tree, pinfo, ", %s (Cluster ID: 0x%04x)", rval_to_str(cluster, zbee_aps_cid_names, "Unknown Cluster"), cluster); /* Dump any leftover bytes. */ zdp_dump_excess(tvb, offset, pinfo, tree); diff --git a/epan/dissectors/packet-zbee-zdp-discovery.c b/epan/dissectors/packet-zbee-zdp-discovery.c index 44b205abac..16b8644e78 100644 --- a/epan/dissectors/packet-zbee-zdp-discovery.c +++ b/epan/dissectors/packet-zbee-zdp-discovery.c @@ -198,7 +198,7 @@ dissect_zbee_zdp_req_match_desc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *t for (i=0; i