^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) # SPDX-License-Identifier: GPL-2.0-only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) # Layer Two Tunneling Protocol (L2TP)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) menuconfig L2TP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) tristate "Layer Two Tunneling Protocol (L2TP)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) depends on (IPV6 || IPV6=n)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) depends on INET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) select NET_UDP_TUNNEL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) Layer Two Tunneling Protocol
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) From RFC 2661 <http://www.ietf.org/rfc/rfc2661.txt>.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) L2TP facilitates the tunneling of packets across an
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) intervening network in a way that is as transparent as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) possible to both end-users and applications.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) L2TP is often used to tunnel PPP traffic over IP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) tunnels. One IP tunnel may carry thousands of individual PPP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) connections. L2TP is also used as a VPN protocol, popular
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) with home workers to connect to their offices.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) L2TPv3 allows other protocols as well as PPP to be carried
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) over L2TP tunnels. L2TPv3 is defined in RFC 3931
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) <http://www.ietf.org/rfc/rfc3931.txt>.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) The kernel component handles only L2TP data packets: a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) userland daemon handles L2TP the control protocol (tunnel
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) and session setup). One such daemon is OpenL2TP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) (http://openl2tp.org/).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) If you don't need L2TP, say N. To compile all L2TP code as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) modules, choose M here.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) config L2TP_DEBUGFS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) tristate "L2TP debugfs support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) depends on L2TP && DEBUG_FS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) Support for l2tp directory in debugfs filesystem. This may be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) used to dump internal state of the l2tp drivers for problem
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) analysis.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) If unsure, say 'Y'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) To compile this driver as a module, choose M here. The module
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) will be called l2tp_debugfs.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) config L2TP_V3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) bool "L2TPv3 support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) depends on L2TP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) Layer Two Tunneling Protocol Version 3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) From RFC 3931 <http://www.ietf.org/rfc/rfc3931.txt>.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) The Layer Two Tunneling Protocol (L2TP) provides a dynamic
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) mechanism for tunneling Layer 2 (L2) "circuits" across a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) packet-oriented data network (e.g., over IP). L2TP, as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) originally defined in RFC 2661, is a standard method for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) tunneling Point-to-Point Protocol (PPP) [RFC1661] sessions.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) L2TP has since been adopted for tunneling a number of other
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) L2 protocols, including ATM, Frame Relay, HDLC and even raw
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) ethernet frames.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) If you are connecting to L2TPv3 equipment, or you want to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) tunnel raw ethernet frames using L2TP, say Y here. If
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) config L2TP_IP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) tristate "L2TP IP encapsulation for L2TPv3"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) depends on L2TP_V3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) Support for L2TP-over-IP socket family.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) The L2TPv3 protocol defines two possible encapsulations for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) L2TP frames, namely UDP and plain IP (without UDP). This
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) driver provides a new L2TPIP socket family with which
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) userspace L2TPv3 daemons may create L2TP/IP tunnel sockets
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) when UDP encapsulation is not required. When L2TP is carried
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) in IP packets, it used IP protocol number 115, so this port
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) must be enabled in firewalls.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) To compile this driver as a module, choose M here. The module
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) will be called l2tp_ip.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) config L2TP_ETH
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) tristate "L2TP ethernet pseudowire support for L2TPv3"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) depends on L2TP_V3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) Support for carrying raw ethernet frames over L2TPv3.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) From RFC 4719 <http://www.ietf.org/rfc/rfc4719.txt>.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) The Layer 2 Tunneling Protocol, Version 3 (L2TPv3) can be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) used as a control protocol and for data encapsulation to set
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) up Pseudowires for transporting layer 2 Packet Data Units
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) across an IP network [RFC3931].
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) This driver provides an ethernet virtual interface for each
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) L2TP ethernet pseudowire instance. Standard Linux tools may
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) be used to assign an IP address to the local virtual
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) interface, or add the interface to a bridge.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) If you are using L2TPv3, you will almost certainly want to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) enable this option.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) To compile this driver as a module, choose M here. The module
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) will be called l2tp_eth.