git: 1918b253d36a - main - mlx5en: Fix for IPv6 VxLAN checksum offload.

Konstantin Belousov kib at FreeBSD.org
Mon Jul 12 12:00:46 UTC 2021


The branch main has been updated by kib:

URL: https://cgit.FreeBSD.org/src/commit/?id=1918b253d36a82ccc171df40d9abb75923f1ece5

commit 1918b253d36a82ccc171df40d9abb75923f1ece5
Author:     Hans Petter Selasky <hselasky at FreeBSD.org>
AuthorDate: 2021-06-16 13:01:25 +0000
Commit:     Konstantin Belousov <kib at FreeBSD.org>
CommitDate: 2021-07-12 09:34:39 +0000

    mlx5en: Fix for IPv6 VxLAN checksum offload.
    
    Add missing check for IPv6 mbuf offload flags and remove L3 WQE checksum flag for IPv6.
    
    MFC after:      1 week
    Reviewed by:    kib
    Sponsored by:   Mellanox Technologies // NVIDIA Networking
---
 sys/dev/mlx5/mlx5_en/mlx5_en_tx.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/sys/dev/mlx5/mlx5_en/mlx5_en_tx.c b/sys/dev/mlx5/mlx5_en/mlx5_en_tx.c
index 6bc0a91ca8ef..437910ee7964 100644
--- a/sys/dev/mlx5/mlx5_en/mlx5_en_tx.c
+++ b/sys/dev/mlx5/mlx5_en/mlx5_en_tx.c
@@ -423,7 +423,7 @@ mlx5e_get_vxlan_header_size(const struct mbuf *mb, struct mlx5e_tx_wqe *wqe,
 		if (unlikely(ip_type != IPPROTO_UDP))
 			return (0);
 		wqe->eth.swp_outer_l3_offset = eth_hdr_len / 2;
-		wqe->eth.cs_flags = MLX5_ETH_WQE_L3_CSUM | MLX5_ETH_WQE_L4_CSUM;
+		wqe->eth.cs_flags = MLX5_ETH_WQE_L4_CSUM;
 		eth_hdr_len += sizeof(*ip6);
 		udp = mlx5e_parse_mbuf_chain(&mb, &offset, eth_hdr_len,
 		    sizeof(*udp));
@@ -483,7 +483,6 @@ mlx5e_get_vxlan_header_size(const struct mbuf *mb, struct mlx5e_tx_wqe *wqe,
 		if (unlikely(ip6 == NULL))
 			return (0);
 		wqe->eth.swp_inner_l3_offset = eth_hdr_len / 2;
-		wqe->eth.cs_flags |= MLX5_ETH_WQE_L3_INNER_CSUM;
 		wqe->eth.swp_flags |= MLX5_ETH_WQE_SWP_INNER_L3_TYPE;
 		ip_type = ip6->ip6_nxt;
 		eth_hdr_len += sizeof(*ip6);
@@ -833,7 +832,8 @@ top:
 				uint8_t cs_mask;
 
 				if (mb->m_pkthdr.csum_flags &
-				    (CSUM_INNER_IP_TCP | CSUM_INNER_IP_UDP)) {
+				    (CSUM_INNER_IP_TCP | CSUM_INNER_IP_UDP |
+				     CSUM_INNER_IP6_TCP | CSUM_INNER_IP6_UDP)) {
 					cs_mask =
 					    MLX5_ETH_WQE_L3_INNER_CSUM |
 					    MLX5_ETH_WQE_L4_INNER_CSUM |


More information about the dev-commits-src-main mailing list