Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp5212078pxj; Wed, 9 Jun 2021 11:49:48 -0700 (PDT) X-Google-Smtp-Source: ABdhPJysTrX12QE5dMNiz3cVRsynZDNZtUXlFpKr3XnAr3FGi5vO76pvfAW0xC2mmp3ZE5ONEaCB X-Received: by 2002:a17:906:1c4d:: with SMTP id l13mr1133194ejg.531.1623264588476; Wed, 09 Jun 2021 11:49:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1623264588; cv=none; d=google.com; s=arc-20160816; b=VhiYZG7Kgky7+Jw/Zn68l7wMXru79N1vD/cOaBSWS8AnIMe0fr8NO2+FslpX7kxcBI Lc25MZBmvPuzQUPEXToF/I3RwKo+HXBB0uANI2sX3uNkyG27ukP33KjWHoqFxzdo/Hrb d3tcUEMpc+Z6PUBl/MnZFjl8qZTkrV63G1APDATtIiqxXA6IeCPQCt+P1HZ4W9dBBsph nzYRVuHFdE4fZIrIbB1SuakI1pjrZJoSGPK19r7kbYQj878QFIPHHDaIAhhdDtx1lplJ aBVcYZOFymg9/EKtw6bdKgaYPjSxCAQ+5bBY+Rh0bQQ9PkyevNmRa5F5XQu02OTl2SUc WYyA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=COFT0JFfRWs7TJRRnzls/RjLXk8ioI+l530lDj0TJDM=; b=RCQHXHl0cfpB/jO4RoUqJgaQz+UAWJrF4gF9FCfY645IwhmpSCSGf8POxXMnBCPVwn TS0W9sIV98dizBEoSq/pUAMboIRrq208GYzh5kBGsD4hW4GZkd5rTsczWt1Q4ymWNQiT SkEbfEetMrBVYN8+KH3i51g/p3nJi+NdNB/n3aTsenpF5h9vWkwuPd2TUmTiLTTfhAw/ NGgiE/Aiyh2BM/vNBYxBAzPFoTofedkYfQNUbQBYQQrWFTWq2HO40C0yLKMXRmBzRkyC 6dl9oarKpa5oPGXT8O0dX1KTMhK5aEWCK/IayplVQvF+G7tHzt45HBsMh1GM/Uxkx8xD i68w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=iELYteZ1; spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id y5si323375edv.563.2021.06.09.11.48.58; Wed, 09 Jun 2021 11:49:48 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=iELYteZ1; spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229937AbhFISqt (ORCPT + 99 others); Wed, 9 Jun 2021 14:46:49 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:40939 "EHLO us-smtp-delivery-124.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229715AbhFISqs (ORCPT ); Wed, 9 Jun 2021 14:46:48 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1623264293; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=COFT0JFfRWs7TJRRnzls/RjLXk8ioI+l530lDj0TJDM=; b=iELYteZ1Lmv7WWGaRfT47wEEEcH5M0ZIBRAB0dhRTnh2kANjzUVLRew9TlnitpGyhI0ZHZ GqJ8Yg+1BcVa9Ge9hsnEXWWvx1JWdDgO7bmmBjliMRegeOpQu3VsYrDSWL62W30XlYtzRo dZuzkehhI/6dMCofeDdLK4bhvmiDz6M= Received: from mail-io1-f71.google.com (mail-io1-f71.google.com [209.85.166.71]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-217-53LlHmy_PamB1RKxxyZPJA-1; Wed, 09 Jun 2021 14:44:52 -0400 X-MC-Unique: 53LlHmy_PamB1RKxxyZPJA-1 Received: by mail-io1-f71.google.com with SMTP id y26-20020a6be51a0000b02904b200a26422so10056075ioc.8 for ; Wed, 09 Jun 2021 11:44:52 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=COFT0JFfRWs7TJRRnzls/RjLXk8ioI+l530lDj0TJDM=; b=tKtsczCPRvr4nZYsu/nIDJECkhUffph2DeyCB3kCHmDdsRUuggn1yBRfKAyYnuDogv KCVuKFPcb6awdi2IDQMPm29NvrUpMtIFrqNiFPHzaYW37kJYQMFxd0Q0/Tl8Oo4BezjO CFpxVuQuO/nW48XuSzw7X/IP/WN4NkZ6g6kFwSEiaTRDL6/wdLUcXU9H16BXM0jjHBox gz/S56zfktS95+xk6iTIguajiuBRX3q0yREoJrjzYP5AU4qLcJiPMQAfos/1RE7V/GF8 1mnh23fb+yNp+f4M9qwAL1US1Bstm3fWKiwuxabbezxZh0cXxr4Rf+eVPVUY3STzs1Rc HCvg== X-Gm-Message-State: AOAM533GETYdO8iYgxnrB6GQlYHV95k8/rQrEQM2g7S1VLpRVo9ar+gk mRbMiWt0xauYZkNNyqozI0ejF//D1gcZMJ3tB8ftYKrFmobL7OAPrMHj08kLRtvuk6qSzsMxvMn K6me/TEKmXYjGl40BNw4VGYR5xQJwaPUs8Hxg X-Received: by 2002:a6b:4105:: with SMTP id n5mr649278ioa.148.1623264291376; Wed, 09 Jun 2021 11:44:51 -0700 (PDT) X-Received: by 2002:a6b:4105:: with SMTP id n5mr649269ioa.148.1623264291154; Wed, 09 Jun 2021 11:44:51 -0700 (PDT) MIME-Version: 1.0 References: <87pmwxsjxm.fsf@suse.com> <35352ef0-86ed-aaa5-4a49-b2b08dc3674d@samba.org> <20210608153349.0f02ba71@hermes.local> <20210609094818.7aaf21bd@kicinski-fedora-PC1C0HJN.hsd1.ca.comcast.net> In-Reply-To: <20210609094818.7aaf21bd@kicinski-fedora-PC1C0HJN.hsd1.ca.comcast.net> From: Alexander Aring Date: Wed, 9 Jun 2021 14:44:40 -0400 Message-ID: Subject: Re: quic in-kernel implementation? To: Jakub Kicinski Cc: Stephen Hemminger , Stefan Metzmacher , Steve French , =?UTF-8?Q?Aur=C3=A9lien_Aptel?= , Network Development , linux-nfs , CIFS , Leif Sahlberg , Steven Whitehouse Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org Hi, On Wed, Jun 9, 2021 at 12:48 PM Jakub Kicinski wrote: > > On Tue, 8 Jun 2021 15:33:49 -0700 Stephen Hemminger wrote: > > On Tue, 8 Jun 2021 17:03:16 -0400 > > > > With having the fuse-like socket before it should be trivial to switch > > > > between the implementations. > > > > > > So a good starting point would be to have such a "fuse-like socket" > > > component? What about having a simple example for that at first > > > without having quic involved. The kernel calls some POSIX-like socket > > > interface which triggers a communication to a user space application. > > > This user space application will then map everything to a user space > > > generated socket. This would be a map from socket struct > > > "proto/proto_ops" to user space and vice versa. The kernel application > > > probably can use the kernel_FOO() (e.g. kernel_recvmsg()) socket api > > > directly then. Exactly like "fuse" as you mentioned just for sockets. > > > > > > I think two veth interfaces can help to test something like that, > > > either with a "fuse-like socket" on the other end or an user space > > > application. Just doing a ping-pong example. > > > > > > Afterwards we can look at how to replace the user generated socket > > > application with any $LIBQUIC e.g. msquic implementation as second > > > step. > > > > Socket state management is complex and timers etc in userspace are hard. > > +1 seeing the struggles fuse causes in storage land "fuse for sockets" > is not an exciting temporary solution IMHO.. What about an in-kernel sunrpc client which forwards "in-kernel proxy socket syscall functions" to a user server who executes those on a user socket? Does this sound like a better approach? Sure there may be more problems, but maybe we could try it with something simple at first to discover all those problems. - Alex