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 <ferruh.yi...@intel.com> >> --- >> 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. >