Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/136081/?format=api
http://patchwork.dpdk.org/api/patches/136081/?format=api", "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/20240124000426.418527-6-joshwash@google.com/", "project": { "id": 1, "url": "http://patchwork.dpdk.org/api/projects/1/?format=api", "name": "DPDK", "link_name": "dpdk", "list_id": "dev.dpdk.org", "list_email": "dev@dpdk.org", "web_url": "http://core.dpdk.org", "scm_url": "git://dpdk.org/dpdk", "webscm_url": "http://git.dpdk.org/dpdk", "list_archive_url": "https://inbox.dpdk.org/dev", "list_archive_url_format": "https://inbox.dpdk.org/dev/{}", "commit_url_format": "" }, "msgid": "<20240124000426.418527-6-joshwash@google.com>", "list_archive_url": "https://inbox.dpdk.org/dev/20240124000426.418527-6-joshwash@google.com", "date": "2024-01-24T00:04:23", "name": "[v3,5/7] net/gve: RSS redirection table update support", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": false, "hash": "a92cb3016082aa813b48e0c1dc2de9fd3aa16d74", "submitter": { "id": 2921, "url": "http://patchwork.dpdk.org/api/people/2921/?format=api", "name": "Joshua Washington", "email": "joshwash@google.com" }, "delegate": { "id": 319, "url": "http://patchwork.dpdk.org/api/users/319/?format=api", "username": "fyigit", "first_name": "Ferruh", "last_name": "Yigit", "email": "ferruh.yigit@amd.com" }, "mbox": "http://patchwork.dpdk.org/project/dpdk/patch/20240124000426.418527-6-joshwash@google.com/mbox/", "series": [ { "id": 30888, "url": "http://patchwork.dpdk.org/api/series/30888/?format=api", "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=30888", "date": "2024-01-24T00:04:19", "name": "[v3,1/7] net/gve: fully expose RSS offload support in dev_info", "version": 3, "mbox": "http://patchwork.dpdk.org/series/30888/mbox/" } ], "comments": "http://patchwork.dpdk.org/api/patches/136081/comments/", "check": "success", "checks": "http://patchwork.dpdk.org/api/patches/136081/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<dev-bounces@dpdk.org>", "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])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 7045B439AD;\n\tWed, 24 Jan 2024 01:05:20 +0100 (CET)", "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id E818441151;\n\tWed, 24 Jan 2024 01:04:47 +0100 (CET)", "from mail-pg1-f202.google.com (mail-pg1-f202.google.com\n [209.85.215.202])\n by mails.dpdk.org (Postfix) with ESMTP id 6C85A410FB\n for <dev@dpdk.org>; Wed, 24 Jan 2024 01:04:46 +0100 (CET)", "by mail-pg1-f202.google.com with SMTP id\n 41be03b00d2f7-5c65e666609so5458499a12.1\n for <dev@dpdk.org>; Tue, 23 Jan 2024 16:04:46 -0800 (PST)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=google.com; s=20230601; t=1706054685; x=1706659485; darn=dpdk.org;\n h=cc:to:from:subject:message-id:references:mime-version:in-reply-to\n :date:from:to:cc:subject:date:message-id:reply-to;\n bh=SW3JZkFSSD1naxRvmY8VsdB4LML2W8ItAZao49jLPo0=;\n b=KXNpH7o2KRZSliu4juY0sIf9XvRkk277VLBs6vr6tAUZVmewjAP4voakgz/Cq7TxY2\n S+RsJTmsibfS/NoZr5bS+3bQBxEaZTRZyvn7J17O28LDLMILMyQaYSieqgPhAsU5tZdY\n 0oXabDP1Byg7xEsWRAiIodMaBoDfSK9lIOubthbbopA8Gc+HwP8G0DLf2Yu7isi4q7Uq\n 0E4vxFatwC73ErTfQGVOVHaMGwG6iwy84ERkTbd0tpg/oGYKMN583p/5jPX1CtMlT9jD\n p+YOsMdMPtvoIh3IFixGXDYBQzHAg3UOTwVc/yY0vibPwuLMO5HBg+u4waxisQ9JzSBM\n pakA==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20230601; t=1706054685; x=1706659485;\n h=cc:to:from:subject:message-id:references:mime-version:in-reply-to\n :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;\n bh=SW3JZkFSSD1naxRvmY8VsdB4LML2W8ItAZao49jLPo0=;\n b=Tb34MuibyappHzgVr1YlOQs6DplCK5+4VAHb7lmOxDrmKRwAG+Et6eBdcUazeSuIv8\n kBXWQohTQCaiel1MbWuHvr+HA3CVFhiEjaJdQ5YH/6iEc+JzuFbYVegyPAOnQRgN37PO\n bMu6vdi4WVQoX+11Rmpo/jOuWXjFzT0899k5eRlA28ZJt3YHBx0aq5UuoMf/9HDkzNC/\n EqnyAy8GnPpDXw87BLtyT4Oq9aP1VzDINXsuXpV0Im6q8W4GPdOUKElD1r6SIOSkxCwu\n LapEMGub+MLKWb0+2IlKqm3Ly8BzhSg5mv8oTTTXgBechBki0aM1IulhLgVmBtch7jud\n E0Fg==", "X-Gm-Message-State": "AOJu0YyELrfEeUJ0rnWPKxXmosyMxKQhhmA844UpSuqDykbHnMmD+34n\n 0BSpvlI2NOZMe4RNBWcJrcUpk/efV1q0IQG0WHu5JWYU11CnJk0UAx1LOccaC7MX6NcuPeQPLJQ\n H2sEydFwS0A==", "X-Google-Smtp-Source": "\n AGHT+IFVeP3dw84LaxagPgmU3cuM8Ilp1TSWbBir5xZICVzwS+OerRX2rhbWA+OR7njOv2wZmCAoN4VXJtON8w==", "X-Received": "from joshwash.sea.corp.google.com\n ([2620:15c:11c:202:b9a2:fa74:abc3:bc47])\n (user=joshwash job=sendgmr) by 2002:a63:4d52:0:b0:5cf:be1e:33e with SMTP id\n n18-20020a634d52000000b005cfbe1e033emr36112pgl.9.1706054685523; Tue, 23 Jan\n 2024 16:04:45 -0800 (PST)", "Date": "Tue, 23 Jan 2024 16:04:23 -0800", "In-Reply-To": "<20240124000426.418527-1-joshwash@google.com>", "Mime-Version": "1.0", "References": "<20240123175831.3219292-1-joshwash@google.com>\n <20240124000426.418527-1-joshwash@google.com>", "X-Mailer": "git-send-email 2.43.0.429.g432eaa2c6b-goog", "Message-ID": "<20240124000426.418527-6-joshwash@google.com>", "Subject": "[PATCH v3 5/7] net/gve: RSS redirection table update support", "From": "Joshua Washington <joshwash@google.com>", "To": "Junfeng Guo <junfeng.guo@intel.com>,\n Jeroen de Borst <jeroendb@google.com>,\n Rushil Gupta <rushilg@google.com>, Joshua Washington <joshwash@google.com>", "Cc": "dev@dpdk.org, Ferruh Yigit <ferruh.yigit@amd.com>", "Content-Type": "text/plain; charset=\"UTF-8\"", "X-BeenThere": "dev@dpdk.org", "X-Mailman-Version": "2.1.29", "Precedence": "list", "List-Id": "DPDK patches and discussions <dev.dpdk.org>", "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>", "List-Archive": "<http://mails.dpdk.org/archives/dev/>", "List-Post": "<mailto:dev@dpdk.org>", "List-Help": "<mailto:dev-request@dpdk.org?subject=help>", "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org" }, "content": "This patch introduces support for updating the RSS redirection table in\nthe GVE PMD through the implementation of rss_reta_update and\nrss_reta_query.\n\nDue to an infrastructure limitation, the RSS hash key must be manually\nconfigured before the redirection table can be updated or queried. The\nredirection table is expected to be exactly 128 bytes.\n\nSigned-off-by: Joshua Washington <joshwash@google.com>\nReviewed-by: Rushil Gupta <rushilg@google.com>\nReviewed-by: Jeroen de Borst <jeroendb@google.com>\n---\n drivers/net/gve/gve_ethdev.c | 95 ++++++++++++++++++++++++++++++++++++\n 1 file changed, 95 insertions(+)", "diff": "diff --git a/drivers/net/gve/gve_ethdev.c b/drivers/net/gve/gve_ethdev.c\nindex 2a68d31808..3b8ec5872d 100644\n--- a/drivers/net/gve/gve_ethdev.c\n+++ b/drivers/net/gve/gve_ethdev.c\n@@ -770,6 +770,97 @@ gve_rss_hash_conf_get(struct rte_eth_dev *dev,\n \treturn 0;\n }\n \n+static int\n+gve_rss_reta_update(struct rte_eth_dev *dev,\n+\tstruct rte_eth_rss_reta_entry64 *reta_conf, uint16_t reta_size)\n+{\n+\tstruct gve_priv *priv = dev->data->dev_private;\n+\tstruct gve_rss_config gve_rss_conf;\n+\tint table_id;\n+\tint err;\n+\tint i;\n+\n+\t/* RSS key must be set before the redirection table can be set. */\n+\tif (!priv->rss_config.key || priv->rss_config.key_size == 0) {\n+\t\tPMD_DRV_LOG(ERR, \"RSS hash key msut be set before the \"\n+\t\t\t\"redirection table can be updated.\");\n+\t\treturn -ENOTSUP;\n+\t}\n+\n+\tif (reta_size != GVE_RSS_INDIR_SIZE) {\n+\t\tPMD_DRV_LOG(ERR, \"Redirection table must have %hu elements\",\n+\t\t\t(uint16_t)GVE_RSS_INDIR_SIZE);\n+\t\treturn -EINVAL;\n+\t}\n+\n+\terr = gve_init_rss_config_from_priv(priv, &gve_rss_conf);\n+\tif (err) {\n+\t\tPMD_DRV_LOG(ERR, \"Error allocating new RSS config.\");\n+\t\treturn err;\n+\t}\n+\n+\ttable_id = 0;\n+\tfor (i = 0; i < priv->rss_config.indir_size; i++) {\n+\t\tint table_entry = i % RTE_ETH_RETA_GROUP_SIZE;\n+\t\tif (reta_conf[table_id].mask & (1ULL << table_entry))\n+\t\t\tgve_rss_conf.indir[i] =\n+\t\t\t\treta_conf[table_id].reta[table_entry];\n+\n+\t\tif (table_entry == RTE_ETH_RETA_GROUP_SIZE - 1)\n+\t\t\ttable_id++;\n+\t}\n+\n+\terr = gve_adminq_configure_rss(priv, &gve_rss_conf);\n+\tif (err)\n+\t\tPMD_DRV_LOG(ERR, \"Problem configuring RSS with device.\");\n+\telse\n+\t\tgve_update_priv_rss_config(priv, &gve_rss_conf);\n+\n+\tgve_free_rss_config(&gve_rss_conf);\n+\treturn err;\n+}\n+\n+static int\n+gve_rss_reta_query(struct rte_eth_dev *dev,\n+\tstruct rte_eth_rss_reta_entry64 *reta_conf, uint16_t reta_size)\n+{\n+\tstruct gve_priv *priv = dev->data->dev_private;\n+\tint table_id;\n+\tint i;\n+\n+\tif (!(dev->data->dev_conf.rxmode.offloads &\n+\t\tRTE_ETH_RX_OFFLOAD_RSS_HASH)) {\n+\t\tPMD_DRV_LOG(ERR, \"RSS not configured.\");\n+\t\treturn -ENOTSUP;\n+\t}\n+\n+\t/* RSS key must be set before the redirection table can be queried. */\n+\tif (!priv->rss_config.key) {\n+\t\tPMD_DRV_LOG(ERR, \"RSS hash key must be set before the \"\n+\t\t\t\"redirection table can be initialized.\");\n+\t\treturn -ENOTSUP;\n+\t}\n+\n+\tif (reta_size != priv->rss_config.indir_size) {\n+\t\tPMD_DRV_LOG(ERR, \"RSS redirection table must have %d entries.\",\n+\t\t\tpriv->rss_config.indir_size);\n+\t\treturn -EINVAL;\n+\t}\n+\n+\ttable_id = 0;\n+\tfor (i = 0; i < priv->rss_config.indir_size; i++) {\n+\t\tint table_entry = i % RTE_ETH_RETA_GROUP_SIZE;\n+\t\tif (reta_conf[table_id].mask & (1ULL << table_entry))\n+\t\t\treta_conf[table_id].reta[table_entry] =\n+\t\t\t\tpriv->rss_config.indir[i];\n+\n+\t\tif (table_entry == RTE_ETH_RETA_GROUP_SIZE - 1)\n+\t\t\ttable_id++;\n+\t}\n+\n+\treturn 0;\n+}\n+\n static const struct eth_dev_ops gve_eth_dev_ops = {\n \t.dev_configure = gve_dev_configure,\n \t.dev_start = gve_dev_start,\n@@ -792,6 +883,8 @@ static const struct eth_dev_ops gve_eth_dev_ops = {\n \t.xstats_get_names = gve_xstats_get_names,\n \t.rss_hash_update = gve_rss_hash_update,\n \t.rss_hash_conf_get = gve_rss_hash_conf_get,\n+\t.reta_update = gve_rss_reta_update,\n+\t.reta_query = gve_rss_reta_query,\n };\n \n static const struct eth_dev_ops gve_eth_dev_ops_dqo = {\n@@ -816,6 +909,8 @@ static const struct eth_dev_ops gve_eth_dev_ops_dqo = {\n \t.xstats_get_names = gve_xstats_get_names,\n \t.rss_hash_update = gve_rss_hash_update,\n \t.rss_hash_conf_get = gve_rss_hash_conf_get,\n+\t.reta_update = gve_rss_reta_update,\n+\t.reta_query = gve_rss_reta_query,\n };\n \n static void\n", "prefixes": [ "v3", "5/7" ] }{ "id": 136081, "url": "