From patchwork Wed Jan 10 10:46:37 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hemant Agrawal X-Patchwork-Id: 124053 Delivered-To: patch@linaro.org Received: by 10.140.22.227 with SMTP id 90csp5161952qgn; Wed, 10 Jan 2018 03:37:01 -0800 (PST) X-Google-Smtp-Source: ACJfBosh41Y4Or0XLOSsBZlEd//ajk5fe7w9r2WPljeZi8pVE5dd48Oil/DTba1vK4UCrbc4vImi X-Received: by 10.223.131.229 with SMTP id 92mr15845848wre.255.1515584221657; Wed, 10 Jan 2018 03:37:01 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1515584221; cv=none; d=google.com; s=arc-20160816; b=nJFWnwtwxibHV9RCA575F8ssI5fMy+vXordNLX5FVt4SN9AJCYzttWJFZstsvtLArr AELonwzFHqsR5KBVNu9mBLL9prB39l6dS3fEDLMVSENM///QKtXaq5481cAkHALfg9O5 lDUJEbW9dHhPB96zP0BJFGo4xjmn1KILOlN+KLlYMlB+OlQXs5wqh66TIl9YF0tk8Omx MAggb8ukaY3J5kvdaQMS+fAnSPXMNN0tvrA/8qylmw5d10Irj8p1FYb6eU0WyOx4McCA BXubHuAub97bYzf0ajCHRO0am3T4UWo1eCGSenN24TFZwXAnzckT/pH/i85wMGfKoh83 LkLw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:subject:spamdiagnosticmetadata :spamdiagnosticoutput:mime-version:references:in-reply-to:message-id :date:cc:to:from:arc-authentication-results; bh=4lhSm4O15KOpLuspbEQPwr4xPXPgGV/jCwNJJDF64o0=; b=Jbr2TfVxVZx5Me19OzguhqNRzAvBtP3c8o17yd5SxKhfrm8iMU7xY6NYAOMdjCZ70A fUEKCNUZjt77LCxTawOGwXXGf9yjC8DIHCUm16muu2mIFNweV7vF20G57AP/P1hmp1nd wrwck/BzJXXZPaLt0C+/km2NbbmHrN/ikrjI/8sIxki4l+vkAm7kir5jiHQTMue/+4iX SwETXx6+YYHiJUGdIdDC5K4ctngi1gx+LhXjqBVuRqdPBaJ/vYAljut9yYUapnSEDtPB Eb88OzkC5DFnEcutHHddth5XIrbpnJQIVXKCRyPWEXgua1mdYDPhEO2OKYghLp6Qpjm2 Rkug== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of dev-bounces@dpdk.org designates 92.243.14.124 as permitted sender) smtp.mailfrom=dev-bounces@dpdk.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=nxp.com Return-Path: Received: from dpdk.org (dpdk.org. [92.243.14.124]) by mx.google.com with ESMTP id q202si11033371wme.252.2018.01.10.03.37.01; Wed, 10 Jan 2018 03:37:01 -0800 (PST) Received-SPF: pass (google.com: domain of dev-bounces@dpdk.org designates 92.243.14.124 as permitted sender) client-ip=92.243.14.124; Authentication-Results: mx.google.com; spf=pass (google.com: domain of dev-bounces@dpdk.org designates 92.243.14.124 as permitted sender) smtp.mailfrom=dev-bounces@dpdk.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=nxp.com Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id B96B11B213; Wed, 10 Jan 2018 12:36:14 +0100 (CET) Received: from NAM01-BY2-obe.outbound.protection.outlook.com (mail-by2nam01on0061.outbound.protection.outlook.com [104.47.34.61]) by dpdk.org (Postfix) with ESMTP id 61B9F1B1C6 for ; Wed, 10 Jan 2018 11:48:25 +0100 (CET) Received: from BN6PR03CA0015.namprd03.prod.outlook.com (10.168.230.153) by BN6PR03MB2691.namprd03.prod.outlook.com (10.173.144.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.345.14; Wed, 10 Jan 2018 10:48:24 +0000 Received: from BY2FFO11FD022.protection.gbl (2a01:111:f400:7c0c::185) by BN6PR03CA0015.outlook.office365.com (2603:10b6:404:23::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.386.5 via Frontend Transport; Wed, 10 Jan 2018 10:48:23 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; NXP1.onmicrosoft.com; dkim=none (message not signed) header.d=none;NXP1.onmicrosoft.com; dmarc=fail action=none header.from=nxp.com; Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.168.50 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.168.50; helo=tx30smr01.am.freescale.net; Received: from tx30smr01.am.freescale.net (192.88.168.50) by BY2FFO11FD022.mail.protection.outlook.com (10.1.15.211) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.345.12 via Frontend Transport; Wed, 10 Jan 2018 10:47:52 +0000 Received: from bf-netperf1.ap.freescale.net (bf-netperf1.ap.freescale.net [10.232.134.28]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id w0AAljSX007124; Wed, 10 Jan 2018 03:48:21 -0700 From: Hemant Agrawal To: CC: , Date: Wed, 10 Jan 2018 16:16:37 +0530 Message-ID: <1515581201-29784-16-git-send-email-hemant.agrawal@nxp.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1515581201-29784-1-git-send-email-hemant.agrawal@nxp.com> References: <1515504186-13587-1-git-send-email-hemant.agrawal@nxp.com> <1515581201-29784-1-git-send-email-hemant.agrawal@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131600548725871630; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(346002)(39380400002)(376002)(396003)(39860400002)(2980300002)(1110001)(1109001)(339900001)(199004)(189003)(76176011)(77096006)(54906003)(8656006)(6916009)(2950100002)(6666003)(53936002)(59450400001)(8936002)(48376002)(316002)(85426001)(68736007)(81166006)(296002)(16586007)(2906002)(305945005)(356003)(104016004)(105606002)(498600001)(4326008)(8676002)(2351001)(81156014)(106466001)(51416003)(86362001)(97736004)(50226002)(36756003)(47776003)(5660300001)(50466002); DIR:OUT; SFP:1101; SCL:1; SRVR:BN6PR03MB2691; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BY2FFO11FD022; 1:FwH3xtZ+MHxZI14LXk6Pnc/CBcL1fGcziAe8SzufIqNjJRqJnrpwsa4ta8ZfBPN8XYg3zvvvRH6DI/SNoFZc8XQZg1mUNNLYXAJ2+2IpTQd/lSuk3ismREDBr3Dee1sr MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: bee3c538-df01-44f0-540e-08d558179984 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020049)(5600026)(4604075)(2017052603307); SRVR:BN6PR03MB2691; X-Microsoft-Exchange-Diagnostics: 1; BN6PR03MB2691; 3:4cXacqT+LwIFt3rLokkyxsEL7f8HD9IVQa0plNYSG8w/TivAK1e9feD3Z+kVOUGpdRYTkmh/hEcJGLcFry8B1DM2pMqj5/9DWR+Qih/KcVDXzRRTe4iMBR0muAeP6gK/br22uJ+kl2ZzFombANOuJDnKgGccj99MtrilBHQ3x9d5aElkDKn8tadSGmrrGuQ7H/9zpeA4Ie/YdcTuSX6vTEHm2Weovg2FRFfMPLoP7Utf5mmfuSr972XkotS/9pwKFLd+jT13bp9dN3QMAXccTg4gZQ72r281FNY4h9lbqYcEaw2GTzgehLtHZMOzLQCU9xhUvnVJG/wgaL5SOuWtwfz8VEWyGpnfnOc/BmfFqew=; 25:wMgKq+JKHUH08AaG7vN0JenyApzBg7uTcQpMeFtzgl513fMSp1rWGmn9P90b+WUXV0321WCbaZtHVL2VwCKwld0V/UaTUn/rsT6dSZP/QP9UEumvIVcb4WovdRsad2uV8gI+71y7ttGzLTfly/FuSkPx5aD1obwoI1DszYEZBkMdTMFP6O5aI+IZ0VzkRWzPYHWn8clKZPEfTB/xo2HOUST1pHOSlKAoN2DCfMgeb032NyNbCAAI2gGfXq7bRCz/d9fKIMMrrLwElsil+V75L65T0XYxn7VpVFSEJiiwxZ0Cu3tn1iUXvxs0vNeNwPIt5YN9ZgmRcV3p00k1psKewg== X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN6PR03MB2691: X-Microsoft-Exchange-Diagnostics: 1; BN6PR03MB2691; 31:DIO4+JSEcer5QKNzElLYrv/7chc+rGxCYKfHVAJUOiXW5VX0C4D4g5gVbdTaXxHyB6i1zXGuEOxCaLWmHGwZbW8tbVUEfooQaG5AnFMEdL/q99B7yKFvXvMWUSxCJetUlp00mPXo76yNJpGNeue6JP68jEJ2BfdgNRIPdZ9eu925cvrUzKr0IfcLqBt03wFSeKjlBRjtaOaBKaAO2OCU+na5QdyKgFhksnpMwvNE3Ik=; 4:8e6MTwNltsHa1F8AMTTEbas49tUeRQsf+6JS7KbSLmYwADlgPD3tGJxFRNjB+DvSt0u+GcBHyiMPvnXkV75TuwrjV+U1RdcAG5izi7cRT5YEDU0X/VOtZhk28ulngweWqQftgh7hgwiI2RkrqCBepaj2vl1Pg2Vr7EBzrtlI8vfVfjoH+Qg1WG48GTM1ZcQBcSlLTlPmd+GXh1rEQgpDb5iycmw4cE1HPN/o0N5I3RDp++ZaquxXRE5EcaNAV15YG43TIgxQ7ILq3mZrxMk9C3mx7a2tzj33PtqqE5gmoDtAWcSOt0X38YubQ54rhf0y X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6095135)(2401047)(5005006)(8121501046)(3231023)(944501119)(93006095)(93001095)(3002001)(10201501046)(6055026)(6096035)(20161123563025)(20161123561025)(201703131430075)(201703131520075)(201703131448075)(201703131433075)(201703151042153)(20161123565025)(20161123556025)(20161123559100)(201708071742011); SRVR:BN6PR03MB2691; BCL:0; PCL:0; RULEID:(100000803101)(100110400095)(400006); SRVR:BN6PR03MB2691; X-Forefront-PRVS: 0548586081 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN6PR03MB2691; 23:3o137XKomqrxen79PCRBaf6CPxPdJ08yJKtKpqiDN?= TYH5nYpBPCZCWYykiCHYLcJ463c1nhl2Cwi9u4eMhmB25rsqyURqBk4UOU5lvRwzL3VwMm0UK4jE6mh6qSsDa1NXomrWIHG4VI330BNyDJ9j6wMJ8OUCJ5q6YKAPCYPW4/qBFA/KE1hJz0Op3KauWmyWGL7k6qAr9Jni63PiyXrLLHCuRMc4leYG9bnO/ZztrOBM8taHOQRc1wm2zF23wDKUw9OMXv55hH3A4Ta5UchjKALmPzq4vWD1zCfLaiRXa8QQePMqqYQxd4PJIGAftkKatlT6kEd0V80IQVX3IC/BjKkc8GBi8XdS2sFRLbZF1zaqQz4RZB+91EmRY4RppM99jTYfDcHUNYulYUmeJOUoLY8pZ4f+TXrtLLv398JLY7EBfUOMB+EospVUBVAw6v9pscCg9OQnenILgvl8h/iiQ+SZQpANU7uWzp5H3wc+X9vZ2noL0vBgOuuu7fIfAoI1ihivFu6Yohsd4IG0qb0/VwxrNRwACnisGMX2kVuZVDwCqz0g59f7tiCCYJHYjMB3Sz1s51D9xk43U2ld1xORFvzXhj2olriT3KznSDiab/dslYPHTNiOYJ6mVkIecFBoTiqEKQ9NXyS59f7/WUX0ep9mqKcaBgAV6oDuPk/eBFkWQdcBLGOdGwt2s3dy8enu/c6tYDtmvhnoOFGBLVAOpCN4w+QkoTam7XbcO/aaLqCrT9lsdM/bE4CqRyzyh8OuOO7zpWi+Kp2w/8tENpobhfM5Vc1ZoKE6G7FkSy223LCTkNj98JxRehe0R7RY1/O1vQW7BYXW/vYbh+sNavr/cB9q+cXPHSHz6bBraeQc1prkDVFjoo5MoKlfXM0S1gE+GKvKTECxLJ+ZFxmHfOqTRJy3f5T+R0qXMSyC+pt9sd8xkp6mzRGbEMPe5cyoXs2ojCWeLm1lZGhrj5BLGm35p/LkFOy2p00bjRqqSZLOupl7s0/jzDF6On85q/ZRUH9+85cy1paYMwPvGgGn6WtsVuwxT75HynFH8fPT56ImDfllmeNlhmbeI37bi2oIOvb3u7UbF/Qpiwx455hp8oMzKuQEsTSQiG3seWtVDGYCew= X-Microsoft-Exchange-Diagnostics: 1; BN6PR03MB2691; 6:kf2Rzatm0alty2btDL4a8HERsl+zuimS0op8ZXbZQFcpGRj7D0PVkLBk7pO3EJHeoKvQaDCUVOemNb0yJLQ+q6bJOihSm79lZWVXE/7Fib81Xc8VvHCUiSNS4wo0lc2XAJ9KvVyWqPV6xugxLwWATUKNU1rs4ztuS+oaJzrLPFSbBNp6T4vOBIDWu3nREIJBkQGM5AUSh8CSaMdpbcVTGIIlcKvPt6Fr294VPeVlG7N8eyxGzIWYy4z0QGCH/WSCSxw3exafawcH/Lz0RHPg07p3KlJSXLI18jqU/HI6ZIEJfHaw1T3WZ2B2n24BaB52KxejVOH2TOOlVsux82D9WhLt4un0ou/MGv5jO1zL0AM=; 5:LE5A+LVQsfRlhYPNy/4RWdnRom0BEoLLq4hA4/aX99iu3P192eAGssIgnLVXD/q83Fmm29ZsMQhpQMvghb2jNKa4EYh2LVN+3sSbAnVr5D9llyJYOcac76qSapK1JM5ef6zElgroTr3oT6dzKparITzivYqMiky2j7xdWSZZqO4=; 24:kH7NwxsZXtKPizPIVeUznoGbs8oFU4sBODV7Zc0t626y2shHOYuUTFIaqt3XrH2tTahCCnzP/sJCME/C/ev64fK8iUMwfpxEvakuLFajbzo=; 7:2+AghAkVUrwk0DCbGtfHlvh9rrygP3kGpZS0cTtcURm8np+XvfnsYywka1zTvT1JsCuPXdu7WQopg9cpf7mpEHpzDNvJdEoLwYWn+xz63PrSfjkRiriRxQvFZNo0qj7hMMjzAXCCHL/OtF0pozrT8UC9mrk37ad9n2Eh76mJuf6npgVHgb5Lkopq2ERCr9JK71wv2gv+5UrkSCZYjeDv6sIdh1BSArPV048xnADXnvcjyeqJEpxeupHc3ub4Pc2r SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jan 2018 10:47:52.3999 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: bee3c538-df01-44f0-540e-08d558179984 X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e; Ip=[192.88.168.50]; Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR03MB2691 Subject: [dpdk-dev] [PATCH v3 15/19] net/dpaa: add support for loopback API 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" PMD specific API is being added as an EXPERIMENTAL API Signed-off-by: Hemant Agrawal --- doc/api/doxy-api-index.md | 1 + doc/api/doxy-api.conf | 1 + drivers/net/dpaa/Makefile | 3 +++ drivers/net/dpaa/dpaa_ethdev.c | 42 +++++++++++++++++++++++++++++++ drivers/net/dpaa/rte_pmd_dpaa.h | 39 ++++++++++++++++++++++++++++ drivers/net/dpaa/rte_pmd_dpaa_version.map | 8 ++++++ 6 files changed, 94 insertions(+) create mode 100644 drivers/net/dpaa/rte_pmd_dpaa.h -- 2.7.4 diff --git a/doc/api/doxy-api-index.md b/doc/api/doxy-api-index.md index 3492702..38314af 100644 --- a/doc/api/doxy-api-index.md +++ b/doc/api/doxy-api-index.md @@ -60,6 +60,7 @@ The public API headers are grouped by topics: [ixgbe] (@ref rte_pmd_ixgbe.h), [i40e] (@ref rte_pmd_i40e.h), [bnxt] (@ref rte_pmd_bnxt.h), + [dpaa] (@ref rte_pmd_dpaa.h), [crypto_scheduler] (@ref rte_cryptodev_scheduler.h) - **memory**: diff --git a/doc/api/doxy-api.conf b/doc/api/doxy-api.conf index b2cbe94..09e3232 100644 --- a/doc/api/doxy-api.conf +++ b/doc/api/doxy-api.conf @@ -33,6 +33,7 @@ INPUT = doc/api/doxy-api-index.md \ drivers/crypto/scheduler \ drivers/net/bnxt \ drivers/net/bonding \ + drivers/net/dpaa \ drivers/net/i40e \ drivers/net/ixgbe \ drivers/net/softnic \ diff --git a/drivers/net/dpaa/Makefile b/drivers/net/dpaa/Makefile index e5f662f..b1fc5a0 100644 --- a/drivers/net/dpaa/Makefile +++ b/drivers/net/dpaa/Makefile @@ -34,4 +34,7 @@ LDLIBS += -lrte_mempool_dpaa LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs +# install this header file +SYMLINK-$(CONFIG_RTE_LIBRTE_DPAA_PMD)-include := rte_pmd_dpaa.h + include $(RTE_SDK)/mk/rte.lib.mk diff --git a/drivers/net/dpaa/dpaa_ethdev.c b/drivers/net/dpaa/dpaa_ethdev.c index de016ab..85ccea4 100644 --- a/drivers/net/dpaa/dpaa_ethdev.c +++ b/drivers/net/dpaa/dpaa_ethdev.c @@ -38,6 +38,7 @@ #include #include +#include #include #include @@ -84,6 +85,8 @@ static const struct rte_dpaa_xstats_name_off dpaa_xstats_strings[] = { offsetof(struct dpaa_if_stats, tund)}, }; +static struct rte_dpaa_driver rte_dpaa_pmd; + static int dpaa_mtu_set(struct rte_eth_dev *dev, uint16_t mtu) { @@ -707,6 +710,45 @@ static struct eth_dev_ops dpaa_devops = { .fw_version_get = dpaa_fw_version_get, }; +static bool +is_device_supported(struct rte_eth_dev *dev, struct rte_dpaa_driver *drv) +{ + if (strcmp(dev->device->driver->name, + drv->driver.name)) + return false; + + return true; +} + +static bool +is_dpaa_supported(struct rte_eth_dev *dev) +{ + return is_device_supported(dev, &rte_dpaa_pmd); +} + +int +rte_pmd_dpaa_set_tx_loopback(uint8_t port, uint8_t on) +{ + struct rte_eth_dev *dev; + struct dpaa_if *dpaa_intf; + + RTE_ETH_VALID_PORTID_OR_ERR_RET(port, -ENODEV); + + dev = &rte_eth_devices[port]; + + if (!is_dpaa_supported(dev)) + return -ENOTSUP; + + dpaa_intf = dev->data->dev_private; + + if (on) + fman_if_loopback_enable(dpaa_intf->fif); + else + fman_if_loopback_disable(dpaa_intf->fif); + + return 0; +} + static int dpaa_fc_set_default(struct dpaa_if *dpaa_intf) { struct rte_eth_fc_conf *fc_conf; diff --git a/drivers/net/dpaa/rte_pmd_dpaa.h b/drivers/net/dpaa/rte_pmd_dpaa.h new file mode 100644 index 0000000..9614be8 --- /dev/null +++ b/drivers/net/dpaa/rte_pmd_dpaa.h @@ -0,0 +1,39 @@ +/* SPDX-License-Identifier: BSD-3-Clause + * Copyright 2018 NXP + */ + +#ifndef _PMD_DPAA_H_ +#define _PMD_DPAA_H_ + +/** + * @file rte_pmd_dpaa.h + * + * NXP dpaa PMD specific functions. + * + * @warning + * @b EXPERIMENTAL: this API may change, or be removed, without prior notice + * + */ + +#include + +/** + * @warning + * @b EXPERIMENTAL: this API may change, or be removed, without prior notice + * + * Enable/Disable TX loopback + * + * @param port + * The port identifier of the Ethernet device. + * @param on + * 1 - Enable TX loopback. + * 0 - Disable TX loopback. + * @return + * - (0) if successful. + * - (-ENODEV) if *port* invalid. + * - (-EINVAL) if bad parameter. + */ +int +rte_pmd_dpaa_set_tx_loopback(uint8_t port, uint8_t on); + +#endif /* _PMD_DPAA_H_ */ diff --git a/drivers/net/dpaa/rte_pmd_dpaa_version.map b/drivers/net/dpaa/rte_pmd_dpaa_version.map index a70bd19..d1f3ea4 100644 --- a/drivers/net/dpaa/rte_pmd_dpaa_version.map +++ b/drivers/net/dpaa/rte_pmd_dpaa_version.map @@ -2,3 +2,11 @@ DPDK_17.11 { local: *; }; + +EXPERIMENTAL { + global: + + rte_pmd_dpaa_set_tx_loopback; + + local: *; +} DPDK_17.11;