Skip to content

Protocol Support en

EnerOS Bot edited this page Jul 5, 2026 · 1 revision

中文 | English

Protocol Support Matrix

Maintained version: v0.51.2 | Last updated: 2026-07-06

EnerOS natively supports 11 power / IoT / industrial protocols, covering transmission / distribution / consumption / edge IoT scenarios. This page is a protocol matrix quick reference; for adapter development see Development Workflow and the main repo docs/developer-guide.md §5.

11-Protocol Matrix

Protocol crate Introduced Purpose Link layer Typical scenario
IEC 61850 eneros-device v0.25.0 Substation automation / IED TCP/IP Within substation / bay level
IEC 60870-5-104 eneros-device / eneros-scada v0.26.0 Telecontrol telemetry / signaling / control TCP/IP Master-slave station
IEC 60870-5-103 eneros-protocol-iec103 v0.35.0 Protection equipment communication Serial / TCP Protection device - recorder
CDT cyclic telecontrol eneros-protocol-cdt v0.35.0 Legacy telecontrol equipment Serial Legacy substations
Modbus eneros-device v0.25.0 Industrial general protocol Serial / TCP Inverters / storage / peripherals
PMU C37.118 eneros-protocol-pmu v0.35.0 Synchrophasor measurement UDP / TCP Wide-area monitoring WAMS
ICCP / TASE.2 eneros-protocol-iccp v0.35.0 Inter-control-center data exchange TCP/IP Dispatch center interconnection
MQTT eneros-protocol-mqtt v0.45.0 IoT message bus TCP Distributed energy / storage
CoAP eneros-protocol-coap v0.45.0 Constrained device RESTful UDP Sensors / edge nodes
LwM2M eneros-protocol-lwm2m v0.45.0 IoT device management UDP Smart meters / terminal management
DL/T 698.45 eneros-protocol-dlt698 v0.47.0 Chinese power energy data acquisition TCP Smart meters / energy acquisition

Link Layer Features

Feature Description
AF_PACKET Linux raw socket, used for SV / GOOSE L2 direct transmission, bypassing IP stack to reduce latency
FT 1.2 Serial frame format, used for IEC 103 / CDT
R-GOOSE GOOSE via Routed VLAN across subnets, used between substations
mTLS v0.39.0+ all protocol clients support mTLS mutual certificate authentication

Protocol Gateway

eneros-device provides protocol gateway capability, converting between different protocols:

[IEC 104 slave station] ─┐
[Modbus inverter]         ─┼→ ProtocolGateway → [ICCP upstream to dispatch]
[DL/T 698 meter]          ─┘                    → [MQTT upstream to cloud platform]

Protocol Conformance Testing (v0.51.0+)

tests/protocol_conformance/ provides 275 conformance test cases across 7 protocols:

Protocol Tests Coverage
IEC 104 60 Frame codec / sequence numbers / timestamps / general interrogation / commands / short floats
IEC 103 35 Frame format / ASDU / fault records / disturbance data
Modbus 40 Function codes / exception codes / register mapping
PMU C37.118 30 Config frames / data frames / command frames / phasor accuracy
DL/T 698 50 Link layer / application layer / data identifiers / security authentication
MQTT 30 Connect / subscribe / publish / QoS / will
CoAP 30 Methods / options / blockwise / resource discovery

Protocol Fuzz (v0.51.0+)

fuzz/ directory provides 4 fuzz targets:

Target Protocol Engine
fuzz_iec104 IEC 104 libFuzzer
fuzz_iec103 IEC 103 libFuzzer
fuzz_dlt698 DL/T 698 libFuzzer
fuzz_pmu_c37118 PMU C37.118 libFuzzer

eneros.toml [quality].fuzz_targets configures enabled targets. Windows platform libFuzzer linking issues require Linux / WSL2 environment (see Testing Strategy).

Known Limitations (v0.51.2)

  • IEC 104 mock implementation is not production-grade, for demo only
  • Fuzz 60s smoke and 24h long runs pending Linux/WSL2 environment validation
  • IEC 61850 MMS service set only implements core subset
  • DNP3 only supports serial variant; TCP variant pending v0.52.0

Related Documentation

Clone this wiki locally