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

David Harton (dharton) dharton at cisco.com
Thu Mar 14 16:51:27 CET 2019


Hi Qi,

> -----Original Message-----
> From: Zhang, Qi Z <qi.z.zhang at intel.com>
> Sent: Thursday, March 14, 2019 11:14 AM
> To: David Harton (dharton) <dharton at cisco.com>
> Cc: Lu, Wenzhuo <wenzhuo.lu at intel.com>; Ananyev, Konstantin
> <konstantin.ananyev at intel.com>; dev at dpdk.org
> Subject: RE: [PATCH v2] net/ixgbe: Restore vlan filter/extend for ixgbevf
> 
> 
> 
> > -----Original Message-----
> > From: David Harton (dharton) [mailto:dharton at cisco.com]
> > Sent: Thursday, March 14, 2019 9:38 PM
> > To: David Harton (dharton) <dharton at cisco.com>; Zhang, Qi Z
> > <qi.z.zhang at intel.com>
> > Cc: Lu, Wenzhuo <wenzhuo.lu at intel.com>; Ananyev, Konstantin
> > <konstantin.ananyev at intel.com>; dev at 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 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