> -----Original Message----- > From: Ori Kam <or...@mellanox.com> > Sent: Thursday, September 26, 2019 9:29 > To: Matan Azrad <ma...@mellanox.com>; Shahaf Shuler > <shah...@mellanox.com>; Slava Ovsiienko <viachesl...@mellanox.com> > Cc: dev@dpdk.org; Ori Kam <or...@mellanox.com>; jingjing...@intel.com; > step...@networkplumber.org > Subject: [PATCH 08/13] net/mlx5: add support for hairpin hrxq > > The hairpin hrxq is based on the DevX hrxq but uses different pd. > > Signed-off-by: Ori Kam <or...@mellanox.com> Acked-by: Viacheslav Ovsiienko <viachesl...@mellanox.com>
> --- > drivers/net/mlx5/mlx5_rxq.c | 11 +++++++---- > 1 file changed, 7 insertions(+), 4 deletions(-) > > diff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c index > a673da9..bf39112 100644 > --- a/drivers/net/mlx5/mlx5_rxq.c > +++ b/drivers/net/mlx5/mlx5_rxq.c > @@ -2344,13 +2344,13 @@ struct mlx5_hrxq * > struct mlx5_ind_table_obj *ind_tbl; > int err; > struct mlx5_devx_obj *tir = NULL; > + struct mlx5_rxq_data *rxq_data = (*priv->rxqs)[queues[0]]; > + struct mlx5_rxq_ctrl *rxq_ctrl = > + container_of(rxq_data, struct mlx5_rxq_ctrl, rxq); > > queues_n = hash_fields ? queues_n : 1; > ind_tbl = mlx5_ind_table_obj_get(dev, queues, queues_n); > if (!ind_tbl) { > - struct mlx5_rxq_data *rxq_data = (*priv->rxqs)[queues[0]]; > - struct mlx5_rxq_ctrl *rxq_ctrl = > - container_of(rxq_data, struct mlx5_rxq_ctrl, rxq); > enum mlx5_ind_tbl_type type; > > type = rxq_ctrl->obj->type == MLX5_RXQ_OBJ_TYPE_IBV ? > @@ -2446,7 +2446,10 @@ struct mlx5_hrxq * > tir_attr.rx_hash_fn = MLX5_RX_HASH_FN_TOEPLITZ; > memcpy(&tir_attr.rx_hash_field_selector_outer, > &hash_fields, > sizeof(uint64_t)); > - tir_attr.transport_domain = priv->sh->tdn; > + if (rxq_ctrl->obj->type == > MLX5_RXQ_OBJ_TYPE_DEVX_HAIRPIN) > + tir_attr.transport_domain = priv->sh->td->id; > + else > + tir_attr.transport_domain = priv->sh->tdn; > memcpy(tir_attr.rx_hash_toeplitz_key, rss_key, rss_key_len); > tir_attr.indirect_table = ind_tbl->rqt->id; > if (dev->data->dev_conf.lpbk_mode) > -- > 1.8.3.1