All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next v3] docs: net: dsa: describe issues with checksum offload
@ 2022-04-16  5:27 Luiz Angelo Daros de Luca
  2022-04-16 19:29 ` Florian Fainelli
  2022-04-18 12:30 ` patchwork-bot+netdevbpf
  0 siblings, 2 replies; 3+ messages in thread
From: Luiz Angelo Daros de Luca @ 2022-04-16  5:27 UTC (permalink / raw)
  To: netdev
  Cc: linux-doc, tobias, andrew, f.fainelli, vladimir.oltean, corbet,
	kuba, davem, Luiz Angelo Daros de Luca

DSA tags before IP header (categories 1 and 2) or after the payload (3)
might introduce offload checksum issues.

Signed-off-by: Luiz Angelo Daros de Luca <luizluca@gmail.com>
Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com>
---
 Documentation/networking/dsa/dsa.rst | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/Documentation/networking/dsa/dsa.rst b/Documentation/networking/dsa/dsa.rst
index ddc1dd039337..ed7fa76e7a40 100644
--- a/Documentation/networking/dsa/dsa.rst
+++ b/Documentation/networking/dsa/dsa.rst
@@ -193,6 +193,23 @@ protocol. If not all packets are of equal size, the tagger can implement the
 default behavior by specifying the correct offset incurred by each individual
 RX packet. Tail taggers do not cause issues to the flow dissector.
 
+Checksum offload should work with category 1 and 2 taggers when the DSA master
+driver declares NETIF_F_HW_CSUM in vlan_features and looks at csum_start and
+csum_offset. For those cases, DSA will shift the checksum start and offset by
+the tag size. If the DSA master driver still uses the legacy NETIF_F_IP_CSUM
+or NETIF_F_IPV6_CSUM in vlan_features, the offload might only work if the
+offload hardware already expects that specific tag (perhaps due to matching
+vendors). DSA slaves inherit those flags from the master port, and it is up to
+the driver to correctly fall back to software checksum when the IP header is not
+where the hardware expects. If that check is ineffective, the packets might go
+to the network without a proper checksum (the checksum field will have the
+pseudo IP header sum). For category 3, when the offload hardware does not
+already expect the switch tag in use, the checksum must be calculated before any
+tag is inserted (i.e. inside the tagger). Otherwise, the DSA master would
+include the tail tag in the (software or hardware) checksum calculation. Then,
+when the tag gets stripped by the switch during transmission, it will leave an
+incorrect IP checksum in place.
+
 Due to various reasons (most common being category 1 taggers being associated
 with DSA-unaware masters, mangling what the master perceives as MAC DA), the
 tagging protocol may require the DSA master to operate in promiscuous mode, to
-- 
2.35.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH net-next v3] docs: net: dsa: describe issues with checksum offload
  2022-04-16  5:27 [PATCH net-next v3] docs: net: dsa: describe issues with checksum offload Luiz Angelo Daros de Luca
@ 2022-04-16 19:29 ` Florian Fainelli
  2022-04-18 12:30 ` patchwork-bot+netdevbpf
  1 sibling, 0 replies; 3+ messages in thread
From: Florian Fainelli @ 2022-04-16 19:29 UTC (permalink / raw)
  To: Luiz Angelo Daros de Luca, netdev
  Cc: linux-doc, tobias, andrew, vladimir.oltean, corbet, kuba, davem



On 4/15/2022 10:27 PM, Luiz Angelo Daros de Luca wrote:
> DSA tags before IP header (categories 1 and 2) or after the payload (3)
> might introduce offload checksum issues.
> 
> Signed-off-by: Luiz Angelo Daros de Luca <luizluca@gmail.com>
> Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com>

Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
-- 
Florian

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH net-next v3] docs: net: dsa: describe issues with checksum offload
  2022-04-16  5:27 [PATCH net-next v3] docs: net: dsa: describe issues with checksum offload Luiz Angelo Daros de Luca
  2022-04-16 19:29 ` Florian Fainelli
@ 2022-04-18 12:30 ` patchwork-bot+netdevbpf
  1 sibling, 0 replies; 3+ messages in thread
From: patchwork-bot+netdevbpf @ 2022-04-18 12:30 UTC (permalink / raw)
  To: Luiz Angelo Daros de Luca
  Cc: netdev, linux-doc, tobias, andrew, f.fainelli, vladimir.oltean,
	corbet, kuba, davem

Hello:

This patch was applied to netdev/net-next.git (master)
by David S. Miller <davem@davemloft.net>:

On Sat, 16 Apr 2022 02:27:37 -0300 you wrote:
> DSA tags before IP header (categories 1 and 2) or after the payload (3)
> might introduce offload checksum issues.
> 
> Signed-off-by: Luiz Angelo Daros de Luca <luizluca@gmail.com>
> Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com>
> ---
>  Documentation/networking/dsa/dsa.rst | 17 +++++++++++++++++
>  1 file changed, 17 insertions(+)

Here is the summary with links:
  - [net-next,v3] docs: net: dsa: describe issues with checksum offload
    https://git.kernel.org/netdev/net-next/c/a997157e42e3

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2022-04-18 12:37 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-16  5:27 [PATCH net-next v3] docs: net: dsa: describe issues with checksum offload Luiz Angelo Daros de Luca
2022-04-16 19:29 ` Florian Fainelli
2022-04-18 12:30 ` patchwork-bot+netdevbpf

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.