MPD(8)

NAME
mpd - netgraph multi-link PPP daemon

SYNOPSIS
mpd [-kbv] [-a IP-address] [-d directory] [-c tcp-port] [-f file] [-p pid-file] [-s ident] [configuration]

DESCRIPTION
mpd is a user mode PPP daemon using the netgraph(4) networking system. By using Netgraph, mpd combines the robustness and flexibility of a user-mode PPP implementation with the speed and reliability of kernel-mode packet forwarding. All PPP negotiation is handled in user level code, while all data intensive operations such as encryption, compression, and multi-link framing are handled strictly in the kernel. Mpd supports several link layer types, a fully event-driven modem chat scripting language, and other features.

mpd creates a ng_ppp(4) netgraph node that is placed between a ng_iface(4) netgraph interface one or more link layer devices, performing multi-link PPP negotiation and encapsulation. In multi-link PPP a bundle is a collection of one or more links between two peers. Each link corresponds to some device (e.g., a modem), and each bundle corresponds to one netgraph interface. The idea is to use all of the links, together connected to a remote peer also performing multi-link PPP, to utilize their combined bandwidth. Packets routed through the netgraph interface travel in multi-link fragments over all of the links. Each link is a normal PPP link and can deliver complete packets as well, so redundancy is another benefit. mpd implements a fairly simple form of multi-link PPP, in that a bundle consists of a fixed set of links. Attempts to connect two links in the same bundle to different peers, or to a peer that is not configured for multi-link PPP, will fail.

In general, everything is controlled by executing commands which are either entered via the console command line or read from a configuration file. If mpd is running as a background daemon, the console can be made accessible via telnet(1) with the -c flag. Only one console connection is allowed at a time. Since commands may apply to a single link, the console prompt always shows the current bundle and the current link in that bundle.

ON-LINE MANUAL
Mpd is fully documented in the mpd manual, which is available in HTML. The manual can be found in the directory @PREFIX@/share/doc/mpd.

OPTIONS
Mpd supports the following command options:

-a IP-address
--console-address IP-address

    Allow telnet(1) connections to IP-address to give access to the console command line. The default IP address is 0.0.0.0 (i.e., listen on all interfaces).

-b
--background

    Detach from the terminal and run as a background deamon.

-d dirname
--directory dirname

    Specify a configuration directory other than the default, @PREFIX@/etc/mpd.

-f file
--file file

    Specify an initial configuration file other than the default, mpd.conf.

-p file
--pidfile file

    Specify an lock/process ID storage file other than the default /var/run/mpd.pid.

-c port
--console-port port

    Allow telnet(1) connections to TCP port port to give access to the console command line. Note that this is a security hole, and should only be used in conjuntion with a console password. The default port is 5005.

-k
--kill

    Kill any existing mpd daemon currently running. The same pidfile must be used.

-s ident
--syslog-ident ident

    Identifier to use for syslog(3).

-v
--version

    Display the program version and exit.

-h
--help

    Display invocation usage and exit.

FILES
@PREFIX@/share/doc/mpd
    Directory containing the mpd manual
@PREFIX@/etc/mpd
    Default configuration file directory
mpd.conf
    Configuration file
mpd.links
    Definitions of individual links
mpd.script
    Modem chat scripts
mpd.secret
    Account name, password pairs
/var/run/mpd.pid
    Stored process ID and lock file

SEE ALSO
netgraph(4), ng_ppp(4), ppp(8), pppd(8).

AUTHOR
Mpd was written by Archie Cobbs <archie@freebsd.org>, based on the original ppp(8) daemon written by Toshiharu OHNO <tony-o@iij.ad.jp>.