From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ferruh Yigit Subject: Re: [PATCH] net/bonding: switch to new offloading flags Date: Tue, 20 Mar 2018 15:18:45 +0000 Message-ID: <65039cd8-f1cb-a42d-84d2-0adae0f6a1f2@intel.com> References: <20180313122444.160759-1-ferruh.yigit@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Cc: "dev@dpdk.org" , Radu Nicolau To: Matan Azrad , Declan Doherty 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) In-Reply-To: Content-Language: en-US List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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. >