The LDM Configuration-File, ldmd.conf


You should also read the discussion on editing ldmd.conf when configuring an LDM installation.

Contents


Introduction

The LDM configuration-file, ldmd.conf, provides information to the top-level rpc.ldmd and contains the following types of entries:

EXEC
Execute programs as child processes on startup
REQUEST
Connect to upstream LDMs to request data-products
ALLOW
Allow certain downstream LDMs to connect and to receive certain data-products
ACCEPT
Allow certain upstream LDMs to send certain unrequested data-products
This file normally resides in the etc/ subdirectory of the LDM installation.

EXEC Entry

An EXEC entry tells the top-level rpc.ldmd to execute a program on startup. The programs most typically executed are pqact and rtstats (for IDD gateway LDMs).

The syntax of an EXEC entry is

EXEC "command"

where the quotation marks are mandatory and command is a string that may contain newlines. Escape quotation marks in command with a backslash (\").

The command strings of EXEC entries are executed via the execvp() function when the top-level rpc.ldmd program is started.


REQUEST Entry

A REQUEST entry tells the top-level rpc.ldmd to start a downstream LDM child process.

The syntax of a REQUEST entry is

REQUEST feedtype prodIdEre hostId [PRIMARY|ALTERNATE]

When the top-level rpc.ldmd is started, it creates a downstream LDM child process for every REQUEST entry. The downstream LDM connects to the upstream LDM on the specified host and requests the specified class of data-products.

The optional last field specifies the maximum HEREIS size that will be sent to the upstream LDM as part of the FEEDME request. If the optional last field is not present or is the (case insensitive) string PRIMARY, then the maximum HEREIS size will be, essentially, infinite and the upstream LDM will deliver the data-products asynchronously using HEREIS messages, exclusively. If, however, the optional last field is the (case insensitive) string ALTERNATE, then the upstream LDM will deliver the data-products synchronously using COMINGSOON and BLKDATA messages, exclusively. A non-negative numeric value may also be used in this field.


ALLOW Entry

An ALLOW entry tells the top-level rpc.ldmd what downstream LDMs are allowed to connect and what class of data-product they are allowed to receive.

The syntax of an ALLOW entry is

ALLOW feedtype hostIdEre

When a downstream LDM connects, its host identifier is checked against the set of ALLOW entries. If nothing matches the host identifier, then the downstream LDM is disconnected. The feedtype of the first matching entry specifies the type of data-products the downstream LDM is allowed to receive.

The configuration-file should always have the following entries:

ALLOW   ANY ^(localhost|loopback)|(127\.0\.0\.1\.?$)
ALLOW   ANY ^([a-z].*\.unidata\.ucar\.edu\.?$)
The first entry allows the LDM to request data from itself and is necessary for proper operation.

The second entry allows the Unidata Program Center to monitor the health of the LDM.


ACCEPT Entry

An ACCEPT entry tells the top-level rpc.ldmd what unrequested upstream LDMs are allowed to connect and what class of data-product they are allowed to send.

The syntax of an ACCEPT entry is

ACCEPT feedtype prodIdEre hostIdEre

When an upstream LDM connects using the HIYA message, its host identifier is checked against the set of ACCEPT entries. If nothing matches the host identifier, then the upstream LDM is disconnected. The feedtype and prodIdEre of the first matching entry specifies the type of data-products the upstream LDM is allowed to send.

This entry was primarily used for receiving (unREQUESTed) radar data from WSI Corporation and is now primarily used to receive statistics from the rtstats(1) utility, which are formatted as data-products.


Key

feedtype
A feedtype (e.g., WMO, IDS|DDPLUS, 3).
hostId
An identifier for a host. It may be either a fully-qualified hostname (e.g., thelma.ucar.edu) or an IP address in dotted-quad notation (e.g., 192.52.106.21).
hostIdEre
An ERE for matching a hostId. It must not contain whitespace and must not be enclosed in quotation marks.
prodIdEre
An ERE for matching data-product identifiers. If it contains whitespace, then it must be enclosed in quotation marks (") and any internal quotation marks must be escaped with a backslash (\").