From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <Pavan.Bhagavatula@cavium.com>
Received: from NAM03-DM3-obe.outbound.protection.outlook.com
 (mail-dm3nam03on0061.outbound.protection.outlook.com [104.47.41.61])
 by dpdk.org (Postfix) with ESMTP id 9FFA31B333
 for <dev@dpdk.org>; Tue, 16 Jan 2018 18:47:44 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version;
 bh=qDmUpUJdGebIZksmcS7QM6Oqqkame/+acztPpahmH08=;
 b=cqS7+8dmgtjYdcAhdnYHQ1r+q/70ojrQMRktTl4KIqIDIMwwBeSkK5V2ez1UWLKAmeFh6X3xuz4EfcljXcdWiLOxppyj8cQwTBsqx3JVkx1a2rW+LOiB+Ee0u3dAXJwUufI1deXegsC8lNoc+lM8pJlLkxDbsRkvbcb/VykRRHw=
Authentication-Results: spf=none (sender IP is )
 smtp.mailfrom=Pavan.Bhagavatula@cavium.com; 
Received: from localhost.localdomain (111.93.218.67) by
 CY4PR07MB3464.namprd07.prod.outlook.com (10.171.252.145) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id
 15.20.407.7; Tue, 16 Jan 2018 17:47:39 +0000
From: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
To: jerin.jacob@caviumnetworks.com, santosh.shukla@caviumnetworks.com,
 harry.van.haaren@intel.com, gage.eads@intel.com, hemant.agrawal@nxp.com,
 nipun.gupta@nxp.com, liang.j.ma@intel.com
Cc: dev@dpdk.org,
	Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
Date: Tue, 16 Jan 2018 23:15:57 +0530
Message-Id: <20180116174607.10821-5-pbhagavatula@caviumnetworks.com>
X-Mailer: git-send-email 2.14.1
In-Reply-To: <20180116174607.10821-1-pbhagavatula@caviumnetworks.com>
References: <20171130072406.15605-1-pbhagavatula@caviumnetworks.com>
 <20180116174607.10821-1-pbhagavatula@caviumnetworks.com>
MIME-Version: 1.0
Content-Type: text/plain
X-Originating-IP: [111.93.218.67]
X-ClientProxiedBy: HK2PR02CA0158.apcprd02.prod.outlook.com (10.171.30.18) To
 CY4PR07MB3464.namprd07.prod.outlook.com (10.171.252.145)
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: a52bff93-cd7c-42ce-328a-08d55d093e8a
X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0;
 RULEID:(7020095)(4652020)(5600026)(4604075)(2017052603307)(7153060)(7193020);
 SRVR:CY4PR07MB3464; 
X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3464;
 3:t/P7Kipj5toRCveMscyH0lETW5lwknRf04B3V9yPsF6xwIEk8ZU9r4Lv1yxZLOQsefXzVGuap3ZuvBbMcvyCdw9mQtxU3cTsfjH/+o0dj25nGeDhGy09YRWAJZeBLPhgrUWcvR6vhiHz9YZra23W5DsdYao3lQ4/AqX9wxqzdWZaUTdm0qUL6BU99NoKoG5yJG1sEYzzFKFq6H4ojcD5X4AGu+L4Clgky/psmZMbAifUQuQv1JaMPEF6+jLOr7Ei;
 25:+yb86y8v7yvOleCT6kLHS4lsK6ltYZrNKiX2Gqf73MAKQof1ywLOVo7n4MMkpzWzrsdmZsRlnVuVP1uN1zOdA1He3Xg5sXh5jBQhDob5PlSVEYYOQgOqherOwnpt5jnfWqhsCz1dkDFuagoW3FEz2JgBpVDAPvJ1upYLN0fEztjjKJiXscneIqcLe7pq+itEnYM39Nxv66XId+ICZPs01KexavwRqO93Oa1B4gp3+JdeZaEouBYdfyOebvlU9iJEJenwSRQkPaUJK+X9iukm1xh/84mJVz/qc2P3narUl2OmwU5zQ76QfYIOjE8a/Eai9ICFQaqGiXgh6Xn+c4SyWQ==;
 31:4bAS/uzTDFSb9uWrF0knHogcs/vH1k8PJnI0OtW+01aE4mjFjKxSf52s8mQXa3QQjAFknd0k2LVNf13eDyvYENa0rO0IVKFkzduNM1/F7xdrCiI0hxLzWAv2yFB1qz8GbjtJyO/bbWXyl2AtxfxHK+WrggogijT4+hLRHcYK4YS7DbD7GniUVypa98KZKRemcxNIEAUdfCPe2KvnpjIjeM5irKDIh2ZvpdEJwNUnI5A=
X-MS-TrafficTypeDiagnostic: CY4PR07MB3464:
X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3464;
 20:vl8+5eyACGTW985PCf5YJlNtm1T28x6GACZZCCTrWsCfsfQCbFdTbUur2I/z1VG2a+QFxbbjkhAArti6BZRoCPD45OQVZ23sIQ8CZBXT7pVCR624CxRkEydCn/+i+CXic9XbumZhzqjAT5ABHd1n8tZQiq4iX2HN/8wVJTPH+Q2pCUnyKcP2FE1T/9EMWA17nFq3AyZ/kA39daIgc2+46lBn0zy7OYIL8xqDA546SWyMoaayZGvoWAnx42ymwo1Wb19AZN8KMpvjK90dF7+6B4ge/T1eS9tFOY/N+4rjB/hTkJaAJ+tWiYFl5V2j/DL8dSgrF8bqDB/2SvNOQUaSbj+q+R2VZ5iEQwNNhspU5/X41EIdz8zBkrOBVEZIP7IX8rts4bscegzbPG0F9h47690IKmHpPfAeOjd2+ja9hE5NU4GGdB3CGu2ZUYxjzCgfyFsuVTsM4PE8jfhFN8gIs0gB1nLcqdgKjQd5/cvX83/dLq2yQtEYF0MVficU1CS//Bc9bQAJWS+EwY9Kcjp+qv/W4nVK+KB2nKzJ/IUbY5PK/HrJPaE5um1tmBx9zcnjdzdsH3+9gPzCNk3HAucfkA89EOdl3lIaTLSEV1PGhq8=;
 4:wxKmAs3Xi+N9GApEMF/VNzF5NSGXGCI6BrsfztGq98F73KY+jN98jaDl0G/USkq9etwvLea0OQBmkb/am6zMRX+RQDhP9GD7eUnP6YIa+Ky5thdDfr4hEa916AeBrbO72nJxN+CEB00UO+rcN07bv2djDRXNGECyXtn2AMMsVP/JtTv1YwAhyKcHUCP11VBkNOD4qBZCScdHD5KP7U9Rgv+fkv82+j7iEnKFZJ3Bd5LVWsCSZjNZx7OZQV8Lf3EQuzze2T7V/hkbuZHMsBbNR2Yysy4MaLvzGJ4OCr4hICQGcZq3iI3z6Rgd+jjLG64v
X-Microsoft-Antispam-PRVS: <CY4PR07MB346481E175EA527B9DB140A280EA0@CY4PR07MB3464.namprd07.prod.outlook.com>
X-Exchange-Antispam-Report-Test: UriScan:(228905959029699);
X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0;
 RULEID:(6040470)(2401047)(5005006)(8121501046)(3231023)(944501161)(93006095)(3002001)(10201501046)(6041268)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123560045)(20161123562045)(20161123558120)(6072148)(201708071742011);
 SRVR:CY4PR07MB3464; BCL:0; PCL:0; RULEID:(100000803101)(100110400095);
 SRVR:CY4PR07MB3464; 
X-Forefront-PRVS: 0554B1F54F
X-Forefront-Antispam-Report: SFV:NSPM;
 SFS:(10009020)(6069001)(346002)(366004)(39860400002)(376002)(39380400002)(396003)(51234002)(189003)(199004)(81166006)(97736004)(8676002)(6116002)(5009440100003)(52116002)(305945005)(8936002)(107886003)(1076002)(51416003)(81156014)(25786009)(8656006)(4326008)(50466002)(6486002)(5660300001)(3846002)(7736002)(50226002)(16526018)(68736007)(106356001)(26005)(76176011)(53936002)(6512007)(59450400001)(47776003)(48376002)(16586007)(386003)(6506007)(66066001)(72206003)(2950100002)(36756003)(2906002)(105586002)(478600001)(316002)(6666003)(42882006)(42262002);
 DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR07MB3464; H:localhost.localdomain; FPR:;
 SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; 
Received-SPF: None (protection.outlook.com: cavium.com does not designate
 permitted sender hosts)
X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY4PR07MB3464;
 23:coV2JAYeKvqiwy4XlhrIefDjT2fd6+fejQAasFiCD?=
 =?us-ascii?Q?nIPimFO5vuKC3fHwUzaWeOTGd0NhVcbaK/gn0CtiFEX060CrV3heyibdTvVz?=
 =?us-ascii?Q?XBNXwEwQnHwNHp55phBYa6GvvOsAKQZyEp+GPF1FRKWyBcBaFCMEYeVdHGUy?=
 =?us-ascii?Q?sf+OWtCZ7/Z20Rm2404AOaRDav7zW9l0wMM/WB1Lj/yrkqr0BWo+NCibCzhu?=
 =?us-ascii?Q?+qFTLIe6ZJgPbToyZE6MTQpF2nFQlqCfV1nAoou9LSBLnOWvCt1LYXcx2/rz?=
 =?us-ascii?Q?/xvbVLJ0iJggmZCPZuIUKikyf60z0cp+LkVfgIDJO6TZtfDSXFQQyXR0Q5YU?=
 =?us-ascii?Q?gfq8WQyssHzxwyje1Ox5dQiyMbiUvgiE8d/AoTsLLzxX7yFPdc2LxlRm/N//?=
 =?us-ascii?Q?uLDUFSHJtlGBtH4o3oo4k9Cl/4PkCzcNkIykiayLdR66Dwka8lbrOUVlwsFc?=
 =?us-ascii?Q?0SAlhgCnGVGDPyuKxqraCb9VfFGhSaVrg48iwKFjXcZHhR3RgACmNQwBBqsJ?=
 =?us-ascii?Q?B5ADu0uBBPfk3MAfoOO7NZnindtOI5z32N4O+q6hKm8lpecT1C5HK+LZ+hPi?=
 =?us-ascii?Q?y0Ajcq4Xx00lkQ0HMle7TTfqX7s3FADx9vMX499RTwyj0MnRpmuMSYPvFsEs?=
 =?us-ascii?Q?I8HQ3H0/Fw2jvngIC4r1CMHockyxlo6s+OSFGOdk+jf6we1M6Xmh5uDeVVuJ?=
 =?us-ascii?Q?8ANtg+SPBkf8SepK3DQqnfujXtkUnxo7GrwdCSZSyPcBVGaNOQGhczrLC1Wz?=
 =?us-ascii?Q?vAJwMEP1nY0KRuBQgi+YYtqfbOOPYJhBc9sHt0wGrigxu9yJXcXwAPaXHOm9?=
 =?us-ascii?Q?06jbY3AFY82pqyatgTttdQCeIPRMgfbGJfu1zGILYS+HFMDdwOLikohTqZp4?=
 =?us-ascii?Q?47NhrFp5Ai3sDSuDyYBgWmg/ODmKbeZMoBJkKqiU+JpuXqEy+SbtrAyF9g6z?=
 =?us-ascii?Q?CBPT7uWeSs+5vOAKF1jSLaoO+O93eQc7Is0NY5UpysJ2tBd+ECQrWOeFS/w2?=
 =?us-ascii?Q?MWHK+c13hV7/KKQWdw3bnupVi5gi86F8sfyhbvh9Gi5qhxQYngL+GdUBivhX?=
 =?us-ascii?Q?iz83X4JC1sHZUC0CqMUNbu3JKwrIbJfl910TJxh71Xcp0jR2XWYBY5cUhXd0?=
 =?us-ascii?Q?SIzZT2qwB1n5L/lDwNCMvW0oD65onec59Kj3yP8AsD1PTLPmr1RMDwwiNbqX?=
 =?us-ascii?Q?pB11Nh15ddyfUAZdLK37X27j54ySEQApsvJfJl72P4wmBfBl399hq9i/PS3S?=
 =?us-ascii?Q?+CL1SlCanBpS6OVKyTlrg+WMuK3+9kT2TWJwfWi?=
X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3464;
 6:FH9c9tIiG5Op3HbAHrv8pBdPXWHxEwsyM/RaO46pVzbm2+Yi/ofmRzMpTlxEZyOx60++4f6fgTDYV1I7I2tOtpVxPjM4JPjT/fdmXV+WUim5PozYAVra6QIQJqXEGoIrSArOmwY7jJ3jXkSxtsUnQ8au/rV+RnwpMRvapwu/odp9O6a/AFNkEhRx+ye9KFShF4hCuFIMbaNtzgmJQEoiTlU5BUqxMTq8eM/CJhvVIgLD3dPAXf14OL+Z0xknaoAyLZ8L/g4miDylQ29Vpvjk69PHm+z2dZSkuBM2gBOVb6/yrCcNJoGhXN4YEpxqqJzy6s/Batju0wjGRlIoeNyOl0TFhqOWuOTuZ9FhNW1JTSw=;
 5:yRStJd3uu01FFdxpcUQ/AxK8dE+/Ii5fkotsb8R5jtk/AWtZDJgap9Ok5jPILBSTSdsmSxfvi+ABATa8XKuPGizgDhEF9u0PyhmvNFfGZE7c0JX9m9K/wENGEZ3W6LLppJFx+BmLcE39R3Yr3+4ExQIj+3RPhxJ0vdCyVJlDioc=;
 24:B9SorjQai2U/80ALvz4zhg7AzTz/aUNHXno1p9q/4pMH/iVyRVoD7fIn4MGRD+Lp/4Nmw7AA5UVyaT+q8pbtYDHxggsO4R/AhENZoBu1nxY=;
 7:earw21rw7ElRcd1Qr2X4uM9v44JnNuwCXQGfVyUOOU2HW6+mubBI76vPYl82bmOW7yrr1tLGfxvC9VgCglq8qotLUXJl/D2RFjvzofGYU2Oj+UD62Lo84rIjyFB6vUm/ep8VXd5swwkfOfylVf5J79grA0d5X8deVFlrEIR+rijwGLH4cxyv0aWr0Lyu/kpxB5IhAK9kg6NSjLZrxGSdIA0t4OQNzPHfeqka5Jm/raoDq13gQMf+9hoXJe7XxiIt
SpamDiagnosticOutput: 1:99
SpamDiagnosticMetadata: NSPM
X-OriginatorOrg: caviumnetworks.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jan 2018 17:47:39.0001 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: a52bff93-cd7c-42ce-328a-08d55d093e8a
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR07MB3464
Subject: [dpdk-dev] [PATCH v7 05/15] app/eventdev: add pipeline ethport
	setup and destroy
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://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: <https://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Tue, 16 Jan 2018 17:47:45 -0000

Add common ethdev port setup and destroy along with event dev destroy.

Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
Acked-by: Harry van Haaren <harry.van.haaren@intel.com>
---
 app/test-eventdev/test_pipeline_common.c | 91 ++++++++++++++++++++++++++++++++
 app/test-eventdev/test_pipeline_common.h |  3 ++
 2 files changed, 94 insertions(+)

diff --git a/app/test-eventdev/test_pipeline_common.c b/app/test-eventdev/test_pipeline_common.c
index 45e0652b8..c20815c25 100644
--- a/app/test-eventdev/test_pipeline_common.c
+++ b/app/test-eventdev/test_pipeline_common.c
@@ -89,6 +89,97 @@ pipeline_opt_check(struct evt_options *opt, uint64_t nb_queues)
 	return 0;
 }
 
+#define NB_RX_DESC			128
+#define NB_TX_DESC			512
+int
+pipeline_ethdev_setup(struct evt_test *test, struct evt_options *opt)
+{
+	int i;
+	uint8_t nb_queues = 1;
+	uint8_t mt_state = 0;
+	struct test_pipeline *t = evt_test_priv(test);
+	struct rte_eth_rxconf rx_conf;
+	struct rte_eth_conf port_conf = {
+		.rxmode = {
+			.mq_mode = ETH_MQ_RX_RSS,
+			.max_rx_pkt_len = ETHER_MAX_LEN,
+			.offloads = DEV_RX_OFFLOAD_CRC_STRIP,
+			.ignore_offload_bitfield = 1,
+		},
+		.rx_adv_conf = {
+			.rss_conf = {
+				.rss_key = NULL,
+				.rss_hf = ETH_RSS_IP,
+			},
+		},
+	};
+
+	RTE_SET_USED(opt);
+	if (!rte_eth_dev_count()) {
+		evt_err("No ethernet ports found.\n");
+		return -ENODEV;
+	}
+
+	for (i = 0; i < rte_eth_dev_count(); i++) {
+		struct rte_eth_dev_info dev_info;
+
+		memset(&dev_info, 0, sizeof(struct rte_eth_dev_info));
+		rte_eth_dev_info_get(i, &dev_info);
+		mt_state = !(dev_info.tx_offload_capa &
+				DEV_TX_OFFLOAD_MT_LOCKFREE);
+		rx_conf = dev_info.default_rxconf;
+		rx_conf.offloads = port_conf.rxmode.offloads;
+
+		if (rte_eth_dev_configure(i, nb_queues, nb_queues,
+					&port_conf)
+				< 0) {
+			evt_err("Failed to configure eth port [%d]\n", i);
+			return -EINVAL;
+		}
+
+		if (rte_eth_rx_queue_setup(i, 0, NB_RX_DESC,
+				rte_socket_id(), &rx_conf, t->pool) < 0) {
+			evt_err("Failed to setup eth port [%d] rx_queue: %d.\n",
+					i, 0);
+			return -EINVAL;
+		}
+		if (rte_eth_tx_queue_setup(i, 0, NB_TX_DESC,
+					rte_socket_id(), NULL) < 0) {
+			evt_err("Failed to setup eth port [%d] tx_queue: %d.\n",
+					i, 0);
+			return -EINVAL;
+		}
+
+		t->mt_unsafe |= mt_state;
+		rte_eth_promiscuous_enable(i);
+	}
+
+	return 0;
+}
+
+void
+pipeline_ethdev_destroy(struct evt_test *test, struct evt_options *opt)
+{
+	int i;
+	RTE_SET_USED(test);
+	RTE_SET_USED(opt);
+
+	for (i = 0; i < rte_eth_dev_count(); i++) {
+		rte_event_eth_rx_adapter_stop(i);
+		rte_eth_dev_stop(i);
+		rte_eth_dev_close(i);
+	}
+}
+
+void
+pipeline_eventdev_destroy(struct evt_test *test, struct evt_options *opt)
+{
+	RTE_SET_USED(test);
+
+	rte_event_dev_stop(opt->dev_id);
+	rte_event_dev_close(opt->dev_id);
+}
+
 int
 pipeline_mempool_setup(struct evt_test *test, struct evt_options *opt)
 {
diff --git a/app/test-eventdev/test_pipeline_common.h b/app/test-eventdev/test_pipeline_common.h
index 6e43eea2b..d8ab797bb 100644
--- a/app/test-eventdev/test_pipeline_common.h
+++ b/app/test-eventdev/test_pipeline_common.h
@@ -54,9 +54,12 @@ struct test_pipeline {
 int pipeline_test_result(struct evt_test *test, struct evt_options *opt);
 int pipeline_opt_check(struct evt_options *opt, uint64_t nb_queues);
 int pipeline_test_setup(struct evt_test *test, struct evt_options *opt);
+int pipeline_ethdev_setup(struct evt_test *test, struct evt_options *opt);
 int pipeline_mempool_setup(struct evt_test *test, struct evt_options *opt);
 void pipeline_opt_dump(struct evt_options *opt, uint8_t nb_queues);
 void pipeline_test_destroy(struct evt_test *test, struct evt_options *opt);
+void pipeline_eventdev_destroy(struct evt_test *test, struct evt_options *opt);
+void pipeline_ethdev_destroy(struct evt_test *test, struct evt_options *opt);
 void pipeline_mempool_destroy(struct evt_test *test, struct evt_options *opt);
 
 #endif /* _TEST_PIPELINE_COMMON_ */
-- 
2.14.1