regex/mlx5: support timestamp format

This patch adds support for the timestamp format settings for
the receive and send queues. If the firmware version x.30.1000
or above is installed and the NIC timestamps are configured
with the real-time format, the default zero values for newly
added fields cause the queue creation to fail.

The patch queries the timestamp formats supported by the hardware
and sets the configuration values in queue context accordingly.

Fixes: 92f2c6a30fe0 ("regex/mlx5: add send queue")
Cc: stable@dpdk.org

Signed-off-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
Acked-by: Ori Kam <orika@nvidia.com>
This commit is contained in:
Viacheslav Ovsiienko 2021-03-14 12:13:01 +00:00 committed by Raslan Darawsheh
parent 044423c4db
commit dd25bd201d
3 changed files with 3 additions and 0 deletions

View File

@ -160,6 +160,7 @@ mlx5_regex_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
rte_errno = ENOMEM;
goto dev_error;
}
priv->sq_ts_format = attr.sq_ts_format;
priv->ctx = ctx;
priv->nb_engines = 2; /* attr.regexp_num_of_engines */
ret = mlx5_devx_regex_register_read(priv->ctx, 0,

View File

@ -70,6 +70,7 @@ struct mlx5_regex_priv {
struct ibv_pd *pd;
struct mlx5_mr_share_cache mr_scache; /* Global shared MR cache. */
uint8_t is_bf2; /* The device is BF2 device. */
uint8_t sq_ts_format; /* Whether SQ supports timestamp formats. */
};
/* mlx5_regex.c */

View File

@ -158,6 +158,7 @@ regex_ctrl_create_sq(struct mlx5_regex_priv *priv, struct mlx5_regex_qp *qp,
.wq_attr = (struct mlx5_devx_wq_attr){
.uar_page = priv->uar->page_id,
},
.ts_format = mlx5_ts_format_conv(priv->sq_ts_format),
};
struct mlx5_devx_modify_sq_attr modify_attr = {
.state = MLX5_SQC_STATE_RDY,