get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 572595,
    "url": "http://patchwork.ozlabs.org/api/patches/572595/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20160125051736.12004.13420.stgit@localhost.localdomain/",
    "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": "<20160125051736.12004.13420.stgit@localhost.localdomain>",
    "list_archive_url": null,
    "date": "2016-01-25T05:17:36",
    "name": "[next,v3,12/15] i40e: Fix ATR in relation to tunnels",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": false,
    "hash": "626dca72f6137c77910518ea7b9b00a0ac57d2de",
    "submitter": {
        "id": 67293,
        "url": "http://patchwork.ozlabs.org/api/people/67293/?format=api",
        "name": "Alexander Duyck",
        "email": "aduyck@mirantis.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/20160125051736.12004.13420.stgit@localhost.localdomain/mbox/",
    "series": [],
    "comments": "http://patchwork.ozlabs.org/api/patches/572595/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/572595/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<intel-wired-lan-bounces@lists.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"
        ],
        "Received": [
            "from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138])\n\tby ozlabs.org (Postfix) with ESMTP id B17501402BF\n\tfor <incoming@patchwork.ozlabs.org>;\n\tMon, 25 Jan 2016 16:17:43 +1100 (AEDT)",
            "from localhost (localhost [127.0.0.1])\n\tby whitealder.osuosl.org (Postfix) with ESMTP id 1B2C28C486;\n\tMon, 25 Jan 2016 05:17:41 +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 tx0FX+YCVhfM; Mon, 25 Jan 2016 05:17:39 +0000 (UTC)",
            "from ash.osuosl.org (ash.osuosl.org [140.211.166.34])\n\tby whitealder.osuosl.org (Postfix) with ESMTP id 5893B8C430;\n\tMon, 25 Jan 2016 05:17:39 +0000 (UTC)",
            "from silver.osuosl.org (smtp3.osuosl.org [140.211.166.136])\n\tby ash.osuosl.org (Postfix) with ESMTP id 6CF051C107C\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tMon, 25 Jan 2016 05:17:39 +0000 (UTC)",
            "from localhost (localhost [127.0.0.1])\n\tby silver.osuosl.org (Postfix) with ESMTP id 63E0E2E55F\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tMon, 25 Jan 2016 05:17:39 +0000 (UTC)",
            "from silver.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id 8CV8nno8pUV3 for <intel-wired-lan@lists.osuosl.org>;\n\tMon, 25 Jan 2016 05:17:38 +0000 (UTC)",
            "from mail-pa0-f42.google.com (mail-pa0-f42.google.com\n\t[209.85.220.42])\n\tby silver.osuosl.org (Postfix) with ESMTPS id 7CCA631E9D\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tMon, 25 Jan 2016 05:17:38 +0000 (UTC)",
            "by mail-pa0-f42.google.com with SMTP id yy13so74645050pab.3\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tSun, 24 Jan 2016 21:17:38 -0800 (PST)",
            "from localhost.localdomain\n\t(static-50-53-29-36.bvtn.or.frontiernet.net. [50.53.29.36])\n\tby smtp.gmail.com with ESMTPSA id\n\tv71sm24946373pfi.91.2016.01.24.21.17.37\n\t(version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);\n\tSun, 24 Jan 2016 21:17:37 -0800 (PST)"
        ],
        "Authentication-Results": "ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=mirantis.com header.i=@mirantis.com\n\theader.b=WRWQJzzt; dkim-atps=neutral",
        "X-Virus-Scanned": [
            "amavisd-new at osuosl.org",
            "amavisd-new at osuosl.org"
        ],
        "X-Greylist": "from auto-whitelisted by SQLgrey-1.7.6",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=mirantis.com;\n\ts=google; \n\th=subject:from:to:cc:date:message-id:in-reply-to:references\n\t:user-agent:mime-version:content-type:content-transfer-encoding;\n\tbh=kP1QBmxLrfZJ0HzQC0CiEfSm785qHOlPVlenoQ3cg+0=;\n\tb=WRWQJzzt1mxYWc6cjOfQ+Al6clURoJWJ41syi7LrZzYle4PWASyRAu6rbrMv8FbuCr\n\tjqbQeu5jNLuhaFmGEDbAyVleXhPqBcwjqPMCEBs1LDmrnEzpJ+mhPQGXjD711gNzgPDw\n\t339TAbcnN/ifzOYuV2UX4qo3/dvwKyT5toq5U=",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20130820;\n\th=x-gm-message-state:subject:from:to:cc:date:message-id:in-reply-to\n\t:references:user-agent:mime-version:content-type\n\t:content-transfer-encoding;\n\tbh=kP1QBmxLrfZJ0HzQC0CiEfSm785qHOlPVlenoQ3cg+0=;\n\tb=h42VJ7NYJQTeh55OnFpbNDOiqgacM8v/WcLHXK558OJsuuq41o/BIz8NDPeSAT6RZg\n\tJV3f2+hKj5WKOngQYZN+K4zO6qqnhCY57vsyP01Wt0rooCfT2uZxCpMcfDToJ1+k1ewh\n\t79xy7AXjjg+Vm8xU1iSNvXfZ7XFMKRJdXT24J/MilPsofNifc1xscGct7cMGbSFvaTQ/\n\ty49DxVCmwRnX7mHZTkc+JolMdGJas39sA2A6muyTSXdVg3NbpNe1SwboszIvJogJ7kS/\n\tv6QUebVnaFJZHWjcynEtkawJzrWTeWcfglVO9jqsUjhqCsS3NpoJ8QMS8zriDsrdWj+Y\n\toqqg==",
        "X-Gm-Message-State": "AG10YOR3HA89MUtkRx46P0n0lRtUdZ5DVIDNSKM6QSxNezIwMck22/Y3Ufhr4kGvYw2uH4rd",
        "X-Received": "by 10.66.100.228 with SMTP id fb4mr22956854pab.84.1453699058199; \n\tSun, 24 Jan 2016 21:17:38 -0800 (PST)",
        "From": "Alexander Duyck <aduyck@mirantis.com>",
        "To": "intel-wired-lan@lists.osuosl.org, jeffrey.t.kirsher@intel.com",
        "Date": "Sun, 24 Jan 2016 21:17:36 -0800",
        "Message-ID": "<20160125051736.12004.13420.stgit@localhost.localdomain>",
        "In-Reply-To": "<20160125050602.12004.38884.stgit@localhost.localdomain>",
        "References": "<20160125050602.12004.38884.stgit@localhost.localdomain>",
        "User-Agent": "StGit/0.17.1-dirty",
        "MIME-Version": "1.0",
        "Subject": "[Intel-wired-lan] [next PATCH v3 12/15] i40e: Fix ATR in relation\n\tto tunnels",
        "X-BeenThere": "intel-wired-lan@lists.osuosl.org",
        "X-Mailman-Version": "2.1.18-1",
        "Precedence": "list",
        "List-Id": "Intel Wired Ethernet Linux Kernel Driver Development\n\t<intel-wired-lan.lists.osuosl.org>",
        "List-Unsubscribe": "<http://lists.osuosl.org/mailman/options/intel-wired-lan>, \n\t<mailto:intel-wired-lan-request@lists.osuosl.org?subject=unsubscribe>",
        "List-Archive": "<http://lists.osuosl.org/pipermail/intel-wired-lan/>",
        "List-Post": "<mailto:intel-wired-lan@lists.osuosl.org>",
        "List-Help": "<mailto:intel-wired-lan-request@lists.osuosl.org?subject=help>",
        "List-Subscribe": "<http://lists.osuosl.org/mailman/listinfo/intel-wired-lan>, \n\t<mailto:intel-wired-lan-request@lists.osuosl.org?subject=subscribe>",
        "Content-Type": "text/plain; charset=\"us-ascii\"",
        "Content-Transfer-Encoding": "7bit",
        "Errors-To": "intel-wired-lan-bounces@lists.osuosl.org",
        "Sender": "\"Intel-wired-lan\" <intel-wired-lan-bounces@lists.osuosl.org>"
    },
    "content": "This patch contains a number of fixes to make certain that we are using\nthe correct protocols when parsing both the inner and outer headers of a\nframe that is mixed between IPv4 and IPv6 for inner and outer.\n\nSigned-off-by: Alexander Duyck <aduyck@mirantis.com>\n---\n drivers/net/ethernet/intel/i40e/i40e_txrx.c |   28 +++++++++++----------------\n 1 file changed, 11 insertions(+), 17 deletions(-)",
    "diff": "diff --git a/drivers/net/ethernet/intel/i40e/i40e_txrx.c b/drivers/net/ethernet/intel/i40e/i40e_txrx.c\nindex 6a76c169c07e..ed8d13637c15 100644\n--- a/drivers/net/ethernet/intel/i40e/i40e_txrx.c\n+++ b/drivers/net/ethernet/intel/i40e/i40e_txrx.c\n@@ -2030,10 +2030,9 @@ tx_only:\n  * @tx_ring:  ring to add programming descriptor to\n  * @skb:      send buffer\n  * @tx_flags: send tx flags\n- * @protocol: wire protocol\n  **/\n static void i40e_atr(struct i40e_ring *tx_ring, struct sk_buff *skb,\n-\t\t     u32 tx_flags, __be16 protocol)\n+\t\t     u32 tx_flags)\n {\n \tstruct i40e_filter_program_desc *fdir_desc;\n \tstruct i40e_pf *pf = tx_ring->vsi->back;\n@@ -2045,6 +2044,7 @@ static void i40e_atr(struct i40e_ring *tx_ring, struct sk_buff *skb,\n \tstruct tcphdr *th;\n \tunsigned int hlen;\n \tu32 flex_ptype, dtype_cmd;\n+\tu8 l4_proto;\n \tu16 i;\n \n \t/* make sure ATR is enabled */\n@@ -2058,6 +2058,7 @@ static void i40e_atr(struct i40e_ring *tx_ring, struct sk_buff *skb,\n \tif (!tx_ring->atr_sample_rate)\n \t\treturn;\n \n+\t/* Currently only IPv4/IPv6 with TCP is supported */\n \tif (!(tx_flags & (I40E_TX_FLAGS_IPV4 | I40E_TX_FLAGS_IPV6)))\n \t\treturn;\n \n@@ -2068,26 +2069,19 @@ static void i40e_atr(struct i40e_ring *tx_ring, struct sk_buff *skb,\n \t\t/* snag network header to get L4 type and address */\n \t\thdr.network = skb_network_header(skb);\n \n-\t\t/* Currently only IPv4/IPv6 with TCP is supported\n-\t\t * access ihl as u8 to avoid unaligned access on ia64\n-\t\t */\n+\t\t/* access ihl as u8 to avoid unaligned access on ia64 */\n \t\tif (tx_flags & I40E_TX_FLAGS_IPV4)\n \t\t\thlen = (hdr.network[0] & 0x0F) << 2;\n-\t\telse if (protocol == htons(ETH_P_IPV6))\n-\t\t\thlen = sizeof(struct ipv6hdr);\n \t\telse\n-\t\t\treturn;\n+\t\t\thlen = sizeof(struct ipv6hdr);\n \t}\n \n-\t/* Currently only IPv4/IPv6 with TCP is supported\n-\t * Note: tx_flags gets modified to reflect inner protocols in\n+\t/* Note: tx_flags gets modified to reflect inner protocols in\n \t * tx_enable_csum function if encap is enabled.\n \t */\n-\tif ((tx_flags & I40E_TX_FLAGS_IPV4) &&\n-\t    (hdr.ipv4->protocol != IPPROTO_TCP))\n-\t\treturn;\n-\telse if ((tx_flags & I40E_TX_FLAGS_IPV6) &&\n-\t\t (hdr.ipv6->nexthdr != IPPROTO_TCP))\n+\tl4_proto = (tx_flags & I40E_TX_FLAGS_IPV4) ? hdr.ipv4->protocol :\n+\t\t\t\t\t\t     hdr.ipv6->nexthdr;\n+\tif (l4_proto != IPPROTO_TCP)\n \t\treturn;\n \n \tth = (struct tcphdr *)(hdr.network + hlen);\n@@ -2124,7 +2118,7 @@ static void i40e_atr(struct i40e_ring *tx_ring, struct sk_buff *skb,\n \n \tflex_ptype = (tx_ring->queue_index << I40E_TXD_FLTR_QW0_QINDEX_SHIFT) &\n \t\t      I40E_TXD_FLTR_QW0_QINDEX_MASK;\n-\tflex_ptype |= (protocol == htons(ETH_P_IP)) ?\n+\tflex_ptype |= (tx_flags & I40E_TX_FLAGS_IPV4) ?\n \t\t      (I40E_FILTER_PCTYPE_NONF_IPV4_TCP <<\n \t\t       I40E_TXD_FLTR_QW0_PCTYPE_SHIFT) :\n \t\t      (I40E_FILTER_PCTYPE_NONF_IPV6_TCP <<\n@@ -2992,7 +2986,7 @@ static netdev_tx_t i40e_xmit_frame_ring(struct sk_buff *skb,\n \t *\n \t * NOTE: this must always be directly before the data descriptor.\n \t */\n-\ti40e_atr(tx_ring, skb, tx_flags, protocol);\n+\ti40e_atr(tx_ring, skb, tx_flags);\n \n \ti40e_tx_map(tx_ring, skb, first, tx_flags, hdr_len,\n \t\t    td_cmd, td_offset);\n",
    "prefixes": [
        "next",
        "v3",
        "12/15"
    ]
}