From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM03-DM3-obe.outbound.protection.outlook.com (mail-dm3nam03hn0213.outbound.protection.outlook.com [104.47.41.213]) by dpdk.org (Postfix) with ESMTP id 835B01B2DB for ; Tue, 16 Jan 2018 16:18: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=ftAPEBetyoC0NGe6oteJCm53dqZO8MqBLQYUY+q6B3w=; b=SB/QB6XneT7YvcNYe1xm1T5PhGHcU9m6pi1wJrXuPtLO/mxsShRkYcSfQP/MiJcmBVOLsXVccFWctyanX4GQlxhwepNFZlykkWuSyqd5MsJOAyH3QZq2bImYIe6JzH+MQBJvHLa0NExcYa486KObPEA2DfK3g4Yflj04xojbnKc= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Pavan.Bhagavatula@cavium.com; Received: from Pavan-LT.caveonetworks.com (111.93.218.67) by MWHPR07MB3469.namprd07.prod.outlook.com (10.164.192.20) 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:18: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 20:47:26 +0530 Message-Id: <20180116151728.566-11-pbhagavatula@caviumnetworks.com> X-Mailer: git-send-email 2.14.1 In-Reply-To: <20180116151728.566-1-pbhagavatula@caviumnetworks.com> References: <20171130072406.15605-1-pbhagavatula@caviumnetworks.com> <20180116151728.566-1-pbhagavatula@caviumnetworks.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [111.93.218.67] X-ClientProxiedBy: MWHPR21CA0059.namprd21.prod.outlook.com (10.172.93.149) To MWHPR07MB3469.namprd07.prod.outlook.com (10.164.192.20) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 2e3dba90-c974-4886-6f01-08d55cf47051 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:MWHPR07MB3469; X-Microsoft-Exchange-Diagnostics: 1; MWHPR07MB3469; 3:Nh0WA4tvnLxVmzATvoegeXhaqpofljHvercZtF55l7HBjbKlJs4/bHBwlNLwlmVXTfN1omeDIYVdO7deEIw/M6ubSjzFAJHeFKayrXqx+g4HdQz9t7+8CwdPS3Chqaa5e/gYsuQYqM5HfBVwhPh8xuU4NGLIZ9YYfFSVe3oJ4T5a5+UCnDfkYa1DQGPNs4Q1f0EH737Xiqw3boWSaU77SR5eYcoR3UafnMzqwS6j2Efgy3kqQD0WhdlLnQzxa/UO; 25:aeOdvq7xsxPm3qUe70ONG9Cy+a0YJX0xfAD7fI1iE/BDQyX6LXcUJ4uiprlWDLrbrmi7jC1wbtcLOZvO9+CP4XwaMa5Uvfr+vvyup04EgFbmAFvM98RzSH9MEmMZ5MOqsSkBeGI1cc+Q4ZRs2aHC9opfgL1PZSTI09Qa+pJpqrefvsuhmAfCyP+G9TWX5ntX0ytM7oO6I3LvLZLdf///t/sPDJETgT1yAHK5ELLIQPlh2rU9mea+ZZbvP0EQBGJry8oKnqtd1iUMQcsLIash0jDmA58H5K7DD97BOV8EhA/HKNJ+PYyrMPEGuaAEqqukjpeAImeeSlkBwQTBuRVfpw==; 31:6AHgwPyGGEluYuEQxH5dsrCsbjg1VhndU/9laMBkVVx+G8etwBgaKeGjpMwcpIdoyC9qutgefBYomuSWqgqcBtK5DLm1AYF8bLYnxn/vpgEsWipr7xoMIbhmewH1Q9v5S4ec7OEVoUdyfMAe049dimRJhBd53gaCnw+n+1197RzVFKOT+mk3P7khDvRRDIo08rv3Acmf36I2fhIQtnTdCmlnexV0qf01ZmAfeztMK4M= X-MS-TrafficTypeDiagnostic: MWHPR07MB3469: X-Microsoft-Exchange-Diagnostics: 1; MWHPR07MB3469; 20:RXZywJbX//kBIiNxlAZdpSzwY8mwcZ7wFGlukjCvteIS7XL/lDUXztQ7vdWiDPNsq8VQki/SnBivMDTHh6EBGfwO7oyOgo5+RIzzJTcu2GKVWXgKzbW/tMEt2/ri1pEsX1P3Cfl3TzDQvRFRBZiCxDFV+IfUVfnQJnt3S+Id6naBOTsBmQlNfc1vVxNha/dq1dSbN9W4Z/zcU4ArD2FSJSVyrlctmE8G7949+eg+XhxPaOGPInBntggVvYeG64vlBO6HjLp1N4oC3JppFhcABcoTMX6p7OPc3KwbhzKMD0/1d1XHN9hrxR23N7/AH19bhG3tkti3CrVKlADPDMXSfJcEIlR7ZtBkJGDHSa/QAkqBN5eZgVXdpDnQ5JTAckZrdKog9q3ZxbKAT+kp2Tms0GAVesBcJpK7yN6kAH2J5mznYrrhQIJrjyn/L/TFro/CDz8mgOSWIE4gXK7oFl4mFqFJmpe8Jyi6kvuA4OTzsnzmaH3N+YzRZUd50AVMzscRV9qiN3T5/hpxupJLLI9/TkLDiKr/1oQ3ZdsAwVzs90D9dvHLoXCXTyTHyFMMIzOubkJbzZehTMb/odEd2iAcnVg3cuHHSOQoU4GUW0TUHlM=; 4:1K12zDevvm6TM3+keLSNrjNLzKkftu/0EAZ5AhjZbpGbL+ehLozsoBX1RTtc0PH8Re+Y7bIfTteqllmriLUP8YXzikYjGGS6y3tEN6x3/xr4BOXvyF623wUWhzq7uBVQomhuufbxtMFaT8NukD+4FX9tIYM50AqXUiI5VHBNjWr7tUgZp5bA/QAAmLK6DRrsR7UBU8LvEDyB1FEjad/qWOHWKXSeWtxCK80kP9nCyulC1lnLKqMeWuHJ69NeoZgFVTtqOcb3r/H1tNZDhVY1t7u4tgj2pTBb97GN1/UKXgrvgS30Ww0AflpD/vfhzQwG X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(66839620246622); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040470)(2401047)(8121501046)(5005006)(3002001)(3231023)(2232001)(2102002)(944501161)(93006095)(10201501046)(6041268)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123564045)(20161123560045)(20161123558120)(6072148)(201708071742011); SRVR:MWHPR07MB3469; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:MWHPR07MB3469; X-Forefront-PRVS: 0554B1F54F X-Forefront-Antispam-Report: SFV:SPM; SFS:(10009020)(366004)(396003)(346002)(376002)(39380400002)(39860400002)(199004)(189003)(2950100002)(4326008)(42882006)(5009440100003)(6666003)(53376002)(107886003)(25786009)(68736007)(16526018)(72206003)(478600001)(316002)(5660300001)(16586007)(966005)(26005)(50226002)(53936002)(7736002)(305945005)(36756003)(53416004)(6116002)(81166006)(19273905006)(8656006)(69596002)(8676002)(6306002)(6512007)(81156014)(8936002)(97736004)(386003)(6506007)(50466002)(66066001)(76176011)(59450400001)(52116002)(51416003)(2906002)(47776003)(48376002)(106356001)(3846002)(1076002)(105586002)(6486002)(50929007)(562404015); DIR:OUT; SFP:1501; SCL:5; SRVR:MWHPR07MB3469; H:Pavan-LT.caveonetworks.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX: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; MWHPR07MB3469; 23:vt5FFCtElUlbp94BgcTGtFH8cI06fyE1rnch8dTJ7?= =?us-ascii?Q?g/bR0hnGU54gKb4fA8RCRM0UK4/AlEYjyo1oMt0/7ChIVWCaNtRRSNvV4MNC?= =?us-ascii?Q?oDYogyxutymvMwbVGtNDhA1WjLa7fQ3KE0rJCc2QU3cOXdvlzHOozaOTplwn?= =?us-ascii?Q?wnwjCRiepC0db5V+Raq1xfq3Cxue9elZkb+WvE96miyqAY3snxf1S/KYdGHS?= =?us-ascii?Q?6yxbfW2tdBr7VGSIxjpmI5cp116Zr5sWFAORs5cqY7If31LD9uT371pBere+?= =?us-ascii?Q?I96Ffa4obb7Reahn+xE/yPgIgq9MQdaRf1+GbhTT2CTHJTeqEMzOBJP/Yao6?= =?us-ascii?Q?3HVVlyiUwtEsIXJnDsq+hYlwzVu8MtTmSw7PiaIhcp9nkfu6djJMy/JWax8s?= =?us-ascii?Q?OsUDF9G2fb/4BcXvmSH7JBUw6THcBz17k/W98D8PpiVQC2lZftl72I1demXH?= =?us-ascii?Q?hkaVPkNTLkht002nJ7fcX1AhbNHsuvuzxckQppyxrHSHwVFvjLuap7vWZfcw?= =?us-ascii?Q?15fXMIrjiVEhB5/bZpq7zp1+7FG7elGFnB8HxsjADWKQI+AnBD9q8k+abZAf?= =?us-ascii?Q?wlXjadYgEU3/+2h6R0kzKU4Gk2DcbEqmE+7TaPl1Ou3Go/6RTnmZ7T6KbV8M?= =?us-ascii?Q?1nSziyoiwzBC2De1gdLlPfc2hswrXpn9J3sMO8pdmgX2ox/NjAhO/bBbRIQ+?= =?us-ascii?Q?df8NSI6Y76R19nvms5qFi6gBUk42okYmLSxuSyn7sKNP8tY/lvw1RrpcgZ2n?= =?us-ascii?Q?rUBvungnTRTxfSFmP7jdQRs+8zWqrhP21X1ClqWXO9AIbf+uShgGR7f2J/9O?= =?us-ascii?Q?sivNb6JnOes08o6f+ovN2M4gvEKvS0DDGZdGhfwYd2vxvY73PgBd7tq1W3t7?= =?us-ascii?Q?KMs3O1vLdI9erNfSExFNIYbg4bbBtY5He9KS6/F6G2Lc1JAGOOj0IZD6OSy7?= =?us-ascii?Q?zC6rNdtvQKnF3eib4zsVR0L6+8jcxSuaO0rU4FRxCxSdlYZmzqHR8kyXnwca?= =?us-ascii?Q?L5wX76aMud/9mMRC53jzYHMOLByHOaej4ch3PyGbvKGJMu6O4KdQk+Vhr+BV?= =?us-ascii?Q?5cZLeAcKEybDe5LiBNKLdBf1IU2or44VeahmArkLOZIKeKkKqwBwuwYVWXJq?= =?us-ascii?Q?bK/31VXX/MTbWUEcMu+P154iP3ju3ETPKVEvWb8BtAmY2Ky9zKu1nCkd8ovk?= =?us-ascii?Q?aFrl0Mkx3u/67jwduKFZMg+S9/++Sc+SDlyncYxTrXEmboPl+Nsxg8fvxdx1?= =?us-ascii?Q?lwRQCm+qqkuEdEF0lU7grhcoZtUrn6pl2HDHPLoeoLUFnIDLtXDJsaifKSSw?= =?us-ascii?Q?WVhVhOD58ddkdVBaDKQKx5Z/TAyrXIj0I6ZA1Tjiv3wmgPGnGBAmAnt6ZMt9?= =?us-ascii?Q?KNF93A2bmZzUEJ7DqrxX/NOxzVaWbmprmrbnVLkXvVbthb1mAv3vMaGp87wT?= =?us-ascii?Q?EMkrbI5QQ=3D=3D?= X-Microsoft-Antispam-Message-Info: PU140oU6Ra3inGBDYjUVCX3N1EBm+VnxGj+TVHJ/YRjuB8sy5G1HP5bf4jPamWk8FKyI/VzbjAzwjuD1bLQnPUo1vx4gnIH/9NhPxlmDgSHjzhoc/0PUezuzIiCMOxwt X-Microsoft-Exchange-Diagnostics: 1; MWHPR07MB3469; 6:cVaXZRduJWaELSuz7wjrnnuVi5OjO+XMwx+Jf3Sab1n15L5K5a1ljB+tceGNhgftzh6xq8rN0i830vEq7TFT3W8WTGhzsPKlWaHaBuqqcHIdo41F6TyhMdD13PWqfyhotvc7TsKhznnBDzLImAyhBUq9G0yl3jyh5b/rFGKNuISLgdfklg7XoDYH+HjEBJebRdQuBIml0t9YM4JAM7bM2L27D+kczp29HTaGgWGeEe0ZBsG+nx8LpkM5FlRtS4BPsw+ylws4Cc6VM7EIMy6KvuZO6X0+QDmpFpj9+DMvSE7x4dLU0hxfmp9acjEx0MIDOKcDfR9dNV4R8frBO82llBkpfFyGgDE79YTXFV8el+w=; 5:2CylGrnIIDu6f+8LTIl3j2H04+dijvwEv70WRDppWRIJA3GTQVb5VsGA1PnzZ3BdpmtF0lN0ZWqlJwrD4yC2encLTRhWEFbJrleBs7YCDqH34i+CAACFyR8bbwCUgZVK2ejQfCk61ZqAh8vpi6TiiS7Zq2I2NgA/oOMN9azSJPM=; 24:z3BcOkOuEGws7+ycvJ8IwPe7RTo2zaIFZAPmJ/anxK0FVehCe4QEyT/btdkVAZw1mV4YOBLOmlTwpIdULNpbpQ==; 7:LzLqxuJcplyGH2GJfsy3r8lVfoqTYSl+sFgTfopIsyKej+ZQzqS65D48PpTKtwBtRRhi1iTmn6rW9iqkO7k6u2xWkE14RVshB7ZfKM22X5yhsrJPlywnBOdzxH5aSbUqM6xUwzL4Sa32AbzTHDX7CQXBcgeu98j6wRnyuSi25rdXQdtQDM859plAzNm5bQANwWaESZNhLdR+rOiP4seK0kYq+iM9JrYvI0+Oh7/1J2w8nhLWib+5h29pa2O91/Xx SpamDiagnosticOutput: 1:22 X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jan 2018 15:18:44.5515 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2e3dba90-c974-4886-6f01-08d55cf47051 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR07MB3469 Subject: [dpdk-dev] [PATCH v5 11/14] app/eventdev: add pipeline atq test 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:18:49 -0000 This is a pipeline test case that aims at testing the following with ``all types queue`` eventdev scheme. 1. Measure the end-to-end performance of an event dev with a ethernet dev. 2. Maintain packet ordering from Rx to Tx. The atq queue test functions as same as ``pipeline_queue`` test. The difference is, It uses, ``all type queue scheme`` instead of separate queues for each stage and thus reduces the number of queues required to realize the use case. Note: The --prod_type_ethdev is mandatory for running the application. Example command to run pipeline atq test: sudo build/app/dpdk-test-eventdev -c 0xf -s 0x8 --vdev=event_sw0 -- \ --test=pipeline_atq --wlcore=1 --prod_type_ethdev --stlist=ao Signed-off-by: Pavan Nikhilesh --- app/test-eventdev/Makefile | 1 + app/test-eventdev/test_pipeline_atq.c | 223 ++++++++++++++++++++++++++++++++++ 2 files changed, 224 insertions(+) create mode 100644 app/test-eventdev/test_pipeline_atq.c diff --git a/app/test-eventdev/Makefile b/app/test-eventdev/Makefile index 94b489f41..e600e21c4 100644 --- a/app/test-eventdev/Makefile +++ b/app/test-eventdev/Makefile @@ -27,5 +27,6 @@ SRCS-y += test_perf_atq.c SRCS-y += test_pipeline_common.c SRCS-y += test_pipeline_queue.c +SRCS-y += test_pipeline_atq.c include $(RTE_SDK)/mk/rte.app.mk diff --git a/app/test-eventdev/test_pipeline_atq.c b/app/test-eventdev/test_pipeline_atq.c new file mode 100644 index 000000000..6c9ac6119 --- /dev/null +++ b/app/test-eventdev/test_pipeline_atq.c @@ -0,0 +1,223 @@ +/* + * SPDX-License-Identifier: BSD-3-Clause + * Copyright 2017 Cavium, Inc. + */ + +#include "test_pipeline_common.h" + +/* See http://dpdk.org/doc/guides/tools/testeventdev.html for test details */ + +static __rte_always_inline int +pipeline_atq_nb_event_queues(struct evt_options *opt) +{ + RTE_SET_USED(opt); + + return rte_eth_dev_count(); +} + +static int +worker_wrapper(void *arg) +{ + RTE_SET_USED(arg); + rte_panic("invalid worker\n"); +} + +static int +pipeline_atq_launch_lcores(struct evt_test *test, struct evt_options *opt) +{ + struct test_pipeline *t = evt_test_priv(test); + + if (t->mt_unsafe) + rte_service_component_runstate_set(t->tx_service.service_id, 1); + return pipeline_launch_lcores(test, opt, worker_wrapper); +} + +static int +pipeline_atq_eventdev_setup(struct evt_test *test, struct evt_options *opt) +{ + int ret; + int nb_ports; + int nb_queues; + uint8_t queue; + struct rte_event_dev_info info; + struct test_pipeline *t = evt_test_priv(test); + uint8_t tx_evqueue_id = 0; + uint8_t queue_arr[RTE_EVENT_MAX_QUEUES_PER_DEV]; + uint8_t nb_worker_queues = 0; + + nb_ports = evt_nr_active_lcores(opt->wlcores); + nb_queues = rte_eth_dev_count(); + + /* One extra port and queueu for Tx service */ + if (t->mt_unsafe) { + tx_evqueue_id = nb_queues; + nb_ports++; + nb_queues++; + } + + + rte_event_dev_info_get(opt->dev_id, &info); + + const struct rte_event_dev_config config = { + .nb_event_queues = nb_queues, + .nb_event_ports = nb_ports, + .nb_events_limit = info.max_num_events, + .nb_event_queue_flows = opt->nb_flows, + .nb_event_port_dequeue_depth = + info.max_event_port_dequeue_depth, + .nb_event_port_enqueue_depth = + info.max_event_port_enqueue_depth, + }; + ret = rte_event_dev_configure(opt->dev_id, &config); + if (ret) { + evt_err("failed to configure eventdev %d", opt->dev_id); + return ret; + } + + struct rte_event_queue_conf q_conf = { + .priority = RTE_EVENT_DEV_PRIORITY_NORMAL, + .nb_atomic_flows = opt->nb_flows, + .nb_atomic_order_sequences = opt->nb_flows, + }; + /* queue configurations */ + for (queue = 0; queue < nb_queues; queue++) { + q_conf.event_queue_cfg = RTE_EVENT_QUEUE_CFG_ALL_TYPES; + + if (t->mt_unsafe) { + if (queue == tx_evqueue_id) { + q_conf.event_queue_cfg = + RTE_EVENT_QUEUE_CFG_SINGLE_LINK; + } else { + queue_arr[nb_worker_queues] = queue; + nb_worker_queues++; + } + } + + ret = rte_event_queue_setup(opt->dev_id, queue, &q_conf); + if (ret) { + evt_err("failed to setup queue=%d", queue); + return ret; + } + } + + /* port configuration */ + const struct rte_event_port_conf p_conf = { + .dequeue_depth = opt->wkr_deq_dep, + .enqueue_depth = info.max_event_port_dequeue_depth, + .new_event_threshold = info.max_num_events, + }; + + if (t->mt_unsafe) { + ret = pipeline_event_port_setup(test, opt, queue_arr, + nb_worker_queues, p_conf); + if (ret) + return ret; + + ret = pipeline_event_tx_service_setup(test, opt, tx_evqueue_id, + nb_ports - 1, p_conf); + } else + ret = pipeline_event_port_setup(test, opt, NULL, nb_queues, + p_conf); + + if (ret) + return ret; + + /* + * The pipelines are setup in the following manner: + * + * eth_dev_count = 2, nb_stages = 2, atq mode + * + * Multi thread safe : + * queues = 2 + * stride = 1 + * + * event queue pipelines: + * eth0 -> q0 ->tx + * eth1 -> q1 ->tx + * + * q0, q1 are configured as ATQ so, all the different stages can + * be enqueued on the same queue. + * + * Multi thread unsafe : + * queues = 3 + * stride = 1 + * + * event queue pipelines: + * eth0 -> q0 + * } (q3->tx) Tx service + * eth1 -> q1 + * + * q0,q1 are configured as stated above. + * q3 configured as SINGLE_LINK|ATOMIC. + */ + ret = pipeline_event_rx_adapter_setup(opt, 1, p_conf); + if (ret) + return ret; + + if (!evt_has_distributed_sched(opt->dev_id)) { + uint32_t service_id; + rte_event_dev_service_id_get(opt->dev_id, &service_id); + ret = evt_service_setup(service_id); + if (ret) { + evt_err("No service lcore found to run event dev."); + return ret; + } + } + + ret = rte_event_dev_start(opt->dev_id); + if (ret) { + evt_err("failed to start eventdev %d", opt->dev_id); + return ret; + } + + return 0; +} + +static void +pipeline_atq_opt_dump(struct evt_options *opt) +{ + pipeline_opt_dump(opt, pipeline_atq_nb_event_queues(opt)); +} + +static int +pipeline_atq_opt_check(struct evt_options *opt) +{ + return pipeline_opt_check(opt, pipeline_atq_nb_event_queues(opt)); +} + +static bool +pipeline_atq_capability_check(struct evt_options *opt) +{ + struct rte_event_dev_info dev_info; + + rte_event_dev_info_get(opt->dev_id, &dev_info); + if (dev_info.max_event_queues < pipeline_atq_nb_event_queues(opt) || + dev_info.max_event_ports < + evt_nr_active_lcores(opt->wlcores)) { + evt_err("not enough eventdev queues=%d/%d or ports=%d/%d", + pipeline_atq_nb_event_queues(opt), + dev_info.max_event_queues, + evt_nr_active_lcores(opt->wlcores), + dev_info.max_event_ports); + } + + return true; +} + +static const struct evt_test_ops pipeline_atq = { + .cap_check = pipeline_atq_capability_check, + .opt_check = pipeline_atq_opt_check, + .opt_dump = pipeline_atq_opt_dump, + .test_setup = pipeline_test_setup, + .mempool_setup = pipeline_mempool_setup, + .ethdev_setup = pipeline_ethdev_setup, + .eventdev_setup = pipeline_atq_eventdev_setup, + .launch_lcores = pipeline_atq_launch_lcores, + .eventdev_destroy = pipeline_eventdev_destroy, + .mempool_destroy = pipeline_mempool_destroy, + .ethdev_destroy = pipeline_ethdev_destroy, + .test_result = pipeline_test_result, + .test_destroy = pipeline_test_destroy, +}; + +EVT_TEST_REGISTER(pipeline_atq); -- 2.14.1