.\" SPDX-License-Identifier: BSD-3-Clause
.\"
.\" Copyright (c) 2017-2022, Intel Corporation

.\" Process this file with
.\" groff -man -Tascii mptcpd.8
.\"
.TH MPTCPD 8 "2022-08-19" "Multipath TCP Daemon" "System Management Commands"
.SH NAME
mptcpd \- multipath TCP daemon
.SH SYNOPSIS
.SY mptcpd
.OP \-d?V
.OP \-l DEST
.OP \-\-debug
.BI [\-\-addr\-flags= FLAGS ]
.BI [\-\-notify\-flags= FLAGS ]
.BI [\-\-plugin\-dir= DIR ]
.BI [\-\-path\-manager= PLUGIN ]
.BI [\-\-load\-plugins= PLUGINS ]
.OP \-\-help
.OP \-\-usage
.BI [\-\-log= DEST ]
.OP --version
.YS

.SH DESCRIPTION
.B mptcpd
is a daemon for Linux based operating systems that performs multipath
TCP (see IETF RFC 8684) path management related operations in the user
space.  It interacts with the Linux kernel through a generic netlink
connection to track per-connection information, available network
interfaces, request new MPTCP subflows, handle requests for subflows,
etc.
.SH OPTIONS
.B mptcpd
accepts the following command line options:

.TP
.BR \-d , \-\-debug
enable debug log messages

.TP
.BR \-? , \-\-help
display
.B mptcpd
help information

.TP
.B \-\-usage
display brief
.B mptcpd
usage information

.TP
.BI \-l \ DEST ,\ \-\-log= DEST
log output to
.IR DEST ,
where
.I DEST
can be
.IR stderr ,
.I syslog
or
.I journal

.TP
.BI \-\-addr\-flags= FLAGS
set flags for announced address, where
.I FLAGS
is a comma separated list containing one or more of the flags
.IR subflow ,
.IR signal ,
.IR backup ,
and
.I fullmesh
that plugins that deal with the in-kernel path manager may use when
advertising addresses, e.g.
.B --addr-flags=subflow

.TP
.BI \-\-notify\-flags= FLAGS
address notification flags, where
.I FLAGS
is a comma separated list containing one or more of the following
flags:
.RS
.TP
.I existing
notify plugins of the addresses that exist at mptcpd start
.RE
.RS
.TP
.I skip_link_local
ignore (do not notify) [ipv6] link local address updates
.RE
.RS
.TP
.I skip_loopback
ignore (do not notify) host (loopback) address updates
.RE
.RS
.TP
.I check_route
notify address only if a default route is available from such
address and the related device. If the route check fails, it will
re-done after a little timeout, to allow .e.g. DHCP to configure the
host properly. Complex Policy routing configuration may confuse or
circumvent this check.
.RE
.P
.RS
These flags determine whether mptpcd plugins will be notified when
related addresses are updated, e.g.
.B --notify-flags=existing,skip_link_local,check_route
.RE

.TP
.BI \-\-plugin\-dir= DIR
set plugin directory to
.I DIR

.TP
.BI \-\-path\-manager= PLUGIN
set default path manager plugin to
.IR PLUGIN ,
overriding plugin priorities

.TP
.BI \-\-load\-plugins= PLUGINS
set plugins to load on startup, where
.I PLUGINS 
is a comma separated list containing one or more plugin names

.TP
.BR \-V , \-\-version
display
.B mptcpd
version information

.SH FILES
.TP
.I @pkgsysconfdir@/mptcpd.conf
Location of the mptcpd system configuration file.
.\" TODO: Describe systemd unit file

.SH REPORTING BUGS
Report bugs to
.MT @PACKAGE_BUGREPORT@
.ME .

.SH SEE ALSO
ip-mptcp(8)

.\" Local Variables:
.\" mode: nroff
.\" End:
