On Wed, Sep 14, 2016 at 10:16:05AM +0200, Nelio Laranjeiro wrote: > Signed-off-by: Nelio Laranjeiro <nelio.laranjeiro at 6wind.com>
Acked-by: Adrien Mazarguil <adrien.mazarguil at 6wind.com> > --- > drivers/net/mlx5/mlx5_rxq.c | 1 + > drivers/net/mlx5/mlx5_rxtx.c | 6 +++++- > drivers/net/mlx5/mlx5_rxtx.h | 2 ++ > 3 files changed, 8 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c > index f6f4315..65c264b 100644 > --- a/drivers/net/mlx5/mlx5_rxq.c > +++ b/drivers/net/mlx5/mlx5_rxq.c > @@ -926,6 +926,7 @@ rxq_ctrl_setup(struct rte_eth_dev *dev, struct rxq_ctrl > *rxq_ctrl, > .rxq = { > .elts_n = log2above(desc), > .mp = mp, > + .rss_hash = !!(priv->rxqs_n > 1), > }, > }; > struct ibv_exp_wq_attr mod; > diff --git a/drivers/net/mlx5/mlx5_rxtx.c b/drivers/net/mlx5/mlx5_rxtx.c > index b91b644..17ae5e4 100644 > --- a/drivers/net/mlx5/mlx5_rxtx.c > +++ b/drivers/net/mlx5/mlx5_rxtx.c > @@ -1338,12 +1338,16 @@ mlx5_rx_burst(void *dpdk_rxq, struct rte_mbuf **pkts, > uint16_t pkts_n) > /* Update packet information. */ > pkt->packet_type = 0; > pkt->ol_flags = 0; > + if (rxq->rss_hash) { > + pkt->hash.rss = ntohl(cqe->rx_hash_res); > + pkt->ol_flags = PKT_RX_RSS_HASH; > + } > if (rxq->csum | rxq->csum_l2tun | rxq->vlan_strip | > rxq->crc_present) { > if (rxq->csum) { > pkt->packet_type = > rxq_cq_to_pkt_type(cqe); > - pkt->ol_flags = > + pkt->ol_flags |= > rxq_cq_to_ol_flags(rxq, cqe); > } > if (cqe->l4_hdr_type_etc & > diff --git a/drivers/net/mlx5/mlx5_rxtx.h b/drivers/net/mlx5/mlx5_rxtx.h > index 9828aef..e813f38 100644 > --- a/drivers/net/mlx5/mlx5_rxtx.h > +++ b/drivers/net/mlx5/mlx5_rxtx.h > @@ -113,6 +113,8 @@ struct rxq { > unsigned int cqe_n:4; /* Log 2 of CQ elements. */ > unsigned int elts_n:4; /* Log 2 of Mbufs. */ > unsigned int port_id:8; > + unsigned int rss_hash:1; /* RSS hash result is enabled. */ > + unsigned int :9; /* Remaining bits. */ > volatile uint32_t *rq_db; > volatile uint32_t *cq_db; > uint16_t rq_ci; > -- > 2.1.4 > -- Adrien Mazarguil 6WIND