Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/140121/?format=api
http://patchwork.dpdk.org/api/patches/140121/?format=api", "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/20240514201436.2496-4-jspewock@iol.unh.edu/", "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": "<20240514201436.2496-4-jspewock@iol.unh.edu>", "list_archive_url": "https://inbox.dpdk.org/dev/20240514201436.2496-4-jspewock@iol.unh.edu", "date": "2024-05-14T20:14:35", "name": "[v1,3/4] dts: add methods for modifying MTU to testpmd shell", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": false, "hash": "16f898230fa43de38c36323ed22aaa901b6932a0", "submitter": { "id": 2772, "url": "http://patchwork.dpdk.org/api/people/2772/?format=api", "name": "Jeremy Spewock", "email": "jspewock@iol.unh.edu" }, "delegate": { "id": 1, "url": "http://patchwork.dpdk.org/api/users/1/?format=api", "username": "tmonjalo", "first_name": "Thomas", "last_name": "Monjalon", "email": "thomas@monjalon.net" }, "mbox": "http://patchwork.dpdk.org/project/dpdk/patch/20240514201436.2496-4-jspewock@iol.unh.edu/mbox/", "series": [ { "id": 31928, "url": "http://patchwork.dpdk.org/api/series/31928/?format=api", "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=31928", "date": "2024-05-14T20:14:32", "name": "Add second scatter test case", "version": 1, "mbox": "http://patchwork.dpdk.org/series/31928/mbox/" } ], "comments": "http://patchwork.dpdk.org/api/patches/140121/comments/", "check": "success", "checks": "http://patchwork.dpdk.org/api/patches/140121/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 EC8004402B;\n\tTue, 14 May 2024 22:15:22 +0200 (CEST)", "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 7CB9940608;\n\tTue, 14 May 2024 22:15:07 +0200 (CEST)", "from mail-pg1-f226.google.com (mail-pg1-f226.google.com\n [209.85.215.226])\n by mails.dpdk.org (Postfix) with ESMTP id C5D2B402EB\n for <dev@dpdk.org>; Tue, 14 May 2024 22:15:05 +0200 (CEST)", "by mail-pg1-f226.google.com with SMTP id\n 41be03b00d2f7-5f415fd71f8so4682331a12.3\n for <dev@dpdk.org>; Tue, 14 May 2024 13:15:05 -0700 (PDT)", "from postal.iol.unh.edu (postal.iol.unh.edu. [132.177.123.84])\n by smtp-relay.gmail.com with ESMTPS id\n d9443c01a7336-1ef0b9cce37sm3890935ad.20.2024.05.14.13.15.04\n (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);\n Tue, 14 May 2024 13:15:04 -0700 (PDT)", "from iol.unh.edu (unknown\n [IPv6:2606:4100:3880:1271:90f9:1b64:f6e6:867f])\n by postal.iol.unh.edu (Postfix) with ESMTP id 014EF605C373;\n Tue, 14 May 2024 16:15:04 -0400 (EDT)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=iol.unh.edu; s=unh-iol; t=1715717705; x=1716322505; darn=dpdk.org;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:from:to:cc:subject:date\n :message-id:reply-to;\n bh=MvFGL8WBsjoDVlBxmU+Bv3MADnwlrIBrEUarWOJ4S9g=;\n b=DHLMhmfJaUcHUlf2tX5CxjVm0gYwzTO/NvUpfWa+a6Tj15PR4eguGQthSGYFjhX0XC\n GjMjrPOFRGOucTyONGNKuzGO3Il0FV9VUONqSUU778vB0nBE7/J+ruW+f6l7rioqMoyy\n Rb9UnF6tDfprZ+slrZpJMNaZ7Xc/6Pg8C5CNs=", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20230601; t=1715717705; x=1716322505;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc\n :subject:date:message-id:reply-to;\n bh=MvFGL8WBsjoDVlBxmU+Bv3MADnwlrIBrEUarWOJ4S9g=;\n b=q2JonthumKGnxeRqG4BqpY1yBNuIpX4PQcgYpXA5SxKjv9fAb8nBP275LKt+ob0ZUt\n 4qCe7+M6wnMEER+hW9ik2x1KKIRTBrrigYug9wH5T1Oa0q/nNl1miBqUSj0Osr5F4OP5\n zrf8ghGs9hCWNUThbpfbYVU/Cahy7WELO9HZdC50jdSCEOTYQHPX14lIs6hBw9BYUG4C\n Mk/CC6yimtpAVCvDHW86f9IbjaQZNHem9MFWJXm9+p5Se1LtwnQEzVTS0iZymXZ146f4\n 9YThErWZTC/Bqrf6DUjfF1Bdr4G6LlZwVjlUq+kmECN6DJJXVL3xPSfeIJffp7ynXPVj\n XCJw==", "X-Gm-Message-State": "AOJu0YzxtVMc7JaYceCCCEDR40yDRMTvojTs8XDmJFiYBM0iyutR7NiA\n sEj8fa2ltnuRZ75KQ97lovndhoRNKuYjbenZsGzeohpeSeA/smrODa4LIPDFv7ZyBZGL2IeMYYm\n m2x+F0RDVtp3f6rR6cFgU8uKgRtyl+vog", "X-Google-Smtp-Source": "\n AGHT+IFw8p6qOy06wPqnXRI6CF5KRsJSd2UgjEVuax9MsnnfW/mcoNrkUC5jzfYrrkZxYAE8JLDZholQtOOB", "X-Received": "by 2002:a17:90a:bb89:b0:2b9:c7ad:c99f with SMTP id\n 98e67ed59e1d1-2b9c7adca08mr427528a91.9.1715717704957;\n Tue, 14 May 2024 13:15:04 -0700 (PDT)", "X-Relaying-Domain": "iol.unh.edu", "From": "jspewock@iol.unh.edu", "To": "yoan.picchi@foss.arm.com, Honnappa.Nagarahalli@arm.com,\n paul.szczepanek@arm.com, juraj.linkes@pantheon.tech, probb@iol.unh.edu,\n Luca.Vizzarro@arm.com, wathsala.vithanage@arm.com, thomas@monjalon.net", "Cc": "dev@dpdk.org,\n\tJeremy Spewock <jspewock@iol.unh.edu>", "Subject": "[PATCH v1 3/4] dts: add methods for modifying MTU to testpmd shell", "Date": "Tue, 14 May 2024 16:14:35 -0400", "Message-ID": "<20240514201436.2496-4-jspewock@iol.unh.edu>", "X-Mailer": "git-send-email 2.44.0", "In-Reply-To": "<20240514201436.2496-1-jspewock@iol.unh.edu>", "References": "<20240514201436.2496-1-jspewock@iol.unh.edu>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "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": "From: Jeremy Spewock <jspewock@iol.unh.edu>\n\nThere are methods within DTS currently that support updating the MTU of\nports on a node, but the methods for doing this in a linux session rely\non the ip command and the port being bound to the kernel driver. Since\ntest suites are run while bound to the driver for DPDK, there needs to\nbe a way to modify the value while bound to said driver as well. This is\ndone by using testpmd to modify the MTU.\n\nSigned-off-by: Jeremy Spewock <jspewock@iol.unh.edu>\n---\n dts/framework/remote_session/testpmd_shell.py | 68 +++++++++++++++++++\n 1 file changed, 68 insertions(+)", "diff": "diff --git a/dts/framework/remote_session/testpmd_shell.py b/dts/framework/remote_session/testpmd_shell.py\nindex 33b3e7c5a3..4e608998f9 100644\n--- a/dts/framework/remote_session/testpmd_shell.py\n+++ b/dts/framework/remote_session/testpmd_shell.py\n@@ -227,6 +227,74 @@ def set_forward_mode(self, mode: TestPmdForwardingModes, verify: bool = True):\n f\"Test pmd failed to set fwd mode to {mode.value}\"\n )\n \n+ def _stop_port(self, port_id: int, verify: bool = True) -> None:\n+ \"\"\"Stop port `port_id` in testpmd.\n+\n+ Depending on the PMD, the port may need to be stopped before configuration can take place.\n+ This method wraps the command needed to properly stop ports and take their link down.\n+\n+ Args:\n+ port_id: ID of the port to take down.\n+ verify: If :data:`True` the output will be scanned in an attempt to verify that the\n+ stopping of ports was successful. Defaults to True.\n+\n+ Raises:\n+ InteractiveCommandExecutionError: If `verify` is :data:'True` and the port did not\n+ successfully stop.\n+ \"\"\"\n+ stop_port_output = self.send_command(f\"port stop {port_id}\")\n+ if verify and (\"Done\" not in stop_port_output):\n+ self._logger.debug(f\"Failed to stop port {port_id}. Output was:\\n{stop_port_output}\")\n+ raise InteractiveCommandExecutionError(f\"Test pmd failed to stop port {port_id}.\")\n+\n+ def _start_port(self, port_id: int, verify: bool = True) -> None:\n+ \"\"\"Start port `port_id` in testpmd.\n+\n+ Because the port may need to be stopped to make some configuration changes, it naturally\n+ follows that it will need to be started again once those changes have been made.\n+\n+ Args:\n+ port_id: ID of the port to start.\n+ verify: If :data:`True` the output will be scanned in an attempt to verify that the\n+ port came back up without error. Defaults to True.\n+\n+ Raises:\n+ InteractiveCommandExecutionError: If `verify` is :data:`True` and the port did not come\n+ back up.\n+ \"\"\"\n+ start_port_output = self.send_command(f\"port start {port_id}\")\n+ if verify and (\"Done\" not in start_port_output):\n+ self._logger.debug(f\"Failed to start port {port_id}. Output was:\\n{start_port_output}\")\n+ raise InteractiveCommandExecutionError(f\"Test pmd failed to start port {port_id}.\")\n+\n+ def set_port_mtu(self, port_id: int, mtu: int, verify: bool = True) -> None:\n+ \"\"\"Change the MTU of a port using testpmd.\n+\n+ Some PMDs require that the port be stopped before changing the MTU, and it does no harm to\n+ stop the port before configuring in cases where it isn't required, so we first stop ports,\n+ then update the MTU, then start the ports again afterwards.\n+\n+ Args:\n+ port_id: ID of the port to adjust the MTU on.\n+ mtu: Desired value for the MTU to be set to.\n+ verify: If `verify` is :data:`True` then the output will be scanned in an attempt to\n+ verify that the mtu was properly set on the port. Defaults to True.\n+\n+ Raises:\n+ InteractiveCommandExecutionError: If `verify` is :data:`True` and the MTU was not\n+ properly updated on the port matching `port_id`.\n+ \"\"\"\n+ self._stop_port(port_id, verify)\n+ set_mtu_output = self.send_command(f\"port config mtu {port_id} {mtu}\")\n+ self._start_port(port_id, verify)\n+ if verify and (f\"MTU: {mtu}\" not in self.send_command(f\"show port info {port_id}\")):\n+ self._logger.debug(\n+ f\"Failed to set mtu to {mtu} on port {port_id}.\" f\" Output was:\\n{set_mtu_output}\"\n+ )\n+ raise InteractiveCommandExecutionError(\n+ f\"Test pmd failed to update mtu of port {port_id} to {mtu}\"\n+ )\n+\n def _close(self) -> None:\n \"\"\"Overrides :meth:`~.interactive_shell.close`.\"\"\"\n self.send_command(\"quit\", \"\")\n", "prefixes": [ "v1", "3/4" ] }{ "id": 140121, "url": "