diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 17:39:49 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 17:39:49 +0000 |
commit | a0aa2307322cd47bbf416810ac0292925e03be87 (patch) | |
tree | 37076262a026c4b48c8a0e84f44ff9187556ca35 /src/app-layer-dnp3-objects.h | |
parent | Initial commit. (diff) | |
download | suricata-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.h | 1464 |
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__ */ |