0001 # SPDX-License-Identifier: GPL-2.0-only
0002 #
0003 # Layer Two Tunneling Protocol (L2TP)
0004 #
0005
0006 menuconfig L2TP
0007 tristate "Layer Two Tunneling Protocol (L2TP)"
0008 depends on (IPV6 || IPV6=n)
0009 depends on INET
0010 select NET_UDP_TUNNEL
0011 help
0012 Layer Two Tunneling Protocol
0013
0014 From RFC 2661 <http://www.ietf.org/rfc/rfc2661.txt>.
0015
0016 L2TP facilitates the tunneling of packets across an
0017 intervening network in a way that is as transparent as
0018 possible to both end-users and applications.
0019
0020 L2TP is often used to tunnel PPP traffic over IP
0021 tunnels. One IP tunnel may carry thousands of individual PPP
0022 connections. L2TP is also used as a VPN protocol, popular
0023 with home workers to connect to their offices.
0024
0025 L2TPv3 allows other protocols as well as PPP to be carried
0026 over L2TP tunnels. L2TPv3 is defined in RFC 3931
0027 <http://www.ietf.org/rfc/rfc3931.txt>.
0028
0029 The kernel component handles only L2TP data packets: a
0030 userland daemon handles L2TP the control protocol (tunnel
0031 and session setup). One such daemon is OpenL2TP
0032 (http://openl2tp.org/).
0033
0034 If you don't need L2TP, say N. To compile all L2TP code as
0035 modules, choose M here.
0036
0037 config L2TP_DEBUGFS
0038 tristate "L2TP debugfs support"
0039 depends on L2TP && DEBUG_FS
0040 help
0041 Support for l2tp directory in debugfs filesystem. This may be
0042 used to dump internal state of the l2tp drivers for problem
0043 analysis.
0044
0045 If unsure, say 'Y'.
0046
0047 To compile this driver as a module, choose M here. The module
0048 will be called l2tp_debugfs.
0049
0050 config L2TP_V3
0051 bool "L2TPv3 support"
0052 depends on L2TP
0053 help
0054 Layer Two Tunneling Protocol Version 3
0055
0056 From RFC 3931 <http://www.ietf.org/rfc/rfc3931.txt>.
0057
0058 The Layer Two Tunneling Protocol (L2TP) provides a dynamic
0059 mechanism for tunneling Layer 2 (L2) "circuits" across a
0060 packet-oriented data network (e.g., over IP). L2TP, as
0061 originally defined in RFC 2661, is a standard method for
0062 tunneling Point-to-Point Protocol (PPP) [RFC1661] sessions.
0063 L2TP has since been adopted for tunneling a number of other
0064 L2 protocols, including ATM, Frame Relay, HDLC and even raw
0065 ethernet frames.
0066
0067 If you are connecting to L2TPv3 equipment, or you want to
0068 tunnel raw ethernet frames using L2TP, say Y here. If
0069 unsure, say N.
0070
0071 config L2TP_IP
0072 tristate "L2TP IP encapsulation for L2TPv3"
0073 depends on L2TP_V3
0074 help
0075 Support for L2TP-over-IP socket family.
0076
0077 The L2TPv3 protocol defines two possible encapsulations for
0078 L2TP frames, namely UDP and plain IP (without UDP). This
0079 driver provides a new L2TPIP socket family with which
0080 userspace L2TPv3 daemons may create L2TP/IP tunnel sockets
0081 when UDP encapsulation is not required. When L2TP is carried
0082 in IP packets, it used IP protocol number 115, so this port
0083 must be enabled in firewalls.
0084
0085 To compile this driver as a module, choose M here. The module
0086 will be called l2tp_ip.
0087
0088 config L2TP_ETH
0089 tristate "L2TP ethernet pseudowire support for L2TPv3"
0090 depends on L2TP_V3
0091 help
0092 Support for carrying raw ethernet frames over L2TPv3.
0093
0094 From RFC 4719 <http://www.ietf.org/rfc/rfc4719.txt>.
0095
0096 The Layer 2 Tunneling Protocol, Version 3 (L2TPv3) can be
0097 used as a control protocol and for data encapsulation to set
0098 up Pseudowires for transporting layer 2 Packet Data Units
0099 across an IP network [RFC3931].
0100
0101 This driver provides an ethernet virtual interface for each
0102 L2TP ethernet pseudowire instance. Standard Linux tools may
0103 be used to assign an IP address to the local virtual
0104 interface, or add the interface to a bridge.
0105
0106 If you are using L2TPv3, you will almost certainly want to
0107 enable this option.
0108
0109 To compile this driver as a module, choose M here. The module
0110 will be called l2tp_eth.