#
# $XORP: xorp/fea/README.mfea,v 1.20 2007/04/18 06:20:56 pavlin Exp $
#

Multicast Forwarding Engine Abstraction
=======================================

The main purpose of the MFEA is to abstract the underlying system and
the multicast forwarding engine, and to provide a consistent interface
to multicast-related modules such as PIM and MLD/IGMP.

The MFEA is intended to fulfill several roles on behalf of multicast-related
processes such as MLD/IGMP and PIM-SM:

    1) Provides access to the multicast forwarding engine for processes
       such as PIM-SM.

    2) Installs dataflow monitors into the kernel (if the underlying
       system supports it), or reads bandwidth forwarding statistics per
       dataflow.

    3) Receives from the FEA information about network interfaces,
       and forwards this information to the multicast-related protocols
       registered with the MFEA.

Note that the MFEA is a part of the unicast FEA process, though logically
it is a separate entity.

Configuration
=============

MFEA like most XORP modules does not take its configuration
parameters from the command line. Its parameters are provided via
XRLs. At the very least a MFEA module must be provided with
the set of network interfaces to enable for multicast forwarding.
For information how to configure the MFEA see
http://www.xorp.org/getting_started.html
or
http://www.xorp.org/releases/current/docs/user_manual/user_manual.pdf

Startup
=======

In normal operation, MFEA would be started by the XORP router manager
process, not directly from the command line. In that case, make sure
that IP forwarding is enabled in the XORP configuration file
(see http://www.xorp.org/getting_started.html about information how to
enable it). 

Documentation
=============

The MFEA design architecture and code structure are described in:
	${XORP}/docs/mfea/

The programming documentation is in:
	${XORP}/docs/kdoc/html/fea/

Testing
=======

Currently, the MFEA testing is performed manually, indirectly as part of
the MLD/IGMP and PIM-SM testing.

In the future, automated testing will be added, similar to
the BGP testing framework.

Status
======

Currently (July 2008), the MFEA supports abstraction for
the following systems:

 * DragonFlyBSD, FreeBSD, NetBSD, OpenBSD
 * Linux
