[PATCH net v2 2/2] net: stmmac: Consider Tx VLAN offload tag length for maxSDU
G Thomas, Rohan
rohan.g.thomas at altera.com
Tue Sep 23 21:54:44 PDT 2025
Hi Jakub,
On 9/18/2025 4:24 AM, Jakub Kicinski wrote:
>>> + sdu_len = skb->len;
>>> + if (has_vlan) {
>>> + /* Add VLAN tag length to sdu length in case of txvlan offload */
>>> + if (priv->dev->features & NETIF_F_HW_VLAN_CTAG_TX)
>>> + sdu_len += VLAN_HLEN;
>>> + if (skb->vlan_proto == htons(ETH_P_8021AD) &&
>>> + priv->dev->features & NETIF_F_HW_VLAN_STAG_TX)
>>> + sdu_len += VLAN_HLEN;
>>
>> Is the device adding the same VLAN tag twice if the proto is 8021AD?
>> It looks like it from the code, but how every strange..
>>
>> In any case, it doesn't look like the driver is doing anything with
>> the NETIF_F_HW_VLAN_* flags right? stmmac_vlan_insert() works purely
>> off of vlan proto. So I think we should do the same thing here?
>
> I suppose the double tagging depends on the exact SKU but first check
> looks unnecessary. Maybe stmmac_vlan_insert() should return the number
> of vlans it decided to insert?
>
I overlooked the behavior of stmmac_vlan_insert(). It seems the hardware
supports inserting only one VLAN tag at a time, with the default setting
being SVLAN for 802.1AD and CVLAN for 802.1Q. I'll update the patch to
simply add VLAN_HLEN when stmmac_vlan_insert() returns true. Please let
me know if you have any further concerns.
Best Regards,
Rohan
More information about the linux-arm-kernel
mailing list