get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 573056,
    "url": "http://patchwork.ozlabs.org/api/patches/573056/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/intel-wired-lan/patch/20160126033124.16387.6402.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": "<20160126033124.16387.6402.stgit@localhost.localdomain>",
    "list_archive_url": null,
    "date": "2016-01-26T03:32:54",
    "name": "[next,1/3] i40e: Add support for ATR w/ IPv6 extension headers",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": false,
    "hash": "39d07a879462a6c347ce125af7ff4cc8ff3acea5",
    "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/20160126033124.16387.6402.stgit@localhost.localdomain/mbox/",
    "series": [],
    "comments": "http://patchwork.ozlabs.org/api/patches/573056/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/573056/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 silver.osuosl.org (smtp3.osuosl.org [140.211.166.136])\n\tby ozlabs.org (Postfix) with ESMTP id BEC561402F0\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue, 26 Jan 2016 14:33:00 +1100 (AEDT)",
            "from localhost (localhost [127.0.0.1])\n\tby silver.osuosl.org (Postfix) with ESMTP id E18AE33878;\n\tTue, 26 Jan 2016 03:32:59 +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 gwzkQt8KGZAI; Tue, 26 Jan 2016 03:32:57 +0000 (UTC)",
            "from ash.osuosl.org (ash.osuosl.org [140.211.166.34])\n\tby silver.osuosl.org (Postfix) with ESMTP id 9683C26128;\n\tTue, 26 Jan 2016 03:32:57 +0000 (UTC)",
            "from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133])\n\tby ash.osuosl.org (Postfix) with ESMTP id 929D21C0F1D\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tTue, 26 Jan 2016 03:32:56 +0000 (UTC)",
            "from localhost (localhost [127.0.0.1])\n\tby hemlock.osuosl.org (Postfix) with ESMTP id 8DAE69552D\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tTue, 26 Jan 2016 03:32:56 +0000 (UTC)",
            "from hemlock.osuosl.org ([127.0.0.1])\n\tby localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)\n\twith ESMTP id AFOrNtS+W5fK for <intel-wired-lan@lists.osuosl.org>;\n\tTue, 26 Jan 2016 03:32:55 +0000 (UTC)",
            "from mail-pa0-f45.google.com (mail-pa0-f45.google.com\n\t[209.85.220.45])\n\tby hemlock.osuosl.org (Postfix) with ESMTPS id E2E1095528\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tTue, 26 Jan 2016 03:32:55 +0000 (UTC)",
            "by mail-pa0-f45.google.com with SMTP id cy9so91254770pac.0\n\tfor <intel-wired-lan@lists.osuosl.org>;\n\tMon, 25 Jan 2016 19:32:55 -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\tt67sm31825142pfa.14.2016.01.25.19.32.55\n\t(version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);\n\tMon, 25 Jan 2016 19:32:55 -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=Sguw3qfV; 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=9EW6KW2GyX3DMoph6VtOChFUaCsIXzVqHF46HyZ5RQ8=;\n\tb=Sguw3qfVlF0cQ1cmx8Y5D2tvYhhAH9BkYSS15SNMPOl8faVbMskXj+SXbaaKJ++v8C\n\t5Imrk/N9Av2vQeTgzde2Nk/LdabbLiesKT52c23g+uwTx0YKBlZZBpioJc3TfABoau+6\n\tMT4Lo9TnUI//XGpOneNwVekD9ffwcrBTdvS3Q=",
        "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=9EW6KW2GyX3DMoph6VtOChFUaCsIXzVqHF46HyZ5RQ8=;\n\tb=L1oSLJYmwGjp2YBG3br/nLStIt9Z51FwAdMuw/s3IDxo9uPMU0PffNd05EhuYv8RyD\n\tDmOyK8S2qtKNTA6Rirt6RIL3W/mdBm46kfIOLO7GW2vO1J29VFnKSaRl8MaqLufbIwF9\n\tvVW7Rt4mBz46pBbO7OquyiW+EN4Lf5tLAdx7SH+3J9CnGkV3qfzbBVm2gfiex0ewT1Kp\n\t1pbydYZeSOLHHodixHCQxZ3uvcAMHF3QJT3p34SFtgBbyGm3BWGmHH2TTVjM3lWEp2FA\n\t4cSNF7HC0HqjR2USNYEEt26y/yXYqtAJrCUO31fbka9dpH4tYNoj3NE1TkMlzHcf92dZ\n\tdiCA==",
        "X-Gm-Message-State": "AG10YOTQGkEEsCDH5fhAbFHb+uML+OUG8KgOem6mLVgNUzhgLDul24kp4mBJ8sEkHEfF3niE",
        "X-Received": "by 10.66.63.104 with SMTP id f8mr31047762pas.41.1453779175715;\n\tMon, 25 Jan 2016 19:32:55 -0800 (PST)",
        "From": "Alexander Duyck <aduyck@mirantis.com>",
        "To": "intel-wired-lan@lists.osuosl.org, jeffrey.t.kirsher@intel.com",
        "Date": "Mon, 25 Jan 2016 19:32:54 -0800",
        "Message-ID": "<20160126033124.16387.6402.stgit@localhost.localdomain>",
        "In-Reply-To": "<20160126032616.16387.86351.stgit@localhost.localdomain>",
        "References": "<20160126032616.16387.86351.stgit@localhost.localdomain>",
        "User-Agent": "StGit/0.17.1-dirty",
        "MIME-Version": "1.0",
        "Subject": "[Intel-wired-lan] [next PATCH 1/3] i40e: Add support for ATR w/\n\tIPv6 extension headers",
        "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 updates the code for determining the L4 protocol and L3 header\nlength so that when IPv6 extension headers are being used we can determine\nthe offset and type of the L4 protocol.\n\nSigned-off-by: Alexander Duyck <aduyck@mirantis.com>\n---\n\nTesting Hints:\nTest with mix of tunnel and non-tunnel headers to verify that frames\ncontaining IPv6 extension headers are properly triggering ATR match events.\n\n drivers/net/ethernet/intel/i40e/i40e_txrx.c |   30 +++++++++++++--------------\n 1 file changed, 14 insertions(+), 16 deletions(-)",
    "diff": "diff --git a/drivers/net/ethernet/intel/i40e/i40e_txrx.c b/drivers/net/ethernet/intel/i40e/i40e_txrx.c\nindex ed8d13637c15..1616a85fd25a 100644\n--- a/drivers/net/ethernet/intel/i40e/i40e_txrx.c\n+++ b/drivers/net/ethernet/intel/i40e/i40e_txrx.c\n@@ -2044,7 +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+\tint l4_proto;\n \tu16 i;\n \n \t/* make sure ATR is enabled */\n@@ -2062,25 +2062,23 @@ static void i40e_atr(struct i40e_ring *tx_ring, struct sk_buff *skb,\n \tif (!(tx_flags & (I40E_TX_FLAGS_IPV4 | I40E_TX_FLAGS_IPV6)))\n \t\treturn;\n \n-\tif (tx_flags & I40E_TX_FLAGS_TUNNEL) {\n-\t\thdr.network = skb_inner_network_header(skb);\n-\t\thlen = skb_inner_network_header_len(skb);\n-\t} else {\n-\t\t/* snag network header to get L4 type and address */\n-\t\thdr.network = skb_network_header(skb);\n-\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\n-\t\t\thlen = sizeof(struct ipv6hdr);\n-\t}\n+\t/* snag network header to get L4 type and address */\n+\thdr.network = (tx_flags & I40E_TX_FLAGS_TUNNEL) ?\n+\t\t      skb_inner_network_header(skb) : skb_network_header(skb);\n \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-\tl4_proto = (tx_flags & I40E_TX_FLAGS_IPV4) ? hdr.ipv4->protocol :\n-\t\t\t\t\t\t     hdr.ipv6->nexthdr;\n+\tif (tx_flags & I40E_TX_FLAGS_IPV4) {\n+\t\t/* access ihl as u8 to avoid unaligned access on ia64 */\n+\t\thlen = (hdr.network[0] & 0x0F) << 2;\n+\t\tl4_proto = hdr.ipv4->protocol;\n+\t} else {\n+\t\thlen = hdr.network - skb->data;\n+\t\tl4_proto = ipv6_find_hdr(skb, &hlen, IPPROTO_TCP, NULL, NULL);\n+\t\thlen -= hdr.network - skb->data;\n+\t}\n+\n \tif (l4_proto != IPPROTO_TCP)\n \t\treturn;\n \n",
    "prefixes": [
        "next",
        "1/3"
    ]
}