From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <bernard.iremonger@intel.com>
Received: from mga05.intel.com (mga05.intel.com [192.55.52.43])
 by dpdk.org (Postfix) with ESMTP id E6CB537B4
 for <dev@dpdk.org>; Wed, 28 Sep 2016 16:48:34 +0200 (CEST)
Received: from fmsmga006.fm.intel.com ([10.253.24.20])
 by fmsmga105.fm.intel.com with ESMTP; 28 Sep 2016 07:48:33 -0700
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.30,410,1470726000"; d="scan'208";a="14129829"
Received: from irsmsx153.ger.corp.intel.com ([163.33.192.75])
 by fmsmga006.fm.intel.com with ESMTP; 28 Sep 2016 07:48:32 -0700
Received: from irsmsx108.ger.corp.intel.com ([169.254.11.164]) by
 IRSMSX153.ger.corp.intel.com ([169.254.9.140]) with mapi id 14.03.0248.002;
 Wed, 28 Sep 2016 15:48:31 +0100
From: "Iremonger, Bernard" <bernard.iremonger@intel.com>
To: "Ananyev, Konstantin" <konstantin.ananyev@intel.com>, Thomas Monjalon
 <thomas.monjalon@6wind.com>
CC: "Richardson, Bruce" <bruce.richardson@intel.com>, "dev@dpdk.org"
 <dev@dpdk.org>, Jerin Jacob <jerin.jacob@caviumnetworks.com>, "Shah, Rahul R"
 <rahul.r.shah@intel.com>, "Lu, Wenzhuo" <wenzhuo.lu@intel.com>, azelezniak
 <alexz@att.com>
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
Date: Wed, 28 Sep 2016 14:48:31 +0000
Message-ID: <8CEF83825BEC744B83065625E567D7C21A08DD15@IRSMSX108.ger.corp.intel.com>
References: <1471528125-26357-1-git-send-email-bernard.iremonger@intel.com>
 <1918603.2PG7Ygo6cR@xps13>
 <2601191342CEEE43887BDE71AB9772583F0BC11F@irsmsx105.ger.corp.intel.com>
 <20512183.qqjUaSiKnu@xps13>
 <2601191342CEEE43887BDE71AB9772583F0BC180@irsmsx105.ger.corp.intel.com>
In-Reply-To: <2601191342CEEE43887BDE71AB9772583F0BC180@irsmsx105.ger.corp.intel.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiN2U4ZTNjZjctZDQ2MS00Yzg5LThjMzctNWFhNzZjZTdkNjBmIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE1LjkuNi42IiwiVHJ1c3RlZExhYmVsSGFzaCI6IjYydkduNkpZb2hhdDV5dmdqdVpCNytaamZQQnppNFd2Vnp2WnVVV2ZnQ3c9In0=
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 <dev.dpdk.org>
List-Unsubscribe: <http://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <http://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Wed, 28 Sep 2016 14:48:35 -0000

<snip>

> > 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 th=
is
> 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 I=
nel 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 t=
o
> 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?
>=20
> Yes.
>=20
> > Example (trying to  read your mind):
> > 	rte_ethdev_ioctl(port_id, <TLV encoding VF_PING service and VF
> 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.
>=20
> Yep, you read my mind correctly :)
> Konstantin
>=20
Adding the pmd_ops field to struct eth_devops {} discussed previously in th=
is email thread will allow driver specific functions for multiple drivers a=
nd will get rid of the driver specific header file rte_pmd_driver.h.
Would this be an acceptable solution?

Regards,

Bernard.