> RTE_FLOW_ITEM_TYPE_IB_BTH matches an InfiniBand base transport header. > We extend the match on the acknowledgment bit (BTH_A). > > Signed-off-by: Itamar Gozlan <igoz...@nvidia.com>
Series-acked-by: Matan Azrad <ma...@nvidia.com> > --- > drivers/net/mlx5/hws/mlx5dr_definer.c | 12 ++++++++++-- > drivers/net/mlx5/hws/mlx5dr_definer.h | 1 + > 2 files changed, 11 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/mlx5/hws/mlx5dr_definer.c > b/drivers/net/mlx5/hws/mlx5dr_definer.c > index 33d0f2d18e..b82af9d102 100644 > --- a/drivers/net/mlx5/hws/mlx5dr_definer.c > +++ b/drivers/net/mlx5/hws/mlx5dr_definer.c > @@ -177,7 +177,8 @@ struct mlx5dr_definer_conv_data { > X(SET_BE32, ipsec_spi, v->hdr.spi, > rte_flow_item_esp) \ > X(SET_BE32, ipsec_sequence_number, v->hdr.seq, > rte_flow_item_esp) \ > X(SET, ib_l4_udp_port, UDP_ROCEV2_PORT, > rte_flow_item_ib_bth) \ > - X(SET, ib_l4_opcode, v->hdr.opcode, > rte_flow_item_ib_bth) > + X(SET, ib_l4_opcode, v->hdr.opcode, > rte_flow_item_ib_bth) \ > + X(SET, ib_l4_bth_a, v->hdr.a, > rte_flow_item_ib_bth) \ > > /* Item set function format */ > #define X(set_type, func_name, value, item_type) \ @@ -2148,7 +2149,7 @@ > mlx5dr_definer_conv_item_ib_l4(struct mlx5dr_definer_conv_data *cd, > > if (m->hdr.se || m->hdr.m || m->hdr.padcnt || m->hdr.tver || > m->hdr.pkey || m->hdr.f || m->hdr.b || m->hdr.rsvd0 || > - m->hdr.a || m->hdr.rsvd1 || !is_mem_zero(m->hdr.psn, 3)) { > + m->hdr.rsvd1 || !is_mem_zero(m->hdr.psn, 3)) { > rte_errno = ENOTSUP; > return rte_errno; > } > @@ -2167,6 +2168,13 @@ mlx5dr_definer_conv_item_ib_l4(struct > mlx5dr_definer_conv_data *cd, > DR_CALC_SET_HDR(fc, ib_l4, qp); > } > > + if (m->hdr.a) { > + fc = &cd->fc[MLX5DR_DEFINER_FNAME_IB_L4_A]; > + fc->item_idx = item_idx; > + fc->tag_set = &mlx5dr_definer_ib_l4_bth_a_set; > + DR_CALC_SET_HDR(fc, ib_l4, ackreq); > + } > + > return 0; > } > > diff --git a/drivers/net/mlx5/hws/mlx5dr_definer.h > b/drivers/net/mlx5/hws/mlx5dr_definer.h > index 6b645f4cf0..bf026fa6bb 100644 > --- a/drivers/net/mlx5/hws/mlx5dr_definer.h > +++ b/drivers/net/mlx5/hws/mlx5dr_definer.h > @@ -136,6 +136,7 @@ enum mlx5dr_definer_fname { > MLX5DR_DEFINER_FNAME_OKS2_MPLS4_I, > MLX5DR_DEFINER_FNAME_IB_L4_OPCODE, > MLX5DR_DEFINER_FNAME_IB_L4_QPN, > + MLX5DR_DEFINER_FNAME_IB_L4_A, > MLX5DR_DEFINER_FNAME_MAX, > }; > > -- > 2.38.1