xref: /linux/fs/nfs/Kconfig (revision fba2689ee77e63b05e203b3f26079ef915e55660)
1# SPDX-License-Identifier: GPL-2.0-only
2config NFS_FS
3	tristate "NFS client support"
4	depends on INET && FILE_LOCKING && MULTIUSER
5	select LOCKD
6	select SUNRPC
7	select CRYPTO
8	select CRYPTO_HASH
9	select XXHASH
10	select CRYPTO_XXHASH
11	select NFS_ACL_SUPPORT if NFS_V3_ACL
12	help
13	  Choose Y here if you want to access files residing on other
14	  computers using Sun's Network File System protocol.  To compile
15	  this file system support as a module, choose M here: the module
16	  will be called nfs.
17
18	  To mount file systems exported by NFS servers, you also need to
19	  install the user space mount.nfs command which can be found in
20	  the Linux nfs-utils package, available from http://linux-nfs.org/.
21	  Information about using the mount command is available in the
22	  mount(8) man page.  More detail about the Linux NFS client
23	  implementation is available via the nfs(5) man page.
24
25	  Below you can choose which versions of the NFS protocol are
26	  available in the kernel to mount NFS servers.  Support for NFS
27	  version 2 (RFC 1094) is always available when NFS_FS is selected.
28
29	  To configure a system which mounts its root file system via NFS
30	  at boot time, say Y here, select "Kernel level IP
31	  autoconfiguration" in the NETWORK menu, and select "Root file
32	  system on NFS" below.  You cannot compile this file system as a
33	  module in this case.
34
35	  If unsure, say N.
36
37config NFS_V2
38	tristate "NFS client support for NFS version 2"
39	depends on NFS_FS
40	default y
41	help
42	  This option enables support for version 2 of the NFS protocol
43	  (RFC 1094) in the kernel's NFS client.
44
45	  If unsure, say Y.
46
47config NFS_V3
48	tristate "NFS client support for NFS version 3"
49	depends on NFS_FS
50	default y
51	help
52	  This option enables support for version 3 of the NFS protocol
53	  (RFC 1813) in the kernel's NFS client.
54
55	  If unsure, say Y.
56
57config NFS_V3_ACL
58	bool "NFS client support for the NFSv3 ACL protocol extension"
59	depends on NFS_V3
60	help
61	  Some NFS servers support an auxiliary NFSv3 ACL protocol that
62	  Sun added to Solaris but never became an official part of the
63	  NFS version 3 protocol.  This protocol extension allows
64	  applications on NFS clients to manipulate POSIX Access Control
65	  Lists on files residing on NFS servers.  NFS servers enforce
66	  ACLs on local files whether this protocol is available or not.
67
68	  Choose Y here if your NFS server supports the Solaris NFSv3 ACL
69	  protocol extension and you want your NFS client to allow
70	  applications to access and modify ACLs on files on the server.
71
72	  Most NFS servers don't support the Solaris NFSv3 ACL protocol
73	  extension.  You can choose N here or specify the "noacl" mount
74	  option to prevent your NFS client from trying to use the NFSv3
75	  ACL protocol.
76
77	  If unsure, say N.
78
79config NFS_V4
80	tristate "NFS client support for NFS version 4"
81	depends on NFS_FS
82	select SUNRPC_GSS
83	select KEYS
84	help
85	  This option enables support for version 4 of the NFS protocol
86	  (RFC 3530) in the kernel's NFS client.
87
88	  To mount NFS servers using NFSv4, you also need to install user
89	  space programs which can be found in the Linux nfs-utils package,
90	  available from http://linux-nfs.org/.
91
92	  If unsure, say Y.
93
94config NFS_SWAP
95	bool "Provide swap over NFS support"
96	default n
97	depends on NFS_FS && SWAP
98	select SUNRPC_SWAP
99	help
100	  This option enables swapon to work on files located on NFS mounts.
101
102config NFS_V4_1
103	bool "NFS client support for NFSv4.1"
104	depends on NFS_V4
105	select SUNRPC_BACKCHANNEL
106	help
107	  This option enables support for minor version 1 of the NFSv4 protocol
108	  (RFC 5661) in the kernel's NFS client.
109
110	  If unsure, say N.
111
112config NFS_V4_2
113	bool "NFS client support for NFSv4.2"
114	depends on NFS_V4_1
115	help
116	  This option enables support for minor version 2 of the NFSv4 protocol
117	  in the kernel's NFS client.
118
119	  If unsure, say N.
120
121config PNFS_FILE_LAYOUT
122	tristate
123	depends on NFS_V4_1
124	default NFS_V4
125
126config PNFS_BLOCK
127	tristate
128	depends on NFS_V4_1 && BLK_DEV_DM
129	default NFS_V4
130
131config PNFS_FLEXFILE_LAYOUT
132	tristate
133	depends on NFS_V4_1 && NFS_V3
134	default NFS_V4
135
136config NFS_V4_1_IMPLEMENTATION_ID_DOMAIN
137	string "NFSv4.1 Implementation ID Domain"
138	depends on NFS_V4_1
139	default "kernel.org"
140	help
141	  This option defines the domain portion of the implementation ID that
142	  may be sent in the NFS exchange_id operation.  The value must be in
143	  the format of a DNS domain name and should be set to the DNS domain
144	  name of the distribution.
145	  If the NFS client is unchanged from the upstream kernel, this
146	  option should be set to the default "kernel.org".
147
148config NFS_V4_1_MIGRATION
149	bool "NFSv4.1 client support for migration"
150	depends on NFS_V4_1
151	default n
152	help
153	  This option makes the NFS client advertise to NFSv4.1 servers that
154          it can support NFSv4 migration.
155
156          The NFSv4.1 pieces of the Linux NFSv4 migration implementation are
157          still experimental.  If you are not an NFSv4 developer, say N here.
158
159config NFS_V4_SECURITY_LABEL
160	bool
161	depends on NFS_V4_2 && SECURITY
162	default y
163
164config ROOT_NFS
165	bool "Root file system on NFS"
166	depends on NFS_FS=y && IP_PNP
167	help
168	  If you want your system to mount its root file system via NFS,
169	  choose Y here.  This is common practice for managing systems
170	  without local permanent storage.  For details, read
171	  <file:Documentation/admin-guide/nfs/nfsroot.rst>.
172
173	  Most people say N here.
174
175config NFS_FSCACHE
176	bool "Provide NFS client caching support"
177	depends on NFS_FS=m && FSCACHE || NFS_FS=y && FSCACHE=y
178	help
179	  Say Y here if you want NFS data to be cached locally on disc through
180	  the general filesystem cache manager
181
182config NFS_USE_LEGACY_DNS
183	bool "Use the legacy NFS DNS resolver"
184	depends on NFS_V4
185	help
186	  The kernel now provides a method for translating a host name into an
187	  IP address.  Select Y here if you would rather use your own DNS
188	  resolver script.
189
190	  If unsure, say N
191
192config NFS_USE_KERNEL_DNS
193	bool
194	depends on NFS_V4 && !NFS_USE_LEGACY_DNS
195	select DNS_RESOLVER
196	default y
197
198config NFS_DEBUG
199	bool
200	depends on NFS_FS && SUNRPC_DEBUG
201	select CRC32
202	default y
203
204config NFS_DISABLE_UDP_SUPPORT
205       bool "NFS: Disable NFS UDP protocol support"
206       depends on NFS_FS
207       default y
208       help
209	 Choose Y here to disable the use of NFS over UDP. NFS over UDP
210	 on modern networks (1Gb+) can lead to data corruption caused by
211	 fragmentation during high loads.
212
213config NFS_V4_2_READ_PLUS
214	bool "NFS: Enable support for the NFSv4.2 READ_PLUS operation"
215	depends on NFS_V4_2
216	default n
217	help
218	 This is intended for developers only. The READ_PLUS operation has
219	 been shown to have issues under specific conditions and should not
220	 be used in production.
221