get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 18609,
    "url": "http://patches.dpdk.org/api/patches/18609/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/1f97806aaedd239cd4a949abf2ccd1dedd95d3b8.1482920437.git.nelio.laranjeiro@6wind.com/",
    "project": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<1f97806aaedd239cd4a949abf2ccd1dedd95d3b8.1482920437.git.nelio.laranjeiro@6wind.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1f97806aaedd239cd4a949abf2ccd1dedd95d3b8.1482920437.git.nelio.laranjeiro@6wind.com",
    "date": "2016-12-28T10:37:19",
    "name": "[dpdk-dev,v4,6/6] net/mlx5: extend IPv4 flow item",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "cc75df889069cd08d8564e8ecc291fb20340be7c",
    "submitter": {
        "id": 243,
        "url": "http://patches.dpdk.org/api/people/243/?format=api",
        "name": "Nélio Laranjeiro",
        "email": "nelio.laranjeiro@6wind.com"
    },
    "delegate": {
        "id": 319,
        "url": "http://patches.dpdk.org/api/users/319/?format=api",
        "username": "fyigit",
        "first_name": "Ferruh",
        "last_name": "Yigit",
        "email": "ferruh.yigit@amd.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/1f97806aaedd239cd4a949abf2ccd1dedd95d3b8.1482920437.git.nelio.laranjeiro@6wind.com/mbox/",
    "series": [],
    "comments": "http://patches.dpdk.org/api/patches/18609/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/18609/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@dpdk.org",
        "Delivered-To": "patchwork@dpdk.org",
        "Received": [
            "from [92.243.14.124] (localhost [IPv6:::1])\n\tby dpdk.org (Postfix) with ESMTP id A261CF6D2;\n\tWed, 28 Dec 2016 11:38:28 +0100 (CET)",
            "from mail-wm0-f53.google.com (mail-wm0-f53.google.com\n\t[74.125.82.53]) by dpdk.org (Postfix) with ESMTP id 461685320\n\tfor <dev@dpdk.org>; Wed, 28 Dec 2016 11:37:41 +0100 (CET)",
            "by mail-wm0-f53.google.com with SMTP id k184so110325980wme.1\n\tfor <dev@dpdk.org>; Wed, 28 Dec 2016 02:37:41 -0800 (PST)",
            "from ping.vm.6wind.com (guy78-3-82-239-227-177.fbx.proxad.net.\n\t[82.239.227.177]) by smtp.gmail.com with ESMTPSA id\n\tkq6sm30022703wjc.7.2016.12.28.02.37.40\n\t(version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);\n\tWed, 28 Dec 2016 02:37:40 -0800 (PST)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=6wind-com.20150623.gappssmtp.com; s=20150623;\n\th=from:to:cc:subject:date:message-id:in-reply-to:references\n\t:in-reply-to:references;\n\tbh=BlmnFHb4t1oBOk6rhxvbzIFYaNdR2iSNcsPgdYU9hQ4=;\n\tb=QwyeEec0ja316tPjEknH8WVshicu1WSauSEouN6aEWNi8/40xMGY9EUVC6EJ4gTY/v\n\tZF1A/fg1LH1r04zdqMBHJncmQAh+oVGwvhG8pAs2HceyeF7528RmkvnllUe86zfrlRC1\n\tYvdylKl5aPcRMS3/YqlKOe+yCtgepE4UqUdKjVeeBz/2gAKlqiiWnM4z4cxr0hvbEla6\n\tAKFXr8C4vMbEgx1IiO0DyzAbO+oTA5ts+c/2OPKAEw8cx5nGFQDnqJhQnjsOSVpSnvMD\n\t1SkSNryOiTRe0Gra85i5F2LJ+p3qCAFR6/lkaMM3jRcwWMyQj2Z0pR9ehFa3uyrfVjs8\n\t5KgQ==",
        "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:in-reply-to:references;\n\tbh=BlmnFHb4t1oBOk6rhxvbzIFYaNdR2iSNcsPgdYU9hQ4=;\n\tb=ejLQymnJLQqJB4fCj0Lm3PuiyEmv95RiCqUxmR6UuukUw2DK6pueE7kqx1rWzqGpy7\n\th0kSYtFG7SnG8z3VaTQ46CXP1by/1+vJYTvLjtlOBqfajbcNM788QbRQMMfdQfZmoPvu\n\tEcgRSYIf33zJrJG6h9qlPznNeFUP/gy2uSVtQyEbyAxGGeepOnpCJN1wV/RaMEQHSAqx\n\tXWAcF6hwxtX9TxrJ33J1brslZlymuR4aLQSG1o8V4a39antpiiePYiSQgfHq7NtZnS90\n\tkf8oUeOUO6s90kEHH5kQxy3EjRSQfKwqWMNW24lyTuzm3/ravpP4qV/P+jHJTIkYQV4G\n\tmjDw==",
        "X-Gm-Message-State": "AIkVDXIEXDLKtPDQ2zL5UnB9F+cXAlBUXICEpTppyJJMfr0ZfswfNO6O8oBwwE7t467wTYTB",
        "X-Received": "by 10.28.131.72 with SMTP id f69mr30613568wmd.135.1482921460998; \n\tWed, 28 Dec 2016 02:37:40 -0800 (PST)",
        "From": "Nelio Laranjeiro <nelio.laranjeiro@6wind.com>",
        "To": "dev@dpdk.org",
        "Cc": "Adrien Mazarguil <adrien.mazarguil@6wind.com>",
        "Date": "Wed, 28 Dec 2016 11:37:19 +0100",
        "Message-Id": "<1f97806aaedd239cd4a949abf2ccd1dedd95d3b8.1482920437.git.nelio.laranjeiro@6wind.com>",
        "X-Mailer": "git-send-email 2.1.4",
        "In-Reply-To": [
            "<cover.1482920437.git.nelio.laranjeiro@6wind.com>",
            "<cover.1482920437.git.nelio.laranjeiro@6wind.com>"
        ],
        "References": [
            "<cover.1482920437.git.nelio.laranjeiro@6wind.com>",
            "<cover.1482331954.git.nelio.laranjeiro@6wind.com>\n\t<cover.1482920437.git.nelio.laranjeiro@6wind.com>"
        ],
        "Subject": "[dpdk-dev] [PATCH v4 6/6] net/mlx5: extend IPv4 flow item",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<http://dpdk.org/ml/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://dpdk.org/ml/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<http://dpdk.org/ml/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "This commits adds:\n- Type of service\n- Next protocol ID\n\nSigned-off-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>\nAcked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>\n---\n drivers/net/mlx5/mlx5_flow.c | 22 +++++++++++++++-------\n 1 file changed, 15 insertions(+), 7 deletions(-)",
    "diff": "diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c\nindex 01f7a77..77021b5 100644\n--- a/drivers/net/mlx5/mlx5_flow.c\n+++ b/drivers/net/mlx5/mlx5_flow.c\n@@ -172,11 +172,13 @@ static const struct mlx5_flow_items mlx5_flow_items[] = {\n \t\t\t.hdr = {\n \t\t\t\t.src_addr = -1,\n \t\t\t\t.dst_addr = -1,\n+\t\t\t\t.type_of_service = -1,\n+\t\t\t\t.next_proto_id = -1,\n \t\t\t},\n \t\t},\n \t\t.mask_sz = sizeof(struct rte_flow_item_ipv4),\n \t\t.convert = mlx5_flow_create_ipv4,\n-\t\t.dst_sz = sizeof(struct ibv_exp_flow_spec_ipv4),\n+\t\t.dst_sz = sizeof(struct ibv_exp_flow_spec_ipv4_ext),\n \t},\n \t[RTE_FLOW_ITEM_TYPE_IPV6] = {\n \t\t.items = ITEMS(RTE_FLOW_ITEM_TYPE_UDP,\n@@ -574,29 +576,35 @@ mlx5_flow_create_ipv4(const struct rte_flow_item *item, void *data)\n \tconst struct rte_flow_item_ipv4 *spec = item->spec;\n \tconst struct rte_flow_item_ipv4 *mask = item->mask;\n \tstruct mlx5_flow *flow = (struct mlx5_flow *)data;\n-\tstruct ibv_exp_flow_spec_ipv4 *ipv4;\n-\tunsigned int ipv4_size = sizeof(struct ibv_exp_flow_spec_ipv4);\n+\tstruct ibv_exp_flow_spec_ipv4_ext *ipv4;\n+\tunsigned int ipv4_size = sizeof(struct ibv_exp_flow_spec_ipv4_ext);\n \n \tipv4 = (void *)((uintptr_t)flow->ibv_attr + flow->offset);\n-\t*ipv4 = (struct ibv_exp_flow_spec_ipv4) {\n-\t\t.type = flow->inner | IBV_EXP_FLOW_SPEC_IPV4,\n+\t*ipv4 = (struct ibv_exp_flow_spec_ipv4_ext) {\n+\t\t.type = flow->inner | IBV_EXP_FLOW_SPEC_IPV4_EXT,\n \t\t.size = ipv4_size,\n \t};\n \tif (spec) {\n-\t\tipv4->val = (struct ibv_exp_flow_ipv4_filter){\n+\t\tipv4->val = (struct ibv_exp_flow_ipv4_ext_filter){\n \t\t\t.src_ip = spec->hdr.src_addr,\n \t\t\t.dst_ip = spec->hdr.dst_addr,\n+\t\t\t.proto = spec->hdr.next_proto_id,\n+\t\t\t.tos = spec->hdr.type_of_service,\n \t\t};\n \t}\n \tif (mask) {\n-\t\tipv4->mask = (struct ibv_exp_flow_ipv4_filter){\n+\t\tipv4->mask = (struct ibv_exp_flow_ipv4_ext_filter){\n \t\t\t.src_ip = mask->hdr.src_addr,\n \t\t\t.dst_ip = mask->hdr.dst_addr,\n+\t\t\t.proto = mask->hdr.next_proto_id,\n+\t\t\t.tos = mask->hdr.type_of_service,\n \t\t};\n \t}\n \t/* Remove unwanted bits from values. */\n \tipv4->val.src_ip &= ipv4->mask.src_ip;\n \tipv4->val.dst_ip &= ipv4->mask.dst_ip;\n+\tipv4->val.proto &= ipv4->mask.proto;\n+\tipv4->val.tos &= ipv4->mask.tos;\n \t++flow->ibv_attr->num_of_specs;\n \tflow->ibv_attr->priority = 1;\n \treturn 0;\n",
    "prefixes": [
        "dpdk-dev",
        "v4",
        "6/6"
    ]
}