Received: by 2002:ac0:e350:0:0:0:0:0 with SMTP id g16csp159990imn; Thu, 4 Aug 2022 00:36:19 -0700 (PDT) X-Google-Smtp-Source: AA6agR417zsgOmofcO+3KfWEeoGkevwyzfXc1fxerDe6swYJ9JmDTVKNhlZOL4wPOJLvXptq3X3X X-Received: by 2002:a17:906:93f0:b0:730:6b07:102d with SMTP id yl16-20020a17090693f000b007306b07102dmr462812ejb.237.1659598579742; Thu, 04 Aug 2022 00:36:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1659598579; cv=none; d=google.com; s=arc-20160816; b=JxXHJBsOCEApASxpDokuRVUn58i0WXOEnGMZNr0vIJEOYActCq1R/JRbwA5n3UxEXN WNhEvofAOZGL6zy5vBNEblnrGwfNQXZ2BHn3bUalM/xv8+z0dAXEJ10LIW37WkgN2YyE S5kfTL9xFII/tZ1zyLRmI/obbctWXAc0E/X7tbwAxdcSSd6WxbNU31lvXlO1yGScYjQc fgYEjnQCPDhlDc08fFkszZR5fNJgTE3UtnnPAbsoePqy5R1FHnVlmXqkpMtOo9XkcRsn WBCNMa6GgwstyPOUfsFKUFDHoH6EaE1is7nHt+omu/mrWv4TGIGN5aMSC8CRZoHDjXQN 3frw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:subject :organization:from:references:cc:to:content-language:user-agent :mime-version:date:message-id:dkim-signature; bh=ozfKmeUZgy7rwlyXRRHjaTQTK8+6MqgnILVWR2HgUw4=; b=ZwNDQIddmOPwfDQdWOI+5uAiP/st1MZOAnaVPLXEpewT3vM+EczX2S3EmpslFBW9eA UZEGuL2XdMYES3EDeHj9dzhUwGV8K/7IeEkNJkBcV3tCKwiqZHg2Csio7Ee1dmF4ZVnR QRNxI71yPoyHp+yFZyh3kE54VoHOMyp3cRI52c5T9Q4XVvV3XdjF4LTdrgOs4HwmrR10 iHGGqcluOvyXmMmkr+PgHRRimkFmrhEArDSgiVpEKO6MWNaWEKtuecd4tSKUmVi1Tk7V m/DwcuOs4wQePCc6L+LZFAdx4XFJFt+v1zLphaa7yFGFs6LkbWtUZVPQhutFSkGwbfin VzbQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@openvpn.net header.s=20170822-45nk5nwl header.b=ISDfqj1G; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=openvpn.net Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id hs23-20020a1709073e9700b007305f8cc1d8si48110ejc.819.2022.08.04.00.35.52; Thu, 04 Aug 2022 00:36:19 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@openvpn.net header.s=20170822-45nk5nwl header.b=ISDfqj1G; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=openvpn.net Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238816AbiHDHd0 (ORCPT + 99 others); Thu, 4 Aug 2022 03:33:26 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51978 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230194AbiHDHdZ (ORCPT ); Thu, 4 Aug 2022 03:33:25 -0400 Received: from smtp116.iad3a.emailsrvr.com (smtp116.iad3a.emailsrvr.com [173.203.187.116]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2A9782250C; Thu, 4 Aug 2022 00:33:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=openvpn.net; s=20170822-45nk5nwl; t=1659598403; bh=kYhrOpJX2cllhR3M2EBifKrqWsb/ILqyjRs7YM4OHjU=; h=Date:To:From:Subject:From; b=ISDfqj1G3uusPVK1E44YDt4hYar4Xj2ivxFzmGL2gWAjMMX2ry49Lhk5J9xt8p7el 0lrphm899gep807MRhd2qHFAQSvC8nwBSk3Y0FmOAUdFWi1T96aKN1DNXKaNtYKPd7 VuCcLGRRCETii3jF68+7Qv1MaGuLh6Cie7efqsqo= X-Auth-ID: antonio@openvpn.net Received: by smtp23.relay.iad3a.emailsrvr.com (Authenticated sender: antonio-AT-openvpn.net) with ESMTPSA id A1983239B9; Thu, 4 Aug 2022 03:33:22 -0400 (EDT) Message-ID: <684e4a61-3fe3-00ac-42d2-213e501f14d4@openvpn.net> Date: Thu, 4 Aug 2022 09:34:13 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.12.0 Content-Language: en-US To: Stephen Hemminger Cc: Andrew Lunn , netdev@vger.kernel.org, David Miller , Jakub Kicinski , linux-kernel@vger.kernel.org References: <20220719014704.21346-1-antonio@openvpn.net> <20220719014704.21346-2-antonio@openvpn.net> <52b9d7c9-9f7c-788e-2327-33af63b9c748@openvpn.net> <20220803084202.4e249bdb@hermes.local> <1219c53f-362e-cd55-73e0-87dfe281ec34@openvpn.net> <20220803091942.0e388f5b@hermes.local> From: Antonio Quartulli Organization: OpenVPN Inc. Subject: Re: [RFC 1/1] net: introduce OpenVPN Data Channel Offload (ovpn-dco) In-Reply-To: <20220803091942.0e388f5b@hermes.local> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Classification-ID: 35c30856-d3b1-47cd-9a9b-4df3cd07592e-1-1 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 03/08/2022 18:19, Stephen Hemminger wrote: > On Wed, 3 Aug 2022 17:48:45 +0200 > Antonio Quartulli wrote: > >> There must have been some confusion - sorry about that. >> >> The repository I linked in my previous email is this very same driver >> packaged as "out-of-tree" module (i.e. for people running a kernel that >> does not yet ship ovpn-dco) and contains some compat wrapper. >> >> >> The driver I have submitted to the list is 100% standalone and does not >> contain any compat code. >> >> >> The only extra component required to do something useful with this >> driver is the OpenVPN software in userspace. > > > Good to here thanks. > I wonder if there is any chance of having multiple VPN projects > using same infrastructure. There seems to be some parallel effort > in L2TP, OpenVPN, etc. Thanks for rising this point, Stephen. I also believe it would be nice to re-use as much infrastructure as possible (I always strive to reduce code duplication, while keeping core building blocks simple and re-usable), however, it seems that the various implementations currently do not share much logic. What could be shared is already shared (i.e. crypto, napi, gso, netdev, etc). Handling the data traffic is something that can hardly be shared due to different packet manipulation (i.e. encapsulation). One area that could still be worth exploring might be the queuing mechanism that handles packet reception+decryption and encryption+transmission. If we factor out the protocol specific bits, we might be able to make the high level logic common. However, so far all my attempts did not lead to anything that could be implemented in a reasonable manner. Still, I believe this is something we could work on in the medium/long-term. Regards, -- Antonio Quartulli OpenVPN Inc.