[dpdk-dev] [RFC v4] regexdev: introduce regexdev subsystem

Jerin Jacob jerinjacobk at gmail.com
Thu Feb 27 15:55:38 CET 2020


On Thu, Feb 27, 2020 at 8:11 PM Ori Kam <orika at mellanox.com> wrote:
>
> From: Jerin Jacob <jerinj at marvell.com>
>
> Even though there are some vendors which offer Regex HW offload, due to
> lack of standard API, It is diffcult for DPDK consumer to use them
> in a portable way.
>
> This _RFC_ attempts to standardize the RegEx/DPI offload APIs for DPDK.
>
> This RFC crafted based on SW Regex API frameworks such as libpcre and
> hyperscan and a few of the RegEx HW IPs which I am aware of.
>
> RegEx pattern matching applications:
> * Next Generation Firewalls (NGFW)
> * Deep Packet and Flow Inspection (DPI)
> * Intrusion Prevention Systems (IPS)
> * DDoS Mitigation
> * Network Monitoring
> * Data Loss Prevention (DLP)
> * Smart NICs
> * Grammar based content processing
> * URL, spam and adware filtering
> * Advanced auditing and policing of user/application security policies
> * Financial data mining - parsing of streamed financial feeds
> * Application recognition.
> * Dmemory introspection.
> * Natural Language Processing (NLP)
> * Sentiment Analysis.
> * Big data databse acceleration.
> * Computational storage.
>
> Request to review from HW and SW RegEx vendors and RegEx application
> users to have portable DPDK API for RegEx.
>
> The API schematics are based cryptodev, eventdev and ethdev existing
> device API.
>
> Signed-off-by: Jerin Jacob <jerinj at marvell.com>
> Signed-off-by: Pavan Nikhilesh <pbhagavatula at marvell.com>
> Signed-off-by: Ori Kam <orika at mellanox.com>
> ---
> V4:
>  * Replace iova with mbuf.
>  * Small ML comments.
> V3:
>  * Change subject title.
> V2:
>  * Address ML comments.

> +/** Struct to hold scatter gather elements in ops. */
> +struct rte_regex_iov {
> +       RTE_STD_C11
> +       union {
> +               uint64_t u64;
> +               /**<  Allow 8-byte reserved on 32-bit system */
> +               void *buf_addr;
> +               /**< Virtual address of the pattern to be matched. */
> +       };
> +       rte_iova_t buf_iova;
> +       /**< IOVA address of the pattern to be matched. */
> +       uint16_t buf_size; /**< The buf size. */
> +};

rte_regex_iov structure is stale . Please remove it.


More information about the dev mailing list