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