get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 74342,
    "url": "http://patches.dpdk.org/api/patches/74342/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/1594984263-89741-2-git-send-email-orika@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": "<1594984263-89741-2-git-send-email-orika@mellanox.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1594984263-89741-2-git-send-email-orika@mellanox.com",
    "date": "2020-07-17T11:10:51",
    "name": "[v4,01/13] regex/mlx5: add RegEx PMD layer and mlx5 driver",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "5595249c0f3545b8605e7c5a29ffdf7c6f344584",
    "submitter": {
        "id": 795,
        "url": "http://patches.dpdk.org/api/people/795/?format=api",
        "name": "Ori Kam",
        "email": "orika@mellanox.com"
    },
    "delegate": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/users/1/?format=api",
        "username": "tmonjalo",
        "first_name": "Thomas",
        "last_name": "Monjalon",
        "email": "thomas@monjalon.net"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/1594984263-89741-2-git-send-email-orika@mellanox.com/mbox/",
    "series": [
        {
            "id": 11128,
            "url": "http://patches.dpdk.org/api/series/11128/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=11128",
            "date": "2020-07-17T11:10:50",
            "name": "add Mellanox RegEx PMD",
            "version": 4,
            "mbox": "http://patches.dpdk.org/series/11128/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/74342/comments/",
    "check": "fail",
    "checks": "http://patches.dpdk.org/api/patches/74342/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id B9165A053D;\n\tFri, 17 Jul 2020 13:11:28 +0200 (CEST)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 20BD21C06B;\n\tFri, 17 Jul 2020 13:11:21 +0200 (CEST)",
            "from mellanox.co.il (mail-il-dmz.mellanox.com [193.47.165.129])\n by dpdk.org (Postfix) with ESMTP id 951DB1C032\n for <dev@dpdk.org>; Fri, 17 Jul 2020 13:11:17 +0200 (CEST)",
            "from Internal Mail-Server by MTLPINE1 (envelope-from\n orika@mellanox.com) with SMTP; 17 Jul 2020 14:11:12 +0300",
            "from pegasus04.mtr.labs.mlnx. (pegasus04.mtr.labs.mlnx\n [10.210.16.126])\n by labmailer.mlnx (8.13.8/8.13.8) with ESMTP id 06HBB6Kq025276;\n Fri, 17 Jul 2020 14:11:11 +0300"
        ],
        "From": "Ori Kam <orika@mellanox.com>",
        "To": "jerinj@marvell.com, xiang.w.wang@intel.com, matan@mellanox.com,\n viacheslavo@mellanox.com, Thomas Monjalon <thomas@monjalon.net>,\n John McNamara <john.mcnamara@intel.com>,\n Marko Kovacevic <marko.kovacevic@intel.com>,\n Shahaf Shuler <shahafs@mellanox.com>, Ray Kinsella <mdr@ashroe.eu>,\n Neil Horman <nhorman@tuxdriver.com>",
        "Cc": "guyk@marvell.com, dev@dpdk.org, pbhagavatula@marvell.com,\n hemant.agrawal@nxp.com, opher@mellanox.com, alexr@mellanox.com,\n dovrat@marvell.com, pkapoor@marvell.com, nipun.gupta@nxp.com,\n bruce.richardson@intel.com, yang.a.hong@intel.com,\n harry.chang@intel.com, gu.jian1@zte.com.cn, shanjiangh@chinatelecom.cn,\n zhangy.yun@chinatelecom.cn, lixingfu@huachentel.com,\n wushuai@inspur.com, yuyingxia@yxlink.com, fanchenggang@sunyainfo.com,\n davidfgao@tencent.com, liuzhong1@chinaunicom.cn, zhaoyong11@huawei.com,\n oc@yunify.com, jim@netgate.com, hongjun.ni@intel.com, deri@ntop.org,\n fc@napatech.com, arthur.su@lionic.com, orika@mellanox.com,\n rasland@mellanox.com, Yuval Avnery <yuvalav@mellanox.com>",
        "Date": "Fri, 17 Jul 2020 11:10:51 +0000",
        "Message-Id": "<1594984263-89741-2-git-send-email-orika@mellanox.com>",
        "X-Mailer": "git-send-email 1.8.3.1",
        "In-Reply-To": "<1594984263-89741-1-git-send-email-orika@mellanox.com>",
        "References": "<1593941027-86651-1-git-send-email-orika@mellanox.com>\n <1594984263-89741-1-git-send-email-orika@mellanox.com>",
        "Subject": "[dpdk-dev] [PATCH v4 01/13] regex/mlx5: add RegEx PMD layer and\n\tmlx5 driver",
        "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 <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 <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "From: Yuval Avnery <yuvalav@mellanox.com>\n\nThis commit introduce the RegEx pull mode drivers class, and\nadds Mellanox RegEx PMD.\n\nSigned-off-by: Yuval Avnery <yuvalav@mellanox.com>\nSigned-off-by: Ori Kam <orika@mellanox.com>\n---\nv3:\n* Address ML comments.\n\nv2:\n* Add docs.\n\n---\n .gitignore                                        |   1 +\n MAINTAINERS                                       |  11 +++\n config/common_base                                |   5 ++\n doc/guides/conf.py                                |   7 +-\n doc/guides/index.rst                              |   1 +\n doc/guides/regexdevs/features/default.ini         |  32 +++++++\n doc/guides/regexdevs/features/mlx5.ini            |   9 ++\n doc/guides/regexdevs/features_overview.rst        | 100 ++++++++++++++++++++++\n doc/guides/regexdevs/index.rst                    |  15 ++++\n doc/guides/regexdevs/mlx5.rst                     |  70 +++++++++++++++\n doc/guides/rel_notes/release_20_08.rst            |   2 +\n drivers/Makefile                                  |   2 +\n drivers/common/Makefile                           |   2 +-\n drivers/common/mlx5/Makefile                      |   4 +-\n drivers/meson.build                               |   1 +\n drivers/regex/Makefile                            |   8 ++\n drivers/regex/meson.build                         |   9 ++\n drivers/regex/mlx5/Makefile                       |  34 ++++++++\n drivers/regex/mlx5/meson.build                    |  26 ++++++\n drivers/regex/mlx5/mlx5_regex.c                   |   5 ++\n drivers/regex/mlx5/mlx5_regex.h                   |   8 ++\n drivers/regex/mlx5/rte_pmd_mlx5_regex_version.map |   3 +\n mk/rte.app.mk                                     |   5 +-\n 23 files changed, 354 insertions(+), 6 deletions(-)\n create mode 100644 doc/guides/regexdevs/features/default.ini\n create mode 100644 doc/guides/regexdevs/features/mlx5.ini\n create mode 100644 doc/guides/regexdevs/features_overview.rst\n create mode 100644 doc/guides/regexdevs/index.rst\n create mode 100644 doc/guides/regexdevs/mlx5.rst\n create mode 100644 drivers/regex/Makefile\n create mode 100644 drivers/regex/meson.build\n create mode 100644 drivers/regex/mlx5/Makefile\n create mode 100644 drivers/regex/mlx5/meson.build\n create mode 100644 drivers/regex/mlx5/mlx5_regex.c\n create mode 100644 drivers/regex/mlx5/mlx5_regex.h\n create mode 100644 drivers/regex/mlx5/rte_pmd_mlx5_regex_version.map",
    "diff": "diff --git a/.gitignore b/.gitignore\nindex f2f8892..f73d93c 100644\n--- a/.gitignore\n+++ b/.gitignore\n@@ -9,6 +9,7 @@ doc/guides/cryptodevs/overview_auth_table.txt\n doc/guides/cryptodevs/overview_aead_table.txt\n doc/guides/cryptodevs/overview_asym_table.txt\n doc/guides/compressdevs/overview_feature_table.txt\n+doc/guides/regexdevs/overview_feature_table.txt\n doc/guides/vdpadevs/overview_feature_table.txt\n doc/guides/bbdevs/overview_feature_table.txt\n \ndiff --git a/MAINTAINERS b/MAINTAINERS\nindex 3cd402b..66ceb09 100644\n--- a/MAINTAINERS\n+++ b/MAINTAINERS\n@@ -454,6 +454,7 @@ RegEx API - EXPERIMENTAL\n M: Ori Kam <orika@mellanox.com>\n F: lib/librte_regexdev/\n F: doc/guides/prog_guide/regexdev.rst\n+F: doc/guides/regexdevs/features/default.ini\n \n Eventdev API\n M: Jerin Jacob <jerinj@marvell.com>\n@@ -1128,6 +1129,16 @@ F: doc/guides/compressdevs/zlib.rst\n F: doc/guides/compressdevs/features/zlib.ini\n \n \n+RegEx Drivers\n+-------------\n+\n+Mellanox MLX5\n+M: Ori Kam <orika@mellanox.com>\n+F: drivers/regex/mlx5/\n+F: doc/guides/regexdevs/mlx5.rst\n+F: doc/guides/regexdevs/features/mlx5.ini\n+\n+\n vDPA Drivers\n ------------\n T: git://dpdk.org/next/dpdk-next-virtio\ndiff --git a/config/common_base b/config/common_base\nindex f7a8824..f76585f 100644\n--- a/config/common_base\n+++ b/config/common_base\n@@ -375,6 +375,11 @@ CONFIG_RTE_LIBRTE_MLX5_PMD=n\n CONFIG_RTE_LIBRTE_MLX5_DEBUG=n\n \n #\n+# Compile regex-oriented Mellanox PMD\n+#\n+CONFIG_RTE_LIBRTE_MLX5_REGEX_PMD=n\n+\n+#\n # Compile vdpa-oriented Mellanox ConnectX-6 & BlueField (MLX5) PMD\n #\n CONFIG_RTE_LIBRTE_MLX5_VDPA_PMD=n\ndiff --git a/doc/guides/conf.py b/doc/guides/conf.py\nindex 700e05e..d8fe5cc 100644\n--- a/doc/guides/conf.py\n+++ b/doc/guides/conf.py\n@@ -47,7 +47,7 @@\n master_doc = 'index'\n \n # Maximum feature description string length\n-feature_str_len = 25\n+feature_str_len = 30\n \n # Figures, tables and code-blocks automatically numbered if they have caption\n numfig = True\n@@ -409,6 +409,11 @@ def setup(app):\n                             'Features',\n                             'Features availability in compression drivers',\n                             'Feature')\n+    table_file = dirname(__file__) + '/regexdevs/overview_feature_table.txt'\n+    generate_overview_table(table_file, 1,\n+                            'Features',\n+                            'Features availability in regex drivers',\n+                            'Feature')\n     table_file = dirname(__file__) + '/vdpadevs/overview_feature_table.txt'\n     generate_overview_table(table_file, 1,\n                             'Features',\ndiff --git a/doc/guides/index.rst b/doc/guides/index.rst\nindex 988c6ea..857f036 100644\n--- a/doc/guides/index.rst\n+++ b/doc/guides/index.rst\n@@ -20,6 +20,7 @@ DPDK documentation\n    cryptodevs/index\n    compressdevs/index\n    vdpadevs/index\n+   regexdevs/index\n    eventdevs/index\n    rawdevs/index\n    mempool/index\ndiff --git a/doc/guides/regexdevs/features/default.ini b/doc/guides/regexdevs/features/default.ini\nnew file mode 100644\nindex 0000000..10f6c50\n--- /dev/null\n+++ b/doc/guides/regexdevs/features/default.ini\n@@ -0,0 +1,32 @@\n+;\n+; Features of a default RegEx driver.\n+;\n+; This file defines the features that are valid for inclusion in\n+; the other driver files and also the order that they appear in\n+; the features table in the documentation. The feature description\n+; string should not exceed feature_str_len defined in conf.py.\n+;\n+[Features]\n+Cross buffer                =\n+PCRE start anchor           =\n+PCRE atomic grouping        =\n+PCRE back reference         =\n+PCRE back tracking ctrl     =\n+PCRE call outs              =\n+PCRE forward reference      =\n+PCRE greedy                 =\n+PCRE match all              =\n+PCRE match as end           =\n+PCRE match point rst        =\n+PCRE New line conventions   =\n+PCRE new line SEQ           =\n+PCRE look around            =\n+PCRE possessive qualifiers  =\n+PCRE subroutine references  =\n+PCRE UTF 8                  =\n+PCRE UTF 16                 =\n+PCRE UTF 32                 =\n+PCRE word boundary          =\n+Run time compilation        =\n+Armv8                       =\n+x86                         =\ndiff --git a/doc/guides/regexdevs/features/mlx5.ini b/doc/guides/regexdevs/features/mlx5.ini\nnew file mode 100644\nindex 0000000..9fe5f73\n--- /dev/null\n+++ b/doc/guides/regexdevs/features/mlx5.ini\n@@ -0,0 +1,9 @@\n+;\n+; Supported features of the 'mlx5' RegEx driver.\n+;\n+; Refer to default.ini for the full list of available driver features.\n+;\n+[Features]\n+Armv8                = Y\n+x86                  = Y\n+\ndiff --git a/doc/guides/regexdevs/features_overview.rst b/doc/guides/regexdevs/features_overview.rst\nnew file mode 100644\nindex 0000000..793cae4\n--- /dev/null\n+++ b/doc/guides/regexdevs/features_overview.rst\n@@ -0,0 +1,100 @@\n+..  SPDX-License-Identifier: BSD-3-Clause\n+   Copyright 2020 Mellanox Technologies, Ltd\n+\n+Overview of RegEx Drivers Features\n+==================================\n+\n+This section explains the supported features that are listed in the table below.\n+\n+Cross buffer\n+  Support cross buffer detection.\n+\n+PCRE start anchor\n+  Support PCRE start anchor.\n+\n+PCRE atomic grouping\n+  Support PCRE atomic grouping.\n+\n+PCRE back reference\n+  Support PCRE back regerence.\n+\n+PCRE back tracking ctrl\n+  Support PCRE back tracking ctrl.\n+\n+PCRE call outs\n+  Support PCRE call outes.\n+\n+PCRE forward reference\n+  Support Forward reference.\n+\n+PCRE greedy\n+  Support PCRE greedy mode.\n+\n+PCRE match all\n+  Support PCRE match all.\n+\n+PCRE match as end\n+  Support match as end.\n+\n+PCRE match point rst\n+  Support PCRE match point reset directive.\n+\n+PCRE New line conventions\n+  Support new line conventions.\n+\n+PCRE new line SEQ\n+  Support new line sequence.\n+\n+PCRE look around\n+  Support PCRE look around.\n+\n+PCRE possessive qualifiers\n+  Support PCRE possessive qualifiers.\n+\n+PCRE subroutine references\n+  Support PCRE subroutine references.\n+\n+PCRE UTF 8\n+  Support UTF-8.\n+\n+PCRE UTF 16\n+  Support UTF-16.\n+\n+PCRE UTF 32\n+  Support UTF-32.\n+\n+PCRE word boundary\n+  Support word boundaries.\n+\n+Run time compilation\n+  Support compilation during run time.\n+\n+Armv8\n+  Support armv8 (64bit) architecture.\n+\n+x86\n+  Support x86 architecture.\n+\n+.. note::\n+\n+   Most of the features capabilities should be provided by the drivers via the\n+   RegEx ``info_get`` operation.\n+\n+\n+References\n+==========\n+\n+  * `PCRE: PCRE pattern man page <https://www.pcre.org/original/doc/html/pcrepattern.html>`_\n+\n+\n+Features Table\n+==============\n+\n+.. _table_regex_pmd_features:\n+\n+.. include:: overview_feature_table.txt\n+\n+.. Note::\n+\n+   Features marked with \"P\" are partially supported. Refer to the appropriate\n+   driver guide in the following sections for details.\ndiff --git a/doc/guides/regexdevs/index.rst b/doc/guides/regexdevs/index.rst\nnew file mode 100644\nindex 0000000..04d8723\n--- /dev/null\n+++ b/doc/guides/regexdevs/index.rst\n@@ -0,0 +1,15 @@\n+..  SPDX-License-Identifier: BSD-3-Clause\n+    Copyright 2020 Mellanox Technologies, Ltd\n+\n+REGEX Device Drivers\n+====================\n+\n+The following are a list of RegEx (Regular Expression) device drivers,\n+which can be used from an application through RegEx API.\n+\n+.. toctree::\n+    :maxdepth: 2\n+    :numbered:\n+\n+    features_overview\n+    mlx5\ndiff --git a/doc/guides/regexdevs/mlx5.rst b/doc/guides/regexdevs/mlx5.rst\nnew file mode 100644\nindex 0000000..ac340c4\n--- /dev/null\n+++ b/doc/guides/regexdevs/mlx5.rst\n@@ -0,0 +1,70 @@\n+..  SPDX-License-Identifier: BSD-3-Clause\n+   Copyright 2020 Mellanox Technologies, Ltd\n+\n+.. include:: <isonum.txt>\n+\n+MLX5 RegEx driver\n+=================\n+\n+The MLX5 RegEx (Regular Expression) driver library\n+(**librte_pmd_mlx5_regex**) provides support for **Mellanox BlueField 2**\n+families of 25/50/100/200 Gb/s adapters.\n+\n+.. note::\n+\n+   Due to external dependencies, this driver is disabled in default\n+   configuration of the \"make\" build. It can be enabled with\n+   ``CONFIG_RTE_LIBRTE_MLX5_REGEX_PMD=y`` or by using \"meson\" build system which\n+   will detect dependencies.\n+\n+\n+Design\n+------\n+\n+This PMD is configuring the RegEx HW engine.\n+For the PMD to work, the application must supply\n+a precompiled rule file in rof2 format.\n+\n+The PMD uses libibverbs and libmlx5 to access the device firmware\n+or directly the hardware components.\n+There are different levels of objects and bypassing abilities\n+to get the best performances:\n+\n+- Verbs is a complete high-level generic API\n+- Direct Verbs is a device-specific API\n+- DevX allows to access firmware objects\n+\n+Enabling librte_pmd_mlx5_regex causes DPDK applications to be linked against\n+libibverbs.\n+\n+A Mellanox mlx5 PCI device can be probed by either net/mlx5 driver or regex/mlx5\n+driver but not in parallel. Hence, the user should decide the driver by disabling\n+the net device using ``CONFIG_RTE_LIBRTE_MLX5_PMD``. when using the make build system\n+or ``disable_drivers`` option when using the meson build with ``net/mlx5,vdpa/mlx5``\n+\n+Supported NICs\n+--------------\n+\n+* Mellanox\\ |reg| BlueField 2 SmartNIC\n+\n+Prerequisites\n+-------------\n+\n+- BlueField 2 running Mellonx supported kernel.\n+- Enable the RegEx caps using system call from the BlueField 2.\n+- Official support is not yet released.\n+\n+Compilation options\n+~~~~~~~~~~~~~~~~~~~\n+\n+These options can be modified in the ``.config`` file.\n+\n+- ``CONFIG_RTE_LIBRTE_MLX5_REGEX_PMD`` (default **n**)\n+\n+  Toggle compilation of librte_pmd_mlx5 itself.\n+\n+\n+Run-time configuration\n+~~~~~~~~~~~~~~~~~~~~~~\n+\n+- **ethtool** operations on related kernel interfaces also affect the PMD.\ndiff --git a/doc/guides/rel_notes/release_20_08.rst b/doc/guides/rel_notes/release_20_08.rst\nindex f19b748..313e5c6 100644\n--- a/doc/guides/rel_notes/release_20_08.rst\n+++ b/doc/guides/rel_notes/release_20_08.rst\n@@ -81,6 +81,8 @@ New Features\n   Added the RegEx library which provides an API for offload of regular\n   expressions search operations to hardware or software accelerator devices.\n \n+  Added Mellanox RegEx PMD, allowing to offload RegEx searches.\n+\n * **Added eCPRI protocol support in rte_flow.**\n \n   The ``ECPRI`` item has been added to support eCPRI packet offloading for\ndiff --git a/drivers/Makefile b/drivers/Makefile\nindex c70bdf9..b814e05 100644\n--- a/drivers/Makefile\n+++ b/drivers/Makefile\n@@ -18,6 +18,8 @@ DIRS-$(CONFIG_RTE_LIBRTE_PMD_QAT) += common/qat\n DEPDIRS-common/qat := bus mempool\n DIRS-$(CONFIG_RTE_LIBRTE_COMPRESSDEV) += compress\n DEPDIRS-compress := bus mempool\n+DIRS-$(CONFIG_RTE_LIBRTE_REGEXDEV) += regex\n+DEPDIRS-regex := common\n DIRS-$(CONFIG_RTE_LIBRTE_VHOST) += vdpa\n DEPDIRS-vdpa := common bus mempool\n DIRS-$(CONFIG_RTE_LIBRTE_EVENTDEV) += event\ndiff --git a/drivers/common/Makefile b/drivers/common/Makefile\nindex df2e840..cbc7107 100644\n--- a/drivers/common/Makefile\n+++ b/drivers/common/Makefile\n@@ -36,7 +36,7 @@ ifneq (,$(findstring y,$(IAVF-y)))\n DIRS-y += iavf\n endif\n \n-ifeq ($(findstring y,$(CONFIG_RTE_LIBRTE_MLX5_PMD)$(CONFIG_RTE_LIBRTE_MLX5_VDPA_PMD)),y)\n+ifeq ($(findstring y,$(CONFIG_RTE_LIBRTE_MLX5_PMD)$(CONFIG_RTE_LIBRTE_MLX5_VDPA_PMD)$(CONFIG_RTE_LIBRTE_MLX5_REGEX_PMD)),y)\n DIRS-y += mlx5\n endif\n \ndiff --git a/drivers/common/mlx5/Makefile b/drivers/common/mlx5/Makefile\nindex f6c762b..5f12be3 100644\n--- a/drivers/common/mlx5/Makefile\n+++ b/drivers/common/mlx5/Makefile\n@@ -10,7 +10,7 @@ LIB_GLUE_BASE = librte_pmd_mlx5_glue.so\n LIB_GLUE_VERSION = 20.02.0\n \n # Sources.\n-ifeq ($(findstring y,$(CONFIG_RTE_LIBRTE_MLX5_PMD)$(CONFIG_RTE_LIBRTE_MLX5_VDPA_PMD)),y)\n+ifeq ($(findstring y,$(CONFIG_RTE_LIBRTE_MLX5_PMD)$(CONFIG_RTE_LIBRTE_MLX5_VDPA_PMD)$(CONFIG_RTE_LIBRTE_MLX5_REGEX_PMD)),y)\n ifneq ($(CONFIG_RTE_IBVERBS_LINK_DLOPEN),y)\n SRCS-y += linux/mlx5_glue.c\n endif\n@@ -344,7 +344,7 @@ mlx5_autoconf.h: mlx5_autoconf.h.new\n \t\tcmp '$<' '$@' $(AUTOCONF_OUTPUT) || \\\n \t\tmv '$<' '$@'\n \n-ifeq ($(findstring y,$(CONFIG_RTE_LIBRTE_MLX5_PMD)$(CONFIG_RTE_LIBRTE_MLX5_VDPA_PMD)),y)\n+ifeq ($(findstring y,$(CONFIG_RTE_LIBRTE_MLX5_PMD)$(CONFIG_RTE_LIBRTE_MLX5_VDPA_PMD)$(CONFIG_RTE_LIBRTE_MLX5_REGEX_PMD)),y)\n $(SRCS-y:.c=.o): mlx5_autoconf.h\n endif\n \ndiff --git a/drivers/meson.build b/drivers/meson.build\nindex 161cfda..e76ebdd 100644\n--- a/drivers/meson.build\n+++ b/drivers/meson.build\n@@ -9,6 +9,7 @@ dpdk_driver_classes = ['common',\n \t       'raw',     # depends on common, bus and net.\n \t       'crypto',  # depends on common, bus and mempool (net in future).\n \t       'compress', # depends on common, bus, mempool.\n+\t       'regex', # depends on common, bus, regexdev.\n \t       'vdpa',    # depends on common, bus and mempool.\n \t       'event',   # depends on common, bus, mempool and net.\n \t       'baseband'] # depends on common and bus.\ndiff --git a/drivers/regex/Makefile b/drivers/regex/Makefile\nnew file mode 100644\nindex 0000000..906b205\n--- /dev/null\n+++ b/drivers/regex/Makefile\n@@ -0,0 +1,8 @@\n+# SPDX-License-Identifier: BSD-3-Clause\n+# Copyright 2020 Mellanox Technologies, Ltd\n+\n+include $(RTE_SDK)/mk/rte.vars.mk\n+\n+DIRS-$(CONFIG_RTE_LIBRTE_MLX5_REGEX_PMD) += mlx5\n+\n+include $(RTE_SDK)/mk/rte.subdir.mk\ndiff --git a/drivers/regex/meson.build b/drivers/regex/meson.build\nnew file mode 100644\nindex 0000000..75522e3\n--- /dev/null\n+++ b/drivers/regex/meson.build\n@@ -0,0 +1,9 @@\n+# SPDX-License-Identifier: BSD-3-Clause\n+# Copyright 2020 Mellanox Technologies, Ltd\n+\n+drivers = ['mlx5']\n+std_deps = ['ethdev', 'kvargs'] # 'ethdev' also pulls in mbuf, net, eal etc\n+std_deps += ['bus_pci']         # very many PMDs depend on PCI, so make std\n+std_deps += ['bus_vdev']        # same with vdev bus\n+config_flag_fmt = 'RTE_LIBRTE_@0@_PMD'\n+driver_name_fmt = 'rte_pmd_@0@'\ndiff --git a/drivers/regex/mlx5/Makefile b/drivers/regex/mlx5/Makefile\nnew file mode 100644\nindex 0000000..1a16ab2\n--- /dev/null\n+++ b/drivers/regex/mlx5/Makefile\n@@ -0,0 +1,34 @@\n+# SPDX-License-Identifier: BSD-3-Clause\n+# Copyright 2020 Mellanox Technologies, Ltd\n+\n+include $(RTE_SDK)/mk/rte.vars.mk\n+\n+# Library name.\n+LIB = librte_pmd_mlx5_regex.a\n+\n+# Sources.\n+SRCS-$(CONFIG_RTE_LIBRTE_MLX5_REGEX_PMD) += mlx5_regex.c\n+\n+# Basic CFLAGS.\n+CFLAGS += -O3\n+CFLAGS += -std=c11 -Wall -Wextra\n+CFLAGS += -g\n+CFLAGS += -I$(RTE_SDK)/drivers/common/mlx5\n+CFLAGS += -I$(BUILDDIR)/drivers/common/mlx5\n+CFLAGS += -D_BSD_SOURCE\n+CFLAGS += -D_DEFAULT_SOURCE\n+CFLAGS += -D_XOPEN_SOURCE=600\n+CFLAGS += $(WERROR_FLAGS)\n+CFLAGS += -Wno-strict-prototypes\n+LDLIBS += -lrte_common_mlx5\n+LDLIBS += -lm\n+LDLIBS += -lrte_eal -lrte_mbuf\n+LDLIBS += -lrte_kvargs\n+LDLIBS += -lrte_bus_pci\n+\n+# A few warnings cannot be avoided in external headers.\n+CFLAGS += -Wno-error=cast-qual\n+\n+EXPORT_MAP := rte_pmd_mlx5_regex_version.map\n+\n+include $(RTE_SDK)/mk/rte.lib.mk\ndiff --git a/drivers/regex/mlx5/meson.build b/drivers/regex/mlx5/meson.build\nnew file mode 100644\nindex 0000000..8af2a3c\n--- /dev/null\n+++ b/drivers/regex/mlx5/meson.build\n@@ -0,0 +1,26 @@\n+# SPDX-License-Identifier: BSD-3-Clause\n+# Copyright 2020 Mellanox Technologies, Ltd\n+\n+if not is_linux\n+\tbuild = false\n+\treason = 'only supported on Linux'\n+\tsubdir_done()\n+endif\n+\n+fmt_name = 'mlx5_regex'\n+deps += ['common_mlx5', 'bus_pci', 'eal']\n+sources = files(\n+\t'mlx5_regex.c',\n+)\n+cflags_options = [\n+\t'-std=c11',\n+\t'-Wno-strict-prototypes',\n+\t'-D_BSD_SOURCE',\n+\t'-D_DEFAULT_SOURCE',\n+\t'-D_XOPEN_SOURCE=600'\n+]\n+foreach option:cflags_options\n+\tif cc.has_argument(option)\n+\t\tcflags += option\n+\tendif\n+endforeach\ndiff --git a/drivers/regex/mlx5/mlx5_regex.c b/drivers/regex/mlx5/mlx5_regex.c\nnew file mode 100644\nindex 0000000..b942a75\n--- /dev/null\n+++ b/drivers/regex/mlx5/mlx5_regex.c\n@@ -0,0 +1,5 @@\n+/* SPDX-License-Identifier: BSD-3-Clause\n+ * Copyright 2020 Mellanox Technologies, Ltd\n+ */\n+\n+#include \"mlx5_regex.h\"\ndiff --git a/drivers/regex/mlx5/mlx5_regex.h b/drivers/regex/mlx5/mlx5_regex.h\nnew file mode 100644\nindex 0000000..0e0495c\n--- /dev/null\n+++ b/drivers/regex/mlx5/mlx5_regex.h\n@@ -0,0 +1,8 @@\n+/* SPDX-License-Identifier: BSD-3-Clause\n+ * Copyright 2020 Mellanox Technologies, Ltd\n+ */\n+\n+#ifndef MLX5_REGEX_H\n+#define MLX5_REGEX_H\n+\n+#endif /* MLX5_REGEX_H */\ndiff --git a/drivers/regex/mlx5/rte_pmd_mlx5_regex_version.map b/drivers/regex/mlx5/rte_pmd_mlx5_regex_version.map\nnew file mode 100644\nindex 0000000..4a76d1d\n--- /dev/null\n+++ b/drivers/regex/mlx5/rte_pmd_mlx5_regex_version.map\n@@ -0,0 +1,3 @@\n+DPDK_21 {\n+\tlocal: *;\n+};\ndiff --git a/mk/rte.app.mk b/mk/rte.app.mk\nindex 0ce8cf5..1b9551e 100644\n--- a/mk/rte.app.mk\n+++ b/mk/rte.app.mk\n@@ -201,11 +201,12 @@ endif\n _LDLIBS-$(CONFIG_RTE_LIBRTE_LIO_PMD)        += -lrte_pmd_lio\n _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_MEMIF)      += -lrte_pmd_memif\n _LDLIBS-$(CONFIG_RTE_LIBRTE_MLX4_PMD)       += -lrte_pmd_mlx4\n-ifeq ($(findstring y,$(CONFIG_RTE_LIBRTE_MLX5_PMD)$(CONFIG_RTE_LIBRTE_MLX5_VDPA_PMD)),y)\n+ifeq ($(findstring y,$(CONFIG_RTE_LIBRTE_MLX5_PMD)$(CONFIG_RTE_LIBRTE_MLX5_VDPA_PMD)$(CONFIG_RTE_LIBRTE_MLX5_REGEX_PMD)),y)\n _LDLIBS-y                                   += -lrte_common_mlx5\n endif\n _LDLIBS-$(CONFIG_RTE_LIBRTE_MLX5_PMD)       += -lrte_pmd_mlx5\n _LDLIBS-$(CONFIG_RTE_LIBRTE_MLX5_VDPA_PMD)  += -lrte_pmd_mlx5_vdpa\n+_LDLIBS-$(CONFIG_RTE_LIBRTE_MLX5_REGEX_PMD)  += -lrte_pmd_mlx5_regex\n ifeq ($(CONFIG_RTE_IBVERBS_LINK_DLOPEN),y)\n _LDLIBS-y                                   += -ldl\n else ifeq ($(CONFIG_RTE_IBVERBS_LINK_STATIC),y)\n@@ -214,7 +215,7 @@ _LDLIBS-y                                   += --no-whole-archive\n _LDLIBS-y                                   += $(LIBS_IBVERBS_STATIC)\n _LDLIBS-y                                   += --whole-archive\n else\n-ifeq ($(findstring y,$(CONFIG_RTE_LIBRTE_MLX5_PMD)$(CONFIG_RTE_LIBRTE_MLX5_VDPA_PMD)),y)\n+ifeq ($(findstring y,$(CONFIG_RTE_LIBRTE_MLX5_PMD)$(CONFIG_RTE_LIBRTE_MLX5_VDPA_PMD)$(CONFIG_RTE_LIBRTE_MLX5_REGEX_PMD)),y)\n _LDLIBS-y                                   += -libverbs -lmlx5\n endif\n _LDLIBS-$(CONFIG_RTE_LIBRTE_MLX4_PMD)       += -libverbs -lmlx4\n",
    "prefixes": [
        "v4",
        "01/13"
    ]
}