NAME

zerodds-opcua-bridged - the OMG DDS-OPCUA Gateway 1.0 daemon

SYNOPSIS

zerodds-opcua-bridged [--config FILE] [--bind ADDR] [--domain ID] [--idl FILE]... [--gateway-config FILE] [-V | -h]

DESCRIPTION

zerodds-opcua-bridged implements the OMG DDS-OPCUA Gateway 1.0 (formal/2020-01-01) as a running process: an opc.tcp server exposing DDS topics in its AddressSpace (Gateway 1.0 §9, including Historical Access, §9.3.4), an OPC-UA client browsing/subscribing configured foreign servers into DDS (§8), and OPC Foundation Part 14 (UADP) PubSub over UDP multicast, both directions, optionally secured (Part 14 §8, build feature pubsub-security). Per-session acl.rules enforcement backs a Write against this server's own AddressSpace; OTLP lifecycle spans are exported when metrics.otlp_endpoint is set.

DDS types are resolved from an operator-supplied .idl file, never a compiled Rust type, through the reflective SerializedTypeSupport layer.

Implements docs/specs/zerodds-opcua-bridge-1.0.md.

OPTIONS

--config=FILE

Path to the config file (YAML). See zerodds-opcua-bridged.yaml(5).

--bind=ADDR

opc.tcp bind address. Default: 0.0.0.0:4840.

--domain=ID

DDS domain ID. Default: 0.

--idl=FILE

IDL file to compile (repeatable); the types opcua.gateway_config and opcua.client.servers[].nodes[] name must be declared in one of these files.

--gateway-config=FILE

Path to the Spec §10 XML gateway configuration (bridge/connection defs).

--log-level=LEVEL

One of trace, debug, info, warn, error.

--metrics=ADDR

Prometheus listener.

-V, --version

Version info.

-h, --help

Show the option synopsis.

--set PATH=VALUE

One setting above every file, repeatable; +PATH=VALUE appends to a list.

--check-config

Validate and print the effective configuration with the origin of every value, then exit: 0 valid, 1 invalid value or unknown key, 2 unreadable file, syntax error or include cycle.

SIGNALS

SIGTERM/SIGINT stop the daemon: the opc.tcp accept loop and the metrics listener both wake, every worker thread is joined, then the process exits 0.
SIGHUP re-reads acl.default_deny / acl.rules from the same sources the process started with; a file that fails to load changes nothing. Changing domain, opcua.server.bind, the IDL/gateway-config-driven topic set (including any node_id/browse_path override and opcua.server.historical.topics), acl.users, acl.allow_anonymous, opcua.pubsub.connections[].security or metrics.otlp_endpoint needs a restart — SIGHUP's scope has not widened past acl.default_deny/acl.rules.

ENVIRONMENT

NOTIFY_SOCKET

systemd Type=notify readiness/stop notification, sent automatically when set.

EXIT STATUS

0

Normal shutdown.

1

Configuration error.

2

opc.tcp bind error — address in use.

3

DDS init error.

4

SecureChannel/certificate setup error.

FILES

/etc/zerodds/opcua-bridged.yaml .

SEE ALSO

zerodds-opcua-bridged.yaml(5). OMG DDS-OPCUA Gateway 1.0 (formal/2020-01-01); OPC Foundation Part 4, Part 6, Part 14.

AUTHORS

ZeroDDS Contributors.

BEZEICHNUNG

zerodds-opcua-bridged - der Daemon für OMG DDS-OPCUA Gateway 1.0

ÜBERSICHT

zerodds-opcua-bridged [--config DATEI] [--bind ADR] [--domain ID] [--idl DATEI]... [--gateway-config DATEI] [-V | -h]

BESCHREIBUNG

zerodds-opcua-bridged implementiert OMG DDS-OPCUA Gateway 1.0 (formal/2020-01-01) als laufenden Prozess: einen opc.tcp-Server, der DDS-Topics in seinem AddressSpace bereitstellt (Gateway 1.0 §9, einschließlich Historical Access, §9.3.4), einen OPC-UA-Client, der konfigurierte fremde Server durchsucht und abonniert und nach DDS bringt (§8), und PubSub nach OPC Foundation Part 14 (UADP) über UDP-Multicast in beide Richtungen, optional gesichert (Part 14 §8, Build-Feature pubsub-security). Die Durchsetzung von acl.rules je Sitzung sichert ein Write gegen den eigenen AddressSpace dieses Servers ab; OTLP-Spans zum Lebenszyklus werden exportiert, wenn metrics.otlp_endpoint gesetzt ist.

DDS-Typen werden aus einer vom Betreiber gelieferten .idl-Datei aufgelöst, nie aus einem kompilierten Rust-Typ, über die reflektive Schicht SerializedTypeSupport.

Implementiert docs/specs/zerodds-opcua-bridge-1.0.md.

OPTIONEN

--config=DATEI

Pfad zur Konfigurationsdatei (YAML). Siehe zerodds-opcua-bridged.yaml(5).

--bind=ADR

opc.tcp-Bind-Adresse. Standard: 0.0.0.0:4840.

--domain=ID

DDS-Domain-ID. Standard: 0.

--idl=DATEI

IDL-Datei, die kompiliert wird (wiederholbar); die Typen, die opcua.gateway_config und opcua.client.servers[].nodes[] nennen, müssen in einer dieser Dateien deklariert sein.

--gateway-config=DATEI

Pfad zur XML-Gateway-Konfiguration nach Spec §10 (Bridge- und Verbindungsdefinitionen).

--log-level=STUFE

Eine von trace, debug, info, warn, error.

--metrics=ADR

Listener für Prometheus.

-V, --version

Versionsangabe.

-h, --help

Zeigt die Übersicht der Optionen.

--set PFAD=WERT

Eine Einstellung über allen Dateien, wiederholbar; +PFAD=WERT hängt an eine Liste an.

--check-config

Prüft die wirksame Konfiguration und gibt sie mit der Herkunft jedes Werts aus, dann Ende: 0 gültig, 1 ungültiger Wert oder unbekannter Schlüssel, 2 nicht lesbare Datei, Syntaxfehler oder Include-Zyklus.

SIGNALE

SIGTERM/SIGINT beenden den Daemon: Die opc.tcp-Accept-Schleife und der Metrik-Listener wachen beide auf, jeder Worker-Thread wird zusammengeführt (join), dann endet der Prozess mit 0.
SIGHUP liest acl.default_deny / acl.rules neu aus denselben Quellen, mit denen der Prozess gestartet ist; eine Datei, die nicht lädt, ändert nichts. Eine Änderung von domain, opcua.server.bind, der Topic-Menge aus IDL und Gateway-Konfiguration (einschließlich jeder Überschreibung von node_id/browse_path und opcua.server.historical.topics), acl.users, acl.allow_anonymous, opcua.pubsub.connections[].security oder metrics.otlp_endpoint braucht einen Neustart — der Wirkungsbereich von SIGHUP reicht nicht über acl.default_deny/acl.rules hinaus.

UMGEBUNGSVARIABLEN

NOTIFY_SOCKET

systemd-Benachrichtigung Type=notify über Bereitschaft und Ende, automatisch gesendet, wenn gesetzt.

EXIT-STATUS

0

Normales Beenden.

1

Konfigurationsfehler.

2

opc.tcp-Bind-Fehler — Adresse belegt.

3

Fehler bei der DDS-Initialisierung.

4

Fehler beim Einrichten von SecureChannel oder Zertifikat.

DATEIEN

/etc/zerodds/opcua-bridged.yaml .

SIEHE AUCH

zerodds-opcua-bridged.yaml(5). OMG DDS-OPCUA Gateway 1.0 (formal/2020-01-01); OPC Foundation Part 4, Part 6, Part 14.

AUTOREN

ZeroDDS Contributors.