Provided by: mobilemesh_1.0-6_i386 bug

NAME

       mmdiscover - Mobile Mesh Link Discovery

SYNOPSIS

       mmdiscover [-d file] [-f file] [-h] -i ifname [-vz]

DESCRIPTION

       mmdiscover  speaks  the  Mobile  Mesh  Link  Discovery  Protocol  on an
       individual IP interface and reports neighbor  interface  addresses  and
       associated  costs for any discovered links. Links that go down are also
       detected and reported.

       Client programs may receive link reports by connecting to a  well-known
       Unix  socket created by mmdiscover whose name is based upon the name of
       the IP interface prepended with "ln-". For example,  if  mmdiscover  is
       bound to interface "eth0", the well-known Unix socket name will be "ln-
       eth0".

       mmdiscover does not have prior knowledge of potential clients.  Clients
       simply send a message asking for the current list of links. This allows
       mmdiscover to dynamically learn who its clients are. Then, when a  link
       goes  up or down, it sends the event to all clients who have previously
       requested a list of links. A failure when sending an event to a  client
       implies  that  the  client  has  stopped  listening and thus mmdiscover
       removes the client from its dynamically managed set of clients.

       mmdiscover is responsible for determining when links go  up  and  down.
       Periodically,  it  broadcasts  a Hello message on a Udp socket bound to
       the IP interface.  mmdiscover can be configured to report  either  uni-
       directional  or only bi-directional links. The Hello message includes a
       list of the interface addresses of the senders of Hello  messages  that
       have been heard by the interface in the last DeadInterval .

       If  mmdiscover reports uni-directional links, then whenever it receives
       a Hello from another node’s interface that it  does  not  have  a  link
       from,  it  reports  the  new  link.  If  mmdiscover  only  reports  bi-
       directional links, then it checks a neighbor list within  the  received
       Hello  message  for  the address of the interface that heard the Hello.
       Note, if mmdiscover is configured to report bi-directional links,  then
       it  must report that a link went down if it changes from bi-directional
       to uni-directional; similarly, it reports that a link  came  up  if  it
       changes  from uni-directional to bi-directional. If a Hello message for
       a link which is declared to be up is not received within a DeadInterval
       , mmdiscover reports that the link is down.

OPTIONS

       mmdiscover recognizes the following command line switches:

       -d file
              Use flags ’file’ to enable debug output.

       -f file
              Use  config  ’file’  instead of /etc/mobilemesh/mmdiscover.conf.
              See below for a description of the config file format.

       -h     Display a help message.

       -i ifname
              The name of the IP interface whose neighbors will be discovered.

       -v     Display version information.

       -z     Run in the foreground instead of running as a daemon.

Config File Format

       By  default,  mmdiscover reads the file /etc/mobilemesh/mmdiscover.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:

       metric       <unsigned int value>
              The cost associated with the interface.

       allowUni     <bool>
              Set to 1 to allow uni-directional links to be reported. Set to 0
              to only allow bi-directional links to be reported.

       port         <Udp Port Number>
              The well known UDP port number that all similar nodes are  using
              for link discovery.

       helloPeriod  <unsigned int value>
              The number of seconds between sending "Hello" messages.

       deadInterval <unsigned int value>
              The  number  of  seconds  after hearing the last "Hello" message
              from a neighbor to declare the link from the neighbor down.

SEE ALSO

       mmrp(8), mmborder(8), mmrpviz(8)

AUTHOR

       This program and documentation was written by Kevin  H.  Grace  of  The
       MITRE  Corporation  <kgrace@mitre.org>.  Credit  is  also given to Mike
       Butler who developed some of the support  classes  and  lent  his  keen
       insight.

                                 July 19, 2000                   MMDISCOVER(8)