X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=docs%2Fconfig-deploy.rst;h=ac160c782d4eeb6a576131aa30a41b94d9a213af;hb=refs%2Fchanges%2F13%2F3313%2F2;hp=d6ae08276b52dacb2e2efcc468740802e828118e;hpb=0b79fc264eea2591ad6f645d0c90cc378ea5603b;p=ric-plt%2Flib%2Frmr.git diff --git a/docs/config-deploy.rst b/docs/config-deploy.rst index d6ae082..ac160c7 100644 --- a/docs/config-deploy.rst +++ b/docs/config-deploy.rst @@ -1,4 +1,5 @@ + .. This work is licensed under a Creative Commons Attribution 4.0 International License. .. SPDX-License-Identifier: CC-BY-4.0 .. CAUTION: this document is generated from source in doc/src/rtd. @@ -6,75 +7,190 @@ .. Do NOT make changes directly to .rst or .md files. -RMR Configuration and Delpoyment + +RMR Configuration and Deployment ============================================================================================ -The RIC Message Router (RMR) is a library which applications -use to send and receive messages where the message routing, -endpoint selection, is based on the message type rather than -on traditional DNS names or IP addresses. This document -contains information regarding the configuration of RMR when -it is embedded by a *user application* . RMR itself is not a -deployable entity. +The RIC Message Router (RMR) is a library for peer-to-peer +communication. Applications use the library to send and +receive messages where the message routing and endpoint +selection is based on the message type rather than DNS host +name-IP port combinations. + +This document contains information regarding the +configuration of RMR when it is embedded by a *user +application* . RMR itself is a library, not a deployable +entity. Configuration -------------------------------------------------------------------------------------------- -Several aspects of RMR behaviour is controlled via -environment variables which are set at the time that a user -application invokes the RMR initialisation function. This -allows these variables to be set before the application is -started as a function of the true environment, or set by the -application as a means for the application to influence RMR's -behaviour. The following is a list of RMR variables which RMR -recognises (see the main RMR manual page in the development -package for more details). +Many aspects of RMR behavior are controlled via environment +variables. These values are read when a user application +invokes the RMR initialization function. This allows these +variables to be set before the application is started as a +function of the true environment, or set by the application +as a means for the application to influence RMR's behaviour. +The following is a list of environment variables which RMR +recognizes. Also see the main RMR manual page in the +development package for more details. RMR_ASYNC_CONN - Allows the asynch connection mode to be turned off (by - setting the value to 0. When set to 1, or missing from the - environment, RMR will invoke the connection interface in - the transport mechanism using the non-blocking (asynch) + Allows the async connection mode to be turned off (by + setting the value to 0). When set to 1, or missing from + the environment, RMR will invoke the connection interface + in the transport mechanism using the non-blocking (async) mode. This will likely result in many "soft failures" (retry) until the connection is established, but allows - the application to continue unimpeeded should the + the application to continue unimpeded should the connection be slow to set up. + RMR_BIND_IF - This provides the interface that RMr will bind listen - ports to allowing for a single interface to be used rather - than listening across all interfaces. This should be the - IP address assigned to the interface that RMr should - listen on, and if not defined RMr will listen on all - interfaces. + This provides the interface that RMR will bind listen + ports to, allowing for a single interface to be used + rather than listening across all interfaces. This should + be the IP address assigned to the interface that RMR + should listen on, and if not defined RMR will listen on + all interfaces. + + +RMR_CTL_PORT + + This variable defines the port that RMR should open for + communications with Route Manager, and other RMR control + applications. If not defined, the port 4561 is assumed. + + Previously, the RMR_RTG_SVC (route table generator service + port) was used to define this port. However, a future + version of Route Manager will require RMR to connect and + request tables, thus that variable is now used to supply + the Route Manager's well-known address and port. + + To maintain backwards compatibility with the older Route + Manager versions, the presence of this variable in the + environment will shift RMR's behaviour with respect to the + default value used when RMR_RTG_SVC is **not** defined. + + When RMR_CTL_PORT is **defined:** RMR assumes that Route + Manager requires RMR to connect and request table updates + is made, and the default well-known address for Route + manager is used (routemgr:4561). + + When RMR_CTL_PORT is **undefined:** RMR assumes that Route + Manager will connect and push table updates, thus the + default listen port (4561) is used. + + To avoid any possible misinterpretation and/or incorrect + assumptions on the part of RMR, it is recommended that + both the RMR_CTL_PORT and RMR_RTG_SVC be defined. In the + case where both variables are defined, RMR will behave + exactly as is communicated with the variable's values. + RMR_RTG_SVC - RMr opens a TCP listen socket using the port defined by - this environment variable and expects that the route table - generator process will connect to this port. If not - supplied the port 4561 is used. + The value of this variable depends on the Route Manager in + use. + + When the Route Manager is expecting to connect to an xAPP + and push route tables, this variable must indicate the + port which RMR should use to listen for these connections. + + When the Route Manager is expecting RMR to connect and + request a table update during initialisation, the variable + should be the host of the Route Manager process. + + The RMR_CTL_PORT variable (added with the support of + sending table update requests to Route manager), controls + the behaviour if this variable is not set. See the + description of that variable for details. + + +RMR_HR_LOG + + By default RMR writes messages to standard error + (incorrectly referred to as log messages) in human + readable format. If this environment variable is set to 0, + the format of standard error messages might be written in + some format not easily read by humans. If missing, a value + of 1 is assumed. + + +RMR_LOG_VLEVEL + + This is a numeric value which corresponds to the verbosity + level used to limit messages written to standard error. + The lower the number the less chatty RMR functions are + during execution. The following is the current + relationship between the value set on this variable and + the messages written: + + +0 + + Off; no messages of any sort are written. + + +1 + + Only critical messages are written (default if this + variable does not exist) + + +2 + + Errors and all messages written with a lower value. + + +3 + + Warnings and all messages written with a lower value. + + +4 + + Informational and all messages written with a lower + value. + + +5 + + Debugging mode -- all messages written, however this + requires RMR to have been compiled with debugging + support enabled. + + RMR_RTG_ISRAW - Is set to 1 if the route table generator is sending - "plain" messages (not using RMr to send messages, 0 if the - rtg is using RMr to send. The default is 1 as we don't - expect the rtg to use RMr. + **Deprecated.** Should be set to 1 if the route table + generator is sending "plain" messages (not using RMR to + send messages), 0 if the RTG is using RMR to send. The + default is 1 as we don't expect the RTG to use RMR. + + This variable is only recognised when using the NNG + transport library as it is not possible to support NNG + "raw" communications with other transport libraries. It is + also necessary to match the value of this variable with + the capabilities of the Route Manager; at some point in + the future RMR will assume that all Route Manager messages + will arrive via an RMR connection and will ignore this + variable. RMR_SEED_RT This is used to supply a static route table which can be used for debugging, testing, or if no route table generator process is being used to supply the route table. - If not defined, no static table is used and RMr will not + If not defined, no static table is used and RMR will not report *ready* until a table is received. The static route table may contain both the route table (between newrt start and end records), and the MEID map (between meid_map - start and end records) + start and end records). RMR_SRC_ID @@ -84,6 +200,9 @@ RMR_SRC_ID function to return a response to the sender. If not supplied RMR will use the hostname which in some container environments might not be routable. + + The value of this variable is also used for Route Manager + messages which are sent via an RMR connection. RMR_VCTL_FILE