This is the shipped English man-page reference for zerodds-router — the same text as man zerodds-router. The surrounding navigation follows the language switch; the reference body stays English, as man-pages conventionally do.

Dies ist die ausgelieferte englische man-page-Referenz für zerodds-router — derselbe Text wie man zerodds-router. Navigation und Seitenrahmen folgen dem Sprach-Umschalter; der Referenz-Body bleibt englisch, wie man-pages es konventionell tun.

NAME

zerodds-router - DDS routing-service daemon

SYNOPSIS

zerodds-router run --config FILE [--types SHAPES.json]
zerodds-router validate --config FILE

DESCRIPTION

zerodds-router is a DDS-to-DDS forwarding daemon: it copies samples between DDS endpoints that differ in domain, topic, or partition, optionally filtering and transforming each sample on the way. It is a native in-DDS routing service, not a protocol bridge — both ends speak RTPS.

Each route declares an input and an output endpoint (domain, topic, type name, partitions, QoS). A route may carry a content filter (an SQL-like expression that drops non-matching samples) and a field transform (rename / set-const). A built-in loop guard prevents a sample from being re-forwarded on a domain that is both an input and an output.

COMMANDS

run

Start the router and forward until SIGINT/SIGTERM.

validate

Parse and validate the config, print the resolved routes, and exit without joining any domain.

OPTIONS

--config FILE

Route configuration. The format is chosen by extension: a .xml path is parsed as XML, anything else as JSON. Required.

--types SHAPES.json

A JSON array of type shapes describing each route's type_name, e.g. [{ "name": "ns::T", "members": [{ "name": "v", "kind": "u32" }] }]. Required only for routes that use a filter or transform, which must understand the sample's fields. Plain raw-byte forwards (type_name zerodds::RawBytes) need no shapes.

CONFIGURATION

The config has a top-level name and a list of routes. Each route has input and output endpoints; optional filter, transform, loop_guard (default true) and preserve_source_timestamp (default false). An endpoint has domain, topic, type_name, optional partition and qos (reliability, durability, ownership, ...). See /usr/share/zerodds/configs/router.json.example for a working two-route configuration.

SIGNALS

SIGINT and SIGTERM trigger a graceful shutdown; the per-route metrics (forwarded, dropped by loop guard, dropped by filter, lifecycle, errors) are printed before exit. There is no SIGHUP reload — edit the config and restart the service.

FILES

/etc/zerodds/router.json

Default configuration read by the zerodds-router.service(8) systemd unit.

/usr/share/zerodds/configs/router.json.example

Shipped example configuration.

EXIT STATUS

0 on a clean validate or a clean shutdown, 1 on a usage error or a config / startup failure.

SEE ALSO

zerodds-admin(1), zerodds-spy(1)

AUTHOR

ZeroDDS Contributors.