[dpdk-dev] [PATCH] net/ixgbe: Restore vlan filter/extend for ixgbvef
    Zhao1, Wei 
    wei.zhao1 at intel.com
       
    Mon Mar 11 03:02:01 CET 2019
    
    
  
Hi,
> -----Original Message-----
> From: David Harton (dharton) [mailto:dharton at cisco.com]
> Sent: Friday, March 8, 2019 8:39 PM
> To: Zhao1, Wei <wei.zhao1 at intel.com>; dev at dpdk.org; Lu, Wenzhuo
> <wenzhuo.lu at intel.com>; Ananyev, Konstantin
> <konstantin.ananyev at intel.com>
> Subject: RE: [dpdk-dev] [PATCH] net/ixgbe: Restore vlan filter/extend for
> ixgbvef
>
> Hi
>
> > -----Original Message-----
> > From: Zhao1, Wei <wei.zhao1 at intel.com<mailto:wei.zhao1 at intel.com>>
> > Sent: Friday, March 08, 2019 1:35 AM
> > To: David Harton (dharton) <dharton at cisco.com<mailto:dharton at cisco.com>>; dev at dpdk.org<mailto:dev at dpdk.org>; Lu,
> > Wenzhuo <wenzhuo.lu at intel.com<mailto:wenzhuo.lu at intel.com>>; Ananyev, Konstantin
> > <konstantin.ananyev at intel.com<mailto:konstantin.ananyev at intel.com>>
> > Subject: RE: [dpdk-dev] [PATCH] net/ixgbe: Restore vlan filter/extend
> > for ixgbvef
> >
> > Hi,  David Harton
> >
> > > -----Original Message-----
> > > From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of David Harton
> > > Sent: Wednesday, March 6, 2019 11:24 PM
> > > To: dev at dpdk.org<mailto:dev at dpdk.org>; Lu, Wenzhuo <wenzhuo.lu at intel.com<mailto:wenzhuo.lu at intel.com>>; Ananyev,
> > > Konstantin <konstantin.ananyev at intel.com<mailto:konstantin.ananyev at intel.com>>
> > > Cc: David Harton <dharton at cisco.com<mailto:dharton at cisco.com>>
> > > Subject: [dpdk-dev] [PATCH] net/ixgbe: Restore vlan filter/extend
> > > for ixgbvef
> > >
> > > ixgevf 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<mailto:dharton at cisco.com>>
> > > ---
> > >  drivers/net/ixgbe/ixgbe_rxtx.c | 6 ++----
> > >  1 file changed, 2 insertions(+), 4 deletions(-)
> > >
> > > diff --git a/drivers/net/ixgbe/ixgbe_rxtx.c
> > > b/drivers/net/ixgbe/ixgbe_rxtx.c index e92a70fb3..95c32257c 100644
> > > --- a/drivers/net/ixgbe/ixgbe_rxtx.c
> > > +++ b/drivers/net/ixgbe/ixgbe_rxtx.c
> > > @@ -2853,15 +2853,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;
> > >
> >
> > Why do we  set   DEV_RX_OFFLOAD_VLAN_EXTEND for ixgbevf ?
> > It seems Ixgbevf do not support this configuration. Only pf does.
> > But this ixgbe_get_rx_port_offloads () is used by both vf and pf.
>
> I'm personally happy only to move FILTER but I noticed that EXTEND used to
> be 'supported' and I see references to it elsewhere in ixgbevf code:
>
> ixgbevf_dev_start()
>     /* Set HW strip */
>     mask = ETH_VLAN_STRIP_MASK | ETH_VLAN_FILTER_MASK |
>         ETH_VLAN_EXTEND_MASK;
>
> ixgbe_vlan_offload_config()
>     if (mask & ETH_VLAN_EXTEND_MASK) {
>         if (rxmode->offloads & DEV_RX_OFFLOAD_VLAN_EXTEND)
>             ixgbe_vlan_hw_extend_enable(dev);
>         else
>             ixgbe_vlan_hw_extend_disable(dev);
>     }
>
> These uses imply that EXTEND should be supported, correct?
No, not ixgbe_vlan_offload_config, but ixgbevf_vlan_offload_config,
ixgbevf_dev_start() is below:
                /* Set HW strip */
                mask = ETH_VLAN_STRIP_MASK | ETH_VLAN_FILTER_MASK |
                                ETH_VLAN_EXTEND_MASK;
                err = ixgbevf_vlan_offload_config(dev, mask);
static int
ixgbevf_vlan_offload_config(struct rte_eth_dev *dev, int mask)
{
                struct ixgbe_rx_queue *rxq;
                uint16_t i;
                int on = 0;
                /* VF function only support hw strip feature, others are not support */
                if (mask & ETH_VLAN_STRIP_MASK) {
                                for (i = 0; i < dev->data->nb_rx_queues; i++) {
                                                rxq = dev->data->rx_queues[i];
                                                on = !!(rxq->offloads & DEV_RX_OFFLOAD_VLAN_STRIP);
                                                ixgbevf_vlan_strip_queue_set(dev, i, on);
                                }
                }
                return 0;
}
>
> Thanks,
> Dave
>
> >
> >
> > >      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