~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/filesystems/smb/ksmbd.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/filesystems/smb/ksmbd.rst (Version linux-6.12-rc7) and /Documentation/filesystems/smb/ksmbd.rst (Version linux-5.8.18)


  1 .. SPDX-License-Identifier: GPL-2.0               
  2                                                   
  3 ==========================                        
  4 KSMBD - SMB3 Kernel Server                        
  5 ==========================                        
  6                                                   
  7 KSMBD is a linux kernel server which implement    
  8 for sharing files over network.                   
  9                                                   
 10 KSMBD architecture                                
 11 ==================                                
 12                                                   
 13 The subset of performance related operations b    
 14 the other subset which belong to operations wh    
 15 performance in userspace. So, DCE/RPC manageme    
 16 into a number of buffer overflow issues and da    
 17 account management are implemented in user spa    
 18 File operations that are related with performa    
 19 in kernel space (ksmbd). This also allows for     
 20 interface for all file operations.                
 21                                                   
 22 ksmbd (kernel daemon)                             
 23 ---------------------                             
 24                                                   
 25 When the server daemon is started, It starts u    
 26 (ksmbd/interface name) at initialization time     
 27 for listening to SMB requests. Whenever new cl    
 28 thread will accept the client connection and f    
 29 communication channel between the client and t    
 30 processing of SMB requests(commands) from clie    
 31 clients to make new connections. Each instance    
 32 to indicate connected clients. Depending on th    
 33 thread can decide to pass through the commands    
 34 currently DCE/RPC commands are identified to b    
 35 To further utilize the linux kernel, it has be    
 36 as workitems and to be executed in the handler    
 37 It allows for multiplexing of the handlers as     
 38 extra worker threads if the load is increased     
 39 decreased it destroys the extra worker threads    
 40 established with the client. Dedicated ksmbd/1    
 41 ownership of receiving/parsing of SMB commands    
 42 in parallel i.e., there can be multiple client    
 43 parallel. After receiving each command a separ    
 44 for each command which is further queued to be    
 45 So, each SMB workitem is queued to the kworker    
 46 sharing to be managed optimally by the default    
 47 performance by handling client commands in par    
 48                                                   
 49 ksmbd.mountd (user space daemon)                  
 50 --------------------------------                  
 51                                                   
 52 ksmbd.mountd is a userspace process to, transf    
 53 are registered using ksmbd.adduser (part of ut    
 54 allows sharing information parameters that are    
 55 kernel. For the execution part it has a daemon    
 56 and connected to the kernel interface using ne    
 57 requests (dcerpc and share/user info). It hand    
 58 dozen) that are most important for file server    
 59 NetServerGetInfo. Complete DCE/RPC response is    
 60 and passed over to the associated kernel threa    
 61                                                   
 62                                                   
 63 KSMBD Feature Status                              
 64 ====================                              
 65                                                   
 66 ============================== ===============    
 67 Feature name                   Status             
 68 ============================== ===============    
 69 Dialects                       Supported. SMB2    
 70                                (intentionally     
 71                                dialect).          
 72 Auto Negotiation               Supported.         
 73 Compound Request               Supported.         
 74 Oplock Cache Mechanism         Supported.         
 75 SMB2 leases(v1 lease)          Supported.         
 76 Directory leases(v2 lease)     Supported.         
 77 Multi-credits                  Supported.         
 78 NTLM/NTLMv2                    Supported.         
 79 HMAC-SHA256 Signing            Supported.         
 80 Secure negotiate               Supported.         
 81 Signing Update                 Supported.         
 82 Pre-authentication integrity   Supported.         
 83 SMB3 encryption(CCM, GCM)      Supported. (CCM    
 84 SMB direct(RDMA)               Supported.         
 85 SMB3 Multi-channel             Partially Suppo    
 86                                replay/retry me    
 87 Receive Side Scaling mode      Supported.         
 88 SMB3.1.1 POSIX extension       Supported.         
 89 ACLs                           Partially Suppo    
 90                                (auditing) is p    
 91                                ownership (SIDs    
 92                                values(then sto    
 93                                get from inode     
 94                                The current acl    
 95                                standalone serv    
 96                                Integration wit    
 97                                to allow future    
 98                                member.            
 99 Kerberos                       Supported.         
100 Durable handle v1,v2           Planned for fut    
101 Persistent handle              Planned for fut    
102 SMB2 notify                    Planned for fut    
103 Sparse file support            Supported.         
104 DCE/RPC support                Partially Suppo    
105                                NetServerGetInf    
106                                for file server    
107                                from ksmbd.moun    
108                                Samba tools and    
109                                investigated to    
110                                DCE/RPC managem    
111                                for Witness pro    
112 ksmbd/nfsd interoperability    Planned for fut    
113                                support are Lea    
114 SMB3.1.1 Compression           Planned for fut    
115 SMB3.1.1 over QUIC             Planned for fut    
116 Signing/Encryption over RDMA   Planned for fut    
117 SMB3.1.1 GMAC signing support  Planned for fut    
118 ============================== ===============    
119                                                   
120                                                   
121 How to run                                        
122 ==========                                        
123                                                   
124 1. Download ksmbd-tools(https://github.com/cif    
125    compile them.                                  
126                                                   
127    - Refer to README(https://github.com/cifsd-    
128      to know how to use ksmbd.mountd/adduser/a    
129                                                   
130      $ ./autogen.sh                               
131      $ ./configure --with-rundir=/run             
132      $ make && sudo make install                  
133                                                   
134 2. Create /usr/local/etc/ksmbd/ksmbd.conf file    
135                                                   
136    - Refer to ksmbd.conf.example in ksmbd-util    
137      for details to configure shares.             
138                                                   
139         $ man ksmbd.conf                          
140                                                   
141 3. Create user/password for SMB share.            
142                                                   
143    - See ksmbd.adduser manpage.                   
144                                                   
145      $ man ksmbd.adduser                          
146      $ sudo ksmbd.adduser -a <Enter USERNAME f    
147                                                   
148 4. Insert the ksmbd.ko module after you build     
149    if ksmbd is built into the kernel.             
150                                                   
151    - Set ksmbd in menuconfig(e.g. $ make menuc    
152        [*] Network File Systems  --->             
153            <M> SMB3 server support (EXPERIMENT    
154                                                   
155         $ sudo modprobe ksmbd.ko                  
156                                                   
157 5. Start ksmbd user space daemon                  
158                                                   
159         $ sudo ksmbd.mountd                       
160                                                   
161 6. Access share from Windows or Linux using SM    
162                                                   
163 Shutdown KSMBD                                    
164 ==============                                    
165                                                   
166 1. kill user and kernel space daemon              
167         # sudo ksmbd.control -s                   
168                                                   
169 How to turn debug print on                        
170 ==========================                        
171                                                   
172 Each layer                                        
173 /sys/class/ksmbd-control/debug                    
174                                                   
175 1. Enable all component prints                    
176         # sudo ksmbd.control -d "all"             
177                                                   
178 2. Enable one of the components (smb, auth, vf    
179         # sudo ksmbd.control -d "smb"             
180                                                   
181 3. Show what prints are enabled.                  
182         # cat /sys/class/ksmbd-control/debug      
183           [smb] auth vfs oplock ipc conn [rdma    
184                                                   
185 4. Disable prints:                                
186         If you try the selected component once    
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php