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

Florian Fainelli f.fainelli at gmail.com
Fri Jul 21 08:59:06 PDT 2023



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

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