rvrd

Command

Syntax

rvrd   -store filename
      [-http [ip_address:]http_port]
      [-https [ip_address:]https_port]
      [-http-only]
      [-https-only]
      [-no-http]
      [-idle]
      [-listen [socket_protocol:|ip_address:]tcp_port]
      [-no-permanent]
      [-no-lead-wc | -lead-wc]
      [-no-multicast]
      [-reliability time]
      [-max-consumer-buffer size]
      [-rxc-max-loss loss]
      [-rxc-recv-threshold bps]
      [-rxc-send-threshold bps]
      [-compress-level level]
      [-reuse-port inbox_port]
      [-logfile log_filename]
      [-log-max-size size]
      [-log-max-rotations n]
      [-log-config config_log_filename]
      [-foreground]
      [-udp-ttl hops]
      [-tls-min-proto-version version]
      [-tls-max-proto-version version]
      [-tls-ciphers string1:string2:stringN]
      [-tls-ciphersuites name1:name2:nameN]
      [-no-wc]

Purpose

The routing daemon efficiently connects Rendezvous programs on distant IP networks, so that messages flow between them as if within a single network. Nonetheless, communicating programs remain decoupled from internetwork addresses and other details.

Remarks

The rvrd process subsumes the behavior of rvd, so it is not necessary to run a separate rvd process on computers that run rvrd. We recommend against running both components on the same computer.

rvrd must run on a host computer with a permanent IP address. For example, a temporary address assigned by DHCP is invalid.

Command Line Parameters

Parameter

Description

-store filename

This file contains the routing table entry and parameters that configure rvrd.

rvrd reads this file when the process starts, and writes this file each time you change the configuration using the browser administration interface.

Important 

The store file requires physical security safeguards and operating system protection. Keep it in a location that is accessible only to the system administrators who maintain it.

See also Store Files.

-http ip_address:http_port

-http http_port

-https ip_address:https_port

-https https_port

The browser administration interface accepts connections on this HTTP or HTTPS port. Permit administration access only through the network interface specified by this IP address.

To limit access to a browser on the rvrd host computer, specify 127.0.0.1 (the local host address).

When the IP address is absent, the daemon accepts connections through any network interface on the specified HTTP or HTTPS port.

If the explicitly specified HTTP port is already occupied, the program exits.

If the explicitly specified HTTPS port is already occupied, the program selects an ephemeral port.

When the -http parameter is entirely absent, the default behavior is to accept connections from any computer on HTTP port 7580; If this default port is unavailable, the operating system assigns an ephemeral port number.

When the -https parameter is entirely absent, the default behavior is to accept secure connections from any computer on an ephemeral HTTPS port.

In all cases, the program prints (in its start banner and log file) the actual HTTP and HTTPS ports where it accepts browser administration interface connections.

-http-only

Disable HTTPS (secure) connections, leaving only an HTTP (non-secure) connection.

-https-only

Disable HTTP (non-secure) connections, leaving only an HTTPS (secure) connection.

-no-http

Disable all HTTP and HTTPS connections, overriding -http and -https.

-idle

When present, start rvrd in its idle state.

When absent, start rvrd in its running state—routing messages.

-listen tcp_port

-listen ip_address:tcp_port

-listen socket_protocol:tcp_port

rvd (and by extension, rvrd operating within the local network) opens a TCP client socket to establish communication between itself and its client programs. The -listen parameter specifies the TCP port where the Rendezvous daemon listens for connection requests from client programs. This -listen parameter of rvd corresponds to the daemon parameter of the transport creation call (they must specify the same TCP port number).

The IP address specifies the network interface through which this daemon accepts TCP connections.

To bar connections from remote programs, specify IP address 127.0.0.1 (the loopback interface).

When the IP address is absent, the daemon accepts connections from any computer on the specified TCP port.

When this parameter is entirely absent, the default behavior is to accept connections from any computer on TCP port 7500.

For more detail about the choreography that establishes conduits, see Daemon Client Socket—Establishing Connections.

Warning 

This parameter does not correspond to the service parameter of the transport creation call—but rather to the daemon parameter.

-no-permanent

If present (or when rvd starts automatically), rvd exits after 1 minute during which no transports are connected to it.

If not present, rvd runs indefinitely until terminated.

This parameter is not available with IPM.

-no-lead-wc |

-lead-wc

Sending to subjects with lead wildcards (for example, > or *.foo) can cause unexpected behavior in some applications, and cause network instability in some configurations. This option lets you selectively screen wildcard sending.

When -no-lead-wc is present, the daemon quietly rejects client requests to send outbound messages to subjects that contain wildcards in the lead element. The daemon does not report excluded messages as errors.

When -lead-wc is present (or when neither flag is present), the daemon allows sending messages to subjects with lead wildcards.

-no-multicast

When present, the daemon disables multicast (and broadcast) communication. For details, see Disabling Multicast.

-reliability time

Rendezvous daemons compensate for brief network failures by retaining outbound messages, and retransmitting them upon request.

This parameter is one of several ways to control the message reliability interval. For a complete discussion the concept of reliability, the various ways to control it, the interaction among those ways, and reasonable values, see Reliability and Message Retention Time.

If this parameter is absent, rvd uses the factory default (60 seconds).

If this parameter is present, rvd (and by extension, rvrd operating within the local network) retains messages for time (in seconds). The value must be a non-negative integer.

-max-consumer-buffer size

When present, the daemon enforces this upper bound (in bytes) on each consumer buffer (the queue of messages for a client transport). When data arrives faster than the client consumes it, the buffer overflows this size limit, and the daemon discards the oldest messages to make space for new messages. The client transport receives a CLIENT.SLOWCONSUMER advisory.

When absent or zero, the daemon does not enforce a size limit on the consumer buffer. (However, a 60-second time limit on messages still limits buffer growth, independently of this parameter.)

-rxc-max-loss loss

-rxc-recv-threshold bps

-rxc-send-threshold bps

These three parameters configure the retransmission control (RXC) feature, which suppresses retransmission requests from chronically-lossy receivers. (This feature applies to the rvd behavior within rvrd, but not to routing behavior.)

If -rxc-max-loss is absent or zero, then RXC is disabled. If it is an integer in the range [1,100], it determines the maximum percentage acceptable loss rates above which a receiver is considered chronically-lossy.

-rxc-recv-threshold configures the threshold receive rate (in bits per second) above which a chronically-lossy receiver censors its own retransmission requests. When absent, the default value is zero (always censor a chronically-lossy receiver).

-rxc-send-threshold configures the threshold send rate (in bits per second) above which the daemon suppresses (that is, ignores requests from) chronically-lossy receivers. When absent, the default value is zero (always suppress retransmissions to chronically-lossy receivers).

For a complete explanation, see Retransmission Control .

-compress-level level

When present, this option guides the trade-off between data compression and data latency. Acceptable values are integers in the range [1, 10].

1 favors minimum latency, sacrificing compression efficiency.
10 favors maximal compression, accepting the concomitant cost of latency.

This option applies across all neighbor interfaces (it is not possible to specify different values for each neighbor). Furthermore, it applies only to neighbor interfaces that are configured for data compression without TLS.

When absent, the default behavior is equivalent to 10—favoring compression over latency.

-reuse-port inbox_port

When present, other daemons on the same host computer can reuse service ports.

When absent, other daemons cannot reuse a service port that is in use by this daemon.

For correct operation, all the daemons that use a common service port on a host computer must specify this option. For background and details, see Reusing Service Ports.

The inbox_port argument (required) specifies the UDP port that this daemon uses for point-to-point communications. This value must be unique for each daemon (that reuses service ports) on a common host computer.

Furthermore, you must not use the inbox_port in any transport specification on the same host computer.

-logfile log_filename

Send log output to this file.

When absent, the default is stderr.

-log-max-size size

-log-max-rotations n

When present, activate the log rotation regimen (see Log Rotation).

When you specify these options, you must also specify -logfile.

size is in kilobytes. If size is non-zero, it must be in the range [100, 2097152]. Values outside this range are automatically adjusted to the nearest acceptable value. Zero is a special value, which disables log rotation. When -log-max-size is zero or absent, a single log file may grow without limit (other than the limit of available storage).

n indicates the maximum number of files in the rotation. When -log-max-rotations is absent, the default value is 10.

-log-config config_log_filename

Send duplicate log output to this file for log items that record configuration changes. The daemon never rotates nor removes this special log file. Instead, this file remains as a record of all configuration changes.

When absent, the default is stderr.

-foreground

Available only on UNIX platforms.

When present, rvrd runs as a foreground process.

When absent, rvrd runs as a background process.

-udp-ttl hops

UDP TTL

(Available only with TRDP daemons.)

When present, the daemon sends UDP packets with a TTL value of hops (a positive integer, less than or equal to 256).

When absent, the default TTL is 16 hops.

-tls-min-proto-version version

-tls-max-proto-version version

Set the minimum or maximum supported protocol versions for the ctx using OpenSSL calls SSL_CTX_set_min_proto_version and SSL_CTX_set_max_proto_version.

-tls-ciphers string1:string2:stringN

Set the list of available ciphers (TLSv1.2 and earlier) using OpenSSL call SSL_CTX_set_cipher_list.

-tls-ciphersuites name1:name2:nameN

Configure the available TLSv1.3 ciphersuites using OpenSSL call SSL_CTX_set_ciphersuites.

-no-wc

Silently drop any messages published by clients that contain any wild card tokens.