From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by dpdk.org (Postfix) with ESMTP id 9A95795DE for ; Thu, 4 Feb 2016 15:40:22 +0100 (CET) Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) by mx1.redhat.com (Postfix) with ESMTPS id 206FB7AE94 for ; Thu, 4 Feb 2016 14:40:22 +0000 (UTC) Received: from aconole-fed23 (vpn1-5-127.ams2.redhat.com [10.36.5.127]) by int-mx13.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id u14EeJdq009267 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Thu, 4 Feb 2016 09:40:21 -0500 From: Aaron Conole To: Panu Matilainen References: <1452874684-12750-1-git-send-email-ferruh.yigit@intel.com> <87twmauafh.fsf@redhat.com> <20160119095950.GA15736@sivlogin002.ir.intel.com> <569E1E1C.6050406@redhat.com> <20160204133035.GA6128@sivlogin002.ir.intel.com> Date: Thu, 04 Feb 2016 09:40:18 -0500 In-Reply-To: <20160204133035.GA6128@sivlogin002.ir.intel.com> (Ferruh Yigit's message of "Thu, 4 Feb 2016 13:30:35 +0000") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Scanned-By: MIMEDefang 2.68 on 10.5.11.26 Cc: dev@dpdk.org Subject: Re: [dpdk-dev] [RFC 0/3] Use common Linux tools to control DPDK ports X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Feb 2016 14:40:23 -0000 Hi Ferruh, I missed your original reply to me. Sorry. Ferruh Yigit writes: > On Tue, Jan 19, 2016 at 01:29:32PM +0200, Panu Matilainen wrote: >> On 01/19/2016 11:59 AM, Ferruh Yigit wrote: >>> On Mon, Jan 18, 2016 at 11:20:02AM -0500, Aaron Conole wrote: >>>> Ferruh Yigit writes: >>>>> This work is to make DPDK ports more visible and to enable using common >>>>> Linux tools to configure DPDK ports. >>>> >>>> This is a good goal. Only question - why use an additional kernel module >>>> to do this? Is it _JUST_ for ethtool support? >>> >>> Kernel module used to create/destroy Linux net_devices, and module has a simple >>> driver for that device which only handles control messages by passing them into >>> userspace. >>> >>> To represent DPDK ports as Linux net_devices we need kernel support. Why? Just create tun/tap interface, no? Then you get a queue into the network stack, as well. Subscribe to netlink, and you can get all of the changes that happen in the system - just look for those messages that relate to your tun device. At least, that's what I see right away (and I have some private patches for this, and you can take them over if you want). I think most of the stuff you are trying to solve already exists, but I am probably misunderstanding something (apologies for that). >>>> I think the other stuff >>>> can be accomplished using netlink sockets + messages, no? >>> >>> Netlink sockets just used to communicate kernel-space - user-space, this is not >>> why we need a kernel module, for example this communication is implemented in >>> original KNI as part of FIFO. >>> >>>> The only >>>> trepidation I would have with something like this is the support from >>>> major vendors - out of tree modules are not generally supportable. Might >>>> be good to get some of the ethtool commands as netlink messages as well, >>>> then it is supportable with no 3rd party kernel modules. >>> >>> Yes, there is a out of three module problem for some distros, but unfortunately >>> we are not able to find a solution for this case without an >>> external kernel module. >>> >>> This patch is still an RFC and if we receive suggested solution without a kernel >>> module, we can work on it together. >> >> If it has to be in the kernel then you need to find a design that is >> upstreamable. Out of tree kernel modules are not a solution, they're a >> problem that people are working on eliminating. >> > > Hi Stephen, and other Linux experts in the mail list, > > Can you please help finding a upstreamable solution for kernel control path? > > Mainly what we are looking for is userspace network driver support in > kernel, similar to what FUSE does but a much simple version. > > Above KCP module basically does this, by having a network driver which > passing requests to userspace network driver, but it is not generic > enough. > > I wonder if it is possible make it more generic by extending rtnetlink support: > 1- Add a new network driver to Linux (or update existing one like tun) > to forward requests, get responses. > 2- Extend rtnelink to support to attach any userspace driver to this > device? (ip link set uspace ?) > > Does this make sense? > > rtnetlink already supports creating interfaces, and it provides > kernel/user space communication, > with "attach" support interface learns about it's peer in usersppace > and can communicate. > > FUSE like communication method also can be alternative to transfer > request and responses, but since rtnelink support exists, no need to > create something new think. > > Thanks, > ferruh