From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by dpdk.org (Postfix) with ESMTP id 02CC14CBB for ; Tue, 20 Mar 2018 16:20:47 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 20 Mar 2018 08:18:47 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.48,336,1517904000"; d="scan'208";a="35370520" Received: from fyigit-mobl.ger.corp.intel.com (HELO [10.237.221.63]) ([10.237.221.63]) by FMSMGA003.fm.intel.com with ESMTP; 20 Mar 2018 08:18:46 -0700 To: Matan Azrad , Declan Doherty Cc: "dev@dpdk.org" , Radu Nicolau References: <20180313122444.160759-1-ferruh.yigit@intel.com> From: Ferruh Yigit Message-ID: <65039cd8-f1cb-a42d-84d2-0adae0f6a1f2@intel.com> Date: Tue, 20 Mar 2018 15:18:45 +0000 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Subject: Re: [dpdk-dev] [PATCH] net/bonding: switch to new offloading flags X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Mar 2018 15:20:48 -0000 On 3/14/2018 12:50 PM, Matan Azrad wrote: > Hi Ferruh > > From: Ferruh Yigit, Sent: Tuesday, March 13, 2018 2:25 PM >> Switch from using deprecated bitfields in rxmode to offloads variable. >> >> Signed-off-by: Ferruh Yigit >> --- >> drivers/net/bonding/rte_eth_bond_api.c | 3 ++- >> drivers/net/bonding/rte_eth_bond_pmd.c | 9 +++++++-- >> 2 files changed, 9 insertions(+), 3 deletions(-) >> >> diff --git a/drivers/net/bonding/rte_eth_bond_api.c >> b/drivers/net/bonding/rte_eth_bond_api.c >> index f854b7375..669004fec 100644 >> --- a/drivers/net/bonding/rte_eth_bond_api.c >> +++ b/drivers/net/bonding/rte_eth_bond_api.c >> @@ -194,7 +194,8 @@ slave_vlan_filter_set(uint16_t bonded_port_id, >> uint16_t slave_port_id) >> uint16_t first; >> >> bonded_eth_dev = &rte_eth_devices[bonded_port_id]; >> - if (bonded_eth_dev->data->dev_conf.rxmode.hw_vlan_filter == 0) >> + if ((bonded_eth_dev->data->dev_conf.rxmode.offloads & >> + DEV_RX_OFFLOAD_VLAN_FILTER) == 0) >> return 0; >> >> internals = bonded_eth_dev->data->dev_private; >> diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c >> b/drivers/net/bonding/rte_eth_bond_pmd.c >> index c34c3251f..c18aca222 100644 >> --- a/drivers/net/bonding/rte_eth_bond_pmd.c >> +++ b/drivers/net/bonding/rte_eth_bond_pmd.c >> @@ -1818,8 +1818,13 @@ slave_configure(struct rte_eth_dev >> *bonded_eth_dev, >> bonded_eth_dev->data- >>> dev_conf.rxmode.mq_mode; >> } >> >> - slave_eth_dev->data->dev_conf.rxmode.hw_vlan_filter = >> - bonded_eth_dev->data- >>> dev_conf.rxmode.hw_vlan_filter; >> + if (bonded_eth_dev->data->dev_conf.rxmode.offloads & >> + DEV_RX_OFFLOAD_VLAN_FILTER) >> + slave_eth_dev->data->dev_conf.rxmode.offloads |= >> + DEV_RX_OFFLOAD_VLAN_FILTER; >> + else >> + slave_eth_dev->data->dev_conf.rxmode.offloads &= >> + ~DEV_RX_OFFLOAD_VLAN_FILTER; >> >> nb_rx_queues = bonded_eth_dev->data->nb_rx_queues; >> nb_tx_queues = bonded_eth_dev->data->nb_tx_queues; >> -- >> 2.13.6 > > The bonding PMD is using internal variables to save the offload capabilities (Actually holds the offloads intersection set of all the bond slaves). > I think you are missing next: > You should change the next variable types to uint64_t to support the new offload flags: > internals->rx_offload_capa > internals->tx_offload_capa > > You should add the new per queue offload variables to save the intersection set of it too: > rx_queue_offload_capa > tx_queue_offload_capa Thanks, I will update this v2. > > Questions: > Have you an idea why bonding PMD doesn't adjust the slaves port configurations to the bonding port configuration like he does for slave queue configuration? > Is the responsibility to fill the slave port configuration structure for the application? > > What do you think about next configuration checks (both per port and per queue)? > Validate the actual bonding offloads with the bonding capability. > Validate that the queue offloads includes all the port configured offloads. > > Matan. >