From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <rasesh.mody@qlogic.com>
Received: from mx0b-0016ce01.pphosted.com (mx0a-0016ce01.pphosted.com
 [67.231.148.157]) by dpdk.org (Postfix) with ESMTP id 93946376D
 for <dev@dpdk.org>; Sat,  7 May 2016 06:30:35 +0200 (CEST)
Received: from pps.filterd (m0095336.ppops.net [127.0.0.1])
 by mx0a-0016ce01.pphosted.com (8.16.0.17/8.16.0.17) with SMTP id
 u474T2Hi018008 for <dev@dpdk.org>; Fri, 6 May 2016 21:30:34 -0700
Received: from avcashub1.qlogic.com ([198.186.0.116])
 by mx0a-0016ce01.pphosted.com with ESMTP id 22s2eqgh83-1
 (version=TLSv1 cipher=AES128-SHA bits=128 verify=NOT)
 for <dev@dpdk.org>; Fri, 06 May 2016 21:30:34 -0700
Received: from avluser05.qlc.com (10.1.113.115) by qlc.com (10.1.4.191) with
 Microsoft SMTP Server id 14.3.235.1; Fri, 6 May 2016 21:30:34 -0700
Received: (from rmody@localhost)	by avluser05.qlc.com (8.14.4/8.14.4/Submit)
 id u474UYed022565;	Fri, 6 May 2016 21:30:34 -0700
X-Authentication-Warning: avluser05.qlc.com: rmody set sender to
 rasesh.mody@qlogic.com using -f
From: Rasesh Mody <rasesh.mody@qlogic.com>
To: <dev@dpdk.org>
CC: <Dept-EngDPDKDev@qlogic.com>, Sony Chacko <sony.chacko@qlogic.com>
Date: Fri, 6 May 2016 21:30:14 -0700
Message-ID: <1462595421-22505-3-git-send-email-rasesh.mody@qlogic.com>
X-Mailer: git-send-email 1.7.10.3
In-Reply-To: <1462595421-22505-1-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
disclaimer: bypass
X-Proofpoint-Virus-Version: vendor=nai engine=5800 definitions=8157
 signatures=670715
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0
 priorityscore=1501 suspectscore=1
 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 impostorscore=0
 lowpriorityscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx
 scancount=1 engine=8.0.1-1603290000 definitions=main-1605070067
Subject: [dpdk-dev] [PATCH 2/9] qede: get hash configuration
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: patches and discussions about DPDK <dev.dpdk.org>
List-Unsubscribe: <http://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <http://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Sat, 07 May 2016 04:30:36 -0000

From: Sony Chacko <sony.chacko@qlogic.com>

Add support for rss_hash_conf_get.

Signed-off-by: Sony Chacko <sony.chacko@qlogic.com>
---
 drivers/net/qede/qede_ethdev.c |   34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/drivers/net/qede/qede_ethdev.c b/drivers/net/qede/qede_ethdev.c
index 84ff6f8..6614632 100644
--- a/drivers/net/qede/qede_ethdev.c
+++ b/drivers/net/qede/qede_ethdev.c
@@ -794,6 +794,38 @@ int qede_rss_hash_update(struct rte_eth_dev *eth_dev,
 	return qdev->ops->vport_update(edev, &vport_update_params);
 }
 
+int qede_rss_hash_conf_get(struct rte_eth_dev *eth_dev,
+			   struct rte_eth_rss_conf *rss_conf)
+{
+	struct qede_dev *qdev = eth_dev->data->dev_private;
+	uint64_t hf;
+
+	if (rss_conf->rss_key_len < sizeof(qdev->rss_params.rss_key))
+		return -EINVAL;
+
+	if (rss_conf->rss_key)
+		memcpy(rss_conf->rss_key, qdev->rss_params.rss_key,
+		       sizeof(qdev->rss_params.rss_key));
+
+	hf = 0;
+	hf |= (qdev->rss_params.rss_caps & ECORE_RSS_IPV4)     ?
+			ETH_RSS_IPV4 : 0;
+	hf |= (qdev->rss_params.rss_caps & ECORE_RSS_IPV6)     ?
+			ETH_RSS_IPV6 : 0;
+	hf |= (qdev->rss_params.rss_caps & ECORE_RSS_IPV6)     ?
+			ETH_RSS_IPV6_EX : 0;
+	hf |= (qdev->rss_params.rss_caps & ECORE_RSS_IPV4_TCP) ?
+			ETH_RSS_NONFRAG_IPV4_TCP : 0;
+	hf |= (qdev->rss_params.rss_caps & ECORE_RSS_IPV6_TCP) ?
+			ETH_RSS_NONFRAG_IPV6_TCP : 0;
+	hf |= (qdev->rss_params.rss_caps & ECORE_RSS_IPV6_TCP) ?
+			ETH_RSS_IPV6_TCP_EX : 0;
+
+	rss_conf->rss_hf = hf;
+
+	return 0;
+}
+
 static const struct eth_dev_ops qede_eth_dev_ops = {
 	.dev_configure = qede_dev_configure,
 	.dev_infos_get = qede_dev_info_get,
@@ -822,6 +854,7 @@ static const struct eth_dev_ops qede_eth_dev_ops = {
 	.flow_ctrl_get = qede_flow_ctrl_get,
 	.dev_supported_ptypes_get = qede_dev_supported_ptypes_get,
 	.rss_hash_update = qede_rss_hash_update,
+	.rss_hash_conf_get = qede_rss_hash_conf_get,
 };
 
 static const struct eth_dev_ops qede_eth_vf_dev_ops = {
@@ -847,6 +880,7 @@ static const struct eth_dev_ops qede_eth_vf_dev_ops = {
 	.vlan_filter_set = qede_vlan_filter_set,
 	.dev_supported_ptypes_get = qede_dev_supported_ptypes_get,
 	.rss_hash_update = qede_rss_hash_update,
+	.rss_hash_conf_get = qede_rss_hash_conf_get,
 };
 
 static void qede_update_pf_params(struct ecore_dev *edev)
-- 
1.7.10.3