Provided by: mobilemesh_1.0-6_i386
mmrp - Mobile Mesh Router
mmrp [-hvz] [-d file] [-f file]
mmrp speaks the Mobile Mesh Routing Protocol on one or more IP
interfaces. It computes least cost unicast paths to all other nodes
within the Mobile Mesh cloud and modifies the IP routing table
accordingly. Interfaces and external route advertisements may be
specified in a config file or dynamically.
mmrp learns of link events by connecting to the well known Unix socket
associated with each interface. A link discovery program like
mmdiscover must be running on an interface prior to informing mmrp to
use the interface.
To enhance scalability mmrp performs a technique called fish-eye
routing where the resolution of a node’s map of the network is a
function of distance. This reduces the overhead associated with the
flooding of LSP’s.
mmrp recognizes the following command line switches:
Use flags ’file’ to enable debug output.
Use config ’file’ instead of /etc/mobilemesh/mmrp.conf. See
below for a description of the config file format.
-h Display a help message.
-v Display version information.
-z Run in the foreground instead of running as a daemon.
Config File Format
By default, mmrp reads the file /etc/mobilemesh/mmrp.conf for
configuration parameters. The format of the config file requires each
configuration parameter to be on its own line. Comments may be placed
in the file by beginning a line with a #. The following configuration
parameters are recognized:
port <Udp Port Number>
The well known UDP port number that all nodes in the mobile
network use to exchange Mobile Mesh Routing Protocol messages.
alpha <float value>
where (1.0 <= value <= 2.0). alpha controls the amount of delay
imposed before forwarding a neighbor’s LSP. The delay is:
Max(minTxDelay,Min(maxTxDelay,alpha^hops)) where hops is the
number of hops the LSP has travelled from its source.
minTxDelay <unsigned int value>
the minimum delay in seconds that will be imposed before
forwarding a neighbor’s LSP.
maxTxDelay <unsigned int value>
the maximum delay in seconds that will be imposed before
forwarding a neighbor’s LSP.
updatePeriod <unsigned int value>
the number of seconds between sending our own LSP.
maxAge <unsigned int value>
the maximum number of seconds that an LSP can live within the
network before it is discarded.
interface <dev name>
where <dev name> is the name of an interface, eg. eth0, that
will participate in the Mobile Mesh Routing Protocol. Multiple
interfaces may be specified, each requires its own line.
external <ip address> <netmask> <metric>
where <ip address> and <netmask> specify a range of addresses
that this node can reach which are external to the Mobile Mesh
cloud. <metric> is the associated cost to reach these addresses
from this node.
mmrp makes extensive use of Unix sockets to supply information to other
programs and receive commands. Each well known socket name is appended
with the UDP port number which allows multiple copies of mmrp to
execute simultaneously. The list below summarizes each Unix socket:
Configuration socket. Allows clients to dynamically add and
delete IP interfaces without restarting the router. This is
useful in situations where a system’s set of IP interfaces can
Import socket. Allows clients to dynamically add and delete
external route advertisements. External route advertisements are
included as part of the router’s Link State Packet and provide a
mechanism for a node to advertise a route to an address space
that exists outside of the Mobile Mesh cloud.
Topology socket. Allows clients to receive all LSP’s stored in
the router’s database. This mechanism is used by the
visualization tool mmrpviz to learn the network topology.
mmdiscover(8), mmborder(8), mmrpviz(8)
This program and documentation was written by Kevin H. Grace of The
MITRE Corporation <email@example.com>. Credit is also given to Mike
Butler who developed some of the support classes and lent his keen
July 19, 2000 MMRP(8)