aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans Petter Selasky <hselasky@FreeBSD.org>2021-06-16 13:01:25 +0000
committerKonstantin Belousov <kib@FreeBSD.org>2021-07-12 09:34:39 +0000
commit1918b253d36a82ccc171df40d9abb75923f1ece5 (patch)
tree2005ab95046e384d9cdc44f083123f2831cf5ea4
parent48acda2b2d6d173a2231a3db153dd4709dcb5276 (diff)
downloadsrc-1918b253d36a82ccc171df40d9abb75923f1ece5.tar.gz
src-1918b253d36a82ccc171df40d9abb75923f1ece5.zip
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
-rw-r--r--sys/dev/mlx5/mlx5_en/mlx5_en_tx.c6
1 files 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 |