The remote ROM allows providing ROM services over a network or similar
communication medium and thus implements publisher/subscriber communication in
a distributed system.

The remote_rom server connects to a local ROM service and provides a remote ROM
service via the specified backend. The remote_rom client connects to a remote
ROM service via the specified backend and provides a ROM service via local RPC.

Backends
--------

The remote_rom can be compiled with one of multiple back ends that use
different session interfaces or libraries to forward and receive the packets.
By exchanging the backend, we can also easily change the publication strategy
(e.g., notification+polling vs. multicast). Furthermore, a back end is
responsible for access control and optionally allows the specification of a
policy for this.

:'nic_ip':
	This back end uses a Nic_session to transmit network packets with IPv4
	and UDP headers.

Configuration
-------------

Both the client and the server evaluate the '<remote_rom>' node of their
config. The _name_ attribute specifies the ROMs module name. The source IP
address is specified by the _src_ attribute and the destination IP address
by the _dst_ attribute. The _dst_mac_ attribute may specify the destination
MAC address (default: broadcast). Attribute _udp_port_ specifies the
destination port (default: 9009).
A boolean _binary_ attribute can be used to switch between transmission of
the entire ROM dataspace (binary="true") or transmission of string content
using strlen.

Example
~~~~~~~

For an example that illustrates the use of these components, please refer to
the _run/remote_rom_backend_nic_ip.run_ script.
