[Enable Designware XGMAC VLAN Stripping Feature 2/2] net: stmmac: dwxgmac2: Add support for HW-accelerated VLAN Stripping

Ng, Boon Khai boon.khai.ng at intel.com
Fri Jul 21 09:12:35 PDT 2023


> -----Original Message-----
> From: Florian Fainelli <f.fainelli at gmail.com>
> Sent: Friday, July 21, 2023 11:59 PM
> To: Ng, Boon Khai <boon.khai.ng at intel.com>; Krzysztof Kozlowski
> <krzk at kernel.org>; Boon at ecsmtp.png.intel.com; Khai at ecsmtp.png.intel.com;
> Ng, Boon Khai <boon.khai.ng at intel.com>; Giuseppe Cavallaro
> <peppe.cavallaro at st.com>; Alexandre Torgue <alexandre.torgue at foss.st.com>;
> Jose Abreu <joabreu at synopsys.com>; David S . Miller <davem at davemloft.net>;
> Eric Dumazet <edumazet at google.com>; Jakub Kicinski <kuba at kernel.org>;
> Paolo Abeni <pabeni at redhat.com>; Maxime Coquelin
> <mcoquelin.stm32 at gmail.com>; netdev at vger.kernel.org; linux-stm32 at st-md-
> mailman.stormreply.com; linux-arm-kernel at lists.infradead.org; linux-
> kernel at vger.kernel.org
> Cc: Shevchenko, Andriy <andriy.shevchenko at intel.com>; Tham, Mun Yew
> <mun.yew.tham at intel.com>; Swee, Leong Ching
> <leong.ching.swee at intel.com>; G Thomas, Rohan
> <rohan.g.thomas at intel.com>; Shevchenko Andriy
> <andriy.shevchenko at linux.intel.com>
> Subject: Re: [Enable Designware XGMAC VLAN Stripping Feature 2/2] net:
> stmmac: dwxgmac2: Add support for HW-accelerated VLAN Stripping
> 
> 
> 
> On 7/21/2023 8:30 AM, Ng, Boon Khai wrote:
> >> -----Original Message-----
> >> From: Krzysztof Kozlowski <krzk at kernel.org>
> >> Sent: Friday, July 21, 2023 6:11 PM
> >> To: Boon at ecsmtp.png.intel.com; Khai at ecsmtp.png.intel.com; "Ng
> >> <boon.khai.ng"@intel.com; Giuseppe Cavallaro
> >> <peppe.cavallaro at st.com>; Alexandre Torgue
> >> <alexandre.torgue at foss.st.com>; Jose Abreu <joabreu at synopsys.com>;
> >> David S . Miller <davem at davemloft.net>; Eric Dumazet
> >> <edumazet at google.com>; Jakub Kicinski <kuba at kernel.org>; Paolo Abeni
> >> <pabeni at redhat.com>; Maxime Coquelin <mcoquelin.stm32 at gmail.com>;
> >> netdev at vger.kernel.org; linux-stm32 at st- md-mailman.stormreply.com;
> >> linux-arm-kernel at lists.infradead.org; linux- kernel at vger.kernel.org
> >> Cc: Ng, Boon Khai <boon.khai.ng at intel.com>; Shevchenko, Andriy
> >> <andriy.shevchenko at intel.com>; Tham, Mun Yew
> >> <mun.yew.tham at intel.com>; Swee, Leong Ching
> >> <leong.ching.swee at intel.com>; G Thomas, Rohan
> >> <rohan.g.thomas at intel.com>; Shevchenko Andriy
> >> <andriy.shevchenko at linux.intel.com>
> >> Subject: Re: [Enable Designware XGMAC VLAN Stripping Feature 2/2] net:
> >> stmmac: dwxgmac2: Add support for HW-accelerated VLAN Stripping
> >>
> >> On 21/07/2023 08:26, Boon at ecsmtp.png.intel.com wrote:
> >>> From: Boon Khai Ng <boon.khai.ng at intel.com>
> >>>
> >>> Currently, VLAN tag stripping is done by software driver in
> >>> stmmac_rx_vlan(). This patch is to Add support for VLAN tag
> >>> stripping by the MAC hardware and MAC drivers to support it.
> >>> This is done by adding rx_hw_vlan() and set_hw_vlan_mode() callbacks
> >>> at stmmac_ops struct which are called from upper software layer.
> >> ...
> >>
> >>>   	if (priv->dma_cap.vlhash) {
> >>>   		ndev->features |= NETIF_F_HW_VLAN_CTAG_FILTER;
> >>>   		ndev->features |= NETIF_F_HW_VLAN_STAG_FILTER; diff --
> >> git
> >>> a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
> >>> b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
> >>> index 23d53ea04b24..bd7f3326a44c 100644
> >>> --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
> >>> +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
> >>> @@ -543,6 +543,12 @@ stmmac_probe_config_dt(struct platform_device
> >> *pdev, u8 *mac)
> >>>   			plat->flags |= STMMAC_FLAG_TSO_EN;
> >>>   	}
> >>>
> >>> +	/* Rx VLAN HW Stripping */
> >>> +	if (of_property_read_bool(np, "snps,rx-vlan-offload")) {
> >>> +		dev_info(&pdev->dev, "RX VLAN HW Stripping\n");
> >>
> >> Why? Drop.
> >>
> >
> > This is an dts option export to dts for user to choose whether or not
> > they Want a Hardware stripping or a software stripping.
> >
> > May I know what is the reason to drop this?
> 
> Because the networking stack already exposes knobs for drivers to advertise and
> control VLAN stripping/insertion on RX/TX using ethtool and feature bits
> (NETIF_F_HW_VLAN_CTAG_RX, NETIF_F_HW_VLAN_CTAG_TX).
> 

Hi Florian,

Understood, but how does user choose to have the default option
either hardware strip or software strip, when the device just boot up?

I don’t think ethool can "remember" the setting once the device get rebooted?
Any other suggestion of doing it other than using the dts method?

> What you are doing here is encode a policy as a Device Tree property rather
> than describe whether the hardware supports a given feature and this is frowned
> upon.
> --
> Florian


More information about the linux-arm-kernel mailing list