summaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
authorNamjae Jeon <namjae.jeon@samsung.com>2021-03-20 16:06:59 +0900
committerSteve French <stfrench@microsoft.com>2021-05-10 19:15:22 -0500
commit04bee6e336be1accb7f28d8e86454f42b58a860f (patch)
treed19eaa0903326fa05cbfdfe1ee460013988c3c39 /Documentation
parent50355b0b20103a2be39e269a92909fa69f16f2d0 (diff)
downloadlinux-stable-04bee6e336be1accb7f28d8e86454f42b58a860f.tar.gz
linux-stable-04bee6e336be1accb7f28d8e86454f42b58a860f.tar.bz2
linux-stable-04bee6e336be1accb7f28d8e86454f42b58a860f.zip
cifsd: update cifsd.rst document
Add work flow of cifsd and feature stats table. Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com> Signed-off-by: Steve French <stfrench@microsoft.com>
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/filesystems/cifs/cifsd.rst96
1 files changed, 70 insertions, 26 deletions
diff --git a/Documentation/filesystems/cifs/cifsd.rst b/Documentation/filesystems/cifs/cifsd.rst
index af3589da6923..7eac7e459c2d 100644
--- a/Documentation/filesystems/cifs/cifsd.rst
+++ b/Documentation/filesystems/cifs/cifsd.rst
@@ -10,6 +10,34 @@ for sharing files over network.
CIFSD architecture
==================
+ |--- ...
+ --------|--- ksmbd/3 - Client 3
+ |-------|--- ksmbd/2 - Client 2
+ | | ____________________________________________________
+ | | |- Client 1 |
+<--- Socket ---|--- ksmbd/1 <<= Authentication : NTLM/NTLM2, Kerberos |
+ | | | | <<= SMB engine : SMB2, SMB2.1, SMB3, SMB3.0.2, |
+ | | | | SMB3.1.1 |
+ | | | |____________________________________________________|
+ | | |
+ | | |--- VFS --- Local Filesystem
+ | |
+KERNEL |--- ksmbd/0(forker kthread)
+---------------||---------------------------------------------------------------
+USER ||
+ || communication using NETLINK
+ || ______________________________________________
+ || | |
+ ksmbd.mountd <<= DCE/RPC(srvsvc, wkssvc, smar, lsarpc) |
+ ^ | <<= configure shares setting, user accounts |
+ | |______________________________________________|
+ |
+ |------ smb.conf(config file)
+ |
+ |------ ksmbdpwd.db(user account/password file)
+ ^
+ ksmbd.adduser ---------------|
+
The subset of performance related operations belong in kernelspace and
the other subset which belong to operations which are not really related with
performance in userspace. So, DCE/RPC management that has historically resulted
@@ -59,32 +87,48 @@ dozen) that are most important for file server from NetShareEnum and
NetServerGetInfo. Complete DCE/RPC response is prepared from the user space
and passed over to the associated kernel thread for the client.
-Key Features
-============
-
-The supported features are:
- * SMB3 protocols for basic file sharing
- * Auto negotiation
- * Compound requests
- * Oplock/Lease
- * Large MTU
- * NTLM/NTLMv2
- * HMAC-SHA256 Signing
- * Secure negotiate
- * Signing Update
- * Pre-authentication integrity(SMB 3.1.1)
- * SMB3 encryption(CCM, GCM)
- * SMB direct(RDMA)
- * SMB3.1.1 POSIX extension support
- * ACLs
- * Kerberos
-
-The features that are planned or not supported:
- * SMB3 Multi-channel
- * Durable handle v1,v2
- * Persistent handles
- * Directory lease
- * SMB2 notify
+
+CIFSD Feature Status
+====================
+
+============================== =================================================
+Feature name Status
+============================== =================================================
+Dialects Supported. SMB2.1 SMB3.0, SMB3.1.1 dialects
+ excluding security vulnerable SMB1.
+Auto Negotiation Supported.
+Compound Request Supported.
+Oplock Cache Mechanism Supported.
+SMB2 leases(v1 lease) Supported.
+Directory leases(v2 lease) Planned for future.
+Multi-credits Supported.
+NTLM/NTLMv2 Supported.
+HMAC-SHA256 Signing Supported.
+Secure negotiate Supported.
+Signing Update Supported.
+Pre-authentication integrity Supported.
+SMB3 encryption(CCM, GCM) Supported.
+SMB direct(RDMA) Partial Supported. SMB3 Multi-channel is required
+ to connect to Windows client.
+SMB3 Multi-channel In Progress.
+SMB3.1.1 POSIX extension Supported.
+ACLs Partial Supported. only DACLs available, SACLs is
+ planned for future. ksmbd generate random subauth
+ values(then store it to disk) and use uid/gid
+ get from inode as RID for local domain SID.
+ The current acl implementation is limited to
+ standalone server, not a domain member.
+Kerberos Supported.
+Durable handle v1,v2 Planned for future.
+Persistent handle Planned for future.
+SMB2 notify Planned for future.
+Sparse file support Supported.
+DCE/RPC support Partial Supported. a few calls(NetShareEnumAll,
+ NetServerGetInfo, SAMR, LSARPC) that needed as
+ file server via netlink interface from
+ ksmbd.mountd.
+============================== =================================================
+
How to run
==========