MRD - Multicast Routing Daemon
------------------------------

  MRD is a IPv6 Multicast routing Daemon for Linux.

  MRD is written in C++ and has been primarily developed in Linux 2.6.

  Send any bugs or issues to Hugo Santos <hsantos@av.it.pt>

Features
--------

  - Extensible modular design;
  - MLDv1 and MLDv2 support with forwarding capabilities (mld);
    * MLD Proxying (mld);
  - PIM-SM support (ASM and SSM) (pim);
    * Bootstrap (BSR) Mechanism support (pim);
    * Static RP configuration (pim);
    * Embedded-RP support (RFC 3956);
  - partial MBGP support (bgp);
    * Implements basic BGP4 mechanisms (IPv6 Multicast SAFI)
      to update local MRIB from MBGP info;
  - Supports both native and virtual (tunnel) interfaces
    (tested IPv6-IPv4, IPv6-IPv6 and TUN/TAP tunnels);
  - Abstract Forwarding Interface (MFA) with user-space module;
  - Remote configuration and online administration (console);

Building
--------

  Note: The GNU C++ compiler (g++) is required to compile mrd.

  In the 'src' directory:

  * Using Make
      type `make` to build the `mrd` executable.

Running
-------

  Usage `mrd [options]`

    * Options
       -D	   Run MRD in the background
       -v	   Output info messages for both syslog and the active terminal
       -d	   Output debug messages as well
       -f <conf>   Use `conf` as the configuration file. The default configuration
                   file is '/etc/mrd.conf' or if it doesn't exist, the 'mrd.conf'
		   file in the running directory.

Configuration File
------------------

  The configuration file follows a hierarchical definition using `identifier { ... }` blocks.

  The `interfaces` and `groups` keywords specify both interface and group configuration.

  * Example
	pim {
	  bsr_candidate = true; /* we are a BSR candidate */
	  rp_candidate = true; /* we are a RP candidate */
	}
	groups {
	  ff0e::/16 {
	    pim {
	      rp_adv = true; /* include this group in the RP advertisement */
	    }
	  }
	}

  Read src/confs/mrd.conf for a sample configuration.

Console
-------

  If enabled the console module (see src/confs/mrd.conf) you'll be able to
  control/monitor mrd remotely by using the included 'mrd6sh' program. You
  may also connect remotely directly to mrd using a standard telnet program
  and connecting to port 44510.

    telnet -6 ::1 44510

SNMP
----

  mrd has SNMP support and partial standard MIB support.

  Supported MIBs: src/snmp/MRD-MIB.txt, src/mld/snmp/IPV6-MLD-MIB.txt.

Author and Contacts
-------------------

  Hugo Santos <hsantos@av.it.pt>

  Please send any requests to hng-request@av.it.pt

Copyright and Licensing
-----------------------

  This MRD release is GPL Licensed (Refer to the included COPYING file for details).

  Copyright (c) 2004 - Univ. Aveiro, Instituto Telecomunicacoes - Polo Aveiro

Thanks to
---------
  - Sebastien Chaumontet and Mickael Hoert for extensive testing and support;
  - Bernhard Schmidt for testing and supplying IPv6 multicast connectivity;
  - Anand Kumria to upload and maintain the oficial debian package;

