get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 1528538,
    "url": "http://patchwork.ozlabs.org/api/patches/1528538/",
    "web_url": "http://patchwork.ozlabs.org/project/openvswitch/patch/20210915190434.1162229-1-aconole@redhat.com/",
    "project": {
        "id": 47,
        "url": "http://patchwork.ozlabs.org/api/projects/47/",
        "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": "<20210915190434.1162229-1-aconole@redhat.com>",
    "list_archive_url": null,
    "date": "2021-09-15T19:04:34",
    "name": "[ovs-dev] igmp: always check and mask igmp packets.",
    "commit_ref": null,
    "pull_url": null,
    "state": "changes-requested",
    "archived": false,
    "hash": "082fea4eecdf5b4d5aca3a39d743d9c8b0874d57",
    "submitter": {
        "id": 67184,
        "url": "http://patchwork.ozlabs.org/api/people/67184/",
        "name": "Aaron Conole",
        "email": "aconole@redhat.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/openvswitch/patch/20210915190434.1162229-1-aconole@redhat.com/mbox/",
    "series": [
        {
            "id": 262502,
            "url": "http://patchwork.ozlabs.org/api/series/262502/",
            "web_url": "http://patchwork.ozlabs.org/project/openvswitch/list/?series=262502",
            "date": "2021-09-15T19:04:34",
            "name": "[ovs-dev] igmp: always check and mask igmp packets.",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/262502/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/1528538/comments/",
    "check": "success",
    "checks": "http://patchwork.ozlabs.org/api/patches/1528538/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<ovs-dev-bounces@openvswitch.org>",
        "X-Original-To": [
            "incoming@patchwork.ozlabs.org",
            "dev@openvswitch.org"
        ],
        "Delivered-To": [
            "patchwork-incoming@ozlabs.org",
            "ovs-dev@lists.linuxfoundation.org"
        ],
        "Authentication-Results": [
            "ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=f1XfT3R0;\n\tdkim-atps=neutral",
            "ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=openvswitch.org\n (client-ip=140.211.166.138; helo=smtp1.osuosl.org;\n envelope-from=ovs-dev-bounces@openvswitch.org; receiver=<UNKNOWN>)",
            "smtp2.osuosl.org (amavisd-new);\n dkim=pass (1024-bit key) header.d=redhat.com",
            "relay.mimecast.com;\n auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=aconole@redhat.com"
        ],
        "Received": [
            "from smtp1.osuosl.org (smtp1.osuosl.org [140.211.166.138])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest\n SHA256)\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 4H8qQr4xg8z9sR4\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 16 Sep 2021 05:04:50 +1000 (AEST)",
            "from localhost (localhost [127.0.0.1])\n\tby smtp1.osuosl.org (Postfix) with ESMTP id 41AFF80DD6;\n\tWed, 15 Sep 2021 19:04:48 +0000 (UTC)",
            "from smtp1.osuosl.org ([127.0.0.1])\n\tby localhost (smtp1.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id 2hXY690TkDbK; Wed, 15 Sep 2021 19:04:47 +0000 (UTC)",
            "from lists.linuxfoundation.org (lf-lists.osuosl.org\n [IPv6:2605:bc80:3010:104::8cd3:938])\n\tby smtp1.osuosl.org (Postfix) with ESMTPS id 74C3E80DB4;\n\tWed, 15 Sep 2021 19:04:46 +0000 (UTC)",
            "from lf-lists.osuosl.org (localhost [127.0.0.1])\n\tby lists.linuxfoundation.org (Postfix) with ESMTP id 48584C0011;\n\tWed, 15 Sep 2021 19:04:46 +0000 (UTC)",
            "from smtp2.osuosl.org (smtp2.osuosl.org [140.211.166.133])\n by lists.linuxfoundation.org (Postfix) with ESMTP id 09E47C000D\n for <dev@openvswitch.org>; Wed, 15 Sep 2021 19:04:45 +0000 (UTC)",
            "from localhost (localhost [127.0.0.1])\n by smtp2.osuosl.org (Postfix) with ESMTP id 005B0401DF\n for <dev@openvswitch.org>; Wed, 15 Sep 2021 19:04:45 +0000 (UTC)",
            "from smtp2.osuosl.org ([127.0.0.1])\n by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n with ESMTP id S0ng3P0inDJM for <dev@openvswitch.org>;\n Wed, 15 Sep 2021 19:04:43 +0000 (UTC)",
            "from us-smtp-delivery-124.mimecast.com\n (us-smtp-delivery-124.mimecast.com [170.10.133.124])\n by smtp2.osuosl.org (Postfix) with ESMTPS id 87F48402C2\n for <dev@openvswitch.org>; Wed, 15 Sep 2021 19:04:40 +0000 (UTC)",
            "from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com\n [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id\n us-mta-574-Es22lJEONQOEnHPx9pGKqg-1; Wed, 15 Sep 2021 15:04:37 -0400",
            "from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com\n [10.5.11.16])\n (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n (No client certificate requested)\n by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 381FB1800D41;\n Wed, 15 Sep 2021 19:04:36 +0000 (UTC)",
            "from RHTPC1VM0NT.redhat.com (unknown [10.22.9.128])\n by smtp.corp.redhat.com (Postfix) with ESMTP id A71CB5C1C5;\n Wed, 15 Sep 2021 19:04:34 +0000 (UTC)"
        ],
        "X-Virus-Scanned": [
            "amavisd-new at osuosl.org",
            "amavisd-new at osuosl.org"
        ],
        "X-Greylist": "domain auto-whitelisted by SQLgrey-1.8.0",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n s=mimecast20190719; t=1631732679;\n h=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n to:to:cc:cc:mime-version:mime-version:content-type:content-type:\n content-transfer-encoding:content-transfer-encoding;\n bh=THvf/FUd42nITQtWSusWIBkvXRo1ofDuJxrhDIVhO2c=;\n b=f1XfT3R0n5kmco0WOMskdoVBxfUusxl4ARD6SzrnfcVe7sQYiFiS1og9m4SCq+KhHb/HIv\n XijVAsUTMKMmS4uPsc3zEld/byO5o/+d0+B0fP6WndMGN8XnEnjor3Kq3IoyIFcTEztNvq\n mcWFqdwz29Sdju1Nnd5e03HRrSw6dNE=",
        "X-MC-Unique": "Es22lJEONQOEnHPx9pGKqg-1",
        "From": "Aaron Conole <aconole@redhat.com>",
        "To": "dev@openvswitch.org",
        "Date": "Wed, 15 Sep 2021 15:04:34 -0400",
        "Message-Id": "<20210915190434.1162229-1-aconole@redhat.com>",
        "MIME-Version": "1.0",
        "X-Scanned-By": "MIMEDefang 2.79 on 10.5.11.16",
        "X-Mimecast-Spam-Score": "0",
        "X-Mimecast-Originator": "redhat.com",
        "Cc": "Mohamed Mahmoud <mmahmoud@redhat.com>,\n Lorenzo Bianconi <lbiancon@redhat.com>, Ilya Maximets <i.maximets@ovn.org>,\n Flavio Leitner <fbl@sysclose.org>",
        "Subject": "[ovs-dev] [PATCH] igmp: always check and mask igmp packets.",
        "X-BeenThere": "ovs-dev@openvswitch.org",
        "X-Mailman-Version": "2.1.15",
        "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>",
        "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": "When OVS starts with default settings, it will have no existing datapath\nflows configured, and it will not explicitly handle IGMP packets.  This\nmeans that all traffic will hit the datapath, and then follow the\nxlate_normal processing path.\n\nUnfortunately for some users of IGMP-aware applications (such as\n'keepalived'), IGMP packets will arrive, go through processing and a\ndefault flow like following will be installed:\n\n   recirc_id(0),in_port(2),eth(),eth_type(0x0800),ipv4(frag=no), actions:userspace(pid=xxxxxxx,slow_path(match))\n\nThis is a very broad match - and will force all IPv4 traffic to userspace.\n\nTo combat this, force the wildcard initialization to always include an\nIGMP protocol match.  An existing IGMP check is only run when multicast\nsnooping is configured.  Now we will always run the check during wildcard\ninit.  A unit test is added that works for kernel and userspace datapaths.\n\nReported-by: Lorenzo Bianconi <lbiancon@redhat.com>\nReported-by: Mohamed Mahmoud <mmahmoud@redhat.com>\nReported-at: https://bugzilla.redhat.com/show_bug.cgi?id=2002888\nSigned-off-by: Aaron Conole <aconole@redhat.com>\n---\n ofproto/ofproto-dpif-xlate.c |  8 ++++++++\n tests/system-traffic.at      | 28 ++++++++++++++++++++++++++++\n 2 files changed, 36 insertions(+)",
    "diff": "diff --git a/ofproto/ofproto-dpif-xlate.c b/ofproto/ofproto-dpif-xlate.c\nindex 8723cb4e85..dc3971cdf9 100644\n--- a/ofproto/ofproto-dpif-xlate.c\n+++ b/ofproto/ofproto-dpif-xlate.c\n@@ -7381,6 +7381,14 @@ xlate_wc_init(struct xlate_ctx *ctx)\n         WC_MASK_FIELD_MASK(ctx->wc, nw_frag, FLOW_NW_FRAG_MASK);\n     }\n \n+    /* Always check for igmp type in the packet.  This will ensure that\n+     * the igmp nw type will properly be set as a match field.  */\n+    if (get_dl_type(&ctx->xin->flow) == htons(ETH_TYPE_IP)) {\n+        if (ctx->xin->flow.nw_proto == IPPROTO_IGMP && ctx->wc) {\n+            WC_MASK_FIELD(ctx->wc, nw_proto);\n+        }\n+    }\n+\n     if (ctx->xbridge->support.odp.recirc) {\n         /* Always exactly match recirc_id when datapath supports\n          * recirculation.  */\ndiff --git a/tests/system-traffic.at b/tests/system-traffic.at\nindex de9108ac20..e0836839d6 100644\n--- a/tests/system-traffic.at\n+++ b/tests/system-traffic.at\n@@ -6147,6 +6147,34 @@ AT_CHECK([ovs-ofctl dump-flows br0 | grep table=2, | OFPROTO_CLEAR_DURATION_IDLE\n OVS_TRAFFIC_VSWITCHD_STOP\n AT_CLEANUP\n \n+AT_BANNER([IGMP])\n+\n+AT_SETUP([IGMP - VRRP VSS padded])\n+\n+OVS_TRAFFIC_VSWITCHD_START()\n+ADD_NAMESPACES(at_ns0, at_ns1)\n+\n+ADD_VETH(p0, at_ns0, br0, \"10.1.1.1/24\", \"f0:00:00:01:01:01\")\n+ADD_VETH(p1, at_ns1, br0, \"10.1.1.2/24\", \"f0:00:00:01:01:02\")\n+\n+NS_CHECK_EXEC([at_ns0], [$PYTHON3 $srcdir/sendpkt.py p0 f0 00 00 01 01 02 dnl\n+f0 00 00 01 01 01 08 00 46 c0 00 28 00 00 40 00 01 02 d3 49 45 65 eb 4a e0 dnl\n+00 00 16 94 04 00 00 22 00 f9 02 00 00 00 01 04 00 00 00 e0 00 00 fb 00 00 dnl\n+00 00 00 00 > /dev/null])\n+\n+AT_CHECK([ovs-appctl dpctl/dump-flows | grep -e .*ipv4 | dnl\n+          sed -e 's/ packets:[[0-9]]*,//' -e 's/ bytes:[[0-9]]*,//' dnl\n+              -e 's/ used:[[a-zA-Z0-9]]*,//' -e 's/pid=[[0-9]]*,//' dnl\n+              -e 's/,packet_type(ns=[[0-9]]*,id=[[0-9]]*),/,eth(),/' dnl\n+              -e 's/actions:drop/actions:userspace(slow_path(match))/'],\n+                     [0], [dnl\n+recirc_id(0),in_port(2),eth(),eth_type(0x0800),ipv4(proto=2,frag=no), actions:userspace(slow_path(match))\n+])\n+\n+OVS_TRAFFIC_VSWITCHD_STOP\n+AT_CLEANUP\n+\n+\n AT_BANNER([802.1ad])\n \n AT_SETUP([802.1ad - vlan_limit])\n",
    "prefixes": [
        "ovs-dev"
    ]
}