common/mlx5: introduce user index field in completion
authorXueming Li <xuemingl@nvidia.com>
Thu, 4 Nov 2021 12:33:07 +0000 (20:33 +0800)
committerRaslan Darawsheh <rasland@nvidia.com>
Thu, 4 Nov 2021 21:55:42 +0000 (22:55 +0100)
On ConnectX devices the completion entry provides the dedicated 24-bit
field, that is filled up with some static value assigned at the
Receiving Queue creation moment. This patch declares this field. This is
a preparation step for supporting shared RQs and the field is supposed
to provide actual port index while handling the shared receiving
queue(s).

Signed-off-by: Xueming Li <xuemingl@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
drivers/common/mlx5/mlx5_prm.h
drivers/regex/mlx5/mlx5_regex_fastpath.c

index 4835d04..dac3cda 100644 (file)
@@ -393,7 +393,13 @@ struct mlx5_cqe {
        uint16_t hdr_type_etc;
        uint16_t vlan_info;
        uint8_t lro_num_seg;
-       uint8_t rsvd3[3];
+       union {
+               uint8_t user_index_bytes[3];
+               struct {
+                       uint8_t user_index_hi;
+                       uint16_t user_index_low;
+               } __rte_packed;
+       };
        uint32_t flow_table_metadata;
        uint8_t rsvd4[4];
        uint32_t byte_cnt;
index 4e7e69f..14661e0 100644 (file)
@@ -559,7 +559,7 @@ mlx5_regexdev_dequeue(struct rte_regexdev *dev, uint16_t qp_id,
                uint16_t wq_counter
                        = (rte_be_to_cpu_16(cqe->wqe_counter) + 1) &
                          MLX5_REGEX_MAX_WQE_INDEX;
-               size_t hw_qpid = cqe->rsvd3[2];
+               size_t hw_qpid = cqe->user_index_bytes[2];
                struct mlx5_regex_hw_qp *qp_obj = &queue->qps[hw_qpid];
 
                /* UMR mode WQE counter move as WQE set(4 WQEBBS).*/