get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 46588,
    "url": "https://patches.dpdk.org/api/patches/46588/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/1539254901-19410-1-git-send-email-motih@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": "<1539254901-19410-1-git-send-email-motih@mellanox.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1539254901-19410-1-git-send-email-motih@mellanox.com",
    "date": "2018-10-11T10:48:39",
    "name": "[v4] net/mlx5: support e-switch TCP-flags flow filter",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "c10ad83b485851f1b226d9e5a69d4b706ad80aa2",
    "submitter": {
        "id": 748,
        "url": "https://patches.dpdk.org/api/people/748/?format=api",
        "name": "Moti Haimovsky",
        "email": "motih@mellanox.com"
    },
    "delegate": {
        "id": 6624,
        "url": "https://patches.dpdk.org/api/users/6624/?format=api",
        "username": "shahafs",
        "first_name": "Shahaf",
        "last_name": "Shuler",
        "email": "shahafs@mellanox.com"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/1539254901-19410-1-git-send-email-motih@mellanox.com/mbox/",
    "series": [
        {
            "id": 1828,
            "url": "https://patches.dpdk.org/api/series/1828/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=1828",
            "date": "2018-10-11T10:48:39",
            "name": "[v4] net/mlx5: support e-switch TCP-flags flow filter",
            "version": 4,
            "mbox": "https://patches.dpdk.org/series/1828/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/46588/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/46588/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 52B7D1B4F0;\n\tThu, 11 Oct 2018 12:48:43 +0200 (CEST)",
            "from EUR04-HE1-obe.outbound.protection.outlook.com\n\t(mail-eopbgr70072.outbound.protection.outlook.com [40.107.7.72])\n\tby dpdk.org (Postfix) with ESMTP id B82D71B4D3\n\tfor <dev@dpdk.org>; Thu, 11 Oct 2018 12:48:41 +0200 (CEST)",
            "from AM0PR05MB4435.eurprd05.prod.outlook.com (52.134.92.20) by\n\tAM0PR05MB4450.eurprd05.prod.outlook.com (52.134.92.23) with Microsoft\n\tSMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n\t15.20.1207.26; Thu, 11 Oct 2018 10:48:39 +0000",
            "from AM0PR05MB4435.eurprd05.prod.outlook.com\n\t([fe80::2549:a872:4864:b84e]) by\n\tAM0PR05MB4435.eurprd05.prod.outlook.com\n\t([fe80::2549:a872:4864:b84e%6]) with mapi id 15.20.1207.029;\n\tThu, 11 Oct 2018 10:48:39 +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=tcpBKMBjubPMa4uUdExgS1/ZKyx1lrjxSJIl5e5UWUU=;\n\tb=VBe58EH+l/SvwSs3j0MbRwnt55IXdqYXGlIbKLBrG1gjUKSfC4Xo8DwYBgmWiUesOdCx3imH43KGqNQRzJ4+Yu7H78qmlJ+XzEXNBiIdgbAGmPV0dbnEoGYZxM77NMa0XokqoDT3vPaK10rLGL7NH7suPPVgx67ayDvLeXKBcHQ=",
        "From": "Mordechay Haimovsky <motih@mellanox.com>",
        "To": "Shahaf Shuler <shahafs@mellanox.com>",
        "CC": "\"dev@dpdk.org\" <dev@dpdk.org>, Mordechay Haimovsky <motih@mellanox.com>",
        "Thread-Topic": "[PATCH v4] net/mlx5: support e-switch TCP-flags flow filter",
        "Thread-Index": "AQHUYU/3i3NkwF/+qk+PJLDi2FYU4g==",
        "Date": "Thu, 11 Oct 2018 10:48:39 +0000",
        "Message-ID": "<1539254901-19410-1-git-send-email-motih@mellanox.com>",
        "References": "<1539182589-10533-1-git-send-email-motih@mellanox.com>",
        "In-Reply-To": "<1539182589-10533-1-git-send-email-motih@mellanox.com>",
        "Accept-Language": "he-IL, en-US",
        "Content-Language": "en-US",
        "X-MS-Has-Attach": "",
        "X-MS-TNEF-Correlator": "",
        "x-clientproxiedby": "AM0PR02CA0015.eurprd02.prod.outlook.com\n\t(2603:10a6:208:3e::28) To AM0PR05MB4435.eurprd05.prod.outlook.com\n\t(2603:10a6:208:5a::20)",
        "authentication-results": "spf=none (sender IP is )\n\tsmtp.mailfrom=motih@mellanox.com; ",
        "x-ms-exchange-messagesentrepresentingtype": "1",
        "x-originating-ip": "[37.142.13.130]",
        "x-ms-publictraffictype": "Email",
        "x-microsoft-exchange-diagnostics": "1; AM0PR05MB4450;\n\t6:VI8XM5vbhG+dNjPHz+RoUIbHC+DDYR8V1D+01rycs+ea1BWKORzhPwgUnguKwpOI+Y5TcQq/wc3yG3xxosGpWG7o2u2zsULq5XpWNtRI8UEwkMfMmtXx6Bm+6jEfhbeVZNVnF1+W/Jpgwaz1j86okGWEyjcLnYEB3gxA0q3G9TWJLqgnyEfxzzu5vD7an/wsHBErqDtHRkvGmjE8vXEO+2nbEKgfmO4kzhaUgDHg03GJJB7Jg4ula7D92HMGiMzzrieXtVn/QJENCAXg/7wN5D4GSnFj81rOLToYA/FM3YHD8bJEBlPvYAufV/v9prQjz8fDHB2NaOpyDpBkxYdX3KvgpDuqWbdJQFA6cwUAw5kAMiP+JwlANTlPs4pxtEDxO4o+Qcp9NshwXG6lCG2obQhvIGuPXvgidegKWYyC49hBQqiFa2/vWjd8K5AIKuMb4mx4KlW8AB9bAM8CWHdQpA==;\n\t5:43KToYFMDeOjd759GOcj1iT27i2XDsw7rUCumbo1yBbmpy/PNPcH5h9uUzhZ+JnO89yjCt9b3fSuFCD3aVX3Zc91elfOQ5/uJUAYuLoW6sKd9JBEjKkcNUoRcW1wkKZ+TOrFZ6KmZVztUyc3PzxqPVyPtnJk5+vRAZs5J3qW43s=;\n\t7:rlWYoyH2AujIguiBTCF9fFk5FItnlAsb55Myy4uk6UZJUx1zAoC/SRmJowRtwk2vlt6OecmbUUEB5MoRVkKxUMh4I+ovG/9FJpuJU9pDjTHXesLuDwfF9DNNL4OsLlQzpf8SZ5nhCYC/47qG0YKwcc2hIcJMIfObnruMHTOq7i2FTyXC6x9TB+Voa9D3f8ZatYETpWoluD2YfOZgiZ9L7OTkh2mBSViyJ/2VzmVsBb1zO0r8pmZb88YNoH5B8hZu",
        "x-ms-office365-filtering-correlation-id": "0c7a78e2-0409-4ea4-eace-08d62f6719f1",
        "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:AM0PR05MB4450; ",
        "x-ms-traffictypediagnostic": "AM0PR05MB4450:",
        "x-microsoft-antispam-prvs": "<AM0PR05MB445061B004939CA39C006EEBD2E10@AM0PR05MB4450.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)(10201501046)(3231355)(944501410)(52105095)(93006095)(93001095)(3002001)(6055026)(149066)(150057)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123558120)(20161123560045)(20161123564045)(201708071742011)(7699051);\n\tSRVR:AM0PR05MB4450; BCL:0; PCL:0; RULEID:; SRVR:AM0PR05MB4450; ",
        "x-forefront-prvs": "08220FA8D6",
        "x-forefront-antispam-report": "SFV:NSPM;\n\tSFS:(10009020)(346002)(376002)(136003)(396003)(366004)(39860400002)(189003)(199004)(107886003)(11346002)(2616005)(446003)(97736004)(476003)(71200400001)(2900100001)(71190400001)(6116002)(3846002)(316002)(486006)(5660300001)(6862004)(305945005)(5250100002)(7736002)(36756003)(478600001)(53936002)(6512007)(54906003)(256004)(8676002)(68736007)(106356001)(4326008)(26005)(102836004)(37006003)(99286004)(6436002)(6486002)(81156014)(8936002)(81166006)(186003)(14444005)(6506007)(386003)(76176011)(6636002)(66066001)(14454004)(105586002)(86362001)(575784001)(25786009)(52116002)(2906002)(42262002);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:AM0PR05MB4450;\n\tH:AM0PR05MB4435.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": "TyJO4fVgGnhKlh2ib/ILVO6S9v1BjMHM8BgltMDteIo1HgXceTkxSjds25yaTqGnnuMmyg0T6OAyXOF3jJxCKRKiGEtRClQjDQBytOOHFy5H0JVjJsDcX4Bff8WWTr43gsOZypfoPtokEfQkEAz6reBclkaKzN/ACMAw2vTIRBPe2rQ7BMsL7aO9t7VXKpgn86vgtwhnVdVa7lM2/JppMoa9B/LPFPPuLkgVFAMfJ/iZFxCIytrqfwz26KOepICbCdstEuZylg/wXDkEyHtB3O7p43hYSmNGxTTsDUufF/Sg/EH+n82juTYRUYKBrZmCAwH8iqaWoTi+IKuDDWGAqjCyAnUVmzRoFD5ieDGe9b4=",
        "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": "0c7a78e2-0409-4ea4-eace-08d62f6719f1",
        "X-MS-Exchange-CrossTenant-originalarrivaltime": "11 Oct 2018 10:48:39.0690\n\t(UTC)",
        "X-MS-Exchange-CrossTenant-fromentityheader": "Hosted",
        "X-MS-Exchange-CrossTenant-id": "a652971c-7d2e-4d9b-a6a4-d149256f461b",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "AM0PR05MB4450",
        "Subject": "[dpdk-dev] [PATCH v4] net/mlx5: support e-switch TCP-flags flow\n\tfilter",
        "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": "This patch adds support for offloading flow rules with TCP-flags\nfilter to mlx5 eswitch Hardwrae.\n\nWith mlx5 it is possible to offload a limited set of flow rules to\nthe mlxsw (or e-switch) using the DPDK flow commands using the\n\"transfer\" attribute. This set of flow rules also supports filtering\naccording to the values found in the TCP flags.\nThis patch implements this offload capability in the mlx5 PMD under\ntransfer attribute.\n\nSigned-off-by: Moti Haimovsky <motih@mellanox.com>\n---\nv4:\n * Modifications according to review inputs.\n * Fixed bug found in patch.\n\nv3:\n Changes according to review inputs.\n * Modified commit header.\n * Modified mason build to resemble the changes in Makefile.\n * Corrected TCP flags default support mask.\n\nv2:\n * Code rebase on latest upstream updates.\n---\n drivers/net/mlx5/Makefile          | 10 ++++++++++\n drivers/net/mlx5/meson.build       |  4 ++++\n drivers/net/mlx5/mlx5_flow.c       |  6 +++++-\n drivers/net/mlx5/mlx5_flow.h       |  1 +\n drivers/net/mlx5/mlx5_flow_dv.c    |  7 +++++--\n drivers/net/mlx5/mlx5_flow_tcf.c   | 28 +++++++++++++++++++++++++---\n drivers/net/mlx5/mlx5_flow_verbs.c |  7 +++++--\n 7 files changed, 55 insertions(+), 8 deletions(-)",
    "diff": "diff --git a/drivers/net/mlx5/Makefile b/drivers/net/mlx5/Makefile\nindex ca1de9f..9097456 100644\n--- a/drivers/net/mlx5/Makefile\n+++ b/drivers/net/mlx5/Makefile\n@@ -342,6 +342,16 @@ mlx5_autoconf.h.new: $(RTE_SDK)/buildtools/auto-config-h.sh\n \t\tenum TCA_FLOWER_KEY_VLAN_ETH_TYPE \\\n \t\t$(AUTOCONF_OUTPUT)\n \t$Q sh -- '$<' '$@' \\\n+\t\tHAVE_TCA_FLOWER_KEY_TCP_FLAGS \\\n+\t\tlinux/pkt_cls.h \\\n+\t\tenum TCA_FLOWER_KEY_TCP_FLAGS \\\n+\t\t$(AUTOCONF_OUTPUT)\n+\t$Q sh -- '$<' '$@' \\\n+\t\tHAVE_TCA_FLOWER_KEY_TCP_FLAGS_MASK \\\n+\t\tlinux/pkt_cls.h \\\n+\t\tenum TCA_FLOWER_KEY_TCP_FLAGS_MASK \\\n+\t\t$(AUTOCONF_OUTPUT)\n+\t$Q sh -- '$<' '$@' \\\n \t\tHAVE_TC_ACT_VLAN \\\n \t\tlinux/tc_act/tc_vlan.h \\\n \t\tenum TCA_VLAN_PUSH_VLAN_PRIORITY \\\ndiff --git a/drivers/net/mlx5/meson.build b/drivers/net/mlx5/meson.build\nindex fd93ac1..f562f30 100644\n--- a/drivers/net/mlx5/meson.build\n+++ b/drivers/net/mlx5/meson.build\n@@ -180,6 +180,10 @@ if build\n \t\t'TCA_FLOWER_KEY_VLAN_PRIO' ],\n \t\t[ 'HAVE_TCA_FLOWER_KEY_VLAN_ETH_TYPE', 'linux/pkt_cls.h',\n \t\t'TCA_FLOWER_KEY_VLAN_ETH_TYPE' ],\n+\t\t[ 'HAVE_TCA_FLOWER_KEY_TCP_FLAGS', 'linux/pkt_cls.h',\n+\t\t'TCA_FLOWER_KEY_TCP_FLAGS' ],\n+\t\t[ 'HAVE_TCA_FLOWER_KEY_TCP_FLAGS_MASK', 'linux/pkt_cls.h',\n+\t\t'TCA_FLOWER_KEY_TCP_FLAGS_MASK' ],\n \t\t[ 'HAVE_TC_ACT_VLAN', 'linux/tc_act/tc_vlan.h',\n \t\t'TCA_VLAN_PUSH_VLAN_PRIORITY' ],\n \t\t[ 'HAVE_RDMA_NL_NLDEV', 'rdma/rdma_netlink.h',\ndiff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c\nindex ed60c40..a794a91 100644\n--- a/drivers/net/mlx5/mlx5_flow.c\n+++ b/drivers/net/mlx5/mlx5_flow.c\n@@ -1226,6 +1226,8 @@ uint32_t mlx5_flow_adjust_priority(struct rte_eth_dev *dev, int32_t priority,\n  *   Bit-fields that holds the items detected until now.\n  * @param[in] target_protocol\n  *   The next protocol in the previous item.\n+ * @param[in] flow_mask\n+ *   mlx5 flow-specific (TCF, DV, verbs, etc.) supported header fields mask.\n  * @param[out] error\n  *   Pointer to error structure.\n  *\n@@ -1236,12 +1238,14 @@ uint32_t mlx5_flow_adjust_priority(struct rte_eth_dev *dev, int32_t priority,\n mlx5_flow_validate_item_tcp(const struct rte_flow_item *item,\n \t\t\t    uint64_t item_flags,\n \t\t\t    uint8_t target_protocol,\n+\t\t\t    const struct rte_flow_item_tcp *flow_mask,\n \t\t\t    struct rte_flow_error *error)\n {\n \tconst struct rte_flow_item_tcp *mask = item->mask;\n \tconst int tunnel = !!(item_flags & MLX5_FLOW_LAYER_TUNNEL);\n \tint ret;\n \n+\tassert(flow_mask);\n \tif (target_protocol != 0xff && target_protocol != IPPROTO_TCP)\n \t\treturn rte_flow_error_set(error, EINVAL,\n \t\t\t\t\t  RTE_FLOW_ERROR_TYPE_ITEM, item,\n@@ -1261,7 +1265,7 @@ uint32_t mlx5_flow_adjust_priority(struct rte_eth_dev *dev, int32_t priority,\n \t\tmask = &rte_flow_item_tcp_mask;\n \tret = mlx5_flow_item_acceptable\n \t\t(item, (const uint8_t *)mask,\n-\t\t (const uint8_t *)&rte_flow_item_tcp_mask,\n+\t\t (const uint8_t *)flow_mask,\n \t\t sizeof(struct rte_flow_item_tcp), error);\n \tif (ret < 0)\n \t\treturn ret;\ndiff --git a/drivers/net/mlx5/mlx5_flow.h b/drivers/net/mlx5/mlx5_flow.h\nindex 12de841..dbe3f84 100644\n--- a/drivers/net/mlx5/mlx5_flow.h\n+++ b/drivers/net/mlx5/mlx5_flow.h\n@@ -314,6 +314,7 @@ int mlx5_flow_validate_item_mpls(const struct rte_flow_item *item,\n int mlx5_flow_validate_item_tcp(const struct rte_flow_item *item,\n \t\t\t\tuint64_t item_flags,\n \t\t\t\tuint8_t target_protocol,\n+\t\t\t\tconst struct rte_flow_item_tcp *flow_mask,\n \t\t\t\tstruct rte_flow_error *error);\n int mlx5_flow_validate_item_udp(const struct rte_flow_item *item,\n \t\t\t\tuint64_t item_flags,\ndiff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c\nindex 3bb462c..a824b19 100644\n--- a/drivers/net/mlx5/mlx5_flow_dv.c\n+++ b/drivers/net/mlx5/mlx5_flow_dv.c\n@@ -179,8 +179,11 @@\n \t\t\t\t\t       MLX5_FLOW_LAYER_OUTER_L4_UDP;\n \t\t\tbreak;\n \t\tcase RTE_FLOW_ITEM_TYPE_TCP:\n-\t\t\tret = mlx5_flow_validate_item_tcp(items, item_flags,\n-\t\t\t\t\t\t\t  next_protocol, error);\n+\t\t\tret = mlx5_flow_validate_item_tcp\n+\t\t\t\t\t\t(items, item_flags,\n+\t\t\t\t\t\t next_protocol,\n+\t\t\t\t\t\t &rte_flow_item_tcp_mask,\n+\t\t\t\t\t\t error);\n \t\t\tif (ret < 0)\n \t\t\t\treturn ret;\n \t\t\titem_flags |= tunnel ? MLX5_FLOW_LAYER_INNER_L4_TCP :\ndiff --git a/drivers/net/mlx5/mlx5_flow_tcf.c b/drivers/net/mlx5/mlx5_flow_tcf.c\nindex 91f6ef6..cc0f66c 100644\n--- a/drivers/net/mlx5/mlx5_flow_tcf.c\n+++ b/drivers/net/mlx5/mlx5_flow_tcf.c\n@@ -148,6 +148,12 @@ struct tc_vlan {\n #ifndef HAVE_TCA_FLOWER_KEY_VLAN_ETH_TYPE\n #define TCA_FLOWER_KEY_VLAN_ETH_TYPE 25\n #endif\n+#ifndef HAVE_TCA_FLOWER_KEY_TCP_FLAGS\n+#define TCA_FLOWER_KEY_TCP_FLAGS 71\n+#endif\n+#ifndef HAVE_TCA_FLOWER_KEY_TCP_FLAGS_MASK\n+#define TCA_FLOWER_KEY_TCP_FLAGS_MASK 72\n+#endif\n \n #ifndef IPV6_ADDR_LEN\n #define IPV6_ADDR_LEN 16\n@@ -204,6 +210,7 @@ struct tc_vlan {\n \t.tcp.hdr = {\n \t\t.src_port = RTE_BE16(0xffff),\n \t\t.dst_port = RTE_BE16(0xffff),\n+\t\t.tcp_flags = 0xff,\n \t},\n \t.udp.hdr = {\n \t\t.src_port = RTE_BE16(0xffff),\n@@ -626,13 +633,16 @@ struct flow_tcf_ptoi {\n \t\t\t\treturn -rte_errno;\n \t\t\tbreak;\n \t\tcase RTE_FLOW_ITEM_TYPE_TCP:\n-\t\t\tret = mlx5_flow_validate_item_tcp(items, item_flags,\n-\t\t\t\t\t\t\t  next_protocol, error);\n+\t\t\tret = mlx5_flow_validate_item_tcp\n+\t\t\t\t\t     (items, item_flags,\n+\t\t\t\t\t      next_protocol,\n+\t\t\t\t\t      &flow_tcf_mask_supported.tcp,\n+\t\t\t\t\t      error);\n \t\t\tif (ret < 0)\n \t\t\t\treturn ret;\n \t\t\titem_flags |= MLX5_FLOW_LAYER_OUTER_L4_TCP;\n \t\t\tmask.tcp = flow_tcf_item_mask\n-\t\t\t\t(items, &rte_flow_item_tcp_mask,\n+\t\t\t\t(items, &flow_tcf_mask_supported.tcp,\n \t\t\t\t &flow_tcf_mask_supported.tcp,\n \t\t\t\t &flow_tcf_mask_empty.tcp,\n \t\t\t\t sizeof(flow_tcf_mask_supported.tcp),\n@@ -1289,6 +1299,18 @@ struct flow_tcf_ptoi {\n \t\t\t\t\t\t TCA_FLOWER_KEY_TCP_DST_MASK,\n \t\t\t\t\t\t mask.tcp->hdr.dst_port);\n \t\t\t}\n+\t\t\tif (mask.tcp->hdr.tcp_flags) {\n+\t\t\t\tmnl_attr_put_u16\n+\t\t\t\t\t(nlh,\n+\t\t\t\t\t TCA_FLOWER_KEY_TCP_FLAGS,\n+\t\t\t\t\t rte_cpu_to_be_16\n+\t\t\t\t\t\t(spec.tcp->hdr.tcp_flags));\n+\t\t\t\tmnl_attr_put_u16\n+\t\t\t\t\t(nlh,\n+\t\t\t\t\t TCA_FLOWER_KEY_TCP_FLAGS_MASK,\n+\t\t\t\t\t rte_cpu_to_be_16\n+\t\t\t\t\t\t(mask.tcp->hdr.tcp_flags));\n+\t\t\t}\n \t\t\tbreak;\n \t\tdefault:\n \t\t\treturn rte_flow_error_set(error, ENOTSUP,\ndiff --git a/drivers/net/mlx5/mlx5_flow_verbs.c b/drivers/net/mlx5/mlx5_flow_verbs.c\nindex 6964476..26bcc85 100644\n--- a/drivers/net/mlx5/mlx5_flow_verbs.c\n+++ b/drivers/net/mlx5/mlx5_flow_verbs.c\n@@ -1056,8 +1056,11 @@\n \t\t\t\t\t       MLX5_FLOW_LAYER_OUTER_L4_UDP;\n \t\t\tbreak;\n \t\tcase RTE_FLOW_ITEM_TYPE_TCP:\n-\t\t\tret = mlx5_flow_validate_item_tcp(items, item_flags,\n-\t\t\t\t\t\t\t  next_protocol, error);\n+\t\t\tret = mlx5_flow_validate_item_tcp\n+\t\t\t\t\t\t(items, item_flags,\n+\t\t\t\t\t\t next_protocol,\n+\t\t\t\t\t\t &rte_flow_item_tcp_mask,\n+\t\t\t\t\t\t error);\n \t\t\tif (ret < 0)\n \t\t\t\treturn ret;\n \t\t\titem_flags |= tunnel ? MLX5_FLOW_LAYER_INNER_L4_TCP :\n",
    "prefixes": [
        "v4"
    ]
}