xref: /linux/net/l2tp/Kconfig (revision 4b4193256c8d3bc3a5397b5cd9494c2ad386317d)
1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only
2fd558d18SJames Chapman#
3fd558d18SJames Chapman# Layer Two Tunneling Protocol (L2TP)
4fd558d18SJames Chapman#
5fd558d18SJames Chapman
6fd558d18SJames Chapmanmenuconfig L2TP
7fd558d18SJames Chapman	tristate "Layer Two Tunneling Protocol (L2TP)"
8fc181625SAmerigo Wang	depends on (IPV6 || IPV6=n)
9fd558d18SJames Chapman	depends on INET
1085644b4dSTom Herbert	select NET_UDP_TUNNEL
11*a7f7f624SMasahiro Yamada	help
12fd558d18SJames Chapman	  Layer Two Tunneling Protocol
13fd558d18SJames Chapman
14fd558d18SJames Chapman	  From RFC 2661 <http://www.ietf.org/rfc/rfc2661.txt>.
15fd558d18SJames Chapman
16fd558d18SJames Chapman	  L2TP facilitates the tunneling of packets across an
17fd558d18SJames Chapman	  intervening network in a way that is as transparent as
18fd558d18SJames Chapman	  possible to both end-users and applications.
19fd558d18SJames Chapman
20fd558d18SJames Chapman	  L2TP is often used to tunnel PPP traffic over IP
21fd558d18SJames Chapman	  tunnels. One IP tunnel may carry thousands of individual PPP
22fd558d18SJames Chapman	  connections. L2TP is also used as a VPN protocol, popular
23fd558d18SJames Chapman	  with home workers to connect to their offices.
24fd558d18SJames Chapman
25f7faffa3SJames Chapman	  L2TPv3 allows other protocols as well as PPP to be carried
26f7faffa3SJames Chapman	  over L2TP tunnels. L2TPv3 is defined in RFC 3931
27f7faffa3SJames Chapman	  <http://www.ietf.org/rfc/rfc3931.txt>.
28f7faffa3SJames Chapman
29fd558d18SJames Chapman	  The kernel component handles only L2TP data packets: a
30fd558d18SJames Chapman	  userland daemon handles L2TP the control protocol (tunnel
31fd558d18SJames Chapman	  and session setup). One such daemon is OpenL2TP
32fd558d18SJames Chapman	  (http://openl2tp.org/).
33fd558d18SJames Chapman
34fd558d18SJames Chapman	  If you don't need L2TP, say N. To compile all L2TP code as
35fd558d18SJames Chapman	  modules, choose M here.
36f7faffa3SJames Chapman
370ad66140SJames Chapmanconfig L2TP_DEBUGFS
380ad66140SJames Chapman	tristate "L2TP debugfs support"
390ad66140SJames Chapman	depends on L2TP && DEBUG_FS
400ad66140SJames Chapman	help
410ad66140SJames Chapman	  Support for l2tp directory in debugfs filesystem. This may be
420ad66140SJames Chapman	  used to dump internal state of the l2tp drivers for problem
430ad66140SJames Chapman	  analysis.
440ad66140SJames Chapman
450ad66140SJames Chapman	  If unsure, say 'Y'.
460ad66140SJames Chapman
470ad66140SJames Chapman	  To compile this driver as a module, choose M here. The module
480ad66140SJames Chapman	  will be called l2tp_debugfs.
490ad66140SJames Chapman
50f7faffa3SJames Chapmanconfig L2TP_V3
5141694365SKees Cook	bool "L2TPv3 support"
5241694365SKees Cook	depends on L2TP
53f7faffa3SJames Chapman	help
54f7faffa3SJames Chapman	  Layer Two Tunneling Protocol Version 3
55f7faffa3SJames Chapman
56f7faffa3SJames Chapman	  From RFC 3931 <http://www.ietf.org/rfc/rfc3931.txt>.
57f7faffa3SJames Chapman
58f7faffa3SJames Chapman	  The Layer Two Tunneling Protocol (L2TP) provides a dynamic
59f7faffa3SJames Chapman	  mechanism for tunneling Layer 2 (L2) "circuits" across a
60f7faffa3SJames Chapman	  packet-oriented data network (e.g., over IP).  L2TP, as
61f7faffa3SJames Chapman	  originally defined in RFC 2661, is a standard method for
62f7faffa3SJames Chapman	  tunneling Point-to-Point Protocol (PPP) [RFC1661] sessions.
63f7faffa3SJames Chapman	  L2TP has since been adopted for tunneling a number of other
64f7faffa3SJames Chapman	  L2 protocols, including ATM, Frame Relay, HDLC and even raw
65f7faffa3SJames Chapman	  ethernet frames.
66f7faffa3SJames Chapman
67f7faffa3SJames Chapman	  If you are connecting to L2TPv3 equipment, or you want to
68f7faffa3SJames Chapman	  tunnel raw ethernet frames using L2TP, say Y here. If
69f7faffa3SJames Chapman	  unsure, say N.
700d76751fSJames Chapman
710d76751fSJames Chapmanconfig L2TP_IP
720d76751fSJames Chapman	tristate "L2TP IP encapsulation for L2TPv3"
730d76751fSJames Chapman	depends on L2TP_V3
740d76751fSJames Chapman	help
750d76751fSJames Chapman	  Support for L2TP-over-IP socket family.
760d76751fSJames Chapman
770d76751fSJames Chapman	  The L2TPv3 protocol defines two possible encapsulations for
780d76751fSJames Chapman	  L2TP frames, namely UDP and plain IP (without UDP). This
790d76751fSJames Chapman	  driver provides a new L2TPIP socket family with which
800d76751fSJames Chapman	  userspace L2TPv3 daemons may create L2TP/IP tunnel sockets
810d76751fSJames Chapman	  when UDP encapsulation is not required. When L2TP is carried
820d76751fSJames Chapman	  in IP packets, it used IP protocol number 115, so this port
830d76751fSJames Chapman	  must be enabled in firewalls.
840d76751fSJames Chapman
850d76751fSJames Chapman	  To compile this driver as a module, choose M here. The module
860d76751fSJames Chapman	  will be called l2tp_ip.
87d9e31d17SJames Chapman
88d9e31d17SJames Chapmanconfig L2TP_ETH
89d9e31d17SJames Chapman	tristate "L2TP ethernet pseudowire support for L2TPv3"
90d9e31d17SJames Chapman	depends on L2TP_V3
91d9e31d17SJames Chapman	help
92d9e31d17SJames Chapman	  Support for carrying raw ethernet frames over L2TPv3.
93d9e31d17SJames Chapman
94d9e31d17SJames Chapman	  From RFC 4719 <http://www.ietf.org/rfc/rfc4719.txt>.
95d9e31d17SJames Chapman
96d9e31d17SJames Chapman	  The Layer 2 Tunneling Protocol, Version 3 (L2TPv3) can be
97d9e31d17SJames Chapman	  used as a control protocol and for data encapsulation to set
98d9e31d17SJames Chapman	  up Pseudowires for transporting layer 2 Packet Data Units
99d9e31d17SJames Chapman	  across an IP network [RFC3931].
100d9e31d17SJames Chapman
101d9e31d17SJames Chapman	  This driver provides an ethernet virtual interface for each
102d9e31d17SJames Chapman	  L2TP ethernet pseudowire instance. Standard Linux tools may
103d9e31d17SJames Chapman	  be used to assign an IP address to the local virtual
104d9e31d17SJames Chapman	  interface, or add the interface to a bridge.
105d9e31d17SJames Chapman
106d9e31d17SJames Chapman	  If you are using L2TPv3, you will almost certainly want to
107d9e31d17SJames Chapman	  enable this option.
108d9e31d17SJames Chapman
109d9e31d17SJames Chapman	  To compile this driver as a module, choose M here. The module
110d9e31d17SJames Chapman	  will be called l2tp_eth.
111