get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 805982,
    "url": "http://patchwork.ozlabs.org/api/patches/805982/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/netdev/patch/1503682263-17858-3-git-send-email-pieter.jansenvanvuuren@netronome.com/",
    "project": {
        "id": 7,
        "url": "http://patchwork.ozlabs.org/api/projects/7/?format=api",
        "name": "Linux network development",
        "link_name": "netdev",
        "list_id": "netdev.vger.kernel.org",
        "list_email": "netdev@vger.kernel.org",
        "web_url": null,
        "scm_url": null,
        "webscm_url": null,
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<1503682263-17858-3-git-send-email-pieter.jansenvanvuuren@netronome.com>",
    "list_archive_url": null,
    "date": "2017-08-25T17:31:02",
    "name": "[net,2/3] nfp: fix supported key layers calculation",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "68e5c22dd74516d84460674cb2a5db853f04bbb8",
    "submitter": {
        "id": 72232,
        "url": "http://patchwork.ozlabs.org/api/people/72232/?format=api",
        "name": "Pieter Jansen van Vuuren",
        "email": "pieter.jansenvanvuuren@netronome.com"
    },
    "delegate": {
        "id": 34,
        "url": "http://patchwork.ozlabs.org/api/users/34/?format=api",
        "username": "davem",
        "first_name": "David",
        "last_name": "Miller",
        "email": "davem@davemloft.net"
    },
    "mbox": "http://patchwork.ozlabs.org/project/netdev/patch/1503682263-17858-3-git-send-email-pieter.jansenvanvuuren@netronome.com/mbox/",
    "series": [],
    "comments": "http://patchwork.ozlabs.org/api/patches/805982/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/805982/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<netdev-owner@vger.kernel.org>",
        "X-Original-To": "patchwork-incoming@ozlabs.org",
        "Delivered-To": "patchwork-incoming@ozlabs.org",
        "Authentication-Results": [
            "ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)",
            "ozlabs.org; dkim=pass (2048-bit key;\n\tunprotected) header.d=netronome-com.20150623.gappssmtp.com\n\theader.i=@netronome-com.20150623.gappssmtp.com\n\theader.b=\"AS1qtq2q\"; dkim-atps=neutral"
        ],
        "Received": [
            "from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3xf7Vt2wgFz9sN5\n\tfor <patchwork-incoming@ozlabs.org>;\n\tSat, 26 Aug 2017 03:31:18 +1000 (AEST)",
            "(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1757342AbdHYRbQ (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tFri, 25 Aug 2017 13:31:16 -0400",
            "from mail-wr0-f178.google.com ([209.85.128.178]:35792 \"EHLO\n\tmail-wr0-f178.google.com\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1756096AbdHYRbO (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Fri, 25 Aug 2017 13:31:14 -0400",
            "by mail-wr0-f178.google.com with SMTP id p8so1345761wrf.2\n\tfor <netdev@vger.kernel.org>; Fri, 25 Aug 2017 10:31:13 -0700 (PDT)",
            "from pieter-Netronome.netronome.com\n\t(host-79-78-33-110.static.as9105.net. [79.78.33.110])\n\tby smtp.gmail.com with ESMTPSA id\n\t40sm7418994wrz.8.2017.08.25.10.31.11\n\t(version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);\n\tFri, 25 Aug 2017 10:31:12 -0700 (PDT)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=netronome-com.20150623.gappssmtp.com; s=20150623;\n\th=from:to:cc:subject:date:message-id:in-reply-to:references;\n\tbh=76srm28M/Ll2OknHqu8ldDDwX56ez4Zo7RLFLLcdkzM=;\n\tb=AS1qtq2qE+pRCqsJ2aTH421usurs+Xj1mF0oz83DuEednfksaaYPk0MpzH83PRYxQ+\n\t6+r+r6xOWI1dX+NW35rWHIJ377UfMl1STakasgFD/UHgOXc29XvP8+rvPxbMk5JsNowI\n\t1sM2Ruf9q4xefXkYZhxzeT3174nkje3//uCe6xwg+vK5Zjo4wGhDXwdgtaNilSq1mSHX\n\tei6BPveTXTLQG6PRZYIvwpS1fk48s6+44Uu5euAQ36ssWazbSXBqFa4QZ4tjdkCZg120\n\tavX4U/fliZehJrZ6NHnfj2xC36BPcNWFkScUieEPXKCBj/5zYtovhH20q5hLmQE8tWxi\n\t9JCw==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to\n\t:references;\n\tbh=76srm28M/Ll2OknHqu8ldDDwX56ez4Zo7RLFLLcdkzM=;\n\tb=cDfhBuzVNcAg3Z+Ra8wIzrHA4Iv9S1/G8kCNZp00qTOx1B/BorKeBuX2vFcpisG3JM\n\tNg0esyHoAygn4LY1OJsRwU//4xXxk+iTNVRZ4ezJuhnrXKhvL9wKFhnoPvVQBd58qeWZ\n\tJSfqy5gCl6WQUMsH928XrfHXHnKrYfT65CgTBsnvX8QwNrLOekI0x841pbz0ciL8ZOfY\n\tZpo8FOBxTRSLkkwXTyoyvaVkoHPP5HBuIxhf7BlrqYmBkltAdDFvEkEtFxcCUoLq7isa\n\t8ROjBukDuy4JH/Nz2RUJqUS2Edbhgrxw4HC5Y61Sy+kwELyxplYulyIRFO/LKJW2UJYx\n\tx0hg==",
        "X-Gm-Message-State": "AHYfb5innVisl166arWjz2VVl08y/SsynvI+/NlKOZIhHFVGMpN4UM+l\n\tR1qFMTdUIPZoo3Jc",
        "X-Received": "by 10.223.150.77 with SMTP id c13mr5797538wra.85.1503682273065; \n\tFri, 25 Aug 2017 10:31:13 -0700 (PDT)",
        "From": "Pieter Jansen van Vuuren <pieter.jansenvanvuuren@netronome.com>",
        "To": "davem@davemloft.net",
        "Cc": "netdev@vger.kernel.org, oss-drivers@netronome.com,\n\tsimon.horman@netronome.com, jakub.kicinski@netronome.com,\n\tPieter Jansen van Vuuren <pieter.jansenvanvuuren@netronome.com>",
        "Subject": "[PATCH net 2/3] nfp: fix supported key layers calculation",
        "Date": "Fri, 25 Aug 2017 19:31:02 +0200",
        "Message-Id": "<1503682263-17858-3-git-send-email-pieter.jansenvanvuuren@netronome.com>",
        "X-Mailer": "git-send-email 1.9.1",
        "In-Reply-To": "<1503682263-17858-1-git-send-email-pieter.jansenvanvuuren@netronome.com>",
        "References": "<1503682263-17858-1-git-send-email-pieter.jansenvanvuuren@netronome.com>",
        "Sender": "netdev-owner@vger.kernel.org",
        "Precedence": "bulk",
        "List-ID": "<netdev.vger.kernel.org>",
        "X-Mailing-List": "netdev@vger.kernel.org"
    },
    "content": "Previously when calculating the supported key layers MPLS, IPv4/6\nTTL and TOS were not considered. This patch checks that the TTL and\nTOS fields are masked out before offloading. Additionally this patch\nchecks that MPLS packets are correctly handled, by not offloading them.\n\nFixes: af9d842c1354 (\"nfp: extend flower add flow offload\")\nSigned-off-by: Pieter Jansen van Vuuren <pieter.jansenvanvuuren@netronome.com>\nReviewed-by: Jakub Kicinski <jakub.kicinski@netronome.com>\nReviewed-by: Simon Horman <simon.horman@netronome.com>\n---\n drivers/net/ethernet/netronome/nfp/flower/offload.c | 19 +++++++++++++++++++\n 1 file changed, 19 insertions(+)",
    "diff": "diff --git a/drivers/net/ethernet/netronome/nfp/flower/offload.c b/drivers/net/ethernet/netronome/nfp/flower/offload.c\nindex 6c8ecc2..74a96d6 100644\n--- a/drivers/net/ethernet/netronome/nfp/flower/offload.c\n+++ b/drivers/net/ethernet/netronome/nfp/flower/offload.c\n@@ -107,6 +107,7 @@ nfp_flower_calculate_key_layers(struct nfp_fl_key_ls *ret_key_ls,\n {\n \tstruct flow_dissector_key_basic *mask_basic = NULL;\n \tstruct flow_dissector_key_basic *key_basic = NULL;\n+\tstruct flow_dissector_key_ip *mask_ip = NULL;\n \tu32 key_layer_two;\n \tu8 key_layer;\n \tint key_size;\n@@ -132,6 +133,11 @@ nfp_flower_calculate_key_layers(struct nfp_fl_key_ls *ret_key_ls,\n \t\t\t\t\t\t      flow->key);\n \t}\n \n+\tif (dissector_uses_key(flow->dissector, FLOW_DISSECTOR_KEY_IP))\n+\t\tmask_ip = skb_flow_dissector_target(flow->dissector,\n+\t\t\t\t\t\t    FLOW_DISSECTOR_KEY_IP,\n+\t\t\t\t\t\t    flow->mask);\n+\n \tkey_layer_two = 0;\n \tkey_layer = NFP_FLOWER_LAYER_PORT | NFP_FLOWER_LAYER_MAC;\n \tkey_size = sizeof(struct nfp_flower_meta_one) +\n@@ -142,11 +148,19 @@ nfp_flower_calculate_key_layers(struct nfp_fl_key_ls *ret_key_ls,\n \t\t/* Ethernet type is present in the key. */\n \t\tswitch (key_basic->n_proto) {\n \t\tcase cpu_to_be16(ETH_P_IP):\n+\t\t\tif (mask_ip && mask_ip->tos)\n+\t\t\t\treturn -EOPNOTSUPP;\n+\t\t\tif (mask_ip && mask_ip->ttl)\n+\t\t\t\treturn -EOPNOTSUPP;\n \t\t\tkey_layer |= NFP_FLOWER_LAYER_IPV4;\n \t\t\tkey_size += sizeof(struct nfp_flower_ipv4);\n \t\t\tbreak;\n \n \t\tcase cpu_to_be16(ETH_P_IPV6):\n+\t\t\tif (mask_ip && mask_ip->tos)\n+\t\t\t\treturn -EOPNOTSUPP;\n+\t\t\tif (mask_ip && mask_ip->ttl)\n+\t\t\t\treturn -EOPNOTSUPP;\n \t\t\tkey_layer |= NFP_FLOWER_LAYER_IPV6;\n \t\t\tkey_size += sizeof(struct nfp_flower_ipv6);\n \t\t\tbreak;\n@@ -157,6 +171,11 @@ nfp_flower_calculate_key_layers(struct nfp_fl_key_ls *ret_key_ls,\n \t\tcase cpu_to_be16(ETH_P_ARP):\n \t\t\treturn -EOPNOTSUPP;\n \n+\t\t/* Currently we do not offload MPLS. */\n+\t\tcase cpu_to_be16(ETH_P_MPLS_UC):\n+\t\tcase cpu_to_be16(ETH_P_MPLS_MC):\n+\t\t\treturn -EOPNOTSUPP;\n+\n \t\t/* Will be included in layer 2. */\n \t\tcase cpu_to_be16(ETH_P_8021Q):\n \t\t\tbreak;\n",
    "prefixes": [
        "net",
        "2/3"
    ]
}