summaryrefslogtreecommitdiffstats
path: root/src/app-layer-dnp3-objects.h
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 17:39:49 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 17:39:49 +0000
commita0aa2307322cd47bbf416810ac0292925e03be87 (patch)
tree37076262a026c4b48c8a0e84f44ff9187556ca35 /src/app-layer-dnp3-objects.h
parentInitial commit. (diff)
downloadsuricata-a0aa2307322cd47bbf416810ac0292925e03be87.tar.xz
suricata-a0aa2307322cd47bbf416810ac0292925e03be87.zip
Adding upstream version 1:7.0.3.upstream/1%7.0.3
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/app-layer-dnp3-objects.h')
-rw-r--r--src/app-layer-dnp3-objects.h1464
1 files changed, 1464 insertions, 0 deletions
diff --git a/src/app-layer-dnp3-objects.h b/src/app-layer-dnp3-objects.h
new file mode 100644
index 0000000..e292f01
--- /dev/null
+++ b/src/app-layer-dnp3-objects.h
@@ -0,0 +1,1464 @@
+/* Copyright (C) 2015 Open Information Security Foundation
+ *
+ * You can copy, redistribute or modify this Program under the terms of
+ * the GNU General Public License version 2 as published by the Free
+ * Software Foundation.
+ *
+ * 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
+ * version 2 along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ * 02110-1301, USA.
+ */
+
+/**
+ * \file
+ *
+ * \author Jason Ish <jason.ish@oisf.net>
+ *
+ * This file contains the types (definitions) of the DNP3 objects.
+ */
+
+#ifndef __APP_LAYER_DNP3_OBJECTS_H__
+#define __APP_LAYER_DNP3_OBJECTS_H__
+
+#define DNP3_OBJECT_CODE(group, variation) (group << 8 | variation)
+
+/* START GENERATED CODE */
+
+/* Code generated by:
+ * ./scripts/dnp3-gen/dnp3-gen.py
+ */
+
+typedef struct DNP3ObjectG1V1_ {
+ uint8_t state;
+} DNP3ObjectG1V1;
+
+typedef struct DNP3ObjectG1V2_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t chatter_filter:1;
+ uint8_t reserved:1;
+ uint8_t state:1;
+} DNP3ObjectG1V2;
+
+typedef struct DNP3ObjectG2V1_ {
+ uint8_t state;
+} DNP3ObjectG2V1;
+
+typedef struct DNP3ObjectG2V2_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t chatter_filter:1;
+ uint8_t reserved:1;
+ uint8_t state:1;
+ uint64_t timestamp;
+} DNP3ObjectG2V2;
+
+typedef struct DNP3ObjectG2V3_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t chatter_filter:1;
+ uint8_t reserved:1;
+ uint8_t state:1;
+ uint16_t timestamp;
+} DNP3ObjectG2V3;
+
+typedef struct DNP3ObjectG3V1_ {
+ uint8_t state;
+} DNP3ObjectG3V1;
+
+typedef struct DNP3ObjectG3V2_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t chatter_filter:1;
+ uint8_t state:2;
+} DNP3ObjectG3V2;
+
+typedef struct DNP3ObjectG4V1_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t chatter_filter:1;
+ uint8_t state:2;
+} DNP3ObjectG4V1;
+
+typedef struct DNP3ObjectG4V2_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t chatter_filter:1;
+ uint8_t state:2;
+ uint64_t timestamp;
+} DNP3ObjectG4V2;
+
+typedef struct DNP3ObjectG4V3_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t chatter_filter:1;
+ uint8_t state:2;
+ uint16_t relative_time_ms;
+} DNP3ObjectG4V3;
+
+typedef struct DNP3ObjectG10V1_ {
+ uint8_t state;
+} DNP3ObjectG10V1;
+
+typedef struct DNP3ObjectG10V2_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t reserved0:1;
+ uint8_t reserved1:1;
+ uint8_t state:1;
+} DNP3ObjectG10V2;
+
+typedef struct DNP3ObjectG11V1_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t reserved0:1;
+ uint8_t reserved1:1;
+ uint8_t state:1;
+} DNP3ObjectG11V1;
+
+typedef struct DNP3ObjectG11V2_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t reserved0:1;
+ uint8_t reserved1:1;
+ uint8_t state:1;
+ uint64_t timestamp;
+} DNP3ObjectG11V2;
+
+typedef struct DNP3ObjectG12V1_ {
+ uint8_t op_type:4;
+ uint8_t qu:1;
+ uint8_t cr:1;
+ uint8_t tcc:2;
+ uint8_t count;
+ uint32_t ontime;
+ uint32_t offtime;
+ uint8_t status_code:7;
+ uint8_t reserved:1;
+} DNP3ObjectG12V1;
+
+typedef struct DNP3ObjectG12V2_ {
+ uint8_t op_type:4;
+ uint8_t qu:1;
+ uint8_t cr:1;
+ uint8_t tcc:2;
+ uint8_t count;
+ uint32_t ontime;
+ uint32_t offtime;
+ uint8_t status_code:7;
+ uint8_t reserved:1;
+} DNP3ObjectG12V2;
+
+typedef struct DNP3ObjectG12V3_ {
+ uint8_t point;
+} DNP3ObjectG12V3;
+
+typedef struct DNP3ObjectG13V1_ {
+ uint8_t status_code:7;
+ uint8_t commanded_state:1;
+} DNP3ObjectG13V1;
+
+typedef struct DNP3ObjectG13V2_ {
+ uint8_t status_code:7;
+ uint8_t commanded_state:1;
+ uint64_t timestamp;
+} DNP3ObjectG13V2;
+
+typedef struct DNP3ObjectG20V1_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t rollover:1;
+ uint8_t discontinuity:1;
+ uint8_t reserved0:1;
+ uint32_t count;
+} DNP3ObjectG20V1;
+
+typedef struct DNP3ObjectG20V2_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t rollover:1;
+ uint8_t discontinuity:1;
+ uint8_t reserved0:1;
+ uint16_t count;
+} DNP3ObjectG20V2;
+
+typedef struct DNP3ObjectG20V3_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t rollover:1;
+ uint8_t reserved0:1;
+ uint8_t reserved1:1;
+ uint32_t count;
+} DNP3ObjectG20V3;
+
+typedef struct DNP3ObjectG20V4_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t rollover:1;
+ uint8_t reserved0:1;
+ uint8_t reserved1:1;
+ uint16_t count;
+} DNP3ObjectG20V4;
+
+typedef struct DNP3ObjectG20V5_ {
+ uint32_t count;
+} DNP3ObjectG20V5;
+
+typedef struct DNP3ObjectG20V6_ {
+ uint16_t count;
+} DNP3ObjectG20V6;
+
+typedef struct DNP3ObjectG20V7_ {
+ uint32_t count;
+} DNP3ObjectG20V7;
+
+typedef struct DNP3ObjectG20V8_ {
+ uint16_t count;
+} DNP3ObjectG20V8;
+
+typedef struct DNP3ObjectG21V1_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t rollover:1;
+ uint8_t discontinuity:1;
+ uint8_t reserved0:1;
+ uint32_t count;
+} DNP3ObjectG21V1;
+
+typedef struct DNP3ObjectG21V2_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t rollover:1;
+ uint8_t discontinuity:1;
+ uint8_t reserved0:1;
+ uint16_t count;
+} DNP3ObjectG21V2;
+
+typedef struct DNP3ObjectG21V3_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t rollover:1;
+ uint8_t reserved0:1;
+ uint8_t reserved1:1;
+ uint32_t count;
+} DNP3ObjectG21V3;
+
+typedef struct DNP3ObjectG21V4_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t rollover:1;
+ uint8_t reserved0:1;
+ uint8_t reserved1:1;
+ uint16_t count;
+} DNP3ObjectG21V4;
+
+typedef struct DNP3ObjectG21V5_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t rollover:1;
+ uint8_t discontinuity:1;
+ uint8_t reserved1:1;
+ uint32_t count;
+ uint64_t timestamp;
+} DNP3ObjectG21V5;
+
+typedef struct DNP3ObjectG21V6_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t rollover:1;
+ uint8_t discontinuity:1;
+ uint8_t reserved1:1;
+ uint16_t count;
+ uint64_t timestamp;
+} DNP3ObjectG21V6;
+
+typedef struct DNP3ObjectG21V7_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t rollover:1;
+ uint8_t reserved0:1;
+ uint8_t reserved1:1;
+ uint32_t count;
+ uint64_t timestamp;
+} DNP3ObjectG21V7;
+
+typedef struct DNP3ObjectG21V8_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t rollover:1;
+ uint8_t reserved0:1;
+ uint8_t reserved1:1;
+ uint16_t count;
+ uint64_t timestamp;
+} DNP3ObjectG21V8;
+
+typedef struct DNP3ObjectG21V9_ {
+ uint32_t count;
+} DNP3ObjectG21V9;
+
+typedef struct DNP3ObjectG21V10_ {
+ uint16_t count;
+} DNP3ObjectG21V10;
+
+typedef struct DNP3ObjectG21V11_ {
+ uint32_t count;
+} DNP3ObjectG21V11;
+
+typedef struct DNP3ObjectG21V12_ {
+ uint16_t count;
+} DNP3ObjectG21V12;
+
+typedef struct DNP3ObjectG22V1_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t rollover:1;
+ uint8_t discontinuity:1;
+ uint8_t reserved0:1;
+ uint32_t count;
+} DNP3ObjectG22V1;
+
+typedef struct DNP3ObjectG22V2_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t rollover:1;
+ uint8_t discontinuity:1;
+ uint8_t reserved0:1;
+ uint16_t count;
+} DNP3ObjectG22V2;
+
+typedef struct DNP3ObjectG22V3_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t rollover:1;
+ uint8_t reserved0:1;
+ uint8_t reserved1:1;
+ uint32_t count;
+} DNP3ObjectG22V3;
+
+typedef struct DNP3ObjectG22V4_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t rollover:1;
+ uint8_t reserved0:1;
+ uint8_t reserved1:1;
+ uint16_t count;
+} DNP3ObjectG22V4;
+
+typedef struct DNP3ObjectG22V5_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t rollover:1;
+ uint8_t reserved0:1;
+ uint8_t reserved1:1;
+ uint32_t count;
+ uint64_t timestamp;
+} DNP3ObjectG22V5;
+
+typedef struct DNP3ObjectG22V6_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t rollover:1;
+ uint8_t discontinuity:1;
+ uint8_t reserved0:1;
+ uint16_t count;
+ uint64_t timestamp;
+} DNP3ObjectG22V6;
+
+typedef struct DNP3ObjectG22V7_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t rollover:1;
+ uint8_t reserved0:1;
+ uint8_t reserved1:1;
+ uint32_t count;
+ uint64_t timestamp;
+} DNP3ObjectG22V7;
+
+typedef struct DNP3ObjectG22V8_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t rollover:1;
+ uint8_t reserved0:1;
+ uint8_t reserved1:1;
+ uint16_t count;
+ uint64_t timestamp;
+} DNP3ObjectG22V8;
+
+typedef struct DNP3ObjectG23V1_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t rollover:1;
+ uint8_t discontinuity:1;
+ uint8_t reserved0:1;
+ uint32_t count;
+} DNP3ObjectG23V1;
+
+typedef struct DNP3ObjectG23V2_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t rollover:1;
+ uint8_t reserved0:1;
+ uint8_t reserved1:1;
+ uint16_t count;
+} DNP3ObjectG23V2;
+
+typedef struct DNP3ObjectG23V3_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t rollover:1;
+ uint8_t reserved0:1;
+ uint8_t reserved1:1;
+ uint32_t count;
+} DNP3ObjectG23V3;
+
+typedef struct DNP3ObjectG23V4_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t rollover:1;
+ uint8_t reserved0:1;
+ uint8_t reserved1:1;
+ uint16_t count;
+} DNP3ObjectG23V4;
+
+typedef struct DNP3ObjectG23V5_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t rollover:1;
+ uint8_t discontinuity:1;
+ uint8_t reserved0:1;
+ uint32_t count;
+ uint64_t timestamp;
+} DNP3ObjectG23V5;
+
+typedef struct DNP3ObjectG23V6_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t rollover:1;
+ uint8_t discontinuity:1;
+ uint8_t reserved0:1;
+ uint16_t count;
+ uint64_t timestamp;
+} DNP3ObjectG23V6;
+
+typedef struct DNP3ObjectG23V7_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t rollover:1;
+ uint8_t reserved0:1;
+ uint8_t reserved1:1;
+ uint32_t count;
+ uint64_t timestamp;
+} DNP3ObjectG23V7;
+
+typedef struct DNP3ObjectG23V8_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t rollover:1;
+ uint8_t reserved0:1;
+ uint8_t reserved1:1;
+ uint16_t count;
+ uint64_t timestamp;
+} DNP3ObjectG23V8;
+
+typedef struct DNP3ObjectG30V1_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t over_range:1;
+ uint8_t reference_err:1;
+ uint8_t reserved0:1;
+ int32_t value;
+} DNP3ObjectG30V1;
+
+typedef struct DNP3ObjectG30V2_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t over_range:1;
+ uint8_t reference_err:1;
+ uint8_t reserved0:1;
+ int16_t value;
+} DNP3ObjectG30V2;
+
+typedef struct DNP3ObjectG30V3_ {
+ int32_t value;
+} DNP3ObjectG30V3;
+
+typedef struct DNP3ObjectG30V4_ {
+ int16_t value;
+} DNP3ObjectG30V4;
+
+typedef struct DNP3ObjectG30V5_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t over_range:1;
+ uint8_t reference_err:1;
+ uint8_t reserved0:1;
+ float value;
+} DNP3ObjectG30V5;
+
+typedef struct DNP3ObjectG30V6_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t over_range:1;
+ uint8_t reference_err:1;
+ uint8_t reserved0:1;
+ double value;
+} DNP3ObjectG30V6;
+
+typedef struct DNP3ObjectG31V1_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t over_range:1;
+ uint8_t reference_err:1;
+ uint8_t reserved0:1;
+ int32_t value;
+} DNP3ObjectG31V1;
+
+typedef struct DNP3ObjectG31V2_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t over_range:1;
+ uint8_t reference_err:1;
+ uint8_t reserved0:1;
+ int16_t value;
+} DNP3ObjectG31V2;
+
+typedef struct DNP3ObjectG31V3_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t over_range:1;
+ uint8_t reference_err:1;
+ uint8_t reserved0:1;
+ int32_t value;
+ uint64_t timestamp;
+} DNP3ObjectG31V3;
+
+typedef struct DNP3ObjectG31V4_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t over_range:1;
+ uint8_t reference_err:1;
+ uint8_t reserved0:1;
+ int16_t value;
+ uint64_t timestamp;
+} DNP3ObjectG31V4;
+
+typedef struct DNP3ObjectG31V5_ {
+ int32_t value;
+} DNP3ObjectG31V5;
+
+typedef struct DNP3ObjectG31V6_ {
+ int16_t value;
+} DNP3ObjectG31V6;
+
+typedef struct DNP3ObjectG31V7_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t over_range:1;
+ uint8_t reference_err:1;
+ uint8_t reserved0:1;
+ float value;
+} DNP3ObjectG31V7;
+
+typedef struct DNP3ObjectG31V8_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t over_range:1;
+ uint8_t reference_err:1;
+ uint8_t reserved0:1;
+ double value;
+} DNP3ObjectG31V8;
+
+typedef struct DNP3ObjectG32V1_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t over_range:1;
+ uint8_t reference_err:1;
+ uint8_t reserved0:1;
+ int32_t value;
+} DNP3ObjectG32V1;
+
+typedef struct DNP3ObjectG32V2_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t over_range:1;
+ uint8_t reference_err:1;
+ uint8_t reserved0:1;
+ int16_t value;
+} DNP3ObjectG32V2;
+
+typedef struct DNP3ObjectG32V3_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t over_range:1;
+ uint8_t reference_err:1;
+ uint8_t reserved0:1;
+ int32_t value;
+ uint64_t timestamp;
+} DNP3ObjectG32V3;
+
+typedef struct DNP3ObjectG32V4_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t over_range:1;
+ uint8_t reference_err:1;
+ uint8_t reserved0:1;
+ int16_t value;
+ uint64_t timestamp;
+} DNP3ObjectG32V4;
+
+typedef struct DNP3ObjectG32V5_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t over_range:1;
+ uint8_t reference_err:1;
+ uint8_t reserved0:1;
+ float value;
+} DNP3ObjectG32V5;
+
+typedef struct DNP3ObjectG32V6_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t over_range:1;
+ uint8_t reference_err:1;
+ uint8_t reserved0:1;
+ double value;
+} DNP3ObjectG32V6;
+
+typedef struct DNP3ObjectG32V7_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t over_range:1;
+ uint8_t reference_err:1;
+ uint8_t reserved0:1;
+ float value;
+ uint64_t timestamp;
+} DNP3ObjectG32V7;
+
+typedef struct DNP3ObjectG32V8_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t over_range:1;
+ uint8_t reference_err:1;
+ uint8_t reserved0:1;
+ double value;
+ uint64_t timestamp;
+} DNP3ObjectG32V8;
+
+typedef struct DNP3ObjectG33V1_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t over_range:1;
+ uint8_t reference_err:1;
+ uint8_t reserved0:1;
+ int32_t value;
+} DNP3ObjectG33V1;
+
+typedef struct DNP3ObjectG33V2_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t over_range:1;
+ uint8_t reference_err:1;
+ uint8_t reserved0:1;
+ int16_t value;
+} DNP3ObjectG33V2;
+
+typedef struct DNP3ObjectG33V3_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t over_range:1;
+ uint8_t reference_err:1;
+ uint8_t reserved0:1;
+ int32_t value;
+ uint64_t timestamp;
+} DNP3ObjectG33V3;
+
+typedef struct DNP3ObjectG33V4_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t over_range:1;
+ uint8_t reference_err:1;
+ uint8_t reserved0:1;
+ int16_t value;
+ uint64_t timestamp;
+} DNP3ObjectG33V4;
+
+typedef struct DNP3ObjectG33V5_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t over_range:1;
+ uint8_t reference_err:1;
+ uint8_t reserved0:1;
+ float value;
+} DNP3ObjectG33V5;
+
+typedef struct DNP3ObjectG33V6_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t over_range:1;
+ uint8_t reference_err:1;
+ uint8_t reserved0:1;
+ double value;
+} DNP3ObjectG33V6;
+
+typedef struct DNP3ObjectG33V7_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t over_range:1;
+ uint8_t reference_err:1;
+ uint8_t reserved0:1;
+ float value;
+ uint64_t timestamp;
+} DNP3ObjectG33V7;
+
+typedef struct DNP3ObjectG33V8_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t over_range:1;
+ uint8_t reference_err:1;
+ uint8_t reserved0:1;
+ double value;
+ uint64_t timestamp;
+} DNP3ObjectG33V8;
+
+typedef struct DNP3ObjectG34V1_ {
+ uint16_t deadband_value;
+} DNP3ObjectG34V1;
+
+typedef struct DNP3ObjectG34V2_ {
+ uint32_t deadband_value;
+} DNP3ObjectG34V2;
+
+typedef struct DNP3ObjectG34V3_ {
+ float deadband_value;
+} DNP3ObjectG34V3;
+
+typedef struct DNP3ObjectG40V1_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t over_range:1;
+ uint8_t reference_err:1;
+ uint8_t reserved0:1;
+ int32_t value;
+} DNP3ObjectG40V1;
+
+typedef struct DNP3ObjectG40V2_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t over_range:1;
+ uint8_t reference_err:1;
+ uint8_t reserved0:1;
+ int16_t value;
+} DNP3ObjectG40V2;
+
+typedef struct DNP3ObjectG40V3_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t over_range:1;
+ uint8_t reference_err:1;
+ uint8_t reserved0:1;
+ float value;
+} DNP3ObjectG40V3;
+
+typedef struct DNP3ObjectG40V4_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t over_range:1;
+ uint8_t reference_err:1;
+ uint8_t reserved0:1;
+ double value;
+} DNP3ObjectG40V4;
+
+typedef struct DNP3ObjectG41V1_ {
+ int32_t value;
+ uint8_t control_status;
+} DNP3ObjectG41V1;
+
+typedef struct DNP3ObjectG41V2_ {
+ int16_t value;
+ uint8_t control_status;
+} DNP3ObjectG41V2;
+
+typedef struct DNP3ObjectG41V3_ {
+ float value;
+ uint8_t control_status;
+} DNP3ObjectG41V3;
+
+typedef struct DNP3ObjectG41V4_ {
+ double value;
+ uint8_t control_status;
+} DNP3ObjectG41V4;
+
+typedef struct DNP3ObjectG42V1_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t over_range:1;
+ uint8_t reference_err:1;
+ uint8_t reserved0:1;
+ int32_t value;
+} DNP3ObjectG42V1;
+
+typedef struct DNP3ObjectG42V2_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t over_range:1;
+ uint8_t reference_err:1;
+ uint8_t reserved0:1;
+ int16_t value;
+} DNP3ObjectG42V2;
+
+typedef struct DNP3ObjectG42V3_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t over_range:1;
+ uint8_t reference_err:1;
+ uint8_t reserved0:1;
+ int32_t value;
+ uint64_t timestamp;
+} DNP3ObjectG42V3;
+
+typedef struct DNP3ObjectG42V4_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t over_range:1;
+ uint8_t reference_err:1;
+ uint8_t reserved0:1;
+ int16_t value;
+ uint64_t timestamp;
+} DNP3ObjectG42V4;
+
+typedef struct DNP3ObjectG42V5_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t over_range:1;
+ uint8_t reference_err:1;
+ uint8_t reserved0:1;
+ float value;
+} DNP3ObjectG42V5;
+
+typedef struct DNP3ObjectG42V6_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t over_range:1;
+ uint8_t reference_err:1;
+ uint8_t reserved0:1;
+ double value;
+} DNP3ObjectG42V6;
+
+typedef struct DNP3ObjectG42V7_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t over_range:1;
+ uint8_t reference_err:1;
+ uint8_t reserved0:1;
+ float value;
+ uint64_t timestamp;
+} DNP3ObjectG42V7;
+
+typedef struct DNP3ObjectG42V8_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t over_range:1;
+ uint8_t reference_err:1;
+ uint8_t reserved0:1;
+ double value;
+ uint64_t timestamp;
+} DNP3ObjectG42V8;
+
+typedef struct DNP3ObjectG43V1_ {
+ uint8_t status_code:7;
+ uint8_t reserved0:1;
+ int32_t commanded_value;
+} DNP3ObjectG43V1;
+
+typedef struct DNP3ObjectG43V2_ {
+ uint8_t status_code:7;
+ uint8_t reserved0:1;
+ int16_t commanded_value;
+} DNP3ObjectG43V2;
+
+typedef struct DNP3ObjectG43V3_ {
+ uint8_t status_code:7;
+ uint8_t reserved0:1;
+ int32_t commanded_value;
+ uint64_t timestamp;
+} DNP3ObjectG43V3;
+
+typedef struct DNP3ObjectG43V4_ {
+ uint8_t status_code:7;
+ uint8_t reserved0:1;
+ int16_t commanded_value;
+ uint64_t timestamp;
+} DNP3ObjectG43V4;
+
+typedef struct DNP3ObjectG43V5_ {
+ uint8_t status_code:7;
+ uint8_t reserved0:1;
+ float commanded_value;
+} DNP3ObjectG43V5;
+
+typedef struct DNP3ObjectG43V6_ {
+ uint8_t status_code:7;
+ uint8_t reserved0:1;
+ double commanded_value;
+} DNP3ObjectG43V6;
+
+typedef struct DNP3ObjectG43V7_ {
+ uint8_t status_code:7;
+ uint8_t reserved0:1;
+ float commanded_value;
+ uint64_t timestamp;
+} DNP3ObjectG43V7;
+
+typedef struct DNP3ObjectG43V8_ {
+ uint8_t status_code:7;
+ uint8_t reserved0:1;
+ double commanded_value;
+ uint64_t timestamp;
+} DNP3ObjectG43V8;
+
+typedef struct DNP3ObjectG50V1_ {
+ uint64_t timestamp;
+} DNP3ObjectG50V1;
+
+typedef struct DNP3ObjectG50V2_ {
+ uint64_t timestamp;
+ uint32_t interval;
+} DNP3ObjectG50V2;
+
+typedef struct DNP3ObjectG50V3_ {
+ uint64_t timestamp;
+} DNP3ObjectG50V3;
+
+typedef struct DNP3ObjectG50V4_ {
+ uint64_t timestamp;
+ uint32_t interval_count;
+ uint8_t interval_units;
+} DNP3ObjectG50V4;
+
+typedef struct DNP3ObjectG51V1_ {
+ uint64_t timestamp;
+} DNP3ObjectG51V1;
+
+typedef struct DNP3ObjectG51V2_ {
+ uint64_t timestamp;
+} DNP3ObjectG51V2;
+
+typedef struct DNP3ObjectG52V1_ {
+ uint16_t delay_secs;
+} DNP3ObjectG52V1;
+
+typedef struct DNP3ObjectG52V2_ {
+ uint16_t delay_ms;
+} DNP3ObjectG52V2;
+
+typedef struct DNP3ObjectG70V1_ {
+ uint16_t filename_size;
+ uint8_t filetype_code;
+ uint8_t attribute_code;
+ uint16_t start_record;
+ uint16_t end_record;
+ uint32_t file_size;
+ uint64_t created_timestamp;
+ uint16_t permission;
+ uint32_t file_id;
+ uint32_t owner_id;
+ uint32_t group_id;
+ uint8_t file_function_code;
+ uint8_t status_code;
+ char filename[65535];
+ uint16_t data_size;
+ char data[65535];
+} DNP3ObjectG70V1;
+
+typedef struct DNP3ObjectG70V2_ {
+ uint16_t username_offset;
+ uint16_t username_size;
+ uint16_t password_offset;
+ uint16_t password_size;
+ uint32_t authentication_key;
+ char username[65535];
+ char password[65535];
+} DNP3ObjectG70V2;
+
+typedef struct DNP3ObjectG70V3_ {
+ uint16_t filename_offset;
+ uint16_t filename_size;
+ uint64_t created;
+ uint16_t permissions;
+ uint32_t authentication_key;
+ uint32_t file_size;
+ uint16_t operational_mode;
+ uint16_t maximum_block_size;
+ uint16_t request_id;
+ char filename[65535];
+} DNP3ObjectG70V3;
+
+typedef struct DNP3ObjectG70V4_ {
+ uint32_t file_handle;
+ uint32_t file_size;
+ uint16_t maximum_block_size;
+ uint16_t request_id;
+ uint8_t status_code;
+ char optional_text[255];
+ uint8_t optional_text_len;
+} DNP3ObjectG70V4;
+
+typedef struct DNP3ObjectG70V5_ {
+ uint32_t file_handle;
+ uint32_t block_number;
+ char file_data[255];
+ uint8_t file_data_len;
+} DNP3ObjectG70V5;
+
+typedef struct DNP3ObjectG70V6_ {
+ uint32_t file_handle;
+ uint32_t block_number;
+ uint8_t status_code;
+ char optional_text[255];
+ uint8_t optional_text_len;
+} DNP3ObjectG70V6;
+
+typedef struct DNP3ObjectG70V7_ {
+ uint16_t filename_offset;
+ uint16_t filename_size;
+ uint16_t file_type;
+ uint32_t file_size;
+ uint64_t created_timestamp;
+ uint16_t permissions;
+ uint16_t request_id;
+ char filename[65535];
+} DNP3ObjectG70V7;
+
+typedef struct DNP3ObjectG70V8_ {
+ char file_specification[65535];
+ uint16_t file_specification_len;
+} DNP3ObjectG70V8;
+
+typedef struct DNP3ObjectG80V1_ {
+ uint8_t state;
+} DNP3ObjectG80V1;
+
+typedef struct DNP3ObjectG81V1_ {
+ uint8_t fill_percentage:7;
+ uint8_t overflow_state:1;
+ uint8_t group;
+ uint8_t variation;
+} DNP3ObjectG81V1;
+
+typedef struct DNP3ObjectG83V1_ {
+ char vendor_code[5];
+ uint16_t object_id;
+ uint16_t length;
+ uint8_t *data_objects;
+} DNP3ObjectG83V1;
+
+typedef struct DNP3ObjectG86V2_ {
+ uint8_t rd:1;
+ uint8_t wr:1;
+ uint8_t st:1;
+ uint8_t ev:1;
+ uint8_t df:1;
+ uint8_t padding0:1;
+ uint8_t padding1:1;
+ uint8_t padding2:1;
+} DNP3ObjectG86V2;
+
+typedef struct DNP3ObjectG102V1_ {
+ uint8_t value;
+} DNP3ObjectG102V1;
+
+typedef struct DNP3ObjectG120V1_ {
+ uint32_t csq;
+ uint16_t usr;
+ uint8_t mal;
+ uint8_t reason;
+ uint8_t *challenge_data;
+ uint16_t challenge_data_len;
+} DNP3ObjectG120V1;
+
+typedef struct DNP3ObjectG120V2_ {
+ uint32_t csq;
+ uint16_t usr;
+ uint8_t *mac_value;
+ uint16_t mac_value_len;
+} DNP3ObjectG120V2;
+
+typedef struct DNP3ObjectG120V3_ {
+ uint32_t csq;
+ uint16_t user_number;
+} DNP3ObjectG120V3;
+
+typedef struct DNP3ObjectG120V4_ {
+ uint16_t user_number;
+} DNP3ObjectG120V4;
+
+typedef struct DNP3ObjectG120V5_ {
+ uint32_t ksq;
+ uint16_t user_number;
+ uint8_t key_wrap_alg;
+ uint8_t key_status;
+ uint8_t mal;
+ uint16_t challenge_data_len;
+ uint8_t *challenge_data;
+ uint8_t *mac_value;
+ uint16_t mac_value_len;
+} DNP3ObjectG120V5;
+
+typedef struct DNP3ObjectG120V6_ {
+ uint32_t ksq;
+ uint16_t usr;
+ uint8_t *wrapped_key_data;
+ uint16_t wrapped_key_data_len;
+} DNP3ObjectG120V6;
+
+typedef struct DNP3ObjectG120V7_ {
+ uint32_t sequence_number;
+ uint16_t usr;
+ uint16_t association_id;
+ uint8_t error_code;
+ uint64_t time_of_error;
+ char error_text[65535];
+ uint16_t error_text_len;
+} DNP3ObjectG120V7;
+
+typedef struct DNP3ObjectG120V8_ {
+ uint8_t key_change_method;
+ uint8_t certificate_type;
+ uint8_t *certificate;
+ uint16_t certificate_len;
+} DNP3ObjectG120V8;
+
+typedef struct DNP3ObjectG120V9_ {
+ uint8_t *mac_value;
+ uint16_t mac_value_len;
+} DNP3ObjectG120V9;
+
+typedef struct DNP3ObjectG120V10_ {
+ uint8_t key_change_method;
+ uint8_t operation;
+ uint32_t scs;
+ uint16_t user_role;
+ uint16_t user_role_expiry_interval;
+ uint16_t username_len;
+ uint16_t user_public_key_len;
+ uint16_t certification_data_len;
+ char username[65535];
+ uint8_t *user_public_key;
+ uint8_t *certification_data;
+} DNP3ObjectG120V10;
+
+typedef struct DNP3ObjectG120V11_ {
+ uint8_t key_change_method;
+ uint16_t username_len;
+ uint16_t master_challenge_data_len;
+ char username[65535];
+ uint8_t *master_challenge_data;
+} DNP3ObjectG120V11;
+
+typedef struct DNP3ObjectG120V12_ {
+ uint32_t ksq;
+ uint16_t user_number;
+ uint16_t challenge_data_len;
+ uint8_t *challenge_data;
+} DNP3ObjectG120V12;
+
+typedef struct DNP3ObjectG120V13_ {
+ uint32_t ksq;
+ uint16_t user_number;
+ uint16_t encrypted_update_key_len;
+ uint8_t *encrypted_update_key_data;
+} DNP3ObjectG120V13;
+
+typedef struct DNP3ObjectG120V14_ {
+ uint8_t *digital_signature;
+ uint16_t digital_signature_len;
+} DNP3ObjectG120V14;
+
+typedef struct DNP3ObjectG120V15_ {
+ uint8_t *mac;
+ uint32_t mac_len;
+} DNP3ObjectG120V15;
+
+typedef struct DNP3ObjectG121V1_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t reserved0:1;
+ uint8_t discontinuity:1;
+ uint8_t reserved1:1;
+ uint16_t association_id;
+ uint32_t count_value;
+} DNP3ObjectG121V1;
+
+typedef struct DNP3ObjectG122V1_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t reserved0:1;
+ uint8_t discontinuity:1;
+ uint8_t reserved1:1;
+ uint16_t association_id;
+ uint32_t count_value;
+} DNP3ObjectG122V1;
+
+typedef struct DNP3ObjectG122V2_ {
+ uint8_t online:1;
+ uint8_t restart:1;
+ uint8_t comm_lost:1;
+ uint8_t remote_forced:1;
+ uint8_t local_forced:1;
+ uint8_t reserved0:1;
+ uint8_t discontinuity:1;
+ uint8_t reserved1:1;
+ uint16_t association_id;
+ uint32_t count_value;
+ uint64_t timestamp;
+} DNP3ObjectG122V2;
+
+/* END GENERATED CODE */
+
+int DNP3DecodeObject(int group, int variation, const uint8_t **buf,
+ uint32_t *len, uint8_t prefix_code, uint32_t start, uint32_t count,
+ DNP3PointList *);
+DNP3PointList *DNP3PointListAlloc(void);
+void DNP3FreeObjectPointList(int group, int variation, DNP3PointList *);
+
+#endif /* __APP_LAYER_DNP3_OBJECTS_H__ */