get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 880738,
    "url": "http://patchwork.ozlabs.org/api/patches/880738/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20180302184344.5744-7-vinicius.gomes@intel.com/",
    "project": {
        "id": 46,
        "url": "http://patchwork.ozlabs.org/api/projects/46/?format=api",
        "name": "Intel Wired Ethernet development",
        "link_name": "intel-wired-lan",
        "list_id": "intel-wired-lan.osuosl.org",
        "list_email": "intel-wired-lan@osuosl.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": "",
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20180302184344.5744-7-vinicius.gomes@intel.com>",
    "list_archive_url": null,
    "date": "2018-03-02T18:43:42",
    "name": "[next-queue,v2,6/8] igb: Add MAC address support for ethtool nftuple filters",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": false,
    "hash": "e0a978bca2a27ebeda15d93bd2e0a1125077a89f",
    "submitter": {
        "id": 72272,
        "url": "http://patchwork.ozlabs.org/api/people/72272/?format=api",
        "name": "Vinicius Costa Gomes",
        "email": "vinicius.gomes@intel.com"
    },
    "delegate": {
        "id": 68,
        "url": "http://patchwork.ozlabs.org/api/users/68/?format=api",
        "username": "jtkirshe",
        "first_name": "Jeff",
        "last_name": "Kirsher",
        "email": "jeffrey.t.kirsher@intel.com"
    },
    "mbox": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20180302184344.5744-7-vinicius.gomes@intel.com/mbox/",
    "series": [
        {
            "id": 31605,
            "url": "http://patchwork.ozlabs.org/api/series/31605/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/list/?series=31605",
            "date": "2018-03-02T18:43:37",
            "name": "igb: offloading of receive filters",
            "version": 2,
            "mbox": "http://patchwork.ozlabs.org/series/31605/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/880738/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/880738/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<intel-wired-lan-bounces@osuosl.org>",
        "X-Original-To": [
            "incoming@patchwork.ozlabs.org",
            "intel-wired-lan@lists.osuosl.org"
        ],
        "Delivered-To": [
            "patchwork-incoming@bilbo.ozlabs.org",
            "intel-wired-lan@lists.osuosl.org"
        ],
        "Authentication-Results": [
            "ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=osuosl.org\n\t(client-ip=140.211.166.137; helo=fraxinus.osuosl.org;\n\tenvelope-from=intel-wired-lan-bounces@osuosl.org;\n\treceiver=<UNKNOWN>)",
            "ozlabs.org;\n\tdmarc=none (p=none dis=none) header.from=intel.com"
        ],
        "Received": [
            "from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3ztJB76YQbz9s8r\n\tfor <incoming@patchwork.ozlabs.org>;\n\tSat,  3 Mar 2018 05:44:31 +1100 (AEDT)",
            "from localhost (localhost [127.0.0.1])\n\tby fraxinus.osuosl.org (Postfix) with ESMTP id 774B1880B7;\n\tFri,  2 Mar 2018 18:44:29 +0000 (UTC)",
            "from fraxinus.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id KIAgmeiP73hT; Fri,  2 Mar 2018 18:44:28 +0000 (UTC)",
            "from ash.osuosl.org (ash.osuosl.org [140.211.166.34])\n\tby fraxinus.osuosl.org (Postfix) with ESMTP id B7C3E87FC7;\n\tFri,  2 Mar 2018 18:44:28 +0000 (UTC)",
            "from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138])\n\tby ash.osuosl.org (Postfix) with ESMTP id 5C0BB1C062C\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tFri,  2 Mar 2018 18:44:26 +0000 (UTC)",
            "from localhost (localhost [127.0.0.1])\n\tby whitealder.osuosl.org (Postfix) with ESMTP id 56BF58907A\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tFri,  2 Mar 2018 18:44:26 +0000 (UTC)",
            "from whitealder.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id toAmsXnza7o6 for <intel-wired-lan@lists.osuosl.org>;\n\tFri,  2 Mar 2018 18:44:24 +0000 (UTC)",
            "from mga01.intel.com (mga01.intel.com [192.55.52.88])\n\tby whitealder.osuosl.org (Postfix) with ESMTPS id 1D89389086\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tFri,  2 Mar 2018 18:44:24 +0000 (UTC)",
            "from fmsmga001.fm.intel.com ([10.253.24.23])\n\tby fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;\n\t02 Mar 2018 10:44:24 -0800",
            "from ellie.jf.intel.com (HELO localhost.localdomain)\n\t([10.24.13.29])\n\tby fmsmga001.fm.intel.com with ESMTP; 02 Mar 2018 10:44:23 -0800"
        ],
        "X-Virus-Scanned": [
            "amavisd-new at osuosl.org",
            "amavisd-new at osuosl.org"
        ],
        "X-Greylist": "domain auto-whitelisted by SQLgrey-1.7.6",
        "X-Amp-Result": "SKIPPED(no attachment in message)",
        "X-Amp-File-Uploaded": "False",
        "X-ExtLoop1": "1",
        "X-IronPort-AV": "E=Sophos;i=\"5.47,413,1515484800\"; d=\"scan'208\";a=\"35044403\"",
        "From": "Vinicius Costa Gomes <vinicius.gomes@intel.com>",
        "To": "intel-wired-lan@lists.osuosl.org",
        "Date": "Fri,  2 Mar 2018 10:43:42 -0800",
        "Message-Id": "<20180302184344.5744-7-vinicius.gomes@intel.com>",
        "X-Mailer": "git-send-email 2.16.2",
        "In-Reply-To": "<20180302184344.5744-1-vinicius.gomes@intel.com>",
        "References": "<20180302184344.5744-1-vinicius.gomes@intel.com>",
        "Subject": "[Intel-wired-lan] [next-queue PATCH v2 6/8] igb: Add MAC address\n\tsupport for ethtool nftuple filters",
        "X-BeenThere": "intel-wired-lan@osuosl.org",
        "X-Mailman-Version": "2.1.24",
        "Precedence": "list",
        "List-Id": "Intel Wired Ethernet Linux Kernel Driver Development\n\t<intel-wired-lan.osuosl.org>",
        "List-Unsubscribe": "<https://lists.osuosl.org/mailman/options/intel-wired-lan>, \n\t<mailto:intel-wired-lan-request@osuosl.org?subject=unsubscribe>",
        "List-Archive": "<http://lists.osuosl.org/pipermail/intel-wired-lan/>",
        "List-Post": "<mailto:intel-wired-lan@osuosl.org>",
        "List-Help": "<mailto:intel-wired-lan-request@osuosl.org?subject=help>",
        "List-Subscribe": "<https://lists.osuosl.org/mailman/listinfo/intel-wired-lan>, \n\t<mailto:intel-wired-lan-request@osuosl.org?subject=subscribe>",
        "Cc": "netdev@vger.kernel.org, jesus.sanchez-palencia@intel.com",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=\"us-ascii\"",
        "Content-Transfer-Encoding": "7bit",
        "Errors-To": "intel-wired-lan-bounces@osuosl.org",
        "Sender": "\"Intel-wired-lan\" <intel-wired-lan-bounces@osuosl.org>"
    },
    "content": "This adds the capability of configuring the queue steering of arriving\npackets based on their source and destination MAC addresses.\n\nIn practical terms this adds support for the following use cases,\ncharacterized by these examples:\n\n$ ethtool -N eth0 flow-type ether dst aa:aa:aa:aa:aa:aa action 0\n(this will direct packets with destination address \"aa:aa:aa:aa:aa:aa\"\nto the RX queue 0)\n\n$ ethtool -N eth0 flow-type ether src 44:44:44:44:44:44 action 3\n(this will direct packets with destination address \"44:44:44:44:44:44\"\nto the RX queue 3)\n\nSigned-off-by: Vinicius Costa Gomes <vinicius.gomes@intel.com>\n---\n drivers/net/ethernet/intel/igb/igb_ethtool.c | 35 ++++++++++++++++++++++++----\n 1 file changed, 31 insertions(+), 4 deletions(-)",
    "diff": "diff --git a/drivers/net/ethernet/intel/igb/igb_ethtool.c b/drivers/net/ethernet/intel/igb/igb_ethtool.c\nindex 94fc9a4bed8b..3f98299d4cd0 100644\n--- a/drivers/net/ethernet/intel/igb/igb_ethtool.c\n+++ b/drivers/net/ethernet/intel/igb/igb_ethtool.c\n@@ -2494,6 +2494,23 @@ static int igb_get_ethtool_nfc_entry(struct igb_adapter *adapter,\n \t\t\tfsp->h_ext.vlan_tci = rule->filter.vlan_tci;\n \t\t\tfsp->m_ext.vlan_tci = htons(VLAN_PRIO_MASK);\n \t\t}\n+\t\tif (rule->filter.match_flags & IGB_FILTER_FLAG_DST_MAC_ADDR) {\n+\t\t\tether_addr_copy(fsp->h_u.ether_spec.h_dest,\n+\t\t\t\t\trule->filter.dst_addr);\n+\t\t\t/* As we only support matching by the full\n+\t\t\t * mask, return the mask to userspace\n+\t\t\t */\n+\t\t\teth_broadcast_addr(fsp->m_u.ether_spec.h_dest);\n+\t\t}\n+\t\tif (rule->filter.match_flags & IGB_FILTER_FLAG_SRC_MAC_ADDR) {\n+\t\t\tether_addr_copy(fsp->h_u.ether_spec.h_source,\n+\t\t\t\t\trule->filter.src_addr);\n+\t\t\t/* As we only support matching by the full\n+\t\t\t * mask, return the mask to userspace\n+\t\t\t */\n+\t\t\teth_broadcast_addr(fsp->m_u.ether_spec.h_source);\n+\t\t}\n+\n \t\treturn 0;\n \t}\n \treturn -EINVAL;\n@@ -2932,10 +2949,6 @@ static int igb_add_ethtool_nfc_entry(struct igb_adapter *adapter,\n \tif ((fsp->flow_type & ~FLOW_EXT) != ETHER_FLOW)\n \t\treturn -EINVAL;\n \n-\tif (fsp->m_u.ether_spec.h_proto != ETHER_TYPE_FULL_MASK &&\n-\t    fsp->m_ext.vlan_tci != htons(VLAN_PRIO_MASK))\n-\t\treturn -EINVAL;\n-\n \tinput = kzalloc(sizeof(*input), GFP_KERNEL);\n \tif (!input)\n \t\treturn -ENOMEM;\n@@ -2945,6 +2958,20 @@ static int igb_add_ethtool_nfc_entry(struct igb_adapter *adapter,\n \t\tinput->filter.match_flags = IGB_FILTER_FLAG_ETHER_TYPE;\n \t}\n \n+\t/* Only support matching addresses by the full mask */\n+\tif (is_broadcast_ether_addr(fsp->m_u.ether_spec.h_source)) {\n+\t\tinput->filter.match_flags |= IGB_FILTER_FLAG_SRC_MAC_ADDR;\n+\t\tether_addr_copy(input->filter.src_addr,\n+\t\t\t\tfsp->h_u.ether_spec.h_source);\n+\t}\n+\n+\t/* Only support matching addresses by the full mask */\n+\tif (is_broadcast_ether_addr(fsp->m_u.ether_spec.h_dest)) {\n+\t\tinput->filter.match_flags |= IGB_FILTER_FLAG_DST_MAC_ADDR;\n+\t\tether_addr_copy(input->filter.dst_addr,\n+\t\t\t\tfsp->h_u.ether_spec.h_dest);\n+\t}\n+\n \tif ((fsp->flow_type & FLOW_EXT) && fsp->m_ext.vlan_tci) {\n \t\tif (fsp->m_ext.vlan_tci != htons(VLAN_PRIO_MASK)) {\n \t\t\terr = -EINVAL;\n",
    "prefixes": [
        "next-queue",
        "v2",
        "6/8"
    ]
}