From 111973c294a575ca201f955c5775dd0be1023467 Mon Sep 17 00:00:00 2001 From: Kenneth Soerensen Date: Sun, 26 Mar 2017 11:56:36 +0200 Subject: ZigBee: Use value_string_ext and VALUE_STRING macros Change-Id: I04d8e1f89e0d6cf34f94ba1b6e0249297834c078 Reviewed-on: https://code.wireshark.org/review/21141 Petri-Dish: Michael Mann Tested-by: Petri Dish Buildbot Reviewed-by: Michael Mann --- epan/dissectors/packet-zbee-zcl-se.c | 1007 +++++++++++++--------------------- 1 file changed, 390 insertions(+), 617 deletions(-) (limited to 'epan/dissectors/packet-zbee-zcl-se.c') diff --git a/epan/dissectors/packet-zbee-zcl-se.c b/epan/dissectors/packet-zbee-zcl-se.c index 8d617ac775..bdf0653db6 100644 --- a/epan/dissectors/packet-zbee-zcl-se.c +++ b/epan/dissectors/packet-zbee-zcl-se.c @@ -41,7 +41,6 @@ /* #### common to all SE clusters ########################################### */ /* ########################################################################## */ -#define ZBEE_ZCL_ATTR_ID_SE_ATTR_REPORT_STATUS 0xFFFE #define ZBEE_ZCL_SE_ATTR_REPORT_PENDING 0x00 #define ZBEE_ZCL_SE_ATTR_REPORT_COMPLETE 0x01 @@ -51,9 +50,6 @@ static const value_string zbee_zcl_se_reporting_status_names[] = { { 0, NULL } }; -#define ZBEE_ZCL_SE_ATTR_NAMES \ - { ZBEE_ZCL_ATTR_ID_SE_ATTR_REPORT_STATUS, "Attribute Reporting Status" } - /*************************/ /* Global Variables */ /*************************/ @@ -63,315 +59,179 @@ static const value_string zbee_zcl_se_reporting_status_names[] = { /* ########################################################################## */ /* Attributes */ -/* Client: Notification AttributeSet / Server: Reading Information Set */ -#define ZBEE_ZCL_ATTR_ID_MET_FUNC_NOTI_FLAGS_CUR_SUM_DEL 0x0000 -#define ZBEE_ZCL_ATTR_ID_MET_NOT_FLAGS2_CUR_SUM_RECV 0x0001 -#define ZBEE_ZCL_ATTR_ID_MET_NOT_FLAGS3_CUR_MAX_DE_DEL 0x0002 -#define ZBEE_ZCL_ATTR_ID_MET_NOT_FLAGS4_CUR_MAX_DE_RECV 0x0003 -#define ZBEE_ZCL_ATTR_ID_MET_NOT_FLAGS5_DFT_SUM 0x0004 -#define ZBEE_ZCL_ATTR_ID_MET_NOT_FLAGS6_DAI_FREE_TIME 0x0005 -#define ZBEE_ZCL_ATTR_ID_MET_NOT_FLAGS7_POW_FAC 0x0006 -#define ZBEE_ZCL_ATTR_ID_MET_NOT_FLAGS8_READ_SNAP_TIME 0x0007 -#define ZBEE_ZCL_ATTR_ID_MET_CUR_MAX_DEMAND_DEL_TIME 0x0008 -#define ZBEE_ZCL_ATTR_ID_MET_CUR_MAX_DEMAND_RECV_TIME 0x0009 -#define ZBEE_ZCL_ATTR_ID_MET_DEFAULT_UPDATE_PERIOD 0x000A -#define ZBEE_ZCL_ATTR_ID_MET_FAST_POLL_UPDATE_PERIOD 0x000B -#define ZBEE_ZCL_ATTR_ID_MET_CUR_BLOCK_PER_CON_DEL 0x000C -#define ZBEE_ZCL_ATTR_ID_MET_DAILY_CON_TARGET 0x000D -#define ZBEE_ZCL_ATTR_ID_MET_CURRENT_BLOCK 0x000E -#define ZBEE_ZCL_ATTR_ID_MET_PROFILE_INTERVAL_PERIOD 0x000F -/* #define ZBEE_ZCL_ATTR_ID_MET_DEPRECATED 0x0010 */ -#define ZBEE_ZCL_ATTR_ID_MET_PRESET_READING_TIME 0x0011 -#define ZBEE_ZCL_ATTR_ID_MET_VOLUME_PER_REPORT 0x0012 -#define ZBEE_ZCL_ATTR_ID_MET_FLOW_RESTRICTION 0x0013 -#define ZBEE_ZCL_ATTR_ID_MET_SUPPLY_STATUS 0x0014 -#define ZBEE_ZCL_ATTR_ID_MET_CUR_INLET_ENER_CAR_SUM 0x0015 -#define ZBEE_ZCL_ATTR_ID_MET_CUR_OUTLET_ENER_CAR_SUM 0x0016 -#define ZBEE_ZCL_ATTR_ID_MET_INLET_TEMPERATURE 0x0017 -#define ZBEE_ZCL_ATTR_ID_MET_OUTLET_TEMPERATURE 0x0018 -#define ZBEE_ZCL_ATTR_ID_MET_CONTROL_TEMPERATURE 0x0019 -#define ZBEE_ZCL_ATTR_ID_MET_CUR_INLET_ENER_CAR_DEM 0x001A -#define ZBEE_ZCL_ATTR_ID_MET_CUR_OUTLET_ENER_CAR_DEM 0x001B -#define ZBEE_ZCL_ATTR_ID_MET_PREV_BLOCK_CON_DEL 0x001C -#define ZBEE_ZCL_ATTR_ID_MET_PREV_BLOCL_CON_RECV 0x001D -#define ZBEE_ZCL_ATTR_ID_MET_CURRENT_BLOCK_RECEIVED 0x001E -#define ZBEE_ZCL_ATTR_ID_MET_DFT_SUMMATION_RECEIVED 0x001F -#define ZBEE_ZCL_ATTR_ID_MET_ACTIVE_REG_TIER_DEL 0x0020 -#define ZBEE_ZCL_ATTR_ID_MET_ACTIVE_REG_TIER_RECV 0x0021 -#define ZBEE_ZCL_ATTR_ID_MET_LAST_BLOCK_SWITCH_TIME 0x0022 -/* Summation TOU Information Set */ -#define ZBEE_ZCL_ATTR_ID_MET_CURRENT_TIER_1_SUM_DEL 0x0100 -#define ZBEE_ZCL_ATTR_ID_MET_CURRENT_TIER_2_SUM_DEL 0x0102 -#define ZBEE_ZCL_ATTR_ID_MET_CURRENT_TIER_3_SUM_DEL 0x0104 -#define ZBEE_ZCL_ATTR_ID_MET_CURRENT_TIER_4_SUM_DEL 0x0106 -/* Meter Status Attribute Set */ -#define ZBEE_ZCL_ATTR_ID_MET_STATUS 0x0200 -#define ZBEE_ZCL_ATTR_ID_MET_REMAIN_BAT_LIFE_DAYS 0x0205 -#define ZBEE_ZCL_ATTR_ID_MET_CURRENT_METER_ID 0x0206 -#define ZBEE_ZCL_ATTR_ID_MET_AMBIENT_CON_IND 0x0207 -/* Formatting */ -#define ZBEE_ZCL_ATTR_ID_MET_UNIT_OF_MEASURE 0x0300 -#define ZBEE_ZCL_ATTR_ID_MET_MULTIPLIER 0x0301 -#define ZBEE_ZCL_ATTR_ID_MET_DIVISOR 0x0302 -#define ZBEE_ZCL_ATTR_ID_MET_SUMMATION_FORMATTING 0x0303 -#define ZBEE_ZCL_ATTR_ID_MET_METERING_DEVICE_TYPE 0x0306 -#define ZBEE_ZCL_ATTR_ID_MET_SITE_ID 0x0307 -#define ZBEE_ZCL_ATTR_ID_MET_CUSTOMER_ID_NUMBER 0x0311 -#define ZBEE_ZCL_ATTR_ID_MET_ALT_UNIT_OF_MEASURE 0x0312 -#define ZBEE_ZCL_ATTR_ID_MET_ALT_CON_FORMATTING 0x0314 -/* Historical Consumption Attribute */ -#define ZBEE_ZCL_ATTR_ID_MET_INSTANT_DEMAND 0x0400 -#define ZBEE_ZCL_ATTR_ID_MET_CUR_DAY_CON_DEL 0x0401 -#define ZBEE_ZCL_ATTR_ID_MET_PREV_DAY_CON_DEL 0x0403 -#define ZBEE_ZCL_ATTR_ID_MET_PREV_2_DAY_CON_DEL 0x0420 -#define ZBEE_ZCL_ATTR_ID_MET_PREV_3_DAY_CON_DEL 0x0422 -#define ZBEE_ZCL_ATTR_ID_MET_PREV_4_DAY_CON_DEL 0x0424 -#define ZBEE_ZCL_ATTR_ID_MET_PREV_5_DAY_CON_DEL 0x0426 -#define ZBEE_ZCL_ATTR_ID_MET_PREV_6_DAY_CON_DEL 0x0428 -#define ZBEE_ZCL_ATTR_ID_MET_PREV_7_DAY_CON_DEL 0x042A -#define ZBEE_ZCL_ATTR_ID_MET_PREV_8_DAY_CON_DEL 0x042C -#define ZBEE_ZCL_ATTR_ID_MET_CUR_WEEK_CON_DEL 0x0430 -#define ZBEE_ZCL_ATTR_ID_MET_PREV_WEEK_CON_DEL 0x0432 -#define ZBEE_ZCL_ATTR_ID_MET_PREV_WEEK_2_CON_DEL 0x0434 -#define ZBEE_ZCL_ATTR_ID_MET_PREV_WEEK_3_CON_DEL 0x0436 -#define ZBEE_ZCL_ATTR_ID_MET_PREV_WEEK_4_CON_DEL 0x0438 -#define ZBEE_ZCL_ATTR_ID_MET_PREV_WEEK_5_CON_DEL 0x043A -#define ZBEE_ZCL_ATTR_ID_MET_CUR_MONTH_CON_DEL 0x0440 -#define ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_CON_DEL 0x0442 -#define ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_2_CON_DEL 0x0444 -#define ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_3_CON_DEL 0x0446 -#define ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_4_CON_DEL 0x0448 -#define ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_5_CON_DEL 0x044A -#define ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_6_CON_DEL 0x044C -#define ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_7_CON_DEL 0x044E -#define ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_8_CON_DEL 0x0450 -#define ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_9_CON_DEL 0x0452 -#define ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_10_CON_DEL 0x0454 -#define ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_11_CON_DEL 0x0456 -#define ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_12_CON_DEL 0x0458 -#define ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_13_CON_DEL 0x045A -/* Supply Limit Attributes */ -#define ZBEE_ZCL_ATTR_ID_MET_SUPPLY_TAMPER_STATE 0x0607 -#define ZBEE_ZCL_ATTR_ID_MET_SUPPLY_DEPLETION_STATE 0x0608 -/* Block Information Attribute Set (Delivered) */ -#define ZBEE_ZCL_ATTR_ID_MET_CUR_NO_TIER_BLOCK_1_SUM_DEL 0x0700 -#define ZBEE_ZCL_ATTR_ID_MET_CUR_NO_TIER_BLOCK_2_SUM_DEL 0x0701 -#define ZBEE_ZCL_ATTR_ID_MET_CUR_NO_TIER_BLOCK_3_SUM_DEL 0x0702 -#define ZBEE_ZCL_ATTR_ID_MET_CUR_NO_TIER_BLOCK_4_SUM_DEL 0x0703 -#define ZBEE_ZCL_ATTR_ID_MET_CUR_TIER_1_BLOCK_1_SUM_DEL 0x0710 -#define ZBEE_ZCL_ATTR_ID_MET_CUR_TIER_1_BLOCK_2_SUM_DEL 0x0711 -#define ZBEE_ZCL_ATTR_ID_MET_CUR_TIER_1_BLOCK_3_SUM_DEL 0x0712 -#define ZBEE_ZCL_ATTR_ID_MET_CUR_TIER_1_BLOCK_4_SUM_DEL 0x0713 -#define ZBEE_ZCL_ATTR_ID_MET_CUR_TIER_2_BLOCK_1_SUM_DEL 0x0720 -#define ZBEE_ZCL_ATTR_ID_MET_CUR_TIER_2_BLOCK_2_SUM_DEL 0x0721 -#define ZBEE_ZCL_ATTR_ID_MET_CUR_TIER_2_BLOCK_3_SUM_DEL 0x0722 -#define ZBEE_ZCL_ATTR_ID_MET_CUR_TIER_2_BLOCK_4_SUM_DEL 0x0723 -#define ZBEE_ZCL_ATTR_ID_MET_CUR_TIER_3_BLOCK_1_SUM_DEL 0x0730 -#define ZBEE_ZCL_ATTR_ID_MET_CUR_TIER_3_BLOCK_2_SUM_DEL 0x0731 -#define ZBEE_ZCL_ATTR_ID_MET_CUR_TIER_3_BLOCK_3_SUM_DEL 0x0732 -#define ZBEE_ZCL_ATTR_ID_MET_CUR_TIER_3_BLOCK_4_SUM_DEL 0x0733 -#define ZBEE_ZCL_ATTR_ID_MET_CUR_TIER_4_BLOCK_1_SUM_DEL 0x0740 -#define ZBEE_ZCL_ATTR_ID_MET_CUR_TIER_4_BLOCK_2_SUM_DEL 0x0741 -#define ZBEE_ZCL_ATTR_ID_MET_CUR_TIER_4_BLOCK_3_SUM_DEL 0x0742 -#define ZBEE_ZCL_ATTR_ID_MET_CUR_TIER_4_BLOCK_4_SUM_DEL 0x0743 -/* Meter Billing Attribute Set */ -#define ZBEE_ZCL_ATTR_ID_MET_BILL_TO_DATE_DELIVERED 0x0A00 -#define ZBEE_ZCL_ATTR_ID_MET_BILL_TO_DATE_TIMESTAMP_DEL 0x0A01 -#define ZBEE_ZCL_ATTR_ID_MET_BILL_DELIVERED_TRAILING_DIGIT 0x0A04 -/* Alternative Historical Consumption Attribute Set */ -#define ZBEE_ZCL_ATTR_ID_MET_CUR_DAY_ALT_CON_DEL 0x0C01 -#define ZBEE_ZCL_ATTR_ID_MET_PREV_DAY_ALT_CON_DEL 0x0C03 -#define ZBEE_ZCL_ATTR_ID_MET_PREV_DAY_2_ALT_CON_DEL 0x0C20 -#define ZBEE_ZCL_ATTR_ID_MET_PREV_DAY_3_ALT_CON_DEL 0x0C22 -#define ZBEE_ZCL_ATTR_ID_MET_PREV_DAY_4_ALT_CON_DEL 0x0C24 -#define ZBEE_ZCL_ATTR_ID_MET_PREV_DAY_5_ALT_CON_DEL 0x0C26 -#define ZBEE_ZCL_ATTR_ID_MET_PREV_DAY_6_ALT_CON_DEL 0x0C28 -#define ZBEE_ZCL_ATTR_ID_MET_PREV_DAY_7_ALT_CON_DEL 0x0C2A -#define ZBEE_ZCL_ATTR_ID_MET_PREV_DAY_8_ALT_CON_DEL 0x0C2C -#define ZBEE_ZCL_ATTR_ID_MET_CUR_WEEK_ALT_CON_DEL 0x0C30 -#define ZBEE_ZCL_ATTR_ID_MET_PREV_WEEK_ALT_CON_DEL 0x0C32 -#define ZBEE_ZCL_ATTR_ID_MET_PREV_WEEK_2_ALT_CON_DEL 0x0C34 -#define ZBEE_ZCL_ATTR_ID_MET_PREV_WEEK_3_ALT_CON_DEL 0x0C36 -#define ZBEE_ZCL_ATTR_ID_MET_PREV_WEEK_4_ALT_CON_DEL 0x0C38 -#define ZBEE_ZCL_ATTR_ID_MET_PREV_WEEK_5_ALT_CON_DEL 0x0C3A -#define ZBEE_ZCL_ATTR_ID_MET_CUR_MONTH_ALT_CON_DEL 0x0C40 -#define ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_ALT_CON_DEL 0x0C42 -#define ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_2_ALT_CON_DEL 0x0C44 -#define ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_3_ALT_CON_DEL 0x0C46 -#define ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_4_ALT_CON_DEL 0x0C48 -#define ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_5_ALT_CON_DEL 0x0C4A -#define ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_6_ALT_CON_DEL 0x0C4C -#define ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_7_ALT_CON_DEL 0x0C4E -#define ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_8_ALT_CON_DEL 0x0C50 -#define ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_9_ALT_CON_DEL 0x0C52 -#define ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_10_ALT_CON_DEL 0x0C54 -#define ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_11_ALT_CON_DEL 0x0C56 -#define ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_12_ALT_CON_DEL 0x0C58 -#define ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_13_ALT_CON_DEL 0x0C5A - -static const value_string zbee_zcl_met_attr_names[] = { - /* Client: Notification AttributeSet / Server: Reading Information Set */ - { ZBEE_ZCL_ATTR_ID_MET_FUNC_NOTI_FLAGS_CUR_SUM_DEL, "Client: Functional Notification Flags / Server: Current Summation Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_NOT_FLAGS2_CUR_SUM_RECV, "Client: Notification Flag 2 / Server: Current Summation Received" }, - { ZBEE_ZCL_ATTR_ID_MET_NOT_FLAGS3_CUR_MAX_DE_DEL, "Client: Notification Flag 3 / Server: Current Max Demand Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_NOT_FLAGS4_CUR_MAX_DE_RECV, "Client: Notification Flag 4 / Server: Current Max Demand Received" }, - { ZBEE_ZCL_ATTR_ID_MET_NOT_FLAGS5_DFT_SUM, "Client: Notification Flag 5 / Server: DFTSummation" }, - { ZBEE_ZCL_ATTR_ID_MET_NOT_FLAGS6_DAI_FREE_TIME, "Client: Notification Flag 6 / Server: Daily Freeze Time" }, - { ZBEE_ZCL_ATTR_ID_MET_NOT_FLAGS7_POW_FAC, "Client: Notification Flag 7 / Server: Power Factor" }, - { ZBEE_ZCL_ATTR_ID_MET_NOT_FLAGS8_READ_SNAP_TIME, "Client: Notification Flag 8 / Server: Reading Snapshot Time" }, - { ZBEE_ZCL_ATTR_ID_MET_CUR_MAX_DEMAND_DEL_TIME, "Current Max Demand Delivered Time" }, - { ZBEE_ZCL_ATTR_ID_MET_CUR_MAX_DEMAND_RECV_TIME, "Current Max Demand Received Time" }, - { ZBEE_ZCL_ATTR_ID_MET_DEFAULT_UPDATE_PERIOD, "Default Update Period" }, - { ZBEE_ZCL_ATTR_ID_MET_FAST_POLL_UPDATE_PERIOD, "Fast Poll Update Period" }, - { ZBEE_ZCL_ATTR_ID_MET_CUR_BLOCK_PER_CON_DEL, "Current Block Period Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_DAILY_CON_TARGET, "Daily Consumption Target" }, - { ZBEE_ZCL_ATTR_ID_MET_CURRENT_BLOCK, "Current Block" }, - { ZBEE_ZCL_ATTR_ID_MET_PROFILE_INTERVAL_PERIOD, "Profile Interval Period" }, -/* { ZBEE_ZCL_ATTR_ID_MET_DEPRECATED, "Deprecated" }, */ - { ZBEE_ZCL_ATTR_ID_MET_PRESET_READING_TIME, "Preset Reading Time" }, - { ZBEE_ZCL_ATTR_ID_MET_VOLUME_PER_REPORT, "Volume Per Report" }, - { ZBEE_ZCL_ATTR_ID_MET_FLOW_RESTRICTION, "Flow Restriction" }, - { ZBEE_ZCL_ATTR_ID_MET_SUPPLY_STATUS, "Supply Status" }, - { ZBEE_ZCL_ATTR_ID_MET_CUR_INLET_ENER_CAR_SUM, "Current Inlet Energy Carrier Summation" }, - { ZBEE_ZCL_ATTR_ID_MET_CUR_OUTLET_ENER_CAR_SUM, "Current Outlet Energy Carrier Summation" }, - { ZBEE_ZCL_ATTR_ID_MET_INLET_TEMPERATURE, "Inlet Temperature" }, - { ZBEE_ZCL_ATTR_ID_MET_OUTLET_TEMPERATURE, "Outlet Temperature" }, - { ZBEE_ZCL_ATTR_ID_MET_CONTROL_TEMPERATURE, "Control Temperature" }, - { ZBEE_ZCL_ATTR_ID_MET_CUR_INLET_ENER_CAR_DEM, "Current Inlet Energy Carrier Demand" }, - { ZBEE_ZCL_ATTR_ID_MET_CUR_OUTLET_ENER_CAR_DEM, "Current Outlet Energy Carrier Demand" }, - { ZBEE_ZCL_ATTR_ID_MET_PREV_BLOCK_CON_DEL, "Previous Block Period Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_PREV_BLOCL_CON_RECV, "Current Block Period Consumption Received" }, - { ZBEE_ZCL_ATTR_ID_MET_CURRENT_BLOCK_RECEIVED, "Current Block Received" }, - { ZBEE_ZCL_ATTR_ID_MET_DFT_SUMMATION_RECEIVED, "DFT Summation Received" }, - { ZBEE_ZCL_ATTR_ID_MET_ACTIVE_REG_TIER_DEL, "Active Register Tier Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_ACTIVE_REG_TIER_RECV, "Active Register Tier Received" }, - { ZBEE_ZCL_ATTR_ID_MET_LAST_BLOCK_SWITCH_TIME, "Last Block Switch Time" }, - /* Summation TOU Information Set */ - { ZBEE_ZCL_ATTR_ID_MET_CURRENT_TIER_1_SUM_DEL, "Current Tier 1 Summation Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_CURRENT_TIER_2_SUM_DEL, "Current Tier 2 Summation Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_CURRENT_TIER_3_SUM_DEL, "Current Tier 3 Summation Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_CURRENT_TIER_4_SUM_DEL, "Current Tier 4 Summation Delivered" }, - /* Meter Status Attribute Set */ - { ZBEE_ZCL_ATTR_ID_MET_STATUS, "Status" }, - { ZBEE_ZCL_ATTR_ID_MET_REMAIN_BAT_LIFE_DAYS, "Remaining Battery Life in Days" }, - { ZBEE_ZCL_ATTR_ID_MET_CURRENT_METER_ID, "Current Meter ID" }, - { ZBEE_ZCL_ATTR_ID_MET_AMBIENT_CON_IND, "Ambient Consumption Indicator" }, - /* Formatting */ - { ZBEE_ZCL_ATTR_ID_MET_UNIT_OF_MEASURE, "Unit of Measure" }, - { ZBEE_ZCL_ATTR_ID_MET_MULTIPLIER, "Multiplier" }, - { ZBEE_ZCL_ATTR_ID_MET_DIVISOR, "Divisor" }, - { ZBEE_ZCL_ATTR_ID_MET_SUMMATION_FORMATTING, "Summation Formatting" }, - { ZBEE_ZCL_ATTR_ID_MET_METERING_DEVICE_TYPE, "Metering Device Type" }, - { ZBEE_ZCL_ATTR_ID_MET_SITE_ID, "Site ID" }, - { ZBEE_ZCL_ATTR_ID_MET_CUSTOMER_ID_NUMBER, "Customer ID Number" }, - { ZBEE_ZCL_ATTR_ID_MET_ALT_UNIT_OF_MEASURE, "Alternative Unit of Measure" }, - { ZBEE_ZCL_ATTR_ID_MET_ALT_CON_FORMATTING, "Alternative Consumption Formatting" }, - /* Historical Consumption Attribute */ - { ZBEE_ZCL_ATTR_ID_MET_INSTANT_DEMAND, "Instantaneous Demand" }, - { ZBEE_ZCL_ATTR_ID_MET_CUR_DAY_CON_DEL, "Current Day Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_PREV_DAY_CON_DEL, "Previous Day Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_PREV_2_DAY_CON_DEL, "Previous Day 2 Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_PREV_3_DAY_CON_DEL, "Previous Day 3 Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_PREV_4_DAY_CON_DEL, "Previous Day 4 Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_PREV_5_DAY_CON_DEL, "Previous Day 5 Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_PREV_6_DAY_CON_DEL, "Previous Day 6 Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_PREV_7_DAY_CON_DEL, "Previous Day 7 Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_PREV_8_DAY_CON_DEL, "Previous Day 8 Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_CUR_WEEK_CON_DEL, "Current Week Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_PREV_WEEK_CON_DEL, "Previous Week Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_PREV_WEEK_2_CON_DEL, "Previous Week 2 Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_PREV_WEEK_3_CON_DEL, "Previous Week 3 Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_PREV_WEEK_4_CON_DEL, "Previous Week 4 Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_PREV_WEEK_5_CON_DEL, "Previous Week 5 Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_CUR_MONTH_CON_DEL, "Current Month Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_CON_DEL, "Previous Month Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_2_CON_DEL, "Previous Month 2 Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_3_CON_DEL, "Previous Month 3 Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_4_CON_DEL, "Previous Month 4 Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_5_CON_DEL, "Previous Month 5 Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_6_CON_DEL, "Previous Month 6 Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_7_CON_DEL, "Previous Month 7 Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_8_CON_DEL, "Previous Month 8 Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_9_CON_DEL, "Previous Month 9 Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_10_CON_DEL, "Previous Month 10 Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_11_CON_DEL, "Previous Month 11 Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_12_CON_DEL, "Previous Month 12 Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_13_CON_DEL, "Previous Month 13 Consumption Delivered" }, - /* Supply Limit Attributes */ - { ZBEE_ZCL_ATTR_ID_MET_SUPPLY_TAMPER_STATE, "Supply Tamper State" }, - { ZBEE_ZCL_ATTR_ID_MET_SUPPLY_DEPLETION_STATE, "Supply Depletion State" }, - /* Block Information Attribute Set (Delivered) */ - { ZBEE_ZCL_ATTR_ID_MET_CUR_NO_TIER_BLOCK_1_SUM_DEL, "Current No Tier Block 1 Summation Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_CUR_NO_TIER_BLOCK_2_SUM_DEL, "Current No Tier Block 2 Summation Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_CUR_NO_TIER_BLOCK_3_SUM_DEL, "Current No Tier Block 3 Summation Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_CUR_NO_TIER_BLOCK_4_SUM_DEL, "Current No Tier Block 4 Summation Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_CUR_TIER_1_BLOCK_1_SUM_DEL, "Current Tier 1 Block 1 Summation Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_CUR_TIER_1_BLOCK_2_SUM_DEL, "Current Tier 1 Block 2 Summation Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_CUR_TIER_1_BLOCK_3_SUM_DEL, "Current Tier 1 Block 3 Summation Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_CUR_TIER_1_BLOCK_4_SUM_DEL, "Current Tier 1 Block 4 Summation Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_CUR_TIER_2_BLOCK_1_SUM_DEL, "Current Tier 2 Block 1 Summation Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_CUR_TIER_2_BLOCK_2_SUM_DEL, "Current Tier 2 Block 2 Summation Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_CUR_TIER_2_BLOCK_3_SUM_DEL, "Current Tier 2 Block 3 Summation Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_CUR_TIER_2_BLOCK_4_SUM_DEL, "Current Tier 2 Block 4 Summation Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_CUR_TIER_3_BLOCK_1_SUM_DEL, "Current Tier 3 Block 1 Summation Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_CUR_TIER_3_BLOCK_2_SUM_DEL, "Current Tier 3 Block 2 Summation Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_CUR_TIER_3_BLOCK_3_SUM_DEL, "Current Tier 3 Block 3 Summation Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_CUR_TIER_3_BLOCK_4_SUM_DEL, "Current Tier 3 Block 4 Summation Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_CUR_TIER_4_BLOCK_1_SUM_DEL, "Current Tier 4 Block 1 Summation Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_CUR_TIER_4_BLOCK_2_SUM_DEL, "Current Tier 4 Block 2 Summation Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_CUR_TIER_4_BLOCK_3_SUM_DEL, "Current Tier 4 Block 3 Summation Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_CUR_TIER_4_BLOCK_4_SUM_DEL, "Current Tier 4 Block 4 Summation Delivered" }, - /* Meter Billing Attribute Set */ - { ZBEE_ZCL_ATTR_ID_MET_BILL_TO_DATE_DELIVERED, "Bill To Date Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_BILL_TO_DATE_TIMESTAMP_DEL, "BillToDateTimeStampDelivered" }, - { ZBEE_ZCL_ATTR_ID_MET_BILL_DELIVERED_TRAILING_DIGIT, "Bill Delivered Trailing Digit" }, - /* Alternative Historical Consumption Attribute Set */ - { ZBEE_ZCL_ATTR_ID_MET_CUR_DAY_ALT_CON_DEL, "Current Day Alternative Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_PREV_DAY_ALT_CON_DEL, "Previous Day Alternative Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_PREV_DAY_2_ALT_CON_DEL, "Previous Day 2 Alternative Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_PREV_DAY_3_ALT_CON_DEL, "Previous Day 3 Alternative Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_PREV_DAY_4_ALT_CON_DEL, "Previous Day 4 Alternative Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_PREV_DAY_5_ALT_CON_DEL, "Previous Day 5 Alternative Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_PREV_DAY_6_ALT_CON_DEL, "Previous Day 6 Alternative Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_PREV_DAY_7_ALT_CON_DEL, "Previous Day 7 Alternative Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_PREV_DAY_8_ALT_CON_DEL, "Previous Day 8 Alternative Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_CUR_WEEK_ALT_CON_DEL, "Current Week Alternative Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_PREV_WEEK_ALT_CON_DEL, "Previous Week Alternative Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_PREV_WEEK_2_ALT_CON_DEL, "Previous Week 2 Alternative Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_PREV_WEEK_3_ALT_CON_DEL, "Previous Week 3 Alternative Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_PREV_WEEK_4_ALT_CON_DEL, "Previous Week 4 Alternative Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_PREV_WEEK_5_ALT_CON_DEL, "Previous Week 5 Alternative Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_CUR_MONTH_ALT_CON_DEL, "Current Month Alternative Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_ALT_CON_DEL, "Previous Month Alternative Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_2_ALT_CON_DEL, "Previous Month 2 Alternative Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_3_ALT_CON_DEL, "Previous Month 3 Alternative Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_4_ALT_CON_DEL, "Previous Month 4 Alternative Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_5_ALT_CON_DEL, "Previous Month 5 Alternative Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_6_ALT_CON_DEL, "Previous Month 6 Alternative Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_7_ALT_CON_DEL, "Previous Month 7 Alternative Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_8_ALT_CON_DEL, "Previous Month 8 Alternative Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_9_ALT_CON_DEL, "Previous Month 9 Alternative Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_10_ALT_CON_DEL, "Previous Month 10 Alternative Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_11_ALT_CON_DEL, "Previous Month 11 Alternative Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_12_ALT_CON_DEL, "Previous Month 12 Alternative Consumption Delivered" }, - { ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_13_ALT_CON_DEL, "Previous Month 13 Alternative Consumption Delivered" }, - /* Smart Energy */ - ZBEE_ZCL_SE_ATTR_NAMES, - { 0, NULL } -}; +#define zbee_zcl_met_attr_names_VALUE_STRING_LIST(XXX) \ +/* Client: Notification AttributeSet / Server: Reading Information Set */ \ + XXX(ZBEE_ZCL_ATTR_ID_MET_FUNC_NOTI_FLAGS_CUR_SUM_DEL, 0x0000, "Client: Functional Notification Flags / Server: Current Summation Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_NOT_FLAGS2_CUR_SUM_RECV, 0x0001, "Client: Notification Flag 2 / Server: Current Summation Received" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_NOT_FLAGS3_CUR_MAX_DE_DEL, 0x0002, "Client: Notification Flag 3 / Server: Current Max Demand Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_NOT_FLAGS4_CUR_MAX_DE_RECV, 0x0003, "Client: Notification Flag 4 / Server: Current Max Demand Received" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_NOT_FLAGS5_DFT_SUM, 0x0004, "Client: Notification Flag 5 / Server: DFTSummation" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_NOT_FLAGS6_DAI_FREE_TIME, 0x0005, "Client: Notification Flag 6 / Server: Daily Freeze Time" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_NOT_FLAGS7_POW_FAC, 0x0006, "Client: Notification Flag 7 / Server: Power Factor" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_NOT_FLAGS8_READ_SNAP_TIME, 0x0007, "Client: Notification Flag 8 / Server: Reading Snapshot Time" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_CUR_MAX_DEMAND_DEL_TIME, 0x0008, "Current Max Demand Delivered Time" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_CUR_MAX_DEMAND_RECV_TIME, 0x0009, "Current Max Demand Received Time" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_DEFAULT_UPDATE_PERIOD, 0x000A, "Default Update Period" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_FAST_POLL_UPDATE_PERIOD, 0x000B, "Fast Poll Update Period" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_CUR_BLOCK_PER_CON_DEL, 0x000C, "Current Block Period Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_DAILY_CON_TARGET, 0x000D, "Daily Consumption Target" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_CURRENT_BLOCK, 0x000E, "Current Block" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PROFILE_INTERVAL_PERIOD, 0x000F, "Profile Interval Period" ) \ +/* XXX(ZBEE_ZCL_ATTR_ID_MET_DEPRECATED, 0x0010, "Deprecated" }, */ \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PRESET_READING_TIME, 0x0011, "Preset Reading Time" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_VOLUME_PER_REPORT, 0x0012, "Volume Per Report" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_FLOW_RESTRICTION, 0x0013, "Flow Restriction" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_SUPPLY_STATUS, 0x0014, "Supply Status" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_CUR_INLET_ENER_CAR_SUM, 0x0015, "Current Inlet Energy Carrier Summation" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_CUR_OUTLET_ENER_CAR_SUM, 0x0016, "Current Outlet Energy Carrier Summation" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_INLET_TEMPERATURE, 0x0017, "Inlet Temperature" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_OUTLET_TEMPERATURE, 0x0018, "Outlet Temperature" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_CONTROL_TEMPERATURE, 0x0019, "Control Temperature" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_CUR_INLET_ENER_CAR_DEM, 0x001A, "Current Inlet Energy Carrier Demand" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_CUR_OUTLET_ENER_CAR_DEM, 0x001B, "Current Outlet Energy Carrier Demand" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PREV_BLOCK_CON_DEL, 0x001C, "Previous Block Period Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PREV_BLOCL_CON_RECV, 0x001D, "Current Block Period Consumption Received" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_CURRENT_BLOCK_RECEIVED, 0x001E, "Current Block Received" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_DFT_SUMMATION_RECEIVED, 0x001F, "DFT Summation Received" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_ACTIVE_REG_TIER_DEL, 0x0020, "Active Register Tier Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_ACTIVE_REG_TIER_RECV, 0x0021, "Active Register Tier Received" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_LAST_BLOCK_SWITCH_TIME, 0x0022, "Last Block Switch Time" ) \ +/* Summation TOU Information Set */ \ + XXX(ZBEE_ZCL_ATTR_ID_MET_CURRENT_TIER_1_SUM_DEL, 0x0100, "Current Tier 1 Summation Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_CURRENT_TIER_2_SUM_DEL, 0x0102, "Current Tier 2 Summation Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_CURRENT_TIER_3_SUM_DEL, 0x0104, "Current Tier 3 Summation Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_CURRENT_TIER_4_SUM_DEL, 0x0106, "Current Tier 4 Summation Delivered" ) \ +/* Meter Status Attribute Set */ \ + XXX(ZBEE_ZCL_ATTR_ID_MET_STATUS, 0x0200, "Status" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_REMAIN_BAT_LIFE_DAYS, 0x0205, "Remaining Battery Life in Days" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_CURRENT_METER_ID, 0x0206, "Current Meter ID" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_AMBIENT_CON_IND, 0x0207, "Ambient Consumption Indicator" ) \ +/* Formatting */ \ + XXX(ZBEE_ZCL_ATTR_ID_MET_UNIT_OF_MEASURE, 0x0300, "Unit of Measure" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_MULTIPLIER, 0x0301, "Multiplier" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_DIVISOR, 0x0302, "Divisor" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_SUMMATION_FORMATTING, 0x0303, "Summation Formatting" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_METERING_DEVICE_TYPE, 0x0306, "Metering Device Type" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_SITE_ID, 0x0307, "Site ID" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_CUSTOMER_ID_NUMBER, 0x0311, "Customer ID Number" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_ALT_UNIT_OF_MEASURE, 0x0312, "Alternative Unit of Measure" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_ALT_CON_FORMATTING, 0x0314, "Alternative Consumption Formatting" ) \ +/* Historical Consumption Attribute */ \ + XXX(ZBEE_ZCL_ATTR_ID_MET_INSTANT_DEMAND, 0x0400, "Instantaneous Demand" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_CUR_DAY_CON_DEL, 0x0401, "Current Day Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PREV_DAY_CON_DEL, 0x0403, "Previous Day Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PREV_2_DAY_CON_DEL, 0x0420, "Previous Day 2 Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PREV_3_DAY_CON_DEL, 0x0422, "Previous Day 3 Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PREV_4_DAY_CON_DEL, 0x0424, "Previous Day 4 Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PREV_5_DAY_CON_DEL, 0x0426, "Previous Day 5 Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PREV_6_DAY_CON_DEL, 0x0428, "Previous Day 6 Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PREV_7_DAY_CON_DEL, 0x042A, "Previous Day 7 Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PREV_8_DAY_CON_DEL, 0x042C, "Previous Day 8 Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_CUR_WEEK_CON_DEL, 0x0430, "Current Week Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PREV_WEEK_CON_DEL, 0x0432, "Previous Week Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PREV_WEEK_2_CON_DEL, 0x0434, "Previous Week 2 Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PREV_WEEK_3_CON_DEL, 0x0436, "Previous Week 3 Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PREV_WEEK_4_CON_DEL, 0x0438, "Previous Week 4 Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PREV_WEEK_5_CON_DEL, 0x043A, "Previous Week 5 Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_CUR_MONTH_CON_DEL, 0x0440, "Current Month Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_CON_DEL, 0x0442, "Previous Month Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_2_CON_DEL, 0x0444, "Previous Month 2 Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_3_CON_DEL, 0x0446, "Previous Month 3 Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_4_CON_DEL, 0x0448, "Previous Month 4 Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_5_CON_DEL, 0x044A, "Previous Month 5 Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_6_CON_DEL, 0x044C, "Previous Month 6 Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_7_CON_DEL, 0x044E, "Previous Month 7 Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_8_CON_DEL, 0x0450, "Previous Month 8 Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_9_CON_DEL, 0x0452, "Previous Month 9 Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_10_CON_DEL, 0x0454, "Previous Month 10 Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_11_CON_DEL, 0x0456, "Previous Month 11 Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_12_CON_DEL, 0x0458, "Previous Month 12 Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_13_CON_DEL, 0x045A, "Previous Month 13 Consumption Delivered" ) \ +/* Supply Limit Attributes */ \ + XXX(ZBEE_ZCL_ATTR_ID_MET_SUPPLY_TAMPER_STATE, 0x0607, "Supply Tamper State" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_SUPPLY_DEPLETION_STATE, 0x0608, "Supply Depletion State" ) \ +/* Block Information Attribute Set (Delivered) */ \ + XXX(ZBEE_ZCL_ATTR_ID_MET_CUR_NO_TIER_BLOCK_1_SUM_DEL, 0x0700, "Current No Tier Block 1 Summation Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_CUR_NO_TIER_BLOCK_2_SUM_DEL, 0x0701, "Current No Tier Block 2 Summation Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_CUR_NO_TIER_BLOCK_3_SUM_DEL, 0x0702, "Current No Tier Block 3 Summation Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_CUR_NO_TIER_BLOCK_4_SUM_DEL, 0x0703, "Current No Tier Block 4 Summation Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_CUR_TIER_1_BLOCK_1_SUM_DEL, 0x0710, "Current Tier 1 Block 1 Summation Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_CUR_TIER_1_BLOCK_2_SUM_DEL, 0x0711, "Current Tier 1 Block 2 Summation Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_CUR_TIER_1_BLOCK_3_SUM_DEL, 0x0712, "Current Tier 1 Block 3 Summation Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_CUR_TIER_1_BLOCK_4_SUM_DEL, 0x0713, "Current Tier 1 Block 4 Summation Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_CUR_TIER_2_BLOCK_1_SUM_DEL, 0x0720, "Current Tier 2 Block 1 Summation Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_CUR_TIER_2_BLOCK_2_SUM_DEL, 0x0721, "Current Tier 2 Block 2 Summation Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_CUR_TIER_2_BLOCK_3_SUM_DEL, 0x0722, "Current Tier 2 Block 3 Summation Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_CUR_TIER_2_BLOCK_4_SUM_DEL, 0x0723, "Current Tier 2 Block 4 Summation Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_CUR_TIER_3_BLOCK_1_SUM_DEL, 0x0730, "Current Tier 3 Block 1 Summation Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_CUR_TIER_3_BLOCK_2_SUM_DEL, 0x0731, "Current Tier 3 Block 2 Summation Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_CUR_TIER_3_BLOCK_3_SUM_DEL, 0x0732, "Current Tier 3 Block 3 Summation Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_CUR_TIER_3_BLOCK_4_SUM_DEL, 0x0733, "Current Tier 3 Block 4 Summation Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_CUR_TIER_4_BLOCK_1_SUM_DEL, 0x0740, "Current Tier 4 Block 1 Summation Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_CUR_TIER_4_BLOCK_2_SUM_DEL, 0x0741, "Current Tier 4 Block 2 Summation Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_CUR_TIER_4_BLOCK_3_SUM_DEL, 0x0742, "Current Tier 4 Block 3 Summation Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_CUR_TIER_4_BLOCK_4_SUM_DEL, 0x0743, "Current Tier 4 Block 4 Summation Delivered" ) \ +/* Meter Billing Attribute Set */ \ + XXX(ZBEE_ZCL_ATTR_ID_MET_BILL_TO_DATE_DELIVERED, 0x0A00, "Bill To Date Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_BILL_TO_DATE_TIMESTAMP_DEL, 0x0A01, "BillToDateTimeStampDelivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_BILL_DELIVERED_TRAILING_DIGIT, 0x0A04, "Bill Delivered Trailing Digit" ) \ +/* Alternative Historical Consumption Attribute Set */ \ + XXX(ZBEE_ZCL_ATTR_ID_MET_CUR_DAY_ALT_CON_DEL, 0x0C01, "Current Day Alternative Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PREV_DAY_ALT_CON_DEL, 0x0C03, "Previous Day Alternative Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PREV_DAY_2_ALT_CON_DEL, 0x0C20, "Previous Day 2 Alternative Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PREV_DAY_3_ALT_CON_DEL, 0x0C22, "Previous Day 3 Alternative Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PREV_DAY_4_ALT_CON_DEL, 0x0C24, "Previous Day 4 Alternative Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PREV_DAY_5_ALT_CON_DEL, 0x0C26, "Previous Day 5 Alternative Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PREV_DAY_6_ALT_CON_DEL, 0x0C28, "Previous Day 6 Alternative Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PREV_DAY_7_ALT_CON_DEL, 0x0C2A, "Previous Day 7 Alternative Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PREV_DAY_8_ALT_CON_DEL, 0x0C2C, "Previous Day 8 Alternative Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_CUR_WEEK_ALT_CON_DEL, 0x0C30, "Current Week Alternative Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PREV_WEEK_ALT_CON_DEL, 0x0C32, "Previous Week Alternative Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PREV_WEEK_2_ALT_CON_DEL, 0x0C34, "Previous Week 2 Alternative Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PREV_WEEK_3_ALT_CON_DEL, 0x0C36, "Previous Week 3 Alternative Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PREV_WEEK_4_ALT_CON_DEL, 0x0C38, "Previous Week 4 Alternative Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PREV_WEEK_5_ALT_CON_DEL, 0x0C3A, "Previous Week 5 Alternative Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_CUR_MONTH_ALT_CON_DEL, 0x0C40, "Current Month Alternative Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_ALT_CON_DEL, 0x0C42, "Previous Month Alternative Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_2_ALT_CON_DEL, 0x0C44, "Previous Month 2 Alternative Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_3_ALT_CON_DEL, 0x0C46, "Previous Month 3 Alternative Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_4_ALT_CON_DEL, 0x0C48, "Previous Month 4 Alternative Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_5_ALT_CON_DEL, 0x0C4A, "Previous Month 5 Alternative Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_6_ALT_CON_DEL, 0x0C4C, "Previous Month 6 Alternative Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_7_ALT_CON_DEL, 0x0C4E, "Previous Month 7 Alternative Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_8_ALT_CON_DEL, 0x0C50, "Previous Month 8 Alternative Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_9_ALT_CON_DEL, 0x0C52, "Previous Month 9 Alternative Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_10_ALT_CON_DEL, 0x0C54, "Previous Month 10 Alternative Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_11_ALT_CON_DEL, 0x0C56, "Previous Month 11 Alternative Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_12_ALT_CON_DEL, 0x0C58, "Previous Month 12 Alternative Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_MET_PREV_MONTH_13_ALT_CON_DEL, 0x0C5A, "Previous Month 13 Alternative Consumption Delivered" ) \ +/* Smart Energy */ \ + XXX(ZBEE_ZCL_ATTR_ID_SE_ATTR_REPORT_STATUS_MET, 0xFFFE, "Attribute Reporting Status" ) + +VALUE_STRING_ENUM(zbee_zcl_met_attr_names); +VALUE_STRING_ARRAY(zbee_zcl_met_attr_names); +static value_string_ext zbee_zcl_met_attr_names_ext = VALUE_STRING_EXT_INIT(zbee_zcl_met_attr_names); /* Server Commands Received */ -#define ZBEE_ZCL_CMD_ID_MET_REQUEST_MIRROR_RSP 0x01 -#define ZBEE_ZCL_CMD_ID_MET_GET_SNAPSHOT 0x06 -#define ZBEE_ZCL_CMD_ID_MET_GET_SAMPLED_DATA 0x08 -#define ZBEE_ZCL_CMD_ID_MET_LOCAL_CHANGE_SUPPLY 0x0C +#define zbee_zcl_met_srv_rx_cmd_names_VALUE_STRING_LIST(XXX) \ + XXX(ZBEE_ZCL_CMD_ID_MET_REQUEST_MIRROR_RSP, 0x01, "Request Mirror Response" ) \ + XXX(ZBEE_ZCL_CMD_ID_MET_GET_SNAPSHOT, 0x06, "Get Snapshot" ) \ + XXX(ZBEE_ZCL_CMD_ID_MET_GET_SAMPLED_DATA, 0x08, "Get Sampled Data" ) \ + XXX(ZBEE_ZCL_CMD_ID_MET_LOCAL_CHANGE_SUPPLY, 0x0C, "Local Change Supply" ) + +VALUE_STRING_ENUM(zbee_zcl_met_srv_rx_cmd_names); +VALUE_STRING_ARRAY(zbee_zcl_met_srv_rx_cmd_names); /* Server Commands Generated */ -#define ZBEE_ZCL_CMD_ID_MET_REQUEST_MIRROR 0x01 -#define ZBEE_ZCL_CMD_ID_MET_PUBLISH_SNAPSHOT 0x06 -#define ZBEE_ZCL_CMD_ID_MET_GET_SAMPLED_DATA_RSP 0x07 -#define ZBEE_ZCL_CMD_ID_MET_CONFIGURE_MIRROR 0x08 -#define ZBEE_ZCL_CMD_ID_MET_GET_NOTIFIED_MESSAGE 0x0B +#define zbee_zcl_met_srv_tx_cmd_names_VALUE_STRING_LIST(XXX) \ + XXX(ZBEE_ZCL_CMD_ID_MET_REQUEST_MIRROR, 0x01, "Request Mirror" ) \ + XXX(ZBEE_ZCL_CMD_ID_MET_PUBLISH_SNAPSHOT, 0x06, "Publish Snapshot" ) \ + XXX(ZBEE_ZCL_CMD_ID_MET_GET_SAMPLED_DATA_RSP, 0x07, "Get Sampled Data Response" ) \ + XXX(ZBEE_ZCL_CMD_ID_MET_CONFIGURE_MIRROR, 0x08, "Configure Mirror" ) \ + XXX(ZBEE_ZCL_CMD_ID_MET_GET_NOTIFIED_MESSAGE, 0x0B, "Get Notified Message" ) + +VALUE_STRING_ENUM(zbee_zcl_met_srv_tx_cmd_names); +VALUE_STRING_ARRAY(zbee_zcl_met_srv_tx_cmd_names); /*************************/ /* Function Declarations */ @@ -399,25 +259,6 @@ static int hf_zbee_zcl_met_attr_reporting_status = -1; /* Initialize the subtree pointers */ static gint ett_zbee_zcl_met = -1; -/* Server Commands Received */ -static const value_string zbee_zcl_met_srv_rx_cmd_names[] = { - { ZBEE_ZCL_CMD_ID_MET_REQUEST_MIRROR_RSP, "Request Mirror Response" }, - { ZBEE_ZCL_CMD_ID_MET_GET_SNAPSHOT, "Get Snapshot" }, - { ZBEE_ZCL_CMD_ID_MET_GET_SAMPLED_DATA, "Get Sampled Data" }, - { ZBEE_ZCL_CMD_ID_MET_LOCAL_CHANGE_SUPPLY, "Local Change Supply" }, - { 0, NULL } -}; - -/* Server Commands Generated */ -static const value_string zbee_zcl_met_srv_tx_cmd_names[] = { - { ZBEE_ZCL_CMD_ID_MET_REQUEST_MIRROR, "Request Mirror" }, - { ZBEE_ZCL_CMD_ID_MET_PUBLISH_SNAPSHOT, "Publish Snapshot" }, - { ZBEE_ZCL_CMD_ID_MET_GET_SAMPLED_DATA_RSP, "Get Sampled Data Response" }, - { ZBEE_ZCL_CMD_ID_MET_CONFIGURE_MIRROR, "Configure Mirror" }, - { ZBEE_ZCL_CMD_ID_MET_GET_NOTIFIED_MESSAGE, "Get Notified Message" }, - { 0, NULL } -}; - /*************************/ /* Function Bodies */ /*************************/ @@ -436,7 +277,7 @@ dissect_zcl_met_attr_data(proto_tree *tree, tvbuff_t *tvb, guint *offset, guint1 { switch (attr_id) { /* applies to all SE clusters */ - case ZBEE_ZCL_ATTR_ID_SE_ATTR_REPORT_STATUS: + case ZBEE_ZCL_ATTR_ID_SE_ATTR_REPORT_STATUS_MET: proto_tree_add_item(tree, hf_zbee_zcl_met_attr_reporting_status, tvb, *offset, 1, ENC_NA); *offset += 1; break; @@ -563,7 +404,7 @@ proto_register_zbee_zcl_met(void) static hf_register_info hf[] = { { &hf_zbee_zcl_met_attr_id, - { "Attribute", "zbee_zcl_se.met.attr_id", FT_UINT16, BASE_HEX, VALS(zbee_zcl_met_attr_names), + { "Attribute", "zbee_zcl_se.met.attr_id", FT_UINT16, BASE_HEX | BASE_EXT_STRING, &zbee_zcl_met_attr_names_ext, 0x0, NULL, HFILL } }, { &hf_zbee_zcl_met_attr_reporting_status, /* common to all SE clusters */ @@ -619,21 +460,31 @@ proto_reg_handoff_zbee_zcl_met(void) /* ########################################################################## */ /* Attributes - None (other than Attribute Reporting Status) */ -static const value_string zbee_zcl_msg_attr_names[] = { - ZBEE_ZCL_SE_ATTR_NAMES, - { 0, NULL } -}; +#define zbee_zcl_msg_attr_names_VALUE_STRING_LIST(XXX) \ +/* Smart Energy */ \ + XXX(ZBEE_ZCL_ATTR_ID_SE_ATTR_REPORT_STATUS_MSG, 0xFFFE, "Attribute Reporting Status" ) + +VALUE_STRING_ENUM(zbee_zcl_msg_attr_names); +VALUE_STRING_ARRAY(zbee_zcl_msg_attr_names); /* Server Commands Received */ -#define ZBEE_ZCL_CMD_ID_MSG_GET_LAST_MSG 0x00 /* Get Last Message */ -#define ZBEE_ZCL_CMD_ID_MSG_MSG_CONFIRM 0x01 /* Message Confirmation */ -#define ZBEE_ZCL_CMD_ID_MSG_GET_MESSAGE_CANCEL 0x02 /* Get Message Cancellation */ +#define zbee_zcl_msg_srv_rx_cmd_names_VALUE_STRING_LIST(XXX) \ + XXX(ZBEE_ZCL_CMD_ID_MSG_GET_LAST_MSG, 0x00, "Get Last Message" ) \ + XXX(ZBEE_ZCL_CMD_ID_MSG_MSG_CONFIRM, 0x01, "Message Confirmation" ) \ + XXX(ZBEE_ZCL_CMD_ID_MSG_GET_MESSAGE_CANCEL, 0x02, "Get Message Cancellation" ) + +VALUE_STRING_ENUM(zbee_zcl_msg_srv_rx_cmd_names); +VALUE_STRING_ARRAY(zbee_zcl_msg_srv_rx_cmd_names); /* Server Commands Generated */ -#define ZBEE_ZCL_CMD_ID_MSG_DISPLAY_MSG 0x00 /* Display Message */ -#define ZBEE_ZCL_CMD_ID_MSG_CANCEL_MSG 0x01 /* Cancel Message */ -#define ZBEE_ZCL_CMD_ID_MSG_DISPLAY_PROTECTED_MSG 0x02 /* Display Protected Message */ -#define ZBEE_ZCL_CMD_ID_MSG_CANCEL_ALL_MSG 0x03 /* Cancel All Messages */ +#define zbee_zcl_msg_srv_tx_cmd_names_VALUE_STRING_LIST(XXX) \ + XXX(ZBEE_ZCL_CMD_ID_MSG_DISPLAY_MSG, 0x00, "Display Message" ) \ + XXX(ZBEE_ZCL_CMD_ID_MSG_CANCEL_MSG, 0x01, "Cancel Message" ) \ + XXX(ZBEE_ZCL_CMD_ID_MSG_DISPLAY_PROTECTED_MSG, 0x02, "Display Protected Message" ) \ + XXX(ZBEE_ZCL_CMD_ID_MSG_CANCEL_ALL_MSG, 0x03, "Cancel All Messages" ) + +VALUE_STRING_ENUM(zbee_zcl_msg_srv_tx_cmd_names); +VALUE_STRING_ARRAY(zbee_zcl_msg_srv_tx_cmd_names); /* Message Control Field Bit Map */ #define ZBEE_ZCL_MSG_CTRL_TX_MASK 0x03 @@ -716,23 +567,6 @@ static gint ett_zbee_zcl_msg_ext_message_control = -1; static expert_field ei_zbee_zcl_msg_msg_ctrl_depreciated = EI_INIT; -/* Server Commands Received */ -static const value_string zbee_zcl_msg_srv_rx_cmd_names[] = { - { ZBEE_ZCL_CMD_ID_MSG_GET_LAST_MSG, "Get Last Message" }, - { ZBEE_ZCL_CMD_ID_MSG_MSG_CONFIRM, "Message Confirmation" }, - { ZBEE_ZCL_CMD_ID_MSG_GET_MESSAGE_CANCEL, "Get Message Cancellation" }, - { 0, NULL } -}; - -/* Server Commands Generated */ -static const value_string zbee_zcl_msg_srv_tx_cmd_names[] = { - { ZBEE_ZCL_CMD_ID_MSG_DISPLAY_MSG, "Display Message" }, - { ZBEE_ZCL_CMD_ID_MSG_CANCEL_MSG, "Cancel Message" }, - { ZBEE_ZCL_CMD_ID_MSG_DISPLAY_PROTECTED_MSG, "Display Protected Message"}, - { ZBEE_ZCL_CMD_ID_MSG_CANCEL_ALL_MSG, "Cancel All Messages" }, - { 0, NULL } -}; - /* Message Control Transmission */ static const value_string zbee_zcl_msg_ctrl_tx_names[] = { { ZBEE_ZCL_MSG_CTRL_TX_NORMAL_ONLY, "Normal Transmission Only" }, @@ -770,7 +604,7 @@ dissect_zcl_msg_attr_data(proto_tree *tree, tvbuff_t *tvb, guint *offset, guint1 /* no cluster specific attributes */ /* applies to all SE clusters */ - case ZBEE_ZCL_ATTR_ID_SE_ATTR_REPORT_STATUS: + case ZBEE_ZCL_ATTR_ID_SE_ATTR_REPORT_STATUS_MSG: proto_tree_add_item(tree, hf_zbee_zcl_msg_attr_reporting_status, tvb, *offset, 1, ENC_NA); *offset += 1; break; @@ -1245,31 +1079,39 @@ proto_reg_handoff_zbee_zcl_msg(void) /* ########################################################################## */ /* Attributes */ -#define ZBEE_ZCL_ATTR_ID_TUN_CLOSE_TIMEOUT 0x0000 /* Close Tunnel Timeout */ +#define zbee_zcl_tun_attr_names_VALUE_STRING_LIST(XXX) \ + XXX(ZBEE_ZCL_ATTR_ID_TUN_CLOSE_TIMEOUT, 0x0000, "Close Tunnel Timeout" ) \ +/* Smart Energy */ \ + XXX(ZBEE_ZCL_ATTR_ID_SE_ATTR_REPORT_STATUS_TUN, 0xFFFE, "Attribute Reporting Status" ) -static const value_string zbee_zcl_tun_attr_names[] = { - { ZBEE_ZCL_ATTR_ID_TUN_CLOSE_TIMEOUT, "Close Tunnel Timeout" }, - ZBEE_ZCL_SE_ATTR_NAMES, - { 0, NULL } -}; +VALUE_STRING_ENUM(zbee_zcl_tun_attr_names); +VALUE_STRING_ARRAY(zbee_zcl_tun_attr_names); /* Server Commands Received */ -#define ZBEE_ZCL_CMD_ID_TUN_REQUEST_TUNNEL 0x00 /* Request Tunnel */ -#define ZBEE_ZCL_CMD_ID_TUN_CLOSE_TUNNEL 0x01 /* Close Tunnel */ -#define ZBEE_ZCL_CMD_ID_TUN_TRANSFER_DATA 0x02 /* Transfer Data */ -#define ZBEE_ZCL_CMD_ID_TUN_TRANSFER_DATA_ERROR 0x03 /* Transfer Data Error */ -#define ZBEE_ZCL_CMD_ID_TUN_ACK_TRANSFER_DATA 0x04 /* Ack Transfer Data */ -#define ZBEE_ZCL_CMD_ID_TUN_READY_DATA 0x05 /* Ready Data */ -#define ZBEE_ZCL_CMD_ID_TUN_GET_SUPPORTED_PROTOCOLS 0x06 /* Get Supported Tunnel Protocols */ +#define zbee_zcl_tun_srv_rx_cmd_names_VALUE_STRING_LIST(XXX) \ + XXX(ZBEE_ZCL_CMD_ID_TUN_REQUEST_TUNNEL, 0x00, "Request Tunnel" ) \ + XXX(ZBEE_ZCL_CMD_ID_TUN_CLOSE_TUNNEL, 0x01, "Close Tunnel" ) \ + XXX(ZBEE_ZCL_CMD_ID_TUN_TRANSFER_DATA, 0x02, "Transfer Data" ) \ + XXX(ZBEE_ZCL_CMD_ID_TUN_TRANSFER_DATA_ERROR, 0x03, "Transfer Data Error" ) \ + XXX(ZBEE_ZCL_CMD_ID_TUN_ACK_TRANSFER_DATA, 0x04, "Ack Transfer Data" ) \ + XXX(ZBEE_ZCL_CMD_ID_TUN_READY_DATA, 0x05, "Ready Data" ) \ + XXX(ZBEE_ZCL_CMD_ID_TUN_GET_SUPPORTED_PROTOCOLS, 0x06, "Get Supported Protocols" ) + +VALUE_STRING_ENUM(zbee_zcl_tun_srv_rx_cmd_names); +VALUE_STRING_ARRAY(zbee_zcl_tun_srv_rx_cmd_names); /* Server Commands Generated */ -#define ZBEE_ZCL_CMD_ID_TUN_REQUEST_TUNNEL_RSP 0x00 /* Request Tunnel Response*/ -#define ZBEE_ZCL_CMD_ID_TUN_TRANSFER_DATA_TX 0x01 /* Transfer Data */ -#define ZBEE_ZCL_CMD_ID_TUN_TRANSFER_DATA_ERROR_TX 0x02 /* Transfer Data Error */ -#define ZBEE_ZCL_CMD_ID_TUN_ACK_TRANSFER_DATA_TX 0x03 /* Ack Transfer Data */ -#define ZBEE_ZCL_CMD_ID_TUN_READY_DATA_TX 0x04 /* Ready Data */ -#define ZBEE_ZCL_CMD_ID_TUN_GET_SUPPORTED_PROTOCOLS_RSP 0x05 /* Get Supported Tunnel Protocols */ -#define ZBEE_ZCL_CMD_ID_TUN_CLOSURE_NOTIFY 0x06 /* Tunnel Closure Notification */ +#define zbee_zcl_tun_srv_tx_cmd_names_VALUE_STRING_LIST(XXX) \ + XXX(ZBEE_ZCL_CMD_ID_TUN_REQUEST_TUNNEL_RSP, 0x00, "Request Tunnel Response" ) \ + XXX(ZBEE_ZCL_CMD_ID_TUN_TRANSFER_DATA_TX, 0x01, "Transfer Data" ) \ + XXX(ZBEE_ZCL_CMD_ID_TUN_TRANSFER_DATA_ERROR_TX, 0x02, "Transfer Data Error" ) \ + XXX(ZBEE_ZCL_CMD_ID_TUN_ACK_TRANSFER_DATA_TX, 0x03, "Ack Transfer Data" ) \ + XXX(ZBEE_ZCL_CMD_ID_TUN_READY_DATA_TX, 0x04, "Ready Data" ) \ + XXX(ZBEE_ZCL_CMD_ID_TUN_GET_SUPPORTED_PROTOCOLS_RSP, 0x05, "Get Supported Tunnel Protocols" ) \ + XXX(ZBEE_ZCL_CMD_ID_TUN_CLOSURE_NOTIFY, 0x06, "Tunnel Closure Notification" ) + +VALUE_STRING_ENUM(zbee_zcl_tun_srv_tx_cmd_names); +VALUE_STRING_ARRAY(zbee_zcl_tun_srv_tx_cmd_names); /*************************/ /* Function Declarations */ @@ -1316,86 +1158,41 @@ static gint ett_zbee_zcl_tun = -1; static dissector_handle_t ipv4_handle; static dissector_handle_t ipv6_handle; -/* Server Commands Received */ -static const value_string zbee_zcl_tun_srv_rx_cmd_names[] = { - { ZBEE_ZCL_CMD_ID_TUN_REQUEST_TUNNEL, "Request Tunnel" }, - { ZBEE_ZCL_CMD_ID_TUN_CLOSE_TUNNEL, "Close Tunnel" }, - { ZBEE_ZCL_CMD_ID_TUN_TRANSFER_DATA, "Transfer Data" }, - { ZBEE_ZCL_CMD_ID_TUN_TRANSFER_DATA_ERROR, "Transfer Data Error" }, - { ZBEE_ZCL_CMD_ID_TUN_ACK_TRANSFER_DATA, "Ack Transfer Data" }, - { ZBEE_ZCL_CMD_ID_TUN_READY_DATA, "Ready Data" }, - { ZBEE_ZCL_CMD_ID_TUN_GET_SUPPORTED_PROTOCOLS, "Get Supported Protocols" }, - { 0, NULL } -}; - -/* Server Commands Generated */ -static const value_string zbee_zcl_tun_srv_tx_cmd_names[] = { - { ZBEE_ZCL_CMD_ID_TUN_REQUEST_TUNNEL_RSP, "Request Tunnel Response" }, - { ZBEE_ZCL_CMD_ID_TUN_TRANSFER_DATA_TX, "Transfer Data" }, - { ZBEE_ZCL_CMD_ID_TUN_TRANSFER_DATA_ERROR_TX, "Transfer Data Error" }, - { ZBEE_ZCL_CMD_ID_TUN_ACK_TRANSFER_DATA_TX, "Ack Transfer Data" }, - { ZBEE_ZCL_CMD_ID_TUN_READY_DATA_TX, "Ready Data" }, - { ZBEE_ZCL_CMD_ID_TUN_GET_SUPPORTED_PROTOCOLS_RSP, "Get Supported Tunnel Protocols" }, - { ZBEE_ZCL_CMD_ID_TUN_CLOSURE_NOTIFY, "Tunnel Closure Notification" }, - { 0, NULL } -}; - -#define ZBEE_ZCL_TUN_PROTO_DLMS 0x00 -#define ZBEE_ZCL_TUN_PROTO_IEC_61107 0x01 -#define ZBEE_ZCL_TUN_PROTO_ANSI_C12 0x02 -#define ZBEE_ZCL_TUN_PROTO_M_BUS 0x03 -#define ZBEE_ZCL_TUN_PROTO_SML 0x04 -#define ZBEE_ZCL_TUN_PROTO_CLIMATE_TALK 0x05 -#define ZBEE_ZCL_TUN_PROTO_GB_HRGP 0x06 -#define ZBEE_ZCL_TUN_PROTO_IPV6 0x07 -#define ZBEE_ZCL_TUN_PROTO_IPV4 0x08 -#define ZBEE_ZCL_TUN_PROTO_NULL 0x09 -#define ZBEE_ZCL_TUN_PROTO_TEST 199 -#define ZBEE_ZCL_TUN_PROTO_MANUFACTURER 200 -#define ZBEE_ZCL_TUN_PROTO_RESERVED 0xFF - -static const value_string zbee_zcl_tun_protocol_names[] = { - { ZBEE_ZCL_TUN_PROTO_DLMS, "DLMS/COSEM (IEC 62056)" }, - { ZBEE_ZCL_TUN_PROTO_IEC_61107, "IEC 61107" }, - { ZBEE_ZCL_TUN_PROTO_ANSI_C12, "ANSI C12" }, - { ZBEE_ZCL_TUN_PROTO_M_BUS, "M-BUS" }, - { ZBEE_ZCL_TUN_PROTO_SML, "SML" }, - { ZBEE_ZCL_TUN_PROTO_CLIMATE_TALK, "ClimateTalk" }, - { ZBEE_ZCL_TUN_PROTO_GB_HRGP, "GB-HRGP" }, - { ZBEE_ZCL_TUN_PROTO_IPV6, "IPv6" }, - { ZBEE_ZCL_TUN_PROTO_IPV4, "IPv4" }, - { ZBEE_ZCL_TUN_PROTO_NULL, "null" }, - { ZBEE_ZCL_TUN_PROTO_TEST, "test" }, - { ZBEE_ZCL_TUN_PROTO_MANUFACTURER, "Manufacturer Specific" }, - { ZBEE_ZCL_TUN_PROTO_RESERVED, "Reserved" }, - { 0, NULL } -}; - -#define ZBEE_ZCL_TUN_TRANS_STATUS_NO_TUNNEL 0x00 -#define ZBEE_ZCL_TUN_TRANS_STATUS_WRONG_DEV 0x01 -#define ZBEE_ZCL_TUN_TRANS_STATUS_OVERFLOW 0x02 - -static const value_string zbee_zcl_tun_trans_data_status_names[] = { - { ZBEE_ZCL_TUN_TRANS_STATUS_NO_TUNNEL, "Tunnel ID Does Not Exist" }, - { ZBEE_ZCL_TUN_TRANS_STATUS_WRONG_DEV, "Wrong Device" }, - { ZBEE_ZCL_TUN_TRANS_STATUS_OVERFLOW, "Data Overflow" }, - { 0, NULL } -}; - -#define ZBEE_ZCL_TUN_STATUS_SUCCESS 0x00 -#define ZBEE_ZCL_TUN_STATUS_BUSY 0x01 -#define ZBEE_ZCL_TUN_STATUS_NO_MORE_IDS 0x02 -#define ZBEE_ZCL_TUN_STATUS_PROTO_NOT_SUPP 0x03 -#define ZBEE_ZCL_TUN_STATUS_FLOW_CONTROL_NOT_SUPP 0x04 - -static const value_string zbee_zcl_tun_status_names[] = { - { ZBEE_ZCL_TUN_STATUS_SUCCESS, "Success" }, - { ZBEE_ZCL_TUN_STATUS_BUSY, "Busy" }, - { ZBEE_ZCL_TUN_STATUS_NO_MORE_IDS, "No More Tunnel IDs" }, - { ZBEE_ZCL_TUN_STATUS_PROTO_NOT_SUPP, "Protocol Not Supported" }, - { ZBEE_ZCL_TUN_STATUS_FLOW_CONTROL_NOT_SUPP, "Flow Control Not Supported" }, - { 0, NULL } -}; +#define zbee_zcl_tun_protocol_names_VALUE_STRING_LIST(XXX) \ + XXX(ZBEE_ZCL_TUN_PROTO_DLMS, 0x00, "DLMS/COSEM (IEC 62056)" ) \ + XXX(ZBEE_ZCL_TUN_PROTO_IEC_61107, 0x01, "IEC 61107" ) \ + XXX(ZBEE_ZCL_TUN_PROTO_ANSI_C12, 0x02, "ANSI C12" ) \ + XXX(ZBEE_ZCL_TUN_PROTO_M_BUS, 0x03, "M-BUS" ) \ + XXX(ZBEE_ZCL_TUN_PROTO_SML, 0x04, "SML" ) \ + XXX(ZBEE_ZCL_TUN_PROTO_CLIMATE_TALK, 0x05, "ClimateTalk" ) \ + XXX(ZBEE_ZCL_TUN_PROTO_GB_HRGP, 0x06, "GB-HRGP" ) \ + XXX(ZBEE_ZCL_TUN_PROTO_IPV6, 0x07, "IPv6" ) \ + XXX(ZBEE_ZCL_TUN_PROTO_IPV4, 0x08, "IPv4" ) \ + XXX(ZBEE_ZCL_TUN_PROTO_NULL, 0x09, "null" ) \ + XXX(ZBEE_ZCL_TUN_PROTO_TEST, 199, "test" ) \ + XXX(ZBEE_ZCL_TUN_PROTO_MANUFACTURER, 200, "Manufacturer Specific" ) \ + XXX(ZBEE_ZCL_TUN_PROTO_RESERVED, 0xFF, "Reserved" ) + +VALUE_STRING_ENUM(zbee_zcl_tun_protocol_names); +VALUE_STRING_ARRAY(zbee_zcl_tun_protocol_names); + +#define zbee_zcl_tun_trans_data_status_names_VALUE_STRING_LIST(XXX) \ + XXX(ZBEE_ZCL_TUN_TRANS_STATUS_NO_TUNNEL, 0x00, "Tunnel ID Does Not Exist" ) \ + XXX(ZBEE_ZCL_TUN_TRANS_STATUS_WRONG_DEV, 0x01, "Wrong Device" ) \ + XXX(ZBEE_ZCL_TUN_TRANS_STATUS_OVERFLOW, 0x02, "Data Overflow" ) + +VALUE_STRING_ENUM(zbee_zcl_tun_trans_data_status_names); +VALUE_STRING_ARRAY(zbee_zcl_tun_trans_data_status_names); + +#define zbee_zcl_tun_status_names_VALUE_STRING_LIST(XXX) \ + XXX(ZBEE_ZCL_TUN_STATUS_SUCCESS, 0x00, "Success" ) \ + XXX(ZBEE_ZCL_TUN_STATUS_BUSY, 0x01, "Busy" ) \ + XXX(ZBEE_ZCL_TUN_STATUS_NO_MORE_IDS, 0x02, "No More Tunnel IDs" ) \ + XXX(ZBEE_ZCL_TUN_STATUS_PROTO_NOT_SUPP, 0x03, "Protocol Not Supported" ) \ + XXX(ZBEE_ZCL_TUN_STATUS_FLOW_CONTROL_NOT_SUPP, 0x04, "Flow Control Not Supported" ) + +VALUE_STRING_ENUM(zbee_zcl_tun_status_names); +VALUE_STRING_ARRAY(zbee_zcl_tun_status_names); /*************************/ /* Function Bodies */ @@ -1421,7 +1218,7 @@ dissect_zcl_tun_attr_data(proto_tree *tree, tvbuff_t *tvb, guint *offset, guint1 break; /* applies to all SE clusters */ - case ZBEE_ZCL_ATTR_ID_SE_ATTR_REPORT_STATUS: + case ZBEE_ZCL_ATTR_ID_SE_ATTR_REPORT_STATUS_TUN: proto_tree_add_item(tree, hf_zbee_zcl_tun_attr_reporting_status, tvb, *offset, 1, ENC_NA); *offset += 1; break; @@ -1872,91 +1669,92 @@ proto_reg_handoff_zbee_zcl_tun(void) /* Attributes */ #define zbee_zcl_pp_attr_names_VALUE_STRING_LIST(XXX) \ - /* Prepayment Information Set */ \ - XXX(ZBEE_ZCL_ATTR_ID_PP_PAYMENT_CONTROL_CONFIGURATION , 0x0000, "Payment Control Configuration" ) \ - XXX(ZBEE_ZCL_ATTR_ID_PP_CREDIT_REMAINING , 0x0001, "Credit Remaining" ) \ - XXX(ZBEE_ZCL_ATTR_ID_PP_EMERGENCY_CREDIT_REMAINING , 0x0002, "Emergency Credit Remaining" ) \ - XXX(ZBEE_ZCL_ATTR_ID_PP_ACCUMULATED_DEBT , 0x0005, "Accumulated Debt" ) \ - XXX(ZBEE_ZCL_ATTR_ID_PP_OVERALL_DEBT_CAP , 0x0006, "Overall Debt Cap" ) \ - XXX(ZBEE_ZCL_ATTR_ID_PP_EMERGENCY_CREDIT_LIMIT , 0x0010, "Emergency Credit Limit / Allowance" ) \ - XXX(ZBEE_ZCL_ATTR_ID_PP_EMERGENCY_CREDIT_THRESHOLD , 0x0011, "Emergency Credit Threshold" ) \ - XXX(ZBEE_ZCL_ATTR_ID_PP_MAX_CREDIT_LIMIT , 0x0021, "Max Credit Limit" ) \ - XXX(ZBEE_ZCL_ATTR_ID_PP_MAX_CREDIT_PER_TOPUP , 0x0022, "Max Credit Per Top Up" ) \ - XXX(ZBEE_ZCL_ATTR_ID_PP_LOW_CREDIT_WARNING , 0x0031, "Low Credit Warning" ) \ - XXX(ZBEE_ZCL_ATTR_ID_PP_CUT_OFF_VALUE , 0x0040, "Cut Off Value" ) \ - /* Debt Set */ \ - XXX(ZBEE_ZCL_ATTR_ID_PP_DEBT_AMOUNT_1 , 0x0211, "Debt Amount 1" ) \ - XXX(ZBEE_ZCL_ATTR_ID_PP_DEBT_RECOVERY_FREQ_1 , 0x0216, "Debt Recovery Frequency 1" ) \ - XXX(ZBEE_ZCL_ATTR_ID_PP_DEBT_RECOVERY_AMOUNT_1 , 0x0217, "Debt Recovery Amount 1" ) \ - XXX(ZBEE_ZCL_ATTR_ID_PP_DEBT_RECOVERY_TOP_UP_PERCENTAGE_1 , 0x0219, "Debt Recovery Top Up Percentage 1" ) \ - XXX(ZBEE_ZCL_ATTR_ID_PP_DEBT_AMOUNT_2 , 0x0221, "Debt Amount 2" ) \ - XXX(ZBEE_ZCL_ATTR_ID_PP_DEBT_RECOVERY_FREQ_2 , 0x0226, "Debt Recovery Frequency 2" ) \ - XXX(ZBEE_ZCL_ATTR_ID_PP_DEBT_RECOVERY_AMOUNT_2 , 0x0227, "Debt Recovery Amount 2" ) \ - XXX(ZBEE_ZCL_ATTR_ID_PP_DEBT_RECOVERY_TOP_UP_PERCENTAGE_2 , 0x0229, "Debt Recovery Top Up Percentage 2" ) \ - XXX(ZBEE_ZCL_ATTR_ID_PP_DEBT_AMOUNT_3 , 0x0231, "Debt Amount 3" ) \ - XXX(ZBEE_ZCL_ATTR_ID_PP_DEBT_RECOVERY_FREQ_3 , 0x0236, "Debt Recovery Frequency 3" ) \ - XXX(ZBEE_ZCL_ATTR_ID_PP_DEBT_RECOVERY_AMOUNT_3 , 0x0237, "Debt Recovery Amount 3" ) \ - XXX(ZBEE_ZCL_ATTR_ID_PP_DEBT_RECOVERY_TOP_UP_PERCENTAGE_3 , 0x0239, "Debt Recovery Top Up Percentage 3" ) \ - /* Alarm Set */ \ - XXX(ZBEE_ZCL_ATTR_ID_PP_PREPAYMENT_ALARM_STATUS , 0x0400, "Prepayment Alarm Status" ) \ - /* Historical Cost Consumption Information Set */ \ - XXX(ZBEE_ZCL_ATTR_ID_PP_HISTORICAL_COST_CON_FORMAT , 0x0500, "Historical Cost Consumption Formatting" ) \ - XXX(ZBEE_ZCL_ATTR_ID_PP_CONSUMPTION_UNIT_OF_MEASUREMENT , 0x0501, "Consumption Unit of Measurement" ) \ - XXX(ZBEE_ZCL_ATTR_ID_PP_CURRENCY_SCALING_FACTOR , 0x0502, "Currency Scaling Factor" ) \ - XXX(ZBEE_ZCL_ATTR_ID_PP_CURRENCY , 0x0503, "Currency" ) \ - XXX(ZBEE_ZCL_ATTR_ID_PP_CURRENT_DAY_COST_CON_DELIVERED , 0x051C, "Current Day Cost Consumption Delivered" ) \ - XXX(ZBEE_ZCL_ATTR_ID_PP_PREVIOUS_DAY_COST_CON_DELIVERED , 0x051E, "Previous Day Cost Consumption Delivered" ) \ - XXX(ZBEE_ZCL_ATTR_ID_PP_PREVIOUS_DAY_2_COST_CON_DELIVERED , 0x0520, "Previous Day 2 Cost Consumption Delivered" ) \ - XXX(ZBEE_ZCL_ATTR_ID_PP_PREVIOUS_DAY_3_COST_CON_DELIVERED , 0x0522, "Previous Day 3 Cost Consumption Delivered" ) \ - XXX(ZBEE_ZCL_ATTR_ID_PP_PREVIOUS_DAY_4_COST_CON_DELIVERED , 0x0524, "Previous Day 4 Cost Consumption Delivered" ) \ - XXX(ZBEE_ZCL_ATTR_ID_PP_PREVIOUS_DAY_5_COST_CON_DELIVERED , 0x0526, "Previous Day 5 Cost Consumption Delivered" ) \ - XXX(ZBEE_ZCL_ATTR_ID_PP_PREVIOUS_DAY_6_COST_CON_DELIVERED , 0x0528, "Previous Day 6 Cost Consumption Delivered" ) \ - XXX(ZBEE_ZCL_ATTR_ID_PP_PREVIOUS_DAY_7_COST_CON_DELIVERED , 0x052A, "Previous Day 7 Cost Consumption Delivered" ) \ - XXX(ZBEE_ZCL_ATTR_ID_PP_PREVIOUS_DAY_8_COST_CON_DELIVERED , 0x052C, "Previous Day 8 Cost Consumption Delivered" ) \ - XXX(ZBEE_ZCL_ATTR_ID_PP_CURRENT_WEEK_COST_CON_DELIVERED , 0x0530, "Current Week Cost Consumption Delivered" ) \ - XXX(ZBEE_ZCL_ATTR_ID_PP_PREVIOUS_WEEK_COST_CON_DELIVERED , 0x0532, "Previous Week Cost Consumption Delivered" ) \ - XXX(ZBEE_ZCL_ATTR_ID_PP_PREVIOUS_WEEK_2_COST_CON_DELIVERED , 0x0534, "Previous Week 2 Cost Consumption Delivered" ) \ - XXX(ZBEE_ZCL_ATTR_ID_PP_PREVIOUS_WEEK_3_COST_CON_DELIVERED , 0x0536, "Previous Week 3 Cost Consumption Delivered" ) \ - XXX(ZBEE_ZCL_ATTR_ID_PP_PREVIOUS_WEEK_4_COST_CON_DELIVERED , 0x0538, "Previous Week 4 Cost Consumption Delivered" ) \ - XXX(ZBEE_ZCL_ATTR_ID_PP_PREVIOUS_WEEK_5_COST_CON_DELIVERED , 0x053A, "Previous Week 5 Cost Consumption Delivered" ) \ - XXX(ZBEE_ZCL_ATTR_ID_PP_CURRENT_MON_COST_CON_DELIVERED , 0x0540, "Current Month Cost Consumption Delivered" ) \ - XXX(ZBEE_ZCL_ATTR_ID_PP_PREVIOUS_MON_COST_CON_DELIVERED , 0x0542, "Previous Month Cost Consumption Delivered" ) \ - XXX(ZBEE_ZCL_ATTR_ID_PP_PREVIOUS_MON_2_COST_CON_DELIVERED , 0x0544, "Previous Month 2 Cost Consumption Delivered" ) \ - XXX(ZBEE_ZCL_ATTR_ID_PP_PREVIOUS_MON_3_COST_CON_DELIVERED , 0x0546, "Previous Month 3 Cost Consumption Delivered" ) \ - XXX(ZBEE_ZCL_ATTR_ID_PP_PREVIOUS_MON_4_COST_CON_DELIVERED , 0x0548, "Previous Month 4 Cost Consumption Delivered" ) \ - XXX(ZBEE_ZCL_ATTR_ID_PP_PREVIOUS_MON_5_COST_CON_DELIVERED , 0x054A, "Previous Month 5 Cost Consumption Delivered" ) \ - XXX(ZBEE_ZCL_ATTR_ID_PP_PREVIOUS_MON_6_COST_CON_DELIVERED , 0x054C, "Previous Month 6 Cost Consumption Delivered" ) \ - XXX(ZBEE_ZCL_ATTR_ID_PP_PREVIOUS_MON_7_COST_CON_DELIVERED , 0x054E, "Previous Month 7 Cost Consumption Delivered" ) \ - XXX(ZBEE_ZCL_ATTR_ID_PP_PREVIOUS_MON_8_COST_CON_DELIVERED , 0x0550, "Previous Month 8 Cost Consumption Delivered" ) \ - XXX(ZBEE_ZCL_ATTR_ID_PP_PREVIOUS_MON_9_COST_CON_DELIVERED , 0x0552, "Previous Month 9 Cost Consumption Delivered" ) \ - XXX(ZBEE_ZCL_ATTR_ID_PP_PREVIOUS_MON_10_COST_CON_DELIVERED , 0x0554, "Previous Month 10 Cost Consumption Delivered" ) \ - XXX(ZBEE_ZCL_ATTR_ID_PP_PREVIOUS_MON_11_COST_CON_DELIVERED , 0x0556, "Previous Month 11 Cost Consumption Delivered" ) \ - XXX(ZBEE_ZCL_ATTR_ID_PP_PREVIOUS_MON_12_COST_CON_DELIVERED , 0x0558, "Previous Month 12 Cost Consumption Delivered" ) \ - XXX(ZBEE_ZCL_ATTR_ID_PP_PREVIOUS_MON_13_COST_CON_DELIVERED , 0x055A, "Previous Month 13 Cost Consumption Delivered" ) \ - XXX(ZBEE_ZCL_ATTR_ID_PP_HISTORICAL_FREEZE_TIME , 0x055C, "Historical Freeze Time" ) \ - /* Smart Energy */ \ - XXX(ZBEE_ZCL_ATTR_ID_SE_ATTR_REPORT_STATUS , 0xFFFE, "Attribute Reporting Status" ) - +/* Prepayment Information Set */ \ + XXX(ZBEE_ZCL_ATTR_ID_PP_PAYMENT_CONTROL_CONFIGURATION, 0x0000, "Payment Control Configuration" ) \ + XXX(ZBEE_ZCL_ATTR_ID_PP_CREDIT_REMAINING, 0x0001, "Credit Remaining" ) \ + XXX(ZBEE_ZCL_ATTR_ID_PP_EMERGENCY_CREDIT_REMAINING, 0x0002, "Emergency Credit Remaining" ) \ + XXX(ZBEE_ZCL_ATTR_ID_PP_ACCUMULATED_DEBT, 0x0005, "Accumulated Debt" ) \ + XXX(ZBEE_ZCL_ATTR_ID_PP_OVERALL_DEBT_CAP, 0x0006, "Overall Debt Cap" ) \ + XXX(ZBEE_ZCL_ATTR_ID_PP_EMERGENCY_CREDIT_LIMIT, 0x0010, "Emergency Credit Limit / Allowance" ) \ + XXX(ZBEE_ZCL_ATTR_ID_PP_EMERGENCY_CREDIT_THRESHOLD, 0x0011, "Emergency Credit Threshold" ) \ + XXX(ZBEE_ZCL_ATTR_ID_PP_MAX_CREDIT_LIMIT, 0x0021, "Max Credit Limit" ) \ + XXX(ZBEE_ZCL_ATTR_ID_PP_MAX_CREDIT_PER_TOPUP, 0x0022, "Max Credit Per Top Up" ) \ + XXX(ZBEE_ZCL_ATTR_ID_PP_LOW_CREDIT_WARNING, 0x0031, "Low Credit Warning" ) \ + XXX(ZBEE_ZCL_ATTR_ID_PP_CUT_OFF_VALUE, 0x0040, "Cut Off Value" ) \ +/* Debt Set */ \ + XXX(ZBEE_ZCL_ATTR_ID_PP_DEBT_AMOUNT_1, 0x0211, "Debt Amount 1" ) \ + XXX(ZBEE_ZCL_ATTR_ID_PP_DEBT_RECOVERY_FREQ_1, 0x0216, "Debt Recovery Frequency 1" ) \ + XXX(ZBEE_ZCL_ATTR_ID_PP_DEBT_RECOVERY_AMOUNT_1, 0x0217, "Debt Recovery Amount 1" ) \ + XXX(ZBEE_ZCL_ATTR_ID_PP_DEBT_RECOVERY_TOP_UP_PERCENTAGE_1, 0x0219, "Debt Recovery Top Up Percentage 1" ) \ + XXX(ZBEE_ZCL_ATTR_ID_PP_DEBT_AMOUNT_2, 0x0221, "Debt Amount 2" ) \ + XXX(ZBEE_ZCL_ATTR_ID_PP_DEBT_RECOVERY_FREQ_2, 0x0226, "Debt Recovery Frequency 2" ) \ + XXX(ZBEE_ZCL_ATTR_ID_PP_DEBT_RECOVERY_AMOUNT_2, 0x0227, "Debt Recovery Amount 2" ) \ + XXX(ZBEE_ZCL_ATTR_ID_PP_DEBT_RECOVERY_TOP_UP_PERCENTAGE_2, 0x0229, "Debt Recovery Top Up Percentage 2" ) \ + XXX(ZBEE_ZCL_ATTR_ID_PP_DEBT_AMOUNT_3, 0x0231, "Debt Amount 3" ) \ + XXX(ZBEE_ZCL_ATTR_ID_PP_DEBT_RECOVERY_FREQ_3, 0x0236, "Debt Recovery Frequency 3" ) \ + XXX(ZBEE_ZCL_ATTR_ID_PP_DEBT_RECOVERY_AMOUNT_3, 0x0237, "Debt Recovery Amount 3" ) \ + XXX(ZBEE_ZCL_ATTR_ID_PP_DEBT_RECOVERY_TOP_UP_PERCENTAGE_3, 0x0239, "Debt Recovery Top Up Percentage 3" ) \ +/* Alarm Set */ \ + XXX(ZBEE_ZCL_ATTR_ID_PP_PREPAYMENT_ALARM_STATUS, 0x0400, "Prepayment Alarm Status" ) \ +/* Historical Cost Consumption Information Set */ \ + XXX(ZBEE_ZCL_ATTR_ID_PP_HISTORICAL_COST_CON_FORMAT, 0x0500, "Historical Cost Consumption Formatting" ) \ + XXX(ZBEE_ZCL_ATTR_ID_PP_CONSUMPTION_UNIT_OF_MEASUREMENT, 0x0501, "Consumption Unit of Measurement" ) \ + XXX(ZBEE_ZCL_ATTR_ID_PP_CURRENCY_SCALING_FACTOR, 0x0502, "Currency Scaling Factor" ) \ + XXX(ZBEE_ZCL_ATTR_ID_PP_CURRENCY, 0x0503, "Currency" ) \ + XXX(ZBEE_ZCL_ATTR_ID_PP_CURRENT_DAY_COST_CON_DELIVERED, 0x051C, "Current Day Cost Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_PP_PREVIOUS_DAY_COST_CON_DELIVERED, 0x051E, "Previous Day Cost Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_PP_PREVIOUS_DAY_2_COST_CON_DELIVERED, 0x0520, "Previous Day 2 Cost Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_PP_PREVIOUS_DAY_3_COST_CON_DELIVERED, 0x0522, "Previous Day 3 Cost Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_PP_PREVIOUS_DAY_4_COST_CON_DELIVERED, 0x0524, "Previous Day 4 Cost Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_PP_PREVIOUS_DAY_5_COST_CON_DELIVERED, 0x0526, "Previous Day 5 Cost Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_PP_PREVIOUS_DAY_6_COST_CON_DELIVERED, 0x0528, "Previous Day 6 Cost Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_PP_PREVIOUS_DAY_7_COST_CON_DELIVERED, 0x052A, "Previous Day 7 Cost Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_PP_PREVIOUS_DAY_8_COST_CON_DELIVERED, 0x052C, "Previous Day 8 Cost Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_PP_CURRENT_WEEK_COST_CON_DELIVERED, 0x0530, "Current Week Cost Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_PP_PREVIOUS_WEEK_COST_CON_DELIVERED, 0x0532, "Previous Week Cost Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_PP_PREVIOUS_WEEK_2_COST_CON_DELIVERED, 0x0534, "Previous Week 2 Cost Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_PP_PREVIOUS_WEEK_3_COST_CON_DELIVERED, 0x0536, "Previous Week 3 Cost Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_PP_PREVIOUS_WEEK_4_COST_CON_DELIVERED, 0x0538, "Previous Week 4 Cost Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_PP_PREVIOUS_WEEK_5_COST_CON_DELIVERED, 0x053A, "Previous Week 5 Cost Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_PP_CURRENT_MON_COST_CON_DELIVERED, 0x0540, "Current Month Cost Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_PP_PREVIOUS_MON_COST_CON_DELIVERED, 0x0542, "Previous Month Cost Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_PP_PREVIOUS_MON_2_COST_CON_DELIVERED, 0x0544, "Previous Month 2 Cost Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_PP_PREVIOUS_MON_3_COST_CON_DELIVERED, 0x0546, "Previous Month 3 Cost Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_PP_PREVIOUS_MON_4_COST_CON_DELIVERED, 0x0548, "Previous Month 4 Cost Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_PP_PREVIOUS_MON_5_COST_CON_DELIVERED, 0x054A, "Previous Month 5 Cost Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_PP_PREVIOUS_MON_6_COST_CON_DELIVERED, 0x054C, "Previous Month 6 Cost Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_PP_PREVIOUS_MON_7_COST_CON_DELIVERED, 0x054E, "Previous Month 7 Cost Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_PP_PREVIOUS_MON_8_COST_CON_DELIVERED, 0x0550, "Previous Month 8 Cost Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_PP_PREVIOUS_MON_9_COST_CON_DELIVERED, 0x0552, "Previous Month 9 Cost Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_PP_PREVIOUS_MON_10_COST_CON_DELIVERED, 0x0554, "Previous Month 10 Cost Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_PP_PREVIOUS_MON_11_COST_CON_DELIVERED, 0x0556, "Previous Month 11 Cost Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_PP_PREVIOUS_MON_12_COST_CON_DELIVERED, 0x0558, "Previous Month 12 Cost Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_PP_PREVIOUS_MON_13_COST_CON_DELIVERED, 0x055A, "Previous Month 13 Cost Consumption Delivered" ) \ + XXX(ZBEE_ZCL_ATTR_ID_PP_HISTORICAL_FREEZE_TIME, 0x055C, "Historical Freeze Time" ) \ +/* Smart Energy */ \ + XXX(ZBEE_ZCL_ATTR_ID_SE_ATTR_REPORT_STATUS_PP, 0xFFFE, "Attribute Reporting Status" ) + +VALUE_STRING_ENUM(zbee_zcl_pp_attr_names); VALUE_STRING_ARRAY(zbee_zcl_pp_attr_names); static value_string_ext zbee_zcl_pp_attr_names_ext = VALUE_STRING_EXT_INIT(zbee_zcl_pp_attr_names); /* Server Commands Received */ #define zbee_zcl_pp_srv_rx_cmd_names_VALUE_STRING_LIST(XXX) \ - XXX(ZBEE_ZCL_CMD_ID_PP_SELECT_AVAILABLE_EMERGENCY_CREDIT , 0x00, "Select Available Emergency Credit" ) \ - XXX(ZBEE_ZCL_CMD_ID_PP_CONSUMER_TOP_UP , 0x04, "Consumer Top Up" ) \ - XXX(ZBEE_ZCL_CMD_ID_PP_GET_PREPAY_SNAPTSHOT , 0x07, "Get Prepay Snapshot" ) \ - XXX(ZBEE_ZCL_CMD_ID_PP_GET_TOP_UP_LOG , 0x08, "Get Top Up Log" ) \ - XXX(ZBEE_ZCL_CMD_ID_PP_GET_DEBT_REPAYMENT_LOG , 0x0A, "Get Debt Repayment Log" ) + XXX(ZBEE_ZCL_CMD_ID_PP_SELECT_AVAILABLE_EMERGENCY_CREDIT, 0x00, "Select Available Emergency Credit" ) \ + XXX(ZBEE_ZCL_CMD_ID_PP_CONSUMER_TOP_UP, 0x04, "Consumer Top Up" ) \ + XXX(ZBEE_ZCL_CMD_ID_PP_GET_PREPAY_SNAPTSHOT, 0x07, "Get Prepay Snapshot" ) \ + XXX(ZBEE_ZCL_CMD_ID_PP_GET_TOP_UP_LOG, 0x08, "Get Top Up Log" ) \ + XXX(ZBEE_ZCL_CMD_ID_PP_GET_DEBT_REPAYMENT_LOG, 0x0A, "Get Debt Repayment Log" ) VALUE_STRING_ENUM(zbee_zcl_pp_srv_rx_cmd_names); VALUE_STRING_ARRAY(zbee_zcl_pp_srv_rx_cmd_names); /* Server Commands Generated */ #define zbee_zcl_pp_srv_tx_cmd_names_VALUE_STRING_LIST(XXX) \ - XXX(ZBEE_ZCL_CMD_ID_PP_PUBLISH_PREPAY_SNAPSHOT , 0x01, "Publish Prepay Snapshot" ) \ - XXX(ZBEE_ZCL_CMD_ID_PP_CONSUMER_TOP_UP_RESPONSE , 0x03, "Consumer Top Up Response" ) \ - XXX(ZBEE_ZCL_CMD_ID_PP_PUBLISH_TOP_UP_LOG , 0x05, "Publish Top Up Log" ) \ - XXX(ZBEE_ZCL_CMD_ID_PP_PUBLISH_DEBT_LOG , 0x06, "Publish Debt Log" ) + XXX(ZBEE_ZCL_CMD_ID_PP_PUBLISH_PREPAY_SNAPSHOT, 0x01, "Publish Prepay Snapshot" ) \ + XXX(ZBEE_ZCL_CMD_ID_PP_CONSUMER_TOP_UP_RESPONSE, 0x03, "Consumer Top Up Response" ) \ + XXX(ZBEE_ZCL_CMD_ID_PP_PUBLISH_TOP_UP_LOG, 0x05, "Publish Top Up Log" ) \ + XXX(ZBEE_ZCL_CMD_ID_PP_PUBLISH_DEBT_LOG, 0x06, "Publish Debt Log" ) VALUE_STRING_ENUM(zbee_zcl_pp_srv_tx_cmd_names); VALUE_STRING_ARRAY(zbee_zcl_pp_srv_tx_cmd_names); @@ -2005,7 +1803,7 @@ dissect_zcl_pp_attr_data(proto_tree *tree, tvbuff_t *tvb, guint *offset, guint16 { switch (attr_id) { /* applies to all SE clusters */ - case ZBEE_ZCL_ATTR_ID_SE_ATTR_REPORT_STATUS: + case ZBEE_ZCL_ATTR_ID_SE_ATTR_REPORT_STATUS_PP: proto_tree_add_item(tree, hf_zbee_zcl_pp_attr_reporting_status, tvb, *offset, 1, ENC_NA); *offset += 1; break; @@ -2192,13 +1990,61 @@ proto_reg_handoff_zbee_zcl_pp(void) /* Defines */ /*************************/ -/* Initialize the subtree pointers */ -static gint ett_zbee_zcl_ke = -1; -static gint ett_zbee_zcl_ke_cert = -1; -static gint ett_zbee_zcl_ke_key_usage = -1; +#define ZBEE_ZCL_KE_USAGE_KEY_AGREEMENT 0x08 +#define ZBEE_ZCL_KE_USAGE_DIGITAL_SIGNATURE 0x80 /* Attributes */ -#define ZBEE_ZCL_ATTR_ID_KE_SUITE 0x0000 /* Key Establishment Suite */ +#define zbee_zcl_ke_attr_names_VALUE_STRING_LIST(XXX) \ + XXX(ZBEE_ZCL_ATTR_ID_KE_SUITE, 0x0000, "Supported Key Establishment Suites" ) + +VALUE_STRING_ARRAY(zbee_zcl_ke_attr_names); + +/* Server Commands Received and Generated */ +#define zbee_zcl_ke_srv_cmd_names_VALUE_STRING_LIST(XXX) \ + XXX(ZBEE_ZCL_CMD_ID_KE_INITIATE, 0x00, "Initiate Key Establishment" ) \ + XXX(ZBEE_ZCL_CMD_ID_KE_EPHEMERAL, 0x01, "Ephemeral Data" ) \ + XXX(ZBEE_ZCL_CMD_ID_KE_CONFIRM, 0x02, "Confirm Key Data" ) \ + XXX(ZBEE_ZCL_CMD_ID_KE_TERMINATE, 0x03, "Terminate Key Establishment" ) + +VALUE_STRING_ENUM(zbee_zcl_ke_srv_cmd_names); +VALUE_STRING_ARRAY(zbee_zcl_ke_srv_cmd_names); + +/* Suite Names */ +#define zbee_zcl_ke_suite_names_VALUE_STRING_LIST(XXX) \ + XXX(ZBEE_ZCL_KE_SUITE_1, 0x0001, "Crypto Suite 1 (CBKE K163)" ) \ + XXX(ZBEE_ZCL_KE_SUITE_2, 0x0002, "Crypto Suite 2 (CBKE K283)" ) + +VALUE_STRING_ENUM(zbee_zcl_ke_suite_names); +VALUE_STRING_ARRAY(zbee_zcl_ke_suite_names); + +/* Crypto Suite 2 Type Names */ +#define zbee_zcl_ke_type_names_VALUE_STRING_LIST(XXX) \ + XXX(ZBEE_ZCL_KE_TYPE_NO_EXT, 0x00, "No Extensions" ) + +VALUE_STRING_ARRAY(zbee_zcl_ke_type_names); + +/* Crypto Suite 2 Curve Names */ +#define zbee_zcl_ke_curve_names_VALUE_STRING_LIST(XXX) \ + XXX(ZBEE_ZCL_KE_CURVE_SECT283K1, 0x0D, "sect283k1" ) + +VALUE_STRING_ARRAY(zbee_zcl_ke_curve_names); + +/* Crypto Suite 2 Hash Names */ +#define zbee_zcl_ke_hash_names_VALUE_STRING_LIST(XXX) \ + XXX(ZBEE_ZCL_KE_HASH_AES_MMO, 0x08, "AES MMO" ) + +VALUE_STRING_ARRAY(zbee_zcl_ke_hash_names); + +#define zbee_zcl_ke_status_names_VALUE_STRING_LIST(XXX) \ + XXX(ZBEE_ZCL_KE_STATUS_RESERVED, 0x00, "Reserved" ) \ + XXX(ZBEE_ZCL_KE_STATUS_UNKNOWN_ISSUER, 0x01, "Unknown Issuer" ) \ + XXX(ZBEE_ZCL_KE_STATUS_BAD_KEY_CONFIRM, 0x02, "Bad Key Confirm" ) \ + XXX(ZBEE_ZCL_KE_STATUS_BAD_MESSAGE, 0x03, "Bad Message" ) \ + XXX(ZBEE_ZCL_KE_STATUS_NO_RESOURCES, 0x04, "No Resources" ) \ + XXX(ZBEE_ZCL_KE_STATUS_UNSUPPORTED_SUITE, 0x05, "Unsupported Suite" ) \ + XXX(ZBEE_ZCL_KE_STATUS_INVALID_CERTIFICATE, 0x06, "Invalid Certificate" ) + +VALUE_STRING_ARRAY(zbee_zcl_ke_status_names); /*************************/ /* Function Declarations */ @@ -2242,88 +2088,15 @@ static int hf_zbee_zcl_ke_ephemeral_qev = -1; static int hf_zbee_zcl_ke_macu = -1; static int hf_zbee_zcl_ke_macv = -1; -/* Server Commands Received and Generates (symmetrical) */ -#define ZBEE_ZCL_CMD_ID_KE_INITIATE 0x00 /* Initiate Key Establishment */ -#define ZBEE_ZCL_CMD_ID_KE_EPHEMERAL 0x01 /* Ephemeral Data Request */ -#define ZBEE_ZCL_CMD_ID_KE_CONFIRM 0x02 /* Confirm Key Data Request */ -#define ZBEE_ZCL_CMD_ID_KE_TERMINATE 0x03 /* Terminate Key Establishment */ - -#define ZBEE_ZCL_KE_SUITE_1 0x0001 -#define ZBEE_ZCL_KE_SUITE_2 0x0002 - -#define ZBEE_ZCL_KE_TYPE_NO_EXT 0x00 /* no extensions were used */ - -#define ZBEE_ZCL_KE_CURVE_SECT283K1 0x0D - -#define ZBEE_ZCL_KE_HASH_AES_MMO 0x08 - -#define ZBEE_ZCL_KE_USAGE_KEY_AGREEMENT 0x08 -#define ZBEE_ZCL_KE_USAGE_DIGITAL_SIGNATURE 0x80 - -/* Attributes */ -static const value_string zbee_zcl_ke_attr_names[] = { - { ZBEE_ZCL_ATTR_ID_KE_SUITE, "Supported Key Establishment Suites" }, - { 0, NULL } -}; - -/* Server Commands Received and Generated */ -static const value_string zbee_zcl_ke_srv_cmd_names[] = { - { ZBEE_ZCL_CMD_ID_KE_INITIATE, "Initiate Key Establishment" }, - { ZBEE_ZCL_CMD_ID_KE_EPHEMERAL, "Ephemeral Data" }, - { ZBEE_ZCL_CMD_ID_KE_CONFIRM, "Confirm Key Data" }, - { ZBEE_ZCL_CMD_ID_KE_TERMINATE, "Terminate Key Establishment" }, - { 0, NULL } -}; - -/* Suite Names */ -static const value_string zbee_zcl_ke_suite_names[] = { - { ZBEE_ZCL_KE_SUITE_1, "Crypto Suite 1 (CBKE K163)" }, - { ZBEE_ZCL_KE_SUITE_2, "Crypto Suite 2 (CBKE K283)" }, - { 0, NULL } -}; - -/* Crypto Suite 2 Type Names */ -static const value_string zbee_zcl_ke_type_names[] = { - { ZBEE_ZCL_KE_TYPE_NO_EXT, "No Extensions" }, - { 0, NULL } -}; - -/* Crypto Suite 2 Curve Names */ -static const value_string zbee_zcl_ke_curve_names[] = { - { ZBEE_ZCL_KE_CURVE_SECT283K1, "sect283k1" }, - { 0, NULL } -}; - -/* Crypto Suite 2 Hash Names */ -static const value_string zbee_zcl_ke_hash_names[] = { - { ZBEE_ZCL_KE_HASH_AES_MMO, "AES MMO" }, - { 0, NULL } -}; - -#define ZBEE_ZCL_KE_STATUS_RESERVED 0x00 -#define ZBEE_ZCL_KE_STATUS_UNKNOWN_ISSUER 0x01 -#define ZBEE_ZCL_KE_STATUS_BAD_KEY_CONFIRM 0x02 -#define ZBEE_ZCL_KE_STATUS_BAD_MESSAGE 0x03 -#define ZBEE_ZCL_KE_STATUS_NO_RESOURCES 0x04 -#define ZBEE_ZCL_KE_STATUS_UNSUPPORTED_SUITE 0x05 -#define ZBEE_ZCL_KE_STATUS_INVALID_CERTIFICATE 0x06 - -static const value_string zbee_zcl_ke_status_names[] = { - { ZBEE_ZCL_KE_STATUS_RESERVED, "Reserved" }, - { ZBEE_ZCL_KE_STATUS_UNKNOWN_ISSUER, "Unknown Issuer"}, - { ZBEE_ZCL_KE_STATUS_BAD_KEY_CONFIRM, "Bad Key Confirm"}, - { ZBEE_ZCL_KE_STATUS_BAD_MESSAGE, "Bad Message"}, - { ZBEE_ZCL_KE_STATUS_NO_RESOURCES, "No Resources"}, - { ZBEE_ZCL_KE_STATUS_UNSUPPORTED_SUITE, "Unsupported Suite"}, - { ZBEE_ZCL_KE_STATUS_INVALID_CERTIFICATE, "Invalid Certificate"}, - { 0, NULL } -}; +/* Initialize the subtree pointers */ +static gint ett_zbee_zcl_ke = -1; +static gint ett_zbee_zcl_ke_cert = -1; +static gint ett_zbee_zcl_ke_key_usage = -1; /*************************/ /* Function Bodies */ /*************************/ - /** *This function dissects the Suite 1 Certificate * -- cgit v1.2.3