1*38c8a9a5SSteve French# SPDX-License-Identifier: GPL-2.0-only 2*38c8a9a5SSteve Frenchconfig CIFS 3*38c8a9a5SSteve French tristate "SMB3 and CIFS support (advanced network filesystem)" 4*38c8a9a5SSteve French depends on INET 5*38c8a9a5SSteve French select NLS 6*38c8a9a5SSteve French select CRYPTO 7*38c8a9a5SSteve French select CRYPTO_MD5 8*38c8a9a5SSteve French select CRYPTO_SHA256 9*38c8a9a5SSteve French select CRYPTO_SHA512 10*38c8a9a5SSteve French select CRYPTO_CMAC 11*38c8a9a5SSteve French select CRYPTO_HMAC 12*38c8a9a5SSteve French select CRYPTO_AEAD2 13*38c8a9a5SSteve French select CRYPTO_CCM 14*38c8a9a5SSteve French select CRYPTO_GCM 15*38c8a9a5SSteve French select CRYPTO_ECB 16*38c8a9a5SSteve French select CRYPTO_AES 17*38c8a9a5SSteve French select KEYS 18*38c8a9a5SSteve French select DNS_RESOLVER 19*38c8a9a5SSteve French select ASN1 20*38c8a9a5SSteve French select OID_REGISTRY 21*38c8a9a5SSteve French select NETFS_SUPPORT 22*38c8a9a5SSteve French help 23*38c8a9a5SSteve French This is the client VFS module for the SMB3 family of network file 24*38c8a9a5SSteve French protocols (including the most recent, most secure dialect SMB3.1.1). 25*38c8a9a5SSteve French This module also includes support for earlier dialects such as 26*38c8a9a5SSteve French SMB2.1, SMB2 and even the old Common Internet File System (CIFS) 27*38c8a9a5SSteve French protocol. CIFS was the successor to the original network filesystem 28*38c8a9a5SSteve French protocol, Server Message Block (SMB ie SMB1), the native file sharing 29*38c8a9a5SSteve French mechanism for most early PC operating systems. 30*38c8a9a5SSteve French 31*38c8a9a5SSteve French The SMB3.1.1 protocol is supported by most modern operating systems 32*38c8a9a5SSteve French and NAS appliances (e.g. Samba, Windows 11, Windows Server 2022, 33*38c8a9a5SSteve French MacOS) and even in the cloud (e.g. Microsoft Azure) and also by the 34*38c8a9a5SSteve French Linux kernel server, ksmbd. Support for the older CIFS protocol was 35*38c8a9a5SSteve French included in Windows NT4, 2000 and XP (and later). Use of dialects 36*38c8a9a5SSteve French older than SMB2.1 is often discouraged on public networks. 37*38c8a9a5SSteve French This module also provides limited support for OS/2 and Windows ME 38*38c8a9a5SSteve French and similar very old servers. 39*38c8a9a5SSteve French 40*38c8a9a5SSteve French This module provides an advanced network file system client for 41*38c8a9a5SSteve French mounting to SMB3 (and CIFS) compliant servers. It includes support 42*38c8a9a5SSteve French for DFS (hierarchical name space), secure per-user session 43*38c8a9a5SSteve French establishment via Kerberos or NTLMv2, RDMA (smbdirect), advanced 44*38c8a9a5SSteve French security features, per-share encryption, packet-signing, snapshots, 45*38c8a9a5SSteve French directory leases, safe distributed caching (leases), multichannel, 46*38c8a9a5SSteve French Unicode and other internationalization improvements. 47*38c8a9a5SSteve French 48*38c8a9a5SSteve French In general, the default dialects, SMB3 and later, enable better 49*38c8a9a5SSteve French performance, security and features, than would be possible with CIFS. 50*38c8a9a5SSteve French 51*38c8a9a5SSteve French If you need to mount to Samba, Azure, ksmbd, Macs or Windows from this 52*38c8a9a5SSteve French machine, say Y. 53*38c8a9a5SSteve French 54*38c8a9a5SSteve Frenchconfig CIFS_STATS2 55*38c8a9a5SSteve French bool "Extended statistics" 56*38c8a9a5SSteve French depends on CIFS 57*38c8a9a5SSteve French default y 58*38c8a9a5SSteve French help 59*38c8a9a5SSteve French Enabling this option will allow more detailed statistics on SMB 60*38c8a9a5SSteve French request timing to be displayed in /proc/fs/cifs/DebugData and also 61*38c8a9a5SSteve French allow optional logging of slow responses to dmesg (depending on the 62*38c8a9a5SSteve French value of /proc/fs/cifs/cifsFYI). See Documentation/admin-guide/cifs/usage.rst 63*38c8a9a5SSteve French for more details. These additional statistics may have a minor effect 64*38c8a9a5SSteve French on performance and memory utilization. 65*38c8a9a5SSteve French 66*38c8a9a5SSteve French If unsure, say Y. 67*38c8a9a5SSteve French 68*38c8a9a5SSteve Frenchconfig CIFS_ALLOW_INSECURE_LEGACY 69*38c8a9a5SSteve French bool "Support legacy servers which use less secure dialects" 70*38c8a9a5SSteve French depends on CIFS 71*38c8a9a5SSteve French default y 72*38c8a9a5SSteve French help 73*38c8a9a5SSteve French Modern dialects, SMB2.1 and later (including SMB3 and 3.1.1), have 74*38c8a9a5SSteve French additional security features, including protection against 75*38c8a9a5SSteve French man-in-the-middle attacks and stronger crypto hashes, so the use 76*38c8a9a5SSteve French of legacy dialects (SMB1/CIFS and SMB2.0) is discouraged. 77*38c8a9a5SSteve French 78*38c8a9a5SSteve French Disabling this option prevents users from using vers=1.0 or vers=2.0 79*38c8a9a5SSteve French on mounts with cifs.ko 80*38c8a9a5SSteve French 81*38c8a9a5SSteve French If unsure, say Y. 82*38c8a9a5SSteve French 83*38c8a9a5SSteve Frenchconfig CIFS_UPCALL 84*38c8a9a5SSteve French bool "Kerberos/SPNEGO advanced session setup" 85*38c8a9a5SSteve French depends on CIFS 86*38c8a9a5SSteve French help 87*38c8a9a5SSteve French Enables an upcall mechanism for CIFS which accesses userspace helper 88*38c8a9a5SSteve French utilities to provide SPNEGO packaged (RFC 4178) Kerberos tickets 89*38c8a9a5SSteve French which are needed to mount to certain secure servers (for which more 90*38c8a9a5SSteve French secure Kerberos authentication is required). If unsure, say Y. 91*38c8a9a5SSteve French 92*38c8a9a5SSteve Frenchconfig CIFS_XATTR 93*38c8a9a5SSteve French bool "CIFS extended attributes" 94*38c8a9a5SSteve French depends on CIFS 95*38c8a9a5SSteve French help 96*38c8a9a5SSteve French Extended attributes are name:value pairs associated with inodes by 97*38c8a9a5SSteve French the kernel or by users (see the attr(5) manual page for details). 98*38c8a9a5SSteve French CIFS maps the name of extended attributes beginning with the user 99*38c8a9a5SSteve French namespace prefix to SMB/CIFS EAs. EAs are stored on Windows 100*38c8a9a5SSteve French servers without the user namespace prefix, but their names are 101*38c8a9a5SSteve French seen by Linux cifs clients prefaced by the user namespace prefix. 102*38c8a9a5SSteve French The system namespace (used by some filesystems to store ACLs) is 103*38c8a9a5SSteve French not supported at this time. 104*38c8a9a5SSteve French 105*38c8a9a5SSteve French If unsure, say Y. 106*38c8a9a5SSteve French 107*38c8a9a5SSteve Frenchconfig CIFS_POSIX 108*38c8a9a5SSteve French bool "CIFS POSIX Extensions" 109*38c8a9a5SSteve French depends on CIFS && CIFS_ALLOW_INSECURE_LEGACY && CIFS_XATTR 110*38c8a9a5SSteve French help 111*38c8a9a5SSteve French Enabling this option will cause the cifs client to attempt to 112*38c8a9a5SSteve French negotiate a feature of the older cifs dialect with servers, such as 113*38c8a9a5SSteve French Samba 3.0.5 or later, that optionally can handle more POSIX like 114*38c8a9a5SSteve French (rather than Windows like) file behavior. It also enables support 115*38c8a9a5SSteve French for POSIX ACLs (getfacl and setfacl) to servers (such as Samba 3.10 116*38c8a9a5SSteve French and later) which can negotiate CIFS POSIX ACL support. This config 117*38c8a9a5SSteve French option is not needed when mounting with SMB3.1.1. If unsure, say N. 118*38c8a9a5SSteve French 119*38c8a9a5SSteve Frenchconfig CIFS_DEBUG 120*38c8a9a5SSteve French bool "Enable CIFS debugging routines" 121*38c8a9a5SSteve French default y 122*38c8a9a5SSteve French depends on CIFS 123*38c8a9a5SSteve French help 124*38c8a9a5SSteve French Enabling this option adds helpful debugging messages to 125*38c8a9a5SSteve French the cifs code which increases the size of the cifs module. 126*38c8a9a5SSteve French If unsure, say Y. 127*38c8a9a5SSteve French 128*38c8a9a5SSteve Frenchconfig CIFS_DEBUG2 129*38c8a9a5SSteve French bool "Enable additional CIFS debugging routines" 130*38c8a9a5SSteve French depends on CIFS_DEBUG 131*38c8a9a5SSteve French help 132*38c8a9a5SSteve French Enabling this option adds a few more debugging routines 133*38c8a9a5SSteve French to the cifs code which slightly increases the size of 134*38c8a9a5SSteve French the cifs module and can cause additional logging of debug 135*38c8a9a5SSteve French messages in some error paths, slowing performance. This 136*38c8a9a5SSteve French option can be turned off unless you are debugging 137*38c8a9a5SSteve French cifs problems. If unsure, say N. 138*38c8a9a5SSteve French 139*38c8a9a5SSteve Frenchconfig CIFS_DEBUG_DUMP_KEYS 140*38c8a9a5SSteve French bool "Dump encryption keys for offline decryption (Unsafe)" 141*38c8a9a5SSteve French depends on CIFS_DEBUG 142*38c8a9a5SSteve French help 143*38c8a9a5SSteve French Enabling this will dump the encryption and decryption keys 144*38c8a9a5SSteve French used to communicate on an encrypted share connection on the 145*38c8a9a5SSteve French console. This allows Wireshark to decrypt and dissect 146*38c8a9a5SSteve French encrypted network captures. Enable this carefully. 147*38c8a9a5SSteve French If unsure, say N. 148*38c8a9a5SSteve French 149*38c8a9a5SSteve Frenchconfig CIFS_DFS_UPCALL 150*38c8a9a5SSteve French bool "DFS feature support" 151*38c8a9a5SSteve French depends on CIFS 152*38c8a9a5SSteve French help 153*38c8a9a5SSteve French Distributed File System (DFS) support is used to access shares 154*38c8a9a5SSteve French transparently in an enterprise name space, even if the share 155*38c8a9a5SSteve French moves to a different server. This feature also enables 156*38c8a9a5SSteve French an upcall mechanism for CIFS which contacts userspace helper 157*38c8a9a5SSteve French utilities to provide server name resolution (host names to 158*38c8a9a5SSteve French IP addresses) which is needed in order to reconnect to 159*38c8a9a5SSteve French servers if their addresses change or for implicit mounts of 160*38c8a9a5SSteve French DFS junction points. If unsure, say Y. 161*38c8a9a5SSteve French 162*38c8a9a5SSteve Frenchconfig CIFS_SWN_UPCALL 163*38c8a9a5SSteve French bool "SWN feature support" 164*38c8a9a5SSteve French depends on CIFS 165*38c8a9a5SSteve French help 166*38c8a9a5SSteve French The Service Witness Protocol (SWN) is used to get notifications 167*38c8a9a5SSteve French from a highly available server of resource state changes. This 168*38c8a9a5SSteve French feature enables an upcall mechanism for CIFS which contacts a 169*38c8a9a5SSteve French userspace daemon to establish the DCE/RPC connection to retrieve 170*38c8a9a5SSteve French the cluster available interfaces and resource change notifications. 171*38c8a9a5SSteve French If unsure, say Y. 172*38c8a9a5SSteve French 173*38c8a9a5SSteve Frenchconfig CIFS_NFSD_EXPORT 174*38c8a9a5SSteve French bool "Allow nfsd to export CIFS file system" 175*38c8a9a5SSteve French depends on CIFS && BROKEN 176*38c8a9a5SSteve French help 177*38c8a9a5SSteve French Allows NFS server to export a CIFS mounted share (nfsd over cifs) 178*38c8a9a5SSteve French 179*38c8a9a5SSteve Frenchif CIFS 180*38c8a9a5SSteve French 181*38c8a9a5SSteve Frenchconfig CIFS_SMB_DIRECT 182*38c8a9a5SSteve French bool "SMB Direct support" 183*38c8a9a5SSteve French depends on CIFS=m && INFINIBAND && INFINIBAND_ADDR_TRANS || CIFS=y && INFINIBAND=y && INFINIBAND_ADDR_TRANS=y 184*38c8a9a5SSteve French help 185*38c8a9a5SSteve French Enables SMB Direct support for SMB 3.0, 3.02 and 3.1.1. 186*38c8a9a5SSteve French SMB Direct allows transferring SMB packets over RDMA. If unsure, 187*38c8a9a5SSteve French say Y. 188*38c8a9a5SSteve French 189*38c8a9a5SSteve Frenchconfig CIFS_FSCACHE 190*38c8a9a5SSteve French bool "Provide CIFS client caching support" 191*38c8a9a5SSteve French depends on CIFS=m && FSCACHE || CIFS=y && FSCACHE=y 192*38c8a9a5SSteve French help 193*38c8a9a5SSteve French Makes CIFS FS-Cache capable. Say Y here if you want your CIFS data 194*38c8a9a5SSteve French to be cached locally on disk through the general filesystem cache 195*38c8a9a5SSteve French manager. If unsure, say N. 196*38c8a9a5SSteve French 197*38c8a9a5SSteve Frenchconfig CIFS_ROOT 198*38c8a9a5SSteve French bool "SMB root file system (Experimental)" 199*38c8a9a5SSteve French depends on CIFS=y && IP_PNP 200*38c8a9a5SSteve French help 201*38c8a9a5SSteve French Enables root file system support over SMB protocol. 202*38c8a9a5SSteve French 203*38c8a9a5SSteve French Most people say N here. 204*38c8a9a5SSteve French 205*38c8a9a5SSteve Frenchendif 206