| # SPDX-License-Identifier: GPL-2.0-only | 
 | config CIFS | 
 | 	tristate "SMB3 and CIFS support (advanced network filesystem)" | 
 | 	depends on INET | 
 | 	select NLS | 
 | 	select CRYPTO | 
 | 	select CRYPTO_MD4 | 
 | 	select CRYPTO_MD5 | 
 | 	select CRYPTO_SHA256 | 
 | 	select CRYPTO_SHA512 | 
 | 	select CRYPTO_CMAC | 
 | 	select CRYPTO_HMAC | 
 | 	select CRYPTO_LIB_ARC4 | 
 | 	select CRYPTO_AEAD2 | 
 | 	select CRYPTO_CCM | 
 | 	select CRYPTO_GCM | 
 | 	select CRYPTO_ECB | 
 | 	select CRYPTO_AES | 
 | 	select CRYPTO_LIB_DES | 
 | 	select KEYS | 
 | 	help | 
 | 	  This is the client VFS module for the SMB3 family of NAS protocols, | 
 | 	  (including support for the most recent, most secure dialect SMB3.1.1) | 
 | 	  as well as for earlier dialects such as SMB2.1, SMB2 and the older | 
 | 	  Common Internet File System (CIFS) protocol.  CIFS was the successor | 
 | 	  to the original dialect, the Server Message Block (SMB) protocol, the | 
 | 	  native file sharing mechanism for most early PC operating systems. | 
 |  | 
 | 	  The SMB3 protocol is supported by most modern operating systems | 
 | 	  and NAS appliances (e.g. Samba, Windows 10, Windows Server 2016, | 
 | 	  MacOS) and even in the cloud (e.g. Microsoft Azure). | 
 | 	  The older CIFS protocol was included in Windows NT4, 2000 and XP (and | 
 | 	  later) as well by Samba (which provides excellent CIFS and SMB3 | 
 | 	  server support for Linux and many other operating systems). Use of | 
 | 	  dialects older than SMB2.1 is often discouraged on public networks. | 
 | 	  This module also provides limited support for OS/2 and Windows ME | 
 | 	  and similar very old servers. | 
 |  | 
 | 	  This module provides an advanced network file system client | 
 | 	  for mounting to SMB3 (and CIFS) compliant servers.  It includes | 
 | 	  support for DFS (hierarchical name space), secure per-user | 
 | 	  session establishment via Kerberos or NTLM or NTLMv2, RDMA | 
 | 	  (smbdirect), advanced security features, per-share encryption, | 
 | 	  directory leases, safe distributed caching (oplock), optional packet | 
 | 	  signing, Unicode and other internationalization improvements. | 
 |  | 
 | 	  In general, the default dialects, SMB3 and later, enable better | 
 | 	  performance, security and features, than would be possible with CIFS. | 
 | 	  Note that when mounting to Samba, due to the CIFS POSIX extensions, | 
 | 	  CIFS mounts can provide slightly better POSIX compatibility | 
 | 	  than SMB3 mounts. SMB2/SMB3 mount options are also | 
 | 	  slightly simpler (compared to CIFS) due to protocol improvements. | 
 |  | 
 | 	  If you need to mount to Samba, Azure, Macs or Windows from this machine, say Y. | 
 |  | 
 | config CIFS_STATS2 | 
 | 	bool "Extended statistics" | 
 | 	depends on CIFS | 
 | 	help | 
 | 	  Enabling this option will allow more detailed statistics on SMB | 
 | 	  request timing to be displayed in /proc/fs/cifs/DebugData and also | 
 | 	  allow optional logging of slow responses to dmesg (depending on the | 
 | 	  value of /proc/fs/cifs/cifsFYI, see fs/cifs/README for more details). | 
 | 	  These additional statistics may have a minor effect on performance | 
 | 	  and memory utilization. | 
 |  | 
 | 	  Unless you are a developer or are doing network performance analysis | 
 | 	  or tuning, say N. | 
 |  | 
 | config CIFS_ALLOW_INSECURE_LEGACY | 
 | 	bool "Support legacy servers which use less secure dialects" | 
 | 	depends on CIFS | 
 | 	default y | 
 | 	help | 
 | 	  Modern dialects, SMB2.1 and later (including SMB3 and 3.1.1), have | 
 | 	  additional security features, including protection against | 
 | 	  man-in-the-middle attacks and stronger crypto hashes, so the use | 
 | 	  of legacy dialects (SMB1/CIFS and SMB2.0) is discouraged. | 
 |  | 
 | 	  Disabling this option prevents users from using vers=1.0 or vers=2.0 | 
 | 	  on mounts with cifs.ko | 
 |  | 
 | 	  If unsure, say Y. | 
 |  | 
 | config CIFS_WEAK_PW_HASH | 
 | 	bool "Support legacy servers which use weaker LANMAN security" | 
 | 	depends on CIFS && CIFS_ALLOW_INSECURE_LEGACY | 
 | 	help | 
 | 	  Modern CIFS servers including Samba and most Windows versions | 
 | 	  (since 1997) support stronger NTLM (and even NTLMv2 and Kerberos) | 
 | 	  security mechanisms. These hash the password more securely | 
 | 	  than the mechanisms used in the older LANMAN version of the | 
 | 	  SMB protocol but LANMAN based authentication is needed to | 
 | 	  establish sessions with some old SMB servers. | 
 |  | 
 | 	  Enabling this option allows the cifs module to mount to older | 
 | 	  LANMAN based servers such as OS/2 and Windows 95, but such | 
 | 	  mounts may be less secure than mounts using NTLM or more recent | 
 | 	  security mechanisms if you are on a public network.  Unless you | 
 | 	  have a need to access old SMB servers (and are on a private | 
 | 	  network) you probably want to say N.  Even if this support | 
 | 	  is enabled in the kernel build, LANMAN authentication will not be | 
 | 	  used automatically. At runtime LANMAN mounts are disabled but | 
 | 	  can be set to required (or optional) either in | 
 | 	  /proc/fs/cifs (see fs/cifs/README for more detail) or via an | 
 | 	  option on the mount command. This support is disabled by | 
 | 	  default in order to reduce the possibility of a downgrade | 
 | 	  attack. | 
 |  | 
 | 	  If unsure, say N. | 
 |  | 
 | config CIFS_UPCALL | 
 | 	bool "Kerberos/SPNEGO advanced session setup" | 
 | 	depends on CIFS | 
 | 	select DNS_RESOLVER | 
 | 	help | 
 | 	  Enables an upcall mechanism for CIFS which accesses userspace helper | 
 | 	  utilities to provide SPNEGO packaged (RFC 4178) Kerberos tickets | 
 | 	  which are needed to mount to certain secure servers (for which more | 
 | 	  secure Kerberos authentication is required). If unsure, say Y. | 
 |  | 
 | config CIFS_XATTR | 
 | 	bool "CIFS extended attributes" | 
 | 	depends on CIFS | 
 | 	help | 
 | 	  Extended attributes are name:value pairs associated with inodes by | 
 | 	  the kernel or by users (see the attr(5) manual page for details). | 
 | 	  CIFS maps the name of extended attributes beginning with the user | 
 | 	  namespace prefix to SMB/CIFS EAs.  EAs are stored on Windows | 
 | 	  servers without the user namespace prefix, but their names are | 
 | 	  seen by Linux cifs clients prefaced by the user namespace prefix. | 
 | 	  The system namespace (used by some filesystems to store ACLs) is | 
 | 	  not supported at this time. | 
 |  | 
 | 	  If unsure, say Y. | 
 |  | 
 | config CIFS_POSIX | 
 | 	bool "CIFS POSIX Extensions" | 
 | 	depends on CIFS && CIFS_ALLOW_INSECURE_LEGACY && CIFS_XATTR | 
 | 	help | 
 | 	  Enabling this option will cause the cifs client to attempt to | 
 | 	  negotiate a newer dialect with servers, such as Samba 3.0.5 | 
 | 	  or later, that optionally can handle more POSIX like (rather | 
 | 	  than Windows like) file behavior.  It also enables | 
 | 	  support for POSIX ACLs (getfacl and setfacl) to servers | 
 | 	  (such as Samba 3.10 and later) which can negotiate | 
 | 	  CIFS POSIX ACL support.  If unsure, say N. | 
 |  | 
 | config CIFS_DEBUG | 
 | 	bool "Enable CIFS debugging routines" | 
 | 	default y | 
 | 	depends on CIFS | 
 | 	help | 
 | 	  Enabling this option adds helpful debugging messages to | 
 | 	  the cifs code which increases the size of the cifs module. | 
 | 	  If unsure, say Y. | 
 |  | 
 | config CIFS_DEBUG2 | 
 | 	bool "Enable additional CIFS debugging routines" | 
 | 	depends on CIFS_DEBUG | 
 | 	help | 
 | 	  Enabling this option adds a few more debugging routines | 
 | 	  to the cifs code which slightly increases the size of | 
 | 	  the cifs module and can cause additional logging of debug | 
 | 	  messages in some error paths, slowing performance. This | 
 | 	  option can be turned off unless you are debugging | 
 | 	  cifs problems.  If unsure, say N. | 
 |  | 
 | config CIFS_DEBUG_DUMP_KEYS | 
 | 	bool "Dump encryption keys for offline decryption (Unsafe)" | 
 | 	depends on CIFS_DEBUG | 
 | 	help | 
 | 	  Enabling this will dump the encryption and decryption keys | 
 | 	  used to communicate on an encrypted share connection on the | 
 | 	  console. This allows Wireshark to decrypt and dissect | 
 | 	  encrypted network captures. Enable this carefully. | 
 | 	  If unsure, say N. | 
 |  | 
 | config CIFS_DFS_UPCALL | 
 | 	bool "DFS feature support" | 
 | 	depends on CIFS | 
 | 	select DNS_RESOLVER | 
 | 	help | 
 | 	  Distributed File System (DFS) support is used to access shares | 
 | 	  transparently in an enterprise name space, even if the share | 
 | 	  moves to a different server.  This feature also enables | 
 | 	  an upcall mechanism for CIFS which contacts userspace helper | 
 | 	  utilities to provide server name resolution (host names to | 
 | 	  IP addresses) which is needed in order to reconnect to | 
 | 	  servers if their addresses change or for implicit mounts of | 
 | 	  DFS junction points. If unsure, say Y. | 
 |  | 
 | config CIFS_NFSD_EXPORT | 
 | 	bool "Allow nfsd to export CIFS file system" | 
 | 	depends on CIFS && BROKEN | 
 | 	help | 
 | 	  Allows NFS server to export a CIFS mounted share (nfsd over cifs) | 
 |  | 
 | config CIFS_SMB_DIRECT | 
 | 	bool "SMB Direct support" | 
 | 	depends on CIFS=m && INFINIBAND && INFINIBAND_ADDR_TRANS || CIFS=y && INFINIBAND=y && INFINIBAND_ADDR_TRANS=y | 
 | 	help | 
 | 	  Enables SMB Direct support for SMB 3.0, 3.02 and 3.1.1. | 
 | 	  SMB Direct allows transferring SMB packets over RDMA. If unsure, | 
 | 	  say N. | 
 |  | 
 | config CIFS_FSCACHE | 
 | 	bool "Provide CIFS client caching support" | 
 | 	depends on CIFS=m && FSCACHE || CIFS=y && FSCACHE=y | 
 | 	help | 
 | 	  Makes CIFS FS-Cache capable. Say Y here if you want your CIFS data | 
 | 	  to be cached locally on disk through the general filesystem cache | 
 | 	  manager. If unsure, say N. | 
 |  | 
 | config CIFS_ROOT | 
 | 	bool "SMB root file system (Experimental)" | 
 | 	depends on CIFS=y && IP_PNP | 
 | 	help | 
 | 	  Enables root file system support over SMB protocol. | 
 |  | 
 | 	  Most people say N here. |