From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by dpdk.org (Postfix) with ESMTP id D05E42A1A for ; Wed, 28 Sep 2016 17:24:40 +0200 (CEST) Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga104.jf.intel.com with ESMTP; 28 Sep 2016 08:24:39 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.30,410,1470726000"; d="scan'208";a="14646590" Received: from irsmsx104.ger.corp.intel.com ([163.33.3.159]) by orsmga004.jf.intel.com with ESMTP; 28 Sep 2016 08:24:38 -0700 Received: from irsmsx108.ger.corp.intel.com ([169.254.11.164]) by IRSMSX104.ger.corp.intel.com ([163.33.3.159]) with mapi id 14.03.0248.002; Wed, 28 Sep 2016 16:24:37 +0100 From: "Iremonger, Bernard" To: Thomas Monjalon CC: "dev@dpdk.org" , "Ananyev, Konstantin" , "Richardson, Bruce" , Jerin Jacob , "Shah, Rahul R" , "Lu, Wenzhuo" , azelezniak Thread-Topic: [dpdk-dev] [RFC PATCH v2 3/5] librte_ether: add API's for VF management Thread-Index: AQHR/3nL92Tihh00JUigC2GSiYccqaBxO5UAgATmckCAAQ+CAIADl+fwgAsNpYCAARC+AIAABFiAgAAE4YCAADhQAIAASFBQ///7roCABKb7YIAACqAAgAEZ1rCAADX6gIAAIevAgAFVHoCAABvXAIAABmeAgAAQLQCAAAHFAIAAFQZA///zUgCAABbHUA== Date: Wed, 28 Sep 2016 15:24:37 +0000 Message-ID: <8CEF83825BEC744B83065625E567D7C21A08DD46@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> <1789506.WrrZg80Z2n@xps13> In-Reply-To: <1789506.WrrZg80Z2n@xps13> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiOWRhMGEzYzItY2Y1OC00NTBiLWFlMjktMzE5NjQ5YjhhNTdmIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE1LjkuNi42IiwiVHJ1c3RlZExhYmVsSGFzaCI6Ik04SjFROEx6QjVFSXE4S2NhZmRXbFJlR2k1OHk5cDQwSjFEM0lJS2FJaHM9In0= x-ctpclassification: CTP_IC x-originating-ip: [163.33.239.180] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 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:24:41 -0000 Hi Thomas, > -----Original Message----- > Subject: Re: [dpdk-dev] [RFC PATCH v2 3/5] librte_ether: add API's for VF > management >=20 > 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 i= n > this email thread will allow driver specific functions for multiple drive= rs and > will get rid of the driver specific header file rte_pmd_driver.h. > > Would this be an acceptable solution? >=20 > How pmd_ops would be different of eth_devops? There is not a lot of difference, however it would separate generic ethdev = functions from driver specific functions. Regards, Bernard.