From patchwork Wed Jan 24 00:13:17 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joshua Washington X-Patchwork-Id: 581 Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id A1935439AD; Wed, 24 Jan 2024 01:13:26 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 69AED402A6; Wed, 24 Jan 2024 01:13:26 +0100 (CET) Received: from mail-yw1-f201.google.com (mail-yw1-f201.google.com [209.85.128.201]) by mails.dpdk.org (Postfix) with ESMTP id 859C240294 for ; Wed, 24 Jan 2024 01:13:25 +0100 (CET) Received: by mail-yw1-f201.google.com with SMTP id 00721157ae682-5f874219ff9so67459517b3.0 for ; Tue, 23 Jan 2024 16:13:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1706055205; x=1706660005; darn=dpdk.org; h=cc:from:subject:message-id:references:mime-version:in-reply-to:date :from:to:cc:subject:date:message-id:reply-to; bh=md7Brtcy8VIEvoeJsJHJJh4ozLtns+WY/3XggLXHzZk=; b=wQzjwsWEHxwclk6zXO3X60pTY66vPKCXcXpVoQBSIZCAPG/d3ZfB+N6f0uRy7jTbHE IleJlLvoUf3pDlOFQD9PhFCIizVGv5FFKSGmXhXGkbqp3qjzX3+jnPx/oi/FSHPURKbC gzOiMovA7tflgvYHwcO847u90TMgzXuFSeh3cSXc0QnUJwOYnT319vlYcfSKPgms9sSt WDCadsBKv4eT7vYoRyLqvU0yCWwSUUBZ4Kj4gGrukuTxFTHV2csnIWZWAdJ3UmBuJnuS j5LdsU5dGj1ANkypSWOzA0HQf5J9qzj7SE4IGvAl+e7kpPx7qizF053cSUYEcLzEtjpa zR2Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706055205; x=1706660005; h=cc:from:subject:message-id:references:mime-version:in-reply-to:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=md7Brtcy8VIEvoeJsJHJJh4ozLtns+WY/3XggLXHzZk=; b=T1lrC5HQIlJ/KM46alISrLveX75cTzRuFiDV4Yy4igto7c0l74sqV5eTjwbN9zCRha txZry+v0GJZeEM2/k9zy1xQVYTm0fsAwOcrciKuaETMTlaRkNEbXe9MTR9SZIJuLoDYs HGgzIEfYN/EYw+MoFYm3H6SFvWfPX1DCgoSLZ7KW4eSfNTWq5ZyQQb9urbYtzo/5eZDM VC9nV9LSWNA9H4wNwGjpAP57X9d+mFHkdEzvCIS1B6/LtAiBWAssusV1rla6Lf8uNL3C ykIPmCz/a0doMCUFTQ400LO7dgnTgiT+8wz7NcAM5bl2y6NTZNNMGCV9Rk6Nx3Y+q/Nt S3GQ== X-Gm-Message-State: AOJu0YzZNuK7wsUN/ooKTpiAm+Qpr2xsq+U/0VhQJChkFX3qMVEtM0Ja jT95VCc2MwOdzErL9x90ZyvQ7Bw137tU4ULo9GWE13ZVg61UfXqnyENjBkaKH+0hASNBjSpOmug OZlcUkNSOZK4jGko5ZbXXRqlk1QjDqpZSPRe8kKk9rSYiQjnrpMpWNVAcpVwYVYp1Sck20AOU7T sYIhJmVVzVAFyiSDD24sZ6Yxacq3q9FQ== X-Google-Smtp-Source: AGHT+IGD4rj5B9e2LqydotMkZVn/kEqE8kwxcbf4ECffdE37+Igl//YYdZY/px3uAzDMid66hJ/2VA/VSomUKw== X-Received: from joshwash.sea.corp.google.com ([2620:15c:11c:202:b9a2:fa74:abc3:bc47]) (user=joshwash job=sendgmr) by 2002:a81:4e47:0:b0:5ff:83c7:b5a0 with SMTP id c68-20020a814e47000000b005ff83c7b5a0mr11017ywb.5.1706055204824; Tue, 23 Jan 2024 16:13:24 -0800 (PST) Date: Tue, 23 Jan 2024 16:13:17 -0800 In-Reply-To: <20240123175831.3219292-1-joshwash@google.com> Mime-Version: 1.0 References: <20240123175831.3219292-1-joshwash@google.com> X-Mailer: git-send-email 2.43.0.429.g432eaa2c6b-goog Message-ID: <20240124001317.442201-1-joshwash@google.com> Subject: [PATCH v3 0/7] net/gve: RSS Support for GVE Driver From: Joshua Washington Cc: dev@dpdk.org, Ferruh Yigit , Rushil Gupta , Joshua Washington X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org This patch series introduces RSS support for the GVE poll-mode driver. This series includes implementations of the following eth_dev_ops: 1) rss_hash_update 2) rss_hash_conf_get 3) reta_query 4) reta_update In rss_hash_update, the GVE driver supports the following RSS hash types: * RTE_ETH_RSS_IPV4 * RTE_ETH_RSS_NONFRAG_IPV4_TCP * RTE_ETH_RSS_NONFRAG_IPV4_UDP * RTE_ETH_RSS_IPV6 * RTE_ETH_RSS_IPV6_EX * RTE_ETH_RSS_NONFRAG_IPV6_TCP * RTE_ETH_RSS_NONFRAG_IPV6_UDP * RTE_ETH_RSS_IPV6_TCP_EX * RTE_ETH_RSS_IPV6_UDP_EX The hash key is 40B, and the lookup table has 128 entries. These values are not configurable in this implementation. In general, the DPDK driver expects the RSS hash configuration to be set with a key before the redriection table is set up. When the RSS hash is configured, a default redirection table is generated based on the number of queues. When the device is re-configured, the redirection table is reset to the default value based on the queue count. An important note is that the gVNIC device expects 32 bit integers for RSS redirection table entries, while the RTE API uses 16 bit integers. However, this is unlikely to be an issue, as these values represent receive queues, and the gVNIC device does not support anywhere near 64K queues. This series also updates the corresponding feature matrix ertries and documentation as it pertains to RSS support in the GVE driver. v2: Add commmit messages for patches with it missing, and other checkpatches fixes. Note: There is a warning about complex macros being parenthesized that does not seem to be well-founded. v3: Fix build warnings that come up on certain distros. Joshua Washington (7): net/gve: fully expose RSS offload support in dev_info net/gve: RSS adminq command changes net/gve: add gve_rss library for handling RSS-related behaviors net/gve: RSS configuration update support net/gve: RSS redirection table update support net/gve: update gve.ini with RSS capabilities net/gve: update GVE documentation with RSS support doc/guides/nics/features/gve.ini | 3 + doc/guides/nics/gve.rst | 16 ++- drivers/net/gve/base/gve.h | 15 ++ drivers/net/gve/base/gve_adminq.c | 59 ++++++++ drivers/net/gve/base/gve_adminq.h | 21 +++ drivers/net/gve/gve_ethdev.c | 231 +++++++++++++++++++++++++++++- drivers/net/gve/gve_ethdev.h | 17 +++ drivers/net/gve/gve_rss.c | 206 ++++++++++++++++++++++++++ drivers/net/gve/gve_rss.h | 107 ++++++++++++++ drivers/net/gve/meson.build | 1 + 10 files changed, 667 insertions(+), 9 deletions(-) create mode 100644 drivers/net/gve/gve_rss.c create mode 100644 drivers/net/gve/gve_rss.h