From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM02-CY1-obe.outbound.protection.outlook.com (mail-cys01nam02on0058.outbound.protection.outlook.com [104.47.37.58]) by dpdk.org (Postfix) with ESMTP id ACAAD1B2D5 for ; Tue, 16 Jan 2018 16:40:48 +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=GlPQdeM2FaCGNQVrNw9YpQgbqmY0i86yKi+QxBQzIAA+torE3rDsXnx2I6eXDyxc+O1K3QJNA0UPfNuWzDWza7Em4Ra4WupMZCrBVenP68hpS89CBkuWltPkSYfWDfBDlDIVYcVczXz8TvEGBNnymlnTUvaYa6zfgKIYc1Olajs= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Pavan.Bhagavatula@cavium.com; Received: from Pavan-LT.caveonetworks.com (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 15:40:44 +0000 From: Pavan Nikhilesh 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 Date: Tue, 16 Jan 2018 21:09:54 +0530 Message-Id: <20180116154003.3762-5-pbhagavatula@caviumnetworks.com> X-Mailer: git-send-email 2.14.1 In-Reply-To: <20180116154003.3762-1-pbhagavatula@caviumnetworks.com> References: <20171130072406.15605-1-pbhagavatula@caviumnetworks.com> <20180116154003.3762-1-pbhagavatula@caviumnetworks.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [111.93.218.67] X-ClientProxiedBy: MWHPR02CA0016.namprd02.prod.outlook.com (10.168.209.154) To CY4PR07MB3464.namprd07.prod.outlook.com (10.171.252.145) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4bf11b73-9172-4be2-fbd6-08d55cf78360 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:xWoEv38WIo4W5lNp+fGLi6jgEgZB5rmnjSjOzC2I52JnhaCQPhL8Utz2RQGeG4MYQYu1AswotSsek0s3lzE8uC8BoIVnIbJhAI2KED4hzMSLJLBIv1FnHp5MQm3ZI1c8nTY9C83fcUFz337Ko67PZAfrQyxs6znQ7PT2btlyVSOwBtq6ofd5S2NC1oKjD1ZDYA6UKjV1b1rPtfSwHf4oGf2q+AeJajX4M7xchlJANJBgCfwphz3Zr0XnvM4AB8FH; 25:Yg+y7Jv00w1qdbswkLgyfc/vNY6Ww1p7sb/jblBmEdgO+n/O9vY6+fRH0AJBJiVzNE/5f6HQ95ivGUP+7Wrg20dwzmAOpFXNrhN6iNbiXVc/tQ2X4F5IYteSbGTuluin6D3WRdSl9y15+A7+X8P31bdH/FRDoLZj49LQp84tAU1OHVn0ZCTUMO/WEf73w/eJ9L7mROLKdMOXqEfHhOMvUnrIIaG/VQXZKjGAhJfBfCIYAqYonHhWBPnUPJk88NFB5kx6KAEd3jQlnMnMssIqY8g5dBOH/wdUCjosW39r8NomdhnWQueNEOEuofNpYBGvxdudZrJLSr4MNilYE1ezTA==; 31:FD1hIDG/jNBsB/JLMOqaGmSk/ljZq7zXElfGmfsRYyKTT5PP9cJx0O+12xiXza7KFzrzhh6wSm2SMAZNIrQR3tMRn11cVKBOdu90NyyCZqIsKotTl9ulDhhvXgUEEGnyGizSnUAP58nnavFkmwd8UvP9yNY0xqkhBywwKCpDuumDB04kU1ZrFCwWgTCh8yNeZ816KdC64RJLQ1SIRwOKePvr3sh2w0Et4vcbJJ9wW/w= X-MS-TrafficTypeDiagnostic: CY4PR07MB3464: X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3464; 20:HbpSWAj/THR6BzkYoC9BIybHumS191wQnwMrTXMSZv7XSfiWNJ+HnxqzC8ed/VFwPibx+EEl7CldhOJZ+ot/TEgFCBuonRpYJITwXNZ7EIo1paiHw/irkweUHhl9hGwXa9nclMS+NEIc1dW44LyaETTtaBVmgbXkKK9UFRwgWtqn2/qfZljUXptE1SMfdXTalFwJhxYVs4E0pytYvqI82DnhnnTZg9YhCMulUuYMgQnjmEVGKV86don/0oDQbv/HVWAXW72zJTk3ZFDxQ2JIU/rmJBE915qN0Z0dyXFpeMKUC/JNXCXZyyGLduUTlBrHTBawPXJf5C/UmoCjBF+HATrK4Cf+aBDn1ObkjZo0hKjBUBU5cxljW1eJiHuv/8jm2sjQyxml3o9sUL63TACqXDlNGWvbULnvXzsnx+tFYOQdmHXbF6HlDnK6d4mMVH7+NC0yFvVTbtsllUTwBm4cNvWMXGcgyZcV9zZZLR/Q7FEYT1KGNv7dBjKkK56cKyqAn/ODNnhrNRPy3IAYQ8omijxPTqqD/OHWjn0U6T+CwCrPd6hudGKRnkKU+uVrTIa1D40zBc8j9oUVKG461l5ppcep+CXU3fsG5HXohiib/uQ=; 4:itAVP6mojklviOg+NKiAKby5NXWo0QxIezr1vJdN5ah5Jbcfg348hOdSCWzvS4ArRHQAL7XR7cgFV0K+amhVhY1P4E+sC95fz8PTgQC34paEiKf6EOovxUCpwYwwTMcaFlcHNXhHyQDf0Z3HO6RaCqqq5stOosMi4HUIuoo/H+tj3C1ZxsyZkwhT6uzdP3u7ddi03yHVM/ene0BbbG1+Q+oaUB0TvDrF+Kjqczwp6OvdH08vzFYf63aPob8Au4OGTURXv/ArFpVzcUzjXF5VyzcLRaCT8e86nn4RTnRVIVkJ0RFDbOCvhYQUfIn7kYA5 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(228905959029699); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040470)(2401047)(5005006)(8121501046)(93006095)(3231023)(944501161)(10201501046)(3002001)(6041268)(20161123564045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123562045)(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)(39860400002)(366004)(346002)(39380400002)(396003)(376002)(51234002)(189003)(199004)(81166006)(97736004)(8676002)(6116002)(5009440100003)(52116002)(305945005)(8936002)(107886003)(1076002)(51416003)(81156014)(25786009)(8656006)(4326008)(50466002)(50226002)(6486002)(5660300001)(3846002)(7736002)(16526018)(68736007)(69596002)(42882006)(106356001)(26005)(76176011)(53936002)(6512007)(59450400001)(47776003)(48376002)(16586007)(386003)(6506007)(66066001)(72206003)(2950100002)(36756003)(2906002)(478600001)(105586002)(316002)(53416004)(6666003)(42262002); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR07MB3464; H:Pavan-LT.caveonetworks.com; 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:Nuh6zJSlO8cFI+0Ay26hr7juuPK3nvKuOoka4l/h+?= =?us-ascii?Q?gY45WwJX5Wg6/oOIHzu63fGTycGqm8PLviJg5z9eSOAEEOXdDH82yuCS5TDJ?= =?us-ascii?Q?KneJYbhgG3GB7ZNRQ3uTgAC+0TL8DnspPsZdX1aQXyyrb3VrJ0h9IMlNbdVg?= =?us-ascii?Q?Jt+2hjOf/2ERCi/OBz8hJu5jIF/kFnuzyA7AJr82CO6QXa1Ob0TP56jqLEAd?= =?us-ascii?Q?Pqujn0oTZVKI6OBkn8VL/MhwoGHCRXdHQRGti+5wQSXPwFEb26rf4riqsBsl?= =?us-ascii?Q?pRUnBcD1Yr5N6kwC8y0+qvaBCvHYl1mVABxvXD8/ZukUL0B0jHjQbCJYKTYQ?= =?us-ascii?Q?7B+j0+o2ES5aMxPYSwUEzB8tmJNic4JWvLRqIQuEFITdltKTijH/IILj7siI?= =?us-ascii?Q?EOztqy59LSn4oKbvKFEFHE0awh600AXMXGiuuXnHS1EExCNXmoT27EhNlJsl?= =?us-ascii?Q?9gAJTv9OalgZkm+AUmQ0S7A0R2LJOsi+D4HvT1JtRr0NWioIOoTWPaGDbzKH?= =?us-ascii?Q?rhZYI5kkFfcktvQw4kr/OOvmYpBV+rldblwGpBgdV1Aub5NgEfmbmV8pv3PS?= =?us-ascii?Q?OCTGDpR0y6nEsXevd3xEcJMb0kq6/+9tOWy/e0sKvK1dd80GtXteNyyN4P9m?= =?us-ascii?Q?CZ81MRyBuhXlAvEwEMWgZAcuavrHXacwpRvbJpfG4xymmpKulgeT8j/ihT1m?= =?us-ascii?Q?45aTeeONhe4jHR5El3AnLMEXVlZdk7+FkTJyM5Kxitkl3DbleLrV+kC+3jka?= =?us-ascii?Q?n3l6pi36dovfmFHl/Hc/kSnwfJyu8Dz8Ton3QbkMXJqPZ2MhAmDrfXr+oBtp?= =?us-ascii?Q?Gr0GE7nsQJiBl1TKhvCZXFdHIWPiVZP0CnBuC9F0sTpyq3/T0cMfKPhDSsCD?= =?us-ascii?Q?UX5bBujwHKC3hCuMrbpKkXts+vek5JCsKb8LFZ3dxh1pKPnsn2vOusx30Nra?= =?us-ascii?Q?61ynuYsp9hvSOx5BHc0zGEoM3K76NrQ3iTz5JhGQr+qDyrhq394dLQYOQLDI?= =?us-ascii?Q?qGXmWtmpK3pEVDRF83sELYKb05GyTFpb+lT3JsU2IrSuOJ9M6XMkQ+N3eyO9?= =?us-ascii?Q?Mv2mwx8lNFF7gfHqE8JDGCoiwMT6GUQkAbiQHbBoUqF7K0ch5C8fc7rPa4Ro?= =?us-ascii?Q?NYftkxCnz7ef2moYVW1bf+BxNqNE1eg/KsLaG4y1FFvFuHPyXYKY2cuU+n17?= =?us-ascii?Q?6HS0zsFHEY/4CCmAL0AHRyCxwnIsNeRKAosyR1cVjYnP+ts2RPmcEbyONLc7?= =?us-ascii?Q?64IbyWY/D5cqwE2BPzy4nLt+RHkys2GVD8eVgpMdEUbNwGX1BMja6GzeN4Fx?= =?us-ascii?B?dz09?= X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3464; 6:f+d82J+srSkeiDIh1Qb4aQ1LDiSlAgo/EgK8HUPWa5pJfWtByibDpNMiFPWVxy2vx7wC2Y/Z2N7X47cn7A1rf3RuA/v03fVBkxR71NjnRk4mNJHs+m/0w/JKqms5O3wwkTPvxDglatRrfcISqiJUIPwI2xb3nFaseOcD+1y8LXglWvjh6kFc7vEZQpEJhEs/D66rsrdLA0sTa7CcEQwzjba5QZhRYpL0QvUMUYVdAIvB3A3y+NOTq54pC7hvbj1rtp0ezpTEZy2WNVTgcdb0TH2VQrQ5GgGEkqAtYH4UXLdRc8ETUEwqvolQP4qv4We0cQMd+QJhoF0aoyi8tTjt3WvCFYu9gNpByXq7vj3gXPM=; 5:GzCzizNEuzRxx9u34DXi1Z9xiUUI3Q/5hp+B/d9HEU52jrDvqUakRrJNUabfocgVdtnp2uGvdpiURGonNzlumOXcdDmSJUTYfKHgqRgsEEBe51S0t8gE6Dg53IzkmUYvpH79pBIsBq1L37QvonjD+eVNe935VovzYcRKdaInz9w=; 24:HNpdzDYP1UU56pWs4mVLzmL3qDJjvysT7BytWQwRc2pB3XFWZzVbIBEQE8VOfTXdhAE/tIif21EK/PEPLuIYj4D5MdEZ+DQYLkJrj7mRn0A=; 7:NLzMwcCBBYk2GkiI+N0X1v5pwTFebzU8sI/dZkK1FJeIfiy3LIHl+rS05MK/lBEkRKuIx49fIBhTz7nH2Pc3BFDJ6AjFfhvdFDnE8HnKrBqxUuD/NFGswsWfaFVnZEXEnx6iTWCd2lNsqOu1LnEIiIyl/BsaU6YlWxD13QHNPJ/S7/OE96GU2DpH2Q+6Y/nke8bWpg4Hy8FJkr/H8bJofhlwLwZlw5B/y3w6oRQ2Hy9pDtkmF7NpfXfDVg73T0Ul SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jan 2018 15:40:44.7548 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4bf11b73-9172-4be2-fbd6-08d55cf78360 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 v6 05/14] 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 16 Jan 2018 15:40:49 -0000 Add common ethdev port setup and destroy along with event dev destroy. Signed-off-by: Pavan Nikhilesh Acked-by: Harry van Haaren --- 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