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>
This commit is contained in:
Namjae Jeon 2021-03-20 16:06:59 +09:00 committed by Steve French
parent 50355b0b20
commit 04bee6e336

View File

@ -10,6 +10,34 @@ for sharing files over network.
CIFSD architecture 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 subset of performance related operations belong in kernelspace and
the other subset which belong to operations which are not really related with the other subset which belong to operations which are not really related with
performance in userspace. So, DCE/RPC management that has historically resulted 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 NetServerGetInfo. Complete DCE/RPC response is prepared from the user space
and passed over to the associated kernel thread for the client. and passed over to the associated kernel thread for the client.
Key Features
============
The supported features are: CIFSD Feature Status
* SMB3 protocols for basic file sharing ====================
* Auto negotiation
* Compound requests ============================== =================================================
* Oplock/Lease Feature name Status
* Large MTU ============================== =================================================
* NTLM/NTLMv2 Dialects Supported. SMB2.1 SMB3.0, SMB3.1.1 dialects
* HMAC-SHA256 Signing excluding security vulnerable SMB1.
* Secure negotiate Auto Negotiation Supported.
* Signing Update Compound Request Supported.
* Pre-authentication integrity(SMB 3.1.1) Oplock Cache Mechanism Supported.
* SMB3 encryption(CCM, GCM) SMB2 leases(v1 lease) Supported.
* SMB direct(RDMA) Directory leases(v2 lease) Planned for future.
* SMB3.1.1 POSIX extension support Multi-credits Supported.
* ACLs NTLM/NTLMv2 Supported.
* Kerberos 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.
============================== =================================================
The features that are planned or not supported:
* SMB3 Multi-channel
* Durable handle v1,v2
* Persistent handles
* Directory lease
* SMB2 notify
How to run How to run
========== ==========