xref: /linux/drivers/net/ppp/Kconfig (revision 779fae61a3c84bf5a086509558eb5b432fa5ab62)
1# SPDX-License-Identifier: GPL-2.0-only
2#
3# PPP network device configuration
4#
5
6config PPP
7	tristate "PPP (point-to-point protocol) support"
8	select SLHC
9	help
10	  PPP (Point to Point Protocol) is a newer and better SLIP.  It serves
11	  the same purpose: sending Internet traffic over telephone (and other
12	  serial) lines.  Ask your access provider if they support it, because
13	  otherwise you can't use it; most Internet access providers these
14	  days support PPP rather than SLIP.
15
16	  To use PPP, you need an additional program called pppd, available at
17	  <https://ppp.samba.org>.  Make sure that you have the version of pppd
18	  recommended in <file:Documentation/Changes>.
19	  The PPP option enlarges your kernel by about 16 KB.
20
21	  There are actually two versions of PPP: the traditional PPP for
22	  asynchronous lines, such as regular analog phone lines, and
23	  synchronous PPP which can be used over digital ISDN lines for
24	  example.  If you want to use PPP over phone lines or other
25	  asynchronous serial lines, you need to say Y (or M) here and also to
26	  the next option, "PPP support for async serial ports".  For PPP over
27	  synchronous lines, you should say Y (or M) here and to "Support
28	  synchronous PPP", below.
29
30	  If you said Y to "Version information on all symbols" above, then
31	  you cannot compile the PPP driver into the kernel; you can then only
32	  compile it as a module. To compile this driver as a module, choose M
33	  here. The module will be called ppp_generic.
34
35if PPP
36
37config PPP_BSDCOMP
38	tristate "PPP BSD-Compress compression"
39	help
40	  Support for the BSD-Compress compression method for PPP, which uses
41	  the LZW compression method to compress each PPP packet before it is
42	  sent over the wire. The machine at the other end of the PPP link
43	  (usually your ISP) has to support the BSD-Compress compression
44	  method as well for this to be useful. Even if they don't support it,
45	  it is safe to say Y here.
46
47	  The PPP Deflate compression method ("PPP Deflate compression",
48	  above) is preferable to BSD-Compress, because it compresses better
49	  and is patent-free.
50
51	  Note that the BSD compression code will always be compiled as a
52	  module; it is called bsd_comp and will show up in the directory
53	  modules once you have said "make modules". If unsure, say N.
54
55config PPP_DEFLATE
56	tristate "PPP Deflate compression"
57	select ZLIB_INFLATE
58	select ZLIB_DEFLATE
59	help
60	  Support for the Deflate compression method for PPP, which uses the
61	  Deflate algorithm (the same algorithm that gzip uses) to compress
62	  each PPP packet before it is sent over the wire.  The machine at the
63	  other end of the PPP link (usually your ISP) has to support the
64	  Deflate compression method as well for this to be useful.  Even if
65	  they don't support it, it is safe to say Y here.
66
67	  To compile this driver as a module, choose M here.
68
69config PPP_FILTER
70	bool "PPP filtering"
71	help
72	  Say Y here if you want to be able to filter the packets passing over
73	  PPP interfaces.  This allows you to control which packets count as
74	  activity (i.e. which packets will reset the idle timer or bring up
75	  a demand-dialed link) and which packets are to be dropped entirely.
76	  You need to say Y here if you wish to use the pass-filter and
77	  active-filter options to pppd.
78
79	  If unsure, say N.
80
81config PPP_MPPE
82	tristate "PPP MPPE compression (encryption)"
83	select CRYPTO_LIB_ARC4
84	select CRYPTO_LIB_SHA1
85	help
86	  Support for the MPPE Encryption protocol, as employed by the
87	  Microsoft Point-to-Point Tunneling Protocol.
88
89	  See http://pptpclient.sourceforge.net/ for information on
90	  configuring PPTP clients and servers to utilize this method.
91
92config PPP_MULTILINK
93	bool "PPP multilink support"
94	help
95	  PPP multilink is a protocol (defined in RFC 1990) which allows you
96	  to combine several (logical or physical) lines into one logical PPP
97	  connection, so that you can utilize your full bandwidth.
98
99	  This has to be supported at the other end as well and you need a
100	  version of the pppd daemon which understands the multilink protocol.
101
102	  If unsure, say N.
103
104config PPPOATM
105	tristate "PPP over ATM"
106	depends on ATM
107	help
108	  Support PPP (Point to Point Protocol) encapsulated in ATM frames.
109	  This implementation does not yet comply with section 8 of RFC2364,
110	  which can lead to bad results if the ATM peer loses state and
111	  changes its encapsulation unilaterally.
112
113config PPPOE
114	tristate "PPP over Ethernet"
115	help
116	  Support for PPP over Ethernet.
117
118	  To work in client mode, pppd version 2.4.2 or later is required.
119	  To work in server mode, the pppoe-server command from the RP-PPPoE
120	  package is also required, available at
121	  <https://dianne.skoll.ca/projects/rp-pppoe/>.
122
123choice
124	prompt "Number of PPPoE hash bits"
125	default PPPOE_HASH_BITS_4
126	depends on PPPOE
127	help
128		Select the number of bits used for hashing PPPoE interfaces.
129
130		Larger sizes reduces the risk of hash collisions at the cost
131		of slightly increased memory usage.
132
133		This hash table is on a per outer ethernet interface.
134
135config PPPOE_HASH_BITS_1
136	bool "1 bit (2 buckets)"
137
138config PPPOE_HASH_BITS_2
139	bool "2 bits (4 buckets)"
140
141config PPPOE_HASH_BITS_4
142	bool "4 bits (16 buckets)"
143
144config PPPOE_HASH_BITS_8
145	bool "8 bits (256 buckets)"
146
147endchoice
148
149config PPPOE_HASH_BITS
150	int
151	default 1 if PPPOE_HASH_BITS_1
152	default 2 if PPPOE_HASH_BITS_2
153	default 4 if PPPOE_HASH_BITS_4
154	default 8 if PPPOE_HASH_BITS_8
155	default 4
156
157config PPTP
158	tristate "PPP over IPv4 (PPTP)"
159	depends on NET_IPGRE_DEMUX
160	help
161	  Support for PPP over IPv4.(Point-to-Point Tunneling Protocol)
162
163	  This driver requires pppd plugin to work in client mode or
164	  modified pptpd (poptop) to work in server mode.
165	  See http://accel-pptp.sourceforge.net/ for information how to
166	  utilize this module.
167
168config PPPOL2TP
169	tristate "PPP over L2TP"
170	depends on L2TP
171	help
172	  Support for PPP-over-L2TP socket family. L2TP is a protocol
173	  used by ISPs and enterprises to tunnel PPP traffic over UDP
174	  tunnels. L2TP is replacing PPTP for VPN uses.
175if TTY
176
177config PPP_ASYNC
178	tristate "PPP support for async serial ports"
179	select CRC_CCITT
180	help
181	  Say Y (or M) here if you want to be able to use PPP over standard
182	  asynchronous serial ports, such as COM1 or COM2 on a PC.  If you use
183	  a modem (not a synchronous or ISDN modem) to contact your ISP, you
184	  need this option.
185
186	  To compile this driver as a module, choose M here.
187
188	  If unsure, say Y.
189
190config PPP_SYNC_TTY
191	tristate "PPP support for sync tty ports"
192	help
193	  Say Y (or M) here if you want to be able to use PPP over synchronous
194	  (HDLC) tty devices, such as the SyncLink adapter. These devices
195	  are often used for high-speed leased lines like T1/E1.
196
197	  To compile this driver as a module, choose M here.
198
199endif # TTY
200
201endif # PPP
202