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

From: Ng, Boon Khai
Date: Fri Jul 21 2023 - 12:13:58 EST


> -----Original Message-----
> From: Florian Fainelli <f.fainelli@xxxxxxxxx>
> Sent: Friday, July 21, 2023 11:59 PM
> To: Ng, Boon Khai <boon.khai.ng@xxxxxxxxx>; Krzysztof Kozlowski
> <krzk@xxxxxxxxxx>; Boon@xxxxxxxxxxxxxxxxxxxx; Khai@xxxxxxxxxxxxxxxxxxxx;
> Ng, Boon Khai <boon.khai.ng@xxxxxxxxx>; Giuseppe Cavallaro
> <peppe.cavallaro@xxxxxx>; Alexandre Torgue <alexandre.torgue@xxxxxxxxxxx>;
> Jose Abreu <joabreu@xxxxxxxxxxxx>; David S . Miller <davem@xxxxxxxxxxxxx>;
> Eric Dumazet <edumazet@xxxxxxxxxx>; Jakub Kicinski <kuba@xxxxxxxxxx>;
> Paolo Abeni <pabeni@xxxxxxxxxx>; Maxime Coquelin
> <mcoquelin.stm32@xxxxxxxxx>; netdev@xxxxxxxxxxxxxxx; linux-stm32@st-md-
> mailman.stormreply.com; linux-arm-kernel@xxxxxxxxxxxxxxxxxxx; linux-
> kernel@xxxxxxxxxxxxxxx
> Cc: Shevchenko, Andriy <andriy.shevchenko@xxxxxxxxx>; Tham, Mun Yew
> <mun.yew.tham@xxxxxxxxx>; Swee, Leong Ching
> <leong.ching.swee@xxxxxxxxx>; G Thomas, Rohan
> <rohan.g.thomas@xxxxxxxxx>; Shevchenko Andriy
> <andriy.shevchenko@xxxxxxxxxxxxxxx>
> 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@xxxxxxxxxx>
> >> Sent: Friday, July 21, 2023 6:11 PM
> >> To: Boon@xxxxxxxxxxxxxxxxxxxx; Khai@xxxxxxxxxxxxxxxxxxxx; "Ng
> >> <boon.khai.ng"@intel.com; Giuseppe Cavallaro
> >> <peppe.cavallaro@xxxxxx>; Alexandre Torgue
> >> <alexandre.torgue@xxxxxxxxxxx>; Jose Abreu <joabreu@xxxxxxxxxxxx>;
> >> David S . Miller <davem@xxxxxxxxxxxxx>; Eric Dumazet
> >> <edumazet@xxxxxxxxxx>; Jakub Kicinski <kuba@xxxxxxxxxx>; Paolo Abeni
> >> <pabeni@xxxxxxxxxx>; Maxime Coquelin <mcoquelin.stm32@xxxxxxxxx>;
> >> netdev@xxxxxxxxxxxxxxx; linux-stm32@st- md-mailman.stormreply.com;
> >> linux-arm-kernel@xxxxxxxxxxxxxxxxxxx; linux- kernel@xxxxxxxxxxxxxxx
> >> Cc: Ng, Boon Khai <boon.khai.ng@xxxxxxxxx>; Shevchenko, Andriy
> >> <andriy.shevchenko@xxxxxxxxx>; Tham, Mun Yew
> >> <mun.yew.tham@xxxxxxxxx>; Swee, Leong Ching
> >> <leong.ching.swee@xxxxxxxxx>; G Thomas, Rohan
> >> <rohan.g.thomas@xxxxxxxxx>; Shevchenko Andriy
> >> <andriy.shevchenko@xxxxxxxxxxxxxxx>
> >> 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@xxxxxxxxxxxxxxxxxxxx wrote:
> >>> From: Boon Khai Ng <boon.khai.ng@xxxxxxxxx>
> >>>
> >>> 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