From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM01-SN1-obe.outbound.protection.outlook.com (mail-sn1nam01on0070.outbound.protection.outlook.com [104.47.32.70]) by dpdk.org (Postfix) with ESMTP id 063ACFAF0 for ; Tue, 21 Feb 2017 10:30:35 +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=N9eg1+UDfNM/yMr3GErYUbzCvGM2uIMOxVP6Y+cNNcQ=; b=gysfERZN4jhcvQqxTq94Pt8742xLgEUtHE9biBN6dXOIcyzFxwTExNfpvG+QL1IPUR+9k6YQudukuumjLP6w7rVKAPcnZpkK0bfGAr4bSbB72w4fX/DF4JFoN9dJ4igP3Gq5K2022pQwNot6g35jsparEmYfyRiodkt0AWEgXwY= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Shijith.Thotton@cavium.com; Received: from lio357.in.caveonetworks.com (14.140.2.178) by SN1PR07MB2285.namprd07.prod.outlook.com (10.164.47.155) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.919.13; Tue, 21 Feb 2017 09:30:32 +0000 From: Shijith Thotton To: dev@dpdk.org Cc: Jerin Jacob , Derek Chickles , Venkat Koppula , Mallesham Jatharakonda Date: Tue, 21 Feb 2017 14:57:03 +0530 Message-Id: <1487669225-30091-49-git-send-email-shijith.thotton@caviumnetworks.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1487669225-30091-1-git-send-email-shijith.thotton@caviumnetworks.com> References: <1487669225-30091-1-git-send-email-shijith.thotton@caviumnetworks.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [14.140.2.178] X-ClientProxiedBy: MA1PR01CA0089.INDPRD01.PROD.OUTLOOK.COM (10.174.56.29) To SN1PR07MB2285.namprd07.prod.outlook.com (10.164.47.155) X-MS-Office365-Filtering-Correlation-Id: 6b36d9ad-a4a9-479f-50a6-08d45a3c4971 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:SN1PR07MB2285; X-Microsoft-Exchange-Diagnostics: 1; SN1PR07MB2285; 3:DXI3kp+x/wGA4E5J+uqCP7eH2B7UkSCO87434FVI88m5ot7J2MG4AF4R4aKiJ1ezAiEOGVHYrHBQ0MC4SuZwnTDIeV7JG2KBnZCS/v61YV679kpM2QGeJB+HDUy2fyUGpYUoPGPv/HW8+0zFCdrtAV70IlHyRNrg6gLQ+nzGM8lynBycGf6D14x8rlZApLl137i8qYKB6mRFZH9F9rEunU4FtLv9mBcoCp7v0P72exYR4s88IdZGOwkFUMPSE/bObrNex4wZCnGWSqT540fUsQ==; 25:/D0ExsuGEhHRCTQfWn4KWzTffBmx5uNe2Fh/g+LBk6jkmdUtwtLd1vjKKP9LP6a9fwL0bXV9Gvtu6yX0i5z2se4cWyc47nFH5GG8yZLzrn5LJdU562SHor+51D2q5GI3qXOdLOcONgojpcVpeSbBsTOrE8B4ZL8xTFzgUl7LCsmHH9pUZkw5MVgWofGxmxVuXDh8C7g+0qhyWy0IO6XuQhd2lxRxtsHme9KlPLIUzvBTiCsYOGllNispm6PUVCrB4Q41YgowYWpEiCF8EeKsUowSLV9qhbIE/OPN0aJZHGDFBE/9nmEr6hcVD9Dud5+kxeGYIiyBVbu8n6zACy7/yuR05aDRHt0x+FXh7G/G6s7uXpoZo37vyCUoELJOaN8bVz9e8TZCmbnYrp8yplW1gX6kK4n55fIuq6Sr+WGY0P96E+iP2limh2I4/nh2/tbKNyyZZ5Vl9pHk28D9IcQqhA== X-Microsoft-Exchange-Diagnostics: 1; SN1PR07MB2285; 31:WfwKG958n7xDoLzqmsnoHNyeCM20ocPqF+SGMPLuiJkEDLQvHUnRXVaT/IHkOBr48UPBpe+C/JGF4dsg5xDQ6ieKpCtNqtHOj3jp0iPSEZ1zot6FoML880ul0MSrnkR7fBaZ+32lBXzGBDme7MXpi3ffXW3UgBE529jRt976+hlsq1oQrwqpMhSRhM94LZtC9YBC/U6WMXvkM7ejnHLA3X3zVzj0PezqeBjEM5n4jRstiSe/reK4YbXx/11gUGvD; 20:hciXndyLsOB4k4J6mM/Zao6fxg9apWMCtjOY1Rqqndy2Wqv+tCpN8ZSUgvYOlGMZOyq/+hLtCDdpLKpyJT/zx7qdMrQhuGo21bNLT3dlmUA8HSayPC8EsHsqJAHbGszac9k8NevJK78pYMBWDjA7K5aTeMZAJfL+m3UKSTv54jNkxCeeQ9nz0NuXu0Ky/TTrSbBj/p1zebNKRjwZzDdV8CgJPs4rOBMNJicp7xQENVoNbtGaNpaBJDVVb/zO7yFKxPEkFg32zUJIsQrpvPPxZQPs/v+7OQNudGOo4PpmWE8FSBXjq8eiUETV3pkdGm6xlEpkksUIC0MszyzBtjyCrXYNRJy4zG3Z5N42QMJLP2O+MqLqQvhieTJjaRv/VN9Brmv3P50kaliocNGAlyTJhR/RuZmtnt6A4tXicDx8E16C1ekTdaiqxaER6zg13w6Ic2bGwMzmwgeN1kYu+emGnS155q05oPfeBFfjFDp/wWm1Rx5Hr5Dcy8yFucfxnGDvKJ5bFhmw1WBBl+YPBAXzn77gfiaoxo6SYo5P/JmFKWJt7FtZvXjp4DZjs63wWYhX3EXI2zdku3Jq5ioh3uz5zAh9ZyXn7GKBV0UEpu6RpqE= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046)(6041248)(20161123555025)(20161123564025)(20161123562025)(20161123560025)(20161123558025)(6072148); SRVR:SN1PR07MB2285; BCL:0; PCL:0; RULEID:; SRVR:SN1PR07MB2285; X-Microsoft-Exchange-Diagnostics: 1; SN1PR07MB2285; 4:gyc5q+QIi7dJ7ISiPzYaM3wVn/PWl8g9UpE496WjsR0Fk8uU0O6QWp4RUx+WUTBezGVG9PVYxpOHBgiP9eqkWgNMfQADxI78fj8N/nynGJ37oSRFtQJ7oa9NOJwyksqmIv3p1JjNofPuLeeQWY1TH6m4jysT1qviVQhKgUik0Qp401SQ8Kv2lCqbQUxnnOXplKbhE0V0GiNXeSGOrROUGSSRszLMz6Twi7clgkBWP8tkK8StJyGlixgaVgVQMRJZSq1k2IwfavVagT9hheOD4uYPB0FuvxmQNbCBYISC+7Vd3vQTZ8jPemwjYf6V5H13UUwz0AVTPK8pktsDzZGPVDO3F3cwibuXr347cjqRLBIuwUE450i8vb44sYGOxhR7BKR1bD9al8oZ4t6HSqkBbgt3WZSdsfry0Sp1+JtB5pQcdKnPm+ze8Iiv2kePbojq5K2cFuJIGNkBgmxq2JDzgEBDXjd0jnV2PEABFAF9Dqelxv6TbNgAoT9fnWzt9VujEwAbSPGT+GjM4tZClGCTG2W8G1xI8CNSmnlyDUAwpggJq/iIBX2BW8MuoGpqzF7N56304zeP5sGE4j2sUgc6lqFhSX7lj4EqGUHv8RfEM24= X-Forefront-PRVS: 0225B0D5BC X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(7916002)(39450400003)(39410400002)(39830400002)(189002)(199003)(50226002)(81166006)(42186005)(2361001)(101416001)(81156014)(305945005)(3846002)(6116002)(5009440100003)(8676002)(105586002)(7736002)(53936002)(36756003)(110136004)(106356001)(6506006)(25786008)(38730400002)(2351001)(92566002)(48376002)(6486002)(97736004)(50466002)(5003940100001)(189998001)(68736007)(2906002)(4326007)(33646002)(76176999)(54906002)(5660300001)(6666003)(6916009)(50986999)(2950100002)(6512007)(4720700003)(42882006)(66066001)(47776003)(7099028)(110426004); DIR:OUT; SFP:1101; SCL:1; SRVR:SN1PR07MB2285; H:lio357.in.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; SN1PR07MB2285; 23:K/yAc9TVBvXXccvITk0TvIvNp93h5jDhWIwNCgwXH?= =?us-ascii?Q?y5LxpwM7AfOxB5VjJ69nLekkBhDGtcLiyh+/PoOl87KbPdsjfM+I/kMDVoYd?= =?us-ascii?Q?E73QFsuGJN4WsDMXf154w60xipfo/Pahrm4EXf3J6WpRr4mGxg+q07hoTUse?= =?us-ascii?Q?YqcEBUBQhCwJYVzk7/oA6fF97u7uBdiJFyFkdL8FlHQyYRPIO5t6TGUy6Yrc?= =?us-ascii?Q?1ygyLFbrkO0RyXtrNByOs6qtbObpXIlQ4lDPT9RzCHwSd7LkhRXG0BxKJwcu?= =?us-ascii?Q?btbII45c4NT0WKERGHVZvBslS/KpajSwVLh6ntESTpSkCI6tG8Yw9PaKC9gl?= =?us-ascii?Q?W0UlLqATXdzXlvWnDRjQpoglUclVO85KFtmcFd4NYYMuJFW6V7sXRaArUZT4?= =?us-ascii?Q?UtcDDxxdIGfRPN1EB2uT77RhCjIkS2aABEkdKP2tJe1pM/IAXuPXXwUmVzOK?= =?us-ascii?Q?xRmXWxwQBfD2ct7BXs2z5c9Q/NyU/sK9Yehi3kd4+i75/EtjzAc3lbEchb13?= =?us-ascii?Q?igRkpmi0oOV1i8/lXzvy1+5bXkCkTcjTgwIpss3+hvLkQPvDDnS8ybw7k7hI?= =?us-ascii?Q?8DBuNhxk16nQZjDoKsmrH0h+H1TURZJGo/IF3QJP9Xo/JmDQfgFiNHbajMrN?= =?us-ascii?Q?yN5i8R3lX11o0vmjCgcB6QbCOKAAxS8qRZuUGJ9IVpWhbqLX0TPCc8DeXLb2?= =?us-ascii?Q?MrI0d0eqPTqG4poKgEuT4x52tG3G6nrZ8GgP7a7bLatpCzl0s3mIVt53FpN3?= =?us-ascii?Q?axed8c27e5tZgLvTVuFIbXaJXVfBBfPQQdlFMqvC5mhkD3x91XqU2s0dRWfH?= =?us-ascii?Q?jkMp4znz0tGxbGFnsxFaXNDP9WpKGsKdiKnIfL1IVHfVmetRSssaC1UGKDJV?= =?us-ascii?Q?JfvpbKFQskYoUO9S8KRCnRdxw7IHz1NdPmCWcvbbpjSKRYPNQl1UmVKGyajA?= =?us-ascii?Q?JvrXNsVoPQxJQt0eBA2QpwO3+G6W/NFF/MWecicLF+2qzXdYFV5QUCaEsci7?= =?us-ascii?Q?Y6JA6O7MnWSMc8ysnE1Hx3XZm+D+hJ/wE6WcQbS7hBlAtZCqta7TJzlXdHUb?= =?us-ascii?Q?XD+f1OtNqwl9WqhIc3F/SBFGHkh4DesrfjdcJEr3FF+IReQCXlnKJRfs6giY?= =?us-ascii?Q?/vThhD7wDV6on3zLiBQ0fI+v4zwNyYyjwyBNqeCBe6bPzOb3Uy4C6jNPQYBz?= =?us-ascii?Q?uw5zc0YGJ7LSft1hOA3UR2Cvt4SLU1hwpWh7VjYdN9AauwC8/bQmiYXa5oa/?= =?us-ascii?Q?ZXSuTJ7e74wLXJGkgaysUvw8Dwd/M3jec+b6aCl789JMS52RLT8PWCyxHaE0?= =?us-ascii?Q?QTPcF0B5gup2x91deY7VvM=3D?= X-Microsoft-Exchange-Diagnostics: 1; SN1PR07MB2285; 6:lmClKb/y7V6n5YlDYxrPiqy8gsnL3QA+87sRjjrogHUUEgMciOxLKJcTT+5tb9DkuaXhfv5/3ZQmDYT5nbNuEQfToc57r8rCZuoWVXwXq6VHcgURtSdD9WVN2CAN1O9XOHaN7KdhnsDKp6KDdBRCC8owYpklpRDbcjfJexBnPGd5gLs9OfkLTjG7yZRcqnx9thT96l6PqrGXSgndX8e6zeHCBGGMdN40HZ3Tf5z0Gfhj5cOlGYqwWZkV3p+taMsfIsLc0OJ8kKzPck1f7/048JxwiiV1l0Ub+LuHGHBBAezP39w4tCa5yJxkHjIOXYMySgKbKa2EunC8s9sFgcuUEtLCuKXmlnyme6+l6A10HMvPrLicSddTD8xjLU+qnyTmYh9YKT3oDVAtTqJXWRDxFA==; 5:N1KJBqTAJnn3M8bW/dWz9+dTK+WUADHyE0XVTpQxMV6NGGaGgyIghB0/TyOyc4G3Re4nz5QLMqW13LSlHVh2SsDsfaXgdHAB4/5dOEpctg2bdL6gnB29oSDaoW9d/11arBJZVy1gXLynDESHBVr/nA==; 24:HaQz8KJla98Z1pJ8uLLg4bf++MSztE76jkIhH+J4RlvCc9cpSzxFfIEHcxb8wmPDe/ONZBoiIG0v9Db3UqyFcNUu+SE0se5DKlhBVbNAZ58= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; SN1PR07MB2285; 7:86K7JOI66+XR7u7TkRM4cDbe50kxKUINhhcOrzaskAUUBM4xKahaunWpH9fShvnodZSMPGVyiGhmKVNbRepgrUh0pVteeRHLY4vkZ5oDVhNa0c8lF9OlHWfDOZIVnioa/DBJpTznHM6DTwPO+sXCBg3I6V7KDO4w9+I8mTHhjIHRvKhvnBpL2ABuuaNxx2ati+M0g8bKKQ8PSRzQcWENqd2QLUKrXZgQ4fKrUl3HqYRV2R2s0AXYovxFAV2nbjey2A9bXHKyy7CG0iL1QW5xxJ7danWaKNzJJcPPy2NmnzbTuaWvMxNtkMLzYQ05icMY6zGP615ZT30wFz4Vije92A== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Feb 2017 09:30:32.3876 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR07MB2285 Subject: [dpdk-dev] [PATCH 48/50] net/liquidio: add API for dev close 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, 21 Feb 2017 09:30:36 -0000 Signed-off-by: Shijith Thotton Signed-off-by: Jerin Jacob Signed-off-by: Derek Chickles Signed-off-by: Venkat Koppula Signed-off-by: Mallesham Jatharakonda --- drivers/net/liquidio/lio_ethdev.c | 68 +++++++++++++++++++++++++++++++++++++-- drivers/net/liquidio/lio_ethdev.h | 5 +++ drivers/net/liquidio/lio_rxtx.c | 57 ++++++++++++++++++++++++++++++++ drivers/net/liquidio/lio_rxtx.h | 2 ++ 4 files changed, 130 insertions(+), 2 deletions(-) diff --git a/drivers/net/liquidio/lio_ethdev.c b/drivers/net/liquidio/lio_ethdev.c index d28ded8..cb2d048 100644 --- a/drivers/net/liquidio/lio_ethdev.c +++ b/drivers/net/liquidio/lio_ethdev.c @@ -1109,7 +1109,7 @@ struct rte_lio_xstats_name_off { * @return * - nothing */ -static void +void lio_dev_rx_queue_release(void *rxq) { struct lio_droq *droq = rxq; @@ -1204,7 +1204,7 @@ struct rte_lio_xstats_name_off { * @return * - nothing */ -static void +void lio_dev_tx_queue_release(void *txq) { struct lio_instr_queue *tq = txq; @@ -1434,6 +1434,68 @@ struct rte_lio_xstats_name_off { } /** + * Reset and stop the device. This occurs on the first + * call to this routine. Subsequent calls will simply + * return. NB: This will require the NIC to be rebooted. + * + * @param eth_dev + * Pointer to the structure rte_eth_dev + * + * @return + * - nothing + */ +static void +lio_dev_close(struct rte_eth_dev *eth_dev) +{ + struct lio_device *lio_dev = LIO_DEV(eth_dev); + uint32_t i; + + lio_dev_info(lio_dev, "closing port %d\n", eth_dev->data->port_id); + + if (lio_dev->intf_open) + lio_dev_stop(eth_dev); + + lio_wait_for_instr_fetch(lio_dev); + + lio_dev->fn_list.disable_io_queues(lio_dev); + + cn23xx_vf_set_io_queues_off(lio_dev); + + /* Reset iq regs (IQ_DBELL). + * Clear sli_pktx_cnts (OQ_PKTS_SENT). + */ + for (i = 0; i < lio_dev->nb_rx_queues; i++) { + struct lio_droq *droq = lio_dev->droq[i]; + + if (droq == NULL) + break; + + uint32_t pkt_count = rte_read32(droq->pkts_sent_reg); + + lio_dev_dbg(lio_dev, + "pending oq count %u\n", pkt_count); + rte_write32(pkt_count, droq->pkts_sent_reg); + } + + /* Do FLR for the VF */ + cn23xx_vf_ask_pf_to_do_flr(lio_dev); + + /* lio_free_mbox */ + lio_dev->fn_list.free_mbox(lio_dev); + + /* Free glist resources */ + rte_free(lio_dev->glist_head); + rte_free(lio_dev->glist_lock); + lio_dev->glist_head = NULL; + lio_dev->glist_lock = NULL; + + lio_dev->port_configured = 0; + + /* Delete all queues */ + lio_dev_clear_queues(eth_dev); +} + +/** * Enable tunnel rx checksum verification from firmware. */ static void @@ -1679,6 +1741,7 @@ static int lio_dev_configure(struct rte_eth_dev *eth_dev) .dev_stop = lio_dev_stop, .dev_set_link_up = lio_dev_set_link_up, .dev_set_link_down = lio_dev_set_link_down, + .dev_close = lio_dev_close, .allmulticast_enable = lio_dev_allmulticast_enable, .allmulticast_disable = lio_dev_allmulticast_disable, .link_update = lio_dev_link_update, @@ -1841,6 +1904,7 @@ static int lio_dev_configure(struct rte_eth_dev *eth_dev) rte_free(eth_dev->data->mac_addrs); eth_dev->data->mac_addrs = NULL; + eth_dev->dev_ops = NULL; eth_dev->rx_pkt_burst = NULL; eth_dev->tx_pkt_burst = NULL; diff --git a/drivers/net/liquidio/lio_ethdev.h b/drivers/net/liquidio/lio_ethdev.h index 150e9c9..ee30615 100644 --- a/drivers/net/liquidio/lio_ethdev.h +++ b/drivers/net/liquidio/lio_ethdev.h @@ -196,4 +196,9 @@ struct lio_rss_set { uint8_t itable[LIO_RSS_MAX_TABLE_SZ]; uint8_t key[LIO_RSS_MAX_KEY_SZ]; }; + +void lio_dev_rx_queue_release(void *rxq); + +void lio_dev_tx_queue_release(void *txq); + #endif /* _LIO_ETHDEV_H_ */ diff --git a/drivers/net/liquidio/lio_rxtx.c b/drivers/net/liquidio/lio_rxtx.c index edd16c6..2cc40d8 100644 --- a/drivers/net/liquidio/lio_rxtx.c +++ b/drivers/net/liquidio/lio_rxtx.c @@ -918,6 +918,40 @@ return -1; } +int +lio_wait_for_instr_fetch(struct lio_device *lio_dev) +{ + int pending, instr_cnt; + int i, retry = 1000; + + do { + instr_cnt = 0; + + for (i = 0; i < LIO_MAX_INSTR_QUEUES(lio_dev); i++) { + if (!(lio_dev->io_qmask.iq & (1ULL << i))) + continue; + + if (lio_dev->instr_queue[i] == NULL) + break; + + pending = rte_atomic64_read( + &lio_dev->instr_queue[i]->instr_pending); + if (pending) + lio_flush_iq(lio_dev, lio_dev->instr_queue[i]); + + instr_cnt += pending; + } + + if (instr_cnt == 0) + break; + + rte_delay_ms(1); + + } while (retry-- && instr_cnt); + + return instr_cnt; +} + static inline void lio_ring_doorbell(struct lio_device *lio_dev, struct lio_instr_queue *iq) @@ -1826,3 +1860,26 @@ struct lio_soft_command * return processed; } +void +lio_dev_clear_queues(struct rte_eth_dev *eth_dev) +{ + struct lio_instr_queue *txq; + struct lio_droq *rxq; + uint16_t i; + + for (i = 0; i < eth_dev->data->nb_tx_queues; i++) { + txq = eth_dev->data->tx_queues[i]; + if (txq != NULL) { + lio_dev_tx_queue_release(txq); + eth_dev->data->tx_queues[i] = NULL; + } + } + + for (i = 0; i < eth_dev->data->nb_rx_queues; i++) { + rxq = eth_dev->data->rx_queues[i]; + if (rxq != NULL) { + lio_dev_rx_queue_release(rxq); + eth_dev->data->rx_queues[i] = NULL; + } + } +} diff --git a/drivers/net/liquidio/lio_rxtx.h b/drivers/net/liquidio/lio_rxtx.h index 6c024e1..739e86d 100644 --- a/drivers/net/liquidio/lio_rxtx.h +++ b/drivers/net/liquidio/lio_rxtx.h @@ -752,6 +752,7 @@ int lio_setup_sglists(struct lio_device *lio_dev, int iq_no, int fw_mapped_iq, int num_descs, unsigned int socket_id); uint16_t lio_dev_xmit_pkts(void *tx_queue, struct rte_mbuf **pkts, uint16_t nb_pkts); +int lio_wait_for_instr_fetch(struct lio_device *lio_dev); int lio_setup_iq(struct lio_device *lio_dev, int q_index, union octeon_txpciq iq_no, uint32_t num_descs, void *app_ctx, unsigned int socket_id); @@ -764,4 +765,5 @@ int lio_setup_iq(struct lio_device *lio_dev, int q_index, */ int lio_setup_instr_queue0(struct lio_device *lio_dev); void lio_free_instr_queue0(struct lio_device *lio_dev); +void lio_dev_clear_queues(struct rte_eth_dev *eth_dev); #endif /* _LIO_RXTX_H_ */ -- 1.8.3.1