[v2] net/e1000: Support mtu set for igbvf.

Message ID 1530280253-10370-1-git-send-email-ian.stokes@intel.com (mailing list archive)
State Rejected, archived
Delegated to: Qi Zhang
Headers
Series [v2] net/e1000: Support mtu set for igbvf. |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Ian Stokes June 29, 2018, 1:50 p.m. UTC
  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

Wenzhuo Lu July 10, 2018, 1:03 a.m. UTC | #1
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.
  
Ian Stokes July 11, 2018, 12:24 p.m. UTC | #2
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
  

Patch

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,
 };
 
 /* store statistics names and its offset in stats structure */