get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 45234,
    "url": "https://patches.dpdk.org/api/patches/45234/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20180924194951.18650-9-yskoh@mellanox.com/",
    "project": {
        "id": 1,
        "url": "https://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": "<20180924194951.18650-9-yskoh@mellanox.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20180924194951.18650-9-yskoh@mellanox.com",
    "date": "2018-09-24T19:50:21",
    "name": "[v2,08/11] net/mlx5: add Direct Verbs translate actions",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "f80c31e1a2d0145ed9f6db1a5cc9834bab63e05f",
    "submitter": {
        "id": 636,
        "url": "https://patches.dpdk.org/api/people/636/?format=api",
        "name": "Yongseok Koh",
        "email": "yskoh@mellanox.com"
    },
    "delegate": {
        "id": 1,
        "url": "https://patches.dpdk.org/api/users/1/?format=api",
        "username": "tmonjalo",
        "first_name": "Thomas",
        "last_name": "Monjalon",
        "email": "thomas@monjalon.net"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20180924194951.18650-9-yskoh@mellanox.com/mbox/",
    "series": [
        {
            "id": 1473,
            "url": "https://patches.dpdk.org/api/series/1473/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=1473",
            "date": "2018-09-24T19:50:04",
            "name": "net/mlx5: add Direct Verbs flow driver support",
            "version": 2,
            "mbox": "https://patches.dpdk.org/series/1473/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/45234/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/45234/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 [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id C9AF81B156;\n\tMon, 24 Sep 2018 21:50:32 +0200 (CEST)",
            "from EUR01-HE1-obe.outbound.protection.outlook.com\n\t(mail-he1eur01on0066.outbound.protection.outlook.com [104.47.0.66])\n\tby dpdk.org (Postfix) with ESMTP id 48BB81B130\n\tfor <dev@dpdk.org>; Mon, 24 Sep 2018 21:50:23 +0200 (CEST)",
            "from DB3PR0502MB3980.eurprd05.prod.outlook.com (52.134.72.27) by\n\tDB3PR0502MB3963.eurprd05.prod.outlook.com (52.134.72.22) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n\t15.20.1164.20; Mon, 24 Sep 2018 19:50:21 +0000",
            "from DB3PR0502MB3980.eurprd05.prod.outlook.com\n\t([fe80::1cb0:661b:ecab:6045]) by\n\tDB3PR0502MB3980.eurprd05.prod.outlook.com\n\t([fe80::1cb0:661b:ecab:6045%2]) with mapi id 15.20.1164.017;\n\tMon, 24 Sep 2018 19:50:21 +0000"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com;\n\ts=selector1;\n\th=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n\tbh=KQIfoa7sdiYQmsaWUU8ULw6t0rbQp+0iEnPjRIODTdU=;\n\tb=rrAjkdMDczv1Q746HXSW6Q0rq+6MbhYhVnpK3NR4GKbeUyyqm1LmqbxN4y09WpMRmfvSdUZFj4U9cSerol2Ma80aYaDWf88ZUOVVmZ+i3WIWFvhkwD/q+5FPghAb6Qu51+HL3cFZMz8aliPmm3m3XydYobDhw0W+pTOMFZqaRAM=",
        "From": "Yongseok Koh <yskoh@mellanox.com>",
        "To": "Thomas Monjalon <thomas@monjalon.net>,\n\tShahaf Shuler <shahafs@mellanox.com>",
        "CC": "\"dev@dpdk.org\" <dev@dpdk.org>, Ori Kam <orika@mellanox.com>",
        "Thread-Topic": "[PATCH v2 08/11] net/mlx5: add Direct Verbs translate actions",
        "Thread-Index": "AQHUVD/TfoiTT3RQZ0Ggs+XXffnFgQ==",
        "Date": "Mon, 24 Sep 2018 19:50:21 +0000",
        "Message-ID": "<20180924194951.18650-9-yskoh@mellanox.com>",
        "References": "<20180919064814.21645-1-yskoh@mellanox.com>\n\t<20180924194951.18650-1-yskoh@mellanox.com>",
        "In-Reply-To": "<20180924194951.18650-1-yskoh@mellanox.com>",
        "Accept-Language": "en-US",
        "Content-Language": "en-US",
        "X-MS-Has-Attach": "",
        "X-MS-TNEF-Correlator": "",
        "x-clientproxiedby": "BN6PR2001CA0039.namprd20.prod.outlook.com\n\t(2603:10b6:405:16::25) To DB3PR0502MB3980.eurprd05.prod.outlook.com\n\t(2603:10a6:8:10::27)",
        "authentication-results": "spf=none (sender IP is )\n\tsmtp.mailfrom=yskoh@mellanox.com; ",
        "x-ms-exchange-messagesentrepresentingtype": "1",
        "x-originating-ip": "[209.116.155.178]",
        "x-ms-publictraffictype": "Email",
        "x-microsoft-exchange-diagnostics": "1; DB3PR0502MB3963;\n\t6:zRAMiKuPU0u3OB/V/ebdxhzjvWMCJCd22/oJtaftj/rw4GIq9DZMFe8c9LHBw2OGxCHCqMAvXR4SOFaSb9MVfzI208ehUEQHKeCruYzmW5a9VSRyi+7jlc7qO2G5+2ucv/+FHmcreM1MbPXFLKVJdgM5eZp7QuA4D56GEE1KXJr/WqDzluIx/ueDE4/fI315GJ42Vhj1xA9SGHBv0f2iFVbt3FWBMzFtQeVw2BqFn9imuo/RWbbcTewHRDDV2nYRubwDT+fXazoTa+JNVLtdjZLEtFuHnp+jfdFd/Lt7VSwn8/nyJL2rpNva/CiIBJlvUezWowCC7n7WuHbw3fRFCMlTD0hFHMe2xIvVrjwF+g0J2dg0O/CUCwsLz4YxTgdYugHnPTziwM0EyIrzcexwo/WyFlkxKIOhNLuO3ZVpx9OJTkQn+b/OWcIHOtFcxpSJ+O+s39cUYCFkgi1NcCXnEg==;\n\t5:pByUFXKMG2rR1XUjtdvp5thqAmuSXNAkI/2hfiQH2d60Pkj9DwFOpCppk5qhlstGsISQIsqYXEwLYyvDwJcoL9bzaXOxQ798NYejXt05j9NwtbWMSRqJK0iVzQ5SzQ2Lvf+v8t5GgGDNgoIGTcoz132AGfHtxVI6vq7lmUnXPg0=;\n\t7:B8OBXZHrlC4vJPbNBRztia+c2Ib5oIn6gj7S91OX/GNGtbDkZHr1CieHl7qgXcqSvR/AB5EaW+6D2FbuDWFmErFxdYQpPzEsPSEoPIdCKvfqgBNve/pMRiLkEh3uLRNra+svIe9nEQHLef+yNxlj4KO0RXBjoIkmc8ocJaSwoAZPqxg0eQoeIp4gSI5noLVa3csb9bgjT6aksr7H/JFkCKwCQSHZSa2MQ8lpujw741vufanRtQaUMXINNuEb0X4Z",
        "x-ms-office365-filtering-correlation-id": "a387e52b-58b6-4012-4d22-08d62256f5f8",
        "x-ms-office365-filtering-ht": "Tenant",
        "x-microsoft-antispam": "BCL:0; PCL:0;\n\tRULEID:(7020095)(4652040)(8989299)(4534165)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020);\n\tSRVR:DB3PR0502MB3963; ",
        "x-ms-traffictypediagnostic": "DB3PR0502MB3963:",
        "x-ld-processed": "a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr",
        "x-microsoft-antispam-prvs": "<DB3PR0502MB3963FE9FC8A25FE1D2D779ACC3170@DB3PR0502MB3963.eurprd05.prod.outlook.com>",
        "x-exchange-antispam-report-test": "UriScan:;",
        "x-ms-exchange-senderadcheck": "1",
        "x-exchange-antispam-report-cfa-test": "BCL:0; PCL:0;\n\tRULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(93006095)(93001095)(10201501046)(3231355)(944501410)(52105095)(3002001)(6055026)(149066)(150027)(6041310)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123564045)(20161123562045)(201708071742011)(7699051);\n\tSRVR:DB3PR0502MB3963; BCL:0; PCL:0; RULEID:; SRVR:DB3PR0502MB3963; ",
        "x-forefront-prvs": "0805EC9467",
        "x-forefront-antispam-report": "SFV:NSPM;\n\tSFS:(10009020)(1496009)(39860400002)(376002)(346002)(136003)(396003)(366004)(189003)(199004)(51234002)(71190400001)(71200400001)(2906002)(97736004)(6486002)(107886003)(105586002)(8676002)(81156014)(8936002)(6636002)(81166006)(106356001)(53936002)(6512007)(6436002)(68736007)(2900100001)(5660300001)(66066001)(52116002)(478600001)(5250100002)(316002)(76176011)(386003)(6506007)(1076002)(14454004)(6116002)(54906003)(110136005)(99286004)(3846002)(26005)(7736002)(256004)(476003)(446003)(36756003)(86362001)(102836004)(2616005)(305945005)(186003)(25786009)(486006)(11346002)(4326008);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:DB3PR0502MB3963;\n\tH:DB3PR0502MB3980.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; \n\tPTR:InfoNoRecords; MX:1; A:1; ",
        "received-spf": "None (protection.outlook.com: mellanox.com does not designate\n\tpermitted sender hosts)",
        "x-microsoft-antispam-message-info": "rHKCE0LkPh5coIgKJL0EhP6Wrpml3lL5k1Zf9r7B/eF3CF4Q1VNB/OcN8bAAaO5noplyGtAiUx65QxraQbHi/j3d8h265mWkm4AMl7FpO48Fx3OC3TWRaTxmIc9j0F1cLM/znPdFMPz9wTOFB5Ti3rbZ2Sbsqq17YwXaYtw1DnP0gHZPNlZ32utcz1cBV0qb3P4Q/aBSwM2S6814tx6L7lCCd/6yNBYz/O4MtEgPqAHEE64H2E8DkQugKdHTjUbJFjzv7qiCb+n/mMjOZKasf/7t8B5686qyImFMMjIs5X8KjeBi+x9KeltMZkvDOIr+fTwDxM7jhV0pE+d3usxHSJJCLZdLHniMXJpLxxT5VKU=",
        "spamdiagnosticoutput": "1:99",
        "spamdiagnosticmetadata": "NSPM",
        "Content-Type": "text/plain; charset=\"iso-8859-1\"",
        "Content-Transfer-Encoding": "quoted-printable",
        "MIME-Version": "1.0",
        "X-OriginatorOrg": "Mellanox.com",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "a387e52b-58b6-4012-4d22-08d62256f5f8",
        "X-MS-Exchange-CrossTenant-originalarrivaltime": "24 Sep 2018 19:50:21.3413\n\t(UTC)",
        "X-MS-Exchange-CrossTenant-fromentityheader": "Hosted",
        "X-MS-Exchange-CrossTenant-id": "a652971c-7d2e-4d9b-a6a4-d149256f461b",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "DB3PR0502MB3963",
        "Subject": "[dpdk-dev] [PATCH v2 08/11] net/mlx5: add Direct Verbs translate\n\tactions",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "From: Ori Kam <orika@mellanox.com>\n\nIn this commit we add the translation of flow actions.\nUnlike the Verbs API actions are separeted from the items and are passed\nto the API in array structure.\nSince the target action like RSS require the QP information those\nactions are handled both in the translate action and in the apply.\n\nSigned-off-by: Ori Kam <orika@mellanox.com>\nAcked-by: Yongseok Koh <yskoh@mellanox.com>\n---\n drivers/net/mlx5/mlx5_flow.h    |  7 +++++\n drivers/net/mlx5/mlx5_flow_dv.c | 61 +++++++++++++++++++++++++++++++++++++++++\n 2 files changed, 68 insertions(+)",
    "diff": "diff --git a/drivers/net/mlx5/mlx5_flow.h b/drivers/net/mlx5/mlx5_flow.h\nindex 7f0566fc9..ec860ef4b 100644\n--- a/drivers/net/mlx5/mlx5_flow.h\n+++ b/drivers/net/mlx5/mlx5_flow.h\n@@ -136,6 +136,8 @@ struct mlx5_flow_dv_match_params {\n \t/**< Matcher value. This value is used as the mask or as a key. */\n };\n \n+#define MLX5_DV_MAX_NUMBER_OF_ACTIONS 8\n+\n /* Matcher structure. */\n struct mlx5_flow_dv_matcher {\n \tstruct mlx5_cache cache; /**< Cache to struct mlx5dv_flow_matcher. */\n@@ -154,6 +156,11 @@ struct mlx5_flow_dv {\n \tstruct mlx5_flow_dv_match_params value;\n \t/**< Holds the value that the packet is compared to. */\n \tstruct ibv_flow *flow; /**< Installed flow. */\n+#ifdef HAVE_IBV_FLOW_DV_SUPPORT\n+\tstruct mlx5dv_flow_action_attr actions[MLX5_DV_MAX_NUMBER_OF_ACTIONS];\n+\t/**< Action list. */\n+#endif\n+\tint actions_n; /**< number of actions. */\n };\n \n /* Verbs specification header. */\ndiff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c\nindex acb1b7549..916989988 100644\n--- a/drivers/net/mlx5/mlx5_flow_dv.c\n+++ b/drivers/net/mlx5/mlx5_flow_dv.c\n@@ -942,6 +942,65 @@ flow_dv_create_item(void *matcher, void *key,\n \t}\n }\n \n+/**\n+ * Store the requested actions in an array.\n+ *\n+ * @param[in] action\n+ *   Flow action to translate.\n+ * @param[in, out] dev_flow\n+ *   Pointer to the mlx5_flow.\n+ */\n+static void\n+flow_dv_create_action(const struct rte_flow_action *action,\n+\t\t      struct mlx5_flow *dev_flow)\n+{\n+\tconst struct rte_flow_action_queue *queue;\n+\tconst struct rte_flow_action_rss *rss;\n+\tint actions_n = dev_flow->dv.actions_n;\n+\tstruct rte_flow *flow = dev_flow->flow;\n+\n+\tswitch (action->type) {\n+\tcase RTE_FLOW_ACTION_TYPE_VOID:\n+\t\tbreak;\n+\tcase RTE_FLOW_ACTION_TYPE_FLAG:\n+\t\tdev_flow->dv.actions[actions_n].type = MLX5DV_FLOW_ACTION_TAG;\n+\t\tdev_flow->dv.actions[actions_n].tag_value =\n+\t\t\tMLX5_FLOW_MARK_DEFAULT;\n+\t\tactions_n++;\n+\t\tbreak;\n+\tcase RTE_FLOW_ACTION_TYPE_MARK:\n+\t\tdev_flow->dv.actions[actions_n].type = MLX5DV_FLOW_ACTION_TAG;\n+\t\tdev_flow->dv.actions[actions_n].tag_value =\n+\t\t\t((const struct rte_flow_action_mark *)\n+\t\t\t (action->conf))->id;\n+\t\tactions_n++;\n+\t\tbreak;\n+\tcase RTE_FLOW_ACTION_TYPE_DROP:\n+\t\tdev_flow->dv.actions[actions_n].type = MLX5DV_FLOW_ACTION_DROP;\n+\t\tflow->actions |= MLX5_ACTION_DROP;\n+\t\tbreak;\n+\tcase RTE_FLOW_ACTION_TYPE_QUEUE:\n+\t\tqueue = action->conf;\n+\t\tflow->rss.queue_num = 1;\n+\t\t(*flow->queue)[0] = queue->index;\n+\t\tbreak;\n+\tcase RTE_FLOW_ACTION_TYPE_RSS:\n+\t\trss = action->conf;\n+\t\tif (flow->queue)\n+\t\t\tmemcpy((*flow->queue), rss->queue,\n+\t\t\t       rss->queue_num * sizeof(uint16_t));\n+\t\tflow->rss.queue_num = rss->queue_num;\n+\t\tmemcpy(flow->key, rss->key, MLX5_RSS_HASH_KEY_LEN);\n+\t\tflow->rss.types = rss->types;\n+\t\tflow->rss.level = rss->level;\n+\t\t/* Added to array only in apply since we need the QP */\n+\t\tbreak;\n+\tdefault:\n+\t\tbreak;\n+\t}\n+\tdev_flow->dv.actions_n = actions_n;\n+}\n+\n static uint32_t matcher_zero[MLX5_ST_SZ_DW(fte_match_param)] = { 0 };\n \n #define HEADER_IS_ZERO(match_criteria, headers)\t\t\t\t     \\\n@@ -1103,6 +1162,8 @@ flow_dv_translate(struct rte_eth_dev *dev,\n \tmatcher.egress = attr->egress;\n \tif (flow_dv_matcher_register(dev, &matcher, dev_flow, error))\n \t\treturn -rte_errno;\n+\tfor (; actions->type != RTE_FLOW_ACTION_TYPE_END; actions++)\n+\t\tflow_dv_create_action(actions, dev_flow);\n \treturn 0;\n }\n \n",
    "prefixes": [
        "v2",
        "08/11"
    ]
}