Received: by 2002:a05:6a10:1287:0:0:0:0 with SMTP id d7csp694889pxv; Thu, 22 Jul 2021 09:54:02 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyqWYxxoGXDQokdmTuaf/BzXumPpdU2UTApju8cgxDpOsnlNPlvN4GE6mTl9PG+X+TheY/8 X-Received: by 2002:a17:906:49c1:: with SMTP id w1mr807101ejv.218.1626972842701; Thu, 22 Jul 2021 09:54:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626972842; cv=none; d=google.com; s=arc-20160816; b=ytFOXzI5rYYV2IyvuK/pdEH7QCZx9IHszsj7+0Ql6oAxew4Uaq3bBvlSddDRioASOc YEQfslC52jCXtyYcOYtO1bwMeeydYxnWIxIHyLOgne+aZx0o65zhfqtnGilXB0v32PS0 S6LWG6bC4ADSeW4xalEVsqS7ZaL6HmWtj1zXqE/3NAasS3NaKRnS2S6r3dnIzwgXuRv+ 8PF/GFpmWVSc8zmsbRz/A14rtU2l7yC/IZkYR2/6gg2J5yb6n1ILBozLTqWJAz993VwT ZF3BtLHUUabB2Qjce/RKNUlS0dRCDUf3U9BDWeOubOLZ48QxVuHd0gQhM9HE/Fd/Px95 qyjQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=lM5nBcJ6OuVlLEUEpxNWjq2anb6HISDUxcTaXuthg8E=; b=YaVNMRt4bVCwcNUYETvty/mAbc3tlfHJcF09QysxJVFmMwrAS7fEeSdKAVnah2GDQT DuMfIYAUnbxcbJmFaOnEREefnnCogoQxafvfBkU5PoJ81wV5HDdojXsMaj5UYFxowDfx OycfAwO1TeiBL+NtD8Gb99HdMmzQQXpOIt9TXW+kPydXW6UV1GTIG5KpWsNPbZrvEkuE n1E0Fj5e/6MAhTidDRtUBozNNu8hko4mlHMZYkOG8z1nA/dZVWE4JtKVwI0K4INZOoiK dR5TGV3Zq6A2Jt2X3dYXjDzb/UqDiu4R/pXP/jOaxxpqjcoD/xPtnWV1SzvI8S9T7Q53 9ZGg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=VxxVGmtE; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id h3si31266570ede.293.2021.07.22.09.53.38; Thu, 22 Jul 2021 09:54:02 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=VxxVGmtE; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235668AbhGVQLp (ORCPT + 99 others); Thu, 22 Jul 2021 12:11:45 -0400 Received: from mail.kernel.org ([198.145.29.99]:44618 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235157AbhGVQHE (ORCPT ); Thu, 22 Jul 2021 12:07:04 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 2877B61DD4; Thu, 22 Jul 2021 16:47:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1626972448; bh=cfQgiXUneC/Olt0NDHBn8V8wdWZ3hzhUU2QRJJkCI54=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=VxxVGmtEyzdXb9FRtP56bUT64ai5WNEzwZqv/dKhxS/OJcXGzHlHJV3fkMl3kSKv9 CmRZLpm3QNL9M/xiSnBBuIxCSPmaHxmIU/eItOuXnBG+yGqfcOohtc7J9NvFc9pM77 TupSgYkJkgXHW0s+VYKlobcBn35tBTvmjIJcu8mE= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Ronak Doshi , Guolin Yang , "David S. Miller" Subject: [PATCH 5.13 119/156] vmxnet3: fix cksum offload issues for tunnels with non-default udp ports Date: Thu, 22 Jul 2021 18:31:34 +0200 Message-Id: <20210722155632.214355143@linuxfoundation.org> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210722155628.371356843@linuxfoundation.org> References: <20210722155628.371356843@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Ronak Doshi commit b22580233d473dbf7bbfa4f6549c09e2c80e9e64 upstream. Commit dacce2be3312 ("vmxnet3: add geneve and vxlan tunnel offload support") added support for encapsulation offload. However, the inner offload capability is to be restricted to UDP tunnels with default Vxlan and Geneve ports. This patch fixes the issue for tunnels with non-default ports using features check capability and filtering appropriate features for such tunnels. Fixes: dacce2be3312 ("vmxnet3: add geneve and vxlan tunnel offload support") Signed-off-by: Ronak Doshi Acked-by: Guolin Yang Signed-off-by: David S. Miller Signed-off-by: Greg Kroah-Hartman --- drivers/net/vmxnet3/vmxnet3_ethtool.c | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) --- a/drivers/net/vmxnet3/vmxnet3_ethtool.c +++ b/drivers/net/vmxnet3/vmxnet3_ethtool.c @@ -1,7 +1,7 @@ /* * Linux driver for VMware's vmxnet3 ethernet NIC. * - * Copyright (C) 2008-2020, VMware, Inc. All Rights Reserved. + * Copyright (C) 2008-2021, VMware, Inc. All Rights Reserved. * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the @@ -26,6 +26,10 @@ #include "vmxnet3_int.h" +#include +#include + +#define VXLAN_UDP_PORT 8472 struct vmxnet3_stat_desc { char desc[ETH_GSTRING_LEN]; @@ -262,6 +266,8 @@ netdev_features_t vmxnet3_features_check if (VMXNET3_VERSION_GE_4(adapter) && skb->encapsulation && skb->ip_summed == CHECKSUM_PARTIAL) { u8 l4_proto = 0; + u16 port; + struct udphdr *udph; switch (vlan_get_protocol(skb)) { case htons(ETH_P_IP): @@ -274,8 +280,20 @@ netdev_features_t vmxnet3_features_check return features & ~(NETIF_F_CSUM_MASK | NETIF_F_GSO_MASK); } - if (l4_proto != IPPROTO_UDP) + switch (l4_proto) { + case IPPROTO_UDP: + udph = udp_hdr(skb); + port = be16_to_cpu(udph->dest); + /* Check if offloaded port is supported */ + if (port != GENEVE_UDP_PORT && + port != IANA_VXLAN_UDP_PORT && + port != VXLAN_UDP_PORT) { + return features & ~(NETIF_F_CSUM_MASK | NETIF_F_GSO_MASK); + } + break; + default: return features & ~(NETIF_F_CSUM_MASK | NETIF_F_GSO_MASK); + } } return features; }