From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rasesh Mody Subject: [PATCH 4/9] qede: rss redirection table query Date: Fri, 6 May 2016 21:30:16 -0700 Message-ID: <1462595421-22505-5-git-send-email-rasesh.mody@qlogic.com> References: <1462595421-22505-1-git-send-email-rasesh.mody@qlogic.com> Mime-Version: 1.0 Content-Type: text/plain Cc: , Sony Chacko To: Return-path: Received: from mx0b-0016ce01.pphosted.com (mx0b-0016ce01.pphosted.com [67.231.156.153]) by dpdk.org (Postfix) with ESMTP id D41775A40 for ; Sat, 7 May 2016 06:30:43 +0200 (CEST) Received: from pps.filterd (m0085408.ppops.net [127.0.0.1]) by mx0b-0016ce01.pphosted.com (8.16.0.17/8.16.0.17) with SMTP id u474U34U030175 for ; Fri, 6 May 2016 21:30:43 -0700 Received: from avcashub1.qlogic.com ([198.186.0.115]) by mx0b-0016ce01.pphosted.com with ESMTP id 22s225rjac-1 (version=TLSv1 cipher=AES128-SHA bits=128 verify=NOT) for ; Fri, 06 May 2016 21:30:43 -0700 In-Reply-To: <1462595421-22505-1-git-send-email-rasesh.mody@qlogic.com> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: Sony Chacko Add support for reta_query. Signed-off-by: Sony Chacko --- drivers/net/qede/qede_ethdev.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/drivers/net/qede/qede_ethdev.c b/drivers/net/qede/qede_ethdev.c index 2b91e09..3754454 100644 --- a/drivers/net/qede/qede_ethdev.c +++ b/drivers/net/qede/qede_ethdev.c @@ -860,6 +860,31 @@ int qede_rss_reta_update(struct rte_eth_dev *eth_dev, return qdev->ops->vport_update(edev, &vport_update_params); } +int qede_rss_reta_query(struct rte_eth_dev *eth_dev, + struct rte_eth_rss_reta_entry64 *reta_conf, + uint16_t reta_size) +{ + struct qede_dev *qdev = eth_dev->data->dev_private; + uint16_t i, idx, shift; + + if (reta_size > ETH_RSS_RETA_SIZE_128) { + struct ecore_dev *edev = &qdev->edev; + DP_ERR(edev, "reta_size %d is not supported\n", + reta_size); + } + + for (i = 0; i < reta_size; i++) { + idx = i / RTE_RETA_GROUP_SIZE; + shift = i % RTE_RETA_GROUP_SIZE; + if (reta_conf[idx].mask & (1ULL << shift)) { + uint8_t entry = qdev->rss_params.rss_ind_table[i]; + reta_conf[idx].reta[shift] = entry; + } + } + + return 0; +} + static const struct eth_dev_ops qede_eth_dev_ops = { .dev_configure = qede_dev_configure, .dev_infos_get = qede_dev_info_get, @@ -890,6 +915,7 @@ static const struct eth_dev_ops qede_eth_dev_ops = { .rss_hash_update = qede_rss_hash_update, .rss_hash_conf_get = qede_rss_hash_conf_get, .reta_update = qede_rss_reta_update, + .reta_query = qede_rss_reta_query, }; static const struct eth_dev_ops qede_eth_vf_dev_ops = { @@ -917,6 +943,7 @@ static const struct eth_dev_ops qede_eth_vf_dev_ops = { .rss_hash_update = qede_rss_hash_update, .rss_hash_conf_get = qede_rss_hash_conf_get, .reta_update = qede_rss_reta_update, + .reta_query = qede_rss_reta_query, }; static void qede_update_pf_params(struct ecore_dev *edev) -- 1.7.10.3