162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci#
362306a36Sopenharmony_ci# PPP network device configuration
462306a36Sopenharmony_ci#
562306a36Sopenharmony_ci
662306a36Sopenharmony_ciconfig PPP
762306a36Sopenharmony_ci	tristate "PPP (point-to-point protocol) support"
862306a36Sopenharmony_ci	select SLHC
962306a36Sopenharmony_ci	help
1062306a36Sopenharmony_ci	  PPP (Point to Point Protocol) is a newer and better SLIP.  It serves
1162306a36Sopenharmony_ci	  the same purpose: sending Internet traffic over telephone (and other
1262306a36Sopenharmony_ci	  serial) lines.  Ask your access provider if they support it, because
1362306a36Sopenharmony_ci	  otherwise you can't use it; most Internet access providers these
1462306a36Sopenharmony_ci	  days support PPP rather than SLIP.
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ci	  To use PPP, you need an additional program called pppd as described
1762306a36Sopenharmony_ci	  in the PPP-HOWTO, available at
1862306a36Sopenharmony_ci	  <http://www.tldp.org/docs.html#howto>.  Make sure that you have
1962306a36Sopenharmony_ci	  the version of pppd recommended in <file:Documentation/Changes>.
2062306a36Sopenharmony_ci	  The PPP option enlarges your kernel by about 16 KB.
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ci	  There are actually two versions of PPP: the traditional PPP for
2362306a36Sopenharmony_ci	  asynchronous lines, such as regular analog phone lines, and
2462306a36Sopenharmony_ci	  synchronous PPP which can be used over digital ISDN lines for
2562306a36Sopenharmony_ci	  example.  If you want to use PPP over phone lines or other
2662306a36Sopenharmony_ci	  asynchronous serial lines, you need to say Y (or M) here and also to
2762306a36Sopenharmony_ci	  the next option, "PPP support for async serial ports".  For PPP over
2862306a36Sopenharmony_ci	  synchronous lines, you should say Y (or M) here and to "Support
2962306a36Sopenharmony_ci	  synchronous PPP", below.
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ci	  If you said Y to "Version information on all symbols" above, then
3262306a36Sopenharmony_ci	  you cannot compile the PPP driver into the kernel; you can then only
3362306a36Sopenharmony_ci	  compile it as a module. To compile this driver as a module, choose M
3462306a36Sopenharmony_ci	  here. The module will be called ppp_generic.
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ciif PPP
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ciconfig PPP_BSDCOMP
3962306a36Sopenharmony_ci	tristate "PPP BSD-Compress compression"
4062306a36Sopenharmony_ci	depends on PPP
4162306a36Sopenharmony_ci	help
4262306a36Sopenharmony_ci	  Support for the BSD-Compress compression method for PPP, which uses
4362306a36Sopenharmony_ci	  the LZW compression method to compress each PPP packet before it is
4462306a36Sopenharmony_ci	  sent over the wire. The machine at the other end of the PPP link
4562306a36Sopenharmony_ci	  (usually your ISP) has to support the BSD-Compress compression
4662306a36Sopenharmony_ci	  method as well for this to be useful. Even if they don't support it,
4762306a36Sopenharmony_ci	  it is safe to say Y here.
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ci	  The PPP Deflate compression method ("PPP Deflate compression",
5062306a36Sopenharmony_ci	  above) is preferable to BSD-Compress, because it compresses better
5162306a36Sopenharmony_ci	  and is patent-free.
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ci	  Note that the BSD compression code will always be compiled as a
5462306a36Sopenharmony_ci	  module; it is called bsd_comp and will show up in the directory
5562306a36Sopenharmony_ci	  modules once you have said "make modules". If unsure, say N.
5662306a36Sopenharmony_ci
5762306a36Sopenharmony_ciconfig PPP_DEFLATE
5862306a36Sopenharmony_ci	tristate "PPP Deflate compression"
5962306a36Sopenharmony_ci	depends on PPP
6062306a36Sopenharmony_ci	select ZLIB_INFLATE
6162306a36Sopenharmony_ci	select ZLIB_DEFLATE
6262306a36Sopenharmony_ci	help
6362306a36Sopenharmony_ci	  Support for the Deflate compression method for PPP, which uses the
6462306a36Sopenharmony_ci	  Deflate algorithm (the same algorithm that gzip uses) to compress
6562306a36Sopenharmony_ci	  each PPP packet before it is sent over the wire.  The machine at the
6662306a36Sopenharmony_ci	  other end of the PPP link (usually your ISP) has to support the
6762306a36Sopenharmony_ci	  Deflate compression method as well for this to be useful.  Even if
6862306a36Sopenharmony_ci	  they don't support it, it is safe to say Y here.
6962306a36Sopenharmony_ci
7062306a36Sopenharmony_ci	  To compile this driver as a module, choose M here.
7162306a36Sopenharmony_ci
7262306a36Sopenharmony_ciconfig PPP_FILTER
7362306a36Sopenharmony_ci	bool "PPP filtering"
7462306a36Sopenharmony_ci	depends on PPP
7562306a36Sopenharmony_ci	help
7662306a36Sopenharmony_ci	  Say Y here if you want to be able to filter the packets passing over
7762306a36Sopenharmony_ci	  PPP interfaces.  This allows you to control which packets count as
7862306a36Sopenharmony_ci	  activity (i.e. which packets will reset the idle timer or bring up
7962306a36Sopenharmony_ci	  a demand-dialed link) and which packets are to be dropped entirely.
8062306a36Sopenharmony_ci	  You need to say Y here if you wish to use the pass-filter and
8162306a36Sopenharmony_ci	  active-filter options to pppd.
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_ci	  If unsure, say N.
8462306a36Sopenharmony_ci
8562306a36Sopenharmony_ciconfig PPP_MPPE
8662306a36Sopenharmony_ci	tristate "PPP MPPE compression (encryption)"
8762306a36Sopenharmony_ci	depends on PPP
8862306a36Sopenharmony_ci	select CRYPTO
8962306a36Sopenharmony_ci	select CRYPTO_SHA1
9062306a36Sopenharmony_ci	select CRYPTO_LIB_ARC4
9162306a36Sopenharmony_ci	help
9262306a36Sopenharmony_ci	  Support for the MPPE Encryption protocol, as employed by the
9362306a36Sopenharmony_ci	  Microsoft Point-to-Point Tunneling Protocol.
9462306a36Sopenharmony_ci
9562306a36Sopenharmony_ci	  See http://pptpclient.sourceforge.net/ for information on
9662306a36Sopenharmony_ci	  configuring PPTP clients and servers to utilize this method.
9762306a36Sopenharmony_ci
9862306a36Sopenharmony_ciconfig PPP_MULTILINK
9962306a36Sopenharmony_ci	bool "PPP multilink support"
10062306a36Sopenharmony_ci	depends on PPP
10162306a36Sopenharmony_ci	help
10262306a36Sopenharmony_ci	  PPP multilink is a protocol (defined in RFC 1990) which allows you
10362306a36Sopenharmony_ci	  to combine several (logical or physical) lines into one logical PPP
10462306a36Sopenharmony_ci	  connection, so that you can utilize your full bandwidth.
10562306a36Sopenharmony_ci
10662306a36Sopenharmony_ci	  This has to be supported at the other end as well and you need a
10762306a36Sopenharmony_ci	  version of the pppd daemon which understands the multilink protocol.
10862306a36Sopenharmony_ci
10962306a36Sopenharmony_ci	  If unsure, say N.
11062306a36Sopenharmony_ci
11162306a36Sopenharmony_ciconfig PPPOATM
11262306a36Sopenharmony_ci	tristate "PPP over ATM"
11362306a36Sopenharmony_ci	depends on ATM && PPP
11462306a36Sopenharmony_ci	help
11562306a36Sopenharmony_ci	  Support PPP (Point to Point Protocol) encapsulated in ATM frames.
11662306a36Sopenharmony_ci	  This implementation does not yet comply with section 8 of RFC2364,
11762306a36Sopenharmony_ci	  which can lead to bad results if the ATM peer loses state and
11862306a36Sopenharmony_ci	  changes its encapsulation unilaterally.
11962306a36Sopenharmony_ci
12062306a36Sopenharmony_ciconfig PPPOE
12162306a36Sopenharmony_ci	tristate "PPP over Ethernet"
12262306a36Sopenharmony_ci	depends on PPP
12362306a36Sopenharmony_ci	help
12462306a36Sopenharmony_ci	  Support for PPP over Ethernet.
12562306a36Sopenharmony_ci
12662306a36Sopenharmony_ci	  This driver requires the latest version of pppd from the CVS
12762306a36Sopenharmony_ci	  repository at cvs.samba.org.  Alternatively, see the
12862306a36Sopenharmony_ci	  RoaringPenguin package (<http://www.roaringpenguin.com/pppoe>)
12962306a36Sopenharmony_ci	  which contains instruction on how to use this driver (under
13062306a36Sopenharmony_ci	  the heading "Kernel mode PPPoE").
13162306a36Sopenharmony_ci
13262306a36Sopenharmony_cichoice
13362306a36Sopenharmony_ci	prompt "Number of PPPoE hash bits"
13462306a36Sopenharmony_ci	default PPPOE_HASH_BITS_4
13562306a36Sopenharmony_ci	depends on PPPOE
13662306a36Sopenharmony_ci	help
13762306a36Sopenharmony_ci		Select the number of bits used for hashing PPPoE interfaces.
13862306a36Sopenharmony_ci
13962306a36Sopenharmony_ci		Larger sizes reduces the risk of hash collisions at the cost
14062306a36Sopenharmony_ci		of slightly increased memory usage.
14162306a36Sopenharmony_ci
14262306a36Sopenharmony_ci		This hash table is on a per outer ethernet interface.
14362306a36Sopenharmony_ci
14462306a36Sopenharmony_ciconfig PPPOE_HASH_BITS_1
14562306a36Sopenharmony_ci	bool "1 bit (2 buckets)"
14662306a36Sopenharmony_ci
14762306a36Sopenharmony_ciconfig PPPOE_HASH_BITS_2
14862306a36Sopenharmony_ci	bool "2 bits (4 buckets)"
14962306a36Sopenharmony_ci
15062306a36Sopenharmony_ciconfig PPPOE_HASH_BITS_4
15162306a36Sopenharmony_ci	bool "4 bits (16 buckets)"
15262306a36Sopenharmony_ci
15362306a36Sopenharmony_ciconfig PPPOE_HASH_BITS_8
15462306a36Sopenharmony_ci	bool "8 bits (256 buckets)"
15562306a36Sopenharmony_ci
15662306a36Sopenharmony_ciendchoice
15762306a36Sopenharmony_ci
15862306a36Sopenharmony_ciconfig PPPOE_HASH_BITS
15962306a36Sopenharmony_ci	int
16062306a36Sopenharmony_ci	default 1 if PPPOE_HASH_BITS_1
16162306a36Sopenharmony_ci	default 2 if PPPOE_HASH_BITS_2
16262306a36Sopenharmony_ci	default 4 if PPPOE_HASH_BITS_4
16362306a36Sopenharmony_ci	default 8 if PPPOE_HASH_BITS_8
16462306a36Sopenharmony_ci	default 4
16562306a36Sopenharmony_ci
16662306a36Sopenharmony_ciconfig PPTP
16762306a36Sopenharmony_ci	tristate "PPP over IPv4 (PPTP)"
16862306a36Sopenharmony_ci	depends on PPP && NET_IPGRE_DEMUX
16962306a36Sopenharmony_ci	help
17062306a36Sopenharmony_ci	  Support for PPP over IPv4.(Point-to-Point Tunneling Protocol)
17162306a36Sopenharmony_ci
17262306a36Sopenharmony_ci	  This driver requires pppd plugin to work in client mode or
17362306a36Sopenharmony_ci	  modified pptpd (poptop) to work in server mode.
17462306a36Sopenharmony_ci	  See http://accel-pptp.sourceforge.net/ for information how to
17562306a36Sopenharmony_ci	  utilize this module.
17662306a36Sopenharmony_ci
17762306a36Sopenharmony_ciconfig PPPOL2TP
17862306a36Sopenharmony_ci	tristate "PPP over L2TP"
17962306a36Sopenharmony_ci	depends on L2TP && PPP
18062306a36Sopenharmony_ci	help
18162306a36Sopenharmony_ci	  Support for PPP-over-L2TP socket family. L2TP is a protocol
18262306a36Sopenharmony_ci	  used by ISPs and enterprises to tunnel PPP traffic over UDP
18362306a36Sopenharmony_ci	  tunnels. L2TP is replacing PPTP for VPN uses.
18462306a36Sopenharmony_ciif TTY
18562306a36Sopenharmony_ci
18662306a36Sopenharmony_ciconfig PPP_ASYNC
18762306a36Sopenharmony_ci	tristate "PPP support for async serial ports"
18862306a36Sopenharmony_ci	depends on PPP
18962306a36Sopenharmony_ci	select CRC_CCITT
19062306a36Sopenharmony_ci	help
19162306a36Sopenharmony_ci	  Say Y (or M) here if you want to be able to use PPP over standard
19262306a36Sopenharmony_ci	  asynchronous serial ports, such as COM1 or COM2 on a PC.  If you use
19362306a36Sopenharmony_ci	  a modem (not a synchronous or ISDN modem) to contact your ISP, you
19462306a36Sopenharmony_ci	  need this option.
19562306a36Sopenharmony_ci
19662306a36Sopenharmony_ci	  To compile this driver as a module, choose M here.
19762306a36Sopenharmony_ci
19862306a36Sopenharmony_ci	  If unsure, say Y.
19962306a36Sopenharmony_ci
20062306a36Sopenharmony_ciconfig PPP_SYNC_TTY
20162306a36Sopenharmony_ci	tristate "PPP support for sync tty ports"
20262306a36Sopenharmony_ci	depends on PPP
20362306a36Sopenharmony_ci	help
20462306a36Sopenharmony_ci	  Say Y (or M) here if you want to be able to use PPP over synchronous
20562306a36Sopenharmony_ci	  (HDLC) tty devices, such as the SyncLink adapter. These devices
20662306a36Sopenharmony_ci	  are often used for high-speed leased lines like T1/E1.
20762306a36Sopenharmony_ci
20862306a36Sopenharmony_ci	  To compile this driver as a module, choose M here.
20962306a36Sopenharmony_ci
21062306a36Sopenharmony_ciendif # TTY
21162306a36Sopenharmony_ci
21262306a36Sopenharmony_ciendif # PPP
213