[v2] net/e1000: Support mtu set for igbvf.
Checks
Commit Message
This patch enables setting the MTU of an igbvf device by re-using the
eth_igb_mtu_set() in igbvf_eth_dev_ops.
Cc: stable@dpdk.org
Signed-off-by: Ian Stokes <ian.stokes@intel.com>
---
drivers/net/e1000/igb_ethdev.c | 1 +
1 file changed, 1 insertion(+)
Comments
Hi Ian,
> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Ian Stokes
> Sent: Friday, June 29, 2018 9:51 PM
> To: dev@dpdk.org
> Cc: Stokes, Ian <ian.stokes@intel.com>; stable@dpdk.org
> Subject: [dpdk-dev] [PATCH v2] net/e1000: Support mtu set for igbvf.
>
> This patch enables setting the MTU of an igbvf device by re-using the
> eth_igb_mtu_set() in igbvf_eth_dev_ops.
>
> Cc: stable@dpdk.org
>
> Signed-off-by: Ian Stokes <ian.stokes@intel.com>
> ---
> drivers/net/e1000/igb_ethdev.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/net/e1000/igb_ethdev.c b/drivers/net/e1000/igb_ethdev.c
> index edc7be3..650e831 100644
> --- a/drivers/net/e1000/igb_ethdev.c
> +++ b/drivers/net/e1000/igb_ethdev.c
> @@ -442,6 +442,7 @@ static const struct eth_dev_ops igbvf_eth_dev_ops =
> {
> .txq_info_get = igb_txq_info_get,
> .mac_addr_set = igbvf_default_mac_addr_set,
> .get_reg = igbvf_get_regs,
> + .mtu_set = eth_igb_mtu_set,
I think "eth_igb_mtu_set" is PF specific function that cannot be used on VF. As it touches PF specific registers.
Looks like MTU setting even not supported by igb VF.
On 7/10/2018 2:03 AM, Lu, Wenzhuo wrote:
> Hi Ian,
>
>
>> -----Original Message-----
>> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Ian Stokes
>> Sent: Friday, June 29, 2018 9:51 PM
>> To: dev@dpdk.org
>> Cc: Stokes, Ian <ian.stokes@intel.com>; stable@dpdk.org
>> Subject: [dpdk-dev] [PATCH v2] net/e1000: Support mtu set for igbvf.
>>
>> This patch enables setting the MTU of an igbvf device by re-using the
>> eth_igb_mtu_set() in igbvf_eth_dev_ops.
>>
>> Cc: stable@dpdk.org
>>
>> Signed-off-by: Ian Stokes <ian.stokes@intel.com>
>> ---
>> drivers/net/e1000/igb_ethdev.c | 1 +
>> 1 file changed, 1 insertion(+)
>>
>> diff --git a/drivers/net/e1000/igb_ethdev.c b/drivers/net/e1000/igb_ethdev.c
>> index edc7be3..650e831 100644
>> --- a/drivers/net/e1000/igb_ethdev.c
>> +++ b/drivers/net/e1000/igb_ethdev.c
>> @@ -442,6 +442,7 @@ static const struct eth_dev_ops igbvf_eth_dev_ops =
>> {
>> .txq_info_get = igb_txq_info_get,
>> .mac_addr_set = igbvf_default_mac_addr_set,
>> .get_reg = igbvf_get_regs,
>> + .mtu_set = eth_igb_mtu_set,
> I think "eth_igb_mtu_set" is PF specific function that cannot be used on VF. As it touches PF specific registers.
> Looks like MTU setting even not supported by igb VF.
>
Thanks for the feedback,
I'm surprised it's not supported, is there documentation somewhere for this?
I have tested this patch for an IGB SRIOV device and it worked without
issue as far as I could tell, I was able to set the MTU for the igb vf,
packets less than or equal to the mtu were passed, packets above the mtu
were dropped as expected. Packets that were passed were not corrupted.
I've tested this with OVS DPDK.
I've spotted that a few of the class functions for the igbvf eth ops use
eth_igb functions, is it the case that some features are supported for
both devices? (I had assumed this albeit maybe incorrectly).
Ian
@@ -442,6 +442,7 @@ static const struct eth_dev_ops igbvf_eth_dev_ops = {
.txq_info_get = igb_txq_info_get,
.mac_addr_set = igbvf_default_mac_addr_set,
.get_reg = igbvf_get_regs,
+ .mtu_set = eth_igb_mtu_set,
};
/* store statistics names and its offset in stats structure */