NAME

zerodds-zenoh-bridged - DDS to Eclipse Zenoh bridge daemon

SYNOPSIS

zerodds-zenoh-bridged [--config FILE] [--domain ID] [--mode peer|client|router] [--connect ENDPOINT]... [--listen ENDPOINT]... [--no-multicast-scouting] [--scope SCOPE] [--topic DDS[:DIR]]... [--log-level LEVEL] [--metrics ADDR] [-V | -h]

DESCRIPTION

zerodds-zenoh-bridged bridges DDS topics and Eclipse Zenoh key expressions in both directions. It is wire-compatible with Zenoh's own DDS bridge, (zenoh-plugin-dds / zenoh-bridge-dds, github.com/eclipse-zenoh/zenoh-plugin-dds): the default key-expression layout (<scope>/<partition>/<topic>, scope empty by default), the Zenoh payload (the full RTPS-encapsulated CDR blob, not the header-stripped body), the reliable_routes_blocking-driven CongestionControl choice and the TRANSIENT_LOCAL late-joiner mechanism (PublicationCache/FetchingSubscriber) all match the plugin's, so a zerodds-zenoh-bridged on one site and a zenoh-bridge-dds on another interoperate on the same Zenoh network. See crates/zenoh-bridge/src/mapping.rs for the exact source citations this crate was read against.

Every DDS topic the daemon discovers (via the DCPS built-in topics) is bridged automatically, filtered by discovery.allow/deny, the way zenoh-plugin-dds bridges every topic it sees; topics can also be listed explicitly under topics: for QoS overrides, an explicit key-expression, or a type_file (needed for a keyed topic bridged Zenoh→DDS, to derive the real per-instance key hash instead of collapsing every instance onto one).

zenoh-plugin-dds does not forward DDS dispose/unregister in either direction (it silently skips them). This project's rule against dropping a sample without a trace means zerodds-zenoh-bridged does forward dispose/unregister, as a Zenoh delete on <key-expr>/<key-hash-hex>, an extension of the plugin's key layout, not a replacement for it.

OPTIONS

--config=FILE

YAML config. See zerodds-zenoh-bridged.yaml(5).

--domain=ID

DDS domain ID. Default: 0.

--mode=peer|client|router

Zenoh session mode. Default: peer.

--connect=ENDPOINT

Zenoh endpoint to connect to, e.g. tcp/192.0.2.10:7447 (repeatable).

--listen=ENDPOINT

Zenoh endpoint to listen on (repeatable).

--no-multicast-scouting

Disable Zenoh's UDP multicast scouting (matches zenoh-bridge-dds 's own flag of the same name).

--scope=SCOPE

Zenoh key-expression scope. Default: none (matching zenoh-plugin-dds).

--topic=DDS[:DIR]

Topic override, DIR one of in, out, bidir (repeatable).

--log-level=LEVEL

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

--metrics=ADDR

Prometheus listen addr.

-V, --version

Print version.

-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 and SIGINT stop the daemon: every forward pump joins and every Zenoh subscriber/publication cache is undeclared before exit. SIGHUP reads the configuration again: discovery.allow/deny/auto_bridge apply to the poll iterations that follow. A changed domain, zenoh.*, or topics: needs a restart (the Zenoh session and the registered DDS readers/writers are not torn down and rebuilt on reload) and is logged, not applied. A configuration that does not load changes nothing.

ENVIRONMENT

OTEL_EXPORTER_OTLP_ENDPOINT

Optional OTLP endpoint, such as http://localhost:4318.

EXIT STATUS

0

Normal shutdown.

1

Configuration error.

2

Bind error: a metrics or admin listen address is already in use.

3

DDS discovery error.

4

Zenoh session error.

FILES

/etc/zerodds/zenoh-bridged.yaml .

SEE ALSO

zerodds-zenoh-bridged.yaml(5).

AUTHORS

ZeroDDS Contributors.

BEZEICHNUNG

zerodds-zenoh-bridged - Bridge-Daemon von DDS nach Eclipse Zenoh

ÜBERSICHT

zerodds-zenoh-bridged [--config DATEI] [--domain ID] [--mode peer|client|router] [--connect ENDPUNKT]... [--listen ENDPUNKT]... [--no-multicast-scouting] [--scope SCOPE] [--topic DDS[:RICHTUNG]]... [--log-level STUFE] [--metrics ADR] [-V | -h]

BESCHREIBUNG

zerodds-zenoh-bridged verbindet DDS-Topics und Key Expressions von Eclipse Zenoh in beide Richtungen. Er ist auf der Leitung kompatibel mit der eigenen DDS-Bridge von Zenoh (zenoh-plugin-dds / zenoh-bridge-dds, github.com/eclipse-zenoh/zenoh-plugin-dds): Das Standard-Schema der Key Expressions (<scope>/<partition>/<topic>, Scope standardmäßig leer), die Zenoh-Nutzlast (der vollständige, in RTPS gekapselte CDR-Block, nicht der Inhalt ohne Kopf), die Wahl von CongestionControl, gesteuert über reliable_routes_blocking, und der Mechanismus für spät hinzukommende Teilnehmer bei TRANSIENT_LOCAL (PublicationCache/FetchingSubscriber) entsprechen alle denen des Plugins, sodass ein zerodds-zenoh-bridged an einem Standort und eine zenoh-bridge-dds an einem anderen im selben Zenoh-Netz zusammenarbeiten. Siehe crates/zenoh-bridge/src/mapping.rs für die genauen Quellenangaben, gegen die dieses Crate gelesen wurde.

Jedes DDS-Topic, das der Daemon findet (über die eingebauten DCPS-Topics), wird automatisch verbunden, gefiltert durch discovery.allow/deny, so wie zenoh-plugin-dds jedes Topic verbindet, das es sieht; Topics können auch ausdrücklich unter topics: aufgeführt werden, für QoS-Überschreibungen, eine ausdrückliche Key Expression oder eine type_file (nötig für ein Topic mit Schlüssel, das von Zenoh nach DDS verbunden wird, um den echten Key Hash je Instanz abzuleiten, statt jede Instanz auf eine zusammenfallen zu lassen).

zenoh-plugin-dds leitet DDS-dispose/unregister in keine Richtung weiter (es überspringt sie still). Die Regel dieses Projekts, kein Sample ohne Spur zu verwerfen, bedeutet, dass zerodds-zenoh-bridged dispose/unregister weiterleitet, als Zenoh- delete auf <key-expr>/<key-hash-hex>, eine Erweiterung des Key-Schemas des Plugins, kein Ersatz dafür.

OPTIONEN

--config=DATEI

YAML-Konfiguration. Siehe zerodds-zenoh-bridged.yaml(5).

--domain=ID

DDS-Domain-ID. Standard: 0.

--mode=peer|client|router

Modus der Zenoh-Sitzung. Standard: peer.

--connect=ENDPUNKT

Zenoh-Endpunkt, mit dem verbunden wird, z. B. tcp/192.0.2.10:7447 (wiederholbar).

--listen=ENDPUNKT

Zenoh-Endpunkt, auf dem gelauscht wird (wiederholbar).

--no-multicast-scouting

Schaltet das UDP-Multicast-Scouting von Zenoh ab (entspricht der gleichnamigen Option von zenoh-bridge-dds selbst).

--scope=SCOPE

Scope der Zenoh-Key-Expressions. Standard: keiner (wie bei zenoh-plugin-dds).

--topic=DDS[:RICHTUNG]

Topic-Überschreibung, RICHTUNG eine von in, out, bidir (wiederholbar).

--log-level=STUFE

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

--metrics=ADR

Listen-Adresse für Prometheus.

-V, --version

Gibt die Version aus.

-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 und SIGINT beenden den Daemon: Jede Weiterleitungs-Pumpe wird zusammengeführt (join), und jeder Zenoh-Subscriber und jeder Publication-Cache wird vor dem Ende abgemeldet. SIGHUP liest die Konfiguration neu: discovery.allow/deny/auto_bridge gelten für die folgenden Abfragedurchläufe. Ein geändertes domain, zenoh.* oder topics: braucht einen Neustart (die Zenoh-Sitzung und die registrierten DDS-Reader und -Writer werden beim Neuladen nicht abgebaut und neu aufgebaut) und wird protokolliert, nicht angewendet. Eine Konfiguration, die nicht lädt, ändert nichts.

UMGEBUNGSVARIABLEN

OTEL_EXPORTER_OTLP_ENDPOINT

Optionaler OTLP-Endpunkt, etwa http://localhost:4318.

EXIT-STATUS

0

Normales Beenden.

1

Konfigurationsfehler.

2

Bind-Fehler: Eine Listen-Adresse für Metriken oder Administration ist schon belegt.

3

Fehler bei der DDS-Discovery.

4

Fehler der Zenoh-Sitzung.

DATEIEN

/etc/zerodds/zenoh-bridged.yaml .

SIEHE AUCH

zerodds-zenoh-bridged.yaml(5).

AUTOREN

ZeroDDS Contributors.