From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <nipun.gupta@nxp.com>
Received: from NAM01-SN1-obe.outbound.protection.outlook.com
 (mail-sn1nam01on0060.outbound.protection.outlook.com [104.47.32.60])
 by dpdk.org (Postfix) with ESMTP id 6B6177CCD
 for <dev@dpdk.org>; Fri, 30 Jun 2017 10:55:30 +0200 (CEST)
Received: from BN3PR03CA0072.namprd03.prod.outlook.com (10.167.1.160) by
 CY1PR0301MB0601.namprd03.prod.outlook.com (10.160.142.20) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id
 15.1.1199.15; Fri, 30 Jun 2017 08:55:27 +0000
Received: from BL2FFO11FD020.protection.gbl (2a01:111:f400:7c09::127) by
 BN3PR03CA0072.outlook.office365.com (2a01:111:e400:7a4d::32) with Microsoft
 SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1220.11 via
 Frontend Transport; Fri, 30 Jun 2017 08:55:27 +0000
Authentication-Results: spf=fail (sender IP is 192.88.168.50)
 smtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed)
 header.d=none;nxp.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
 BL2FFO11FD020.mail.protection.outlook.com (10.173.161.38) with Microsoft SMTP
 Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.1199.9
 via Frontend Transport; Fri, 30 Jun 2017 08:55:26 +0000
Received: from b27504-OptiPlex-790.ap.freescale.net
 (b27504-OptiPlex-790.ap.freescale.net [10.232.132.60])
 by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id v5U8sfK7032271;
 Fri, 30 Jun 2017 01:55:23 -0700
From: Nipun Gupta <nipun.gupta@nxp.com>
To: <dev@dpdk.org>
CC: <hemant.agrawal@nxp.com>, <jerin.jacob@caviumnetworks.com>,
 <harry.van.haaren@intel.com>, <bruce.richardson@intel.com>,
 <gage.eads@intel.com>, <shreyansh.jain@nxp.com>, Nipun Gupta
 <nipun.gupta@nxp.com>
Date: Fri, 30 Jun 2017 14:24:27 +0530
Message-ID: <1498812875-6945-14-git-send-email-nipun.gupta@nxp.com>
X-Mailer: git-send-email 1.9.1
In-Reply-To: <1498812875-6945-1-git-send-email-nipun.gupta@nxp.com>
References: <1495735361-4840-1-git-send-email-nipun.gupta@nxp.com>
 <1498812875-6945-1-git-send-email-nipun.gupta@nxp.com>
X-EOPAttributedMessage: 0
X-Matching-Connectors: 131432865270942582;
 (91ab9b29-cfa4-454e-5278-08d120cd25b8); ()
X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI;
 SFV:NSPM;
 SFS:(10009020)(6009001)(336005)(39410400002)(39850400002)(39380400002)(39860400002)(39840400002)(39450400003)(39400400002)(2980300002)(1109001)(1110001)(339900001)(199003)(189002)(9170700003)(86362001)(6916009)(47776003)(50466002)(8676002)(33646002)(77096006)(48376002)(2351001)(110136004)(498600001)(38730400002)(8936002)(5660300001)(2906002)(105606002)(81166006)(305945005)(5003940100001)(36756003)(5890100001)(54906002)(53936002)(50226002)(104016004)(85426001)(189998001)(106466001)(8656002)(2950100002)(76176999)(50986999)(4326008)(356003);
 DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR0301MB0601; H:tx30smr01.am.freescale.net;
 FPR:; SPF:Fail; MLV:ovrnspm; A:1; MX:1; PTR:InfoDomainNonexistent; LANG:en; 
X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BL2FFO11FD020;
 1:n1/ArRxt2WZRqgHjKRMNo6nrqEEaWnKTwCMj9ehfX/?=
 =?us-ascii?Q?kFpfB6GEcXvj4mCiS8zHicwU6ME1p6tdZmD5ALUn/t5v//BXfE772x5iLdpo?=
 =?us-ascii?Q?Mx32Gl1l/b6iBEtyA+MA8j6Vs8tumMksVxqsZSTS63r8/xrFx5CRKJqH/mVZ?=
 =?us-ascii?Q?rZZg+MDqM8lFeYBJRNEWsyRGMisxdVbwHbiTeIHSr2nVzAoiFTuh1fcSQDZU?=
 =?us-ascii?Q?eOF8Vc/Eny+/mWb/2TVIehZIS/jJGe94r526lDT+NpuMHh0muLxCBvjYNipU?=
 =?us-ascii?Q?S81Clzll9ridudDS0Q49x4PgE8IEWnqu7zGiU0r9OpqnWICom2zBsgNlqsG9?=
 =?us-ascii?Q?8lnr136TGKASbvZsFi5MUVcIPG1iZ6EfEkzEnkkVQJ1If8XrEtzB4YtLgJJz?=
 =?us-ascii?Q?Z0l440qGPuc9XqLv1CzT1GjNMcSBAwTuStXhe7nOzCCR9wHe0y+8vkx0g2/g?=
 =?us-ascii?Q?MYjccfluTyFxzacXsA5MQ0dEo+r4Va4EPeH8vSh0Zyb4aJibq7LKAh2azLGD?=
 =?us-ascii?Q?zLEZkr35exqPVV8sv0xQKvCF3nEmMessxyTcJiM5mTKk9ArTPlKgMrO8INhl?=
 =?us-ascii?Q?spcYUhcU4fYk2IrKZp2sGcaiawaecGhCuub6aYlMaBUDJb0/KnX0zArkv9F5?=
 =?us-ascii?Q?HCNxDCjZEprDXltSGH7aSUPfGxjZKK/bY1oczuWdq96t2mTgEFAj/Nxp5NKM?=
 =?us-ascii?Q?8cCAJ3W0g+vdUQdKvN29j/4UJ+NUjRxawI5pFsuhO9T/UqnjC9PaJCYm7Jdb?=
 =?us-ascii?Q?rfp43/wxV8YLcY6UaRPvpn7I16hX5mdoDrngwU1m2vmpVmTGk9JXHAXBU+Dm?=
 =?us-ascii?Q?ZlmPwRjW82lLyU+QXZM/r85SbEg6PupBCp6HsL+AqpkR4Ty3DTPGH4K2xg1O?=
 =?us-ascii?Q?4tew5EQM3uKLyeo0CZUck+6Lm7jOPoHJBPds3/dP2pVkPTmLf6e/rHFwjV0P?=
 =?us-ascii?Q?PS35iJLuPYTK2mbZ9XA9T78xw1bMo5Ts2QZ//hmSIwAkHoBWI5SsLSdNmUEs?=
 =?us-ascii?Q?MAQBIBr/GN1BOuvSZNAQzCRhjCis4Q/L8deS78TUhLZgzCvEEfPozr8OaMiW?=
 =?us-ascii?Q?lBWB6mu2CXsmfr4/GzQumTAC0o21N9T1ITKzoXi1vqs39nZQ=3D=3D?=
MIME-Version: 1.0
Content-Type: text/plain
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: f549c614-d853-486b-ea17-08d4bf95c0bd
X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0;
 RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(300000503095)(300135400095)(2017052603031)(201703131430075)(201703131517081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);
 SRVR:CY1PR0301MB0601; 
X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB0601;
 3:GrYqOEzqs+xfssem7vEm9MRG25jAhPqWvqeM/a1G+bet9AyIJxI8DcDcYT8V6pQjVC67hhlMvxKe2LTykSAvpnUQ517vLlOY9By+SFGDGgzZq8K2YqA1JiwHe14OJsKlfAEO6DXIf6x0DQIsAD6C4jSWPIE+VFo/AJvgLVirGlO8rwEcShGMmO9f7kl9e4jFUSBTD7cUhBq/q2E53D6kC6wmXdtxxgltv3JmL1CJ1BHm3rg+5EbiihVODsgC4FHrV5OvRwpmtfLOhYbWxW3oUdFjhMAJVMTY/+Ob1VP41e8Z5z/OiQJSz7RYa782C0eYFP7UK34ePbLG19qVyEc1OdmTrIVHb7NjsTwxScl8funl+deXRVGCIwqQfLrVJjdVwXIzc1q/ZlqIEmS1wT5Y7OcGxzwhuAXG/DRNCX7vNlJQPic5x5Ic45CHlOhbsnGpPBVlGvoXRh0M4Q1/WSj4wASkPBp5AP3pEk20mpRzez/1yRrJDi8Si6dVlIHbshXL3olqy6SXEqOfAoxBVusZCAH6ZIquo3HXeNESHXB85yNUU+SA/utipbE43sEVrdO+W2yc3og0fSAn/unpFwv0YzusXrIyQg+9pw3VCywq7cH5cZh/hm8PeEAHrxu2nmE3PBrmQ5q7ae6FzUhTxF1DlaSueRPkW22OtgKLPeon/Fxej5FyO3AFK/XPYGL4Wpwel9xuhuaIWqlRAnGg9WlLab+HuFkEwI/5SJLxmLsVhHWAS04ugO86vzbB5JaTNsZi+r0Y10uKpVEWeYeLowMIZhLsF0f8t51EbiB4y5XgHHEzm/F+Il0XVzazh7y3Y/sJICrn2Fm5+Q7c9KWYt9gWfQ2ol34r52Z4DaN7vMZooPI90TABeKjcE4/3T7myH2eN
X-MS-TrafficTypeDiagnostic: CY1PR0301MB0601:
X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB0601;
 25:ua+Q2ucJ5dzT8lC9L5160xPD1ZFix5rgiBEIvevsW/mUYoalqERRiNlpdv2/qtze+WHRjktoLMLkjepUfNs1s5raHok/MpgELQ6TbjTvjYTm9vyAe22bW83lASqbJQgcesytr6da5YjLRnjbRe1SkhDyD4hQiFh4w3OGvpXW6t/m7GVOUcfOhbfNksq3hgW0E+Pg1JpvTi0GO5iw8mWJ0qtFhv75MsotuOh2XkZE+05jaab68YbRyyoGU7VdilQydYPZYZpLCCGJBWERaFgF5H0nROq/BEHm9+Soaffc8p1K+mcA4NVaIthbxWac7/UIgrgG0LUGqzbrNOUxFJTWjojni3bGdYh6+IZbO4aIvPZ4VBCEdurYUZUjrMSXrMQCF93BytqMjwkQNBzpJTWbKGupVuSR5DwgtI0oGTY+cBVZVZTm9+/jnHXjmzCznEyZznYoZQK5CFrpjJaZqScYWlyoVk6Us7/Si3+9O0lyLBn7NMpqParokO9DLpg/eUJNhX3eCbCMi8mjJW1K/n6pwLjlpW/w4QgdAU14fK4Xw5ySSQd7SNI73HLVtAWkv7QD8FHaqEI/wvjg31DIETOPaD/DL1YC3Am8ECiiF4WSJsU4vPWgwxD8q/k5BfMA04Y/uSAlo56Kj5aS+BSBRGpO43Kogxxo2v5epHQu6G4zXzLedaZiAN5XGgmkL+tMC5nVM/a+Lxgm+VCjsRk5DvFxS+ND0l8u94SdzfCNOxgaMJsR3bPrmdcgDb4k0TExlpsABRcL/Ko2u6jbQWISXgf7SjG/U+cYTdTzT8NkaqK0vFSVoeFFRAeNTGnlm/bdr6Nm/vs5wF7+eAADNt8cdWabjS4aFCkWItubwJ/VMPOGXoxZihyGrlFH/NEr2vx6J6VnrpAWTPbMrFcuV72twzAeWcR3DmDuuobEuoE7a/bLSJQ=
X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB0601;
 31:gCYPGBWBQDS4eM5KeuO7+srfw1c2vEXg7kVW0K+URYdC4UPfepe6JEoNzCkegQXmlvmV1G5yq6dqhK0lif7wN7iw5zcqLLR0pCFmV7hopFWEqaCHtVbP6YgONflSs+MykvraSPgmJSfYDFbn9PK21VFloknYTowBP9EQeJ0WhIBPxOuEKGqeMsHxU4sx+YSdvhT0AT/vV64ody6xMixBAEhdf4Eyj2/az5g2E//tB2d7jdKXaNOWnVLZb+kvZOv6pQ8Ps0ys+98xMtDM61XPYIIy34lTvqMZYuhGHkmDHnPdMXcriwWkm9F0v53puduio/+ICyLG2EGHJkWQ1Gq3kguz68xABgBhofuW4f5EwIV/RlJjP0xXAD2tlGgIjF9BU+UeGCXyPKQGl4k8a+P1G2t7j45v+/8ZcQWDem2MiqoV1VpQzpHf1dq79PxAqf2j1LctKxpp9c7FO0OCB+CvcEoc4jwg1JoFBej7LlfVETsgEF2Sg8/XEuax167aReXIQOdUzkf6BtSbiT3agcVqah1HIYxxyN6ArsBCoiB2i3CzpGIgmApdW9tekQ0iWGTQHA5AwbGJp8DWPWe1n9Rb4hvznAi0sTPjPpTxayZOgFFuLRAKzTlVeXqUI8RLmJFlvhyGpi7ulAcot1IGf/VODS44YIIuS+rbrNkepLCug5mspeWXv6tzve9ObQAR9N7HiWkVA0XmxAWJym9kzCYwyQ==
X-Microsoft-Antispam-PRVS: <CY1PR0301MB06019A8BD9C6980B1C5902C0E6D30@CY1PR0301MB0601.namprd03.prod.outlook.com>
X-Exchange-Antispam-Report-Test: UriScan:(236129657087228)(185117386973197)(148574349560750); 
X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0;
 RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6095135)(601004)(2401047)(13018025)(8121501046)(5005006)(13016025)(10201501046)(3002001)(100000703101)(100105400095)(93006095)(93001095)(6055026)(6096035)(20161123559100)(20161123556025)(20161123561025)(20161123563025)(201703131430075)(201703131433075)(201703131448075)(201703161259150)(201703151042153)(20161123565025)(100000704101)(100105200095)(100000705101)(100105500095);
 SRVR:CY1PR0301MB0601; BCL:0; PCL:0;
 RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(400006)(100000804101)(100110200095)(100000805101)(100110500095);
 SRVR:CY1PR0301MB0601; 
X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR0301MB0601;
 4:ZhSba3TH8samyiE/ewOUfbj8esbV/OwbLBtpYvRj?=
 =?us-ascii?Q?DQjX1+QQdHmOGKxaFGgWg0XcxaicZGu087beOHzYSatnF0lltdpOgZmpMdCM?=
 =?us-ascii?Q?0ke+prm1dLFCB5zCsuQwqNfCMnClw4v5zs9iVpneTdH8GcIb08rlZfWB4P6i?=
 =?us-ascii?Q?3UAMQ5dEq+S8NycKlORXnDwlDtmy9Qga8UqA2l6Of43/S8KAA/D5n3alMjN7?=
 =?us-ascii?Q?d5AFOLD93vThtGBsxnXd/94ly9Ql1n2vxdWbpBeKrFL81D79ARlL8FHZ7qkV?=
 =?us-ascii?Q?6aGUXCtORCacPqWKMW0calx9b/rzhrcgxuUlXeNfrfui9RHuBemOWqMW36RX?=
 =?us-ascii?Q?ruJF6QJvDv7t3XmWmNU7R+CDbNF3fRsdzMpuV5QMB7gjEikhssKJv9EY+to3?=
 =?us-ascii?Q?mzX884fH6DZRMBy80IRHJw06jUb9j0LlVCuomydcZNTyRgSyDvA91Epv+TXG?=
 =?us-ascii?Q?9EvSiHWkThQjoCt3qroyuaDDgZiUqzSADJaaK5zNF6NXUZY8OMF0Of2RPDEH?=
 =?us-ascii?Q?nhzn2ivb8yzzz3T0FSzUfKyaRDe/IYf2pcc2ChQS+lIKbayZzjOp4rS3/Yvm?=
 =?us-ascii?Q?RycQK+WQDZE3gDruhK00kbbv1kYJdbhNA96AP18OdaVMxZ+T9Y8f2lSWxcQG?=
 =?us-ascii?Q?Itiu18+97W6QX/zG7xtvYy6HWiVxBmYyTfhzdQOjreuPXZRvXXBIoD9R4Bae?=
 =?us-ascii?Q?vPJi+8XjjpjxH2otEhl7RIUxrk7VQq7+Duky/sOu94EkBFDk9uW+wV8HqvPI?=
 =?us-ascii?Q?LDG+7eaiOXWIPH4Ft62iralGo2LM6wuGG1Y4gbO6cg6Qo9nANQyXGVOgp0El?=
 =?us-ascii?Q?rMZGgf5MxAyBUJZjw74f9KTLVdJakEZmQto0RGJ0RB5xFbCuhfX3oX8Pjci2?=
 =?us-ascii?Q?ouOQm7xPxWX29stnXTUc+88e6gs2rvZ0w8suUTT0YyMU81gT6gNA+K4qtgpX?=
 =?us-ascii?Q?oMKMNky3+qbsg3QGlYnQoWU6YYs7YhkoFeQpZVdxnRmJy4zpOoJC6u/ftWW0?=
 =?us-ascii?Q?O3wdCJTr45jJu/v3uRN1TwwzSQviFKJx5Ygy8uVhgSiWjszQpdYiQw0sBNV4?=
 =?us-ascii?Q?LL5ZnxAbzr+/UFmOC3KLy+aXrYQq09ZmqONqAxaQZZ6IXi2a0D1Pg5mdcNnx?=
 =?us-ascii?Q?rCm8qoJOdWcXP5eqD6eXz8CncZRcb0PU++XTGA6zUxqsGkWbfCqt50OmT/sS?=
 =?us-ascii?Q?/vSWFb2vOHQq9w2aqjanCZY5aWLulRBAZz+tIUCcRftZXMk/pEX7GeRIngJT?=
 =?us-ascii?Q?ed1zUUInJeS2ywuygR1GSKXmroxqTGDH+GYRith8z1YafuOxklc4ns4indsD?=
 =?us-ascii?Q?O22MiMCkNl/QDyZgTTUn9h4Etxfg0v91mr3JUAVu/RKA?=
X-Forefront-PRVS: 0354B4BED2
X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR0301MB0601;
 23:fm//202ObGC1kE10d2SCjh9Wd+hkvGCJ1gWQI5X?=
 =?us-ascii?Q?xjkJmgukCpZOmeiAZfQYoipP4s4R7kVhVnSnmpGFTCm0hdpFOsJWCpevvyJb?=
 =?us-ascii?Q?m4/ITfD2V6vPe68r3eKtkpvvwVGlz30U7DHwnvuuhJ63bph60l5d9C40mbo4?=
 =?us-ascii?Q?i/nvj3jrRVV2nyzv1Moqr1pgsBY++tbb495RxZyK8RFYQoeklcnqFI+o+Erj?=
 =?us-ascii?Q?CaBU2mOHoqbnsxj3ebuL6VBMPC7AqngVSHJfKaHvIZxRKWYxkxy5kNMFHFpt?=
 =?us-ascii?Q?1nGU5mQD5nUDyXfbNyqQ2sYeeQxxCLCcFhQa2aOxCS46wgMC/yr6/bN3uYEv?=
 =?us-ascii?Q?gviLAR/UTRYM6ZRbbpgvBVRa39J/FfQRhQ9DCecPPni1m8c80Q/EhCUCpOJ+?=
 =?us-ascii?Q?wTi1XUH8y+dwMom16sivZMbDzxs5YLUKW0t6HPf/E2F/Q7lg/P+kymmxezFF?=
 =?us-ascii?Q?5IzqQywsIhlFwtTsHrzkP5wYmbJgN5Qtqi0ejTCnPy/i7F9DDpuJmpq5518g?=
 =?us-ascii?Q?zkgvJszsQ+QAWK2+NlleWyODbGTQe56WwcNz9useM8k2ct1sBA23EBirrJxk?=
 =?us-ascii?Q?sc4ZvRVezAHipd3BdR90O19ChpxOUOvhD2MoRnbp0WBVYuevTh7wGsG+hSBL?=
 =?us-ascii?Q?07R2JKq7Wno4eSvAlv4E49ZmQ4qL0/9c2rfyvdpcFrWeVi8jyP/1r3ehqZcl?=
 =?us-ascii?Q?lEFPC6gA5wwlJibZbO9IJarP4MvYMgbLINg3a983t2smnLWp+H1mfbPlDZ0Q?=
 =?us-ascii?Q?GKxmMnz1i9q7Hwk1Bd6F2flQyvUKpPSzby4KTJGFE5exNISTn55VsKf01Gxn?=
 =?us-ascii?Q?niqbTLBWeWQmFdNpn93O0ACkdw21nZFA2p53/K0vvUQQ2iK74xuory6Lzn2z?=
 =?us-ascii?Q?bjQLyaZIqbnmFZZ7xPhLHoGLHcKiD7bc0lFwaB+CC/656OGvR+2mvgrQQ6SO?=
 =?us-ascii?Q?6l4e0RxBx57UP3qgItDTeTHGMHECPpLo8EEjM1rBeiTRIQgX5DsSUlwKSFIR?=
 =?us-ascii?Q?yO/MbV03W9Wq1FQxCY5+iKlHOCtz27BjVw565W+Wit6GjQdwm5s8MQ2hDDPo?=
 =?us-ascii?Q?2++8S35aRG5hzmhSlzgrtOaYpJcFDmysyUbxMutja0qHawWWXzNcMgnWtSHl?=
 =?us-ascii?Q?NyYi0CFsvb3fFmUeEx0KPV2iOt/AHgTRm9g1J1FMuhaPq4Xy7lsy81w7LsLD?=
 =?us-ascii?Q?jUyI/MTnL2xh/1pWn0TkpzUB1K7zsENMfz6bCfYzjeGR2tz9ir6DjPsuMD3A?=
 =?us-ascii?Q?sZ87hVYZD7JXvZht36Fc=3D?=
X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR0301MB0601;
 6:W62ZMwoyVKJiane0QwSgdripTpn4T4YDmqDs/r5q?=
 =?us-ascii?Q?p2mDOT5uWX3pjVLwqpPryOqJciu+hKmM+2vEcbPgJJSfqagGojN9C79c3WSM?=
 =?us-ascii?Q?dSZZLZC77DD9HiHBPCQYUdfZyGZz0dFa9Sl5p8/QPYB2AIt16pk8aI8gd9GS?=
 =?us-ascii?Q?zexQyIoeoKjbInPjTBnZkm6q6YWeLDiZWEJwI+GuATXWpHE+YlYdqcWBZifT?=
 =?us-ascii?Q?wv9oWLXvyjnNQvsK6JeKwlFhYDTvFUVdTDqXkWMcqKjJLQCYp8UFntjQ1DPd?=
 =?us-ascii?Q?/e1/EdmD5qYLojGtYo19ZEiVa/K9FwkFJXS9jktSiSJomKxKBJlTB4cIZYlc?=
 =?us-ascii?Q?/FZ1OytXehycTQzzAp/OZbdp/fG2Uk018TgaFnFrMBqjDEDXgT5HEWDgrnIr?=
 =?us-ascii?Q?FckxtERM8vAwLFCckOT5WTNp4Rnf1bb+tMLgH0SUViE2jD4OboUpzd9nlveM?=
 =?us-ascii?Q?2suBHf2wcHjp7NKsAGV4CB20Gr+eTvmXrieg6ECPjWhStccILO+Th8K6pVI5?=
 =?us-ascii?Q?ltS1WFo8EftD55WbrS489JJfbraFbMRy6TDP9Nu4TWMnI8nwilli9lsv1wnY?=
 =?us-ascii?Q?iTv4w1+fHDyDfOSWDV095rvyxfuHFq4qJEQAaCEaYZgjZqBhxT+6eM9DDUKX?=
 =?us-ascii?Q?OrXXg6p0hiRnsv2bZCexPa/tC7903eYfFk4xsQoAsHnIScf0THmMjMh6cJfP?=
 =?us-ascii?Q?p/60eCjBAjQFwQRk444iXwFODptWYN+ZeM9zw455O9cS8LQPWVEZ+0uYyYgp?=
 =?us-ascii?Q?+p/wLYSJWZQT1q/4wGs8WoB23seLKu0ceZb84kKSqozvs9SJwa+oxLbwFS4n?=
 =?us-ascii?Q?ZRCNEhBejoUA7flFfr4IUtXqST8K7cPcp8K7BG7i1xW28h20shmFDLpcl/6J?=
 =?us-ascii?Q?CURiXzQU+Npqad0n1IWJkWuuA+MIWmI6FlE9F3+9d/p5bWpD+6ThRsJHRDhZ?=
 =?us-ascii?Q?+NaDUAim0oN/usa2Q2YLbAKJbnE5SUdP3GLDNpAdlg=3D=3D?=
X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB0601;
 5:mablzh/cmzdB8PPzTz/CKPczefnRv5z3MH164OzrlnifK4ccOVp2Y70to/0yMf/IfMdLKqEL/v3iy6VYmqEuWGdOaSopN12S2dqDkIF8TczbGoca1JPfpYlCUcFWf10XQEB3OOU+As6ZrY7nKSLaNRGqEE2zwqURNwWdQJKKUpMYJ7760Eu9T77tXusYgjfLd+fT/TY+54ykFbzkT9dbr13BpiRz2AWgkpa7Kk24xN4WqSgmybtUcMCE3UEsa4AXy/aotTp7sGu+hYceZx0JI57/Y1gfSgAEct1FYrlHKt8CLBju9Yxk/s5YmZpDrreCCHnMntIuIHeKdlFPty8fyAFAClicxiM22bsVJeoiPJrJFSj80d9uJ+AJW63q4vmyCTM1q98vE5nJPaAspMIQYG9i/fD6TbSNLk9vwlRnpoFMG1BGFzr1gvc78QY0ezq04yeilREV/OD/5I8dHw6VufvpZbzJmQ13ySM93iEBf08q5VDSl8xu9+qyPeuCtr6xNfz3OU/uievGL7ZgidTtuQ==;
 24:mmr48GXqAqWfLh4wuRdv/nRk/5uExgxD1WV+o4ZLWnYx3QV2k9cRVPZ0F1jCAaeYhCzXTgUZTA+q/VkIa2QtAxsGYnGIPx+1Zmq8LrLgzYw=
SpamDiagnosticOutput: 1:99
SpamDiagnosticMetadata: NSPM
X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB0601;
 7:QDp8BxN53EImrq4Yvyh3ZmeIkCaMQmIe5HN32il1oI5GUqB83WoihsVM4NPt1wd5o400lJjql1mHjZdQU/i3kzY5MBO6eqGe5ESPbDq3No6mVXIFHWfGdoRqD6g+xGm99oIAj8izPZlXpVAcE7JPSMU+2BGh0T1CfS9+anAHq78ouCMInZLEYJ8BHNBIZ+laqvHmf5s22/ZWFGfJvR4Ow4Aa1Sdy7YHguFS7yeta4dkPmIQPBDYlZy6gmSXtLQ+4yTg2XAu3Y+FOCSDuZaDl3wYBWVF3pvcrLiDU7rKf/EixWJAzNv5lSOgypTAe4TYa6CCWBUnoQycll+wLymVYyOKTXVQLlqSrkipa1nnS43CMF8P6eOVfELo/kO2jJAMFgCw6bspBH82l1iXgZOXkBapXjNMH+OaRwqXKUNeGyYVxyBYzs8JS9KogbjINJ0EKi9QAKMPWWGV7pMQLi5l3BkPpAfGH+btxKxcRDZ06syGDApjtzLpdBNZkF8pn64xIafljR7viFdQfZRLjsRIF4yoqRyNmevRGlSEYaVj0YmzO+f+X2NF5i6XQXsY3e9KGhk98iTTAg0WHATBMNt2uFqzxzU9cpb0v21LeoyvTXCAlNyjhzBkxCRlbNjGiLdBqCxbVbV/s/hMpdTS0/J+cBJKNRh4ByeR0p/jrqg+xGR8lrp9Kx2xyZnbiNOIQ0LxajtalK70KXdGRXhZeCbAW55omhAJ5FrqTX1vuIgZTf/gu3lW/XVJoDiFKdJm8r41Jm5fzmgyF8hM9dJjdyeStbrVx/b9bD2TbrID/XXNi1ow=
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jun 2017 08:55:26.9226 (UTC)
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: CY1PR0301MB0601
Subject: [dpdk-dev] [PATCH 13/21 v5] event/dpaa2: add configuration functions
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <http://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: <http://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Fri, 30 Jun 2017 08:55:31 -0000

This patch adds all the configuration API's for DPAA2 eventdev
including device config, start, stop & port and queue
related API's

Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
---
 drivers/event/dpaa2/dpaa2_eventdev.c | 283 ++++++++++++++++++++++++++++++++++-
 drivers/event/dpaa2/dpaa2_eventdev.h |  22 +++
 2 files changed, 304 insertions(+), 1 deletion(-)

diff --git a/drivers/event/dpaa2/dpaa2_eventdev.c b/drivers/event/dpaa2/dpaa2_eventdev.c
index b8cc3f8..c00db7a 100644
--- a/drivers/event/dpaa2/dpaa2_eventdev.c
+++ b/drivers/event/dpaa2/dpaa2_eventdev.c
@@ -106,7 +106,288 @@
 	return dpaa2_eventdev_dequeue_burst(port, ev, 1, timeout_ticks);
 }
 
-static const struct rte_eventdev_ops dpaa2_eventdev_ops;
+static void
+dpaa2_eventdev_info_get(struct rte_eventdev *dev,
+			struct rte_event_dev_info *dev_info)
+{
+	struct dpaa2_eventdev *priv = dev->data->dev_private;
+
+	PMD_DRV_FUNC_TRACE();
+
+	RTE_SET_USED(dev);
+
+	memset(dev_info, 0, sizeof(struct rte_event_dev_info));
+	dev_info->min_dequeue_timeout_ns =
+		DPAA2_EVENT_MIN_DEQUEUE_TIMEOUT;
+	dev_info->max_dequeue_timeout_ns =
+		DPAA2_EVENT_MAX_DEQUEUE_TIMEOUT;
+	dev_info->dequeue_timeout_ns =
+		DPAA2_EVENT_MIN_DEQUEUE_TIMEOUT;
+	dev_info->max_event_queues = priv->max_event_queues;
+	dev_info->max_event_queue_flows =
+		DPAA2_EVENT_MAX_QUEUE_FLOWS;
+	dev_info->max_event_queue_priority_levels =
+		DPAA2_EVENT_MAX_QUEUE_PRIORITY_LEVELS;
+	dev_info->max_event_priority_levels =
+		DPAA2_EVENT_MAX_EVENT_PRIORITY_LEVELS;
+	dev_info->max_event_ports = RTE_MAX_LCORE;
+	dev_info->max_event_port_dequeue_depth =
+		DPAA2_EVENT_MAX_PORT_DEQUEUE_DEPTH;
+	dev_info->max_event_port_enqueue_depth =
+		DPAA2_EVENT_MAX_PORT_ENQUEUE_DEPTH;
+	dev_info->max_num_events = DPAA2_EVENT_MAX_NUM_EVENTS;
+	dev_info->event_dev_cap = RTE_EVENT_DEV_CAP_DISTRIBUTED_SCHED;
+}
+
+static int
+dpaa2_eventdev_configure(const struct rte_eventdev *dev)
+{
+	struct dpaa2_eventdev *priv = dev->data->dev_private;
+	struct rte_event_dev_config *conf = &dev->data->dev_conf;
+
+	PMD_DRV_FUNC_TRACE();
+
+	priv->dequeue_timeout_ns = conf->dequeue_timeout_ns;
+	priv->nb_event_queues = conf->nb_event_queues;
+	priv->nb_event_ports = conf->nb_event_ports;
+	priv->nb_event_queue_flows = conf->nb_event_queue_flows;
+	priv->nb_event_port_dequeue_depth = conf->nb_event_port_dequeue_depth;
+	priv->nb_event_port_enqueue_depth = conf->nb_event_port_enqueue_depth;
+	priv->event_dev_cfg = conf->event_dev_cfg;
+
+	PMD_DRV_LOG(DEBUG, "Configured eventdev devid=%d", dev->data->dev_id);
+	return 0;
+}
+
+static int
+dpaa2_eventdev_start(struct rte_eventdev *dev)
+{
+	PMD_DRV_FUNC_TRACE();
+
+	RTE_SET_USED(dev);
+
+	return 0;
+}
+
+static void
+dpaa2_eventdev_stop(struct rte_eventdev *dev)
+{
+	PMD_DRV_FUNC_TRACE();
+
+	RTE_SET_USED(dev);
+}
+
+static int
+dpaa2_eventdev_close(struct rte_eventdev *dev)
+{
+	PMD_DRV_FUNC_TRACE();
+
+	RTE_SET_USED(dev);
+
+	return 0;
+}
+
+static void
+dpaa2_eventdev_queue_def_conf(struct rte_eventdev *dev, uint8_t queue_id,
+			      struct rte_event_queue_conf *queue_conf)
+{
+	PMD_DRV_FUNC_TRACE();
+
+	RTE_SET_USED(dev);
+	RTE_SET_USED(queue_id);
+	RTE_SET_USED(queue_conf);
+
+	queue_conf->nb_atomic_flows = DPAA2_EVENT_QUEUE_ATOMIC_FLOWS;
+	queue_conf->event_queue_cfg = RTE_EVENT_QUEUE_CFG_ATOMIC_ONLY |
+				      RTE_EVENT_QUEUE_CFG_PARALLEL_ONLY;
+	queue_conf->priority = RTE_EVENT_DEV_PRIORITY_NORMAL;
+}
+
+static void
+dpaa2_eventdev_queue_release(struct rte_eventdev *dev, uint8_t queue_id)
+{
+	PMD_DRV_FUNC_TRACE();
+
+	RTE_SET_USED(dev);
+	RTE_SET_USED(queue_id);
+}
+
+static int
+dpaa2_eventdev_queue_setup(struct rte_eventdev *dev, uint8_t queue_id,
+			   const struct rte_event_queue_conf *queue_conf)
+{
+	struct dpaa2_eventdev *priv = dev->data->dev_private;
+	struct evq_info_t *evq_info =
+		&priv->evq_info[queue_id];
+
+	PMD_DRV_FUNC_TRACE();
+
+	evq_info->event_queue_cfg = queue_conf->event_queue_cfg;
+
+	return 0;
+}
+
+static void
+dpaa2_eventdev_port_def_conf(struct rte_eventdev *dev, uint8_t port_id,
+			     struct rte_event_port_conf *port_conf)
+{
+	PMD_DRV_FUNC_TRACE();
+
+	RTE_SET_USED(dev);
+	RTE_SET_USED(port_id);
+	RTE_SET_USED(port_conf);
+
+	port_conf->new_event_threshold =
+		DPAA2_EVENT_MAX_NUM_EVENTS;
+	port_conf->dequeue_depth =
+		DPAA2_EVENT_MAX_PORT_DEQUEUE_DEPTH;
+	port_conf->enqueue_depth =
+		DPAA2_EVENT_MAX_PORT_ENQUEUE_DEPTH;
+}
+
+static void
+dpaa2_eventdev_port_release(void *port)
+{
+	PMD_DRV_FUNC_TRACE();
+
+	RTE_SET_USED(port);
+}
+
+static int
+dpaa2_eventdev_port_setup(struct rte_eventdev *dev, uint8_t port_id,
+			  const struct rte_event_port_conf *port_conf)
+{
+	PMD_DRV_FUNC_TRACE();
+
+	RTE_SET_USED(port_conf);
+
+	if (!dpaa2_io_portal[port_id].dpio_dev) {
+		dpaa2_io_portal[port_id].dpio_dev =
+				dpaa2_get_qbman_swp(port_id);
+		rte_atomic16_inc(&dpaa2_io_portal[port_id].dpio_dev->ref_count);
+		if (!dpaa2_io_portal[port_id].dpio_dev)
+			return -1;
+	}
+
+	dpaa2_io_portal[port_id].eventdev = dev;
+	dev->data->ports[port_id] = &dpaa2_io_portal[port_id];
+	return 0;
+}
+
+static int
+dpaa2_eventdev_port_unlink(struct rte_eventdev *dev, void *port,
+			   uint8_t queues[], uint16_t nb_unlinks)
+{
+	struct dpaa2_eventdev *priv = dev->data->dev_private;
+	struct dpaa2_io_portal_t *dpaa2_portal = port;
+	struct evq_info_t *evq_info;
+	int i;
+
+	PMD_DRV_FUNC_TRACE();
+
+	for (i = 0; i < nb_unlinks; i++) {
+		evq_info = &priv->evq_info[queues[i]];
+		qbman_swp_push_set(dpaa2_portal->dpio_dev->sw_portal,
+				   evq_info->dpcon->channel_index, 0);
+		dpio_remove_static_dequeue_channel(dpaa2_portal->dpio_dev->dpio,
+					0, dpaa2_portal->dpio_dev->token,
+			evq_info->dpcon->dpcon_id);
+		evq_info->link = 0;
+	}
+
+	return (int)nb_unlinks;
+}
+
+static int
+dpaa2_eventdev_port_link(struct rte_eventdev *dev, void *port,
+			 const uint8_t queues[], const uint8_t priorities[],
+			uint16_t nb_links)
+{
+	struct dpaa2_eventdev *priv = dev->data->dev_private;
+	struct dpaa2_io_portal_t *dpaa2_portal = port;
+	struct evq_info_t *evq_info;
+	uint8_t channel_index;
+	int ret, i, n;
+
+	PMD_DRV_FUNC_TRACE();
+
+	for (i = 0; i < nb_links; i++) {
+		evq_info = &priv->evq_info[queues[i]];
+		if (evq_info->link)
+			continue;
+
+		ret = dpio_add_static_dequeue_channel(
+			dpaa2_portal->dpio_dev->dpio,
+			CMD_PRI_LOW, dpaa2_portal->dpio_dev->token,
+			evq_info->dpcon->dpcon_id, &channel_index);
+		if (ret < 0) {
+			PMD_DRV_ERR("Static dequeue cfg failed with ret: %d\n",
+				    ret);
+			goto err;
+		}
+
+		qbman_swp_push_set(dpaa2_portal->dpio_dev->sw_portal,
+				   channel_index, 1);
+		evq_info->dpcon->channel_index = channel_index;
+		evq_info->link = 1;
+	}
+
+	RTE_SET_USED(priorities);
+
+	return (int)nb_links;
+err:
+	for (n = 0; n < i; n++) {
+		evq_info = &priv->evq_info[queues[n]];
+		qbman_swp_push_set(dpaa2_portal->dpio_dev->sw_portal,
+				   evq_info->dpcon->channel_index, 0);
+		dpio_remove_static_dequeue_channel(dpaa2_portal->dpio_dev->dpio,
+					0, dpaa2_portal->dpio_dev->token,
+			evq_info->dpcon->dpcon_id);
+		evq_info->link = 0;
+	}
+	return ret;
+}
+
+static int
+dpaa2_eventdev_timeout_ticks(struct rte_eventdev *dev, uint64_t ns,
+			     uint64_t *timeout_ticks)
+{
+	uint32_t scale = 1;
+
+	PMD_DRV_FUNC_TRACE();
+
+	RTE_SET_USED(dev);
+	*timeout_ticks = ns * scale;
+
+	return 0;
+}
+
+static void
+dpaa2_eventdev_dump(struct rte_eventdev *dev, FILE *f)
+{
+	PMD_DRV_FUNC_TRACE();
+
+	RTE_SET_USED(dev);
+	RTE_SET_USED(f);
+}
+
+static const struct rte_eventdev_ops dpaa2_eventdev_ops = {
+	.dev_infos_get    = dpaa2_eventdev_info_get,
+	.dev_configure    = dpaa2_eventdev_configure,
+	.dev_start        = dpaa2_eventdev_start,
+	.dev_stop         = dpaa2_eventdev_stop,
+	.dev_close        = dpaa2_eventdev_close,
+	.queue_def_conf   = dpaa2_eventdev_queue_def_conf,
+	.queue_setup      = dpaa2_eventdev_queue_setup,
+	.queue_release    = dpaa2_eventdev_queue_release,
+	.port_def_conf    = dpaa2_eventdev_port_def_conf,
+	.port_setup       = dpaa2_eventdev_port_setup,
+	.port_release     = dpaa2_eventdev_port_release,
+	.port_link        = dpaa2_eventdev_port_link,
+	.port_unlink      = dpaa2_eventdev_port_unlink,
+	.timeout_ticks    = dpaa2_eventdev_timeout_ticks,
+	.dump             = dpaa2_eventdev_dump
+};
 
 static int
 dpaa2_eventdev_setup_dpci(struct dpaa2_dpci_dev *dpci_dev,
diff --git a/drivers/event/dpaa2/dpaa2_eventdev.h b/drivers/event/dpaa2/dpaa2_eventdev.h
index 2a3211c..f79f78a 100644
--- a/drivers/event/dpaa2/dpaa2_eventdev.h
+++ b/drivers/event/dpaa2/dpaa2_eventdev.h
@@ -56,6 +56,17 @@
 #define DPAA2_EVENT_DEFAULT_DPCI_PRIO 0
 
 #define DPAA2_EVENT_MAX_QUEUES			16
+#define DPAA2_EVENT_MIN_DEQUEUE_TIMEOUT		1
+#define DPAA2_EVENT_MAX_DEQUEUE_TIMEOUT		(UINT32_MAX - 1)
+#define DPAA2_EVENT_MAX_QUEUE_FLOWS		2048
+#define DPAA2_EVENT_MAX_QUEUE_PRIORITY_LEVELS	8
+#define DPAA2_EVENT_MAX_EVENT_PRIORITY_LEVELS	0
+#define DPAA2_EVENT_MAX_PORT_DEQUEUE_DEPTH	8
+#define DPAA2_EVENT_MAX_PORT_ENQUEUE_DEPTH	8
+#define DPAA2_EVENT_MAX_NUM_EVENTS		(INT32_MAX - 1)
+
+#define DPAA2_EVENT_QUEUE_ATOMIC_FLOWS		2048
+#define DPAA2_EVENT_QUEUE_ORDER_SEQUENCES	2048
 
 enum {
 	DPAA2_EVENT_DPCI_PARALLEL_QUEUE,
@@ -79,11 +90,22 @@ struct evq_info_t {
 	struct dpaa2_dpcon_dev *dpcon;
 	/* Attached DPCI device */
 	struct dpaa2_dpci_dev *dpci;
+	/* Configuration provided by the user */
+	uint32_t event_queue_cfg;
+	uint8_t link;
 };
 
 struct dpaa2_eventdev {
 	struct evq_info_t evq_info[DPAA2_EVENT_MAX_QUEUES];
+	uint32_t dequeue_timeout_ns;
 	uint8_t max_event_queues;
+	uint8_t nb_event_queues;
+	uint8_t nb_event_ports;
+	uint8_t resvd_1;
+	uint32_t nb_event_queue_flows;
+	uint32_t nb_event_port_dequeue_depth;
+	uint32_t nb_event_port_enqueue_depth;
+	uint32_t event_dev_cfg;
 };
 
 struct dpaa2_dpcon_dev *rte_dpaa2_alloc_dpcon_dev(void);
-- 
1.9.1