get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 47778,
    "url": "http://patches.dpdk.org/api/patches/47778/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/1541225876-8817-6-git-send-email-viacheslavo@mellanox.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": "<1541225876-8817-6-git-send-email-viacheslavo@mellanox.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1541225876-8817-6-git-send-email-viacheslavo@mellanox.com",
    "date": "2018-11-03T06:18:38",
    "name": "[v5,05/13] net/mlx5: swap items/actions validations for E-Switch rules",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "9f311a004c07acfb34d56802a3467716e8ddbed3",
    "submitter": {
        "id": 1102,
        "url": "http://patches.dpdk.org/api/people/1102/?format=api",
        "name": "Slava Ovsiienko",
        "email": "viacheslavo@mellanox.com"
    },
    "delegate": {
        "id": 6624,
        "url": "http://patches.dpdk.org/api/users/6624/?format=api",
        "username": "shahafs",
        "first_name": "Shahaf",
        "last_name": "Shuler",
        "email": "shahafs@mellanox.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/1541225876-8817-6-git-send-email-viacheslavo@mellanox.com/mbox/",
    "series": [
        {
            "id": 2236,
            "url": "http://patches.dpdk.org/api/series/2236/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=2236",
            "date": "2018-11-03T06:18:34",
            "name": "net/mlx5: e-switch VXLAN encap/decap hardware offload",
            "version": 5,
            "mbox": "http://patches.dpdk.org/series/2236/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/47778/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/47778/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 8A8CC5F16;\n\tSat,  3 Nov 2018 07:18:47 +0100 (CET)",
            "from EUR03-DB5-obe.outbound.protection.outlook.com\n\t(mail-eopbgr40041.outbound.protection.outlook.com [40.107.4.41])\n\tby dpdk.org (Postfix) with ESMTP id 66B0058CB\n\tfor <dev@dpdk.org>; Sat,  3 Nov 2018 07:18:40 +0100 (CET)",
            "from AM4PR05MB3265.eurprd05.prod.outlook.com (10.171.186.150) by\n\tAM4PR05MB1620.eurprd05.prod.outlook.com (10.165.245.139) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n\t15.20.1250.30; Sat, 3 Nov 2018 06:18:38 +0000",
            "from AM4PR05MB3265.eurprd05.prod.outlook.com\n\t([fe80::544b:a68d:e6a5:ba6e]) by\n\tAM4PR05MB3265.eurprd05.prod.outlook.com\n\t([fe80::544b:a68d:e6a5:ba6e%2]) with mapi id 15.20.1294.027;\n\tSat, 3 Nov 2018 06:18:38 +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=NX6qaSpbL8+onSLMJm9zo1b94zfoxLHP0+xiqNGTSJE=;\n\tb=US+MPNO8LQ9m4Jfnf2YcaJMG97O7zZjnhsEcca79MuF3Osid+QOwM4QlAmYSgAuLMsSYKlSlIAotIGXdjgph9Zz7lCwcP1rFypTp7cc6ZnsMeS+oVawL5kYaPtcCa99VO/xpT7JRw0BUx2E/JYhRS4NNL3nN99jYCNycbZ7Qth8=",
        "From": "Slava Ovsiienko <viacheslavo@mellanox.com>",
        "To": "Shahaf Shuler <shahafs@mellanox.com>",
        "CC": "\"dev@dpdk.org\" <dev@dpdk.org>, Yongseok Koh <yskoh@mellanox.com>, Slava\n\tOvsiienko <viacheslavo@mellanox.com>",
        "Thread-Topic": "[PATCH v5 05/13] net/mlx5: swap items/actions validations for\n\tE-Switch rules",
        "Thread-Index": "AQHUcz0PdBTv49jGpEmD3k9+gU9gOg==",
        "Date": "Sat, 3 Nov 2018 06:18:38 +0000",
        "Message-ID": "<1541225876-8817-6-git-send-email-viacheslavo@mellanox.com>",
        "References": "<1541181152-15788-2-git-send-email-viacheslavo@mellanox.com>\n\t<1541225876-8817-1-git-send-email-viacheslavo@mellanox.com>",
        "In-Reply-To": "<1541225876-8817-1-git-send-email-viacheslavo@mellanox.com>",
        "Accept-Language": "en-US",
        "Content-Language": "en-US",
        "X-MS-Has-Attach": "",
        "X-MS-TNEF-Correlator": "",
        "x-clientproxiedby": "CWLP123CA0088.GBRP123.PROD.OUTLOOK.COM\n\t(2603:10a6:401:5b::28) To AM4PR05MB3265.eurprd05.prod.outlook.com\n\t(2603:10a6:205:4::22)",
        "authentication-results": "spf=none (sender IP is )\n\tsmtp.mailfrom=viacheslavo@mellanox.com; ",
        "x-ms-exchange-messagesentrepresentingtype": "1",
        "x-originating-ip": "[37.142.13.130]",
        "x-ms-publictraffictype": "Email",
        "x-microsoft-exchange-diagnostics": "1; AM4PR05MB1620;\n\t6:TjhkwZnbh+ijcNSmSV8xxGKd7QtQG+OONjHVInTlFM1Z45qlTdZhk21/i8sqf6cXbuM8pWNH1D6XP/snpGKAh+ggT6TQwS8h6+unQwV0saCMVFVXnFen4dwhkwcaZ5Tg5SKwL/ZQ3aF8yuF2EIPOZQ3m8xXF8yyEJbubHBYFkWhITFV/rw7A2VDLzBv9kif61vBRo6MXHOAVZmacX5qnEVGcITvAYnzcNLIfB9dtbI+LkwIODxnZYMoeieX73XGrLnT+mdOTSjKTwALfLEELTic1HuY5ZX3PpiG2RpcRrbAmglvRMnaGXfE7QbC2F3hOzXRaEcPwxoKO7JDShwjF1gcZmJgFYvDrq4V83jUa7IHyiqAKbvoB6ZaEZHtjZAzro8AW5KGW99d2qzrS9NGQYEpX2Cp4qDYjvWjXBPYMH/qgbJ6KOiXf/SIRIhqvgqjndR6cgG3wN+CT9u77ElApow==;\n\t5:7P8gh5wsLHkiFMAqx91aRZ5vyYpZ3QzY919LlN3xTwDksvxACxgjAjo1VZb93AFVmd1QB+wfA8yMAvC0buf+qCAfcWYD5VHLMNaZv7yl1avvAc67yIP//aI8riyzA7qI0kFm8aqRlHtL4mer5BneYwPM/tFYPSfkeDrr+d1EbPM=;\n\t7:X8mULe34eIXOP5kw7eZik0EEjdCZ49piwizzIL6s0s9wdFRdxJhlGt1n5YdCH7+yVcJLgQ9uYwPGUMYBJ6pVC3P8FkBApZoIGztOZQNbSx3QTYwITS8WWKBPXdm5FD89mFoo0VFmbjfQuzqcDUD9NjZzMmCph7SX6sgxBSot3Ar3uy3Rrk8SVNH0DmZozjLKTE/K67T1xStWI/hem9ANwbmszntdQbTx2yiiHC96pZOIHb4xsk/EPWRTE/SPvvuE",
        "x-ms-office365-filtering-correlation-id": "04eee98b-4c33-4bfd-76ea-08d6415431a9",
        "x-ms-office365-filtering-ht": "Tenant",
        "x-microsoft-antispam": "BCL:0; PCL:0;\n\tRULEID:(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020);\n\tSRVR:AM4PR05MB1620; ",
        "x-ms-traffictypediagnostic": "AM4PR05MB1620:",
        "x-microsoft-antispam-prvs": "<AM4PR05MB16207FD9373B646722C5961CD2C80@AM4PR05MB1620.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)(5005006)(8121501046)(93006095)(93001095)(3231382)(944501410)(52105095)(10201501046)(3002001)(6055026)(148016)(149066)(150057)(6041310)(20161123558120)(20161123560045)(20161123562045)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(201708071742011)(7699051)(76991095);\n\tSRVR:AM4PR05MB1620; BCL:0; PCL:0; RULEID:; SRVR:AM4PR05MB1620; ",
        "x-forefront-prvs": "08457955C4",
        "x-forefront-antispam-report": "SFV:NSPM;\n\tSFS:(10009020)(396003)(39860400002)(366004)(346002)(376002)(136003)(199004)(189003)(6636002)(14444005)(52116002)(36756003)(486006)(102836004)(386003)(6506007)(6116002)(2906002)(86362001)(25786009)(2900100001)(476003)(71190400001)(106356001)(26005)(305945005)(2616005)(76176011)(3846002)(256004)(53936002)(66066001)(4326008)(107886003)(11346002)(14454004)(105586002)(6436002)(8936002)(446003)(81166006)(97736004)(6512007)(8676002)(316002)(54906003)(6486002)(186003)(68736007)(7736002)(5660300001)(6862004)(71200400001)(37006003)(478600001)(81156014)(99286004);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:AM4PR05MB1620;\n\tH:AM4PR05MB3265.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en;\n\tPTR:InfoNoRecords; A:1; MX:1; ",
        "received-spf": "None (protection.outlook.com: mellanox.com does not designate\n\tpermitted sender hosts)",
        "x-microsoft-antispam-message-info": "jkR9lAnyP0HfKVEWujoqE/FRAVCd2/RWE3z1BCbtB+fJ/u8afWt26HjTYWYbKJC2DBSnIqQQkLFtGLPiVdYHOkQYOD/q7+X8XC732aTZFFG51KVC7SNy6rUojoniK7226UdFbvZFwIRRQ7qYA1B7pCBwc4AvXgYpTju4AYfXLTxkUJAiXyLzF2F0oyn0bZ/cfTVbMHBo84uTGN1vGJ5HP3Cq6t6ivEpbbjUd1eFsRzqYvuCYo0q2D41e6FcjrIUfQ3l/qGGcLWXwpKorEtpAuWXS4dq7E421qw9ApKyJFfdEiqmwod8DE8FtrI1R+FbaxoN0WpjWTxH5LIwzjltVarBeQTIdinYDDYJ4y+A8FP4=",
        "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": "04eee98b-4c33-4bfd-76ea-08d6415431a9",
        "X-MS-Exchange-CrossTenant-originalarrivaltime": "03 Nov 2018 06:18:38.7683\n\t(UTC)",
        "X-MS-Exchange-CrossTenant-fromentityheader": "Hosted",
        "X-MS-Exchange-CrossTenant-id": "a652971c-7d2e-4d9b-a6a4-d149256f461b",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "AM4PR05MB1620",
        "Subject": "[dpdk-dev] [PATCH v5 05/13] net/mlx5: swap items/actions\n\tvalidations for E-Switch rules",
        "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": "The rule validation function for E-Switch checks item list first,\nthen action list is checked. This patch swaps the validation order,\nnow actions are checked first. This is preparation for validation\nfunction update with VXLAN tunnel actions. VXLAN decapsulation\naction requires to check the items in special way. We could do\nthis special check in the single item check pass if the action\nflags were gathered before. This is the reason to swap the\nitem/actions checking loops.\n\nSuggested-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>\nSigned-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>\nAcked-by: Yongseok Koh <yskoh@mellanox.com>\n---\n drivers/net/mlx5/mlx5_flow_tcf.c | 261 ++++++++++++++++++++-------------------\n 1 file changed, 131 insertions(+), 130 deletions(-)",
    "diff": "diff --git a/drivers/net/mlx5/mlx5_flow_tcf.c b/drivers/net/mlx5/mlx5_flow_tcf.c\nindex 55c77e3..93a13fc 100644\n--- a/drivers/net/mlx5/mlx5_flow_tcf.c\n+++ b/drivers/net/mlx5/mlx5_flow_tcf.c\n@@ -1174,6 +1174,137 @@ struct pedit_parser {\n \tret = flow_tcf_validate_attributes(attr, error);\n \tif (ret < 0)\n \t\treturn ret;\n+\tfor (; actions->type != RTE_FLOW_ACTION_TYPE_END; actions++) {\n+\t\tunsigned int i;\n+\t\tuint64_t current_action_flag = 0;\n+\n+\t\tswitch (actions->type) {\n+\t\tcase RTE_FLOW_ACTION_TYPE_VOID:\n+\t\t\tbreak;\n+\t\tcase RTE_FLOW_ACTION_TYPE_PORT_ID:\n+\t\t\tcurrent_action_flag = MLX5_FLOW_ACTION_PORT_ID;\n+\t\t\tif (!actions->conf)\n+\t\t\t\tbreak;\n+\t\t\tconf.port_id = actions->conf;\n+\t\t\tif (conf.port_id->original)\n+\t\t\t\ti = 0;\n+\t\t\telse\n+\t\t\t\tfor (i = 0; ptoi[i].ifindex; ++i)\n+\t\t\t\t\tif (ptoi[i].port_id == conf.port_id->id)\n+\t\t\t\t\t\tbreak;\n+\t\t\tif (!ptoi[i].ifindex)\n+\t\t\t\treturn rte_flow_error_set\n+\t\t\t\t\t(error, ENODEV,\n+\t\t\t\t\t RTE_FLOW_ERROR_TYPE_ACTION_CONF,\n+\t\t\t\t\t conf.port_id,\n+\t\t\t\t\t \"missing data to convert port ID to\"\n+\t\t\t\t\t \" ifindex\");\n+\t\t\tport_id_dev = &rte_eth_devices[conf.port_id->id];\n+\t\t\tbreak;\n+\t\tcase RTE_FLOW_ACTION_TYPE_JUMP:\n+\t\t\tcurrent_action_flag = MLX5_FLOW_ACTION_JUMP;\n+\t\t\tif (!actions->conf)\n+\t\t\t\tbreak;\n+\t\t\tconf.jump = actions->conf;\n+\t\t\tif (attr->group >= conf.jump->group)\n+\t\t\t\treturn rte_flow_error_set\n+\t\t\t\t\t(error, ENOTSUP,\n+\t\t\t\t\t RTE_FLOW_ERROR_TYPE_ACTION,\n+\t\t\t\t\t actions,\n+\t\t\t\t\t \"can jump only to a group forward\");\n+\t\t\tbreak;\n+\t\tcase RTE_FLOW_ACTION_TYPE_DROP:\n+\t\t\tcurrent_action_flag = MLX5_FLOW_ACTION_DROP;\n+\t\t\tbreak;\n+\t\tcase RTE_FLOW_ACTION_TYPE_COUNT:\n+\t\t\tbreak;\n+\t\tcase RTE_FLOW_ACTION_TYPE_OF_POP_VLAN:\n+\t\t\tcurrent_action_flag = MLX5_FLOW_ACTION_OF_POP_VLAN;\n+\t\t\tbreak;\n+\t\tcase RTE_FLOW_ACTION_TYPE_OF_PUSH_VLAN:\n+\t\t\tcurrent_action_flag = MLX5_FLOW_ACTION_OF_PUSH_VLAN;\n+\t\t\tbreak;\n+\t\tcase RTE_FLOW_ACTION_TYPE_OF_SET_VLAN_VID:\n+\t\t\tif (!(action_flags & MLX5_FLOW_ACTION_OF_PUSH_VLAN))\n+\t\t\t\treturn rte_flow_error_set\n+\t\t\t\t\t(error, ENOTSUP,\n+\t\t\t\t\t RTE_FLOW_ERROR_TYPE_ACTION, actions,\n+\t\t\t\t\t \"vlan modify is not supported,\"\n+\t\t\t\t\t \" set action must follow push action\");\n+\t\t\tcurrent_action_flag = MLX5_FLOW_ACTION_OF_SET_VLAN_VID;\n+\t\t\tbreak;\n+\t\tcase RTE_FLOW_ACTION_TYPE_OF_SET_VLAN_PCP:\n+\t\t\tif (!(action_flags & MLX5_FLOW_ACTION_OF_PUSH_VLAN))\n+\t\t\t\treturn rte_flow_error_set\n+\t\t\t\t\t(error, ENOTSUP,\n+\t\t\t\t\t RTE_FLOW_ERROR_TYPE_ACTION, actions,\n+\t\t\t\t\t \"vlan modify is not supported,\"\n+\t\t\t\t\t \" set action must follow push action\");\n+\t\t\tcurrent_action_flag = MLX5_FLOW_ACTION_OF_SET_VLAN_PCP;\n+\t\t\tbreak;\n+\t\tcase RTE_FLOW_ACTION_TYPE_SET_IPV4_SRC:\n+\t\t\tcurrent_action_flag = MLX5_FLOW_ACTION_SET_IPV4_SRC;\n+\t\t\tbreak;\n+\t\tcase RTE_FLOW_ACTION_TYPE_SET_IPV4_DST:\n+\t\t\tcurrent_action_flag = MLX5_FLOW_ACTION_SET_IPV4_DST;\n+\t\t\tbreak;\n+\t\tcase RTE_FLOW_ACTION_TYPE_SET_IPV6_SRC:\n+\t\t\tcurrent_action_flag = MLX5_FLOW_ACTION_SET_IPV6_SRC;\n+\t\t\tbreak;\n+\t\tcase RTE_FLOW_ACTION_TYPE_SET_IPV6_DST:\n+\t\t\tcurrent_action_flag = MLX5_FLOW_ACTION_SET_IPV6_DST;\n+\t\t\tbreak;\n+\t\tcase RTE_FLOW_ACTION_TYPE_SET_TP_SRC:\n+\t\t\tcurrent_action_flag = MLX5_FLOW_ACTION_SET_TP_SRC;\n+\t\t\tbreak;\n+\t\tcase RTE_FLOW_ACTION_TYPE_SET_TP_DST:\n+\t\t\tcurrent_action_flag = MLX5_FLOW_ACTION_SET_TP_DST;\n+\t\t\tbreak;\n+\t\tcase RTE_FLOW_ACTION_TYPE_SET_TTL:\n+\t\t\tcurrent_action_flag = MLX5_FLOW_ACTION_SET_TTL;\n+\t\t\tbreak;\n+\t\tcase RTE_FLOW_ACTION_TYPE_DEC_TTL:\n+\t\t\tcurrent_action_flag = MLX5_FLOW_ACTION_DEC_TTL;\n+\t\t\tbreak;\n+\t\tcase RTE_FLOW_ACTION_TYPE_SET_MAC_SRC:\n+\t\t\tcurrent_action_flag = MLX5_FLOW_ACTION_SET_MAC_SRC;\n+\t\t\tbreak;\n+\t\tcase RTE_FLOW_ACTION_TYPE_SET_MAC_DST:\n+\t\t\tcurrent_action_flag = MLX5_FLOW_ACTION_SET_MAC_DST;\n+\t\t\tbreak;\n+\t\tdefault:\n+\t\t\treturn rte_flow_error_set(error, ENOTSUP,\n+\t\t\t\t\t\t  RTE_FLOW_ERROR_TYPE_ACTION,\n+\t\t\t\t\t\t  actions,\n+\t\t\t\t\t\t  \"action not supported\");\n+\t\t}\n+\t\tif (current_action_flag & MLX5_TCF_CONFIG_ACTIONS) {\n+\t\t\tif (!actions->conf)\n+\t\t\t\treturn rte_flow_error_set\n+\t\t\t\t\t(error, EINVAL,\n+\t\t\t\t\t RTE_FLOW_ERROR_TYPE_ACTION_CONF,\n+\t\t\t\t\t actions,\n+\t\t\t\t\t \"action configuration not set\");\n+\t\t}\n+\t\tif ((current_action_flag & MLX5_TCF_PEDIT_ACTIONS) &&\n+\t\t    pedit_validated)\n+\t\t\treturn rte_flow_error_set(error, ENOTSUP,\n+\t\t\t\t\t\t  RTE_FLOW_ERROR_TYPE_ACTION,\n+\t\t\t\t\t\t  actions,\n+\t\t\t\t\t\t  \"set actions should be \"\n+\t\t\t\t\t\t  \"listed successively\");\n+\t\tif ((current_action_flag & ~MLX5_TCF_PEDIT_ACTIONS) &&\n+\t\t    (action_flags & MLX5_TCF_PEDIT_ACTIONS))\n+\t\t\tpedit_validated = 1;\n+\t\tif ((current_action_flag & MLX5_TCF_FATE_ACTIONS) &&\n+\t\t    (action_flags & MLX5_TCF_FATE_ACTIONS))\n+\t\t\treturn rte_flow_error_set(error, EINVAL,\n+\t\t\t\t\t\t  RTE_FLOW_ERROR_TYPE_ACTION,\n+\t\t\t\t\t\t  actions,\n+\t\t\t\t\t\t  \"can't have multiple fate\"\n+\t\t\t\t\t\t  \" actions\");\n+\t\taction_flags |= current_action_flag;\n+\t}\n \tfor (; items->type != RTE_FLOW_ITEM_TYPE_END; items++) {\n \t\tunsigned int i;\n \n@@ -1375,136 +1506,6 @@ struct pedit_parser {\n \t\t\t\t\t\t  NULL, \"item not supported\");\n \t\t}\n \t}\n-\tfor (; actions->type != RTE_FLOW_ACTION_TYPE_END; actions++) {\n-\t\tunsigned int i;\n-\t\tuint64_t current_action_flag = 0;\n-\n-\t\tswitch (actions->type) {\n-\t\tcase RTE_FLOW_ACTION_TYPE_VOID:\n-\t\t\tbreak;\n-\t\tcase RTE_FLOW_ACTION_TYPE_PORT_ID:\n-\t\t\tcurrent_action_flag = MLX5_FLOW_ACTION_PORT_ID;\n-\t\t\tif (!actions->conf)\n-\t\t\t\tbreak;\n-\t\t\tconf.port_id = actions->conf;\n-\t\t\tif (conf.port_id->original)\n-\t\t\t\ti = 0;\n-\t\t\telse\n-\t\t\t\tfor (i = 0; ptoi[i].ifindex; ++i)\n-\t\t\t\t\tif (ptoi[i].port_id == conf.port_id->id)\n-\t\t\t\t\t\tbreak;\n-\t\t\tif (!ptoi[i].ifindex)\n-\t\t\t\treturn rte_flow_error_set\n-\t\t\t\t\t(error, ENODEV,\n-\t\t\t\t\t RTE_FLOW_ERROR_TYPE_ACTION_CONF,\n-\t\t\t\t\t conf.port_id,\n-\t\t\t\t\t \"missing data to convert port ID to\"\n-\t\t\t\t\t \" ifindex\");\n-\t\t\tport_id_dev = &rte_eth_devices[conf.port_id->id];\n-\t\t\tbreak;\n-\t\tcase RTE_FLOW_ACTION_TYPE_JUMP:\n-\t\t\tcurrent_action_flag = MLX5_FLOW_ACTION_JUMP;\n-\t\t\tif (!actions->conf)\n-\t\t\t\tbreak;\n-\t\t\tconf.jump = actions->conf;\n-\t\t\tif (attr->group >= conf.jump->group)\n-\t\t\t\treturn rte_flow_error_set\n-\t\t\t\t\t(error, ENOTSUP,\n-\t\t\t\t\t RTE_FLOW_ERROR_TYPE_ACTION,\n-\t\t\t\t\t actions,\n-\t\t\t\t\t \"can jump only to a group forward\");\n-\t\t\tbreak;\n-\t\tcase RTE_FLOW_ACTION_TYPE_DROP:\n-\t\t\tcurrent_action_flag = MLX5_FLOW_ACTION_DROP;\n-\t\t\tbreak;\n-\t\tcase RTE_FLOW_ACTION_TYPE_COUNT:\n-\t\t\tbreak;\n-\t\tcase RTE_FLOW_ACTION_TYPE_OF_POP_VLAN:\n-\t\t\tcurrent_action_flag = MLX5_FLOW_ACTION_OF_POP_VLAN;\n-\t\t\tbreak;\n-\t\tcase RTE_FLOW_ACTION_TYPE_OF_PUSH_VLAN:\n-\t\t\tcurrent_action_flag = MLX5_FLOW_ACTION_OF_PUSH_VLAN;\n-\t\t\tbreak;\n-\t\tcase RTE_FLOW_ACTION_TYPE_OF_SET_VLAN_VID:\n-\t\t\tif (!(action_flags & MLX5_FLOW_ACTION_OF_PUSH_VLAN))\n-\t\t\t\treturn rte_flow_error_set\n-\t\t\t\t\t(error, ENOTSUP,\n-\t\t\t\t\t RTE_FLOW_ERROR_TYPE_ACTION, actions,\n-\t\t\t\t\t \"vlan modify is not supported,\"\n-\t\t\t\t\t \" set action must follow push action\");\n-\t\t\tcurrent_action_flag = MLX5_FLOW_ACTION_OF_SET_VLAN_VID;\n-\t\t\tbreak;\n-\t\tcase RTE_FLOW_ACTION_TYPE_OF_SET_VLAN_PCP:\n-\t\t\tif (!(action_flags & MLX5_FLOW_ACTION_OF_PUSH_VLAN))\n-\t\t\t\treturn rte_flow_error_set\n-\t\t\t\t\t(error, ENOTSUP,\n-\t\t\t\t\t RTE_FLOW_ERROR_TYPE_ACTION, actions,\n-\t\t\t\t\t \"vlan modify is not supported,\"\n-\t\t\t\t\t \" set action must follow push action\");\n-\t\t\tcurrent_action_flag = MLX5_FLOW_ACTION_OF_SET_VLAN_PCP;\n-\t\t\tbreak;\n-\t\tcase RTE_FLOW_ACTION_TYPE_SET_IPV4_SRC:\n-\t\t\tcurrent_action_flag = MLX5_FLOW_ACTION_SET_IPV4_SRC;\n-\t\t\tbreak;\n-\t\tcase RTE_FLOW_ACTION_TYPE_SET_IPV4_DST:\n-\t\t\tcurrent_action_flag = MLX5_FLOW_ACTION_SET_IPV4_DST;\n-\t\t\tbreak;\n-\t\tcase RTE_FLOW_ACTION_TYPE_SET_IPV6_SRC:\n-\t\t\tcurrent_action_flag = MLX5_FLOW_ACTION_SET_IPV6_SRC;\n-\t\t\tbreak;\n-\t\tcase RTE_FLOW_ACTION_TYPE_SET_IPV6_DST:\n-\t\t\tcurrent_action_flag = MLX5_FLOW_ACTION_SET_IPV6_DST;\n-\t\t\tbreak;\n-\t\tcase RTE_FLOW_ACTION_TYPE_SET_TP_SRC:\n-\t\t\tcurrent_action_flag = MLX5_FLOW_ACTION_SET_TP_SRC;\n-\t\t\tbreak;\n-\t\tcase RTE_FLOW_ACTION_TYPE_SET_TP_DST:\n-\t\t\tcurrent_action_flag = MLX5_FLOW_ACTION_SET_TP_DST;\n-\t\t\tbreak;\n-\t\tcase RTE_FLOW_ACTION_TYPE_SET_TTL:\n-\t\t\tcurrent_action_flag = MLX5_FLOW_ACTION_SET_TTL;\n-\t\t\tbreak;\n-\t\tcase RTE_FLOW_ACTION_TYPE_DEC_TTL:\n-\t\t\tcurrent_action_flag = MLX5_FLOW_ACTION_DEC_TTL;\n-\t\t\tbreak;\n-\t\tcase RTE_FLOW_ACTION_TYPE_SET_MAC_SRC:\n-\t\t\tcurrent_action_flag = MLX5_FLOW_ACTION_SET_MAC_SRC;\n-\t\t\tbreak;\n-\t\tcase RTE_FLOW_ACTION_TYPE_SET_MAC_DST:\n-\t\t\tcurrent_action_flag = MLX5_FLOW_ACTION_SET_MAC_DST;\n-\t\t\tbreak;\n-\t\tdefault:\n-\t\t\treturn rte_flow_error_set(error, ENOTSUP,\n-\t\t\t\t\t\t  RTE_FLOW_ERROR_TYPE_ACTION,\n-\t\t\t\t\t\t  actions,\n-\t\t\t\t\t\t  \"action not supported\");\n-\t\t}\n-\t\tif (current_action_flag & MLX5_TCF_CONFIG_ACTIONS) {\n-\t\t\tif (!actions->conf)\n-\t\t\t\treturn rte_flow_error_set(error, EINVAL,\n-\t\t\t\t\t\tRTE_FLOW_ERROR_TYPE_ACTION_CONF,\n-\t\t\t\t\t\tactions,\n-\t\t\t\t\t\t\"action configuration not set\");\n-\t\t}\n-\t\tif ((current_action_flag & MLX5_TCF_PEDIT_ACTIONS) &&\n-\t\t    pedit_validated)\n-\t\t\treturn rte_flow_error_set(error, ENOTSUP,\n-\t\t\t\t\t\t  RTE_FLOW_ERROR_TYPE_ACTION,\n-\t\t\t\t\t\t  actions,\n-\t\t\t\t\t\t  \"set actions should be \"\n-\t\t\t\t\t\t  \"listed successively\");\n-\t\tif ((current_action_flag & ~MLX5_TCF_PEDIT_ACTIONS) &&\n-\t\t    (action_flags & MLX5_TCF_PEDIT_ACTIONS))\n-\t\t\tpedit_validated = 1;\n-\t\tif ((current_action_flag & MLX5_TCF_FATE_ACTIONS) &&\n-\t\t    (action_flags & MLX5_TCF_FATE_ACTIONS))\n-\t\t\treturn rte_flow_error_set(error, EINVAL,\n-\t\t\t\t\t\t  RTE_FLOW_ERROR_TYPE_ACTION,\n-\t\t\t\t\t\t  actions,\n-\t\t\t\t\t\t  \"can't have multiple fate\"\n-\t\t\t\t\t\t  \" actions\");\n-\t\taction_flags |= current_action_flag;\n-\t}\n \tif ((action_flags & MLX5_TCF_PEDIT_ACTIONS) &&\n \t    (action_flags & MLX5_FLOW_ACTION_DROP))\n \t\treturn rte_flow_error_set(error, ENOTSUP,\n",
    "prefixes": [
        "v5",
        "05/13"
    ]
}