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

From: Florian Fainelli
Date: Fri Jul 21 2023 - 11:59:15 EST




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).

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