get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/2197837/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2197837,
    "url": "http://patchwork.ozlabs.org/api/patches/2197837/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/openvswitch/patch/20260218174807.2241152-1-matteo.perin@canonical.com/",
    "project": {
        "id": 47,
        "url": "http://patchwork.ozlabs.org/api/projects/47/?format=api",
        "name": "Open vSwitch",
        "link_name": "openvswitch",
        "list_id": "ovs-dev.openvswitch.org",
        "list_email": "ovs-dev@openvswitch.org",
        "web_url": "http://openvswitch.org/",
        "scm_url": "git@github.com:openvswitch/ovs.git",
        "webscm_url": "https://github.com/openvswitch/ovs",
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20260218174807.2241152-1-matteo.perin@canonical.com>",
    "list_archive_url": null,
    "date": "2026-02-18T17:48:07",
    "name": "[ovs-dev,v2] tests: Make routing rules checks more resilient.",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "da0d1f7e8273daf93a5eae30ab792c7765037888",
    "submitter": {
        "id": 92284,
        "url": "http://patchwork.ozlabs.org/api/people/92284/?format=api",
        "name": "Matteo Perin",
        "email": "matteo.perin@canonical.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/openvswitch/patch/20260218174807.2241152-1-matteo.perin@canonical.com/mbox/",
    "series": [
        {
            "id": 492580,
            "url": "http://patchwork.ozlabs.org/api/series/492580/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/openvswitch/list/?series=492580",
            "date": "2026-02-18T17:48:07",
            "name": "[ovs-dev,v2] tests: Make routing rules checks more resilient.",
            "version": 2,
            "mbox": "http://patchwork.ozlabs.org/series/492580/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2197837/comments/",
    "check": "success",
    "checks": "http://patchwork.ozlabs.org/api/patches/2197837/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<ovs-dev-bounces@openvswitch.org>",
        "X-Original-To": [
            "incoming@patchwork.ozlabs.org",
            "ovs-dev@openvswitch.org"
        ],
        "Delivered-To": [
            "patchwork-incoming@legolas.ozlabs.org",
            "ovs-dev@lists.linuxfoundation.org"
        ],
        "Authentication-Results": [
            "legolas.ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (4096-bit key;\n unprotected) header.d=canonical.com header.i=@canonical.com\n header.a=rsa-sha256 header.s=20251003 header.b=FC9LCUq4;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=openvswitch.org\n (client-ip=2605:bc80:3010::136; helo=smtp3.osuosl.org;\n envelope-from=ovs-dev-bounces@openvswitch.org; receiver=patchwork.ozlabs.org)",
            "smtp3.osuosl.org;\n\tdkim=fail reason=\"signature verification failed\" (4096-bit key,\n unprotected) header.d=canonical.com header.i=@canonical.com\n header.a=rsa-sha256 header.s=20251003 header.b=FC9LCUq4",
            "smtp4.osuosl.org; dmarc=pass (p=reject dis=none)\n header.from=canonical.com",
            "smtp4.osuosl.org; dkim=pass (4096-bit key,\n unprotected) header.d=canonical.com header.i=@canonical.com\n header.a=rsa-sha256 header.s=20251003 header.b=FC9LCUq4"
        ],
        "Received": [
            "from smtp3.osuosl.org (smtp3.osuosl.org [IPv6:2605:bc80:3010::136])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fGPBT4m6hz1xvq\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 19 Feb 2026 04:48:31 +1100 (AEDT)",
            "from localhost (localhost [127.0.0.1])\n\tby smtp3.osuosl.org (Postfix) with ESMTP id 97B3560A5A;\n\tWed, 18 Feb 2026 17:48:29 +0000 (UTC)",
            "from smtp3.osuosl.org ([127.0.0.1])\n by localhost (smtp3.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id Jd8Jz6bwrgn0; Wed, 18 Feb 2026 17:48:28 +0000 (UTC)",
            "from lists.linuxfoundation.org (lf-lists.osuosl.org\n [IPv6:2605:bc80:3010:104::8cd3:938])\n\tby smtp3.osuosl.org (Postfix) with ESMTPS id 70F9760725;\n\tWed, 18 Feb 2026 17:48:28 +0000 (UTC)",
            "from lf-lists.osuosl.org (localhost [127.0.0.1])\n\tby lists.linuxfoundation.org (Postfix) with ESMTP id 2D07CC0035;\n\tWed, 18 Feb 2026 17:48:28 +0000 (UTC)",
            "from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137])\n by lists.linuxfoundation.org (Postfix) with ESMTP id 253ECC0033\n for <ovs-dev@openvswitch.org>; Wed, 18 Feb 2026 17:48:27 +0000 (UTC)",
            "from localhost (localhost [127.0.0.1])\n by smtp4.osuosl.org (Postfix) with ESMTP id 0B012408C3\n for <ovs-dev@openvswitch.org>; Wed, 18 Feb 2026 17:48:27 +0000 (UTC)",
            "from smtp4.osuosl.org ([127.0.0.1])\n by localhost (smtp4.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id V6Fp0cadKfHb for <ovs-dev@openvswitch.org>;\n Wed, 18 Feb 2026 17:48:26 +0000 (UTC)",
            "from smtp-relay-internal-0.canonical.com\n (smtp-relay-internal-0.canonical.com [185.125.188.122])\n by smtp4.osuosl.org (Postfix) with ESMTPS id B27D4408C2\n for <ovs-dev@openvswitch.org>; Wed, 18 Feb 2026 17:48:25 +0000 (UTC)",
            "from mail-pj1-f71.google.com (mail-pj1-f71.google.com\n [209.85.216.71])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest\n SHA256)\n (No client certificate requested)\n by smtp-relay-internal-0.canonical.com (Postfix) with ESMTPS id 72EB73F471\n for <ovs-dev@openvswitch.org>; Wed, 18 Feb 2026 17:48:22 +0000 (UTC)",
            "by mail-pj1-f71.google.com with SMTP id\n 98e67ed59e1d1-354c44bf176so41073a91.0\n for <ovs-dev@openvswitch.org>; Wed, 18 Feb 2026 09:48:22 -0800 (PST)",
            "from matperin-thinkpad.ts.net ([2001:67c:1560:8007::aac:c940])\n by smtp.gmail.com with ESMTPSA id\n 98e67ed59e1d1-35886a3811csm2715220a91.0.2026.02.18.09.48.17\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Wed, 18 Feb 2026 09:48:20 -0800 (PST)"
        ],
        "X-Virus-Scanned": [
            "amavis at osuosl.org",
            "amavis at osuosl.org"
        ],
        "X-Comment": "SPF check N/A for local connections -\n client-ip=2605:bc80:3010:104::8cd3:938; helo=lists.linuxfoundation.org;\n envelope-from=ovs-dev-bounces@openvswitch.org; receiver=<UNKNOWN> ",
        "DKIM-Filter": [
            "OpenDKIM Filter v2.11.0 smtp3.osuosl.org 70F9760725",
            "OpenDKIM Filter v2.11.0 smtp4.osuosl.org B27D4408C2"
        ],
        "Received-SPF": "Pass (mailfrom) identity=mailfrom; client-ip=185.125.188.122;\n helo=smtp-relay-internal-0.canonical.com;\n envelope-from=matteo.perin@canonical.com; receiver=<UNKNOWN>",
        "DMARC-Filter": "OpenDMARC Filter v1.4.2 smtp4.osuosl.org B27D4408C2",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=canonical.com;\n s=20251003; t=1771436902;\n bh=PGWCNQHZYCbhinlHbU6OfCFdLf8rYqx1x9G7gYwbpEI=;\n h=From:To:Cc:Subject:Date:Message-ID:MIME-Version;\n b=FC9LCUq4dQzklbZNYy7W/345vi02LX9ImQz8VFv6aTKCUt5oDeHnHt4THq7/aA3ml\n +0YA825V+BlJ5Lw3XgU6uKkoaBcPwYWmGGuZsDWfZPzqN4YzSHqeFsmgeuvCRUHOPl\n NzyIEm7gV6uszg49yMd2XOVu96hKsnega7uKpqE3U0gl/u67UQmS/K5HcCPoJmf6jp\n VSdXFLydnv/DP/Pi0Osvw+j/5A4wXVs74fZaQDRB5KGpXwQVsYmvTZoZb2VljfMJAy\n nNXRX7rn5x7naxuJj6tQIgS+6bnlVSMob31Q6mdF2BwlN1lyTSUWT/lYPHSUiK9Vub\n sY99mmG8QcNFiH+D6MMsK1CHxGrjxR+qXhouz4yc7gAuFC3uQbV8p7UiWL8IAibVFe\n 5zF2UGznMWInk16Pg19IXehatu6JlRg0/64Ler8Uw973a5yA0OQJp9qGuxao0IINPO\n x1w7T8aIgdqsTT8zQJWLwnyMIJoqAY2BVreSkdgDy4wLfI3XR+RGcjoNhMyeIDZPzU\n j0m75xvK+NRise85TEkfycJ0GXTPOqIlYpvPbhy1ZVJh2HIQI9+FjV0bneInx4MZpb\n HDJ/DbNtZ1wJ4+Vo1wCP3/P5ZNTB6MLuo+vB0Ah5VMGgmQB49GYb2TqHrrZzXehwS6\n li+rXxRt2o5B4q69hCgoKkBY=",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20230601; t=1771436901; x=1772041701;\n h=content-transfer-encoding:mime-version:message-id:date:subject:cc\n :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n :message-id:reply-to;\n bh=PGWCNQHZYCbhinlHbU6OfCFdLf8rYqx1x9G7gYwbpEI=;\n b=HTe5usjurR4JZ8hBV8KE6XL2JvPNuFUDJHfDL0GrisHCnunnd7bzeSS3n+vbH9j8Ud\n gRQjLfy0OexkFjH/K8LeNbaUEC56NJlwVQBP/Uc6TEAgT1N36AJlXFiQlzdudUR09zkq\n ZHoQvKoTtfhXLdp41Efn99y9A0nvkn9QMo+ipQnw73zCEmZ1HOqkJTS3JkXJYGMa7dH+\n VFHcvmabk2z1QUyRNKxQV0TcOiX+riUWthTHjUPgqXEiy3UT7VTUMcLy2AXhHP7/zFZP\n vZk3POf/2BKVTQxT/X8lsPN6HSnJoM3Vhz0NuhN+tUuswvxwJZTvZGEWTQ0ya/w89DYy\n F2Ww==",
        "X-Gm-Message-State": "AOJu0YzCrnU6EU3ndOxAiWWHWhMQFxQ5gdYGpJMG8vDZadcLvqAmas7p\n kYy8CepFKVJ+TFme6IKCbrs81bEUaEk10fhgsZaQGz9HhiSO5O+M13KOOR0AGu3nSsogBanI6k+\n lY7Nl7teCd25ckvOKKm2i4MGdSuq53GIDNvcVJtIdykay/Zi1kc+Ot34uM7+UQcGAOPMp04kOe/\n ZVgtBGOGoqfP2o",
        "X-Gm-Gg": "AZuq6aKvJrh2bA5i1gIArUOXEt7KhkWAemhCyEZtf9SUb7/PE2iDNjlCpQ3oYIxnVUD\n Jf7kwYs8Js3+6MUWs5oD2FYYsRAwKtEAWdJGfUuDJYS1KvbwT77lCvPsG08fWjDepmuTruNE2Ja\n CzSuEy3SrxIrWy9fNyLAUF2dF4u9KufTskLfyQuADsgTd7gJ8pMjyYq+dT42tG+Q0r3CScNZZCF\n Iq/GtzVl/TEexDKLR2x01mqG6eIXRTjZ3RsJwB/fv8twMr4a1Eqibzq0VYLKZm0hGNEvIvw2uW/\n mxTlNQ0A/24R+dPQHWJ0Qwa3NvhMV/5/QhPC+m6mcWe2ayJIRbazcbmA9iBP0DaoefiX95QwAGe\n vMHS8RZ1kh1MCZk/X02ZIB8aj+d6AzbCQeTgA",
        "X-Received": [
            "by 2002:a17:90b:5650:b0:34e:63c1:4a08 with SMTP id\n 98e67ed59e1d1-35844f85d2bmr15072571a91.20.1771436900791;\n Wed, 18 Feb 2026 09:48:20 -0800 (PST)",
            "by 2002:a17:90b:5650:b0:34e:63c1:4a08 with SMTP id\n 98e67ed59e1d1-35844f85d2bmr15072557a91.20.1771436900326;\n Wed, 18 Feb 2026 09:48:20 -0800 (PST)"
        ],
        "To": "ovs-dev@openvswitch.org",
        "Date": "Wed, 18 Feb 2026 18:48:07 +0100",
        "Message-ID": "<20260218174807.2241152-1-matteo.perin@canonical.com>",
        "X-Mailer": "git-send-email 2.43.0",
        "MIME-Version": "1.0",
        "Subject": "[ovs-dev] [PATCH v2] tests: Make routing rules checks more\n resilient.",
        "X-BeenThere": "ovs-dev@openvswitch.org",
        "X-Mailman-Version": "2.1.30",
        "Precedence": "list",
        "List-Id": "<ovs-dev.openvswitch.org>",
        "List-Unsubscribe": "<https://mail.openvswitch.org/mailman/options/ovs-dev>,\n <mailto:ovs-dev-request@openvswitch.org?subject=unsubscribe>",
        "List-Archive": "<http://mail.openvswitch.org/pipermail/ovs-dev/>",
        "List-Post": "<mailto:ovs-dev@openvswitch.org>",
        "List-Help": "<mailto:ovs-dev-request@openvswitch.org?subject=help>",
        "List-Subscribe": "<https://mail.openvswitch.org/mailman/listinfo/ovs-dev>,\n <mailto:ovs-dev-request@openvswitch.org?subject=subscribe>",
        "From": "Matteo Perin via dev <ovs-dev@openvswitch.org>",
        "Reply-To": "Matteo Perin <matteo.perin@canonical.com>",
        "Content-Type": "text/plain; charset=\"us-ascii\"",
        "Content-Transfer-Encoding": "7bit",
        "Errors-To": "ovs-dev-bounces@openvswitch.org",
        "Sender": "\"dev\" <ovs-dev-bounces@openvswitch.org>"
    },
    "content": "The \"ovs-route - unsupported rules\" test routing rule checks were failing\non systems having non-standard routing rules.\n\nThese failures occurred because the test performed exact output matching\non the full output of 'ovs-appctl ovs/route/rule/show', which includes\nboth user-added and system-cached rules.\n\nWhen the system has additional routing rules that meet certain criteria\n(FR_ACT_TO_TBL action without unsupported selectors like fwmark, dport,\nsport, iif, ipproto, or tun_id), OVS caches them, as expected, causing\nthem to appear in the \"Cached:\" section of the output.\n\n\"ovs-route - unsupported rules\" was modified in order to take this situation\ninto account. It now captures the full initial cache state before adding\ntest rules and verifies that the cache state remains unchanged after adding\nunsupported rules (keeping the intent of the test intact).\n\nSigned-off-by: Matteo Perin <matteo.perin@canonical.com>\n---\n tests/system-route.at | 42 ++++++++++++++++++++----------------------\n 1 file changed, 20 insertions(+), 22 deletions(-)",
    "diff": "diff --git a/tests/system-route.at b/tests/system-route.at\nindex 0b4b4b7e9..3ff14453b 100644\n--- a/tests/system-route.at\n+++ b/tests/system-route.at\n@@ -343,18 +343,15 @@ on_exit 'ip link del p1-route'\n AT_CHECK([ip tuntap add name p1-route mode tap])\n AT_CHECK([ip link set p1-route up])\n \n-dnl Check there are no non-standard rules cached in OVS.\n-AT_CHECK([ovs-appctl ovs/route/rule/show], [0], [dnl\n-Cached: 0: from all lookup local\n-Cached: 32766: from all lookup main\n-Cached: 32767: from all lookup default\n-])\n-AT_CHECK([ovs-appctl ovs/route/rule/show -6], [0], [dnl\n-Cached: 0: from all lookup local\n-Cached: 32766: from all lookup main\n-])\n-\n-dnl Add unsupported rules to kernel.\n+dnl Capture initial cache state before adding any rules.\n+AT_CHECK([ovs-appctl ovs/route/rule/show | sort], [0], [stdout])\n+AT_CHECK([mv stdout initial_v4])\n+AT_CHECK([ovs-appctl ovs/route/rule/show -6 | sort], [0], [stdout])\n+AT_CHECK([mv stdout initial_v6])\n+\n+dnl Add various unsupported rules. These rules use selectors that OVS doesn't\n+dnl support (fwmark, dport, sport, tun_id, iif, ipproto), so they should not\n+dnl be cached by OVS even though the kernel accepts them.\n on_exit 'ip rule del priority 100 fwmark 0x16 lookup 42'\n AT_CHECK([ip rule add priority 100 fwmark 0x16 lookup 42])\n on_exit 'ip rule del priority 101 from 10.0.0.1 dport 22 lookup 42'\n@@ -372,16 +369,17 @@ AT_CHECK([ip rule add priority 106 from all tun_id 22 lookup 42])\n \n dnl Give the main thread a chance to act.\n AT_CHECK([ovs-appctl revalidator/wait])\n-dnl Check OVS rules cache hasn't changed.\n-AT_CHECK([ovs-appctl ovs/route/rule/show], [0], [dnl\n-Cached: 0: from all lookup local\n-Cached: 32766: from all lookup main\n-Cached: 32767: from all lookup default\n-])\n-AT_CHECK([ovs-appctl ovs/route/rule/show -6], [0], [dnl\n-Cached: 0: from all lookup local\n-Cached: 32766: from all lookup main\n-])\n+\n+dnl Capture final cache state and verify it has not changed.\n+AT_CHECK([ovs-appctl ovs/route/rule/show | sort], [0], [stdout])\n+AT_CHECK([mv stdout final_v4])\n+AT_CHECK([ovs-appctl ovs/route/rule/show -6 | sort], [0], [stdout])\n+AT_CHECK([mv stdout final_v6])\n+\n+dnl Compare initial and final states, they should be identical since\n+dnl unsupported rules should not be cached.\n+AT_CHECK([diff -u initial_v4 final_v4])\n+AT_CHECK([diff -u initial_v6 final_v6])\n \n OVS_TRAFFIC_VSWITCHD_STOP\n AT_CLEANUP\n",
    "prefixes": [
        "ovs-dev",
        "v2"
    ]
}