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 11fd558d18SJames Chapman ---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