18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
28c2ecf20Sopenharmony_ciconfig NFSD
38c2ecf20Sopenharmony_ci	tristate "NFS server support"
48c2ecf20Sopenharmony_ci	depends on INET
58c2ecf20Sopenharmony_ci	depends on FILE_LOCKING
68c2ecf20Sopenharmony_ci	depends on FSNOTIFY
78c2ecf20Sopenharmony_ci	select LOCKD
88c2ecf20Sopenharmony_ci	select SUNRPC
98c2ecf20Sopenharmony_ci	select EXPORTFS
108c2ecf20Sopenharmony_ci	select NFS_ACL_SUPPORT if NFSD_V2_ACL
118c2ecf20Sopenharmony_ci	depends on MULTIUSER
128c2ecf20Sopenharmony_ci	help
138c2ecf20Sopenharmony_ci	  Choose Y here if you want to allow other computers to access
148c2ecf20Sopenharmony_ci	  files residing on this system using Sun's Network File System
158c2ecf20Sopenharmony_ci	  protocol.  To compile the NFS server support as a module,
168c2ecf20Sopenharmony_ci	  choose M here: the module will be called nfsd.
178c2ecf20Sopenharmony_ci
188c2ecf20Sopenharmony_ci	  You may choose to use a user-space NFS server instead, in which
198c2ecf20Sopenharmony_ci	  case you can choose N here.
208c2ecf20Sopenharmony_ci
218c2ecf20Sopenharmony_ci	  To export local file systems using NFS, you also need to install
228c2ecf20Sopenharmony_ci	  user space programs which can be found in the Linux nfs-utils
238c2ecf20Sopenharmony_ci	  package, available from http://linux-nfs.org/.  More detail about
248c2ecf20Sopenharmony_ci	  the Linux NFS server implementation is available via the
258c2ecf20Sopenharmony_ci	  exports(5) man page.
268c2ecf20Sopenharmony_ci
278c2ecf20Sopenharmony_ci	  Below you can choose which versions of the NFS protocol are
288c2ecf20Sopenharmony_ci	  available to clients mounting the NFS server on this system.
298c2ecf20Sopenharmony_ci	  Support for NFS version 2 (RFC 1094) is always available when
308c2ecf20Sopenharmony_ci	  CONFIG_NFSD is selected.
318c2ecf20Sopenharmony_ci
328c2ecf20Sopenharmony_ci	  If unsure, say N.
338c2ecf20Sopenharmony_ci
348c2ecf20Sopenharmony_ciconfig NFSD_V2_ACL
358c2ecf20Sopenharmony_ci	bool
368c2ecf20Sopenharmony_ci	depends on NFSD
378c2ecf20Sopenharmony_ci
388c2ecf20Sopenharmony_ciconfig NFSD_V3
398c2ecf20Sopenharmony_ci	bool "NFS server support for NFS version 3"
408c2ecf20Sopenharmony_ci	depends on NFSD
418c2ecf20Sopenharmony_ci	help
428c2ecf20Sopenharmony_ci	  This option enables support in your system's NFS server for
438c2ecf20Sopenharmony_ci	  version 3 of the NFS protocol (RFC 1813).
448c2ecf20Sopenharmony_ci
458c2ecf20Sopenharmony_ci	  If unsure, say Y.
468c2ecf20Sopenharmony_ci
478c2ecf20Sopenharmony_ciconfig NFSD_V3_ACL
488c2ecf20Sopenharmony_ci	bool "NFS server support for the NFSv3 ACL protocol extension"
498c2ecf20Sopenharmony_ci	depends on NFSD_V3
508c2ecf20Sopenharmony_ci	select NFSD_V2_ACL
518c2ecf20Sopenharmony_ci	help
528c2ecf20Sopenharmony_ci	  Solaris NFS servers support an auxiliary NFSv3 ACL protocol that
538c2ecf20Sopenharmony_ci	  never became an official part of the NFS version 3 protocol.
548c2ecf20Sopenharmony_ci	  This protocol extension allows applications on NFS clients to
558c2ecf20Sopenharmony_ci	  manipulate POSIX Access Control Lists on files residing on NFS
568c2ecf20Sopenharmony_ci	  servers.  NFS servers enforce POSIX ACLs on local files whether
578c2ecf20Sopenharmony_ci	  this protocol is available or not.
588c2ecf20Sopenharmony_ci
598c2ecf20Sopenharmony_ci	  This option enables support in your system's NFS server for the
608c2ecf20Sopenharmony_ci	  NFSv3 ACL protocol extension allowing NFS clients to manipulate
618c2ecf20Sopenharmony_ci	  POSIX ACLs on files exported by your system's NFS server.  NFS
628c2ecf20Sopenharmony_ci	  clients which support the Solaris NFSv3 ACL protocol can then
638c2ecf20Sopenharmony_ci	  access and modify ACLs on your NFS server.
648c2ecf20Sopenharmony_ci
658c2ecf20Sopenharmony_ci	  To store ACLs on your NFS server, you also need to enable ACL-
668c2ecf20Sopenharmony_ci	  related CONFIG options for your local file systems of choice.
678c2ecf20Sopenharmony_ci
688c2ecf20Sopenharmony_ci	  If unsure, say N.
698c2ecf20Sopenharmony_ci
708c2ecf20Sopenharmony_ciconfig NFSD_V4
718c2ecf20Sopenharmony_ci	bool "NFS server support for NFS version 4"
728c2ecf20Sopenharmony_ci	depends on NFSD && PROC_FS
738c2ecf20Sopenharmony_ci	select NFSD_V3
748c2ecf20Sopenharmony_ci	select FS_POSIX_ACL
758c2ecf20Sopenharmony_ci	select SUNRPC_GSS
768c2ecf20Sopenharmony_ci	select CRYPTO
778c2ecf20Sopenharmony_ci	select CRYPTO_MD5
788c2ecf20Sopenharmony_ci	select CRYPTO_SHA256
798c2ecf20Sopenharmony_ci	select GRACE_PERIOD
808c2ecf20Sopenharmony_ci	help
818c2ecf20Sopenharmony_ci	  This option enables support in your system's NFS server for
828c2ecf20Sopenharmony_ci	  version 4 of the NFS protocol (RFC 3530).
838c2ecf20Sopenharmony_ci
848c2ecf20Sopenharmony_ci	  To export files using NFSv4, you need to install additional user
858c2ecf20Sopenharmony_ci	  space programs which can be found in the Linux nfs-utils package,
868c2ecf20Sopenharmony_ci	  available from http://linux-nfs.org/.
878c2ecf20Sopenharmony_ci
888c2ecf20Sopenharmony_ci	  If unsure, say N.
898c2ecf20Sopenharmony_ci
908c2ecf20Sopenharmony_ciconfig NFSD_PNFS
918c2ecf20Sopenharmony_ci	bool
928c2ecf20Sopenharmony_ci
938c2ecf20Sopenharmony_ciconfig NFSD_BLOCKLAYOUT
948c2ecf20Sopenharmony_ci	bool "NFSv4.1 server support for pNFS block layouts"
958c2ecf20Sopenharmony_ci	depends on NFSD_V4 && BLOCK
968c2ecf20Sopenharmony_ci	select NFSD_PNFS
978c2ecf20Sopenharmony_ci	select EXPORTFS_BLOCK_OPS
988c2ecf20Sopenharmony_ci	help
998c2ecf20Sopenharmony_ci	  This option enables support for the exporting pNFS block layouts
1008c2ecf20Sopenharmony_ci	  in the kernel's NFS server. The pNFS block layout enables NFS
1018c2ecf20Sopenharmony_ci	  clients to directly perform I/O to block devices accesible to both
1028c2ecf20Sopenharmony_ci	  the server and the clients.  See RFC 5663 for more details.
1038c2ecf20Sopenharmony_ci
1048c2ecf20Sopenharmony_ci	  If unsure, say N.
1058c2ecf20Sopenharmony_ci
1068c2ecf20Sopenharmony_ciconfig NFSD_SCSILAYOUT
1078c2ecf20Sopenharmony_ci	bool "NFSv4.1 server support for pNFS SCSI layouts"
1088c2ecf20Sopenharmony_ci	depends on NFSD_V4 && BLOCK
1098c2ecf20Sopenharmony_ci	select NFSD_PNFS
1108c2ecf20Sopenharmony_ci	select EXPORTFS_BLOCK_OPS
1118c2ecf20Sopenharmony_ci	select BLK_SCSI_REQUEST
1128c2ecf20Sopenharmony_ci	help
1138c2ecf20Sopenharmony_ci	  This option enables support for the exporting pNFS SCSI layouts
1148c2ecf20Sopenharmony_ci	  in the kernel's NFS server. The pNFS SCSI layout enables NFS
1158c2ecf20Sopenharmony_ci	  clients to directly perform I/O to SCSI devices accesible to both
1168c2ecf20Sopenharmony_ci	  the server and the clients.  See draft-ietf-nfsv4-scsi-layout for
1178c2ecf20Sopenharmony_ci	  more details.
1188c2ecf20Sopenharmony_ci
1198c2ecf20Sopenharmony_ci	  If unsure, say N.
1208c2ecf20Sopenharmony_ci
1218c2ecf20Sopenharmony_ciconfig NFSD_FLEXFILELAYOUT
1228c2ecf20Sopenharmony_ci	bool "NFSv4.1 server support for pNFS Flex File layouts"
1238c2ecf20Sopenharmony_ci	depends on NFSD_V4
1248c2ecf20Sopenharmony_ci	select NFSD_PNFS
1258c2ecf20Sopenharmony_ci	help
1268c2ecf20Sopenharmony_ci	  This option enables support for the exporting pNFS Flex File
1278c2ecf20Sopenharmony_ci	  layouts in the kernel's NFS server. The pNFS Flex File  layout
1288c2ecf20Sopenharmony_ci	  enables NFS clients to directly perform I/O to NFSv3 devices
1298c2ecf20Sopenharmony_ci	  accesible to both the server and the clients.  See
1308c2ecf20Sopenharmony_ci	  draft-ietf-nfsv4-flex-files for more details.
1318c2ecf20Sopenharmony_ci
1328c2ecf20Sopenharmony_ci	  Warning, this server implements the bare minimum functionality
1338c2ecf20Sopenharmony_ci	  to be a flex file server - it is for testing the client,
1348c2ecf20Sopenharmony_ci	  not for use in production.
1358c2ecf20Sopenharmony_ci
1368c2ecf20Sopenharmony_ci	  If unsure, say N.
1378c2ecf20Sopenharmony_ci
1388c2ecf20Sopenharmony_ciconfig NFSD_V4_2_INTER_SSC
1398c2ecf20Sopenharmony_ci	bool "NFSv4.2 inter server to server COPY"
1408c2ecf20Sopenharmony_ci	depends on NFSD_V4 && NFS_V4_1 && NFS_V4_2
1418c2ecf20Sopenharmony_ci	help
1428c2ecf20Sopenharmony_ci	  This option enables support for NFSv4.2 inter server to
1438c2ecf20Sopenharmony_ci	  server copy where the destination server calls the NFSv4.2
1448c2ecf20Sopenharmony_ci	  client to read the data to copy from the source server.
1458c2ecf20Sopenharmony_ci
1468c2ecf20Sopenharmony_ci	  If unsure, say N.
1478c2ecf20Sopenharmony_ci
1488c2ecf20Sopenharmony_ciconfig NFSD_V4_SECURITY_LABEL
1498c2ecf20Sopenharmony_ci	bool "Provide Security Label support for NFSv4 server"
1508c2ecf20Sopenharmony_ci	depends on NFSD_V4 && SECURITY
1518c2ecf20Sopenharmony_ci	help
1528c2ecf20Sopenharmony_ci
1538c2ecf20Sopenharmony_ci	Say Y here if you want enable fine-grained security label attribute
1548c2ecf20Sopenharmony_ci	support for NFS version 4.  Security labels allow security modules like
1558c2ecf20Sopenharmony_ci	SELinux and Smack to label files to facilitate enforcement of their policies.
1568c2ecf20Sopenharmony_ci	Without this an NFSv4 mount will have the same label on each file.
1578c2ecf20Sopenharmony_ci
1588c2ecf20Sopenharmony_ci	If you do not wish to enable fine-grained security labels SELinux or
1598c2ecf20Sopenharmony_ci	Smack policies on NFSv4 files, say N.
160