1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only 2e2b329e2SAlexey Dobriyanconfig NFSD 3e2b329e2SAlexey Dobriyan tristate "NFS server support" 4e2b329e2SAlexey Dobriyan depends on INET 568666561SManish Katiyar depends on FILE_LOCKING 665294c1fSJeff Layton depends on FSNOTIFY 7*cd35b6cbSEric Biggers select CRC32 8e2b329e2SAlexey Dobriyan select LOCKD 9e2b329e2SAlexey Dobriyan select SUNRPC 10e2b329e2SAlexey Dobriyan select EXPORTFS 114806ded4SMike Snitzer select NFS_COMMON 12e2b329e2SAlexey Dobriyan select NFS_ACL_SUPPORT if NFSD_V2_ACL 132f3a4b2aSJeff Layton select NFS_ACL_SUPPORT if NFSD_V3_ACL 142813893fSIulia Manda depends on MULTIUSER 15e2b329e2SAlexey Dobriyan help 16e2b329e2SAlexey Dobriyan Choose Y here if you want to allow other computers to access 17e2b329e2SAlexey Dobriyan files residing on this system using Sun's Network File System 18e2b329e2SAlexey Dobriyan protocol. To compile the NFS server support as a module, 19e2b329e2SAlexey Dobriyan choose M here: the module will be called nfsd. 20e2b329e2SAlexey Dobriyan 21e2b329e2SAlexey Dobriyan You may choose to use a user-space NFS server instead, in which 22e2b329e2SAlexey Dobriyan case you can choose N here. 23e2b329e2SAlexey Dobriyan 24e2b329e2SAlexey Dobriyan To export local file systems using NFS, you also need to install 25e2b329e2SAlexey Dobriyan user space programs which can be found in the Linux nfs-utils 26e2b329e2SAlexey Dobriyan package, available from http://linux-nfs.org/. More detail about 27e2b329e2SAlexey Dobriyan the Linux NFS server implementation is available via the 28e2b329e2SAlexey Dobriyan exports(5) man page. 29e2b329e2SAlexey Dobriyan 30e2b329e2SAlexey Dobriyan Below you can choose which versions of the NFS protocol are 31e2b329e2SAlexey Dobriyan available to clients mounting the NFS server on this system. 322f3a4b2aSJeff Layton Support for NFS version 3 (RFC 1813) is always available when 33e2b329e2SAlexey Dobriyan CONFIG_NFSD is selected. 34e2b329e2SAlexey Dobriyan 35e2b329e2SAlexey Dobriyan If unsure, say N. 36e2b329e2SAlexey Dobriyan 372f3a4b2aSJeff Laytonconfig NFSD_V2 382f3a4b2aSJeff Layton bool "NFS server support for NFS version 2 (DEPRECATED)" 39e2b329e2SAlexey Dobriyan depends on NFSD 402f3a4b2aSJeff Layton default n 412f3a4b2aSJeff Layton help 422f3a4b2aSJeff Layton NFSv2 (RFC 1094) was the first publicly-released version of NFS. 432f3a4b2aSJeff Layton Unless you are hosting ancient (1990's era) NFS clients, you don't 442f3a4b2aSJeff Layton need this. 452f3a4b2aSJeff Layton 462f3a4b2aSJeff Layton If unsure, say N. 472f3a4b2aSJeff Layton 482f3a4b2aSJeff Laytonconfig NFSD_V2_ACL 492f3a4b2aSJeff Layton bool "NFS server support for the NFSv2 ACL protocol extension" 502f3a4b2aSJeff Layton depends on NFSD_V2 51e2b329e2SAlexey Dobriyan 52e2b329e2SAlexey Dobriyanconfig NFSD_V3_ACL 53e2b329e2SAlexey Dobriyan bool "NFS server support for the NFSv3 ACL protocol extension" 545f9a62ffSChuck Lever depends on NFSD 55e2b329e2SAlexey Dobriyan help 56e2b329e2SAlexey Dobriyan Solaris NFS servers support an auxiliary NFSv3 ACL protocol that 57e2b329e2SAlexey Dobriyan never became an official part of the NFS version 3 protocol. 58e2b329e2SAlexey Dobriyan This protocol extension allows applications on NFS clients to 59e2b329e2SAlexey Dobriyan manipulate POSIX Access Control Lists on files residing on NFS 60e2b329e2SAlexey Dobriyan servers. NFS servers enforce POSIX ACLs on local files whether 61e2b329e2SAlexey Dobriyan this protocol is available or not. 62e2b329e2SAlexey Dobriyan 63e2b329e2SAlexey Dobriyan This option enables support in your system's NFS server for the 64e2b329e2SAlexey Dobriyan NFSv3 ACL protocol extension allowing NFS clients to manipulate 65e2b329e2SAlexey Dobriyan POSIX ACLs on files exported by your system's NFS server. NFS 66e2b329e2SAlexey Dobriyan clients which support the Solaris NFSv3 ACL protocol can then 67e2b329e2SAlexey Dobriyan access and modify ACLs on your NFS server. 68e2b329e2SAlexey Dobriyan 69e2b329e2SAlexey Dobriyan To store ACLs on your NFS server, you also need to enable ACL- 70e2b329e2SAlexey Dobriyan related CONFIG options for your local file systems of choice. 71e2b329e2SAlexey Dobriyan 72e2b329e2SAlexey Dobriyan If unsure, say N. 73e2b329e2SAlexey Dobriyan 74e2b329e2SAlexey Dobriyanconfig NFSD_V4 75f987c902SKees Cook bool "NFS server support for NFS version 4" 76f987c902SKees Cook depends on NFSD && PROC_FS 77e2b329e2SAlexey Dobriyan select FS_POSIX_ACL 78e57d0652SChuck Lever select RPCSEC_GSS_KRB5 7970052273SJulian Braha select CRYPTO 8038a2204fSPatrick Steinhardt select CRYPTO_LIB_SHA256 81a2e2f2dcSScott Mayhew select CRYPTO_MD5 82f7790029SJeff Layton select GRACE_PERIOD 8302591f9fSDai Ngo select NFS_V4_2_SSC_HELPER if NFS_V4_2 84e2b329e2SAlexey Dobriyan help 85e2b329e2SAlexey Dobriyan This option enables support in your system's NFS server for 86e2b329e2SAlexey Dobriyan version 4 of the NFS protocol (RFC 3530). 87e2b329e2SAlexey Dobriyan 88e2b329e2SAlexey Dobriyan To export files using NFSv4, you need to install additional user 89e2b329e2SAlexey Dobriyan space programs which can be found in the Linux nfs-utils package, 90e2b329e2SAlexey Dobriyan available from http://linux-nfs.org/. 91e2b329e2SAlexey Dobriyan 92e2b329e2SAlexey Dobriyan If unsure, say N. 9365178db4SBryan Schumaker 949cf514ccSChristoph Hellwigconfig NFSD_PNFS 9581c39329SChristoph Hellwig bool 9681c39329SChristoph Hellwig 9781c39329SChristoph Hellwigconfig NFSD_BLOCKLAYOUT 9881c39329SChristoph Hellwig bool "NFSv4.1 server support for pNFS block layouts" 9910c4de10SChristoph Hellwig depends on NFSD_V4 && BLOCK 10081c39329SChristoph Hellwig select NFSD_PNFS 10115d66ac2SBenjamin Coddington select EXPORTFS_BLOCK_OPS 1029cf514ccSChristoph Hellwig help 10381c39329SChristoph Hellwig This option enables support for the exporting pNFS block layouts 10481c39329SChristoph Hellwig in the kernel's NFS server. The pNFS block layout enables NFS 10534a62493SRicardo Ribalda clients to directly perform I/O to block devices accessible to both 10681c39329SChristoph Hellwig the server and the clients. See RFC 5663 for more details. 1079cf514ccSChristoph Hellwig 1089cf514ccSChristoph Hellwig If unsure, say N. 1099cf514ccSChristoph Hellwig 110f99d4fbdSChristoph Hellwigconfig NFSD_SCSILAYOUT 111f99d4fbdSChristoph Hellwig bool "NFSv4.1 server support for pNFS SCSI layouts" 11210c4de10SChristoph Hellwig depends on NFSD_V4 && BLOCK 113f99d4fbdSChristoph Hellwig select NFSD_PNFS 11415d66ac2SBenjamin Coddington select EXPORTFS_BLOCK_OPS 115f99d4fbdSChristoph Hellwig help 116f99d4fbdSChristoph Hellwig This option enables support for the exporting pNFS SCSI layouts 117f99d4fbdSChristoph Hellwig in the kernel's NFS server. The pNFS SCSI layout enables NFS 11834a62493SRicardo Ribalda clients to directly perform I/O to SCSI devices accessible to both 119f99d4fbdSChristoph Hellwig the server and the clients. See draft-ietf-nfsv4-scsi-layout for 120f99d4fbdSChristoph Hellwig more details. 121f99d4fbdSChristoph Hellwig 122f99d4fbdSChristoph Hellwig If unsure, say N. 123f99d4fbdSChristoph Hellwig 1249b9960a0STom Haynesconfig NFSD_FLEXFILELAYOUT 1259b9960a0STom Haynes bool "NFSv4.1 server support for pNFS Flex File layouts" 1269b9960a0STom Haynes depends on NFSD_V4 1279b9960a0STom Haynes select NFSD_PNFS 1289b9960a0STom Haynes help 1299b9960a0STom Haynes This option enables support for the exporting pNFS Flex File 1309b9960a0STom Haynes layouts in the kernel's NFS server. The pNFS Flex File layout 1319b9960a0STom Haynes enables NFS clients to directly perform I/O to NFSv3 devices 13234a62493SRicardo Ribalda accessible to both the server and the clients. See 1339b9960a0STom Haynes draft-ietf-nfsv4-flex-files for more details. 1349b9960a0STom Haynes 1359b9960a0STom Haynes Warning, this server implements the bare minimum functionality 1369b9960a0STom Haynes to be a flex file server - it is for testing the client, 1379b9960a0STom Haynes not for use in production. 1389b9960a0STom Haynes 1399b9960a0STom Haynes If unsure, say N. 1409b9960a0STom Haynes 141b9e8638eSOlga Kornievskaiaconfig NFSD_V4_2_INTER_SSC 142b9e8638eSOlga Kornievskaia bool "NFSv4.2 inter server to server COPY" 143d9092b4bSDai Ngo depends on NFSD_V4 && NFS_V4_2 144b9e8638eSOlga Kornievskaia help 145b9e8638eSOlga Kornievskaia This option enables support for NFSv4.2 inter server to 146b9e8638eSOlga Kornievskaia server copy where the destination server calls the NFSv4.2 147b9e8638eSOlga Kornievskaia client to read the data to copy from the source server. 148b9e8638eSOlga Kornievskaia 149b9e8638eSOlga Kornievskaia If unsure, say N. 150b9e8638eSOlga Kornievskaia 15118032ca0SDavid Quigleyconfig NFSD_V4_SECURITY_LABEL 15218032ca0SDavid Quigley bool "Provide Security Label support for NFSv4 server" 15318032ca0SDavid Quigley depends on NFSD_V4 && SECURITY 15418032ca0SDavid Quigley help 15518032ca0SDavid Quigley 15618032ca0SDavid Quigley Say Y here if you want enable fine-grained security label attribute 15718032ca0SDavid Quigley support for NFS version 4. Security labels allow security modules like 15818032ca0SDavid Quigley SELinux and Smack to label files to facilitate enforcement of their policies. 15918032ca0SDavid Quigley Without this an NFSv4 mount will have the same label on each file. 16018032ca0SDavid Quigley 16118032ca0SDavid Quigley If you do not wish to enable fine-grained security labels SELinux or 16218032ca0SDavid Quigley Smack policies on NFSv4 files, say N. 16374fd4873SJeff Layton 16474fd4873SJeff Laytonconfig NFSD_LEGACY_CLIENT_TRACKING 16574fd4873SJeff Layton bool "Support legacy NFSv4 client tracking methods (DEPRECATED)" 16674fd4873SJeff Layton depends on NFSD_V4 16718a54506SChuck Lever default y 16874fd4873SJeff Layton help 16974fd4873SJeff Layton The NFSv4 server needs to store a small amount of information on 17074fd4873SJeff Layton stable storage in order to handle state recovery after reboot. Most 17174fd4873SJeff Layton modern deployments upcall to a userland daemon for this (nfsdcld), 17274fd4873SJeff Layton but older NFS servers may store information directly in a 17374fd4873SJeff Layton recoverydir, or spawn a process directly using a usermodehelper 17474fd4873SJeff Layton upcall. 17574fd4873SJeff Layton 17626a80762SChuck Lever These legacy client tracking methods have proven to be problematic 17774fd4873SJeff Layton and will be removed in the future. Say Y here if you need support 17874fd4873SJeff Layton for them in the interim. 17926a80762SChuck Lever 18026a80762SChuck Leverconfig NFSD_V4_DELEG_TIMESTAMPS 18126a80762SChuck Lever bool "Support delegated timestamps" 18226a80762SChuck Lever depends on NFSD_V4 18326a80762SChuck Lever default n 18426a80762SChuck Lever help 18526a80762SChuck Lever NFSD implements delegated timestamps according to 18626a80762SChuck Lever draft-ietf-nfsv4-delstid-08 "Extending the Opening of Files". This 18726a80762SChuck Lever is currently an experimental feature and is therefore left disabled 18826a80762SChuck Lever by default. 189