From patchwork Wed Jan 31 22:13:03 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joshua Washington X-Patchwork-Id: 599 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 B837143A26; Wed, 31 Jan 2024 23:14:03 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 250404064A; Wed, 31 Jan 2024 23:14:03 +0100 (CET) Received: from mail-pg1-f201.google.com (mail-pg1-f201.google.com [209.85.215.201]) by mails.dpdk.org (Postfix) with ESMTP id 3BF5A4026C for ; Wed, 31 Jan 2024 23:14:01 +0100 (CET) Received: by mail-pg1-f201.google.com with SMTP id 41be03b00d2f7-5cdfd47de98so341097a12.1 for ; Wed, 31 Jan 2024 14:14:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1706739240; x=1707344040; 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=VifXbBnW+ZJ7e+xoFwjwdTJYS2vP0oxHLg6xwPiSKAc=; b=VIZekh4DKvs/Oe3whiJMn2WONnxyuVcSWbnMF9KM5LDBR3ivE8q/7ZNYBsLCUHseRD 8Qx0WzfxTa2GiVcuQ6uCEttM1YJnHHMi1FEsl++H53LkXoJUkiJxWbq1bd4RQT8IL57h lCotacXjH+7ay2+O95a5NJzw0wu4vr0NLRxhY82uBthtBY+Y4JVgxU5G56xRM9iE1gWC hBpfYxaRSuyT4FdlloW1pZ0xd9D7MGjnjYvG6oqxjl2Iruf4XRfZHSXB7gtrYQhwrNPc Ys4LSMFczH4x5lhwKGYvSX1NUgTtk/Khs/kbaAy20Vf5yYlVkmGUpTX0QQBfXhqbZeF7 B2lw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706739240; x=1707344040; 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=VifXbBnW+ZJ7e+xoFwjwdTJYS2vP0oxHLg6xwPiSKAc=; b=A+rMGsHquUAd6bP0sU+BYoO7Qyu+KzVjUngSZqvXopqLXEZCxqPOjyCtcwhQms80xr kf0BgII55mmvPHUxHrQ1mxfVaC/XHSRRpPJqGI9Ieg92TunyuzHYrWYFnJWEfR/i1BXF XnLokFHKWaLUqQPCKdGcUqs28Eak//iVKrfr8H1smJlEng1z5UGKi8mD9nSYrnApcbPO DEnkFSLaLUh6Ia1xQiVLFyguUwZxq7KiMyOTV9566JwDyBtOfE2a95TMk8JZADiZ4j3u UqItTuUzd66m1evPCXsRES97oQ3b5THNPz3dJJl3xkOWEB+fr5+vu8Fo1CmzN5EFkyI0 q8Jg== X-Gm-Message-State: AOJu0YxO5wSPtInot4chJTqKnu97GlSEXLSRA04o7VZEuIhMNjIgqu31 aIMxKhV6Zsc7jzXhBLmKpBQRRy7IYk94dEf+YISiArlCa5khlg1utynwncX9NXQblqdfHwNA+hJ cRYA7CfsX9Z42mF6AJG/gS88sUEAzQ7Zuvg/NkP7kIrpHCLi406DUz/1Cjl1YQi7YoLECAihaqE OJf4b04D8c1G0ykDXZGAyKNqBdABWtsw== X-Google-Smtp-Source: AGHT+IGxtSl88iRvX44j9fjzuL+5k0kViJaokZ9UAVPyAbDdaL0mI5S5k2Y9XbX7SBIJyejSWGOWFict8nH+OQ== X-Received: from joshwash.sea.corp.google.com ([2620:15c:11c:202:9a96:68e3:c6ee:7117]) (user=joshwash job=sendgmr) by 2002:a65:624a:0:b0:5cf:c149:8dc with SMTP id q10-20020a65624a000000b005cfc14908dcmr688pgv.11.1706739239948; Wed, 31 Jan 2024 14:13:59 -0800 (PST) Date: Wed, 31 Jan 2024 14:13:03 -0800 In-Reply-To: <20240126173317.2779230-2-joshwash@google.com> Mime-Version: 1.0 References: <20240126173317.2779230-2-joshwash@google.com> X-Mailer: git-send-email 2.43.0.429.g432eaa2c6b-goog Message-ID: <20240131221308.2208815-1-joshwash@google.com> Subject: [PATCH v5 0/5] 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. v4: Fix formatting in gve_adminq.c v5: Update commit messages to comply with check-git-log. Fold feature matrix and documentation updates into relevant commits. Joshua Washington (5): net/gve: expose RSS offload support in dev info net/gve: add RSS adminq command net/gve: add gve RSS library net/gve: add RSS configuration update support net/gve: add RSS redirection table update support doc/guides/nics/features/gve.ini | 2 + doc/guides/nics/gve.rst | 28 +++- drivers/net/gve/base/gve.h | 15 ++ drivers/net/gve/base/gve_adminq.c | 58 ++++++++ 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, 677 insertions(+), 9 deletions(-) create mode 100644 drivers/net/gve/gve_rss.c create mode 100644 drivers/net/gve/gve_rss.h