From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by dpdk.org (Postfix) with ESMTP id BE15911C5 for ; Thu, 27 Oct 2016 18:24:26 +0200 (CEST) Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga104.fm.intel.com with ESMTP; 27 Oct 2016 09:24:25 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.31,553,1473145200"; d="scan'208";a="24803676" Received: from irsmsx103.ger.corp.intel.com ([163.33.3.157]) by orsmga004.jf.intel.com with ESMTP; 27 Oct 2016 09:24:24 -0700 Received: from irsmsx111.ger.corp.intel.com (10.108.20.4) by IRSMSX103.ger.corp.intel.com (163.33.3.157) with Microsoft SMTP Server (TLS) id 14.3.248.2; Thu, 27 Oct 2016 17:24:23 +0100 Received: from irsmsx105.ger.corp.intel.com ([169.254.7.177]) by irsmsx111.ger.corp.intel.com ([10.108.20.4]) with mapi id 14.03.0248.002; Thu, 27 Oct 2016 17:24:23 +0100 From: "Ananyev, Konstantin" To: Thomas Monjalon Thread-Topic: [dpdk-dev] [PATCH v11 1/6] ethdev: add Tx preparation Thread-Index: AQHSL4iZ5WiAYkWG4EqB+e9ej9GU7qC8ViAAgAAd2uD///MYgIAAEtTQ Date: Thu, 27 Oct 2016 16:24:23 +0000 Message-ID: <2601191342CEEE43887BDE71AB9772583F0CE8E3@irsmsx105.ger.corp.intel.com> References: <1477327917-18564-1-git-send-email-tomaszx.kulasek@intel.com> <1499338.8Le0ABsxDG@xps13> <2601191342CEEE43887BDE71AB9772583F0CD83D@irsmsx105.ger.corp.intel.com> <2078955.d1Aiqtukxu@xps13> In-Reply-To: <2078955.d1Aiqtukxu@xps13> Accept-Language: en-IE, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [163.33.239.182] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Cc: "dev@dpdk.org" Subject: Re: [dpdk-dev] [PATCH v11 1/6] ethdev: add Tx preparation 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, 27 Oct 2016 16:24:27 -0000 > -----Original Message----- > From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com] > Sent: Thursday, October 27, 2016 5:02 PM > To: Ananyev, Konstantin > Cc: Kulasek, TomaszX ; dev@dpdk.org > Subject: Re: [dpdk-dev] [PATCH v11 1/6] ethdev: add Tx preparation >=20 > 2016-10-27 15:52, Ananyev, Konstantin: > > > > > > > > Hi Tomasz, > > > > > > This is a major new function in the API and I still have some comment= s. > > > > > > 2016-10-26 14:56, Tomasz Kulasek: > > > > --- a/config/common_base > > > > +++ b/config/common_base > > > > +CONFIG_RTE_ETHDEV_TX_PREP=3Dy > > > > > > We cannot enable it until it is implemented in every drivers. > > > > Not sure why? > > If tx_pkt_prep =3D=3D NULL, then rte_eth_tx_prep() would just act as no= op. > > Right now it is not mandatory for the PMD to implement it. >=20 > If it is not implemented, the application must do the preparation by itse= lf. > From patch 6: > " > Removed pseudo header calculation for udp/tcp/tso packets from > application and used Tx preparation API for packet preparation and > verification. > " > So how does it behave with other drivers? Hmm so it seems that we broke testpmd csumonly mode for non-intel drivers.. My bad, missed that part completely. Yes, then I suppose for now we'll need to support both (with and without) c= ode paths for testpmd. Probably a new fwd mode or just extra parameter for the existing one? Any other suggestions? >=20 > > > > struct rte_eth_dev { > > > > eth_rx_burst_t rx_pkt_burst; /**< Pointer to PMD receive function= . */ > > > > eth_tx_burst_t tx_pkt_burst; /**< Pointer to PMD transmit functio= n. */ > > > > + eth_tx_prep_t tx_pkt_prep; /**< Pointer to PMD transmit prepare f= unction. */ > > > > struct rte_eth_dev_data *data; /**< Pointer to device data */ > > > > const struct eth_driver *driver;/**< Driver for this device */ > > > > const struct eth_dev_ops *dev_ops; /**< Functions exported by PMD= */ > > > > > > Could you confirm why tx_pkt_prep is not in dev_ops? > > > I guess we want to have several implementations? > > > > Yes, it depends on configuration options, same as tx_pkt_burst. > > > > > > > > Shouldn't we have a const struct control_dev_ops and a struct datapat= h_dev_ops? > > > > That's probably a good idea, but I suppose it is out of scope for that = patch. >=20 > No it's not out of scope. > It answers to the question "why is it added in this structure and not dev= _ops". > We won't do this change when nothing else is changed in the struct. Not sure I understood you here: Are you saying datapath_dev_ops/controlpath_dev_ops have to be introduced a= s part of that patch? But that's a lot of changes all over rte_ethdev.[h,c]. It definitely worse a separate patch (might be some discussion) for me. Konstantin