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