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