162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_ciconfig CIFS 362306a36Sopenharmony_ci tristate "SMB3 and CIFS support (advanced network filesystem)" 462306a36Sopenharmony_ci depends on INET 562306a36Sopenharmony_ci select NLS 662306a36Sopenharmony_ci select NLS_UCS2_UTILS 762306a36Sopenharmony_ci select CRYPTO 862306a36Sopenharmony_ci select CRYPTO_MD5 962306a36Sopenharmony_ci select CRYPTO_SHA256 1062306a36Sopenharmony_ci select CRYPTO_SHA512 1162306a36Sopenharmony_ci select CRYPTO_CMAC 1262306a36Sopenharmony_ci select CRYPTO_HMAC 1362306a36Sopenharmony_ci select CRYPTO_AEAD2 1462306a36Sopenharmony_ci select CRYPTO_CCM 1562306a36Sopenharmony_ci select CRYPTO_GCM 1662306a36Sopenharmony_ci select CRYPTO_ECB 1762306a36Sopenharmony_ci select CRYPTO_AES 1862306a36Sopenharmony_ci select KEYS 1962306a36Sopenharmony_ci select DNS_RESOLVER 2062306a36Sopenharmony_ci select ASN1 2162306a36Sopenharmony_ci select OID_REGISTRY 2262306a36Sopenharmony_ci select NETFS_SUPPORT 2362306a36Sopenharmony_ci help 2462306a36Sopenharmony_ci This is the client VFS module for the SMB3 family of network file 2562306a36Sopenharmony_ci protocols (including the most recent, most secure dialect SMB3.1.1). 2662306a36Sopenharmony_ci This module also includes support for earlier dialects such as 2762306a36Sopenharmony_ci SMB2.1, SMB2 and even the old Common Internet File System (CIFS) 2862306a36Sopenharmony_ci protocol. CIFS was the successor to the original network filesystem 2962306a36Sopenharmony_ci protocol, Server Message Block (SMB ie SMB1), the native file sharing 3062306a36Sopenharmony_ci mechanism for most early PC operating systems. 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ci The SMB3.1.1 protocol is supported by most modern operating systems 3362306a36Sopenharmony_ci and NAS appliances (e.g. Samba, Windows 11, Windows Server 2022, 3462306a36Sopenharmony_ci MacOS) and even in the cloud (e.g. Microsoft Azure) and also by the 3562306a36Sopenharmony_ci Linux kernel server, ksmbd. Support for the older CIFS protocol was 3662306a36Sopenharmony_ci included in Windows NT4, 2000 and XP (and later). Use of dialects 3762306a36Sopenharmony_ci older than SMB2.1 is often discouraged on public networks. 3862306a36Sopenharmony_ci This module also provides limited support for OS/2 and Windows ME 3962306a36Sopenharmony_ci and similar very old servers. 4062306a36Sopenharmony_ci 4162306a36Sopenharmony_ci This module provides an advanced network file system client for 4262306a36Sopenharmony_ci mounting to SMB3 (and CIFS) compliant servers. It includes support 4362306a36Sopenharmony_ci for DFS (hierarchical name space), secure per-user session 4462306a36Sopenharmony_ci establishment via Kerberos or NTLMv2, RDMA (smbdirect), advanced 4562306a36Sopenharmony_ci security features, per-share encryption, packet-signing, snapshots, 4662306a36Sopenharmony_ci directory leases, safe distributed caching (leases), multichannel, 4762306a36Sopenharmony_ci Unicode and other internationalization improvements. 4862306a36Sopenharmony_ci 4962306a36Sopenharmony_ci In general, the default dialects, SMB3 and later, enable better 5062306a36Sopenharmony_ci performance, security and features, than would be possible with CIFS. 5162306a36Sopenharmony_ci 5262306a36Sopenharmony_ci If you need to mount to Samba, Azure, ksmbd, Macs or Windows from this 5362306a36Sopenharmony_ci machine, say Y. 5462306a36Sopenharmony_ci 5562306a36Sopenharmony_ciconfig CIFS_STATS2 5662306a36Sopenharmony_ci bool "Extended statistics" 5762306a36Sopenharmony_ci depends on CIFS 5862306a36Sopenharmony_ci default y 5962306a36Sopenharmony_ci help 6062306a36Sopenharmony_ci Enabling this option will allow more detailed statistics on SMB 6162306a36Sopenharmony_ci request timing to be displayed in /proc/fs/cifs/DebugData and also 6262306a36Sopenharmony_ci allow optional logging of slow responses to dmesg (depending on the 6362306a36Sopenharmony_ci value of /proc/fs/cifs/cifsFYI). See Documentation/admin-guide/cifs/usage.rst 6462306a36Sopenharmony_ci for more details. These additional statistics may have a minor effect 6562306a36Sopenharmony_ci on performance and memory utilization. 6662306a36Sopenharmony_ci 6762306a36Sopenharmony_ci If unsure, say Y. 6862306a36Sopenharmony_ci 6962306a36Sopenharmony_ciconfig CIFS_ALLOW_INSECURE_LEGACY 7062306a36Sopenharmony_ci bool "Support legacy servers which use less secure dialects" 7162306a36Sopenharmony_ci depends on CIFS 7262306a36Sopenharmony_ci default y 7362306a36Sopenharmony_ci help 7462306a36Sopenharmony_ci Modern dialects, SMB2.1 and later (including SMB3 and 3.1.1), have 7562306a36Sopenharmony_ci additional security features, including protection against 7662306a36Sopenharmony_ci man-in-the-middle attacks and stronger crypto hashes, so the use 7762306a36Sopenharmony_ci of legacy dialects (SMB1/CIFS and SMB2.0) is discouraged. 7862306a36Sopenharmony_ci 7962306a36Sopenharmony_ci Disabling this option prevents users from using vers=1.0 or vers=2.0 8062306a36Sopenharmony_ci on mounts with cifs.ko 8162306a36Sopenharmony_ci 8262306a36Sopenharmony_ci If unsure, say Y. 8362306a36Sopenharmony_ci 8462306a36Sopenharmony_ciconfig CIFS_UPCALL 8562306a36Sopenharmony_ci bool "Kerberos/SPNEGO advanced session setup" 8662306a36Sopenharmony_ci depends on CIFS 8762306a36Sopenharmony_ci help 8862306a36Sopenharmony_ci Enables an upcall mechanism for CIFS which accesses userspace helper 8962306a36Sopenharmony_ci utilities to provide SPNEGO packaged (RFC 4178) Kerberos tickets 9062306a36Sopenharmony_ci which are needed to mount to certain secure servers (for which more 9162306a36Sopenharmony_ci secure Kerberos authentication is required). If unsure, say Y. 9262306a36Sopenharmony_ci 9362306a36Sopenharmony_ciconfig CIFS_XATTR 9462306a36Sopenharmony_ci bool "CIFS extended attributes" 9562306a36Sopenharmony_ci depends on CIFS 9662306a36Sopenharmony_ci help 9762306a36Sopenharmony_ci Extended attributes are name:value pairs associated with inodes by 9862306a36Sopenharmony_ci the kernel or by users (see the attr(5) manual page for details). 9962306a36Sopenharmony_ci CIFS maps the name of extended attributes beginning with the user 10062306a36Sopenharmony_ci namespace prefix to SMB/CIFS EAs. EAs are stored on Windows 10162306a36Sopenharmony_ci servers without the user namespace prefix, but their names are 10262306a36Sopenharmony_ci seen by Linux cifs clients prefaced by the user namespace prefix. 10362306a36Sopenharmony_ci The system namespace (used by some filesystems to store ACLs) is 10462306a36Sopenharmony_ci not supported at this time. 10562306a36Sopenharmony_ci 10662306a36Sopenharmony_ci If unsure, say Y. 10762306a36Sopenharmony_ci 10862306a36Sopenharmony_ciconfig CIFS_POSIX 10962306a36Sopenharmony_ci bool "CIFS POSIX Extensions" 11062306a36Sopenharmony_ci depends on CIFS && CIFS_ALLOW_INSECURE_LEGACY && CIFS_XATTR 11162306a36Sopenharmony_ci help 11262306a36Sopenharmony_ci Enabling this option will cause the cifs client to attempt to 11362306a36Sopenharmony_ci negotiate a feature of the older cifs dialect with servers, such as 11462306a36Sopenharmony_ci Samba 3.0.5 or later, that optionally can handle more POSIX like 11562306a36Sopenharmony_ci (rather than Windows like) file behavior. It also enables support 11662306a36Sopenharmony_ci for POSIX ACLs (getfacl and setfacl) to servers (such as Samba 3.10 11762306a36Sopenharmony_ci and later) which can negotiate CIFS POSIX ACL support. This config 11862306a36Sopenharmony_ci option is not needed when mounting with SMB3.1.1. If unsure, say N. 11962306a36Sopenharmony_ci 12062306a36Sopenharmony_ciconfig CIFS_DEBUG 12162306a36Sopenharmony_ci bool "Enable CIFS debugging routines" 12262306a36Sopenharmony_ci default y 12362306a36Sopenharmony_ci depends on CIFS 12462306a36Sopenharmony_ci help 12562306a36Sopenharmony_ci Enabling this option adds helpful debugging messages to 12662306a36Sopenharmony_ci the cifs code which increases the size of the cifs module. 12762306a36Sopenharmony_ci If unsure, say Y. 12862306a36Sopenharmony_ci 12962306a36Sopenharmony_ciconfig CIFS_DEBUG2 13062306a36Sopenharmony_ci bool "Enable additional CIFS debugging routines" 13162306a36Sopenharmony_ci depends on CIFS_DEBUG 13262306a36Sopenharmony_ci help 13362306a36Sopenharmony_ci Enabling this option adds a few more debugging routines 13462306a36Sopenharmony_ci to the cifs code which slightly increases the size of 13562306a36Sopenharmony_ci the cifs module and can cause additional logging of debug 13662306a36Sopenharmony_ci messages in some error paths, slowing performance. This 13762306a36Sopenharmony_ci option can be turned off unless you are debugging 13862306a36Sopenharmony_ci cifs problems. If unsure, say N. 13962306a36Sopenharmony_ci 14062306a36Sopenharmony_ciconfig CIFS_DEBUG_DUMP_KEYS 14162306a36Sopenharmony_ci bool "Dump encryption keys for offline decryption (Unsafe)" 14262306a36Sopenharmony_ci depends on CIFS_DEBUG 14362306a36Sopenharmony_ci help 14462306a36Sopenharmony_ci Enabling this will dump the encryption and decryption keys 14562306a36Sopenharmony_ci used to communicate on an encrypted share connection on the 14662306a36Sopenharmony_ci console. This allows Wireshark to decrypt and dissect 14762306a36Sopenharmony_ci encrypted network captures. Enable this carefully. 14862306a36Sopenharmony_ci If unsure, say N. 14962306a36Sopenharmony_ci 15062306a36Sopenharmony_ciconfig CIFS_DFS_UPCALL 15162306a36Sopenharmony_ci bool "DFS feature support" 15262306a36Sopenharmony_ci depends on CIFS 15362306a36Sopenharmony_ci help 15462306a36Sopenharmony_ci Distributed File System (DFS) support is used to access shares 15562306a36Sopenharmony_ci transparently in an enterprise name space, even if the share 15662306a36Sopenharmony_ci moves to a different server. This feature also enables 15762306a36Sopenharmony_ci an upcall mechanism for CIFS which contacts userspace helper 15862306a36Sopenharmony_ci utilities to provide server name resolution (host names to 15962306a36Sopenharmony_ci IP addresses) which is needed in order to reconnect to 16062306a36Sopenharmony_ci servers if their addresses change or for implicit mounts of 16162306a36Sopenharmony_ci DFS junction points. If unsure, say Y. 16262306a36Sopenharmony_ci 16362306a36Sopenharmony_ciconfig CIFS_SWN_UPCALL 16462306a36Sopenharmony_ci bool "SWN feature support" 16562306a36Sopenharmony_ci depends on CIFS 16662306a36Sopenharmony_ci help 16762306a36Sopenharmony_ci The Service Witness Protocol (SWN) is used to get notifications 16862306a36Sopenharmony_ci from a highly available server of resource state changes. This 16962306a36Sopenharmony_ci feature enables an upcall mechanism for CIFS which contacts a 17062306a36Sopenharmony_ci userspace daemon to establish the DCE/RPC connection to retrieve 17162306a36Sopenharmony_ci the cluster available interfaces and resource change notifications. 17262306a36Sopenharmony_ci If unsure, say Y. 17362306a36Sopenharmony_ci 17462306a36Sopenharmony_ciconfig CIFS_NFSD_EXPORT 17562306a36Sopenharmony_ci bool "Allow nfsd to export CIFS file system" 17662306a36Sopenharmony_ci depends on CIFS && BROKEN 17762306a36Sopenharmony_ci help 17862306a36Sopenharmony_ci Allows NFS server to export a CIFS mounted share (nfsd over cifs) 17962306a36Sopenharmony_ci 18062306a36Sopenharmony_ciif CIFS 18162306a36Sopenharmony_ci 18262306a36Sopenharmony_ciconfig CIFS_SMB_DIRECT 18362306a36Sopenharmony_ci bool "SMB Direct support" 18462306a36Sopenharmony_ci depends on CIFS=m && INFINIBAND && INFINIBAND_ADDR_TRANS || CIFS=y && INFINIBAND=y && INFINIBAND_ADDR_TRANS=y 18562306a36Sopenharmony_ci help 18662306a36Sopenharmony_ci Enables SMB Direct support for SMB 3.0, 3.02 and 3.1.1. 18762306a36Sopenharmony_ci SMB Direct allows transferring SMB packets over RDMA. If unsure, 18862306a36Sopenharmony_ci say Y. 18962306a36Sopenharmony_ci 19062306a36Sopenharmony_ciconfig CIFS_FSCACHE 19162306a36Sopenharmony_ci bool "Provide CIFS client caching support" 19262306a36Sopenharmony_ci depends on CIFS=m && FSCACHE || CIFS=y && FSCACHE=y 19362306a36Sopenharmony_ci help 19462306a36Sopenharmony_ci Makes CIFS FS-Cache capable. Say Y here if you want your CIFS data 19562306a36Sopenharmony_ci to be cached locally on disk through the general filesystem cache 19662306a36Sopenharmony_ci manager. If unsure, say N. 19762306a36Sopenharmony_ci 19862306a36Sopenharmony_ciconfig CIFS_ROOT 19962306a36Sopenharmony_ci bool "SMB root file system (Experimental)" 20062306a36Sopenharmony_ci depends on CIFS=y && IP_PNP 20162306a36Sopenharmony_ci help 20262306a36Sopenharmony_ci Enables root file system support over SMB protocol. 20362306a36Sopenharmony_ci 20462306a36Sopenharmony_ci Most people say N here. 20562306a36Sopenharmony_ci 20662306a36Sopenharmony_ciendif 207