cifsd/nfsd interop

Amir Goldstein amir73il at gmail.com
Thu Apr 22 08:51:45 UTC 2021


[re-posting for samba-technical with shorter CC list]

On Thu, Apr 22, 2021 at 11:11 AM Namjae Jeon <namjae.jeon at samsung.com> wrote:
>
> >
> > On Thu, Apr 22, 2021 at 4:31 AM Namjae Jeon <namjae.jeon at samsung.com> wrote:
> > >
> > > This adds a document describing ksmbd design, key features and usage.
> > >
> > > Signed-off-by: Namjae Jeon <namjae.jeon at samsung.com>
> > > Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky at gmail.com>
> > > Signed-off-by: Hyunchul Lee <hyc.lee at gmail.com>
> > > Acked-by: Ronnie Sahlberg <lsahlber at redhat.com>
> > > Signed-off-by: Steve French <stfrench at microsoft.com>
> > > ---
> > >  Documentation/filesystems/cifs/cifsd.rst | 152
> > > +++++++++++++++++++++++  Documentation/filesystems/cifs/index.rst |  10 ++
> > >  Documentation/filesystems/index.rst      |   2 +-
> > >  3 files changed, 163 insertions(+), 1 deletion(-)  create mode 100644
> > > Documentation/filesystems/cifs/cifsd.rst
> > >  create mode 100644 Documentation/filesystems/cifs/index.rst
> > >
> > > diff --git a/Documentation/filesystems/cifs/cifsd.rst
> > > b/Documentation/filesystems/cifs/cifsd.rst
> > > new file mode 100644
> > > index 000000000000..cb9f87b8529f
> > > --- /dev/null
> > > +++ b/Documentation/filesystems/cifs/cifsd.rst
> > > @@ -0,0 +1,152 @@
> > > +.. SPDX-License-Identifier: GPL-2.0
> > > +
> > > +==========================
> > > +CIFSD - SMB3 Kernel Server
> > > +==========================
> > > +
> > > +CIFSD is a linux kernel server which implements SMB3 protocol in
> > > +kernel space for sharing files over network.
> > > +
> >
> > Hello cifsd team!
> Hi Amir,
> >
> > I am very excited to see your work posted and especially excited to learn about the collaboration with
> > the samba team.
> Thanks!
> >
> > One of the benefits from kernel smbd implementation is improved ability to interoperate with VFS in
> > general and nfsd in particular.
> Agreed. This seems to be an important issue, I was missing this.
> >
> > For example, I have discussed with several samba team members the option that ksmbd will serve as a
> > kernel lease agent for samba, instead of having to work around the limitations of file lock UAPI.
> >
> > Could you share your plans (if any) for interoperability improvements with vfs/nfsd?
> >
> > It would be useful to add an "Interop" column to the Features table below to document the current
> > state and future plans or just include a note about it in the Status column.
> Okay, First, I need to check your previous mails about this. Then I will update it in features table.
> >
> > Off the top of my head, a list of features that samba supports partial kernel/nfsd interop with are:
> > - Leases (level 1)
> > - Notify
> > - ACLs (NT to POSIX map)
> > - Share modes
> >
> > In all of those features, ksmbd is in a position to do a better job.
> Right.
> >
> > I only assume that ksmbd implementation of POSIX extensions is a "native" implementation (i.e. a
> > symlink is implemented as a symlink) so ksmbd and nfsd exporting the same POSIX fs would at least
> > observe the same objects(?), but I would rather see this explicitly documented.
> Okay.
> >
> > Thanks,
> Thank you!
> > Amir.
> >
> > [...]
> >
> > > +
> > > +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.
> > > +==============================
> > > +=================================================
> > > +
>



More information about the samba-technical mailing list