Received: by 2002:a05:6a10:1287:0:0:0:0 with SMTP id d7csp1692271pxv; Fri, 16 Jul 2021 15:40:50 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxnU75U2bPYuHnOGm0hc9Jfc/JKGDLYjH/ZJwl8rOH9oy1o4ujq8wePXtO2JzJibM78TTAd X-Received: by 2002:a05:6402:895:: with SMTP id e21mr17505363edy.9.1626475249976; Fri, 16 Jul 2021 15:40:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626475249; cv=none; d=google.com; s=arc-20160816; b=seX3x/zeSKSFQywlfM2mAX495xpM7+nZt6gsjVV8gwCo8SMZKyVeqj5Y/FB+JRVqId xyFK4kEx/77BZz6qG9kaKpoYmg4r3StMI3dSEA3UaoXPFfdMAUm/5USVRK/ROeo96Z4B CJ6adOsSOfrQJ3emwOdg5RE7iCayzfk+zIdHwtw2oCs8DzWvJ6EfUrH15FXUR7IVIedp SDN30MfmToPo9AzIZfiP/dY+EGAwxOTihsF5Al9pQF8YiffR7Qny6NybE+/F8gy0amMJ WEG82qu7WYE0o6dhY5mTG/uyQozZ8sQ7HJR1A7dp3dONtAhVtePLfkvX/DHWPDuFue+F DHsQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from; bh=QsJL010nVQj6VZ1z42amjdWSbNw9KL2g2VLOwZ8Zekc=; b=smKLlHxYU8tvfpm1NFsvsMCVHLkUN58MiJz5AArtgy7rRsVItUyZec0fGAUO8wOe6t wcCziFg7QNsG792jrfMNQ37r9Z+saVnaK3Wm4mzN+bblYnwFr9g+7tCIDb+qq4pd6vtJ JkShEzo/xJX9DElgBcd0a/JSc+EIJzCtW1IOJ0CeI4EftxJ8xLlQ38K4cy5sSxwGnlb+ wZSMEDvf5hkmELpl8aMFNJ+dEvUpOT3YrcZuLykr8wxqHGO/d3rxpR0zLcImfUexdJDO 2pWazrzZHe9MkjBdJ9Snn/ZmhQiI3e1dfF6p+7F/QKa73dnp6RoE6hJD3qoa2mvBJin4 hBPw== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=NONE sp=NONE dis=NONE) header.from=vmware.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id jt22si4381738ejc.635.2021.07.16.15.40.27; Fri, 16 Jul 2021 15:40:49 -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; 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=fail (p=NONE sp=NONE dis=NONE) header.from=vmware.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238347AbhGPWjz (ORCPT + 99 others); Fri, 16 Jul 2021 18:39:55 -0400 Received: from ex13-edg-ou-002.vmware.com ([208.91.0.190]:11610 "EHLO EX13-EDG-OU-002.vmware.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237231AbhGPWjj (ORCPT ); Fri, 16 Jul 2021 18:39:39 -0400 Received: from sc9-mailhost2.vmware.com (10.113.161.72) by EX13-EDG-OU-002.vmware.com (10.113.208.156) with Microsoft SMTP Server id 15.0.1156.6; Fri, 16 Jul 2021 15:36:37 -0700 Received: from htb-1n-eng-dhcp122.eng.vmware.com (unknown [10.20.114.3]) by sc9-mailhost2.vmware.com (Postfix) with ESMTP id A3E7820374; Fri, 16 Jul 2021 15:36:42 -0700 (PDT) Received: by htb-1n-eng-dhcp122.eng.vmware.com (Postfix, from userid 0) id 9FD3AAA043; Fri, 16 Jul 2021 15:36:42 -0700 (PDT) From: Ronak Doshi To: CC: Ronak Doshi , "maintainer:VMWARE VMXNET3 ETHERNET DRIVER" , "David S. Miller" , Jakub Kicinski , open list Subject: [PATCH net-next 5/7] vmxnet3: set correct hash type based on rss information Date: Fri, 16 Jul 2021 15:36:24 -0700 Message-ID: <20210716223626.18928-6-doshir@vmware.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20210716223626.18928-1-doshir@vmware.com> References: <20210716223626.18928-1-doshir@vmware.com> MIME-Version: 1.0 Content-Type: text/plain Received-SPF: None (EX13-EDG-OU-002.vmware.com: doshir@vmware.com does not designate permitted sender hosts) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org As vmxnet3 supports IP/TCP/UDP RSS, this patch sets appropriate hash type based on the type of RSS performed. Signed-off-by: Ronak Doshi Acked-by: Guolin Yang --- drivers/net/vmxnet3/vmxnet3_defs.h | 16 +++++++++------- drivers/net/vmxnet3/vmxnet3_drv.c | 22 ++++++++++++++++++++-- 2 files changed, 29 insertions(+), 9 deletions(-) diff --git a/drivers/net/vmxnet3/vmxnet3_defs.h b/drivers/net/vmxnet3/vmxnet3_defs.h index a9c108166a52..bc82bbbcb1ab 100644 --- a/drivers/net/vmxnet3/vmxnet3_defs.h +++ b/drivers/net/vmxnet3/vmxnet3_defs.h @@ -344,13 +344,15 @@ struct Vmxnet3_RxCompDescExt { #define VMXNET3_TXD_EOP_SIZE 1 /* value of RxCompDesc.rssType */ -enum { - VMXNET3_RCD_RSS_TYPE_NONE = 0, - VMXNET3_RCD_RSS_TYPE_IPV4 = 1, - VMXNET3_RCD_RSS_TYPE_TCPIPV4 = 2, - VMXNET3_RCD_RSS_TYPE_IPV6 = 3, - VMXNET3_RCD_RSS_TYPE_TCPIPV6 = 4, -}; +#define VMXNET3_RCD_RSS_TYPE_NONE 0 +#define VMXNET3_RCD_RSS_TYPE_IPV4 1 +#define VMXNET3_RCD_RSS_TYPE_TCPIPV4 2 +#define VMXNET3_RCD_RSS_TYPE_IPV6 3 +#define VMXNET3_RCD_RSS_TYPE_TCPIPV6 4 +#define VMXNET3_RCD_RSS_TYPE_UDPIPV4 5 +#define VMXNET3_RCD_RSS_TYPE_UDPIPV6 6 +#define VMXNET3_RCD_RSS_TYPE_ESPIPV4 7 +#define VMXNET3_RCD_RSS_TYPE_ESPIPV6 8 /* a union for accessing all cmd/completion descriptors */ diff --git a/drivers/net/vmxnet3/vmxnet3_drv.c b/drivers/net/vmxnet3/vmxnet3_drv.c index 41e694d13c92..4fd6ce15a860 100644 --- a/drivers/net/vmxnet3/vmxnet3_drv.c +++ b/drivers/net/vmxnet3/vmxnet3_drv.c @@ -1478,10 +1478,28 @@ vmxnet3_rq_rx_complete(struct vmxnet3_rx_queue *rq, #ifdef VMXNET3_RSS if (rcd->rssType != VMXNET3_RCD_RSS_TYPE_NONE && - (adapter->netdev->features & NETIF_F_RXHASH)) + (adapter->netdev->features & NETIF_F_RXHASH)) { + enum pkt_hash_types hash_type; + + switch (rcd->rssType) { + case VMXNET3_RCD_RSS_TYPE_IPV4: + case VMXNET3_RCD_RSS_TYPE_IPV6: + hash_type = PKT_HASH_TYPE_L3; + break; + case VMXNET3_RCD_RSS_TYPE_TCPIPV4: + case VMXNET3_RCD_RSS_TYPE_TCPIPV6: + case VMXNET3_RCD_RSS_TYPE_UDPIPV4: + case VMXNET3_RCD_RSS_TYPE_UDPIPV6: + hash_type = PKT_HASH_TYPE_L4; + break; + default: + hash_type = PKT_HASH_TYPE_L3; + break; + } skb_set_hash(ctx->skb, le32_to_cpu(rcd->rssHash), - PKT_HASH_TYPE_L3); + hash_type); + } #endif skb_put(ctx->skb, rcd->len); -- 2.11.0