regex/mlx5: support info query

This commit adds the get info function.

Signed-off-by: Ori Kam <orika@mellanox.com>
This commit is contained in:
Ori Kam 2020-07-20 06:26:08 +00:00 committed by Thomas Monjalon
parent cfc672a90b
commit c126512bed
5 changed files with 39 additions and 1 deletions

View File

@ -8,6 +8,7 @@ LIB = librte_pmd_mlx5_regex.a
# Sources.
SRCS-$(CONFIG_RTE_LIBRTE_MLX5_REGEX_PMD) += mlx5_regex.c
SRCS-$(CONFIG_RTE_LIBRTE_MLX5_REGEX_PMD) += mlx5_rxp.c
# Basic CFLAGS.
CFLAGS += -O3

View File

@ -11,6 +11,7 @@ fmt_name = 'mlx5_regex'
deps += ['common_mlx5', 'bus_pci', 'eal', 'regexdev']
sources = files(
'mlx5_regex.c',
'mlx5_rxp.c',
)
cflags_options = [
'-std=c11',

View File

@ -20,7 +20,9 @@
int mlx5_regex_logtype;
static const struct rte_regexdev_ops mlx5_regexdev_ops = {0};
const struct rte_regexdev_ops mlx5_regexdev_ops = {
.dev_info_get = mlx5_regex_info_get,
};
static struct ibv_device *
mlx5_regex_get_ib_device_match(struct rte_pci_addr *addr)

View File

@ -11,4 +11,9 @@ struct mlx5_regex_priv {
struct rte_pci_device *pci_dev;
struct rte_regexdev *regexdev; /* Pointer to the RegEx dev. */
};
/* mlx5_rxp.c */
int mlx5_regex_info_get(struct rte_regexdev *dev,
struct rte_regexdev_info *info);
#endif /* MLX5_REGEX_H */

View File

@ -0,0 +1,29 @@
/* SPDX-License-Identifier: BSD-3-Clause
* Copyright 2020 Mellanox Technologies, Ltd
*/
#include <rte_log.h>
#include <rte_errno.h>
#include <rte_regexdev.h>
#include <rte_regexdev_core.h>
#include <rte_regexdev_driver.h>
#include "mlx5_regex.h"
#define MLX5_REGEX_MAX_MATCHES 255
#define MLX5_REGEX_MAX_PAYLOAD_SIZE UINT16_MAX
#define MLX5_REGEX_MAX_RULES_PER_GROUP UINT16_MAX
#define MLX5_REGEX_MAX_GROUPS UINT16_MAX
int
mlx5_regex_info_get(struct rte_regexdev *dev __rte_unused,
struct rte_regexdev_info *info)
{
info->max_matches = MLX5_REGEX_MAX_MATCHES;
info->max_payload_size = MLX5_REGEX_MAX_PAYLOAD_SIZE;
info->max_rules_per_group = MLX5_REGEX_MAX_RULES_PER_GROUP;
info->max_groups = MLX5_REGEX_MAX_GROUPS;
info->regexdev_capa = RTE_REGEXDEV_SUPP_PCRE_GREEDY_F;
info->rule_flags = 0;
return 0;
}