On Mon, Aug 28, 2023 at 2:02 AM Steve French <smfrench@xxxxxxxxx> wrote: > > For more detail on SMB311 over QUIC (which is already supported by some servers) which I find exciting and very relevant to many use cases there are some overview presentations at eg: > > https://snia.org/sites/default/files/SDC/2020/103-Dantuluri-SMB-Over-QUIC-Files.pdf > > And > > https://www.snia.org/sites/default/files/SDCEMEA/2021/snia-SMB-over-QUIC.pdf > > And setup instructions for the windows example can be found here: https://learn.microsoft.com/en-us/windows-server/storage/file-server/smb-over-quic > Thanks for sharing the slides, Samba over QUIC is indeed quite mature. After reading the slides, I can understand how these two QUIC features work in Samba: - All packets are always encrypted and handshake is authenticated with TLS 1.3 - Improved congestion control and loss recovery But it seems not clear to me how some other features are used in samba: - Parallel streams of reliable and unreliable application data Multi-streaming: How is Samba using the multi-streaming of QUIC? I saw there are Multichannel in Samba, but I'm not sure it's using multiple connections or multi-streaming in their implementation. Unreliable application data: Does Samba need to transmit unreliable data? - Exchanges application data in the first round trip (0-RTT) 0-RTT: does Microsoft's Samba over QUIC implementation really support this? As the handshake of linux in-kernel QUIC happens in userspace, 0-RTT becomes difficult to implement. - Survives a change in the clients IP address or port Connection Migration: This could be a useful feature, but I don't see any spec in the slides, has their implementation supported it? Thanks. > On Sun, Aug 27, 2023, 10:32 Xin Long <lucien.xin@xxxxxxxxx> wrote: >> >> On Fri, Aug 25, 2023 at 9:08 AM Steve French <smfrench@xxxxxxxxx> wrote: >> > >> > Xin Long, >> > I am very interested in trying out LInux kernel SMB3.1.1 mounts using >> > QUIC but wasn't sure how far along your kernel code was. Do you have >> > an update on it? There was at least one other server type that >> > implements SMB3.1.1 over QUIC, but probably easiest to test to Windows >> > server (e.g. in Azure). >> Got it. >> >> As for https://github.com/lxin/quic, it has implemented the basic support >> for most main features, but still some important ones are missing, like >> Streams and Connection IDs Managements. I'm recently doing interoperability >> testing with other C implementations like picoquic. >> >> It still has a long way to go to get into the upstream kernel, but I'm pretty >> sure the need by kernel SMB and NFS will speed this up. I think at the same >> time, some work can be done in fs/smb to move things forward. >> >> > >> > The SMB3.1.1 changes are small to support QUIC, and I could do those >> > (or review yours if you have already done it). >> > >> Cool. >> >> I don't really have patches and don't know much detail of fs/smb. So it will >> be great if you can try this out on fs/smb. >> >> For the test to Windows server, I will let you know once the basic support >> of the rest features is done in the QUIC implementation, maybe in 1-2 months. >> Meanwhile, on fs/smb side, I think checking tls_server/client_hello_x509() >> API use in net/sunrpc might be helpful for you to design the code in fs/smb. >> >> Thanks.