xref: /linux/net/sunrpc/Kconfig (revision a1c613ae4c322ddd58d5a8539dbfba2a0380a8c0)
1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only
29098c24fSAlexey Dobriyanconfig SUNRPC
39098c24fSAlexey Dobriyan	tristate
42813893fSIulia Manda	depends on MULTIUSER
59098c24fSAlexey Dobriyan
69098c24fSAlexey Dobriyanconfig SUNRPC_GSS
79098c24fSAlexey Dobriyan	tristate
8f783288fSChuck Lever	select OID_REGISTRY
92813893fSIulia Manda	depends on MULTIUSER
109098c24fSAlexey Dobriyan
119e00abc3STrond Myklebustconfig SUNRPC_BACKCHANNEL
129e00abc3STrond Myklebust	bool
139e00abc3STrond Myklebust	depends on SUNRPC
149e00abc3STrond Myklebust
15a564b8f0SMel Gormanconfig SUNRPC_SWAP
16a564b8f0SMel Gorman	bool
17a564b8f0SMel Gorman	depends on SUNRPC
18a564b8f0SMel Gorman
199098c24fSAlexey Dobriyanconfig RPCSEC_GSS_KRB5
20e3b2854fSTrond Myklebust	tristate "Secure RPC: Kerberos V mechanism"
21df486a25STrond Myklebust	depends on SUNRPC && CRYPTO
22df486a25STrond Myklebust	default y
239098c24fSAlexey Dobriyan	select SUNRPC_GSS
24dfe9a123SChuck Lever	select CRYPTO_SKCIPHER
25dfe9a123SChuck Lever	select CRYPTO_HASH
269098c24fSAlexey Dobriyan	help
279098c24fSAlexey Dobriyan	  Choose Y here to enable Secure RPC using the Kerberos version 5
289098c24fSAlexey Dobriyan	  GSS-API mechanism (RFC 1964).
299098c24fSAlexey Dobriyan
309098c24fSAlexey Dobriyan	  Secure RPC calls with Kerberos require an auxiliary user-space
319098c24fSAlexey Dobriyan	  daemon which may be found in the Linux nfs-utils package
329098c24fSAlexey Dobriyan	  available from http://linux-nfs.org/.  In addition, user-space
339098c24fSAlexey Dobriyan	  Kerberos support should be installed.
349098c24fSAlexey Dobriyan
35df486a25STrond Myklebust	  If unsure, say Y.
36e27d359eSTrond Myklebust
37dfe9a123SChuck Leverconfig RPCSEC_GSS_KRB5_ENCTYPES_AES_SHA1
38dfe9a123SChuck Lever	bool "Enable Kerberos enctypes based on AES and SHA-1"
39dfe9a123SChuck Lever	depends on RPCSEC_GSS_KRB5
40dfe9a123SChuck Lever	depends on CRYPTO_CBC && CRYPTO_CTS
41dfe9a123SChuck Lever	depends on CRYPTO_HMAC && CRYPTO_SHA1
42dfe9a123SChuck Lever	depends on CRYPTO_AES
43dfe9a123SChuck Lever	default y
44dfe9a123SChuck Lever	help
45dfe9a123SChuck Lever	  Choose Y to enable the use of Kerberos 5 encryption types
46dfe9a123SChuck Lever	  that utilize Advanced Encryption Standard (AES) ciphers and
47dfe9a123SChuck Lever	  SHA-1 digests. These include aes128-cts-hmac-sha1-96 and
48dfe9a123SChuck Lever	  aes256-cts-hmac-sha1-96.
49fe9a2705SChuck Lever
503394682fSChuck Leverconfig RPCSEC_GSS_KRB5_ENCTYPES_CAMELLIA
513394682fSChuck Lever	bool "Enable Kerberos encryption types based on Camellia and CMAC"
523394682fSChuck Lever	depends on RPCSEC_GSS_KRB5
533394682fSChuck Lever	depends on CRYPTO_CBC && CRYPTO_CTS && CRYPTO_CAMELLIA
543394682fSChuck Lever	depends on CRYPTO_CMAC
553394682fSChuck Lever	default n
563394682fSChuck Lever	help
573394682fSChuck Lever	  Choose Y to enable the use of Kerberos 5 encryption types
583394682fSChuck Lever	  that utilize Camellia ciphers (RFC 3713) and CMAC digests
593394682fSChuck Lever	  (NIST Special Publication 800-38B). These include
603394682fSChuck Lever	  camellia128-cts-cmac and camellia256-cts-cmac.
613394682fSChuck Lever
62a40cf753SChuck Leverconfig RPCSEC_GSS_KRB5_ENCTYPES_AES_SHA2
63a40cf753SChuck Lever	bool "Enable Kerberos enctypes based on AES and SHA-2"
64a40cf753SChuck Lever	depends on RPCSEC_GSS_KRB5
65a40cf753SChuck Lever	depends on CRYPTO_CBC && CRYPTO_CTS
66a40cf753SChuck Lever	depends on CRYPTO_HMAC && CRYPTO_SHA256 && CRYPTO_SHA512
67a40cf753SChuck Lever	depends on CRYPTO_AES
68a40cf753SChuck Lever	default n
69a40cf753SChuck Lever	help
70a40cf753SChuck Lever	  Choose Y to enable the use of Kerberos 5 encryption types
71a40cf753SChuck Lever	  that utilize Advanced Encryption Standard (AES) ciphers and
72a40cf753SChuck Lever	  SHA-2 digests. These include aes128-cts-hmac-sha256-128 and
73a40cf753SChuck Lever	  aes256-cts-hmac-sha384-192.
74a40cf753SChuck Lever
75*eebd8c2dSChuck Leverconfig RPCSEC_GSS_KRB5_KUNIT_TEST
76*eebd8c2dSChuck Lever	tristate "KUnit tests for RPCSEC GSS Kerberos" if !KUNIT_ALL_TESTS
77*eebd8c2dSChuck Lever	depends on RPCSEC_GSS_KRB5 && KUNIT
78*eebd8c2dSChuck Lever	default KUNIT_ALL_TESTS
79*eebd8c2dSChuck Lever	help
80*eebd8c2dSChuck Lever	  This builds the KUnit tests for RPCSEC GSS Kerberos 5.
81*eebd8c2dSChuck Lever
82*eebd8c2dSChuck Lever	  KUnit tests run during boot and output the results to the debug
83*eebd8c2dSChuck Lever	  log in TAP format (https://testanything.org/). Only useful for
84*eebd8c2dSChuck Lever	  kernel devs running KUnit test harness and are not for inclusion
85*eebd8c2dSChuck Lever	  into a production build.
86*eebd8c2dSChuck Lever
87*eebd8c2dSChuck Lever	  For more information on KUnit and unit tests in general, refer
88*eebd8c2dSChuck Lever	  to the KUnit documentation in Documentation/dev-tools/kunit/.
89*eebd8c2dSChuck Lever
90e27d359eSTrond Myklebustconfig SUNRPC_DEBUG
91e27d359eSTrond Myklebust	bool "RPC: Enable dprintk debugging"
92e27d359eSTrond Myklebust	depends on SUNRPC && SYSCTL
93b4b9d2ccSJeff Layton	select DEBUG_FS
94e27d359eSTrond Myklebust	help
95e27d359eSTrond Myklebust	  This option enables a sysctl-based debugging interface
96e27d359eSTrond Myklebust	  that is be used by the 'rpcdebug' utility to turn on or off
97e27d359eSTrond Myklebust	  logging of different aspects of the kernel RPC activity.
98e27d359eSTrond Myklebust
99e27d359eSTrond Myklebust	  Disabling this option will make your kernel slightly smaller,
100e27d359eSTrond Myklebust	  but makes troubleshooting NFS issues significantly harder.
101e27d359eSTrond Myklebust
102e27d359eSTrond Myklebust	  If unsure, say Y.
1032e8c12e1SJeff Layton
104ffe1f0dfSChuck Leverconfig SUNRPC_XPRT_RDMA
105ffe1f0dfSChuck Lever	tristate "RPC-over-RDMA transport"
106533d1daeSArnd Bergmann	depends on SUNRPC && INFINIBAND && INFINIBAND_ADDR_TRANS
1072e8c12e1SJeff Layton	default SUNRPC && INFINIBAND
108f13193f5SChuck Lever	select SG_POOL
1092e8c12e1SJeff Layton	help
110ffe1f0dfSChuck Lever	  This option allows the NFS client and server to use RDMA
111ffe1f0dfSChuck Lever	  transports (InfiniBand, iWARP, or RoCE).
1122e8c12e1SJeff Layton
113ffe1f0dfSChuck Lever	  To compile this support as a module, choose M. The module
114ffe1f0dfSChuck Lever	  will be called rpcrdma.ko.
1152e8c12e1SJeff Layton
116ffe1f0dfSChuck Lever	  If unsure, or you know there is no RDMA capability on your
117ffe1f0dfSChuck Lever	  hardware platform, say N.
118