[dpdk-dev,v2] net/vhost: convert to new Rx/Tx offload API
Checks
Commit Message
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
Changes since v2:
- Announce supported Rx & Tx offload features (Tiwei)
drivers/net/vhost/rte_eth_vhost.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
Comments
On Tue, May 22, 2018 at 02:22:11PM +0200, Maxime Coquelin wrote:
> Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
> ---
> Changes since v2:
> - Announce supported Rx & Tx offload features (Tiwei)
>
> drivers/net/vhost/rte_eth_vhost.c | 8 ++++++--
> 1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/vhost/rte_eth_vhost.c b/drivers/net/vhost/rte_eth_vhost.c
> index f473bbbb3..229a5ba8d 100644
> --- a/drivers/net/vhost/rte_eth_vhost.c
> +++ b/drivers/net/vhost/rte_eth_vhost.c
> @@ -491,9 +491,9 @@ eth_dev_configure(struct rte_eth_dev *dev __rte_unused)
> struct pmd_internal *internal = dev->data->dev_private;
> const struct rte_eth_rxmode *rxmode = &dev->data->dev_conf.rxmode;
>
> - internal->vlan_strip = rxmode->hw_vlan_strip;
> + internal->vlan_strip = !!(rxmode->offloads & DEV_RX_OFFLOAD_VLAN_STRIP);
>
> - if (rxmode->hw_vlan_filter)
> + if (rxmode->offloads & DEV_RX_OFFLOAD_VLAN_FILTER)
> VHOST_LOG(WARNING,
> "vhost(%s): vlan filtering not available\n",
> internal->dev_name);
I'm not quite sure whether we still need to log this warning.
> @@ -1072,6 +1072,10 @@ eth_dev_info(struct rte_eth_dev *dev,
> dev_info->max_rx_queues = internal->max_queues;
> dev_info->max_tx_queues = internal->max_queues;
> dev_info->min_rx_bufsize = 0;
> +
> + dev_info->tx_offload_capa = DEV_TX_OFFLOAD_MULTI_SEGS |
> + DEV_TX_OFFLOAD_VLAN_INSERT;
> + dev_info->rx_offload_capa = DEV_RX_OFFLOAD_VLAN_STRIP;
> }
Other than that, it looks good to me. Thanks!
Best regards,
Tiwei Bie
On 05/22/2018 02:34 PM, Tiwei Bie wrote:
> On Tue, May 22, 2018 at 02:22:11PM +0200, Maxime Coquelin wrote:
>> Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
>> ---
>> Changes since v2:
>> - Announce supported Rx & Tx offload features (Tiwei)
>>
>> drivers/net/vhost/rte_eth_vhost.c | 8 ++++++--
>> 1 file changed, 6 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/net/vhost/rte_eth_vhost.c b/drivers/net/vhost/rte_eth_vhost.c
>> index f473bbbb3..229a5ba8d 100644
>> --- a/drivers/net/vhost/rte_eth_vhost.c
>> +++ b/drivers/net/vhost/rte_eth_vhost.c
>> @@ -491,9 +491,9 @@ eth_dev_configure(struct rte_eth_dev *dev __rte_unused)
>> struct pmd_internal *internal = dev->data->dev_private;
>> const struct rte_eth_rxmode *rxmode = &dev->data->dev_conf.rxmode;
>>
>> - internal->vlan_strip = rxmode->hw_vlan_strip;
>> + internal->vlan_strip = !!(rxmode->offloads & DEV_RX_OFFLOAD_VLAN_STRIP);
>>
>> - if (rxmode->hw_vlan_filter)
>> + if (rxmode->offloads & DEV_RX_OFFLOAD_VLAN_FILTER)
>> VHOST_LOG(WARNING,
>> "vhost(%s): vlan filtering not available\n",
>> internal->dev_name);
>
> I'm not quite sure whether we still need to log this warning.
In theory we should not. But currently, my understanding is that no
error is returned in the current release (see
lib/librte_ethdev/rte_ethdev.c:1174).
I think we can remove it in next release.
>> @@ -1072,6 +1072,10 @@ eth_dev_info(struct rte_eth_dev *dev,
>> dev_info->max_rx_queues = internal->max_queues;
>> dev_info->max_tx_queues = internal->max_queues;
>> dev_info->min_rx_bufsize = 0;
>> +
>> + dev_info->tx_offload_capa = DEV_TX_OFFLOAD_MULTI_SEGS |
>> + DEV_TX_OFFLOAD_VLAN_INSERT;
>> + dev_info->rx_offload_capa = DEV_RX_OFFLOAD_VLAN_STRIP;
>> }
>
> Other than that, it looks good to me. Thanks!
Thanks for the review.
Maxime
> Best regards,
> Tiwei Bie
>
On 5/22/2018 1:34 PM, Tiwei Bie wrote:
> On Tue, May 22, 2018 at 02:22:11PM +0200, Maxime Coquelin wrote:
>> Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
>> ---
>> Changes since v2:
>> - Announce supported Rx & Tx offload features (Tiwei)
>>
>> drivers/net/vhost/rte_eth_vhost.c | 8 ++++++--
>> 1 file changed, 6 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/net/vhost/rte_eth_vhost.c b/drivers/net/vhost/rte_eth_vhost.c
>> index f473bbbb3..229a5ba8d 100644
>> --- a/drivers/net/vhost/rte_eth_vhost.c
>> +++ b/drivers/net/vhost/rte_eth_vhost.c
>> @@ -491,9 +491,9 @@ eth_dev_configure(struct rte_eth_dev *dev __rte_unused)
>> struct pmd_internal *internal = dev->data->dev_private;
>> const struct rte_eth_rxmode *rxmode = &dev->data->dev_conf.rxmode;
>>
>> - internal->vlan_strip = rxmode->hw_vlan_strip;
>> + internal->vlan_strip = !!(rxmode->offloads & DEV_RX_OFFLOAD_VLAN_STRIP);
>>
>> - if (rxmode->hw_vlan_filter)
>> + if (rxmode->offloads & DEV_RX_OFFLOAD_VLAN_FILTER)
>> VHOST_LOG(WARNING,
>> "vhost(%s): vlan filtering not available\n",
>> internal->dev_name);
>
> I'm not quite sure whether we still need to log this warning.
Similar warning exists in ethdev layer, when an offload requested that is not
reported in capability. So I agree to remove this.
And in next release that warning will be converted into error, so that PMD will
not get those values at all.
>
>> @@ -1072,6 +1072,10 @@ eth_dev_info(struct rte_eth_dev *dev,
>> dev_info->max_rx_queues = internal->max_queues;
>> dev_info->max_tx_queues = internal->max_queues;
>> dev_info->min_rx_bufsize = 0;
>> +
>> + dev_info->tx_offload_capa = DEV_TX_OFFLOAD_MULTI_SEGS |
>> + DEV_TX_OFFLOAD_VLAN_INSERT;
>> + dev_info->rx_offload_capa = DEV_RX_OFFLOAD_VLAN_STRIP;
>> }
>
> Other than that, it looks good to me. Thanks!
>
> Best regards,
> Tiwei Bie
>
On 05/22/2018 02:38 PM, Ferruh Yigit wrote:
> On 5/22/2018 1:34 PM, Tiwei Bie wrote:
>> On Tue, May 22, 2018 at 02:22:11PM +0200, Maxime Coquelin wrote:
>>> Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
>>> ---
>>> Changes since v2:
>>> - Announce supported Rx & Tx offload features (Tiwei)
>>>
>>> drivers/net/vhost/rte_eth_vhost.c | 8 ++++++--
>>> 1 file changed, 6 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/drivers/net/vhost/rte_eth_vhost.c b/drivers/net/vhost/rte_eth_vhost.c
>>> index f473bbbb3..229a5ba8d 100644
>>> --- a/drivers/net/vhost/rte_eth_vhost.c
>>> +++ b/drivers/net/vhost/rte_eth_vhost.c
>>> @@ -491,9 +491,9 @@ eth_dev_configure(struct rte_eth_dev *dev __rte_unused)
>>> struct pmd_internal *internal = dev->data->dev_private;
>>> const struct rte_eth_rxmode *rxmode = &dev->data->dev_conf.rxmode;
>>>
>>> - internal->vlan_strip = rxmode->hw_vlan_strip;
>>> + internal->vlan_strip = !!(rxmode->offloads & DEV_RX_OFFLOAD_VLAN_STRIP);
>>>
>>> - if (rxmode->hw_vlan_filter)
>>> + if (rxmode->offloads & DEV_RX_OFFLOAD_VLAN_FILTER)
>>> VHOST_LOG(WARNING,
>>> "vhost(%s): vlan filtering not available\n",
>>> internal->dev_name);
>>
>> I'm not quite sure whether we still need to log this warning.
>
> Similar warning exists in ethdev layer, when an offload requested that is not
> reported in capability. So I agree to remove this.
>
> And in next release that warning will be converted into error, so that PMD will
> not get those values at all.
Ok, I'll post a v3 removing the check.
Thanks,
Maxime
>>
>>> @@ -1072,6 +1072,10 @@ eth_dev_info(struct rte_eth_dev *dev,
>>> dev_info->max_rx_queues = internal->max_queues;
>>> dev_info->max_tx_queues = internal->max_queues;
>>> dev_info->min_rx_bufsize = 0;
>>> +
>>> + dev_info->tx_offload_capa = DEV_TX_OFFLOAD_MULTI_SEGS |
>>> + DEV_TX_OFFLOAD_VLAN_INSERT;
>>> + dev_info->rx_offload_capa = DEV_RX_OFFLOAD_VLAN_STRIP;
>>> }
>>
>> Other than that, it looks good to me. Thanks!
>>
>> Best regards,
>> Tiwei Bie
>>
>
@@ -491,9 +491,9 @@ eth_dev_configure(struct rte_eth_dev *dev __rte_unused)
struct pmd_internal *internal = dev->data->dev_private;
const struct rte_eth_rxmode *rxmode = &dev->data->dev_conf.rxmode;
- internal->vlan_strip = rxmode->hw_vlan_strip;
+ internal->vlan_strip = !!(rxmode->offloads & DEV_RX_OFFLOAD_VLAN_STRIP);
- if (rxmode->hw_vlan_filter)
+ if (rxmode->offloads & DEV_RX_OFFLOAD_VLAN_FILTER)
VHOST_LOG(WARNING,
"vhost(%s): vlan filtering not available\n",
internal->dev_name);
@@ -1072,6 +1072,10 @@ eth_dev_info(struct rte_eth_dev *dev,
dev_info->max_rx_queues = internal->max_queues;
dev_info->max_tx_queues = internal->max_queues;
dev_info->min_rx_bufsize = 0;
+
+ dev_info->tx_offload_capa = DEV_TX_OFFLOAD_MULTI_SEGS |
+ DEV_TX_OFFLOAD_VLAN_INSERT;
+ dev_info->rx_offload_capa = DEV_RX_OFFLOAD_VLAN_STRIP;
}
static int