[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <YPBZTFlWwXK/hl95@lunn.ch>
Date: Thu, 15 Jul 2021 17:50:36 +0200
From: Andrew Lunn <andrew@...n.ch>
To: Vladimir Oltean <olteanv@...il.com>
Cc: Lino Sanfilippo <LinoSanfilippo@....de>, woojung.huh@...rochip.com,
UNGLinuxDriver@...rochip.com, vivien.didelot@...il.com,
f.fainelli@...il.com, davem@...emloft.net, kuba@...nel.org,
netdev@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 2/2] net: dsa: tag_ksz: dont let the hardware process the
layer 4 checksum
> Tell me more (show me some code).
https://elixir.bootlin.com/linux/latest/source/drivers/net/ethernet/marvell/mvneta.c#L1747
and
https://elixir.bootlin.com/linux/latest/source/drivers/net/ethernet/marvell/mvneta.c#L1944
It uses skb_network_offset(skb) to know where the real header is. This
should work independent of DSA or EDSA.
mvpp2_main.c looks to have something similar. The older mv643xx_eth.c
also has something, but it is more subtle. Ah, found it:
https://elixir.bootlin.com/linux/latest/source/drivers/net/ethernet/marvell/mv643xx_eth.c#L683
> I expect Marvell switches to be equally broken on the Broadcom genet
> controller?
Maybe. Depends on how genet works. A Broadcom switch connected to a
Marvell MAC probably works, since the code is generic. It should work
for any switch which uses head tagging, although mv643xx_eth.c is
limited to 4 or 8 byte tags.
Andrew
Powered by blists - more mailing lists