From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <nipun.gupta@nxp.com>
Received: from NAM02-CY1-obe.outbound.protection.outlook.com
 (mail-cys01nam02on0071.outbound.protection.outlook.com [104.47.37.71])
 by dpdk.org (Postfix) with ESMTP id 176475587
 for <dev@dpdk.org>; Wed, 28 Jun 2017 17:17:50 +0200 (CEST)
Received: from CY1PR03CA0037.namprd03.prod.outlook.com (10.174.128.47) by
 CY4PR03MB3272.namprd03.prod.outlook.com (10.171.246.141) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id
 15.1.1220.11; Wed, 28 Jun 2017 15:17:48 +0000
Received: from BN1AFFO11FD033.protection.gbl (2a01:111:f400:7c10::185) by
 CY1PR03CA0037.outlook.office365.com (2603:10b6:600::47) 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; Wed, 28 Jun 2017 15:17:48 +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
 BN1AFFO11FD033.mail.protection.outlook.com (10.58.52.246) with Microsoft SMTP
 Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.1199.9
 via Frontend Transport; Wed, 28 Jun 2017 15:17:48 +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 v5SFGaPv032734;
 Wed, 28 Jun 2017 08:17:44 -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: Wed, 28 Jun 2017 20:45:56 +0530
Message-ID: <1498662964-11251-14-git-send-email-nipun.gupta@nxp.com>
X-Mailer: git-send-email 1.9.1
In-Reply-To: <1498662964-11251-1-git-send-email-nipun.gupta@nxp.com>
References: <1495735361-4840-1-git-send-email-nipun.gupta@nxp.com>
 <1498662964-11251-1-git-send-email-nipun.gupta@nxp.com>
X-EOPAttributedMessage: 0
X-Matching-Connectors: 131431366682026344;
 (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)(39850400002)(39860400002)(39840400002)(39380400002)(39400400002)(39410400002)(39450400003)(2980300002)(1110001)(1109001)(339900001)(189002)(199003)(9170700003)(8676002)(81166006)(81156014)(33646002)(38730400002)(53936002)(104016004)(50226002)(105606002)(2351001)(356003)(2906002)(106466001)(498600001)(77096006)(8936002)(4326008)(5660300001)(85426001)(6666003)(86362001)(5890100001)(2950100002)(50986999)(6916009)(76176999)(189998001)(47776003)(50466002)(8656002)(110136004)(36756003)(305945005)(5003940100001)(54906002)(48376002);
 DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR03MB3272; H:tx30smr01.am.freescale.net;
 FPR:; SPF:Fail; MLV:ovrnspm; MX:1; A:1; PTR:InfoDomainNonexistent; LANG:en; 
X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN1AFFO11FD033;
 1:6x/fJrPSgoKFwiyVxSUnz/41jiSjbGcGkQZOKZi2Q?=
 =?us-ascii?Q?LlymgC18v8O5AXjmSqxrP7rRN28GYXylEgHc//jPPk1fh3fbVg0Dq1mAquEU?=
 =?us-ascii?Q?/wqjq+Zc2e2ApdvJEEyh2fgG6BUIMWYix001tvMOGK6c4oAqgFZVA9OiLjOE?=
 =?us-ascii?Q?sM0a6ljyn6tM1riI2eGDWyGzHAcCzifqIxjrhV6c5MDsaHvJNWCwFzRtXzk2?=
 =?us-ascii?Q?0tg70tDzNOfYEL+1s4KVd2hWLl/TCZiF1cqZSLDSuJmVwTnvsiGPENZAVc6f?=
 =?us-ascii?Q?WwF8El+jrH6//3GZobfnlbIGZ6vo37Hm9/43yxeeczxo4wywLd9rh523KrU7?=
 =?us-ascii?Q?U0dKWx9yF1IWB/O5tFUH+uVGgz1qUksAJ+NJLlTrLQ77uqNoud25jIdZDFSe?=
 =?us-ascii?Q?nipufUaqoPR0s1+S3N+jxSghb7yBjYFrzQ0q6wQZ7gM3a39hV24m7lFfKQXs?=
 =?us-ascii?Q?zhwp1k5cn62MaM+aIaHJRo+Za5pd754+2QE+Ni7RVipFUXBBSEm1C6tSKtDz?=
 =?us-ascii?Q?5X6wwXBnp/zJP4yLsTx9xBjiMAL3cCOdzfnya1YhfDgX182iGzt+Yci0t/IV?=
 =?us-ascii?Q?MifFcChSoROivPkxRK23zBa5a4L5e1xmWtDVA8BWAk16H2ehFocmUTt+my5f?=
 =?us-ascii?Q?VfNPQAvRQeOr15tw3GRFVFKJcov278eA2WgSDXsuBMvnJZj0dqA2iWAxSYGe?=
 =?us-ascii?Q?aWZmjWyikzYkcTjBbjUDd8HqfnPWeEO71/Byd0C0ehQFF6y23W/ipgvwEKbY?=
 =?us-ascii?Q?biDiAi7Q4xsSBdNQLNN6B+kUxoTDf81pGJz/lmrQMvSL8JEuuVVglcy40/oQ?=
 =?us-ascii?Q?V60SVyjQKPNR51jMaVtXbb4mQdkjkR5RWCvP5CJmA1MxhYMHssnQV+k27Xow?=
 =?us-ascii?Q?epdroVy/XHPP8Jqs9pkiHkeUGdk3uVNZfWY1itBUdwYfOwpbkCqf3fEW8lAO?=
 =?us-ascii?Q?tLDU/Y6i+KZ7DRRuCfRL/qJjvxCyBe8JZFfeezmJ6qiE7yXS7TPFBI/2fToE?=
 =?us-ascii?Q?1BDHFSjP/yakoCy13NEGMlvXyYL8Fr8vXv0HPLBUCaQBKyYzY/XKLyoowgZe?=
 =?us-ascii?Q?8zqeEhq4QEHdpBkR36RP+AwTWugMcWNCHxj4ascxKjfidN2yw=3D=3D?=
MIME-Version: 1.0
Content-Type: text/plain
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 12d28148-e498-494a-c004-08d4be38d5e1
X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0;
 RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(300000503095)(300135400095)(201703131430075)(201703131517081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);
 SRVR:CY4PR03MB3272; 
X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB3272;
 3:SQLZGfHn6d/pMsIeiq9ykxoXlSmLQc21QUv3vdJFdlqqXNez5JqJBVmppH+UG95dXK5v5uP32z2BVybgFffEMLOnM+2fVTaAOPEsAq467iKc/6yAcrHcSkXMosswboyGmOW4TqljhBIXPVucUpKhv99iqd6vQ635yFMS4bC2jTARyGOpliaHxCn80aUF6ObNf/EBskISw5KoA0vBuO/WzmbUZw2zCf2lssrr3u5mpbdXUo446Xq3BOCOmxEGT72U8g8CR07yeow7turPMBAmYuP1zy8s7sZIXZa5iTFAq3bp66jH+sGHqXLZxMtdYidVcLGfPbnUYoEiFaNTVMGxf0wM95G2mMcB1Q1Qw15/sRORmam5wiK/+4jfzrCJZw/9vvDSshODyPsn5W7kYkFkqSEK4kSp/AncFsKaNWMF/UXnwGa3rveWkzLcX2pSXoD6sHiyl2EK8/uN737U+Y/coltRSEl7HsK7E3AEncgPcDP3NX1Km6oftSr/FvyFXq9typIhUKKMmw0fFhmV0CQL1IMRNeDld64KA5oSsKvaan9OXPTmCqaLR0O4cINrVvEAr8E+k88lRUv2z7hsaJQKmC3XPHs03DDXBftYvNLg2M9Y5aPWdKyhXC8ljYO4eCcdoTDKCz2p2x8EmVfUHoz2mARRPXQLmHFeiDYGUAMhDSyB3m3BuFErPyIarw08or3OVnJLBP9fg43VNp6Chp3sFcyH2pFIK1A0bxKkLCQiryjwrvsjkPAyRzvkhFEotGebqtxoYGwy6YSINeL3YSAc7wH3shSgbYDuDDJpj//PAhoMdBBLsZFH2lVeSHU8X9xNOa07saUdBZfh5JO0JfWaWA==
X-MS-TrafficTypeDiagnostic: CY4PR03MB3272:
X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB3272;
 25:AwRPyb9eMrPB+jafSeuLnyM1DIBA2ag95cCkilJ+uSE78tWhNF5u6nMf6P8E0dVTK5DjA8EBnWRi9565FifoTtyNBK3W37KzRT4sofJ9r3p/wQ0YzMQaeyHgnil9mSFEktURWyTe6J4rZZ5eWe4LmeDriP4mDU0FUIReI6Pu6ExA7svCKnEh8iUsRcCd2wCvGEBMA7wXGO2I27tRcARChV0/urBUxxrjTEmcOF66lf0TJFCA6icm3IyEB7M4U8q5uunKiRtfkZG8U2f1D4Y7Axm4BBQUnzorqfmZgLwVXpOKjkP/nClyAtUtXvR4f//Ki4dQsVZGAw5G2BQkQcWbcQIgWw4cP6pwVmsQyAohx4x+ql2uzuXPDFdKQ6KaXYGpDYe6SwDH85GvLF9eRX9xAkFZD7n0CFhYTSCBr2WyvEAMdAxQUrxhkK44efvz8msCBSSNCftbKUxN98Z3ntcIC2cghdPMzlJnq/wnN6OkZccIKGBx4z3Snbi9JSLLIAv6ZaTIm+6frSSDS7ZqJcOVEffAD+DRPDbr8yIBlJjuOdLDCtLsdheDuviTR1MejjTQFk2pJgzwbO5N5NFGuaDvLJzJMIrqXYdK+UBYfIGe2U9V55eOUhm4XP9+etnfc3mek+RCeyqRmWOWWE0tGk7oCr1AddzKkLLPvpiC4vxmk42n09X4rdEw+Wn6xPfJXalHpRgPt2XCVFUswsR6d6RiO8sq/MiV+76LRgVB/cwaLbYA078sdMca3ivqx3NbFy6Sa/Q2O17bHSfcE9HpS22X5qFAd9jGv7zyvFPSmJS6xQcsyb0D0kFcG7IJavmNsrrxUccyybfVGCwmBY1XdY626zQjvgpD1O5eYU18+J2tPn5ITfQvGO5FBQqsAMTMrtm/yMV9ZCUm1Ej9d+vOMi86eupOTyjoYnK586vX2J4E7Xk=
X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB3272;
 31:YRMZs/50qGDbK1x5BDKw+ks97Vt1mZkfkWQYJcfOFljn7oXnAPwWOkC/mEvqGptJ6fUTi7xX6Iv3NfaAC/HRhvTO0IoU6BCJIe0Dspsph66qZ2/Q3XEN14wV6FYi2Jq/m7cz4Cw/a50FY69AG7ZB5cn0o9nCaP/IKcooAJQ6fgFWnYmQPB9nTUx4fBkf6NilwR9aWkrNVsmm+OH+KfRNfeMGmsCA8E47q5h0d48Gcg52sYLAyyJ/EueViRljaT1+M+ui6psRJN+GnEPnjSiV9f9NDGpuVQmN4Hbo74TArwL00Hm1PTuTI7FOyCKCd7OnPFJeoFrp7s7tfJ1p3UEIavRepCjxD1TaYXmfbhik6Z0NrPt0jnIVEIdtzsfTnB/u+PZPNyZFbHINa0K9ndb8/FIE4FkBGMK+sfo68EBhhG9itfSoVN7ouNNCAAkNjjPyhtt3+E0NMT4qGM1IMy8EnsYxcvyBC/5L7tE4OAosHxU9MmfYZhhdhmllGgABjVLTxpkUyErR4pSmAfGKUrs+ENO6It6qozXlYC0w3zNCcq4hVOtNczijPakCXdMt7lG4CMpCZHfVRznWzLNz22figTGulCGuEYmcfu76h27SWKNf6Up4w13devHVKGH9hKgBjctssETPGBEXcd6oqfsLecizMDJsOBxnBGgBoNS4STxpwWlx+b8VxfuBUn/npXm6hZ8PpM9cMR9X43jNHBlakg==
X-Microsoft-Antispam-PRVS: <CY4PR03MB327256C0A1AB3717DB5B89CFE6DD0@CY4PR03MB3272.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)(93006095)(93001095)(100000703101)(100105400095)(6055026)(6096035)(20161123563025)(20161123559100)(20161123561025)(20161123556025)(201703131430075)(201703131433075)(201703131441075)(201703131448075)(201703161259150)(20161123565025)(100000704101)(100105200095)(100000705101)(100105500095);
 SRVR:CY4PR03MB3272; BCL:0; PCL:0;
 RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(400006)(100000804101)(100110200095)(100000805101)(100110500095);
 SRVR:CY4PR03MB3272; 
X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY4PR03MB3272;
 4:43IxmkXHsRd0jatuf8LxBZjiGB4pmVRSlp13tGdKHo?=
 =?us-ascii?Q?LDjGaeap3tIuCPs+KIR8NruboUWqZvWOrDIoazvtfTAGLF4O4W2gUM2Axbg1?=
 =?us-ascii?Q?ZjhkFxKAVmal6aNFPyll7CY0uaxo0B4wDfAoZEDSoQ5DEqz0T0uCZhxHI0rq?=
 =?us-ascii?Q?ht+O9ViZ78iRTVHeAp8KU/uETiVMQ+H1s5TWpMrie+bouSoEzMJGck31mMbl?=
 =?us-ascii?Q?2ojZuUKRA/AH/iC9TCjWCbFKAwmM2Bjg5F/1vf81s9KRvak0fNmK9vFY/ObY?=
 =?us-ascii?Q?avtStpofj+An3XYu/Rc7CcA4FiaE1Cf5MONvknIvp/+HGRevM44oAUd5Te/I?=
 =?us-ascii?Q?ldbFcQvt3vk/1HsGI0XvyGLRrjw1Sgz+5a9gpCmeEiemRl1PJHfTnWpyLPEv?=
 =?us-ascii?Q?RRhEKxOPzmvR2kv9bCNSj+zqgxt3h7AG4Q11cv1pIsj0f6C6pE1n5+YtQ0j3?=
 =?us-ascii?Q?Ia/eAvudCusj8ZUXq95F9hHR4sv2shNI3yQCYmM+pr725pMzBtTTyIvhDJMO?=
 =?us-ascii?Q?ecCPdVeGEbs5E9/3diN3lhTsfcd6WeOjbMgJL8WPLX+PflrPYQmaQn7wlZFB?=
 =?us-ascii?Q?vkhiicwc02vx3KRmRv/OCtqh2XhkXeda3VRILXUGYZXvabxidKNcdtgG2wIH?=
 =?us-ascii?Q?WxLNBRbCZQKOy5O3wjBmtxSVQszaJ61fhT/Etjamy6fqF3JEZ4FPYRgtw6cM?=
 =?us-ascii?Q?dWCvOr9/HGkU8/YwsoL6s8KuA8KlOWa9k3+Wb7Fwl5C2g8NhbBrkn/e+ZQph?=
 =?us-ascii?Q?RSpHlx36xcR7ypvp04pHVzjrJIbEeeYKpSbV22aqgfFM9sUNUi13SGl97mDz?=
 =?us-ascii?Q?PokYUuiaN4XhX43Fl2L5C4Jm8U4sLNA7qQpv06eXAACJgeLfCxlSxaXiM1UV?=
 =?us-ascii?Q?zbPJSU2f4F52fz/L9CWyd/lLKl3o4LA5drHg0155zIDIwyyTRvKoeErVjmxs?=
 =?us-ascii?Q?BDf1gndjPSpFclofMLLBffY9w0oroLTVM5dWMTy0amP39Mn0faQBoOfTeSZj?=
 =?us-ascii?Q?ss33jLD2G2juaaURRc1SQwSrr0CFkane3/3wJcsyncz2fBnjmULTJ+MjhTD6?=
 =?us-ascii?Q?Sxt58mjK9OZNxC8/9ux5mkR8XZ0P1OQ8cHu8LxbQA/O0G+rzlYTnvA0HvszR?=
 =?us-ascii?Q?CULa9uyYBs9YTWx95e9jcshNRlfVxH+YpsGH3Ivgu23xhqtj2Oa4Db9ApvO1?=
 =?us-ascii?Q?Pl34pRgK/52grB4pgOe4uiXc3ekm1kawjBXg3mWunXBtFYnmjhgFAEWFMy5X?=
 =?us-ascii?Q?qPB3Qih6+ErRHS7KUqoPzo9Y5NoKZm97jc4cxpvB0r4Kiak0HJ9atXXxJ/dE?=
 =?us-ascii?Q?qcyaoAESfkV1+RTxS9QNY3BYxZKqxMYXhkot8C6PO0?=
X-Forefront-PRVS: 03524FBD26
X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY4PR03MB3272;
 23:4fCeXamQfoPefhWqXY/WiZ/Mg+rDfHC4ryruPph8F?=
 =?us-ascii?Q?+k3PT2w/qWoZpubEoAW51yOdzvYcDlvO5beGm/818vRC3ydWDsbW5Ktd8qws?=
 =?us-ascii?Q?jBwpw3pJx3xmEBDuxwmSUeMuWT4EzWsvvNUQTg9Sm6HhXZ0gCmHc2RVErXeQ?=
 =?us-ascii?Q?kbGpsdSe2OVMDhrsVhZ8lXVnSU0FTI3Kk1sUfLlJgtVr4aJMml6D/RjtFaUO?=
 =?us-ascii?Q?OaUda7KtEGtdSK+EnHZ+Sh45ZhkS49iOKdmWLcG0gl4NMqSCw8m5Qy8xWmdf?=
 =?us-ascii?Q?4a0bl8dqFM87JerA7eMuiybYCeMLsb/qIWmC7bzUOlj+5zqwPAfVc/H0qEXH?=
 =?us-ascii?Q?De1b/i75rocEO4+zZ8LrVWhPPrs4meo57XjlEL0U4P92gfB7PmbHpEsBDRl4?=
 =?us-ascii?Q?cXoW/bgSIxiY3FTRZ9KQcNA/dYpe9ZP5lEietSoNhdOWHJ8o7QJAmsVm+j26?=
 =?us-ascii?Q?xvaVzz5JRnw3lh8ZHpcnYEwGoCvgSoT6fvRelobk4n4yJZn4KJZzMM/4UmKt?=
 =?us-ascii?Q?ifY4DqhEn4hXcDT9ZDdfNT8n06rZ0qsyAElVLbegQSH1xRIOz5RsV8pnRKa3?=
 =?us-ascii?Q?4QNV5aqKkRB91uQUmRP3zDjbSW5x85xyx5omYCy8FjcRTXEGvFYOys4PtUIK?=
 =?us-ascii?Q?vwXiTv2whskKmdOgJDz4Pkx+YicKu27u9zHaWshTftM29Iypx0P2Nu81zi0k?=
 =?us-ascii?Q?pleiHtiTipRxQhQBwmbLYrbnyAyv+i6bj2r3ElPsapFOItwmnw1K6Q7aO68l?=
 =?us-ascii?Q?2AlT/ESDKkd7Jy8/EWVQaeM/Bi7ytjABOsw4KLQ183NGCPHxLvUdYanQyNR/?=
 =?us-ascii?Q?Ks8zH8+tnXmCyO4LuV8eYBLRUi4kB/9KDUqZfTBPQd5W9KtE1DXsTB6eCHMu?=
 =?us-ascii?Q?fi5vxXONdYpL8tdQAOgSiL1lgIrSb1r3aCUotqZH0GFRvv79E7Ag0MY2/v4h?=
 =?us-ascii?Q?jALn/krJEuctUthqYs3WzA02IYe0NaJf6nSp1QJLwG4SbwHmxU9C2YtzeYEf?=
 =?us-ascii?Q?+PLNDRJoLiinkW3qcRgfCKdmBlT7t/XHvAlVbODikoeT2I/a5GraxlCFhjoA?=
 =?us-ascii?Q?9EnEhDz3FRhPp5cpzpYmYjoyKH2Gb2obcMtjknX2qETCNy0aQIo3uasBTGgW?=
 =?us-ascii?Q?mrdgP2Zt2HUBbCSDg8bW+ogVSUSiM3cICJL8K73OghrXb0W53ToVBHBvG97p?=
 =?us-ascii?Q?YiELohlEIhXknQm6XwAlLkkHiF58/WOoflOi8KRsas8nRGX2G+AYyM54O73o?=
 =?us-ascii?Q?LRuT7YAhv7+l8+GUx+htzHN1BZ0WHBBO5u2IVPHAD8eD4vSXJMkG3jcFsYwU?=
 =?us-ascii?B?UT09?=
X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY4PR03MB3272;
 6:JmhBjCuGXier2THPZCGDT6ZTuAmyBN/xRUnxEgHYHg?=
 =?us-ascii?Q?iXOiSx2KvSUKMc11PKf/SIRcKCMfQDtcEkHf4HbuWe7c5nvFeYYvH3wylpoe?=
 =?us-ascii?Q?YqfCKAFc2k/VRwrT9oO3aptTDvCevbVULWlcMIzZFn2VJExWJFRSQusYA5Is?=
 =?us-ascii?Q?oWT3J999NRz5WVVLqKv476w4IyjabpKQFOF94zJICTwnnYST+LmmOU+HKrCp?=
 =?us-ascii?Q?N11pUK4NGNOpwtXKOBEQ1CNQLkgBL55RBuOa3LD2pLIgf8uhZBqNmXtPdLMp?=
 =?us-ascii?Q?sOTE607KcZhwAXKeu59SIxLaZaRwZ9ZMOCbXbx3B5isQNs8n8Ip7vqo8ELQO?=
 =?us-ascii?Q?TtOQnwT1FTCJyv0lSRk/JBSQGDNP6YMn9OfCbZnvMlby/9WuOK+RhtGX3nxx?=
 =?us-ascii?Q?ky4SFYmyqhChY3TkHKe5PXV0KJTaQ1cx2CS5zMRSjHbDG6EP1MVm7CVzXCPP?=
 =?us-ascii?Q?bNKIeKOCi9XrfXzLq2fp3XVbzxC8PU+eCYxAcoDGZrE86UhKU5UukOPmM04A?=
 =?us-ascii?Q?H6sT6nuMZM48ldOcBAzk7gDzhk2dtzZPKeD2I5yw8CQctuaNVnZqyP+i+wBU?=
 =?us-ascii?Q?YReiOGPeG4fACzeNs4mW3uHBvkuOfEHV3GDS41deCeS29xbDzSfkEJljnPcd?=
 =?us-ascii?Q?GXCc46pZqTd9dHTvRwXMFIZuaEl7k7NGYsQV85cGF6IzS/ff227JSZWKeyPM?=
 =?us-ascii?Q?80YuTIylkHfe1MgGbHxOj2O5hXgtKu8ZslcQOMDi55doNBmwL7yqe+rfCIJ5?=
 =?us-ascii?Q?gIDpXqT3D+H1vWTF8C/n5w1tE8ONzCCTwCmXITVPL3Zot7miFWcB7DT4cFXn?=
 =?us-ascii?Q?TtseIKRQONi3bM6YBqV2nVnme9h86pkrhSODQ8fAIKjFitwEMJEKxfvs7rEc?=
 =?us-ascii?Q?Z5Wd+uuf6FfNNrqaeKhg/U61/0xy3vTF6ZHSvD+K1d2LyWWKqk6Srslqt9bd?=
 =?us-ascii?Q?0aUAK/Uh1pcT+TxzqBIW5X5HqKuo0xMSz9OTfDDQ=3D=3D?=
X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB3272;
 5:4xQC5MDFbDVc3l7wAUfG36c9ryBY37+9S2aAndknNN5sAGx76FQOoD8SuPg7wyaDi0OLjOcz3TT5c+PPG7OEY29B6lzYn93Iv5dv86WdQ41dXbtVm/h9GA94EmegusW8GELCXJshuT5+KlG/PWry+LUfkkU6ZK5iWDBvPPZQNf9XW/hmzkMzJKkshR6YdwV/zG4SSiscor9zuqhgXjQt/XWd5UDRll0p7YnC3uRjCfDfO6lyJOGPvjm5/B30mvmsctWIUASm3kj7PZH2U9dmOcBtk2I3ewt2gOIFguCTTpZx0r2rTEpGo/ohrwC6ghqMU8HCgiXx+qkTxdjSIDKe/vc3A0Q7G4hJ8W5M/+iWORF9KAyk6fymRjYt4izbhOimgDBpW7hzK1woGopdOgCYiT6vY7LLWxbzsbYq7I7arKjcMytjaj/nEh8uA7uSkPLo3BDz+WOo2ia0qIpSKapku+Q40XQUmbJv1INDXpjfHtgpdGj+C/B/nIWM9SBO87RPiOGoUSHzK/dQfgVXlq7eAA==;
 24:anigZnT9TEREcqhEpdA3isy+YuVU5zGTQMhXvTHdpWOvsBUJ8TOuwz9PvT+Gc9esj6bz4qffcLa7Vde4aWap36xSr90IvbCHj7B1vgvkZok=
SpamDiagnosticOutput: 1:99
SpamDiagnosticMetadata: NSPM
X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB3272;
 7:ltFOHO43WfmtGQTRgPEHu9DCANPbRL2mWPbpUceY1M9l4QW60r+4bgNnVy22/r2NGOiw1UUccjMF6/MMqdG/c/nOXKAYKyMmUylkXTU+hEjuCMuyFfGTyrzyZd8z9WDY3640jTuapch5GXRAMp82C0u5rq1E8GGyGRlV1A28RznWmfjQeU+fmfMni2kdPXQ8gdFfGihD7H5hbm9oA7uPdJ5v3P2wnxwXAyQY6GROR5RwiWeLS9VEJvnEac0VrnuFOgJ2q9klSqTcLxM8ZS1vtkHT++E0Doxvkkq8uiIzmjIFpA6hDB116wBpwW1Ww6q2FVzNt2Y4G3C8Awv81xf82ZXukVT5A/F1y+gZjk8E71zUiyPnEUz3rSzNTXYpyPAskIENlQo/3OPMC8AnJ3FEWF52t0ObayBbtQUw/PcZvD8+zgPM47C9rffNxHMJ9sSZHRSezyT/idPMqCD1Cid/mWdsqKeKObmBNNKDxnVniwv569+dYXqMnjZVhWEVbJBxsNbWQjI4mp9mowzLTYg5QdBTGHRBs2hbhBeOFkpq4eUQxUDoQuTBMnHEvLRCW5PgIYWc8njm9bcVENB+p2Feb+bRaL0xaeDYBgNKTEsEgvDHxvMNUAe7Se7A7OxaYPk7FnUvXbONSWIPkIQOlaK4bRZqofl40qDVW1dsze5uoIR0kORE2pi3sN18N9JPnhx+PHQtuoFOIF2ndNvZdO7ZvwpfTqulEtct5ADpHe3Wcu8v9Ml2oG3PamDR6WGXIwzFEEZEKaSJyAeAw/5Me4Ajf8DLFGHWmp3SbVRxLiIH5fM=
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Jun 2017 15:17:48.0310 (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: CY4PR03MB3272
Subject: [dpdk-dev] [PATCH 13/21 v3] 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: Wed, 28 Jun 2017 15:17:51 -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