162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci#
362306a36Sopenharmony_ci# Layer Two Tunneling Protocol (L2TP)
462306a36Sopenharmony_ci#
562306a36Sopenharmony_ci
662306a36Sopenharmony_cimenuconfig L2TP
762306a36Sopenharmony_ci	tristate "Layer Two Tunneling Protocol (L2TP)"
862306a36Sopenharmony_ci	depends on (IPV6 || IPV6=n)
962306a36Sopenharmony_ci	depends on INET
1062306a36Sopenharmony_ci	select NET_UDP_TUNNEL
1162306a36Sopenharmony_ci	help
1262306a36Sopenharmony_ci	  Layer Two Tunneling Protocol
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ci	  From RFC 2661 <http://www.ietf.org/rfc/rfc2661.txt>.
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ci	  L2TP facilitates the tunneling of packets across an
1762306a36Sopenharmony_ci	  intervening network in a way that is as transparent as
1862306a36Sopenharmony_ci	  possible to both end-users and applications.
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ci	  L2TP is often used to tunnel PPP traffic over IP
2162306a36Sopenharmony_ci	  tunnels. One IP tunnel may carry thousands of individual PPP
2262306a36Sopenharmony_ci	  connections. L2TP is also used as a VPN protocol, popular
2362306a36Sopenharmony_ci	  with home workers to connect to their offices.
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ci	  L2TPv3 allows other protocols as well as PPP to be carried
2662306a36Sopenharmony_ci	  over L2TP tunnels. L2TPv3 is defined in RFC 3931
2762306a36Sopenharmony_ci	  <http://www.ietf.org/rfc/rfc3931.txt>.
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci	  The kernel component handles only L2TP data packets: a
3062306a36Sopenharmony_ci	  userland daemon handles L2TP the control protocol (tunnel
3162306a36Sopenharmony_ci	  and session setup). One such daemon is OpenL2TP
3262306a36Sopenharmony_ci	  (http://openl2tp.org/).
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ci	  If you don't need L2TP, say N. To compile all L2TP code as
3562306a36Sopenharmony_ci	  modules, choose M here.
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ciconfig L2TP_DEBUGFS
3862306a36Sopenharmony_ci	tristate "L2TP debugfs support"
3962306a36Sopenharmony_ci	depends on L2TP && DEBUG_FS
4062306a36Sopenharmony_ci	help
4162306a36Sopenharmony_ci	  Support for l2tp directory in debugfs filesystem. This may be
4262306a36Sopenharmony_ci	  used to dump internal state of the l2tp drivers for problem
4362306a36Sopenharmony_ci	  analysis.
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ci	  If unsure, say 'Y'.
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ci	  To compile this driver as a module, choose M here. The module
4862306a36Sopenharmony_ci	  will be called l2tp_debugfs.
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ciconfig L2TP_V3
5162306a36Sopenharmony_ci	bool "L2TPv3 support"
5262306a36Sopenharmony_ci	depends on L2TP
5362306a36Sopenharmony_ci	help
5462306a36Sopenharmony_ci	  Layer Two Tunneling Protocol Version 3
5562306a36Sopenharmony_ci
5662306a36Sopenharmony_ci	  From RFC 3931 <http://www.ietf.org/rfc/rfc3931.txt>.
5762306a36Sopenharmony_ci
5862306a36Sopenharmony_ci	  The Layer Two Tunneling Protocol (L2TP) provides a dynamic
5962306a36Sopenharmony_ci	  mechanism for tunneling Layer 2 (L2) "circuits" across a
6062306a36Sopenharmony_ci	  packet-oriented data network (e.g., over IP).  L2TP, as
6162306a36Sopenharmony_ci	  originally defined in RFC 2661, is a standard method for
6262306a36Sopenharmony_ci	  tunneling Point-to-Point Protocol (PPP) [RFC1661] sessions.
6362306a36Sopenharmony_ci	  L2TP has since been adopted for tunneling a number of other
6462306a36Sopenharmony_ci	  L2 protocols, including ATM, Frame Relay, HDLC and even raw
6562306a36Sopenharmony_ci	  ethernet frames.
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_ci	  If you are connecting to L2TPv3 equipment, or you want to
6862306a36Sopenharmony_ci	  tunnel raw ethernet frames using L2TP, say Y here. If
6962306a36Sopenharmony_ci	  unsure, say N.
7062306a36Sopenharmony_ci
7162306a36Sopenharmony_ciconfig L2TP_IP
7262306a36Sopenharmony_ci	tristate "L2TP IP encapsulation for L2TPv3"
7362306a36Sopenharmony_ci	depends on L2TP_V3
7462306a36Sopenharmony_ci	help
7562306a36Sopenharmony_ci	  Support for L2TP-over-IP socket family.
7662306a36Sopenharmony_ci
7762306a36Sopenharmony_ci	  The L2TPv3 protocol defines two possible encapsulations for
7862306a36Sopenharmony_ci	  L2TP frames, namely UDP and plain IP (without UDP). This
7962306a36Sopenharmony_ci	  driver provides a new L2TPIP socket family with which
8062306a36Sopenharmony_ci	  userspace L2TPv3 daemons may create L2TP/IP tunnel sockets
8162306a36Sopenharmony_ci	  when UDP encapsulation is not required. When L2TP is carried
8262306a36Sopenharmony_ci	  in IP packets, it used IP protocol number 115, so this port
8362306a36Sopenharmony_ci	  must be enabled in firewalls.
8462306a36Sopenharmony_ci
8562306a36Sopenharmony_ci	  To compile this driver as a module, choose M here. The module
8662306a36Sopenharmony_ci	  will be called l2tp_ip.
8762306a36Sopenharmony_ci
8862306a36Sopenharmony_ciconfig L2TP_ETH
8962306a36Sopenharmony_ci	tristate "L2TP ethernet pseudowire support for L2TPv3"
9062306a36Sopenharmony_ci	depends on L2TP_V3
9162306a36Sopenharmony_ci	help
9262306a36Sopenharmony_ci	  Support for carrying raw ethernet frames over L2TPv3.
9362306a36Sopenharmony_ci
9462306a36Sopenharmony_ci	  From RFC 4719 <http://www.ietf.org/rfc/rfc4719.txt>.
9562306a36Sopenharmony_ci
9662306a36Sopenharmony_ci	  The Layer 2 Tunneling Protocol, Version 3 (L2TPv3) can be
9762306a36Sopenharmony_ci	  used as a control protocol and for data encapsulation to set
9862306a36Sopenharmony_ci	  up Pseudowires for transporting layer 2 Packet Data Units
9962306a36Sopenharmony_ci	  across an IP network [RFC3931].
10062306a36Sopenharmony_ci
10162306a36Sopenharmony_ci	  This driver provides an ethernet virtual interface for each
10262306a36Sopenharmony_ci	  L2TP ethernet pseudowire instance. Standard Linux tools may
10362306a36Sopenharmony_ci	  be used to assign an IP address to the local virtual
10462306a36Sopenharmony_ci	  interface, or add the interface to a bridge.
10562306a36Sopenharmony_ci
10662306a36Sopenharmony_ci	  If you are using L2TPv3, you will almost certainly want to
10762306a36Sopenharmony_ci	  enable this option.
10862306a36Sopenharmony_ci
10962306a36Sopenharmony_ci	  To compile this driver as a module, choose M here. The module
11062306a36Sopenharmony_ci	  will be called l2tp_eth.
111