[dpdk-dev] [PATCH v2] net/ixgbe: Restore vlan filter/extend for ixgbevf

Ananyev, Konstantin konstantin.ananyev at intel.com
Fri Mar 15 13:59:43 CET 2019


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 at cisco.com>
> > > > > > > > Sent: Friday, March 08, 2019 3:35 PM
> > > > > > > > To: dev at dpdk.org
> > > > > > > > Cc: wenzhuo.lu at intel.com; konstantin.ananyev at intel.com;
> > > > > > > > qi.z.zhang at intel.com; David Harton (dharton)
> > > > > > > > <dharton at 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 at 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



More information about the dev mailing list