aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-zbee-zcl.h
diff options
context:
space:
mode:
authorRonnie Sahlberg <ronnie_sahlberg@ozemail.com.au>2009-07-29 11:29:53 +0000
committerRonnie Sahlberg <ronnie_sahlberg@ozemail.com.au>2009-07-29 11:29:53 +0000
commit148263ebf09519086649146290349497dcf209a8 (patch)
tree68b4628ee7aecbf619d7e3004f9b31463598a239 /epan/dissectors/packet-zbee-zcl.h
parentad942553b3a66ca62760e0f81f7f57a232c74f84 (diff)
zigbee cluster dissector,
modified from entry in bug 3765 so it compiles cleanly svn path=/trunk/; revision=29232
Diffstat (limited to 'epan/dissectors/packet-zbee-zcl.h')
-rw-r--r--epan/dissectors/packet-zbee-zcl.h178
1 files changed, 178 insertions, 0 deletions
diff --git a/epan/dissectors/packet-zbee-zcl.h b/epan/dissectors/packet-zbee-zcl.h
new file mode 100644
index 0000000000..55afdf7958
--- /dev/null
+++ b/epan/dissectors/packet-zbee-zcl.h
@@ -0,0 +1,178 @@
+/* packet-zbee-zcl.h
+ * Dissector routines for the ZigBee Cluster Library (ZCL)
+ * By Fred Fierling <fff@exegin.com>
+ * Copyright 2009 Exegin Technologies Limited
+ *
+ * $Id:$
+ *
+ * Wireshark - Network traffic analyzer
+ * By Gerald Combs <gerald@wireshark.org>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef PACKET_ZBEE_ZCL_H
+#define PACKET_ZBEE_ZCL_H
+
+/* Structure to contain the ZCL frame information */
+typedef struct{
+ gboolean mfr_spec;
+ gboolean direction;
+ gboolean disable_default_resp;
+
+ guint8 frame_type;
+ guint16 mfr_code;
+ guint8 tran_seqno;
+ guint8 cmd_id;
+} zbee_zcl_packet;
+
+/* ZCL Commands */
+#define ZBEE_ZCL_CMD_READ_ATTR 0x00
+#define ZBEE_ZCL_CMD_READ_ATTR_RESP 0x01
+#define ZBEE_ZCL_CMD_WRITE_ATTR 0x02
+#define ZBEE_ZCL_CMD_WRITE_ATTR_UNDIVIDED 0x03
+#define ZBEE_ZCL_CMD_WRITE_ATTR_RESP 0x04
+#define ZBEE_ZCL_CMD_WRITE_ATTR_NO_RESP 0x05
+#define ZBEE_ZCL_CMD_CONFIG_REPORT 0x06
+#define ZBEE_ZCL_CMD_CONFIG_REPORT_RESP 0x07
+#define ZBEE_ZCL_CMD_READ_REPORT_CONFIG 0x08
+#define ZBEE_ZCL_CMD_READ_REPORT_CONFIG_RESP 0x09
+#define ZBEE_ZCL_CMD_REPORT_ATTR 0x0a
+#define ZBEE_ZCL_CMD_DEFAULT_RESP 0x0b
+#define ZBEE_ZCL_CMD_DISCOVER_ATTR 0x0c
+#define ZBEE_ZCL_CMD_DISCOVER_ATTR_RESP 0x0d
+#define ZBEE_ZCL_CMD_READ_ATTR_STRUCT 0x0e
+#define ZBEE_ZCL_CMD_WRITE_ATTR_STRUCT 0x0f
+#define ZBEE_ZCL_CMD_WRITE_ATTR_STRUCT_RESP 0x10
+
+/* ZCL Data Types */
+#define ZBEE_ZCL_NO_DATA 0x00
+
+#define ZBEE_ZCL_8_BIT_DATA 0x08
+#define ZBEE_ZCL_16_BIT_DATA 0x09
+#define ZBEE_ZCL_24_BIT_DATA 0x0a
+#define ZBEE_ZCL_32_BIT_DATA 0x0b
+#define ZBEE_ZCL_40_BIT_DATA 0x0c
+#define ZBEE_ZCL_48_BIT_DATA 0x0d
+#define ZBEE_ZCL_56_BIT_DATA 0x0e
+#define ZBEE_ZCL_64_BIT_DATA 0x0f
+
+#define ZBEE_ZCL_BOOLEAN 0x10
+
+#define ZBEE_ZCL_8_BIT_BITMAP 0x18
+#define ZBEE_ZCL_16_BIT_BITMAP 0x19
+#define ZBEE_ZCL_24_BIT_BITMAP 0x1a
+#define ZBEE_ZCL_32_BIT_BITMAP 0x1b
+#define ZBEE_ZCL_40_BIT_BITMAP 0x1c
+#define ZBEE_ZCL_48_BIT_BITMAP 0x1d
+#define ZBEE_ZCL_56_BIT_BITMAP 0x1e
+#define ZBEE_ZCL_64_BIT_BITMAP 0x1f
+
+#define ZBEE_ZCL_8_BIT_UINT 0x20
+#define ZBEE_ZCL_16_BIT_UINT 0x21
+#define ZBEE_ZCL_24_BIT_UINT 0x22
+#define ZBEE_ZCL_32_BIT_UINT 0x23
+#define ZBEE_ZCL_40_BIT_UINT 0x24
+#define ZBEE_ZCL_48_BIT_UINT 0x25
+#define ZBEE_ZCL_56_BIT_UINT 0x26
+#define ZBEE_ZCL_64_BIT_UINT 0x27
+
+#define ZBEE_ZCL_8_BIT_INT 0x28
+#define ZBEE_ZCL_16_BIT_INT 0x29
+#define ZBEE_ZCL_24_BIT_INT 0x2a
+#define ZBEE_ZCL_32_BIT_INT 0x2b
+#define ZBEE_ZCL_40_BIT_INT 0x2c
+#define ZBEE_ZCL_48_BIT_INT 0x2d
+#define ZBEE_ZCL_56_BIT_INT 0x2e
+#define ZBEE_ZCL_64_BIT_INT 0x2f
+
+#define ZBEE_ZCL_8_BIT_ENUM 0x30
+#define ZBEE_ZCL_16_BIT_ENUM 0x31
+
+#define ZBEE_ZCL_SEMI_FLOAT 0x38
+#define ZBEE_ZCL_SINGLE_FLOAT 0x39
+#define ZBEE_ZCL_DOUBLE_FLOAT 0x3a
+
+#define ZBEE_ZCL_OCTET_STRING 0x41
+#define ZBEE_ZCL_CHAR_STRING 0x42
+#define ZBEE_ZCL_LONG_OCTET_STRING 0x43
+#define ZBEE_ZCL_LONG_CHAR_STRING 0x44
+
+#define ZBEE_ZCL_ARRAY 0x48
+#define ZBEE_ZCL_STRUCT 0x4c
+
+#define ZBEE_ZCL_SET 0x50
+#define ZBEE_ZCL_BAG 0x51
+
+#define ZBEE_ZCL_TIME 0xe0
+#define ZBEE_ZCL_DATE 0xe1
+#define ZBEE_ZCL_UTC 0xe2
+
+#define ZBEE_ZCL_CLUSTER_ID 0xe8
+#define ZBEE_ZCL_ATTR_ID 0xe9
+#define ZBEE_ZCL_BACNET_OID 0xea
+
+#define ZBEE_ZCL_IEEE_ADDR 0xf0
+#define ZBEE_ZCL_SECURITY_KEY 0xf1
+
+#define ZBEE_ZCL_UNKNOWN 0xff
+
+/* ZCL Miscellaneous */
+#define ZBEE_ZCL_INVALID_STR_LENGTH 0xff
+#define ZBEE_ZCL_INVALID_LONG_STR_LENGTH 0xffff
+#define ZBEE_ZCL_NUM_INDIVIDUAL_ETT 2
+#define ZBEE_ZCL_NUM_ATTR_ETT 64
+#define ZBEE_ZCL_DIR_REPORTED 0
+#define ZBEE_ZCL_DIR_RECEIVED 1
+/* seconds elapsed from year 1970 to 2000 */
+#define ZBEE_ZCL_NSTIME_UTC_OFFSET (((3*365 + 366)*7 + 2*365)*24*3600)
+#define IS_ANALOG_SUBTYPE(x) ( (x & 0xe0) == 0x20 || (x & 0xe0) == 0xe0 )
+
+/* ZCL Status Enumerations */
+#define ZBEE_ZCL_STAT_SUCCESS 0x00
+#define ZBEE_ZCL_STAT_FAILURE 0x01
+
+#define ZBEE_ZCL_STAT_NOT_AUTHORIZED 0x7e
+#define ZBEE_ZCL_STAT_RESERVED_FIELD_NOT_ZERO 0x7f
+#define ZBEE_ZCL_STAT_MALFORMED_CMD 0x80
+#define ZBEE_ZCL_STAT_UNSUP_CLUSTER_CMD 0x81
+#define ZBEE_ZCL_STAT_UNSUP_GENERAL_CMD 0x82
+#define ZBEE_ZCL_STAT_UNSUP_MFR_CLUSTER_CMD 0x83
+#define ZBEE_ZCL_STAT_UNSUP_MFR_GENERAL_CMD 0x84
+#define ZBEE_ZCL_STAT_INVALID_FIELD 0x85
+#define ZBEE_ZCL_STAT_UNSUPPORTED_ATTR 0x86
+#define ZBEE_ZCL_STAT_INSUFFICIENT_SPACE 0x87
+#define ZBEE_ZCL_STAT_DUPLICATE_EXISTS 0x88
+#define ZBEE_ZCL_STAT_NOT_FOUND 0x89
+#define ZBEE_ZCL_STAT_UNREPORTABLE_ATTR 0x8a
+#define ZBEE_ZCL_STAT_INVALID_DATA_TYPE 0x8b
+#define ZBEE_ZCL_STAT_INVALID_SELECTOR 0x8c
+#define ZBEE_ZCL_STAT_WRITE_ONLY 0x8d
+#define ZBEE_ZCL_STAT_INCONSISTENT_STARTUP_STATE 0x8e
+#define ZBEE_ZCL_STAT_DEFINED_OUT_OF_BAND 0x8f
+#define ZBEE_ZCL_STAT_HARDWARE_FAILURE 0x90
+#define ZBEE_ZCL_STAT_SOFTWARE_FAILURE 0x91
+
+#define ZBEE_ZCL_STAT_CALIBRATION_ERROR 0xc0
+#define ZBEE_ZCL_STAT_INVALID_VALUE 0xc1
+#define ZBEE_ZCL_STAT_READ_ONLY 0xc2
+
+/* Misc. */
+#define INT24_SIGN_BITS 0xffff8000
+#define MONTHS_PER_YEAR 12
+#define YEAR_OFFSET 1900
+
+#endif /* PACKET_ZBEE_ZCL_H*/