You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
suricata/scripts/dnp3-gen/dnp3-objects.yaml

2996 lines
62 KiB
YAML

objects:
- group: 1
variation: 1
packed: true
fields:
- type: uint8
name: state
width: 1
- group: 1
variation: 2
fields:
- type: bstr8
fields:
- type: uint8
name: online
width: 1
- type: uint8
name: restart
width: 1
- name: comm_lost
type: uint8
width: 1
- name: remote_forced
type: uint8
width: 1
- name: local_forced
type: uint8
width: 1
- name: chatter_filter
type: uint8
width: 1
- name: reserved
type: uint8
width: 1
- name: state
type: uint8
width: 1
- group: 2
variation: 1
fields:
- type: uint8
name: state
width: 1
- group: 2
variation: 2
fields:
- type: bstr8
fields:
- type: uint8
name: online
width: 1
- type: uint8
name: restart
width: 1
- name: comm_lost
type: uint8
width: 1
- name: remote_forced
type: uint8
width: 1
- name: local_forced
type: uint8
width: 1
- name: chatter_filter
type: uint8
width: 1
- name: reserved
type: uint8
width: 1
- name: state
type: uint8
width: 1
- type: dnp3time
name: timestamp
- group: 2
variation: 3
fields:
- type: bstr8
fields:
- type: uint8
name: online
width: 1
- type: uint8
name: restart
width: 1
- name: comm_lost
type: uint8
width: 1
- name: remote_forced
type: uint8
width: 1
- name: local_forced
type: uint8
width: 1
- name: chatter_filter
type: uint8
width: 1
- name: reserved
type: uint8
width: 1
- name: state
type: uint8
width: 1
- type: uint16
name: timestamp
- group: 3
variation: 1
packed: true
fields:
- type: uint8
name: state
width: 2
- group: 3
variation: 2
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: chatter_filter
width: 1
- name: state
width: 2
- group: 4
variation: 1
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: chatter_filter
width: 1
- name: state
width: 2
- group: 4
variation: 2
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: chatter_filter
width: 1
- name: state
width: 2
- type: dnp3time
name: timestamp
- group: 4
variation: 3
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: chatter_filter
width: 1
- name: state
width: 2
- type: uint16
name: relative_time_ms
- group: 10
variation: 1
packed: true
fields:
- type: uint8
name: state
width: 1
- group: 10
variation: 2
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: reserved0
width: 1
- name: reserved1
width: 1
- name: state
width: 1
- group: 11
variation: 1
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: reserved0
width: 1
- name: reserved1
width: 1
- name: state
width: 1
- group: 11
variation: 2
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: reserved0
width: 1
- name: reserved1
width: 1
- name: state
width: 1
- type: dnp3time
name: timestamp
- group: 12
variation: 1
fields:
- type: bstr8
fields:
- name: op_type
type: uint8
width: 4
- name: qu
type: uint8
width: 1
- name: cr
type: uint8
width: 1
- name: tcc
type: uint8
width: 2
- name: count
type: uint8
- name: ontime
type: uint32
- name: offtime
type: uint32
- type: bstr8
fields:
- name: status_code
type: uint8
width: 7
- name: reserved
type: uint32
width: 1
- group: 12
variation: 2
fields:
- type: bstr8
fields:
- name: op_type
type: uint8
width: 4
- name: qu
type: uint8
width: 1
- name: cr
type: uint8
width: 1
- name: tcc
type: uint8
width: 2
- name: count
type: uint8
- name: ontime
type: uint32
- name: offtime
type: uint32
- type: bstr8
fields:
- name: status_code
type: uint8
width: 7
- name: reserved
type: uint32
width: 1
- group: 12
variation: 3
packed: true
fields:
- type: uint8
name: point
width: 1
- group: 13
variation: 1
fields:
- type: bstr8
fields:
- type: uint8
width: 7
name: status_code
- type: uint8
width: 1
name: commanded_state
- group: 13
variation: 2
fields:
- type: bstr8
fields:
- type: uint8
width: 7
name: status_code
- type: uint8
width: 1
name: commanded_state
- type: dnp3time
name: timestamp
- group: 20
variation: 1
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: rollover
width: 1
- name: discontinuity
width: 1
- name: reserved0
width: 1
- type: uint32
name: count
- group: 20
variation: 2
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: rollover
width: 1
- name: discontinuity
width: 1
- name: reserved0
width: 1
- type: uint16
name: count
- group: 20
variation: 3
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: rollover
width: 1
- name: reserved0
width: 1
- name: reserved1
width: 1
- type: uint32
name: count
- group: 20
variation: 4
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: rollover
width: 1
- name: reserved0
width: 1
- name: reserved1
width: 1
- type: uint16
name: count
- group: 20
variation: 5
fields:
- type: uint32
name: count
- group: 20
variation: 6
fields:
- type: uint16
name: count
- group: 20
variation: 7
fields:
- type: uint32
name: count
- group: 20
variation: 8
fields:
- type: uint16
name: count
- group: 21
variation: 1
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: rollover
width: 1
- name: discontinuity
width: 1
- name: reserved0
width: 1
- type: uint32
name: count
- group: 21
variation: 2
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: rollover
width: 1
- name: discontinuity
width: 1
- name: reserved0
width: 1
- type: uint16
name: count
- group: 21
variation: 3
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: rollover
width: 1
- name: reserved0
width: 1
- name: reserved1
width: 1
- type: uint32
name: count
- group: 21
variation: 4
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: rollover
width: 1
- name: reserved0
width: 1
- name: reserved1
width: 1
- type: uint16
name: count
- group: 21
variation: 5
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: rollover
width: 1
- name: discontinuity
width: 1
- name: reserved1
width: 1
- type: uint32
name: count
- type: dnp3time
name: timestamp
- group: 21
variation: 6
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: rollover
width: 1
- name: discontinuity
width: 1
- name: reserved1
width: 1
- type: uint16
name: count
- type: dnp3time
name: timestamp
- group: 21
variation: 7
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: rollover
width: 1
- name: reserved0
width: 1
- name: reserved1
width: 1
- type: uint32
name: count
- type: dnp3time
name: timestamp
- group: 21
variation: 8
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: rollover
width: 1
- name: reserved0
width: 1
- name: reserved1
width: 1
- type: uint16
name: count
- type: dnp3time
name: timestamp
- group: 21
variation: 9
fields:
- type: uint32
name: count
- group: 21
variation: 10
fields:
- type: uint16
name: count
- group: 21
variation: 11
fields:
- type: uint32
name: count
- group: 21
variation: 12
fields:
- type: uint16
name: count
- group: 22
variation: 1
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: rollover
width: 1
- name: discontinuity
width: 1
- name: reserved0
width: 1
- type: uint32
name: count
- group: 22
variation: 2
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: rollover
width: 1
- name: discontinuity
width: 1
- name: reserved0
width: 1
- type: uint16
name: count
- group: 22
variation: 3
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: rollover
width: 1
- name: reserved0
width: 1
- name: reserved1
width: 1
- type: uint32
name: count
- group: 22
variation: 4
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: rollover
width: 1
- name: reserved0
width: 1
- name: reserved1
width: 1
- type: uint16
name: count
- group: 22
variation: 5
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: rollover
width: 1
- name: reserved0
width: 1
- name: reserved1
width: 1
- type: uint32
name: count
- type: dnp3time
name: timestamp
- group: 22
variation: 6
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: rollover
width: 1
- name: discontinuity
width: 1
- name: reserved0
width: 1
- type: uint16
name: count
- type: dnp3time
name: timestamp
- group: 22
variation: 7
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: rollover
width: 1
- name: reserved0
width: 1
- name: reserved1
width: 1
- type: uint32
name: count
- type: dnp3time
name: timestamp
- group: 22
variation: 8
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: rollover
width: 1
- name: reserved0
width: 1
- name: reserved1
width: 1
- type: uint16
name: count
- type: dnp3time
name: timestamp
- group: 23
variation: 1
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: rollover
width: 1
- name: discontinuity
width: 1
- name: reserved0
width: 1
- type: uint32
name: count
- group: 23
variation: 2
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: rollover
width: 1
- name: reserved0
width: 1
- name: reserved1
width: 1
- type: uint16
name: count
- group: 23
variation: 3
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: rollover
width: 1
- name: reserved0
width: 1
- name: reserved1
width: 1
- type: uint32
name: count
- group: 23
variation: 4
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: rollover
width: 1
- name: reserved0
width: 1
- name: reserved1
width: 1
- type: uint16
name: count
- group: 23
variation: 5
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: rollover
width: 1
- name: discontinuity
width: 1
- name: reserved0
width: 1
- type: uint32
name: count
- type: dnp3time
name: timestamp
- group: 23
variation: 6
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: rollover
width: 1
- name: discontinuity
width: 1
- name: reserved0
width: 1
- type: uint16
name: count
- type: dnp3time
name: timestamp
- group: 23
variation: 7
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: rollover
width: 1
- name: reserved0
width: 1
- name: reserved1
width: 1
- type: uint32
name: count
- type: dnp3time
name: timestamp
- group: 23
variation: 8
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: rollover
width: 1
- name: reserved0
width: 1
- name: reserved1
width: 1
- type: uint16
name: count
- type: dnp3time
name: timestamp
- group: 30
variation: 1
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: over_range
width: 1
- name: reference_err
width: 1
- name: reserved0
width: 1
- type: int32
name: value
- group: 30
variation: 2
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: over_range
width: 1
- name: reference_err
width: 1
- name: reserved0
width: 1
- type: int16
name: value
- group: 30
variation: 3
fields:
- type: int32
name: value
- group: 30
variation: 4
fields:
- type: int16
name: value
- group: 30
variation: 5
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: over_range
width: 1
- name: reference_err
width: 1
- name: reserved0
width: 1
- type: flt32
name: value
- group: 30
variation: 6
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: over_range
width: 1
- name: reference_err
width: 1
- name: reserved0
width: 1
- type: flt64
name: value
- group: 31
variation: 1
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: over_range
width: 1
- name: reference_err
width: 1
- name: reserved0
width: 1
- type: int32
name: value
- group: 31
variation: 2
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: over_range
width: 1
- name: reference_err
width: 1
- name: reserved0
width: 1
- type: int16
name: value
- group: 31
variation: 3
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: over_range
width: 1
- name: reference_err
width: 1
- name: reserved0
width: 1
- type: int32
name: value
- type: dnp3time
name: timestamp
- group: 31
variation: 4
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: over_range
width: 1
- name: reference_err
width: 1
- name: reserved0
width: 1
- type: int16
name: value
- type: dnp3time
name: timestamp
- group: 31
variation: 5
fields:
- type: int32
name: value
- group: 31
variation: 6
fields:
- type: int16
name: value
- group: 31
variation: 7
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: over_range
width: 1
- name: reference_err
width: 1
- name: reserved0
width: 1
- type: flt32
name: value
- group: 31
variation: 8
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: over_range
width: 1
- name: reference_err
width: 1
- name: reserved0
width: 1
- type: flt64
name: value
- group: 32
variation: 1
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: over_range
width: 1
- name: reference_err
width: 1
- name: reserved0
width: 1
- type: int32
name: value
- group: 32
variation: 2
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: over_range
width: 1
- name: reference_err
width: 1
- name: reserved0
width: 1
- type: int16
name: value
- group: 32
variation: 3
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: over_range
width: 1
- name: reference_err
width: 1
- name: reserved0
width: 1
- type: int32
name: value
- type: dnp3time
name: timestamp
- group: 32
variation: 4
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: over_range
width: 1
- name: reference_err
width: 1
- name: reserved0
width: 1
- type: int16
name: value
- type: dnp3time
name: timestamp
- group: 32
variation: 5
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: over_range
width: 1
- name: reference_err
width: 1
- name: reserved0
width: 1
- type: flt32
name: value
- group: 32
variation: 6
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: over_range
width: 1
- name: reference_err
width: 1
- name: reserved0
width: 1
- type: flt64
name: value
- group: 32
variation: 7
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: over_range
width: 1
- name: reference_err
width: 1
- name: reserved0
width: 1
- type: flt32
name: value
- type: dnp3time
name: timestamp
- group: 32
variation: 8
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: over_range
width: 1
- name: reference_err
width: 1
- name: reserved0
width: 1
# XXX Spec says FLT32, pretty sure its FLT64 and OpenDNP uses a 64 bit
# float as well.
- type: flt64
name: value
- type: dnp3time
name: timestamp
- group: 33
variation: 1
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: over_range
width: 1
- name: reference_err
width: 1
- name: reserved0
width: 1
- type: int32
name: value
- group: 33
variation: 2
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: over_range
width: 1
- name: reference_err
width: 1
- name: reserved0
width: 1
- type: int16
name: value
- group: 33
variation: 3
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: over_range
width: 1
- name: reference_err
width: 1
- name: reserved0
width: 1
- type: int32
name: value
- type: dnp3time
name: timestamp
- group: 33
variation: 4
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: over_range
width: 1
- name: reference_err
width: 1
- name: reserved0
width: 1
- type: int16
name: value
- type: dnp3time
name: timestamp
- group: 33
variation: 5
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: over_range
width: 1
- name: reference_err
width: 1
- name: reserved0
width: 1
- type: flt32
name: value
- group: 33
variation: 6
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: over_range
width: 1
- name: reference_err
width: 1
- name: reserved0
width: 1
- type: flt64
name: value
- group: 33
variation: 7
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: over_range
width: 1
- name: reference_err
width: 1
- name: reserved0
width: 1
- type: flt32
name: value
- type: dnp3time
name: timestamp
- group: 33
variation: 8
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: over_range
width: 1
- name: reference_err
width: 1
- name: reserved0
width: 1
# XXX Spec says FLT32, I think its FLT64.
- type: flt64
name: value
- type: dnp3time
name: timestamp
- group: 34
variation: 1
fields:
- type: uint16
name: deadband_value
- group: 34
variation: 2
fields:
- type: uint32
name: deadband_value
- group: 34
variation: 3
fields:
- type: flt32
name: deadband_value
- group: 40
variation: 1
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: over_range
width: 1
- name: reference_err
width: 1
- name: reserved0
width: 1
- type: int32
name: value
- group: 40
variation: 2
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: over_range
width: 1
- name: reference_err
width: 1
- name: reserved0
width: 1
- type: int16
name: value
- group: 40
variation: 3
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: over_range
width: 1
- name: reference_err
width: 1
- name: reserved0
width: 1
- type: flt32
name: value
- group: 40
variation: 4
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: over_range
width: 1
- name: reference_err
width: 1
- name: reserved0
width: 1
- type: flt64
name: value
- group: 41
variation: 1
fields:
- type: int32
name: value
- type: uint8
name: control_status
- group: 41
variation: 2
fields:
- type: int16
name: value
- type: uint8
name: control_status
- group: 41
variation: 3
fields:
- type: flt32
name: value
- type: uint8
name: control_status
- group: 41
variation: 4
fields:
- type: flt64
name: value
- type: uint8
name: control_status
- group: 42
variation: 1
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: over_range
width: 1
- name: reference_err
width: 1
- name: reserved0
width: 1
- type: int32
name: value
- group: 42
variation: 2
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: over_range
width: 1
- name: reference_err
width: 1
- name: reserved0
width: 1
- type: int16
name: value
- group: 42
variation: 3
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: over_range
width: 1
- name: reference_err
width: 1
- name: reserved0
width: 1
- type: int32
name: value
- type: dnp3time
name: timestamp
- group: 42
variation: 4
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: over_range
width: 1
- name: reference_err
width: 1
- name: reserved0
width: 1
- type: int16
name: value
- type: dnp3time
name: timestamp
- group: 42
variation: 5
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: over_range
width: 1
- name: reference_err
width: 1
- name: reserved0
width: 1
- type: flt32
name: value
- group: 42
variation: 6
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: over_range
width: 1
- name: reference_err
width: 1
- name: reserved0
width: 1
- type: flt64
name: value
- group: 42
variation: 7
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: over_range
width: 1
- name: reference_err
width: 1
- name: reserved0
width: 1
- type: flt32
name: value
- type: dnp3time
name: timestamp
- group: 42
variation: 8
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: over_range
width: 1
- name: reference_err
width: 1
- name: reserved0
width: 1
- type: flt64
name: value
- type: dnp3time
name: timestamp
- group: 43
variation: 1
fields:
- type: bstr8
fields:
- type: uint8
name: status_code
width: 7
- type: uint8
name: reserved0
width: 1
- type: int32
name: commanded_value
- group: 43
variation: 2
fields:
- type: bstr8
fields:
- type: uint8
name: status_code
width: 7
- type: uint8
name: reserved0
width: 1
- type: int16
name: commanded_value
- group: 43
variation: 3
fields:
- type: bstr8
fields:
- type: uint8
name: status_code
width: 7
- type: uint8
name: reserved0
width: 1
- type: int32
name: commanded_value
- type: dnp3time
name: timestamp
- group: 43
variation: 4
fields:
- type: bstr8
fields:
- type: uint8
name: status_code
width: 7
- type: uint8
name: reserved0
width: 1
- type: int16
name: commanded_value
- type: dnp3time
name: timestamp
- group: 43
variation: 5
fields:
- type: bstr8
fields:
- type: uint8
name: status_code
width: 7
- type: uint8
name: reserved0
width: 1
- type: flt32
name: commanded_value
- group: 43
variation: 6
fields:
- type: bstr8
fields:
- type: uint8
name: status_code
width: 7
- type: uint8
name: reserved0
width: 1
- type: flt64
name: commanded_value
- group: 43
variation: 7
fields:
- type: bstr8
fields:
- type: uint8
name: status_code
width: 7
- type: uint8
name: reserved0
width: 1
- type: flt32
name: commanded_value
- type: dnp3time
name: timestamp
- group: 43
variation: 8
fields:
- type: bstr8
fields:
- type: uint8
name: status_code
width: 7
- type: uint8
name: reserved0
width: 1
- type: flt64
name: commanded_value
- type: dnp3time
name: timestamp
- group: 50
variation: 1
fields:
- type: dnp3time
name: timestamp
- group: 50
variation: 2
fields:
- type: dnp3time
name: timestamp
- type: uint32
name: interval
- group: 50
variation: 3
fields:
- type: dnp3time
name: timestamp
- group: 50
variation: 4
fields:
- type: dnp3time
name: timestamp
- type: uint32
name: interval_count
- type: uint8
name: interval_units
- group: 51
variation: 1
fields:
- type: dnp3time
name: timestamp
- group: 51
variation: 2
fields:
- type: dnp3time
name: timestamp
- group: 52
variation: 1
fields:
- type: uint16
name: delay_secs
- group: 52
variation: 2
fields:
- type: uint16
name: delay_ms
# 1815-2012: New DNP3 implementation should avoid using this object.
- group: 70
variation: 1
fields:
- type: uint16
name: filename_size
- type: uint8
name: filetype_code
- type: uint8
name: attribute_code
- type: uint16
name: start_record
- type: uint16
name: end_record
- type: uint32
name: file_size
- type: dnp3time
name: created_timestamp
# XXX Actually bit flags.
- type: uint16
name: permission
- type: uint32
name: file_id
- type: uint32
name: owner_id
- type: uint32
name: group_id
- type: uint8
name: file_function_code
- type: uint8
name: status_code
- type: chararray
name: filename
size: 65535
len_field: filename_size
- type: uint16
name: data_size
- type: chararray
name: data
size: 65535
len_field: data_size
- group: 70
variation: 2
fields:
- type: uint16
name: username_offset
- type: uint16
name: username_size
- type: uint16
name: password_offset
- type: uint16
name: password_size
- type: uint32
name: authentication_key
- type: chararray
name: username
size: 65535
len_field: username_size
- type: chararray
name: password
size: 65535
len_field: password_size
- group: 70
variation: 3
fields:
- type: uint16
name: filename_offset
- type: uint16
name: filename_size
- type: dnp3time
name: created
# XXX Break out to bit flags.
- type: uint16
name: permissions
- type: uint32
name: authentication_key
- type: uint32
name: file_size
- type: uint16
name: operational_mode
- type: uint16
name: maximum_block_size
- type: uint16
name: request_id
- type: chararray
name: filename
size: 65535
len_field: filename_size
# Checked.
- group: 70
variation: 4
constraints:
require_size_prefix: true
extra_fields:
- type: uint8
name: optional_text_len
fields:
- type: uint32
name: file_handle
- type: uint32
name: file_size
- type: uint16
name: maximum_block_size
- type: uint16
name: request_id
- type: uint8
name: status_code
- type: chararray
name: optional_text
size: 0xff
len_from_prefix: true
len_field: optional_text_len
# Checked.
- group: 70
variation: 5
constraints:
require_size_prefix: true
extra_fields:
- type: uint8
name: file_data_len
fields:
- type: uint32
name: file_handle
- type: uint32
name: block_number # Includes "last" flag.
- type: chararray
name: file_data
size: 0xff
len_from_prefix: true
len_field: file_data_len
# Checked.
- group: 70
variation: 6
constraints:
require_size_prefix: true
extra_fields:
- type: uint8
name: optional_text_len
fields:
- type: uint32
name: file_handle
- type: uint32
name: block_number # Includes "last" flag.
- type: uint8
name: status_code
- type: chararray
name: optional_text
size: 0xff
len_from_prefix: true
len_field: optional_text_len
# Checked.
- group: 70
variation: 7
fields:
- type: uint16
name: filename_offset
- type: uint16
name: filename_size
- type: uint16
name: file_type
- type: uint32
name: file_size
- type: dnp3time
name: created_timestamp
- type: uint16
name: permissions
- type: uint16
name: request_id
- type: chararray
name: filename
size: 0xffff
len_field: filename_size
# Checked.
- group: 70
variation: 8
constraints:
require_prefix_code: 0x5
extra_fields:
- type: uint16
name: file_specification_len
fields:
- type: chararray
name: file_specification
size: 0xffff
len_from_prefix: true
len_field: file_specification_len
# Checked.
- group: 80
variation: 1
packed: true
fields:
- type: uint8
name: state
width: 1
# Checked.
- group: 81
variation: 1
fields:
- type: bstr8
fields:
- type: uint8
width: 7
name: fill_percentage
- type: uint8
width: 1
name: overflow_state
- type: uint8
name: group
- type: uint8
name: variation
- group: 82
variation: 1
unimplemented: object header types not yet supported
- group: 83
variation: 1
fields:
- type: vstr4
name: vendor_code
- type: uint16
name: object_id
- type: uint16
name: length
- type: bytearray
name: data_objects
len_field: length
- group: 83
variation: 2
unimplemented: set objects not yet supported
- group: 85
variation: 1
unimplemented: set objects not yet supported
- group: 86
variation: 1
unimplemented: set objects not yet supported
# Checked.
- group: 86
variation: 2
fields:
- type: bstr8
fields:
- name: rd
width: 1
- name: wr
width: 1
- name: st
width: 1
- name: ev
width: 1
- name: df
width: 1
- name: padding0
width: 1
- name: padding1
width: 1
- name: padding2
width: 1
- group: 86
variation: 3
unimplemented: set objects not yet supported
- group: 87
variation: 1
unimplemented: set objects not yet supported
- group: 88
variation: 1
unimplemented: set objects not yet supported
- group: 90
variation: 1
unimplemented: set objects not yet supported
- group: 91
variation: 1
unimplemented: set objects not yet supported
- group: 100
variation: "*"
unimplemented: obsolete object type
- group: 101
variation: 1
unimplemented: bcd types not yet supported
- group: 101
variation: 2
unimplemented: bcd types not yet supported
- group: 101
variation: 3
unimplemented: bcd types not yet supported
# Checked.
- group: 102
variation: 1
fields:
- type: uint8
name: value
- group: 110
variation: "*"
unimplemented: variation all not yet supported
- group: 111
variation: "*"
unimplemented: variation all not yet supported
- group: 112
variation: "*"
unimplemented: variation all not yet supported
- group: 113
variation: "*"
unimplemented: variation all not yet supported
# Checked.
- group: 120
variation: 1
constraints:
require_prefix_code: 0x5
extra_fields:
- type: uint16
name: challenge_data_len
fields:
- type: uint32
name: csq
- type: uint16
name: usr
- type: uint8
name: mal
- type: uint8
name: reason
- type: bytearray
name: challenge_data
len_from_prefix: true
len_field: challenge_data_len
- group: 120
variation: 2
constraints:
require_prefix_code: 0x5
extra_fields:
- type: uint16
name: mac_value_len
fields:
- type: uint32
name: csq
- type: uint16
name: usr
- type: bytearray
name: mac_value
len_from_prefix: true
len_field: mac_value_len
# Checked.
- group: 120
variation: 3
fields:
- type: uint32
name: csq
- type: uint16
name: user_number
# Checked.
- group: 120
variation: 4
fields:
- type: uint16
name: user_number
# Checked.
- group: 120
variation: 5
constraints:
require_prefix_code: 0x5
extra_fields:
- type: uint16
name: mac_value_len
fields:
- type: uint32
name: ksq
- type: uint16
name: user_number
- type: uint8
name: key_wrap_alg
- type: uint8
name: key_status
- type: uint8
name: mal
- type: uint16
name: challenge_data_len
- type: bytearray
name: challenge_data
len_field: challenge_data_len
- type: bytearray
name: mac_value
len_from_prefix: true
len_field: mac_value_len
# Checked.
- group: 120
variation: 6
constraints:
require_prefix_code: 0x5
extra_fields:
- type: uint16
name: wrapped_key_data_len
fields:
- type: uint24
name: ksq
- type: uint16
name: usr
- type: bytearray
name: wrapped_key_data
len_from_prefix: true
len_field: wrapped_key_data_len
# Checked.
- group: 120
variation: 7
constraints:
require_prefix_code: 0x5
extra_fields:
- type: uint16
name: error_text_len
fields:
- type: uint32
name: sequence_number
- type: uint16
name: usr
- type: uint16
name: association_id
- type: uint8
name: error_code
- type: dnp3time
name: time_of_error
- type: chararray
name: error_text
size: 65535
len_from_prefix: true
len_field: error_text_len
# Checked.
- group: 120
variation: 8
constraints:
require_prefix_code: 0x5
extra_fields:
- type: uint16
name: certificate_len
fields:
- type: uint8
name: key_change_method
- type: uint8
name: certificate_type
- type: bytearray
name: certificate
len_from_prefix: true
len_field: certificate_len
# Checked.
- group: 120
variation: 9
extra_fields:
- type: uint16
name: mac_value_len
fields:
- type: bytearray
name: mac_value
len_from_prefix: true
len_field: mac_value_len
# Checked.
- group: 120
variation: 10
constraints:
require_prefix_code: 0x5
fields:
- type: uint8
name: key_change_method
- type: uint8
name: operation
- type: uint32
name: scs
- type: uint16
name: user_role
- type: uint16
name: user_role_expiry_interval
- type: uint16
name: username_len
- type: uint16
name: user_public_key_len
- type: uint16
name: certification_data_len
- type: chararray
name: username
size: 65535
len_field: username_len
- type: bytearray
name: user_public_key
len_field: user_public_key_len
- type: bytearray
name: certification_data
len_field: certification_data_len
# Checked.
- group: 120
variation: 11
constraints:
require_prefix_code: 0x5
fields:
- type: uint8
name: key_change_method
- type: uint16
name: username_len
- type: uint16
name: master_challenge_data_len
- type: chararray
size: 65535
name: username
len_field: username_len
- type: bytearray
name: master_challenge_data
len_field: master_challenge_data_len
# Checked.
- group: 120
variation: 12
constraints:
require_prefix_code: 0x5
fields:
- type: uint32
name: ksq
- type: uint16
name: user_number
- type: uint16
name: challenge_data_len
- type: bytearray
name: challenge_data
len_field: challenge_data_len
# Checked.
- group: 120
variation: 13
constraints:
require_prefix_code: 0x5
fields:
- type: uint32
name: ksq
- type: uint16
name: user_number
- type: uint16
name: encrypted_update_key_len
- type: bytearray
name: encrypted_update_key_data
len_field: encrypted_update_key_len
# Checked.
- group: 120
variation: 14
constraints:
require_prefix_code: 0x5
extra_fields:
- type: uint16
name: digital_signature_len
fields:
- type: bytearray
name: digital_signature
len_from_prefix: true
len_field: digital_signature_len
# Checked.
- group: 120
variation: 15
constraints:
require_prefix_code: 0x5
extra_fields:
- type: uint32
name: mac_len
fields:
- type: bytearray
name: mac
len_field: mac_len
len_from_prefix: true
# Checked.
- group: 121
variation: 1
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: reserved0
width: 1
- name: discontinuity
width: 1
- name: reserved1
width: 1
- type: uint16
name: association_id
- type: uint32
name: count_value
# Checked.
- group: 122
variation: 1
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: reserved0
width: 1
- name: discontinuity
width: 1
- name: reserved1
width: 1
- type: uint16
name: association_id
- type: uint32
name: count_value
# Checked.
- group: 122
variation: 2
fields:
- type: bstr8
fields:
- name: online
width: 1
- name: restart
width: 1
- name: comm_lost
width: 1
- name: remote_forced
width: 1
- name: local_forced
width: 1
- name: reserved0
width: 1
- name: discontinuity
width: 1
- name: reserved1
width: 1
- type: uint16
name: association_id
- type: uint32
name: count_value
- type: dnp3time
name: timestamp