162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ciconfig SUNRPC
362306a36Sopenharmony_ci	tristate
462306a36Sopenharmony_ci	depends on MULTIUSER
562306a36Sopenharmony_ci
662306a36Sopenharmony_ciconfig SUNRPC_GSS
762306a36Sopenharmony_ci	tristate
862306a36Sopenharmony_ci	select OID_REGISTRY
962306a36Sopenharmony_ci	depends on MULTIUSER
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ciconfig SUNRPC_BACKCHANNEL
1262306a36Sopenharmony_ci	bool
1362306a36Sopenharmony_ci	depends on SUNRPC
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ciconfig SUNRPC_SWAP
1662306a36Sopenharmony_ci	bool
1762306a36Sopenharmony_ci	depends on SUNRPC
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ciconfig RPCSEC_GSS_KRB5
2062306a36Sopenharmony_ci	tristate "Secure RPC: Kerberos V mechanism"
2162306a36Sopenharmony_ci	depends on SUNRPC && CRYPTO
2262306a36Sopenharmony_ci	default y
2362306a36Sopenharmony_ci	select SUNRPC_GSS
2462306a36Sopenharmony_ci	select CRYPTO_SKCIPHER
2562306a36Sopenharmony_ci	select CRYPTO_HASH
2662306a36Sopenharmony_ci	help
2762306a36Sopenharmony_ci	  Choose Y here to enable Secure RPC using the Kerberos version 5
2862306a36Sopenharmony_ci	  GSS-API mechanism (RFC 1964).
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci	  Secure RPC calls with Kerberos require an auxiliary user-space
3162306a36Sopenharmony_ci	  daemon which may be found in the Linux nfs-utils package
3262306a36Sopenharmony_ci	  available from http://linux-nfs.org/.  In addition, user-space
3362306a36Sopenharmony_ci	  Kerberos support should be installed.
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ci	  If unsure, say Y.
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ciconfig RPCSEC_GSS_KRB5_ENCTYPES_AES_SHA1
3862306a36Sopenharmony_ci	bool "Enable Kerberos enctypes based on AES and SHA-1"
3962306a36Sopenharmony_ci	depends on RPCSEC_GSS_KRB5
4062306a36Sopenharmony_ci	depends on CRYPTO_CBC && CRYPTO_CTS
4162306a36Sopenharmony_ci	depends on CRYPTO_HMAC && CRYPTO_SHA1
4262306a36Sopenharmony_ci	depends on CRYPTO_AES
4362306a36Sopenharmony_ci	default y
4462306a36Sopenharmony_ci	help
4562306a36Sopenharmony_ci	  Choose Y to enable the use of Kerberos 5 encryption types
4662306a36Sopenharmony_ci	  that utilize Advanced Encryption Standard (AES) ciphers and
4762306a36Sopenharmony_ci	  SHA-1 digests. These include aes128-cts-hmac-sha1-96 and
4862306a36Sopenharmony_ci	  aes256-cts-hmac-sha1-96.
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ciconfig RPCSEC_GSS_KRB5_ENCTYPES_CAMELLIA
5162306a36Sopenharmony_ci	bool "Enable Kerberos encryption types based on Camellia and CMAC"
5262306a36Sopenharmony_ci	depends on RPCSEC_GSS_KRB5
5362306a36Sopenharmony_ci	depends on CRYPTO_CBC && CRYPTO_CTS && CRYPTO_CAMELLIA
5462306a36Sopenharmony_ci	depends on CRYPTO_CMAC
5562306a36Sopenharmony_ci	default n
5662306a36Sopenharmony_ci	help
5762306a36Sopenharmony_ci	  Choose Y to enable the use of Kerberos 5 encryption types
5862306a36Sopenharmony_ci	  that utilize Camellia ciphers (RFC 3713) and CMAC digests
5962306a36Sopenharmony_ci	  (NIST Special Publication 800-38B). These include
6062306a36Sopenharmony_ci	  camellia128-cts-cmac and camellia256-cts-cmac.
6162306a36Sopenharmony_ci
6262306a36Sopenharmony_ciconfig RPCSEC_GSS_KRB5_ENCTYPES_AES_SHA2
6362306a36Sopenharmony_ci	bool "Enable Kerberos enctypes based on AES and SHA-2"
6462306a36Sopenharmony_ci	depends on RPCSEC_GSS_KRB5
6562306a36Sopenharmony_ci	depends on CRYPTO_CBC && CRYPTO_CTS
6662306a36Sopenharmony_ci	depends on CRYPTO_HMAC && CRYPTO_SHA256 && CRYPTO_SHA512
6762306a36Sopenharmony_ci	depends on CRYPTO_AES
6862306a36Sopenharmony_ci	default n
6962306a36Sopenharmony_ci	help
7062306a36Sopenharmony_ci	  Choose Y to enable the use of Kerberos 5 encryption types
7162306a36Sopenharmony_ci	  that utilize Advanced Encryption Standard (AES) ciphers and
7262306a36Sopenharmony_ci	  SHA-2 digests. These include aes128-cts-hmac-sha256-128 and
7362306a36Sopenharmony_ci	  aes256-cts-hmac-sha384-192.
7462306a36Sopenharmony_ci
7562306a36Sopenharmony_ciconfig RPCSEC_GSS_KRB5_KUNIT_TEST
7662306a36Sopenharmony_ci	tristate "KUnit tests for RPCSEC GSS Kerberos" if !KUNIT_ALL_TESTS
7762306a36Sopenharmony_ci	depends on RPCSEC_GSS_KRB5 && KUNIT
7862306a36Sopenharmony_ci	default KUNIT_ALL_TESTS
7962306a36Sopenharmony_ci	help
8062306a36Sopenharmony_ci	  This builds the KUnit tests for RPCSEC GSS Kerberos 5.
8162306a36Sopenharmony_ci
8262306a36Sopenharmony_ci	  KUnit tests run during boot and output the results to the debug
8362306a36Sopenharmony_ci	  log in TAP format (https://testanything.org/). Only useful for
8462306a36Sopenharmony_ci	  kernel devs running KUnit test harness and are not for inclusion
8562306a36Sopenharmony_ci	  into a production build.
8662306a36Sopenharmony_ci
8762306a36Sopenharmony_ci	  For more information on KUnit and unit tests in general, refer
8862306a36Sopenharmony_ci	  to the KUnit documentation in Documentation/dev-tools/kunit/.
8962306a36Sopenharmony_ci
9062306a36Sopenharmony_ciconfig SUNRPC_DEBUG
9162306a36Sopenharmony_ci	bool "RPC: Enable dprintk debugging"
9262306a36Sopenharmony_ci	depends on SUNRPC && SYSCTL
9362306a36Sopenharmony_ci	select DEBUG_FS
9462306a36Sopenharmony_ci	help
9562306a36Sopenharmony_ci	  This option enables a sysctl-based debugging interface
9662306a36Sopenharmony_ci	  that is be used by the 'rpcdebug' utility to turn on or off
9762306a36Sopenharmony_ci	  logging of different aspects of the kernel RPC activity.
9862306a36Sopenharmony_ci
9962306a36Sopenharmony_ci	  Disabling this option will make your kernel slightly smaller,
10062306a36Sopenharmony_ci	  but makes troubleshooting NFS issues significantly harder.
10162306a36Sopenharmony_ci
10262306a36Sopenharmony_ci	  If unsure, say Y.
10362306a36Sopenharmony_ci
10462306a36Sopenharmony_ciconfig SUNRPC_XPRT_RDMA
10562306a36Sopenharmony_ci	tristate "RPC-over-RDMA transport"
10662306a36Sopenharmony_ci	depends on SUNRPC && INFINIBAND && INFINIBAND_ADDR_TRANS
10762306a36Sopenharmony_ci	default SUNRPC && INFINIBAND
10862306a36Sopenharmony_ci	select SG_POOL
10962306a36Sopenharmony_ci	help
11062306a36Sopenharmony_ci	  This option allows the NFS client and server to use RDMA
11162306a36Sopenharmony_ci	  transports (InfiniBand, iWARP, or RoCE).
11262306a36Sopenharmony_ci
11362306a36Sopenharmony_ci	  To compile this support as a module, choose M. The module
11462306a36Sopenharmony_ci	  will be called rpcrdma.ko.
11562306a36Sopenharmony_ci
11662306a36Sopenharmony_ci	  If unsure, or you know there is no RDMA capability on your
11762306a36Sopenharmony_ci	  hardware platform, say N.
118