[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