blob: 1b56489dfb68a6fac2105ec88c7bb62c8e7312d4 [file] [log] [blame]
E. Scott Daniels392168d2019-11-06 15:12:38 -05001
2.. This work is licensed under a Creative Commons Attribution 4.0 International License.
3.. SPDX-License-Identifier: CC-BY-4.0
4.. CAUTION: this document is generated from source in doc/src/rtd.
5.. To make changes edit the source and recompile the document.
6.. Do NOT make changes directly to .rst or .md files.
7
8
9RMR Configuration and Delpoyment
10============================================================================================
11
12The RIC Message Router (RMR) is a library which applications
13use to send and receive messages where the message routing,
14endpoint selection, is based on the message type rather than
15on traditional DNS names or IP addresses. This document
16contains information regarding the configuration of RMR when
17it is embedded by a *user application* . RMR itself is not a
18deployable entity.
19
20Configuration
21--------------------------------------------------------------------------------------------
22
23Several aspects of RMR behaviour is controlled via
24environment variables which are set at the time that a user
25application invokes the RMR initialisation function. This
26allows these variables to be set before the application is
27started as a function of the true environment, or set by the
28application as a means for the application to influence RMR's
29behaviour. The following is a list of RMR variables which RMR
30recognises (see the main RMR manual page in the development
31package for more details).
32
33
34RMR_ASYNC_CONN
35
36 Allows the asynch connection mode to be turned off (by
37 setting the value to 0. When set to 1, or missing from the
38 environment, RMR will invoke the connection interface in
39 the transport mechanism using the non-blocking (asynch)
40 mode. This will likely result in many "soft failures"
41 (retry) until the connection is established, but allows
42 the application to continue unimpeeded should the
43 connection be slow to set up.
44
45RMR_BIND_IF
46
47 This provides the interface that RMr will bind listen
48 ports to allowing for a single interface to be used rather
49 than listening across all interfaces. This should be the
50 IP address assigned to the interface that RMr should
51 listen on, and if not defined RMr will listen on all
52 interfaces.
53
54RMR_RTG_SVC
55
56 RMr opens a TCP listen socket using the port defined by
57 this environment variable and expects that the route table
58 generator process will connect to this port. If not
59 supplied the port 4561 is used.
60
61RMR_RTG_ISRAW
62
63 Is set to 1 if the route table generator is sending
64 "plain" messages (not using RMr to send messages, 0 if the
65 rtg is using RMr to send. The default is 1 as we don't
66 expect the rtg to use RMr.
67
68RMR_SEED_RT
69
70 This is used to supply a static route table which can be
71 used for debugging, testing, or if no route table
72 generator process is being used to supply the route table.
73 If not defined, no static table is used and RMr will not
74 report *ready* until a table is received.
75
76RMR_SRC_ID
77
78 This is either the name or IP address which is placed into
79 outbound messages as the message source. This will used
80 when an RMR based application uses the rmr_rts_msg()
81 function to return a response to the sender. If not
82 supplied RMR will use the hostname which in some container
83 environments might not be routable.
84
85RMR_VCTL_FILE
86
87 This supplies the name of a verbosity control file. The
88 core RMR functions do not produce messages unless there is
89 a critical failure. However, the route table collection
90 thread, not a part of the main message processing
91 component, can write additional messages to standard
92 error. If this variable is set, RMR will extract the
93 verbosity level for these messages (0 is silent) from the
94 first line of the file. Changes to the file are detected
95 and thus the level can be changed dynamically, however RMR
96 will only suss out this variable during initialisation, so
97 it is impossible to enable verbosity after startup.
98
99RMR_WARNINGS
100
101 If set to 1, RMR will write some warnings which are
102 non-performance impacting. If the variable is not defined,
103 or set to 0, RMR will not write these additional warnings.
104