From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-lf0-f52.google.com (mail-lf0-f52.google.com [209.85.215.52]) by dpdk.org (Postfix) with ESMTP id 666EA568A for ; Wed, 28 Sep 2016 17:00:21 +0200 (CEST) Received: by mail-lf0-f52.google.com with SMTP id l131so55691945lfl.2 for ; Wed, 28 Sep 2016 08:00:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=6wind-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:user-agent:in-reply-to :references:mime-version:content-transfer-encoding; bh=D0BxXpf1QirYL5HVwdCPjS62z3kzeDbrq3rO0jm5Htk=; b=SU+3alIKTW4EM9JfMYb5CaPPWSRnIIsQhHm0aoZmW2EIMqUfInUVXE2B+NrFvG3TK2 mf5UFHOIw63QDRzx6qHmUjBWtkS4ioM5c7fqVHltILVEW827dSjPGUHyB03DMvV/DSL8 Q/zbAka2i7JGPmi24eEsw9lK7RQ1jTscjFmWE4ey75/Ieex30eI+y20yccF8OJrfiwsD rE5pmddmLmu4kCYjSo0Kk1NCZiliuq/dimyLMLeHngKUgubvPpc3i97hp7bfPJZn7vAj blbiEyfYsZKCuCiCemYkYLv5SgCzvryTOa4CZXz5h3nVOWYP1TEfzvATWLc+j3RJc+2s stBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:user-agent :in-reply-to:references:mime-version:content-transfer-encoding; bh=D0BxXpf1QirYL5HVwdCPjS62z3kzeDbrq3rO0jm5Htk=; b=VLcGu4+hDTlEx29Z69NKh0tS3hvGKKpgTMIJSSuaRVmY7kVPlqqhEFqFiZUb3GdT4Q w6mk7APHmV5DTZOmzMuWyZZGXm3jdKYM/v5ChWlM/AxgcEJjQ3aVfjzqLDvpUSnXSFQu pP6VPVe1VmRSkee/dL7I8VafnPC9BXcTIkXGsAL7yXtkB9LovspG+PLeDdQClSm3uJjf IeWXbdoiwPSpo+tljyQ2PxYMffEl3oRKZ/iThK3/VymXlTZxVysGOrXP5NJaSRpb70dp rKqrrUAAR6aWFBlOBTQ7ExcBq7U9vp2jzwyBUK14StKwg3AXHUWV6rrHQvBx8CDjyDBF ibcA== X-Gm-Message-State: AE9vXwO4tvifaf7+zV3ieiozUuCQXQAOzwnJdxwDPLsAOJFKQ0lv01gfPhLRVeJrkia+CUln X-Received: by 10.194.97.79 with SMTP id dy15mr29134174wjb.100.1475074820259; Wed, 28 Sep 2016 08:00:20 -0700 (PDT) Received: from xps13.localnet (184.203.134.77.rev.sfr.net. [77.134.203.184]) by smtp.gmail.com with ESMTPSA id zz9sm6300197wjb.36.2016.09.28.08.00.19 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 28 Sep 2016 08:00:19 -0700 (PDT) From: Thomas Monjalon To: "Iremonger, Bernard" Cc: dev@dpdk.org, "Ananyev, Konstantin" , "Richardson, Bruce" , Jerin Jacob , "Shah, Rahul R" , "Lu, Wenzhuo" , azelezniak Date: Wed, 28 Sep 2016 17:00:18 +0200 Message-ID: <1789506.WrrZg80Z2n@xps13> User-Agent: KMail/4.14.10 (Linux/4.5.4-1-ARCH; KDE/4.14.11; x86_64; ; ) In-Reply-To: <8CEF83825BEC744B83065625E567D7C21A08DD15@IRSMSX108.ger.corp.intel.com> References: <1471528125-26357-1-git-send-email-bernard.iremonger@intel.com> <2601191342CEEE43887BDE71AB9772583F0BC180@irsmsx105.ger.corp.intel.com> <8CEF83825BEC744B83065625E567D7C21A08DD15@IRSMSX108.ger.corp.intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Subject: Re: [dpdk-dev] [RFC PATCH v2 3/5] librte_ether: add API's for VF management 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: Wed, 28 Sep 2016 15:00:21 -0000 2016-09-28 14:48, Iremonger, Bernard: > > > > > Subject: Re: [dpdk-dev] [RFC PATCH v2 3/5] librte_ether: add API's for > > > VF management > > > > > > 2016-09-28 13:26, Ananyev, Konstantin: > > > > From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com] > > > > > 2016-09-28 11:23, Ananyev, Konstantin: > > > > > > If we this way (force user to include driver specific headers > > > > > > and call driver specific functions), how you guys plan to make this > > functionality available for multiple driver types. > > > > > > > > > > Multiple drivers won't have exactly the same specific features. > > > > > But yes, there are some things common to several Intel NICs. > > > > > > > > > > > From discussion with Bernard understand that customers would > > need similar functionality for i40e. > > > > > > Does it mean that they'll have to re-implement this part of their code > > again? > > > > > > Or would have to create (and maintain) their own shim layer that > > would provide some s of abstraction? > > > > > > Basically their own version of rte_ethdev? > > > > > > > > > > No definitive answer. > > > > > But we can argue the contrary: how to handle a generic API which > > > > > is implemented only in 1 or 2 drivers? If the application tries to use it, > > we can imagine that a specific range of hardware is expected. > > > > > > > > Yes, as I understand, it is a specific subset of supported HW (just Inel NICs > > for now, but different models/drivers). > > > > Obviously users would like to have an ability to run their app on all HW > > from this subset without rebuilding/implementing the app. > > > > > > > > > > > > > > I think it is an important question. > > > > > Previously we had the issue of having some API which are too > > > > > specific and need a rework to be used with other NICs. In order to > > > > > avoid such rework and API break, we can try to make them available > > > > > in a driver-specific or vendor-specific staging area, waiting for > > > a later generalization. > > > > > > > > Could you remind me why you guys were that opposed to ioctl style > > approach? > > > > It is not my favorite thing either, but it seems pretty generic way to > > handle such situations. > > > > > > We prefer having well-defined functions instead of opaque ioctl-style > > encoding. > > > And it was not clear what is the benefit of ioctl. > > > Now I think I understand you would like to have a common ioctl service for > > features available on 2 drivers. Right? > > > > Yes. > > > > > Example (trying to read your mind): > > > rte_ethdev_ioctl(port_id, > id>); instead of > > > rte_pmd_ixgbe_vf_ping(port_id, vf_id); > > > rte_pmd_i40e_vf_ping(port_id, vf_id); Please confirm I understand > > > what you are thinking about. > > > > Yep, you read my mind correctly :) > > Konstantin > > > Adding the pmd_ops field to struct eth_devops {} discussed previously in this email thread will allow driver specific functions for multiple drivers and will get rid of the driver specific header file rte_pmd_driver.h. > Would this be an acceptable solution? How pmd_ops would be different of eth_devops?