From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: 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 ; 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 To: CC: , , , , , , Nipun Gupta 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: 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-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 --- 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