[dpdk-dev] [PATCH] net/bonding: switch to new offloading flags

Ferruh Yigit ferruh.yigit at intel.com
Tue Mar 20 16:18:45 CET 2018


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.yigit at 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.
> 



More information about the dev mailing list