# SPDX-License-Identifier: GPL-2.0-only
#
# Layer Two Tunneling Protocol ([31mCONFIG_L2TP[0m)
#
menuconfig [31mCONFIG_L2TP[0m
tristate "Layer Two Tunneling Protocol (L2TP)"
depends on ([31mCONFIG_IPV6[0m || [31mCONFIG_IPV6[0m=n)
depends on [31mCONFIG_INET[0m
select [31mCONFIG_NET_UDP_TUNNEL[0m
---help---
Layer Two Tunneling Protocol
From RFC 2661 <http://www.ietf.org/rfc/rfc2661.txt>.
[31mCONFIG_L2TP[0m facilitates the tunneling of packets across an
intervening network in a way that is as transparent as
possible to both end-users and applications.
[31mCONFIG_L2TP[0m is often used to tunnel [31mCONFIG_PPP[0m traffic over IP
tunnels. One IP tunnel may carry thousands of individual [31mCONFIG_PPP[0m
connections. [31mCONFIG_L2TP[0m is also used as a VPN protocol, popular
with home workers to connect to their offices.
L2TPv3 allows other protocols as well as [31mCONFIG_PPP[0m to be carried
over [31mCONFIG_L2TP[0m tunnels. L2TPv3 is defined in RFC 3931
<http://www.ietf.org/rfc/rfc3931.txt>.
The kernel component handles only [31mCONFIG_L2TP[0m data packets: a
userland daemon handles [31mCONFIG_L2TP[0m the control protocol (tunnel
and session setup). One such daemon is OpenL2TP
(http://openl2tp.org/).
If you don't need [31mCONFIG_L2TP[0m, say N. To compile all [31mCONFIG_L2TP[0m code as
modules, choose [31mCONFIG_M[0m here.
config [31mCONFIG_L2TP_DEBUGFS[0m
tristate "L2TP debugfs support"
depends on [31mCONFIG_L2TP[0m && [31mCONFIG_DEBUG_FS[0m
help
Support for l2tp directory in debugfs filesystem. This may be
used to dump internal state of the l2tp drivers for problem
analysis.
If unsure, say 'Y'.
To compile this driver as a module, choose [31mCONFIG_M[0m here. The module
will be called l2tp_debugfs.
config [31mCONFIG_L2TP_V3[0m
bool "L2TPv3 support"
depends on [31mCONFIG_L2TP[0m
help
Layer Two Tunneling Protocol Version 3
From RFC 3931 <http://www.ietf.org/rfc/rfc3931.txt>.
The Layer Two Tunneling Protocol ([31mCONFIG_L2TP[0m) provides a dynamic
mechanism for tunneling Layer 2 (L2) "circuits" across a
packet-oriented data network (e.g., over IP). [31mCONFIG_L2TP[0m, as
originally defined in RFC 2661, is a standard method for
tunneling Point-to-Point Protocol ([31mCONFIG_PPP[0m) [RFC1661] sessions.
[31mCONFIG_L2TP[0m has since been adopted for tunneling a number of other
L2 protocols, including [31mCONFIG_ATM[0m, Frame Relay, [31mCONFIG_HDLC[0m and even raw
ethernet frames.
If you are connecting to L2TPv3 equipment, or you want to
tunnel raw ethernet frames using [31mCONFIG_L2TP[0m, say Y here. If
unsure, say N.
config [31mCONFIG_L2TP_IP[0m
tristate "L2TP IP encapsulation for L2TPv3"
depends on [31mCONFIG_L2TP_V3[0m
help
Support for [31mCONFIG_L2TP[0m-over-IP socket family.
The L2TPv3 protocol defines two possible encapsulations for
[31mCONFIG_L2TP[0m frames, namely UDP and plain IP (without UDP). This
driver provides a new L2TPIP socket family with which
userspace L2TPv3 daemons may create [31mCONFIG_L2TP[0m/IP tunnel sockets
when UDP encapsulation is not required. When [31mCONFIG_L2TP[0m is carried
in IP packets, it used IP protocol number 115, so this port
must be enabled in firewalls.
To compile this driver as a module, choose [31mCONFIG_M[0m here. The module
will be called l2tp_ip.
config [31mCONFIG_L2TP_ETH[0m
tristate "L2TP ethernet pseudowire support for L2TPv3"
depends on [31mCONFIG_L2TP_V3[0m
help
Support for carrying raw ethernet frames over L2TPv3.
From RFC 4719 <http://www.ietf.org/rfc/rfc4719.txt>.
The Layer 2 Tunneling Protocol, Version 3 (L2TPv3) can be
used as a control protocol and for data encapsulation to set
up Pseudowires for transporting layer 2 Packet Data Units
across an IP network [RFC3931].
This driver provides an ethernet virtual interface for each
[31mCONFIG_L2TP[0m ethernet pseudowire instance. Standard Linux tools may
be used to assign an IP address to the local virtual
interface, or add the interface to a bridge.
If you are using L2TPv3, you will almost certainly want to
enable this option.
To compile this driver as a module, choose [31mCONFIG_M[0m here. The module
will be called l2tp_eth.