[v2] net/ixgbe: Restore vlan filter/extend for ixgbevf

Message ID 20190308203430.31742-1-dharton@cisco.com (mailing list archive)
State Rejected, archived
Delegated to: Qi Zhang
Headers
Series [v2] net/ixgbe: Restore vlan filter/extend for ixgbevf |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK
ci/mellanox-Performance-Testing success Performance Testing PASS
ci/intel-Performance-Testing success Performance Testing PASS

Commit Message

David Harton March 8, 2019, 8:34 p.m. UTC
  ixgbevf vlan strip and extend capabilities were removed when
migrating to the bit flags implementation.

Restoring the capbility to enable these offloads at
configuration time.

Fixes: ec3b1124d14d (\"net/ixgbe: convert to new Rx offloads API\")
Signed-off-by: David Harton <dharton@cisco.com>
---

v2: removed unused function ixgbe_is_vf()

 drivers/net/ixgbe/ixgbe_rxtx.c | 23 ++---------------------
 1 file changed, 2 insertions(+), 21 deletions(-)
  

Comments

David Harton March 14, 2019, 1:37 p.m. UTC | #1
Hi Qi,

This patch was rejected with no feedback.

Can you share why?

Without this patch users are not able to call the rte_eth_dev_vlan_filter() API for ixgbevf based ports because VLAN_FILTER cannot be enabled when calling rte_eth_dev_configure().

Or, am I missing something?

Thanks,
Dave

> -----Original Message-----
> From: David Harton <dharton@cisco.com>
> Sent: Friday, March 08, 2019 3:35 PM
> To: dev@dpdk.org
> Cc: wenzhuo.lu@intel.com; konstantin.ananyev@intel.com;
> qi.z.zhang@intel.com; David Harton (dharton) <dharton@cisco.com>
> Subject: [PATCH v2] net/ixgbe: Restore vlan filter/extend for ixgbevf
> 
> ixgbevf vlan strip and extend capabilities were removed when migrating to
> the bit flags implementation.
> 
> Restoring the capbility to enable these offloads at configuration time.
> 
> Fixes: ec3b1124d14d (\"net/ixgbe: convert to new Rx offloads API\")
> Signed-off-by: David Harton <dharton@cisco.com>
> ---
> 
> v2: removed unused function ixgbe_is_vf()
> 
>  drivers/net/ixgbe/ixgbe_rxtx.c | 23 ++---------------------
>  1 file changed, 2 insertions(+), 21 deletions(-)
> 
> diff --git a/drivers/net/ixgbe/ixgbe_rxtx.c
> b/drivers/net/ixgbe/ixgbe_rxtx.c index e92a70fb3..b1b83613e 100644
> --- a/drivers/net/ixgbe/ixgbe_rxtx.c
> +++ b/drivers/net/ixgbe/ixgbe_rxtx.c
> @@ -2813,23 +2813,6 @@ ixgbe_reset_rx_queue(struct ixgbe_adapter *adapter,
> struct ixgbe_rx_queue *rxq)  #endif  }
> 
> -static int
> -ixgbe_is_vf(struct rte_eth_dev *dev)
> -{
> -	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data-
> >dev_private);
> -
> -	switch (hw->mac.type) {
> -	case ixgbe_mac_82599_vf:
> -	case ixgbe_mac_X540_vf:
> -	case ixgbe_mac_X550_vf:
> -	case ixgbe_mac_X550EM_x_vf:
> -	case ixgbe_mac_X550EM_a_vf:
> -		return 1;
> -	default:
> -		return 0;
> -	}
> -}
> -
>  uint64_t
>  ixgbe_get_rx_queue_offloads(struct rte_eth_dev *dev)  { @@ -2853,15
> +2836,13 @@ ixgbe_get_rx_port_offloads(struct rte_eth_dev *dev)
>  		   DEV_RX_OFFLOAD_TCP_CKSUM   |
>  		   DEV_RX_OFFLOAD_KEEP_CRC    |
>  		   DEV_RX_OFFLOAD_JUMBO_FRAME |
> +		   DEV_RX_OFFLOAD_VLAN_FILTER |
> +		   DEV_RX_OFFLOAD_VLAN_EXTEND |
>  		   DEV_RX_OFFLOAD_SCATTER;
> 
>  	if (hw->mac.type == ixgbe_mac_82598EB)
>  		offloads |= DEV_RX_OFFLOAD_VLAN_STRIP;
> 
> -	if (ixgbe_is_vf(dev) == 0)
> -		offloads |= (DEV_RX_OFFLOAD_VLAN_FILTER |
> -			     DEV_RX_OFFLOAD_VLAN_EXTEND);
> -
>  	/*
>  	 * RSC is only supported by 82599 and x540 PF devices in a non-SR-
> IOV
>  	 * mode.
> --
> 2.19.1
  
Qi Zhang March 14, 2019, 3:14 p.m. UTC | #2
> -----Original Message-----
> From: David Harton (dharton) [mailto:dharton@cisco.com]
> Sent: Thursday, March 14, 2019 9:38 PM
> To: David Harton (dharton) <dharton@cisco.com>; Zhang, Qi Z
> <qi.z.zhang@intel.com>
> Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Ananyev, Konstantin
> <konstantin.ananyev@intel.com>; dev@dpdk.org
> Subject: RE: [PATCH v2] net/ixgbe: Restore vlan filter/extend for ixgbevf
> 
> Hi Qi,
> 
> This patch was rejected with no feedback.
> 
> Can you share why?

Because as Zhao Wei explained in v1 thread, in ixgbe_vlan_offload_config , ETH_VLAN_FILTER_MASK and DEV_RX_OFFLOAD_VLAN_EXTEND are ignored
This looks like VLAN_FILTER AND VLAN_EXTEND offload is not supported and I didn't see you reply for that, so I assume you agree with that. 


> 
> Without this patch users are not able to call the rte_eth_dev_vlan_filter() API for
> ixgbevf based ports because VLAN_FILTER cannot be enabled when calling
> rte_eth_dev_configure().

OK, seems vlan filter is able to be configured for ixgbevf, but I don't know how this will work because vlan filter table needs to be enabled first (ixgbe_vlan_hw_filter_enable)
So at least when it work with a DPDK PF, vlan filter will not work, maybe kernel PF driver will enable it by default? Could you share more insight? 
  
And same question to VLAN_EXTEND


> 
> Or, am I missing something?
> 
> Thanks,
> Dave
> 
> > -----Original Message-----
> > From: David Harton <dharton@cisco.com>
> > Sent: Friday, March 08, 2019 3:35 PM
> > To: dev@dpdk.org
> > Cc: wenzhuo.lu@intel.com; konstantin.ananyev@intel.com;
> > qi.z.zhang@intel.com; David Harton (dharton) <dharton@cisco.com>
> > Subject: [PATCH v2] net/ixgbe: Restore vlan filter/extend for ixgbevf
> >
> > ixgbevf vlan strip and extend capabilities were removed when migrating
> > to the bit flags implementation.
> >
> > Restoring the capbility to enable these offloads at configuration time.
> >
> > Fixes: ec3b1124d14d (\"net/ixgbe: convert to new Rx offloads API\")
> > Signed-off-by: David Harton <dharton@cisco.com>
> > ---
> >
> > v2: removed unused function ixgbe_is_vf()
> >
> >  drivers/net/ixgbe/ixgbe_rxtx.c | 23 ++---------------------
> >  1 file changed, 2 insertions(+), 21 deletions(-)
> >
> > diff --git a/drivers/net/ixgbe/ixgbe_rxtx.c
> > b/drivers/net/ixgbe/ixgbe_rxtx.c index e92a70fb3..b1b83613e 100644
> > --- a/drivers/net/ixgbe/ixgbe_rxtx.c
> > +++ b/drivers/net/ixgbe/ixgbe_rxtx.c
> > @@ -2813,23 +2813,6 @@ ixgbe_reset_rx_queue(struct ixgbe_adapter
> > *adapter, struct ixgbe_rx_queue *rxq)  #endif  }
> >
> > -static int
> > -ixgbe_is_vf(struct rte_eth_dev *dev)
> > -{
> > -	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data-
> > >dev_private);
> > -
> > -	switch (hw->mac.type) {
> > -	case ixgbe_mac_82599_vf:
> > -	case ixgbe_mac_X540_vf:
> > -	case ixgbe_mac_X550_vf:
> > -	case ixgbe_mac_X550EM_x_vf:
> > -	case ixgbe_mac_X550EM_a_vf:
> > -		return 1;
> > -	default:
> > -		return 0;
> > -	}
> > -}
> > -
> >  uint64_t
> >  ixgbe_get_rx_queue_offloads(struct rte_eth_dev *dev)  { @@ -2853,15
> > +2836,13 @@ ixgbe_get_rx_port_offloads(struct rte_eth_dev *dev)
> >  		   DEV_RX_OFFLOAD_TCP_CKSUM   |
> >  		   DEV_RX_OFFLOAD_KEEP_CRC    |
> >  		   DEV_RX_OFFLOAD_JUMBO_FRAME |
> > +		   DEV_RX_OFFLOAD_VLAN_FILTER |
> > +		   DEV_RX_OFFLOAD_VLAN_EXTEND |
> >  		   DEV_RX_OFFLOAD_SCATTER;
> >	
> >  	if (hw->mac.type == ixgbe_mac_82598EB)
> >  		offloads |= DEV_RX_OFFLOAD_VLAN_STRIP;
> >
> > -	if (ixgbe_is_vf(dev) == 0)
> > -		offloads |= (DEV_RX_OFFLOAD_VLAN_FILTER |
> > -			     DEV_RX_OFFLOAD_VLAN_EXTEND);
> > -
> >  	/*
> >  	 * RSC is only supported by 82599 and x540 PF devices in a non-SR-
> > IOV
> >  	 * mode.
> > --
> > 2.19.1
  
David Harton March 14, 2019, 3:51 p.m. UTC | #3
Hi Qi,

> -----Original Message-----
> From: Zhang, Qi Z <qi.z.zhang@intel.com>
> Sent: Thursday, March 14, 2019 11:14 AM
> To: David Harton (dharton) <dharton@cisco.com>
> Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Ananyev, Konstantin
> <konstantin.ananyev@intel.com>; dev@dpdk.org
> Subject: RE: [PATCH v2] net/ixgbe: Restore vlan filter/extend for ixgbevf
> 
> 
> 
> > -----Original Message-----
> > From: David Harton (dharton) [mailto:dharton@cisco.com]
> > Sent: Thursday, March 14, 2019 9:38 PM
> > To: David Harton (dharton) <dharton@cisco.com>; Zhang, Qi Z
> > <qi.z.zhang@intel.com>
> > Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Ananyev, Konstantin
> > <konstantin.ananyev@intel.com>; dev@dpdk.org
> > Subject: RE: [PATCH v2] net/ixgbe: Restore vlan filter/extend for
> > ixgbevf
> >
> > Hi Qi,
> >
> > This patch was rejected with no feedback.
> >
> > Can you share why?
> 
> Because as Zhao Wei explained in v1 thread, in ixgbe_vlan_offload_config ,
> ETH_VLAN_FILTER_MASK and DEV_RX_OFFLOAD_VLAN_EXTEND are ignored This looks
> like VLAN_FILTER AND VLAN_EXTEND offload is not supported and I didn't see
> you reply for that, so I assume you agree with that.
> 
> 
> >
> > Without this patch users are not able to call the
> > rte_eth_dev_vlan_filter() API for ixgbevf based ports because
> > VLAN_FILTER cannot be enabled when calling rte_eth_dev_configure().
> 
> OK, seems vlan filter is able to be configured for ixgbevf, but I don't
> know how this will work because vlan filter table needs to be enabled
> first (ixgbe_vlan_hw_filter_enable) So at least when it work with a DPDK
> PF, vlan filter will not work, maybe kernel PF driver will enable it by
> default? Could you share more insight?

I can't answer that but ixgbevf_vlan_filter_set() has been implemented for quite some time and it can no longer be called since the new offload flags are being enforced now.

I can share that rte_eth_dev_vlan_filter()/ixgbevf_vlan_filter_set() works properly with the propose change (VLAN traffic flows) where it doesn't without it.

> 
> And same question to VLAN_EXTEND

I actually don't care about extend but simply changed it because it seems to be in the same situation.  I'm happy to leave it  out of the patch if that grants acceptance.

Thanks,
Dave

> 
> 
> >
> > Or, am I missing something?
> >
> > Thanks,
> > Dave
> >
> > > -----Original Message-----
> > > From: David Harton <dharton@cisco.com>
> > > Sent: Friday, March 08, 2019 3:35 PM
> > > To: dev@dpdk.org
> > > Cc: wenzhuo.lu@intel.com; konstantin.ananyev@intel.com;
> > > qi.z.zhang@intel.com; David Harton (dharton) <dharton@cisco.com>
> > > Subject: [PATCH v2] net/ixgbe: Restore vlan filter/extend for
> > > ixgbevf
> > >
> > > ixgbevf vlan strip and extend capabilities were removed when
> > > migrating to the bit flags implementation.
> > >
> > > Restoring the capbility to enable these offloads at configuration
> time.
> > >
> > > Fixes: ec3b1124d14d (\"net/ixgbe: convert to new Rx offloads API\")
> > > Signed-off-by: David Harton <dharton@cisco.com>
> > > ---
> > >
> > > v2: removed unused function ixgbe_is_vf()
> > >
> > >  drivers/net/ixgbe/ixgbe_rxtx.c | 23 ++---------------------
> > >  1 file changed, 2 insertions(+), 21 deletions(-)
> > >
> > > diff --git a/drivers/net/ixgbe/ixgbe_rxtx.c
> > > b/drivers/net/ixgbe/ixgbe_rxtx.c index e92a70fb3..b1b83613e 100644
> > > --- a/drivers/net/ixgbe/ixgbe_rxtx.c
> > > +++ b/drivers/net/ixgbe/ixgbe_rxtx.c
> > > @@ -2813,23 +2813,6 @@ ixgbe_reset_rx_queue(struct ixgbe_adapter
> > > *adapter, struct ixgbe_rx_queue *rxq)  #endif  }
> > >
> > > -static int
> > > -ixgbe_is_vf(struct rte_eth_dev *dev) -{
> > > -	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data-
> > > >dev_private);
> > > -
> > > -	switch (hw->mac.type) {
> > > -	case ixgbe_mac_82599_vf:
> > > -	case ixgbe_mac_X540_vf:
> > > -	case ixgbe_mac_X550_vf:
> > > -	case ixgbe_mac_X550EM_x_vf:
> > > -	case ixgbe_mac_X550EM_a_vf:
> > > -		return 1;
> > > -	default:
> > > -		return 0;
> > > -	}
> > > -}
> > > -
> > >  uint64_t
> > >  ixgbe_get_rx_queue_offloads(struct rte_eth_dev *dev)  { @@ -2853,15
> > > +2836,13 @@ ixgbe_get_rx_port_offloads(struct rte_eth_dev *dev)
> > >  		   DEV_RX_OFFLOAD_TCP_CKSUM   |
> > >  		   DEV_RX_OFFLOAD_KEEP_CRC    |
> > >  		   DEV_RX_OFFLOAD_JUMBO_FRAME |
> > > +		   DEV_RX_OFFLOAD_VLAN_FILTER |
> > > +		   DEV_RX_OFFLOAD_VLAN_EXTEND |
> > >  		   DEV_RX_OFFLOAD_SCATTER;
> > >
> > >  	if (hw->mac.type == ixgbe_mac_82598EB)
> > >  		offloads |= DEV_RX_OFFLOAD_VLAN_STRIP;
> > >
> > > -	if (ixgbe_is_vf(dev) == 0)
> > > -		offloads |= (DEV_RX_OFFLOAD_VLAN_FILTER |
> > > -			     DEV_RX_OFFLOAD_VLAN_EXTEND);
> > > -
> > >  	/*
> > >  	 * RSC is only supported by 82599 and x540 PF devices in a non-SR-
> > > IOV
> > >  	 * mode.
> > > --
> > > 2.19.1
  
Qi Zhang March 15, 2019, 1:20 a.m. UTC | #4
> -----Original Message-----
> From: David Harton (dharton) [mailto:dharton@cisco.com]
> Sent: Thursday, March 14, 2019 11:51 PM
> To: Zhang, Qi Z <qi.z.zhang@intel.com>
> Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Ananyev, Konstantin
> <konstantin.ananyev@intel.com>; dev@dpdk.org
> Subject: RE: [PATCH v2] net/ixgbe: Restore vlan filter/extend for ixgbevf
> 
> Hi Qi,
> 
> > -----Original Message-----
> > From: Zhang, Qi Z <qi.z.zhang@intel.com>
> > Sent: Thursday, March 14, 2019 11:14 AM
> > To: David Harton (dharton) <dharton@cisco.com>
> > Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Ananyev, Konstantin
> > <konstantin.ananyev@intel.com>; dev@dpdk.org
> > Subject: RE: [PATCH v2] net/ixgbe: Restore vlan filter/extend for
> > ixgbevf
> >
> >
> >
> > > -----Original Message-----
> > > From: David Harton (dharton) [mailto:dharton@cisco.com]
> > > Sent: Thursday, March 14, 2019 9:38 PM
> > > To: David Harton (dharton) <dharton@cisco.com>; Zhang, Qi Z
> > > <qi.z.zhang@intel.com>
> > > Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Ananyev, Konstantin
> > > <konstantin.ananyev@intel.com>; dev@dpdk.org
> > > Subject: RE: [PATCH v2] net/ixgbe: Restore vlan filter/extend for
> > > ixgbevf
> > >
> > > Hi Qi,
> > >
> > > This patch was rejected with no feedback.
> > >
> > > Can you share why?
> >
> > Because as Zhao Wei explained in v1 thread, in
> > ixgbe_vlan_offload_config , ETH_VLAN_FILTER_MASK and
> > DEV_RX_OFFLOAD_VLAN_EXTEND are ignored This looks like VLAN_FILTER
> AND
> > VLAN_EXTEND offload is not supported and I didn't see you reply for that, so I
> assume you agree with that.
> >
> >
> > >
> > > Without this patch users are not able to call the
> > > rte_eth_dev_vlan_filter() API for ixgbevf based ports because
> > > VLAN_FILTER cannot be enabled when calling rte_eth_dev_configure().
> >
> > OK, seems vlan filter is able to be configured for ixgbevf, but I
> > don't know how this will work because vlan filter table needs to be
> > enabled first (ixgbe_vlan_hw_filter_enable) So at least when it work
> > with a DPDK PF, vlan filter will not work, maybe kernel PF driver will
> > enable it by default? Could you share more insight?
> 
> I can't answer that but ixgbevf_vlan_filter_set() has been implemented for quite
> some time and it can no longer be called since the new offload flags are being
> enforced now.
> 
> I can share that rte_eth_dev_vlan_filter()/ixgbevf_vlan_filter_set() works
> properly with the propose change (VLAN traffic flows) where it doesn't without
> it.

Ok, if it is proved to work well with kernel PF, I think we should have this offload
> 
> >
> > And same question to VLAN_EXTEND
> 
> I actually don't care about extend but simply changed it because it seems to be in
> the same situation.  I'm happy to leave it  out of the patch if that grants
> acceptance.

Seems VLAN Extend is only supported by DPDK PF driver, I didn't see any related configuration in kernel driver.
Properly we need to remove it.

@Wei, would you help to confirm on that?

Thanks
Qi

> 
> Thanks,
> Dave
> 
> >
> >
> > >
> > > Or, am I missing something?
> > >
> > > Thanks,
> > > Dave
> > >
> > > > -----Original Message-----
> > > > From: David Harton <dharton@cisco.com>
> > > > Sent: Friday, March 08, 2019 3:35 PM
> > > > To: dev@dpdk.org
> > > > Cc: wenzhuo.lu@intel.com; konstantin.ananyev@intel.com;
> > > > qi.z.zhang@intel.com; David Harton (dharton) <dharton@cisco.com>
> > > > Subject: [PATCH v2] net/ixgbe: Restore vlan filter/extend for
> > > > ixgbevf
> > > >
> > > > ixgbevf vlan strip and extend capabilities were removed when
> > > > migrating to the bit flags implementation.
> > > >
> > > > Restoring the capbility to enable these offloads at configuration
> > time.
> > > >
> > > > Fixes: ec3b1124d14d (\"net/ixgbe: convert to new Rx offloads
> > > > API\")
> > > > Signed-off-by: David Harton <dharton@cisco.com>
> > > > ---
> > > >
> > > > v2: removed unused function ixgbe_is_vf()
> > > >
> > > >  drivers/net/ixgbe/ixgbe_rxtx.c | 23 ++---------------------
> > > >  1 file changed, 2 insertions(+), 21 deletions(-)
> > > >
> > > > diff --git a/drivers/net/ixgbe/ixgbe_rxtx.c
> > > > b/drivers/net/ixgbe/ixgbe_rxtx.c index e92a70fb3..b1b83613e 100644
> > > > --- a/drivers/net/ixgbe/ixgbe_rxtx.c
> > > > +++ b/drivers/net/ixgbe/ixgbe_rxtx.c
> > > > @@ -2813,23 +2813,6 @@ ixgbe_reset_rx_queue(struct ixgbe_adapter
> > > > *adapter, struct ixgbe_rx_queue *rxq)  #endif  }
> > > >
> > > > -static int
> > > > -ixgbe_is_vf(struct rte_eth_dev *dev) -{
> > > > -	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data-
> > > > >dev_private);
> > > > -
> > > > -	switch (hw->mac.type) {
> > > > -	case ixgbe_mac_82599_vf:
> > > > -	case ixgbe_mac_X540_vf:
> > > > -	case ixgbe_mac_X550_vf:
> > > > -	case ixgbe_mac_X550EM_x_vf:
> > > > -	case ixgbe_mac_X550EM_a_vf:
> > > > -		return 1;
> > > > -	default:
> > > > -		return 0;
> > > > -	}
> > > > -}
> > > > -
> > > >  uint64_t
> > > >  ixgbe_get_rx_queue_offloads(struct rte_eth_dev *dev)  { @@
> > > > -2853,15
> > > > +2836,13 @@ ixgbe_get_rx_port_offloads(struct rte_eth_dev *dev)
> > > >  		   DEV_RX_OFFLOAD_TCP_CKSUM   |
> > > >  		   DEV_RX_OFFLOAD_KEEP_CRC    |
> > > >  		   DEV_RX_OFFLOAD_JUMBO_FRAME |
> > > > +		   DEV_RX_OFFLOAD_VLAN_FILTER |
> > > > +		   DEV_RX_OFFLOAD_VLAN_EXTEND |
> > > >  		   DEV_RX_OFFLOAD_SCATTER;
> > > >
> > > >  	if (hw->mac.type == ixgbe_mac_82598EB)
> > > >  		offloads |= DEV_RX_OFFLOAD_VLAN_STRIP;
> > > >
> > > > -	if (ixgbe_is_vf(dev) == 0)
> > > > -		offloads |= (DEV_RX_OFFLOAD_VLAN_FILTER |
> > > > -			     DEV_RX_OFFLOAD_VLAN_EXTEND);
> > > > -
> > > >  	/*
> > > >  	 * RSC is only supported by 82599 and x540 PF devices in a
> > > > non-SR- IOV
> > > >  	 * mode.
> > > > --
> > > > 2.19.1
  
Zhao1, Wei March 15, 2019, 4:13 a.m. UTC | #5
> -----Original Message-----
> From: Zhang, Qi Z
> Sent: Friday, March 15, 2019 9:20 AM
> To: David Harton (dharton) <dharton@cisco.com>
> Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Ananyev, Konstantin
> <konstantin.ananyev@intel.com>; dev@dpdk.org; Zhao1, Wei
> <wei.zhao1@intel.com>
> Subject: RE: [PATCH v2] net/ixgbe: Restore vlan filter/extend for ixgbevf
> 
> 
> 
> > -----Original Message-----
> > From: David Harton (dharton) [mailto:dharton@cisco.com]
> > Sent: Thursday, March 14, 2019 11:51 PM
> > To: Zhang, Qi Z <qi.z.zhang@intel.com>
> > Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Ananyev, Konstantin
> > <konstantin.ananyev@intel.com>; dev@dpdk.org
> > Subject: RE: [PATCH v2] net/ixgbe: Restore vlan filter/extend for
> > ixgbevf
> >
> > Hi Qi,
> >
> > > -----Original Message-----
> > > From: Zhang, Qi Z <qi.z.zhang@intel.com>
> > > Sent: Thursday, March 14, 2019 11:14 AM
> > > To: David Harton (dharton) <dharton@cisco.com>
> > > Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Ananyev, Konstantin
> > > <konstantin.ananyev@intel.com>; dev@dpdk.org
> > > Subject: RE: [PATCH v2] net/ixgbe: Restore vlan filter/extend for
> > > ixgbevf
> > >
> > >
> > >
> > > > -----Original Message-----
> > > > From: David Harton (dharton) [mailto:dharton@cisco.com]
> > > > Sent: Thursday, March 14, 2019 9:38 PM
> > > > To: David Harton (dharton) <dharton@cisco.com>; Zhang, Qi Z
> > > > <qi.z.zhang@intel.com>
> > > > Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Ananyev, Konstantin
> > > > <konstantin.ananyev@intel.com>; dev@dpdk.org
> > > > Subject: RE: [PATCH v2] net/ixgbe: Restore vlan filter/extend for
> > > > ixgbevf
> > > >
> > > > Hi Qi,
> > > >
> > > > This patch was rejected with no feedback.
> > > >
> > > > Can you share why?
> > >
> > > Because as Zhao Wei explained in v1 thread, in
> > > ixgbe_vlan_offload_config , ETH_VLAN_FILTER_MASK and
> > > DEV_RX_OFFLOAD_VLAN_EXTEND are ignored This looks like
> VLAN_FILTER
> > AND
> > > VLAN_EXTEND offload is not supported and I didn't see you reply for
> > > that, so I
> > assume you agree with that.
> > >
> > >
> > > >
> > > > Without this patch users are not able to call the
> > > > rte_eth_dev_vlan_filter() API for ixgbevf based ports because
> > > > VLAN_FILTER cannot be enabled when calling rte_eth_dev_configure().
> > >
> > > OK, seems vlan filter is able to be configured for ixgbevf, but I
> > > don't know how this will work because vlan filter table needs to be
> > > enabled first (ixgbe_vlan_hw_filter_enable) So at least when it work
> > > with a DPDK PF, vlan filter will not work, maybe kernel PF driver
> > > will enable it by default? Could you share more insight?
> >
> > I can't answer that but ixgbevf_vlan_filter_set() has been implemented
> > for quite some time and it can no longer be called since the new
> > offload flags are being enforced now.
> >
> > I can share that rte_eth_dev_vlan_filter()/ixgbevf_vlan_filter_set()
> > works properly with the propose change (VLAN traffic flows) where it
> > doesn't without it.
> 
> Ok, if it is proved to work well with kernel PF, I think we should have this
> offload

It seems kernel pf enable vlan filter by default?
This vf fuction is depend on kernel pf.

> >
> > >
> > > And same question to VLAN_EXTEND
> >
> > I actually don't care about extend but simply changed it because it
> > seems to be in the same situation.  I'm happy to leave it  out of the
> > patch if that grants acceptance.
> 
> Seems VLAN Extend is only supported by DPDK PF driver, I didn't see any
> related configuration in kernel driver.
> Properly we need to remove it.
> 
> @Wei, would you help to confirm on that?

I will check that later.

> 
> Thanks
> Qi
> 
> >
> > Thanks,
> > Dave
> >
> > >
> > >
> > > >
> > > > Or, am I missing something?
> > > >
> > > > Thanks,
> > > > Dave
> > > >
> > > > > -----Original Message-----
> > > > > From: David Harton <dharton@cisco.com>
> > > > > Sent: Friday, March 08, 2019 3:35 PM
> > > > > To: dev@dpdk.org
> > > > > Cc: wenzhuo.lu@intel.com; konstantin.ananyev@intel.com;
> > > > > qi.z.zhang@intel.com; David Harton (dharton) <dharton@cisco.com>
> > > > > Subject: [PATCH v2] net/ixgbe: Restore vlan filter/extend for
> > > > > ixgbevf
> > > > >
> > > > > ixgbevf vlan strip and extend capabilities were removed when
> > > > > migrating to the bit flags implementation.
> > > > >
> > > > > Restoring the capbility to enable these offloads at
> > > > > configuration
> > > time.
> > > > >
> > > > > Fixes: ec3b1124d14d (\"net/ixgbe: convert to new Rx offloads
> > > > > API\")
> > > > > Signed-off-by: David Harton <dharton@cisco.com>
> > > > > ---
> > > > >
> > > > > v2: removed unused function ixgbe_is_vf()
> > > > >
> > > > >  drivers/net/ixgbe/ixgbe_rxtx.c | 23 ++---------------------
> > > > >  1 file changed, 2 insertions(+), 21 deletions(-)
> > > > >
> > > > > diff --git a/drivers/net/ixgbe/ixgbe_rxtx.c
> > > > > b/drivers/net/ixgbe/ixgbe_rxtx.c index e92a70fb3..b1b83613e
> > > > > 100644
> > > > > --- a/drivers/net/ixgbe/ixgbe_rxtx.c
> > > > > +++ b/drivers/net/ixgbe/ixgbe_rxtx.c
> > > > > @@ -2813,23 +2813,6 @@ ixgbe_reset_rx_queue(struct
> ixgbe_adapter
> > > > > *adapter, struct ixgbe_rx_queue *rxq)  #endif  }
> > > > >
> > > > > -static int
> > > > > -ixgbe_is_vf(struct rte_eth_dev *dev) -{
> > > > > -	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev-
> >data-
> > > > > >dev_private);
> > > > > -
> > > > > -	switch (hw->mac.type) {
> > > > > -	case ixgbe_mac_82599_vf:
> > > > > -	case ixgbe_mac_X540_vf:
> > > > > -	case ixgbe_mac_X550_vf:
> > > > > -	case ixgbe_mac_X550EM_x_vf:
> > > > > -	case ixgbe_mac_X550EM_a_vf:
> > > > > -		return 1;
> > > > > -	default:
> > > > > -		return 0;
> > > > > -	}
> > > > > -}
> > > > > -
> > > > >  uint64_t
> > > > >  ixgbe_get_rx_queue_offloads(struct rte_eth_dev *dev)  { @@
> > > > > -2853,15
> > > > > +2836,13 @@ ixgbe_get_rx_port_offloads(struct rte_eth_dev *dev)
> > > > >  		   DEV_RX_OFFLOAD_TCP_CKSUM   |
> > > > >  		   DEV_RX_OFFLOAD_KEEP_CRC    |
> > > > >  		   DEV_RX_OFFLOAD_JUMBO_FRAME |
> > > > > +		   DEV_RX_OFFLOAD_VLAN_FILTER |
> > > > > +		   DEV_RX_OFFLOAD_VLAN_EXTEND |
> > > > >  		   DEV_RX_OFFLOAD_SCATTER;
> > > > >
> > > > >  	if (hw->mac.type == ixgbe_mac_82598EB)
> > > > >  		offloads |= DEV_RX_OFFLOAD_VLAN_STRIP;
> > > > >
> > > > > -	if (ixgbe_is_vf(dev) == 0)
> > > > > -		offloads |= (DEV_RX_OFFLOAD_VLAN_FILTER |
> > > > > -			     DEV_RX_OFFLOAD_VLAN_EXTEND);
> > > > > -
> > > > >  	/*
> > > > >  	 * RSC is only supported by 82599 and x540 PF devices in a
> > > > > non-SR- IOV
> > > > >  	 * mode.
> > > > > --
> > > > > 2.19.1
  
Zhao1, Wei March 15, 2019, 5:28 a.m. UTC | #6
Hi,qi

> -----Original Message-----
> From: Zhang, Qi Z
> Sent: Friday, March 15, 2019 9:20 AM
> To: David Harton (dharton) <dharton@cisco.com>
> Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Ananyev, Konstantin
> <konstantin.ananyev@intel.com>; dev@dpdk.org; Zhao1, Wei
> <wei.zhao1@intel.com>
> Subject: RE: [PATCH v2] net/ixgbe: Restore vlan filter/extend for ixgbevf
> 
> 
> 
> > -----Original Message-----
> > From: David Harton (dharton) [mailto:dharton@cisco.com]
> > Sent: Thursday, March 14, 2019 11:51 PM
> > To: Zhang, Qi Z <qi.z.zhang@intel.com>
> > Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Ananyev, Konstantin
> > <konstantin.ananyev@intel.com>; dev@dpdk.org
> > Subject: RE: [PATCH v2] net/ixgbe: Restore vlan filter/extend for
> > ixgbevf
> >
> > Hi Qi,
> >
> > > -----Original Message-----
> > > From: Zhang, Qi Z <qi.z.zhang@intel.com>
> > > Sent: Thursday, March 14, 2019 11:14 AM
> > > To: David Harton (dharton) <dharton@cisco.com>
> > > Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Ananyev, Konstantin
> > > <konstantin.ananyev@intel.com>; dev@dpdk.org
> > > Subject: RE: [PATCH v2] net/ixgbe: Restore vlan filter/extend for
> > > ixgbevf
> > >
> > >
> > >
> > > > -----Original Message-----
> > > > From: David Harton (dharton) [mailto:dharton@cisco.com]
> > > > Sent: Thursday, March 14, 2019 9:38 PM
> > > > To: David Harton (dharton) <dharton@cisco.com>; Zhang, Qi Z
> > > > <qi.z.zhang@intel.com>
> > > > Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Ananyev, Konstantin
> > > > <konstantin.ananyev@intel.com>; dev@dpdk.org
> > > > Subject: RE: [PATCH v2] net/ixgbe: Restore vlan filter/extend for
> > > > ixgbevf
> > > >
> > > > Hi Qi,
> > > >
> > > > This patch was rejected with no feedback.
> > > >
> > > > Can you share why?
> > >
> > > Because as Zhao Wei explained in v1 thread, in
> > > ixgbe_vlan_offload_config , ETH_VLAN_FILTER_MASK and
> > > DEV_RX_OFFLOAD_VLAN_EXTEND are ignored This looks like
> VLAN_FILTER
> > AND
> > > VLAN_EXTEND offload is not supported and I didn't see you reply for
> > > that, so I
> > assume you agree with that.
> > >
> > >
> > > >
> > > > Without this patch users are not able to call the
> > > > rte_eth_dev_vlan_filter() API for ixgbevf based ports because
> > > > VLAN_FILTER cannot be enabled when calling rte_eth_dev_configure().
> > >
> > > OK, seems vlan filter is able to be configured for ixgbevf, but I
> > > don't know how this will work because vlan filter table needs to be
> > > enabled first (ixgbe_vlan_hw_filter_enable) So at least when it work
> > > with a DPDK PF, vlan filter will not work, maybe kernel PF driver
> > > will enable it by default? Could you share more insight?
> >
> > I can't answer that but ixgbevf_vlan_filter_set() has been implemented
> > for quite some time and it can no longer be called since the new
> > offload flags are being enforced now.
> >
> > I can share that rte_eth_dev_vlan_filter()/ixgbevf_vlan_filter_set()
> > works properly with the propose change (VLAN traffic flows) where it
> > doesn't without it.
> 
> Ok, if it is proved to work well with kernel PF, I think we should have this
> offload
> >
> > >
> > > And same question to VLAN_EXTEND
> >
> > I actually don't care about extend but simply changed it because it
> > seems to be in the same situation.  I'm happy to leave it  out of the
> > patch if that grants acceptance.
> 
> Seems VLAN Extend is only supported by DPDK PF driver, I didn't see any
> related configuration in kernel driver.
> Properly we need to remove it.
> 
> @Wei, would you help to confirm on that?


Yes, you are right, kernel pf do not has any code to set bit of IXGBE_DMATXCTL_GDV which enable double valn.
So, that means (kernel pf host + dpdk vf) can not enable double valn feature. It seems only dpdk pf host + vf can do that.

Maybe we can change code to
"
	offloads |= DEV_RX_OFFLOAD_VLAN_FILTER;

	if (ixgbe_is_vf(dev) == 0)
		offloads |= DEV_RX_OFFLOAD_VLAN_EXTEND;
"
But that means when in ENV (kernel pf host + dpdk vf),  this is much depended on kernel pf default configuration.



> 
> Thanks
> Qi
> 
> >
> > Thanks,
> > Dave
> >
> > >
> > >
> > > >
> > > > Or, am I missing something?
> > > >
> > > > Thanks,
> > > > Dave
> > > >
> > > > > -----Original Message-----
> > > > > From: David Harton <dharton@cisco.com>
> > > > > Sent: Friday, March 08, 2019 3:35 PM
> > > > > To: dev@dpdk.org
> > > > > Cc: wenzhuo.lu@intel.com; konstantin.ananyev@intel.com;
> > > > > qi.z.zhang@intel.com; David Harton (dharton) <dharton@cisco.com>
> > > > > Subject: [PATCH v2] net/ixgbe: Restore vlan filter/extend for
> > > > > ixgbevf
> > > > >
> > > > > ixgbevf vlan strip and extend capabilities were removed when
> > > > > migrating to the bit flags implementation.
> > > > >
> > > > > Restoring the capbility to enable these offloads at
> > > > > configuration
> > > time.
> > > > >
> > > > > Fixes: ec3b1124d14d (\"net/ixgbe: convert to new Rx offloads
> > > > > API\")
> > > > > Signed-off-by: David Harton <dharton@cisco.com>
> > > > > ---
> > > > >
> > > > > v2: removed unused function ixgbe_is_vf()
> > > > >
> > > > >  drivers/net/ixgbe/ixgbe_rxtx.c | 23 ++---------------------
> > > > >  1 file changed, 2 insertions(+), 21 deletions(-)
> > > > >
> > > > > diff --git a/drivers/net/ixgbe/ixgbe_rxtx.c
> > > > > b/drivers/net/ixgbe/ixgbe_rxtx.c index e92a70fb3..b1b83613e
> > > > > 100644
> > > > > --- a/drivers/net/ixgbe/ixgbe_rxtx.c
> > > > > +++ b/drivers/net/ixgbe/ixgbe_rxtx.c
> > > > > @@ -2813,23 +2813,6 @@ ixgbe_reset_rx_queue(struct
> ixgbe_adapter
> > > > > *adapter, struct ixgbe_rx_queue *rxq)  #endif  }
> > > > >
> > > > > -static int
> > > > > -ixgbe_is_vf(struct rte_eth_dev *dev) -{
> > > > > -	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev-
> >data-
> > > > > >dev_private);
> > > > > -
> > > > > -	switch (hw->mac.type) {
> > > > > -	case ixgbe_mac_82599_vf:
> > > > > -	case ixgbe_mac_X540_vf:
> > > > > -	case ixgbe_mac_X550_vf:
> > > > > -	case ixgbe_mac_X550EM_x_vf:
> > > > > -	case ixgbe_mac_X550EM_a_vf:
> > > > > -		return 1;
> > > > > -	default:
> > > > > -		return 0;
> > > > > -	}
> > > > > -}
> > > > > -
> > > > >  uint64_t
> > > > >  ixgbe_get_rx_queue_offloads(struct rte_eth_dev *dev)  { @@
> > > > > -2853,15
> > > > > +2836,13 @@ ixgbe_get_rx_port_offloads(struct rte_eth_dev *dev)
> > > > >  		   DEV_RX_OFFLOAD_TCP_CKSUM   |
> > > > >  		   DEV_RX_OFFLOAD_KEEP_CRC    |
> > > > >  		   DEV_RX_OFFLOAD_JUMBO_FRAME |
> > > > > +		   DEV_RX_OFFLOAD_VLAN_FILTER |
> > > > > +		   DEV_RX_OFFLOAD_VLAN_EXTEND |
> > > > >  		   DEV_RX_OFFLOAD_SCATTER;
> > > > >
> > > > >  	if (hw->mac.type == ixgbe_mac_82598EB)
> > > > >  		offloads |= DEV_RX_OFFLOAD_VLAN_STRIP;
> > > > >
> > > > > -	if (ixgbe_is_vf(dev) == 0)
> > > > > -		offloads |= (DEV_RX_OFFLOAD_VLAN_FILTER |
> > > > > -			     DEV_RX_OFFLOAD_VLAN_EXTEND);
> > > > > -
> > > > >  	/*
> > > > >  	 * RSC is only supported by 82599 and x540 PF devices in a
> > > > > non-SR- IOV
> > > > >  	 * mode.
> > > > > --
> > > > > 2.19.1
  
Qi Zhang March 15, 2019, 7:36 a.m. UTC | #7
> -----Original Message-----
> From: Zhao1, Wei
> Sent: Friday, March 15, 2019 1:28 PM
> To: Zhang, Qi Z <qi.z.zhang@intel.com>; David Harton (dharton)
> <dharton@cisco.com>
> Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Ananyev, Konstantin
> <konstantin.ananyev@intel.com>; dev@dpdk.org
> Subject: RE: [PATCH v2] net/ixgbe: Restore vlan filter/extend for ixgbevf
> 
> Hi,qi
> 
> > -----Original Message-----
> > From: Zhang, Qi Z
> > Sent: Friday, March 15, 2019 9:20 AM
> > To: David Harton (dharton) <dharton@cisco.com>
> > Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Ananyev, Konstantin
> > <konstantin.ananyev@intel.com>; dev@dpdk.org; Zhao1, Wei
> > <wei.zhao1@intel.com>
> > Subject: RE: [PATCH v2] net/ixgbe: Restore vlan filter/extend for
> > ixgbevf
> >
> >
> >
> > > -----Original Message-----
> > > From: David Harton (dharton) [mailto:dharton@cisco.com]
> > > Sent: Thursday, March 14, 2019 11:51 PM
> > > To: Zhang, Qi Z <qi.z.zhang@intel.com>
> > > Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Ananyev, Konstantin
> > > <konstantin.ananyev@intel.com>; dev@dpdk.org
> > > Subject: RE: [PATCH v2] net/ixgbe: Restore vlan filter/extend for
> > > ixgbevf
> > >
> > > Hi Qi,
> > >
> > > > -----Original Message-----
> > > > From: Zhang, Qi Z <qi.z.zhang@intel.com>
> > > > Sent: Thursday, March 14, 2019 11:14 AM
> > > > To: David Harton (dharton) <dharton@cisco.com>
> > > > Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Ananyev, Konstantin
> > > > <konstantin.ananyev@intel.com>; dev@dpdk.org
> > > > Subject: RE: [PATCH v2] net/ixgbe: Restore vlan filter/extend for
> > > > ixgbevf
> > > >
> > > >
> > > >
> > > > > -----Original Message-----
> > > > > From: David Harton (dharton) [mailto:dharton@cisco.com]
> > > > > Sent: Thursday, March 14, 2019 9:38 PM
> > > > > To: David Harton (dharton) <dharton@cisco.com>; Zhang, Qi Z
> > > > > <qi.z.zhang@intel.com>
> > > > > Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Ananyev, Konstantin
> > > > > <konstantin.ananyev@intel.com>; dev@dpdk.org
> > > > > Subject: RE: [PATCH v2] net/ixgbe: Restore vlan filter/extend
> > > > > for ixgbevf
> > > > >
> > > > > Hi Qi,
> > > > >
> > > > > This patch was rejected with no feedback.
> > > > >
> > > > > Can you share why?
> > > >
> > > > Because as Zhao Wei explained in v1 thread, in
> > > > ixgbe_vlan_offload_config , ETH_VLAN_FILTER_MASK and
> > > > DEV_RX_OFFLOAD_VLAN_EXTEND are ignored This looks like
> > VLAN_FILTER
> > > AND
> > > > VLAN_EXTEND offload is not supported and I didn't see you reply
> > > > for that, so I
> > > assume you agree with that.
> > > >
> > > >
> > > > >
> > > > > Without this patch users are not able to call the
> > > > > rte_eth_dev_vlan_filter() API for ixgbevf based ports because
> > > > > VLAN_FILTER cannot be enabled when calling rte_eth_dev_configure().
> > > >
> > > > OK, seems vlan filter is able to be configured for ixgbevf, but I
> > > > don't know how this will work because vlan filter table needs to
> > > > be enabled first (ixgbe_vlan_hw_filter_enable) So at least when it
> > > > work with a DPDK PF, vlan filter will not work, maybe kernel PF
> > > > driver will enable it by default? Could you share more insight?
> > >
> > > I can't answer that but ixgbevf_vlan_filter_set() has been
> > > implemented for quite some time and it can no longer be called since
> > > the new offload flags are being enforced now.
> > >
> > > I can share that rte_eth_dev_vlan_filter()/ixgbevf_vlan_filter_set()
> > > works properly with the propose change (VLAN traffic flows) where it
> > > doesn't without it.
> >
> > Ok, if it is proved to work well with kernel PF, I think we should
> > have this offload
> > >
> > > >
> > > > And same question to VLAN_EXTEND
> > >
> > > I actually don't care about extend but simply changed it because it
> > > seems to be in the same situation.  I'm happy to leave it  out of
> > > the patch if that grants acceptance.
> >
> > Seems VLAN Extend is only supported by DPDK PF driver, I didn't see
> > any related configuration in kernel driver.
> > Properly we need to remove it.
> >
> > @Wei, would you help to confirm on that?
> 
> 
> Yes, you are right, kernel pf do not has any code to set bit of
> IXGBE_DMATXCTL_GDV which enable double valn.
> So, that means (kernel pf host + dpdk vf) can not enable double valn feature. It
> seems only dpdk pf host + vf can do that.
> 
> Maybe we can change code to
> "
> 	offloads |= DEV_RX_OFFLOAD_VLAN_FILTER;
> 
> 	if (ixgbe_is_vf(dev) == 0)
> 		offloads |= DEV_RX_OFFLOAD_VLAN_EXTEND; "

+1

> But that means when in ENV (kernel pf host + dpdk vf),  this is much depended
> on kernel pf default configuration.
> 


> 
> 
> >
> > Thanks
> > Qi
> >
> > >
> > > Thanks,
> > > Dave
> > >
> > > >
> > > >
> > > > >
> > > > > Or, am I missing something?
> > > > >
> > > > > Thanks,
> > > > > Dave
> > > > >
> > > > > > -----Original Message-----
> > > > > > From: David Harton <dharton@cisco.com>
> > > > > > Sent: Friday, March 08, 2019 3:35 PM
> > > > > > To: dev@dpdk.org
> > > > > > Cc: wenzhuo.lu@intel.com; konstantin.ananyev@intel.com;
> > > > > > qi.z.zhang@intel.com; David Harton (dharton)
> > > > > > <dharton@cisco.com>
> > > > > > Subject: [PATCH v2] net/ixgbe: Restore vlan filter/extend for
> > > > > > ixgbevf
> > > > > >
> > > > > > ixgbevf vlan strip and extend capabilities were removed when
> > > > > > migrating to the bit flags implementation.
> > > > > >
> > > > > > Restoring the capbility to enable these offloads at
> > > > > > configuration
> > > > time.
> > > > > >
> > > > > > Fixes: ec3b1124d14d (\"net/ixgbe: convert to new Rx offloads
> > > > > > API\")
> > > > > > Signed-off-by: David Harton <dharton@cisco.com>
> > > > > > ---
> > > > > >
> > > > > > v2: removed unused function ixgbe_is_vf()
> > > > > >
> > > > > >  drivers/net/ixgbe/ixgbe_rxtx.c | 23 ++---------------------
> > > > > >  1 file changed, 2 insertions(+), 21 deletions(-)
> > > > > >
> > > > > > diff --git a/drivers/net/ixgbe/ixgbe_rxtx.c
> > > > > > b/drivers/net/ixgbe/ixgbe_rxtx.c index e92a70fb3..b1b83613e
> > > > > > 100644
> > > > > > --- a/drivers/net/ixgbe/ixgbe_rxtx.c
> > > > > > +++ b/drivers/net/ixgbe/ixgbe_rxtx.c
> > > > > > @@ -2813,23 +2813,6 @@ ixgbe_reset_rx_queue(struct
> > ixgbe_adapter
> > > > > > *adapter, struct ixgbe_rx_queue *rxq)  #endif  }
> > > > > >
> > > > > > -static int
> > > > > > -ixgbe_is_vf(struct rte_eth_dev *dev) -{
> > > > > > -	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev-
> > >data-
> > > > > > >dev_private);
> > > > > > -
> > > > > > -	switch (hw->mac.type) {
> > > > > > -	case ixgbe_mac_82599_vf:
> > > > > > -	case ixgbe_mac_X540_vf:
> > > > > > -	case ixgbe_mac_X550_vf:
> > > > > > -	case ixgbe_mac_X550EM_x_vf:
> > > > > > -	case ixgbe_mac_X550EM_a_vf:
> > > > > > -		return 1;
> > > > > > -	default:
> > > > > > -		return 0;
> > > > > > -	}
> > > > > > -}
> > > > > > -
> > > > > >  uint64_t
> > > > > >  ixgbe_get_rx_queue_offloads(struct rte_eth_dev *dev)  { @@
> > > > > > -2853,15
> > > > > > +2836,13 @@ ixgbe_get_rx_port_offloads(struct rte_eth_dev
> > > > > > +*dev)
> > > > > >  		   DEV_RX_OFFLOAD_TCP_CKSUM   |
> > > > > >  		   DEV_RX_OFFLOAD_KEEP_CRC    |
> > > > > >  		   DEV_RX_OFFLOAD_JUMBO_FRAME |
> > > > > > +		   DEV_RX_OFFLOAD_VLAN_FILTER |
> > > > > > +		   DEV_RX_OFFLOAD_VLAN_EXTEND |
> > > > > >  		   DEV_RX_OFFLOAD_SCATTER;
> > > > > >
> > > > > >  	if (hw->mac.type == ixgbe_mac_82598EB)
> > > > > >  		offloads |= DEV_RX_OFFLOAD_VLAN_STRIP;
> > > > > >
> > > > > > -	if (ixgbe_is_vf(dev) == 0)
> > > > > > -		offloads |= (DEV_RX_OFFLOAD_VLAN_FILTER |
> > > > > > -			     DEV_RX_OFFLOAD_VLAN_EXTEND);
> > > > > > -
> > > > > >  	/*
> > > > > >  	 * RSC is only supported by 82599 and x540 PF devices in a
> > > > > > non-SR- IOV
> > > > > >  	 * mode.
> > > > > > --
> > > > > > 2.19.1
  
Ananyev, Konstantin March 15, 2019, 9:23 a.m. UTC | #8
> 
> Hi,qi
> 
> > -----Original Message-----
> > From: Zhang, Qi Z
> > Sent: Friday, March 15, 2019 9:20 AM
> > To: David Harton (dharton) <dharton@cisco.com>
> > Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Ananyev, Konstantin
> > <konstantin.ananyev@intel.com>; dev@dpdk.org; Zhao1, Wei
> > <wei.zhao1@intel.com>
> > Subject: RE: [PATCH v2] net/ixgbe: Restore vlan filter/extend for ixgbevf
> >
> >
> >
> > > -----Original Message-----
> > > From: David Harton (dharton) [mailto:dharton@cisco.com]
> > > Sent: Thursday, March 14, 2019 11:51 PM
> > > To: Zhang, Qi Z <qi.z.zhang@intel.com>
> > > Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Ananyev, Konstantin
> > > <konstantin.ananyev@intel.com>; dev@dpdk.org
> > > Subject: RE: [PATCH v2] net/ixgbe: Restore vlan filter/extend for
> > > ixgbevf
> > >
> > > Hi Qi,
> > >
> > > > -----Original Message-----
> > > > From: Zhang, Qi Z <qi.z.zhang@intel.com>
> > > > Sent: Thursday, March 14, 2019 11:14 AM
> > > > To: David Harton (dharton) <dharton@cisco.com>
> > > > Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Ananyev, Konstantin
> > > > <konstantin.ananyev@intel.com>; dev@dpdk.org
> > > > Subject: RE: [PATCH v2] net/ixgbe: Restore vlan filter/extend for
> > > > ixgbevf
> > > >
> > > >
> > > >
> > > > > -----Original Message-----
> > > > > From: David Harton (dharton) [mailto:dharton@cisco.com]
> > > > > Sent: Thursday, March 14, 2019 9:38 PM
> > > > > To: David Harton (dharton) <dharton@cisco.com>; Zhang, Qi Z
> > > > > <qi.z.zhang@intel.com>
> > > > > Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Ananyev, Konstantin
> > > > > <konstantin.ananyev@intel.com>; dev@dpdk.org
> > > > > Subject: RE: [PATCH v2] net/ixgbe: Restore vlan filter/extend for
> > > > > ixgbevf
> > > > >
> > > > > Hi Qi,
> > > > >
> > > > > This patch was rejected with no feedback.
> > > > >
> > > > > Can you share why?
> > > >
> > > > Because as Zhao Wei explained in v1 thread, in
> > > > ixgbe_vlan_offload_config , ETH_VLAN_FILTER_MASK and
> > > > DEV_RX_OFFLOAD_VLAN_EXTEND are ignored This looks like
> > VLAN_FILTER
> > > AND
> > > > VLAN_EXTEND offload is not supported and I didn't see you reply for
> > > > that, so I
> > > assume you agree with that.
> > > >
> > > >
> > > > >
> > > > > Without this patch users are not able to call the
> > > > > rte_eth_dev_vlan_filter() API for ixgbevf based ports because
> > > > > VLAN_FILTER cannot be enabled when calling rte_eth_dev_configure().
> > > >
> > > > OK, seems vlan filter is able to be configured for ixgbevf, but I
> > > > don't know how this will work because vlan filter table needs to be
> > > > enabled first (ixgbe_vlan_hw_filter_enable) So at least when it work
> > > > with a DPDK PF, vlan filter will not work, maybe kernel PF driver
> > > > will enable it by default? Could you share more insight?
> > >
> > > I can't answer that but ixgbevf_vlan_filter_set() has been implemented
> > > for quite some time and it can no longer be called since the new
> > > offload flags are being enforced now.
> > >
> > > I can share that rte_eth_dev_vlan_filter()/ixgbevf_vlan_filter_set()
> > > works properly with the propose change (VLAN traffic flows) where it
> > > doesn't without it.
> >
> > Ok, if it is proved to work well with kernel PF, I think we should have this
> > offload
> > >
> > > >
> > > > And same question to VLAN_EXTEND
> > >
> > > I actually don't care about extend but simply changed it because it
> > > seems to be in the same situation.  I'm happy to leave it  out of the
> > > patch if that grants acceptance.
> >
> > Seems VLAN Extend is only supported by DPDK PF driver, I didn't see any
> > related configuration in kernel driver.
> > Properly we need to remove it.
> >
> > @Wei, would you help to confirm on that?
> 
> 
> Yes, you are right, kernel pf do not has any code to set bit of IXGBE_DMATXCTL_GDV which enable double valn.
> So, that means (kernel pf host + dpdk vf) can not enable double valn feature. It seems only dpdk pf host + vf can do that.

Wonder can vf request pf what is supported?
Konstantin


> 
> Maybe we can change code to
> "
> 	offloads |= DEV_RX_OFFLOAD_VLAN_FILTER;
> 
> 	if (ixgbe_is_vf(dev) == 0)
> 		offloads |= DEV_RX_OFFLOAD_VLAN_EXTEND;
> "
> But that means when in ENV (kernel pf host + dpdk vf),  this is much depended on kernel pf default configuration.
> 
> 
> 
> >
> > Thanks
> > Qi
> >
> > >
> > > Thanks,
> > > Dave
> > >
> > > >
> > > >
> > > > >
> > > > > Or, am I missing something?
> > > > >
> > > > > Thanks,
> > > > > Dave
> > > > >
> > > > > > -----Original Message-----
> > > > > > From: David Harton <dharton@cisco.com>
> > > > > > Sent: Friday, March 08, 2019 3:35 PM
> > > > > > To: dev@dpdk.org
> > > > > > Cc: wenzhuo.lu@intel.com; konstantin.ananyev@intel.com;
> > > > > > qi.z.zhang@intel.com; David Harton (dharton) <dharton@cisco.com>
> > > > > > Subject: [PATCH v2] net/ixgbe: Restore vlan filter/extend for
> > > > > > ixgbevf
> > > > > >
> > > > > > ixgbevf vlan strip and extend capabilities were removed when
> > > > > > migrating to the bit flags implementation.
> > > > > >
> > > > > > Restoring the capbility to enable these offloads at
> > > > > > configuration
> > > > time.
> > > > > >
> > > > > > Fixes: ec3b1124d14d (\"net/ixgbe: convert to new Rx offloads
> > > > > > API\")
> > > > > > Signed-off-by: David Harton <dharton@cisco.com>
> > > > > > ---
> > > > > >
> > > > > > v2: removed unused function ixgbe_is_vf()
> > > > > >
> > > > > >  drivers/net/ixgbe/ixgbe_rxtx.c | 23 ++---------------------
> > > > > >  1 file changed, 2 insertions(+), 21 deletions(-)
> > > > > >
> > > > > > diff --git a/drivers/net/ixgbe/ixgbe_rxtx.c
> > > > > > b/drivers/net/ixgbe/ixgbe_rxtx.c index e92a70fb3..b1b83613e
> > > > > > 100644
> > > > > > --- a/drivers/net/ixgbe/ixgbe_rxtx.c
> > > > > > +++ b/drivers/net/ixgbe/ixgbe_rxtx.c
> > > > > > @@ -2813,23 +2813,6 @@ ixgbe_reset_rx_queue(struct
> > ixgbe_adapter
> > > > > > *adapter, struct ixgbe_rx_queue *rxq)  #endif  }
> > > > > >
> > > > > > -static int
> > > > > > -ixgbe_is_vf(struct rte_eth_dev *dev) -{
> > > > > > -	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev-
> > >data-
> > > > > > >dev_private);
> > > > > > -
> > > > > > -	switch (hw->mac.type) {
> > > > > > -	case ixgbe_mac_82599_vf:
> > > > > > -	case ixgbe_mac_X540_vf:
> > > > > > -	case ixgbe_mac_X550_vf:
> > > > > > -	case ixgbe_mac_X550EM_x_vf:
> > > > > > -	case ixgbe_mac_X550EM_a_vf:
> > > > > > -		return 1;
> > > > > > -	default:
> > > > > > -		return 0;
> > > > > > -	}
> > > > > > -}
> > > > > > -
> > > > > >  uint64_t
> > > > > >  ixgbe_get_rx_queue_offloads(struct rte_eth_dev *dev)  { @@
> > > > > > -2853,15
> > > > > > +2836,13 @@ ixgbe_get_rx_port_offloads(struct rte_eth_dev *dev)
> > > > > >  		   DEV_RX_OFFLOAD_TCP_CKSUM   |
> > > > > >  		   DEV_RX_OFFLOAD_KEEP_CRC    |
> > > > > >  		   DEV_RX_OFFLOAD_JUMBO_FRAME |
> > > > > > +		   DEV_RX_OFFLOAD_VLAN_FILTER |
> > > > > > +		   DEV_RX_OFFLOAD_VLAN_EXTEND |
> > > > > >  		   DEV_RX_OFFLOAD_SCATTER;
> > > > > >
> > > > > >  	if (hw->mac.type == ixgbe_mac_82598EB)
> > > > > >  		offloads |= DEV_RX_OFFLOAD_VLAN_STRIP;
> > > > > >
> > > > > > -	if (ixgbe_is_vf(dev) == 0)
> > > > > > -		offloads |= (DEV_RX_OFFLOAD_VLAN_FILTER |
> > > > > > -			     DEV_RX_OFFLOAD_VLAN_EXTEND);
> > > > > > -
> > > > > >  	/*
> > > > > >  	 * RSC is only supported by 82599 and x540 PF devices in a
> > > > > > non-SR- IOV
> > > > > >  	 * mode.
> > > > > > --
> > > > > > 2.19.1
  
Zhao1, Wei March 15, 2019, 9:35 a.m. UTC | #9
Hi , Konstantin

> -----Original Message-----
> From: Ananyev, Konstantin
> Sent: Friday, March 15, 2019 5:24 PM
> To: Zhao1, Wei <wei.zhao1@intel.com>; Zhang, Qi Z <qi.z.zhang@intel.com>;
> David Harton (dharton) <dharton@cisco.com>
> Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; dev@dpdk.org
> Subject: RE: [PATCH v2] net/ixgbe: Restore vlan filter/extend for ixgbevf
> 
> 
> >
> > Hi,qi
> >
> > > -----Original Message-----
> > > From: Zhang, Qi Z
> > > Sent: Friday, March 15, 2019 9:20 AM
> > > To: David Harton (dharton) <dharton@cisco.com>
> > > Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Ananyev, Konstantin
> > > <konstantin.ananyev@intel.com>; dev@dpdk.org; Zhao1, Wei
> > > <wei.zhao1@intel.com>
> > > Subject: RE: [PATCH v2] net/ixgbe: Restore vlan filter/extend for
> > > ixgbevf
> > >
> > >
> > >
> > > > -----Original Message-----
> > > > From: David Harton (dharton) [mailto:dharton@cisco.com]
> > > > Sent: Thursday, March 14, 2019 11:51 PM
> > > > To: Zhang, Qi Z <qi.z.zhang@intel.com>
> > > > Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Ananyev, Konstantin
> > > > <konstantin.ananyev@intel.com>; dev@dpdk.org
> > > > Subject: RE: [PATCH v2] net/ixgbe: Restore vlan filter/extend for
> > > > ixgbevf
> > > >
> > > > Hi Qi,
> > > >
> > > > > -----Original Message-----
> > > > > From: Zhang, Qi Z <qi.z.zhang@intel.com>
> > > > > Sent: Thursday, March 14, 2019 11:14 AM
> > > > > To: David Harton (dharton) <dharton@cisco.com>
> > > > > Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Ananyev, Konstantin
> > > > > <konstantin.ananyev@intel.com>; dev@dpdk.org
> > > > > Subject: RE: [PATCH v2] net/ixgbe: Restore vlan filter/extend
> > > > > for ixgbevf
> > > > >
> > > > >
> > > > >
> > > > > > -----Original Message-----
> > > > > > From: David Harton (dharton) [mailto:dharton@cisco.com]
> > > > > > Sent: Thursday, March 14, 2019 9:38 PM
> > > > > > To: David Harton (dharton) <dharton@cisco.com>; Zhang, Qi Z
> > > > > > <qi.z.zhang@intel.com>
> > > > > > Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Ananyev, Konstantin
> > > > > > <konstantin.ananyev@intel.com>; dev@dpdk.org
> > > > > > Subject: RE: [PATCH v2] net/ixgbe: Restore vlan filter/extend
> > > > > > for ixgbevf
> > > > > >
> > > > > > Hi Qi,
> > > > > >
> > > > > > This patch was rejected with no feedback.
> > > > > >
> > > > > > Can you share why?
> > > > >
> > > > > Because as Zhao Wei explained in v1 thread, in
> > > > > ixgbe_vlan_offload_config , ETH_VLAN_FILTER_MASK and
> > > > > DEV_RX_OFFLOAD_VLAN_EXTEND are ignored This looks like
> > > VLAN_FILTER
> > > > AND
> > > > > VLAN_EXTEND offload is not supported and I didn't see you reply
> > > > > for that, so I
> > > > assume you agree with that.
> > > > >
> > > > >
> > > > > >
> > > > > > Without this patch users are not able to call the
> > > > > > rte_eth_dev_vlan_filter() API for ixgbevf based ports because
> > > > > > VLAN_FILTER cannot be enabled when calling
> rte_eth_dev_configure().
> > > > >
> > > > > OK, seems vlan filter is able to be configured for ixgbevf, but
> > > > > I don't know how this will work because vlan filter table needs
> > > > > to be enabled first (ixgbe_vlan_hw_filter_enable) So at least
> > > > > when it work with a DPDK PF, vlan filter will not work, maybe
> > > > > kernel PF driver will enable it by default? Could you share more
> insight?
> > > >
> > > > I can't answer that but ixgbevf_vlan_filter_set() has been
> > > > implemented for quite some time and it can no longer be called
> > > > since the new offload flags are being enforced now.
> > > >
> > > > I can share that
> > > > rte_eth_dev_vlan_filter()/ixgbevf_vlan_filter_set()
> > > > works properly with the propose change (VLAN traffic flows) where
> > > > it doesn't without it.
> > >
> > > Ok, if it is proved to work well with kernel PF, I think we should
> > > have this offload
> > > >
> > > > >
> > > > > And same question to VLAN_EXTEND
> > > >
> > > > I actually don't care about extend but simply changed it because
> > > > it seems to be in the same situation.  I'm happy to leave it  out
> > > > of the patch if that grants acceptance.
> > >
> > > Seems VLAN Extend is only supported by DPDK PF driver, I didn't see
> > > any related configuration in kernel driver.
> > > Properly we need to remove it.
> > >
> > > @Wei, would you help to confirm on that?
> >
> >
> > Yes, you are right, kernel pf do not has any code to set bit of
> IXGBE_DMATXCTL_GDV which enable double valn.
> > So, that means (kernel pf host + dpdk vf) can not enable double valn
> feature. It seems only dpdk pf host + vf can do that.
> 
> Wonder can vf request pf what is supported?
> Konstantin

No such type of message defined in mailbox by now.

> 
> 
> >
> > Maybe we can change code to
> > "
> > 	offloads |= DEV_RX_OFFLOAD_VLAN_FILTER;
> >
> > 	if (ixgbe_is_vf(dev) == 0)
> > 		offloads |= DEV_RX_OFFLOAD_VLAN_EXTEND; "
> > But that means when in ENV (kernel pf host + dpdk vf),  this is much
> depended on kernel pf default configuration.
> >
> >
> >
> > >
> > > Thanks
> > > Qi
> > >
> > > >
> > > > Thanks,
> > > > Dave
> > > >
> > > > >
> > > > >
> > > > > >
> > > > > > Or, am I missing something?
> > > > > >
> > > > > > Thanks,
> > > > > > Dave
> > > > > >
> > > > > > > -----Original Message-----
> > > > > > > From: David Harton <dharton@cisco.com>
> > > > > > > Sent: Friday, March 08, 2019 3:35 PM
> > > > > > > To: dev@dpdk.org
> > > > > > > Cc: wenzhuo.lu@intel.com; konstantin.ananyev@intel.com;
> > > > > > > qi.z.zhang@intel.com; David Harton (dharton)
> > > > > > > <dharton@cisco.com>
> > > > > > > Subject: [PATCH v2] net/ixgbe: Restore vlan filter/extend
> > > > > > > for ixgbevf
> > > > > > >
> > > > > > > ixgbevf vlan strip and extend capabilities were removed when
> > > > > > > migrating to the bit flags implementation.
> > > > > > >
> > > > > > > Restoring the capbility to enable these offloads at
> > > > > > > configuration
> > > > > time.
> > > > > > >
> > > > > > > Fixes: ec3b1124d14d (\"net/ixgbe: convert to new Rx offloads
> > > > > > > API\")
> > > > > > > Signed-off-by: David Harton <dharton@cisco.com>
> > > > > > > ---
> > > > > > >
> > > > > > > v2: removed unused function ixgbe_is_vf()
> > > > > > >
> > > > > > >  drivers/net/ixgbe/ixgbe_rxtx.c | 23 ++---------------------
> > > > > > >  1 file changed, 2 insertions(+), 21 deletions(-)
> > > > > > >
> > > > > > > diff --git a/drivers/net/ixgbe/ixgbe_rxtx.c
> > > > > > > b/drivers/net/ixgbe/ixgbe_rxtx.c index e92a70fb3..b1b83613e
> > > > > > > 100644
> > > > > > > --- a/drivers/net/ixgbe/ixgbe_rxtx.c
> > > > > > > +++ b/drivers/net/ixgbe/ixgbe_rxtx.c
> > > > > > > @@ -2813,23 +2813,6 @@ ixgbe_reset_rx_queue(struct
> > > ixgbe_adapter
> > > > > > > *adapter, struct ixgbe_rx_queue *rxq)  #endif  }
> > > > > > >
> > > > > > > -static int
> > > > > > > -ixgbe_is_vf(struct rte_eth_dev *dev) -{
> > > > > > > -	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev-
> > > >data-
> > > > > > > >dev_private);
> > > > > > > -
> > > > > > > -	switch (hw->mac.type) {
> > > > > > > -	case ixgbe_mac_82599_vf:
> > > > > > > -	case ixgbe_mac_X540_vf:
> > > > > > > -	case ixgbe_mac_X550_vf:
> > > > > > > -	case ixgbe_mac_X550EM_x_vf:
> > > > > > > -	case ixgbe_mac_X550EM_a_vf:
> > > > > > > -		return 1;
> > > > > > > -	default:
> > > > > > > -		return 0;
> > > > > > > -	}
> > > > > > > -}
> > > > > > > -
> > > > > > >  uint64_t
> > > > > > >  ixgbe_get_rx_queue_offloads(struct rte_eth_dev *dev)  { @@
> > > > > > > -2853,15
> > > > > > > +2836,13 @@ ixgbe_get_rx_port_offloads(struct rte_eth_dev
> > > > > > > +*dev)
> > > > > > >  		   DEV_RX_OFFLOAD_TCP_CKSUM   |
> > > > > > >  		   DEV_RX_OFFLOAD_KEEP_CRC    |
> > > > > > >  		   DEV_RX_OFFLOAD_JUMBO_FRAME |
> > > > > > > +		   DEV_RX_OFFLOAD_VLAN_FILTER |
> > > > > > > +		   DEV_RX_OFFLOAD_VLAN_EXTEND |
> > > > > > >  		   DEV_RX_OFFLOAD_SCATTER;
> > > > > > >
> > > > > > >  	if (hw->mac.type == ixgbe_mac_82598EB)
> > > > > > >  		offloads |= DEV_RX_OFFLOAD_VLAN_STRIP;
> > > > > > >
> > > > > > > -	if (ixgbe_is_vf(dev) == 0)
> > > > > > > -		offloads |= (DEV_RX_OFFLOAD_VLAN_FILTER |
> > > > > > > -			     DEV_RX_OFFLOAD_VLAN_EXTEND);
> > > > > > > -
> > > > > > >  	/*
> > > > > > >  	 * RSC is only supported by 82599 and x540 PF devices in a
> > > > > > > non-SR- IOV
> > > > > > >  	 * mode.
> > > > > > > --
> > > > > > > 2.19.1
  
Ananyev, Konstantin March 15, 2019, 12:59 p.m. UTC | #10
Hi Wei,

> > > > > > >
> > > > > > > Hi Qi,
> > > > > > >
> > > > > > > This patch was rejected with no feedback.
> > > > > > >
> > > > > > > Can you share why?
> > > > > >
> > > > > > Because as Zhao Wei explained in v1 thread, in
> > > > > > ixgbe_vlan_offload_config , ETH_VLAN_FILTER_MASK and
> > > > > > DEV_RX_OFFLOAD_VLAN_EXTEND are ignored This looks like
> > > > VLAN_FILTER
> > > > > AND
> > > > > > VLAN_EXTEND offload is not supported and I didn't see you reply
> > > > > > for that, so I
> > > > > assume you agree with that.
> > > > > >
> > > > > >
> > > > > > >
> > > > > > > Without this patch users are not able to call the
> > > > > > > rte_eth_dev_vlan_filter() API for ixgbevf based ports because
> > > > > > > VLAN_FILTER cannot be enabled when calling
> > rte_eth_dev_configure().
> > > > > >
> > > > > > OK, seems vlan filter is able to be configured for ixgbevf, but
> > > > > > I don't know how this will work because vlan filter table needs
> > > > > > to be enabled first (ixgbe_vlan_hw_filter_enable) So at least
> > > > > > when it work with a DPDK PF, vlan filter will not work, maybe
> > > > > > kernel PF driver will enable it by default? Could you share more
> > insight?
> > > > >
> > > > > I can't answer that but ixgbevf_vlan_filter_set() has been
> > > > > implemented for quite some time and it can no longer be called
> > > > > since the new offload flags are being enforced now.
> > > > >
> > > > > I can share that
> > > > > rte_eth_dev_vlan_filter()/ixgbevf_vlan_filter_set()
> > > > > works properly with the propose change (VLAN traffic flows) where
> > > > > it doesn't without it.
> > > >
> > > > Ok, if it is proved to work well with kernel PF, I think we should
> > > > have this offload
> > > > >
> > > > > >
> > > > > > And same question to VLAN_EXTEND
> > > > >
> > > > > I actually don't care about extend but simply changed it because
> > > > > it seems to be in the same situation.  I'm happy to leave it  out
> > > > > of the patch if that grants acceptance.
> > > >
> > > > Seems VLAN Extend is only supported by DPDK PF driver, I didn't see
> > > > any related configuration in kernel driver.
> > > > Properly we need to remove it.
> > > >
> > > > @Wei, would you help to confirm on that?
> > >
> > >
> > > Yes, you are right, kernel pf do not has any code to set bit of
> > IXGBE_DMATXCTL_GDV which enable double valn.
> > > So, that means (kernel pf host + dpdk vf) can not enable double valn
> > feature. It seems only dpdk pf host + vf can do that.
> >
> > Wonder can vf request pf what is supported?
> > Konstantin
> 
> No such type of message defined in mailbox by now.

My thought was try to execute command (set vlan) with some dummy value,
and analyze response to decide do we provide such capability or not.
Or is too much hassle?

> 
> >
> >
> > >
> > > Maybe we can change code to
> > > "
> > > 	offloads |= DEV_RX_OFFLOAD_VLAN_FILTER;
> > >
> > > 	if (ixgbe_is_vf(dev) == 0)
> > > 		offloads |= DEV_RX_OFFLOAD_VLAN_EXTEND; "
> > > But that means when in ENV (kernel pf host + dpdk vf),  this is much
> > depended on kernel pf default configuration.
> > >
> > >
> > >
> > > >
> > > > Thanks
> > > > Qi
> > > >
> > > > >
> > > > > Thanks,
> > > > > Dave
> > > > >
> > > > > >
> > > > > >
> > > > > > >
> > > > > > > Or, am I missing something?
> > > > > > >
> > > > > > > Thanks,
> > > > > > > Dave
> > > > > > >
> > > > > > > > -----Original Message-----
> > > > > > > > From: David Harton <dharton@cisco.com>
> > > > > > > > Sent: Friday, March 08, 2019 3:35 PM
> > > > > > > > To: dev@dpdk.org
> > > > > > > > Cc: wenzhuo.lu@intel.com; konstantin.ananyev@intel.com;
> > > > > > > > qi.z.zhang@intel.com; David Harton (dharton)
> > > > > > > > <dharton@cisco.com>
> > > > > > > > Subject: [PATCH v2] net/ixgbe: Restore vlan filter/extend
> > > > > > > > for ixgbevf
> > > > > > > >
> > > > > > > > ixgbevf vlan strip and extend capabilities were removed when
> > > > > > > > migrating to the bit flags implementation.
> > > > > > > >
> > > > > > > > Restoring the capbility to enable these offloads at
> > > > > > > > configuration
> > > > > > time.
> > > > > > > >
> > > > > > > > Fixes: ec3b1124d14d (\"net/ixgbe: convert to new Rx offloads
> > > > > > > > API\")
> > > > > > > > Signed-off-by: David Harton <dharton@cisco.com>
> > > > > > > > ---
> > > > > > > >
> > > > > > > > v2: removed unused function ixgbe_is_vf()
> > > > > > > >
> > > > > > > >  drivers/net/ixgbe/ixgbe_rxtx.c | 23 ++---------------------
> > > > > > > >  1 file changed, 2 insertions(+), 21 deletions(-)
> > > > > > > >
> > > > > > > > diff --git a/drivers/net/ixgbe/ixgbe_rxtx.c
> > > > > > > > b/drivers/net/ixgbe/ixgbe_rxtx.c index e92a70fb3..b1b83613e
> > > > > > > > 100644
> > > > > > > > --- a/drivers/net/ixgbe/ixgbe_rxtx.c
> > > > > > > > +++ b/drivers/net/ixgbe/ixgbe_rxtx.c
> > > > > > > > @@ -2813,23 +2813,6 @@ ixgbe_reset_rx_queue(struct
> > > > ixgbe_adapter
> > > > > > > > *adapter, struct ixgbe_rx_queue *rxq)  #endif  }
> > > > > > > >
> > > > > > > > -static int
> > > > > > > > -ixgbe_is_vf(struct rte_eth_dev *dev) -{
> > > > > > > > -	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev-
> > > > >data-
> > > > > > > > >dev_private);
> > > > > > > > -
> > > > > > > > -	switch (hw->mac.type) {
> > > > > > > > -	case ixgbe_mac_82599_vf:
> > > > > > > > -	case ixgbe_mac_X540_vf:
> > > > > > > > -	case ixgbe_mac_X550_vf:
> > > > > > > > -	case ixgbe_mac_X550EM_x_vf:
> > > > > > > > -	case ixgbe_mac_X550EM_a_vf:
> > > > > > > > -		return 1;
> > > > > > > > -	default:
> > > > > > > > -		return 0;
> > > > > > > > -	}
> > > > > > > > -}
> > > > > > > > -
> > > > > > > >  uint64_t
> > > > > > > >  ixgbe_get_rx_queue_offloads(struct rte_eth_dev *dev)  { @@
> > > > > > > > -2853,15
> > > > > > > > +2836,13 @@ ixgbe_get_rx_port_offloads(struct rte_eth_dev
> > > > > > > > +*dev)
> > > > > > > >  		   DEV_RX_OFFLOAD_TCP_CKSUM   |
> > > > > > > >  		   DEV_RX_OFFLOAD_KEEP_CRC    |
> > > > > > > >  		   DEV_RX_OFFLOAD_JUMBO_FRAME |
> > > > > > > > +		   DEV_RX_OFFLOAD_VLAN_FILTER |
> > > > > > > > +		   DEV_RX_OFFLOAD_VLAN_EXTEND |
> > > > > > > >  		   DEV_RX_OFFLOAD_SCATTER;
> > > > > > > >
> > > > > > > >  	if (hw->mac.type == ixgbe_mac_82598EB)
> > > > > > > >  		offloads |= DEV_RX_OFFLOAD_VLAN_STRIP;
> > > > > > > >
> > > > > > > > -	if (ixgbe_is_vf(dev) == 0)
> > > > > > > > -		offloads |= (DEV_RX_OFFLOAD_VLAN_FILTER |
> > > > > > > > -			     DEV_RX_OFFLOAD_VLAN_EXTEND);
> > > > > > > > -
> > > > > > > >  	/*
> > > > > > > >  	 * RSC is only supported by 82599 and x540 PF devices in a
> > > > > > > > non-SR- IOV
> > > > > > > >  	 * mode.
> > > > > > > > --
> > > > > > > > 2.19.1
  
Zhao1, Wei March 18, 2019, 3:13 a.m. UTC | #11
> -----Original Message-----
> From: Ananyev, Konstantin
> Sent: Friday, March 15, 2019 9:00 PM
> To: Zhao1, Wei <wei.zhao1@intel.com>; Zhang, Qi Z <qi.z.zhang@intel.com>;
> David Harton (dharton) <dharton@cisco.com>
> Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; dev@dpdk.org
> Subject: RE: [PATCH v2] net/ixgbe: Restore vlan filter/extend for ixgbevf
> 
> Hi Wei,
> 
> > > > > > > >
> > > > > > > > Hi Qi,
> > > > > > > >
> > > > > > > > This patch was rejected with no feedback.
> > > > > > > >
> > > > > > > > Can you share why?
> > > > > > >
> > > > > > > Because as Zhao Wei explained in v1 thread, in
> > > > > > > ixgbe_vlan_offload_config , ETH_VLAN_FILTER_MASK and
> > > > > > > DEV_RX_OFFLOAD_VLAN_EXTEND are ignored This looks like
> > > > > VLAN_FILTER
> > > > > > AND
> > > > > > > VLAN_EXTEND offload is not supported and I didn't see you
> > > > > > > reply for that, so I
> > > > > > assume you agree with that.
> > > > > > >
> > > > > > >
> > > > > > > >
> > > > > > > > Without this patch users are not able to call the
> > > > > > > > rte_eth_dev_vlan_filter() API for ixgbevf based ports
> > > > > > > > because VLAN_FILTER cannot be enabled when calling
> > > rte_eth_dev_configure().
> > > > > > >
> > > > > > > OK, seems vlan filter is able to be configured for ixgbevf,
> > > > > > > but I don't know how this will work because vlan filter
> > > > > > > table needs to be enabled first
> > > > > > > (ixgbe_vlan_hw_filter_enable) So at least when it work with
> > > > > > > a DPDK PF, vlan filter will not work, maybe kernel PF driver
> > > > > > > will enable it by default? Could you share more
> > > insight?
> > > > > >
> > > > > > I can't answer that but ixgbevf_vlan_filter_set() has been
> > > > > > implemented for quite some time and it can no longer be called
> > > > > > since the new offload flags are being enforced now.
> > > > > >
> > > > > > I can share that
> > > > > > rte_eth_dev_vlan_filter()/ixgbevf_vlan_filter_set()
> > > > > > works properly with the propose change (VLAN traffic flows)
> > > > > > where it doesn't without it.
> > > > >
> > > > > Ok, if it is proved to work well with kernel PF, I think we
> > > > > should have this offload
> > > > > >
> > > > > > >
> > > > > > > And same question to VLAN_EXTEND
> > > > > >
> > > > > > I actually don't care about extend but simply changed it
> > > > > > because it seems to be in the same situation.  I'm happy to
> > > > > > leave it  out of the patch if that grants acceptance.
> > > > >
> > > > > Seems VLAN Extend is only supported by DPDK PF driver, I didn't
> > > > > see any related configuration in kernel driver.
> > > > > Properly we need to remove it.
> > > > >
> > > > > @Wei, would you help to confirm on that?
> > > >
> > > >
> > > > Yes, you are right, kernel pf do not has any code to set bit of
> > > IXGBE_DMATXCTL_GDV which enable double valn.
> > > > So, that means (kernel pf host + dpdk vf) can not enable double
> > > > valn
> > > feature. It seems only dpdk pf host + vf can do that.
> > >
> > > Wonder can vf request pf what is supported?
> > > Konstantin
> >
> > No such type of message defined in mailbox by now.
> 
> My thought was try to execute command (set vlan) with some dummy value,
> and analyze response to decide do we provide such capability or not.
> Or is too much hassle?

Maybe hassle to certain extent for implement, I think.


> 
> >
> > >
> > >
> > > >
> > > > Maybe we can change code to
> > > > "
> > > > 	offloads |= DEV_RX_OFFLOAD_VLAN_FILTER;
> > > >
> > > > 	if (ixgbe_is_vf(dev) == 0)
> > > > 		offloads |= DEV_RX_OFFLOAD_VLAN_EXTEND; "
> > > > But that means when in ENV (kernel pf host + dpdk vf),  this is
> > > > much
> > > depended on kernel pf default configuration.
> > > >
> > > >
> > > >
> > > > >
> > > > > Thanks
> > > > > Qi
> > > > >
> > > > > >
> > > > > > Thanks,
> > > > > > Dave
> > > > > >
> > > > > > >
> > > > > > >
> > > > > > > >
> > > > > > > > Or, am I missing something?
> > > > > > > >
> > > > > > > > Thanks,
> > > > > > > > Dave
> > > > > > > >
> > > > > > > > > -----Original Message-----
> > > > > > > > > From: David Harton <dharton@cisco.com>
> > > > > > > > > Sent: Friday, March 08, 2019 3:35 PM
> > > > > > > > > To: dev@dpdk.org
> > > > > > > > > Cc: wenzhuo.lu@intel.com; konstantin.ananyev@intel.com;
> > > > > > > > > qi.z.zhang@intel.com; David Harton (dharton)
> > > > > > > > > <dharton@cisco.com>
> > > > > > > > > Subject: [PATCH v2] net/ixgbe: Restore vlan
> > > > > > > > > filter/extend for ixgbevf
> > > > > > > > >
> > > > > > > > > ixgbevf vlan strip and extend capabilities were removed
> > > > > > > > > when migrating to the bit flags implementation.
> > > > > > > > >
> > > > > > > > > Restoring the capbility to enable these offloads at
> > > > > > > > > configuration
> > > > > > > time.
> > > > > > > > >
> > > > > > > > > Fixes: ec3b1124d14d (\"net/ixgbe: convert to new Rx
> > > > > > > > > offloads
> > > > > > > > > API\")
> > > > > > > > > Signed-off-by: David Harton <dharton@cisco.com>
> > > > > > > > > ---
> > > > > > > > >
> > > > > > > > > v2: removed unused function ixgbe_is_vf()
> > > > > > > > >
> > > > > > > > >  drivers/net/ixgbe/ixgbe_rxtx.c | 23
> > > > > > > > > ++---------------------
> > > > > > > > >  1 file changed, 2 insertions(+), 21 deletions(-)
> > > > > > > > >
> > > > > > > > > diff --git a/drivers/net/ixgbe/ixgbe_rxtx.c
> > > > > > > > > b/drivers/net/ixgbe/ixgbe_rxtx.c index
> > > > > > > > > e92a70fb3..b1b83613e
> > > > > > > > > 100644
> > > > > > > > > --- a/drivers/net/ixgbe/ixgbe_rxtx.c
> > > > > > > > > +++ b/drivers/net/ixgbe/ixgbe_rxtx.c
> > > > > > > > > @@ -2813,23 +2813,6 @@ ixgbe_reset_rx_queue(struct
> > > > > ixgbe_adapter
> > > > > > > > > *adapter, struct ixgbe_rx_queue *rxq)  #endif  }
> > > > > > > > >
> > > > > > > > > -static int
> > > > > > > > > -ixgbe_is_vf(struct rte_eth_dev *dev) -{
> > > > > > > > > -	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev-
> > > > > >data-
> > > > > > > > > >dev_private);
> > > > > > > > > -
> > > > > > > > > -	switch (hw->mac.type) {
> > > > > > > > > -	case ixgbe_mac_82599_vf:
> > > > > > > > > -	case ixgbe_mac_X540_vf:
> > > > > > > > > -	case ixgbe_mac_X550_vf:
> > > > > > > > > -	case ixgbe_mac_X550EM_x_vf:
> > > > > > > > > -	case ixgbe_mac_X550EM_a_vf:
> > > > > > > > > -		return 1;
> > > > > > > > > -	default:
> > > > > > > > > -		return 0;
> > > > > > > > > -	}
> > > > > > > > > -}
> > > > > > > > > -
> > > > > > > > >  uint64_t
> > > > > > > > >  ixgbe_get_rx_queue_offloads(struct rte_eth_dev *dev)  {
> > > > > > > > > @@
> > > > > > > > > -2853,15
> > > > > > > > > +2836,13 @@ ixgbe_get_rx_port_offloads(struct
> > > > > > > > > +rte_eth_dev
> > > > > > > > > +*dev)
> > > > > > > > >  		   DEV_RX_OFFLOAD_TCP_CKSUM   |
> > > > > > > > >  		   DEV_RX_OFFLOAD_KEEP_CRC    |
> > > > > > > > >  		   DEV_RX_OFFLOAD_JUMBO_FRAME |
> > > > > > > > > +		   DEV_RX_OFFLOAD_VLAN_FILTER |
> > > > > > > > > +		   DEV_RX_OFFLOAD_VLAN_EXTEND |
> > > > > > > > >  		   DEV_RX_OFFLOAD_SCATTER;
> > > > > > > > >
> > > > > > > > >  	if (hw->mac.type == ixgbe_mac_82598EB)
> > > > > > > > >  		offloads |= DEV_RX_OFFLOAD_VLAN_STRIP;
> > > > > > > > >
> > > > > > > > > -	if (ixgbe_is_vf(dev) == 0)
> > > > > > > > > -		offloads |= (DEV_RX_OFFLOAD_VLAN_FILTER |
> > > > > > > > > -			     DEV_RX_OFFLOAD_VLAN_EXTEND);
> > > > > > > > > -
> > > > > > > > >  	/*
> > > > > > > > >  	 * RSC is only supported by 82599 and x540 PF devices
> > > > > > > > > in a
> > > > > > > > > non-SR- IOV
> > > > > > > > >  	 * mode.
> > > > > > > > > --
> > > > > > > > > 2.19.1
  

Patch

diff --git a/drivers/net/ixgbe/ixgbe_rxtx.c b/drivers/net/ixgbe/ixgbe_rxtx.c
index e92a70fb3..b1b83613e 100644
--- a/drivers/net/ixgbe/ixgbe_rxtx.c
+++ b/drivers/net/ixgbe/ixgbe_rxtx.c
@@ -2813,23 +2813,6 @@  ixgbe_reset_rx_queue(struct ixgbe_adapter *adapter, struct ixgbe_rx_queue *rxq)
 #endif
 }
 
-static int
-ixgbe_is_vf(struct rte_eth_dev *dev)
-{
-	struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-
-	switch (hw->mac.type) {
-	case ixgbe_mac_82599_vf:
-	case ixgbe_mac_X540_vf:
-	case ixgbe_mac_X550_vf:
-	case ixgbe_mac_X550EM_x_vf:
-	case ixgbe_mac_X550EM_a_vf:
-		return 1;
-	default:
-		return 0;
-	}
-}
-
 uint64_t
 ixgbe_get_rx_queue_offloads(struct rte_eth_dev *dev)
 {
@@ -2853,15 +2836,13 @@  ixgbe_get_rx_port_offloads(struct rte_eth_dev *dev)
 		   DEV_RX_OFFLOAD_TCP_CKSUM   |
 		   DEV_RX_OFFLOAD_KEEP_CRC    |
 		   DEV_RX_OFFLOAD_JUMBO_FRAME |
+		   DEV_RX_OFFLOAD_VLAN_FILTER |
+		   DEV_RX_OFFLOAD_VLAN_EXTEND |
 		   DEV_RX_OFFLOAD_SCATTER;
 
 	if (hw->mac.type == ixgbe_mac_82598EB)
 		offloads |= DEV_RX_OFFLOAD_VLAN_STRIP;
 
-	if (ixgbe_is_vf(dev) == 0)
-		offloads |= (DEV_RX_OFFLOAD_VLAN_FILTER |
-			     DEV_RX_OFFLOAD_VLAN_EXTEND);
-
 	/*
 	 * RSC is only supported by 82599 and x540 PF devices in a non-SR-IOV
 	 * mode.