From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM02-CY1-obe.outbound.protection.outlook.com (mail-cys01nam02on0044.outbound.protection.outlook.com [104.47.37.44]) by dpdk.org (Postfix) with ESMTP id 2337A7CEE for ; Fri, 30 Jun 2017 10:55:42 +0200 (CEST) Received: from BN3PR03CA0072.namprd03.prod.outlook.com (2a01:111:e400:7a4d::32) by BL2PR03MB465.namprd03.prod.outlook.com (2a01:111:e400:c27::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1220.11; Fri, 30 Jun 2017 08:55:39 +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:39 +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:39 +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 v5U8sfKB032271; Fri, 30 Jun 2017 01:55:36 -0700 From: Nipun Gupta To: CC: , , , , , , Nipun Gupta Date: Fri, 30 Jun 2017 14:24:31 +0530 Message-ID: <1498812875-6945-18-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: 131432865397145773; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(979002)(6009001)(336005)(39860400002)(39840400002)(39850400002)(39410400002)(39400400002)(39380400002)(39450400003)(2980300002)(1109001)(1110001)(339900001)(189002)(199003)(9170700003)(4326008)(6916009)(106466001)(189998001)(105606002)(50986999)(76176999)(81166006)(305945005)(54906002)(8676002)(77096006)(47776003)(110136004)(498600001)(48376002)(356003)(33646002)(53936002)(5660300001)(104016004)(2351001)(50466002)(38730400002)(36756003)(2906002)(6666003)(8936002)(8656002)(50226002)(5003940100001)(86362001)(85426001)(2950100002)(969003)(989001)(999001)(1009001)(1019001); DIR:OUT; SFP:1101; SCL:1; SRVR:BL2PR03MB465; 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; BL2FFO11FD020; 1:oHFBQk3uHA6Q1ZwkMIej1FBkQKR0xb88auIl4DweG9?= =?us-ascii?Q?GbNN7RATRjoJmPPpoTG2pLca6ebQNgARgLt5NX2Pf9PoydFQZcyUuP+uw7WA?= =?us-ascii?Q?e4UI00XvO0+6M4qtTLsJeZN7h5jk5EpZRNNDLKLhNBNozjUjEMW2H6dncf+x?= =?us-ascii?Q?54CICHhTaoIH28gtrCpGQyEeJmhx9qZhyGh1ng4ZPc3l11B8S/2Y26G8gBiP?= =?us-ascii?Q?zDtbSxuadC3uvGMdxUbkOfOfwCYC2uJlOqgpzt0snF9Loi9GGj4Z4AkLrHZQ?= =?us-ascii?Q?o+PneZF9l2dSAQ8tQXn/V5DHp4bKSA+7SMLGjHpm0y4udOpbYNJZEnjheBN4?= =?us-ascii?Q?bdr0w8QholZHtpl596CjL6ZTtagjqPI7urF+o117hUrAUoxG2pion1n5xh/O?= =?us-ascii?Q?Z8ccv2gg7YsbTBLMvIOKWlRIVemhPzj5rIQe+2Av1SWiX3LFMb0d8cVHK18k?= =?us-ascii?Q?lClsDnQ5w/Bra0zbMfEQ1TolhWrZUVaEWs2cRu8uADkL39ny7OkbIA+k25kr?= =?us-ascii?Q?vH/bDt5An/uEOG4jRlpr7qOje8YEXd1xm95cBU56PAlf2EVH/TlhyNOJTdFh?= =?us-ascii?Q?INr8sp/OV1bqFswQnPOmgUX47L40+teUlamz5XWiJlQ+jsWp+TfIGU2HqpQU?= =?us-ascii?Q?qmjIxjKMXTCISRlcX1Z0IFiH4Q5dcFxFmavQTpT53PoOfZ+DJ2UaH+Zg1M5v?= =?us-ascii?Q?FFX6H9CiECuOD/7dSLZncZrI5Mq/gTFjS/rhOqYoxue3qhMX2kgNs6VzmQL9?= =?us-ascii?Q?oAwLMzs4o9OwxwTarZ0L32FDKLxOy8bjTOfLR78q3nRKXOSBKM7f3r5NMFKU?= =?us-ascii?Q?hd3sS8FydlG/xVX5HtJ+2Lzxb1G03dOHRTcawJLwxV6TeLWdPigPz5o2THSr?= =?us-ascii?Q?9qVJ5V8obHZAW6a/FY2d3pfB/yNCq9qrxCxFXnzua/lzOTB4aEi7JslB7bfN?= =?us-ascii?Q?WCo5F0JKypB1NpkBeT/9H5mGI7X1xSEPPaHyk2BserXapTW62xh/x9leZRUn?= =?us-ascii?Q?57Aq/pckqofaFImSqavoMZyboOQhi/VRSJWnznnquKGrKpSqacKrfUhGh0T/?= =?us-ascii?Q?j9lZv0NX4U1GYaA7faLz/DavMUR7gAxGjLenSyNR/hDkvlag=3D=3D?= MIME-Version: 1.0 Content-Type: text/plain X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 18140f5c-aa6c-4f45-9f4e-08d4bf95c843 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:BL2PR03MB465; X-Microsoft-Exchange-Diagnostics: 1; BL2PR03MB465; 3:TtXmfeTek3cbQQrTqs4cETjN3A24PGRPZG+m53FgqtU2wSyUnca52FaboMThlWD7KRLjEnjpdCZuTKGi7ufsUseAo3+nvBNoIXkvQsOvW3hxHxmbC4SMD/u6wl3QeEqQmcxyQlL1Trhi6kybNUYOEumY2bk4yCqh7drarx8fGvTOCo6dBOoF7sM5AH92lPWrgCCr0YcNsQcMeE61uVwrMl3NkSTmpfZDNd/MqolOIRr0Oj6YND39BU8Yj7KH+JfnWE4CESXJDiC5TI4IY1TFFFcepjQdTSZVQdJkc+T3s1mjlmFf64h0SgkUYoqRk411N02zL3B04pOhXQWGJneKWxpR2AyMb/BQHTJSx0L2feNMH9pc1LL1pclNPBBeV0wrM+NQ+wLb23IMRHlpiMgH09oe4fDuCNlRl376H77ihNvtQwXoE2I6CIME0ycecCm6CoNH0Oc+YdEi9s//1l5fHkIgfEPOxfdaW3YjLZMrb08pQlOJ6+GGqtRRXlz0h5Gd/tfx4W9u+y/93V0Fq8cf6E9yoa5V2Q0DXRlcHpnPJztVo5v4KlcEVyTDQGSUcREQ5l6X7vs1q4ga+E/u/wfc1g/0MCOYrQYx+GuJD5q4VfDDaeF6iwlOmQqYquFQRBIeucOMioLPhMzQyW434piavkUcrgpP/c6UZP0WPQdj6MrXIQH/bC43jpYAOGx34W2uwOBzbxUTMHS9PufIdP6N9Fb5YsEIFGJWzMrr/WUnRmTbK17Od+wdHaP21N4374fDY3Se7LWV0rGhzT3g6hLaV/K30PwIE282vrYMcXajFnAAxXPqBGu/+qLsGou9TytBbIFIJ1USn0a+IQ2S21MACHtatWx/GWl0CMDn2lIuuEzlEZqhuQHKX+D1Qnlfdn8A X-MS-TrafficTypeDiagnostic: BL2PR03MB465: X-Microsoft-Exchange-Diagnostics: 1; BL2PR03MB465; 25:vTNmPqF3pdU/g/c4y3qt8O7VdL4tG9b8pkQCfo4J/E6iDmeSnfLOSRQ4ZlKG7JMYguzgPsUb4r8Z29oij4xF9KFrIm91ChoDe/M0p41h5GCOn8PMEPYUVaqinYmnej0iRqliEMX9DZfzkdXx0rcWrXhaZIUIl7kWjKpo14wWXY1CRiuQBYqRwUuJLO1kMSoteQzdEQ/0vShFd6rFd81d/lg2sJfOEakwHjVDSb/3694wcnS21DrNkpcFtIPKXpaYgf13VHtR1woZEW72jYe4G8hk2/gAyJIU3Oc6/VR+pCKYExsA9dp/ojEiIvtOexQZZ3uMSLXyf6Q1+gvhR191FHgWZIoZcapDF/nlu2Iu9WSXwQnKbYprFEiugoMdlWWKSVyt+E/nAdj3gMKcx7PDPChd3ddLaL7ZYQx63HKEsNuTxfH84W+HDkVMGFei0TawkARmfHJn2/Ez5lXweTBbTcY8tHkDL9GsPN4rMY888FGFDWwFsiOjvc+7LLptgdotIglCH/B8xTPw7KW/cmspkdd/9cDWOZxqumwgpUKr69vwn672AXJUUVn+k05QbUZNehCN/OMv0YbloEsJ84H4OeFr+yltQjJFuLy7llGWyUC5/Sn0PDxXXmJ8pNpomINx+4WNipcB5N9nqRG1it0IR4RIAKmX36O4+Yu8QX6hmE18VJzQEObZeBLFGRPK5yNa52HufNsUCdTpTBwYAaXP/Hf9wyvdGFLdIimLNR0nabZ+1fbxWrnxbjwQUmxxtTATpwXubnOXp9nljCIMlzfRCCFkGcbhmKafwJc2c61K58VbONVGRaN8o0W3RMRdujYCx6lgCwEkCPt1D45rSK7qvysrxq4OwOppqbWnQGWTl/wR8yhGU6/i/d3yWOK7/xBl7vmlho0x+ssv3U9L9x9SMDZKdbwpmsMptSznpakBxoE= X-Microsoft-Exchange-Diagnostics: 1; BL2PR03MB465; 31:BeRPLz4NBZLBvVxdoYuBony59AI9Kz7B7AKyLUmPaN43s+60rycYykSdmIVg0FD1f8WoL3xD783eOPVuBSHuMSC1H4Dg7qxMsOszLhi+YGJoUWRVrmbiDZqJWLZYaJGOifhK/ka80xAL8t8sdt3X+PtLCKjWn8tNJMzTUUoCCU0IVINfm0g+l7aH2aQt7+90lx47k5WMWXvFhFeF/2WCsVbLcDdr3qOqZuOlC42Rl8ApZm+QtJMD3yR/5+fJZzzPefltD5uzvCXed4U33cZZe/OydJ6tVzwerXnxkVzNFZreYOGWq3Nd6UFHaGKBBX0vIkiJOoiSwuWhwk5+4y+HrdXBCt097jg8rQzgbMaeQbXvZq2yrkJoNy0opIoQbgse7uLf6MNrV+8WjMn+v9b/IYEDPjUqaDZd7OOel76Sl26MrTqfdC2+QVLxGyK16Tqj+zyBpUmvQDoCMgGaz7tRPQCsb65/MuayPSq7x7WkEkISgV8Iod75CRWMdSzIhAAc2t6RWtrlHsu09at5XWXGtCsMIsJqw1UeGi65P1Ssi7k2ai8d9TD1V9xs35bviM0fYb4E7z2CBJJO5KixZnzGlpVI6BWA7nfKGS+9sSliAJdD12Z+lSUF0nDPuEGx00miLYmeTiEwtbFiEFCJrdVEdskrnYRlizq3Mn9ScY/B/i77qzWoSENk3UMMmG394ZqO X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(236129657087228)(185117386973197)(275809806118684); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6095135)(601004)(2401047)(13018025)(8121501046)(5005006)(13016025)(100000703101)(100105400095)(10201501046)(93006095)(93001095)(3002001)(6055026)(6096035)(201703131430075)(201703131433075)(201703131441075)(201703131448075)(201703161259150)(20161123559100)(20161123556025)(20161123561025)(20161123563025)(20161123565025)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BL2PR03MB465; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(400006)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BL2PR03MB465; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BL2PR03MB465; 4:7ZvUkJAh5HM9Ku6zNDXgdb0e/lsVxYinhwF7uwdW3v5?= =?us-ascii?Q?rnXh9smRjduooRVHdp/kzaETeaStwKvfoL0Ps2Q7ELMSRVZKcv1y3gxxPRkk?= =?us-ascii?Q?27B0Wfx9kgFxYHnTUTwyOWvKpRr/nFlG5URql4LWzhVtRknVIbE7TJkAtqwE?= =?us-ascii?Q?uIaLeoGRzKp4L4HkXZ87UKBfHk+dX2lhmXI/p+8ScL9FAn3T828t80SyK7SN?= =?us-ascii?Q?sGDJJ9dYu/rtkjnX6rw8gTd+R6rc44IOFiMlZGOS29LbKWzQt8XcMed1vC5N?= =?us-ascii?Q?TguWGSxM2zaRcgD3BsKBlsSx+hmgVpsA8y9/8sp3+cglCn4CtFArdtpUKv9c?= =?us-ascii?Q?9Duu5oucV3f3dt1yzk/VkF70nR+akBhOXkQ1PzmSpIwE1MuD967VcMNmtp+Q?= =?us-ascii?Q?4JIqtk0RxI5FM2NvsprDDSOmB1JUkHF6v+vktcnDS62Fx3Xfqm16VcQ0Lmxt?= =?us-ascii?Q?XiYFhQorXfv5pPNwG/rJHrOHsq06w5ULubWcOoBJmkC/w9qVTVqZECc/eUrR?= =?us-ascii?Q?ubIanthBYJQm17qhU+p/HiQBhTEUsVYKqvRG4g0HdGTDISHJVTVMedfUHYlp?= =?us-ascii?Q?bCQh9JZjtyNa8fFZ5SmmrTZ2UUUAoOjgbGRkJb2IM1JsghwYZA5YvRhXICZJ?= =?us-ascii?Q?1TsPExBd6WuCtPEe+4uSIDieAbEe4BVJnJRZClxeSYdNeYqnHSAp1G7ikmxk?= =?us-ascii?Q?E/mBT5K5B3s9Zn76A4VTk300W4N60/gewt/2IyCxrcWa0ueeY/me1IW/HnSg?= =?us-ascii?Q?I0VQSWl+bNJJG01niTG1nPT0obJ2yhhN4U3E+4yklfZvK/yyxnWhpsDvf5Qq?= =?us-ascii?Q?9xUQ0CigOAcMzDgoGSL+htYSW+J+TE+OJfyidG3w/HF2FlMPiyQgW1/i/JIM?= =?us-ascii?Q?o2Xuys/ifQhqeDqgrMkM5lLowfRw+tsEwbXuRGgpJwJ8mDfMKhxgEgdmqYQJ?= =?us-ascii?Q?mDT2BJ142O0IvHX/nM1YDEHBpqOS0tHNOqgn+tWrlef2nAcuHSGd7lf2VUNv?= =?us-ascii?Q?x8b53AErfxIr0k/9MJ14+2dra4QqJw8nBf6A2cpQJtR1n9Fr5yKyCdZFN2E5?= =?us-ascii?Q?K9zyqOkyjrMNBExLTfUYqRaTPhA8jKSf6UWVEyOK0sxOQfwFZTrLTD256jxA?= =?us-ascii?Q?nIP5QnzE6JYZgIhg7WqfIMR/dhaDRpVj5qC6Tniqk3nYhiHdFDdMp4VrWf0x?= =?us-ascii?Q?agEid0forqy/xvXCmY2W+jQTNMhy45VgHhHCcxj3UyAMznbR7YA1FqUN/Xp+?= =?us-ascii?Q?XgHAbRaMJzWAfce7CamKGzEFt2dHKEValTpAibKXYt8KG1tAI7Kdu/NBqSp9?= =?us-ascii?Q?GdS9jk5YqAPDL6+PX+xPhknYizanicBHQuoC6NnkU?= X-Forefront-PRVS: 0354B4BED2 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BL2PR03MB465; 23:TX8MyHYnew3jktcgkCJg8mquCvSk+l0hSwGUEHlG3k?= =?us-ascii?Q?FDFtD+BKll7mY781Jq7Tl8nvr07A0NXvpo8aUpMM/Ea1yR4SAYLK6uI7oVfI?= =?us-ascii?Q?KrE80rxALa7PlfgDVKSyPP7m2CtlnPSpz3aocBVgHFQfJ+zQxHd7CT/DI5Ex?= =?us-ascii?Q?U3APBaCnDdXrnIY+pcyqJMq3hqOghZng1VPf28NyWaSE6JJAsZYxLEsqU35m?= =?us-ascii?Q?xD7+3tr2NI2WoenseYAIGGQn9p8NcCTHjB66m3uek1O7c3JBAsVFOJHogpyh?= =?us-ascii?Q?YGY+tcVeQgTlPs4CE8YZY7W9t6eh0enG0ENiHXctc9I7Syp0abVcTuGnQ0tN?= =?us-ascii?Q?mIRA0HdPZWSF+e8IbEdfdigODkx6yh4EoNKGEOw373+g7io+vQwrqejMkRhu?= =?us-ascii?Q?sAXEg1mpmEj9xywHa3P9os2nlJipvNf29KA3gJmA2df5WpCJESxkWs0wPAeG?= =?us-ascii?Q?iD8tdUd4YWZKmSK0U9JHxvm070PKog0u4BSP6NNbpFBumrNMaUKfpBmTUpuR?= =?us-ascii?Q?qqwIW9U0R87ybdRTsSJ6Axiffm6bunuICyNezEgIw6Szo8IZNQY1IOoxsQ4B?= =?us-ascii?Q?jiKoAIsOt8GQyrYVbUGosY/neTXUJKDatPpf1G+HG2PeJS6ao5nNGK4gRE+A?= =?us-ascii?Q?WUMILRXKzfcN8iVugWD3ECOyN3pBDtJ8SlEHbpURlUnqCdVpukgBlJk9z0S/?= =?us-ascii?Q?2EuHK/8hHFQEEdfuDVy3msmaMhBfLS+4BLT1IMgqWT/ut7KlhtzQMCE6iLkj?= =?us-ascii?Q?a3QiUiMCoHamfe/aiuEEEbJWA6MTbQfX4vLckecz5dJCzOhaZ3x/CxrKUfxb?= =?us-ascii?Q?X06d7aHP1ugHRIY+P7Ey9esIJZ6rGvENLDW+NnggEmugvrkaOe38q87fAUkF?= =?us-ascii?Q?d8VvosjWA9CEFLJMuifVer9s9cvx+BgGmil0hrYBk3vmnKd6r/09hQtwrJnf?= =?us-ascii?Q?V4IQt+dhCqcy61wM8SSxBqRTVAkDbq6foB4WuOFDDxBClrwRVTPuPdOTxbU/?= =?us-ascii?Q?r5UYlTJD+ugXodbrbuafXZ2cZAvQ2tWDoYCp+aKgD2LkPpF5Mdxsg0ZLSMS+?= =?us-ascii?Q?uTtlWPGdCHf5YIXwvbucmGoj9yAkWnBEy7VElKZ/zVUaSJ7x+cG36e/MoB+S?= =?us-ascii?Q?0iTCq5vmPk6i1+wcNiAHyEvd1NmuRPj7PXEhRxMNGUnA2yrO3QFROXj0wck0?= =?us-ascii?Q?dKt7GRHacNXc+VJqjoGtbPg+gODlxj2+9YrWq99jNieYOdBKFUFiJr07tnQl?= =?us-ascii?Q?RPgJAHChUtJKS3rQ8aEefROgsnczy3XR+NzyWr6xWrfJ5EWD42QyclKM+cCe?= =?us-ascii?Q?6q+1srPXr1G8irPhdHmYz3J5d2MgPqXsNocvRkCAsm?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BL2PR03MB465; 6:ug5SXsXXOZMvVRsW7Hf2/g/aE+yzULSXy3QKsXmdtzt?= =?us-ascii?Q?iUooSIOEIm45U9LWtutFR3E/jFk5qK8bn4oTQtmhqrKA2l7fbhivXqkol//V?= =?us-ascii?Q?fM2htFUnKoIU2TLBh5dOT6OauuQBsyBAuvqyD8I4KVSS1NLUxDuFo81H5UB4?= =?us-ascii?Q?0r+eNRRgV6wnmIHXhdqJZDyNGBmQ3lo7GvE2DkqxdIsrYj3dO7Q2DeepdIy8?= =?us-ascii?Q?9DJnk69NTaYSeXP77gUXP+ZhbB8uZsYIa7zIzpp2d7xZMCdc4BnS9l8yYfb4?= =?us-ascii?Q?Y+BB8okH94Y5dixp9KRn3GFZ1H6K21olC3QZ1yhjitZNUA1grsJyrhJs9ELf?= =?us-ascii?Q?FJb0c+nmL+SBFfRhRKAPYpiLuKzV6eCpAfgf1hQBdXtRrob5lIoWnRLkyajW?= =?us-ascii?Q?H8vjTgdINVfbiFid32rP85mJfGk/DehJyBdMvJFMlkhTsHZE3J9PLaJz3WBf?= =?us-ascii?Q?LPsXEdprbBXGkM2CVAlc2is4PFddvh8eRntrdGHQe9TIWCNGTVwsOyZwa0zt?= =?us-ascii?Q?7paiJfDwTP+QEUPpu/UWyADwgckC0261mQJdcM2ho+NXf6MEmP2L3whMmv9B?= =?us-ascii?Q?GxF+y02jRKwMS36jGJjvmnZ0wG1mqkD0eBm+XbK3UxSyb0ew4kHizgglbRuj?= =?us-ascii?Q?kQKskQqQWX2JTKzax0a4WuwJizC5vXDI8qo/4ilccCnPY3ZQmXVVL/jtIQgn?= =?us-ascii?Q?gsmWzdAl4vuJx8u4ifq2WwBu6m9g4gx5pXqzZMkxyHZtO8lV0DvVvhqG40Vm?= =?us-ascii?Q?jZtgdz6ooqpKs31AZCrPrPe1uJXFWu+LRgZxr3hmnDw3Oz7GuQDkmgmqhunG?= =?us-ascii?Q?1m2sObRp6md5KlJghvY2F54VqMusOWvyNa6PRktoP6llKwE9ntxGVDDI696S?= =?us-ascii?Q?8hNplHk4ZXd+u9UzGx2pnUGI6B8CbK6GIt5Xy4J5fIxpm17CtR7J7hrasm+R?= =?us-ascii?Q?6vYP1v8LXrhhrDYclCrV7sp8wDn1Gx9T+6RlhoQ=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; BL2PR03MB465; 5:LH5t6qViBWA1qavzBViVxvBeoqU1Cku5yGn++liCW91MbZ9W1M80KdjdePlOG3JCHv/DkSNWsXdeKOnOmlewJT71zMZfmJFngNdSw0B5hFcdBt+7XT/KITiS5mM7jHLAYgd4eNtz7UeR0dDvIdF33FoTBTQUP4NiQb1oSn+brz2L3mGLOSv84VeqrIAQvPGCZsZQjEiMf6LD0oMPZubioIAnuT9IFW3GTDBrFkEfWq9RTXI0IvU3MFv6RlXOmzuFpxZZF/DuMSAVPm/1DCMan9VqxOHF815VS7gSWkO9b1NQjGjTmXCc827JjICdLtIFRMmeK9yVvjfDOAEZP4hjcNVeoA6RrlX+/wTm0qy/6oinIWWV89T6+1kLmY0FAiWjY1KJOidc/B+0qnWUILqtfXuj78BeGMW95fQLCOoUfdLNQFBEePgsvNBqElluMj8mdcZrXDpijv6slJR3APdxNFspPUC85OdZQKCOVWSHK2sWDwuIDrECkp52dyw1gIEZOgr+suOBbAYPjSdgrpPn2g==; 24:MWbIGdJswcrsKWeZwPTVJrFwcI7rp+YN9jJe/CvqrNpemQsz+yCfvjDov5X+9zELaaVRuPNtFpgLNFq9afEik/g0Yh0tDH2W7Yur5lumEyE= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BL2PR03MB465; 7:7YjiFqNl5nhVqbMPsWKbOk/izWn3t5rRJ8uAcUZG5IEq7Xd2vgNbKY/iSvGOssE+kdKiamxFKz8bTWWXNEm6GXkfj4JczQZ9O1ZAUXV57Zhq2vQaAucWWrPdtu3nQfQ1JlMNsJY9e2275EHXvCRQ16yEIKboLt2Cbxq3LM9uMBzKcmjR+Uv53ncCQnDpB5hnoi5FTBEw/TUc+svHIoVO6zMxq2FDr8MHirTsZuXdx0GqtIvNmGPw7qv7Q3/R0AjCTkyU9bF4BOofK50Soc87nTP4FYZTzgOYeC2R3yceJLS4VtqQnRVzwxliftfnAoLK1F1quZW3MNy4h+Jb+VS80+ivtD7A0Ztt1dKtZs+GLUCJA0FLnLAVrApgkhVmMwyrY4ZP+NVy24pEhG65u93plI7veApHLHlvfuOlqNJ1+4XZspB7wxb6JC897Vc3y/RYGRJ6XJ/QMdLcRgoo+P57a2MlcvE8F9NCB2OuM7S8HSMHIwJ37TKY5k8lCY0absJ/cL/GDElRvyJEa5undLC7wOU2/BCbdDDn1Wqcw3OeHsVooBG10MKM41BcXQ1Ahlvj9ljrci79HPhw/tw1/qVSEdaaNALp+GQ1VL0vKXw/3k93Yt6CugDv2bQUir0D0Gisg8cK87greQh9CbtDOpRJkJQGyioCDkGuFqEusTTxOxu5UvDpQ0PT5LmagKQuHBoFR/aviTrxY1NhTzo4H3IBAdnFn4/j9syhn8IPyZ8Nby4ODK11zJQ8hlY2J3TBAhbDrqQkCapTbEQ5x97YAeuFiJ9SiWoz+a5Vx/4RI9wo+JY= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jun 2017 08:55:39.5429 (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: BL2PR03MB465 Subject: [dpdk-dev] [PATCH 17/21 v5] event/dpaa2: add enqueue and dequeue functionality 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: Fri, 30 Jun 2017 08:55:43 -0000 Signed-off-by: Nipun Gupta --- drivers/event/dpaa2/dpaa2_eventdev.c | 170 +++++++++++++++++++++++++++++++++-- 1 file changed, 163 insertions(+), 7 deletions(-) diff --git a/drivers/event/dpaa2/dpaa2_eventdev.c b/drivers/event/dpaa2/dpaa2_eventdev.c index c00db7a..a7f8516 100644 --- a/drivers/event/dpaa2/dpaa2_eventdev.c +++ b/drivers/event/dpaa2/dpaa2_eventdev.c @@ -49,6 +49,7 @@ #include #include #include +#include #include #include #include @@ -74,11 +75,85 @@ dpaa2_eventdev_enqueue_burst(void *port, const struct rte_event ev[], uint16_t nb_events) { + struct rte_eventdev *ev_dev = + ((struct dpaa2_io_portal_t *)port)->eventdev; + struct dpaa2_eventdev *priv = ev_dev->data->dev_private; + uint32_t queue_id = ev[0].queue_id; + struct evq_info_t *evq_info = &priv->evq_info[queue_id]; + uint32_t fqid; + struct qbman_swp *swp; + struct qbman_fd fd_arr[MAX_TX_RING_SLOTS]; + uint32_t loop, frames_to_send; + struct qbman_eq_desc eqdesc[MAX_TX_RING_SLOTS]; + uint16_t num_tx = 0; + int ret; + RTE_SET_USED(port); - RTE_SET_USED(ev); - RTE_SET_USED(nb_events); - return 0; + if (unlikely(!DPAA2_PER_LCORE_DPIO)) { + ret = dpaa2_affine_qbman_swp(); + if (ret) { + PMD_DRV_LOG(ERR, PMD, "Failure in affining portal\n"); + return 0; + } + } + + swp = DPAA2_PER_LCORE_PORTAL; + + while (nb_events) { + frames_to_send = (nb_events >> 3) ? + MAX_TX_RING_SLOTS : nb_events; + + for (loop = 0; loop < frames_to_send; loop++) { + const struct rte_event *event = &ev[num_tx + loop]; + + if (event->sched_type != RTE_SCHED_TYPE_ATOMIC) + fqid = evq_info->dpci->queue[ + DPAA2_EVENT_DPCI_PARALLEL_QUEUE].fqid; + else + fqid = evq_info->dpci->queue[ + DPAA2_EVENT_DPCI_ATOMIC_QUEUE].fqid; + + /* Prepare enqueue descriptor */ + qbman_eq_desc_clear(&eqdesc[loop]); + qbman_eq_desc_set_fq(&eqdesc[loop], fqid); + qbman_eq_desc_set_no_orp(&eqdesc[loop], 0); + qbman_eq_desc_set_response(&eqdesc[loop], 0, 0); + + if (event->impl_opaque) { + uint8_t dqrr_index = event->impl_opaque - 1; + + qbman_eq_desc_set_dca(&eqdesc[loop], 1, + dqrr_index, 0); + DPAA2_PER_LCORE_DPIO->dqrr_size--; + DPAA2_PER_LCORE_DPIO->dqrr_held &= + ~(1 << dqrr_index); + } + + memset(&fd_arr[loop], 0, sizeof(struct qbman_fd)); + + /* + * todo - need to align with hw context data + * to avoid copy + */ + struct rte_event *ev_temp = rte_malloc(NULL, + sizeof(struct rte_event), 0); + rte_memcpy(ev_temp, event, sizeof(struct rte_event)); + DPAA2_SET_FD_ADDR((&fd_arr[loop]), ev_temp); + DPAA2_SET_FD_LEN((&fd_arr[loop]), + sizeof(struct rte_event)); + } + loop = 0; + while (loop < frames_to_send) { + loop += qbman_swp_enqueue_multiple_eqdesc(swp, + &eqdesc[loop], &fd_arr[loop], + frames_to_send - loop); + } + num_tx += frames_to_send; + nb_events -= frames_to_send; + } + + return num_tx; } static uint16_t @@ -87,16 +162,91 @@ return dpaa2_eventdev_enqueue_burst(port, ev, 1); } +static void dpaa2_eventdev_process_parallel(struct qbman_swp *swp, + const struct qbman_fd *fd, + const struct qbman_result *dq, + struct rte_event *ev) +{ + struct rte_event *ev_temp = + (struct rte_event *)DPAA2_GET_FD_ADDR(fd); + rte_memcpy(ev, ev_temp, sizeof(struct rte_event)); + rte_free(ev_temp); + + qbman_swp_dqrr_consume(swp, dq); +} + +static void dpaa2_eventdev_process_atomic(struct qbman_swp *swp, + const struct qbman_fd *fd, + const struct qbman_result *dq, + struct rte_event *ev) +{ + struct rte_event *ev_temp = + (struct rte_event *)DPAA2_GET_FD_ADDR(fd); + uint8_t dqrr_index = qbman_get_dqrr_idx(dq); + + RTE_SET_USED(swp); + + rte_memcpy(ev, ev_temp, sizeof(struct rte_event)); + rte_free(ev_temp); + ev->impl_opaque = dqrr_index + 1; + DPAA2_PER_LCORE_DPIO->dqrr_size++; + DPAA2_PER_LCORE_DPIO->dqrr_held |= 1 << dqrr_index; +} + static uint16_t dpaa2_eventdev_dequeue_burst(void *port, struct rte_event ev[], uint16_t nb_events, uint64_t timeout_ticks) { + const struct qbman_result *dq; + struct qbman_swp *swp; + const struct qbman_fd *fd; + struct dpaa2_queue *rxq; + int num_pkts = 0, ret, i = 0; + RTE_SET_USED(port); - RTE_SET_USED(ev); - RTE_SET_USED(nb_events); RTE_SET_USED(timeout_ticks); - return 0; + if (unlikely(!DPAA2_PER_LCORE_DPIO)) { + ret = dpaa2_affine_qbman_swp(); + if (ret) { + PMD_DRV_LOG(ERR, PMD, "Failure in affining portal\n"); + return 0; + } + } + + swp = DPAA2_PER_LCORE_PORTAL; + + /* Check if there are atomic contexts to be released */ + while (DPAA2_PER_LCORE_DPIO->dqrr_size) { + if (DPAA2_PER_LCORE_DPIO->dqrr_held & (1 << i)) { + dq = qbman_get_dqrr_from_idx(swp, i); + qbman_swp_dqrr_consume(swp, dq); + DPAA2_PER_LCORE_DPIO->dqrr_size--; + } + i++; + } + DPAA2_PER_LCORE_DPIO->dqrr_held = 0; + + do { + dq = qbman_swp_dqrr_next(swp); + if (!dq) + return 0; + + fd = qbman_result_DQ_fd(dq); + + rxq = (struct dpaa2_queue *)qbman_result_DQ_fqd_ctx(dq); + if (rxq) { + rxq->cb(swp, fd, dq, &ev[num_pkts]); + } else { + qbman_swp_dqrr_consume(swp, dq); + PMD_DRV_LOG(ERR, PMD, "Null Return VQ received\n"); + return 0; + } + + num_pkts++; + } while (num_pkts < nb_events); + + return num_pkts; } static uint16_t @@ -397,11 +547,17 @@ int ret, i; /*Do settings to get the frame on a DPCON object*/ - rx_queue_cfg.options = DPCI_QUEUE_OPT_DEST; + rx_queue_cfg.options = DPCI_QUEUE_OPT_DEST | + DPCI_QUEUE_OPT_USER_CTX; rx_queue_cfg.dest_cfg.dest_type = DPCI_DEST_DPCON; rx_queue_cfg.dest_cfg.dest_id = dpcon_dev->dpcon_id; rx_queue_cfg.dest_cfg.priority = DPAA2_EVENT_DEFAULT_DPCI_PRIO; + dpci_dev->queue[DPAA2_EVENT_DPCI_PARALLEL_QUEUE].cb = + dpaa2_eventdev_process_parallel; + dpci_dev->queue[DPAA2_EVENT_DPCI_ATOMIC_QUEUE].cb = + dpaa2_eventdev_process_atomic; + for (i = 0 ; i < DPAA2_EVENT_DPCI_MAX_QUEUES; i++) { rx_queue_cfg.user_ctx = (uint64_t)(&dpci_dev->queue[i]); ret = dpci_set_rx_queue(&dpci_dev->dpci, -- 1.9.1