From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM01-SN1-obe.outbound.protection.outlook.com (mail-sn1nam01on0064.outbound.protection.outlook.com [104.47.32.64]) by dpdk.org (Postfix) with ESMTP id 3B1FD7CF0 for ; Wed, 28 Jun 2017 17:18:07 +0200 (CEST) Received: from BN3PR03CA0066.namprd03.prod.outlook.com (10.167.1.154) by DM5PR03MB3273.namprd03.prod.outlook.com (10.174.241.32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1199.15; Wed, 28 Jun 2017 15:18:05 +0000 Received: from BL2FFO11FD022.protection.gbl (2a01:111:f400:7c09::182) by BN3PR03CA0066.outlook.office365.com (2a01:111:e400:7a4d::26) 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:18:05 +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 BL2FFO11FD022.mail.protection.outlook.com (10.173.161.101) 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:18:05 +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 v5SFGaQ1032734; Wed, 28 Jun 2017 08:18:01 -0700 From: Nipun Gupta To: CC: , , , , , , Nipun Gupta Date: Wed, 28 Jun 2017 20:46:00 +0530 Message-ID: <1498662964-11251-18-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: 131431366855102348; (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)(39380400002)(39850400002)(39450400003)(39860400002)(39400400002)(39840400002)(39410400002)(2980300002)(1110001)(1109001)(339900001)(189002)(199003)(9170700003)(85426001)(50226002)(2906002)(50986999)(76176999)(356003)(47776003)(189998001)(2351001)(105606002)(106466001)(48376002)(5003940100001)(50466002)(33646002)(36756003)(2950100002)(8676002)(6916009)(305945005)(104016004)(38730400002)(77096006)(8936002)(54906002)(5660300001)(86362001)(81156014)(8656002)(81166006)(4326008)(110136004)(53936002)(498600001); DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR03MB3273; 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; BL2FFO11FD022; 1:N7/zipbEzerIh6RXXf/SvvJ5q4wAAbzQGRLF8Vb9Gr?= =?us-ascii?Q?hiNYA53+ufAksXDXCEb/H7BeQtEFrvKuoLmBaHsITzy4cSptdhQeM3k//ODW?= =?us-ascii?Q?27vy4a6miD979nS7votwZxM/8dEBoE2drlxbRqeCPqyAgkRr5TZjeqD6rzPz?= =?us-ascii?Q?xZYd4EF/tEvxti4AHWX/kCsbh4HjAsw3oKDX7GSwOXbuMFBOYqTi6vot8ml6?= =?us-ascii?Q?DiUCq6xuTu5aUYU8HZ43XHz+UYqoBhr5sHjkwetB/r8MUZm/XOpT1XEwYHhl?= =?us-ascii?Q?gB9sRo1FdUxIQUzAxW0t9OSPosDDE3MIdpXE7v1GDlMUPIPziwfk1THpcdgv?= =?us-ascii?Q?KK9mRxP5Gyx0hYrvakPGwNzRRTmJYKlfMkL448JdOuYZJV2ZoWkUk0P3vYSM?= =?us-ascii?Q?FzE49NgUUNwDlDNFu17zj0mBJWthWXWILkOo9TL5ZkxMuhOIfsIMMAH+c0UE?= =?us-ascii?Q?b2LLNU3PcLERXKriynGS5fycgGjjmqICv8gPWW48O1K/fsiZRvN8iDb9r326?= =?us-ascii?Q?oKK/SLgSwfJJSkrl4JNGXV9qJwVN5CGmBeGkItuSNdjizX9upMagCgJRGZUl?= =?us-ascii?Q?WVlJtn2ZPjutgwDVvnSRXnP5VPuu8i5QC4gJKvMLYIXtgqNJzj+SzeUOkAac?= =?us-ascii?Q?lwAeWSfcSCMdkUex6DYRnSNtpfCh/Fagh/m0lJfvS2G25Gh6ZRx3eznTBaaT?= =?us-ascii?Q?Zckxytz1p8ebGPcbS3OYVe5mmivx8kRkhRBKVdA+qjtSg2KWzQ+QdmbSXPnW?= =?us-ascii?Q?8cVeR+8bwfN3DXLTO0rfH1JOERmyHLwRzLFNgvDNWAjAlf35KCz2vhq9WYmf?= =?us-ascii?Q?M7zN6Vh9PBCk7WsUzqz3J1Hn+SVsK2SNCFrMup+JUb0filAGJ0J+jnnjGOFc?= =?us-ascii?Q?c3pMwJ+iXc1yJoFKUvtAaTcLR06TrItHX5BqpdZattcOMuWxtveeMGVLLXT7?= =?us-ascii?Q?LGLjjsaJAknX58uyWpHdZKS2B8QsPkIkNfTPe22fdQwhQd8amH1qGMolnM+f?= =?us-ascii?Q?Su7R+nWp1Sv+fhQrYpLZxIqtsthIXdMK5xJlI2klED2NfU5RAOixuw3VsmyY?= =?us-ascii?Q?Rs/BaK2TKN/MolN2Zr34RGa30OYuP/mCq0skMKHy+dUBI5lQ=3D=3D?= MIME-Version: 1.0 Content-Type: text/plain X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0a14924c-df89-48c9-a323-08d4be38e01f 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:DM5PR03MB3273; X-Microsoft-Exchange-Diagnostics: 1; DM5PR03MB3273; 3:FEzVUyK36BnwVBUwg9zXrGVRp8TD+JSreErnj9xG60mJmSWUFuMr2mjjKlteMKcX+4iSumRyDhdLRQkRflaeH16XGDtXb7GlrhjlPf9yKcJ4nD089sKHx39Mk3i6W4tzDjr1HDHs3H6FH4So8ocOAuRmhOPHPCD/lI0U8D7d5B2Se9Y3y4iOpuwZzyhCkwJ66ZysDAu3OICAIquVPNgWSmc5r8EWEiJysiy7MBt7Jnay5Fq2+yhoM79K/dWkByIC82P/8DsVitk2QM56dqe/nVNwuwspf1582RNhuvlNUYjTH5kPWnRFN9pWbaVTaRGAMC8LS6jzE5cRCC+e0SUeKAykdF0lf25+HfvhKilIbwC5ijnB4OovcCUoxgbFIVgvsFaaXldewfFrn2spIQhR+0s/WItODMZMMW+nw/Wa32TX8He1kpBtM338wZZXiFZAJrs35mQNdFNnnxlR0HqPdjAJ/PiEN4Vd2NGSf2//vK1KkZpXpqBGbU1o6WZwqRnRewbujI4tNyDb9vdAn11FfOtfXTAVLe0MBysJs4xl+kNGvgQ6Rs29GvdFKpokwMgcJfESOwwnlR3rElT62h/hf0t++eUodI2j7eZjtLSuwrdvu0zKPFVfw0+RMXgig+fkWHaDMogsyqghCDu4VU5g8lRV9+uf+Bmfs5chsjVkyhTugmbaVP6ksbN0g/Yd397uaTFvtLcUrOW1AGCcMxDjhSdlvB9+lF6fUNWI7JxBovZ1svmzOe7DGxcmEbqzHKHMZWUvyPpSKhsfobtd2oPKUQwl//m7qCUloVJszO67F8Di5wIhbpbJFefQGJH+AMsMOmlnXBuImk/Bn1ADUc+F1g== X-MS-TrafficTypeDiagnostic: DM5PR03MB3273: X-Microsoft-Exchange-Diagnostics: 1; DM5PR03MB3273; 25:m4ZI01iCynYQMIiGQZ7Q5zdR6FAick6WZ1QCRy9RV11CJTeWthzYLFNH2hbVZ1uLI8C1GYUyBcKrnKzpJApcaApEGy91WwmdYc5rGsFGRmxGUC3qPkAH+OBf3o6xN7A3SuMLpPI5wM0B/Nz6hwe35jaqRvA9gS1NwUKgeUfqGCu3pt2KrE0HPxeKHgK6XKHCzF//X50a2nKQ1EBXfdfRvzIx56LbW2SAwiDjOqDgNkRl34pKDb96R4SJNSdQ9Kd/koPDDuWV0yxP2LbQiqEpwxy9k60QmHBGcZ9lJpY6Vvzmb7o4PL9fzjZjByryrQZs82q/Fck5C+4qsd1ghWQms9fcKJvrPBdQKqCNCQ3+Hlk0/zNeF+mhK4CdjdhesvUwVPrTCgzP2i2n/xhuWKg3T/RDN4znm/lusk32hHRkux91Wp9UwZFuVMurt1/CFyDu2SPbZ09F1LwhtMV/6YWgSZthwmpsKshcatqVALICrdjaUKnxWCHzmvlbojPp0jFqkX3QGmM9I+ovYptUL05K8ljA7p8/juDhbShcEZhqltDSCWCEmTqzjR5x5XLB2Idt7xX0ReyF2DNqjO854C5LH2ad0AU/VWmhNqnmQAX7cjYPddzeHjaoyPPPhKD4HrSV5urqAgnM+s7i8XHaqoSaRospX4EqJrMZAkveBHOjxBc/adQwysBq0vFmNiX7JnSBCE2/JsYcahsihiwI1SIF+5/7+9CDKK/3j2K2CzlcSFaAD7KPTlg/LT1aouAk0M3hq12uEkCtIw2zQKt2uPgm2AxT6+L12xAjJMxr1ZrMWwd2cusuNYzNsxEk0UAUrfs4eIfUd5zsO3WHQTKv7LCT6x3nmqM5NrGVZNkmS2Stu2K/7TGvW+gMHYkVZXTEQaHtp8zgMXHXfqlRsCHhkwT1+xH4pPQpbBUfZ33Mehz0YQM= X-Microsoft-Exchange-Diagnostics: 1; DM5PR03MB3273; 31:/pQyDMx+bJ1l2TtPQxnGwIqzSybHll4B8V6nTt7SpP2ALv+7IqjdMmhEdu7c++uYSmsKuOftax5j/M7B7epQc70uN67uU8L/omEtXI3PW7SdhfY+tFU9gbLE4AfCDVZ4GS8OIDjOA9ayOwAVLvH8pT9eBxR/j7wYe47GSgB6RTUS8RqXWuMQVj2YEjyTEDxM4zbueSPWhHUlEjcOwUtoVZx5BENV0IyWgjVDk6p9TArEZXZgcwNjvNYRBhZ/LfJyxk2IGBowQIgAZ1t4a5MeWx700mtYMJKI93SG7nyhp2ngTkHo2jErCnM8q2LyNrepMNSUQBcTDbUVYVeQ77CR4Vsh74QZYxHNv1DXbm06EnKBhwTPsZyMleleHVULKxNscNs2RmETCCDq1eqwA6WSj24X2JEuphlkd0QxZVBNKJ3Zv1DcJYXT4NSgXAdOJC0jUqmzW3S/20LFw1VfhqDbPobD32jIoJo9YckAzYtm5mEUXv4k3GQe+Dq9mjewkhYKi8Vc1NtIXL01wIwq3AVhUgNqP7u1EeCv0Ur7f/LV9rKiA4HFaqhuPMvhGZc54V8CNhHJn0kYzbUU1C/vVZCDqIqn4va8aCW8MdGL7kFG4vZQBQDhulY7rM6fnjrcUUvyYURF4WMynZ8lJSN4czf8cneFGnpcbBdU26mSiSN3Gp/HJ1ifV2yJ+UDGURMHqWvf 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)(13016025)(5005006)(100000703101)(100105400095)(93006095)(93001095)(10201501046)(3002001)(6055026)(6096035)(20161123556025)(20161123559100)(20161123565025)(20161123561025)(20161123563025)(201703131430075)(201703131433075)(201703131441075)(201703131448075)(201703161259150)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DM5PR03MB3273; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(400006)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DM5PR03MB3273; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR03MB3273; 4:NH5onAs4XkWpFDlQLOp2UxbGxSCPE8cVWIqAARxPzg?= =?us-ascii?Q?448RLvVp9OroJg0GmInTGzluptOFYFz08wtF9CWZfCVo1KkPJzJFNL2h519a?= =?us-ascii?Q?xAXw5cUlcHNYMfol3O7C2K4UUnRfAUAN5gxsoP2ERNWGzWM/ljJejC3PaAQz?= =?us-ascii?Q?hYjPygj20QlPUlNp9fUhkktAncnw2oppY13LQ7FwUoeYEvWD0MZvn6J0nYwp?= =?us-ascii?Q?wY/+tNknTb3uB7aJVcju4tR5FQgPPcXeo2H41ONQQTox7wr9NHUmjkZ1LNDW?= =?us-ascii?Q?3v0I1NnZSbtww33JqU+zzsKL38EPdoIY49Zv06lJf/gNExBPZLjGEv4P3JQs?= =?us-ascii?Q?FS2kZ2yfW27PDuclcWWbUAwiHs9YXWL0cumce9PIL3LrPBORujm4wKwjahoZ?= =?us-ascii?Q?iLAPcQ02s34AgijsQ8y7IjuX2xywb3+oKh/usiHHEoBMFpi1Aj5Tljvkwrjx?= =?us-ascii?Q?KCcAp2kB3FHHFdPY9k2+v+U0OtmqtVBNAGA2bKukrEgtSXJ/W+/zPYonxRbH?= =?us-ascii?Q?qyT39gfHAoVcXJCF9EYkf1J/06BMT1s83svoEXx9najulegKBkJQdi1ubwCr?= =?us-ascii?Q?h65otSjNRBXlBk3O/L/iWTMxvvLw20YlAHYxOZj2y/PbXgoXCA4TQGtc1jzT?= =?us-ascii?Q?RttGsURIMKW6GtRrn1kfzA5rRlxXDhymd1wYA/fvP1IADtOBM+iMZgYwNPLw?= =?us-ascii?Q?4BPQ8210LAu3UWKbcdX1KKKgtEWgwUZAhS/7Z0+PBVgU25N0y1/vpUmC07dF?= =?us-ascii?Q?5e2z8+kq44EXRWkqqCLgCCmszFSne13GKFT81HNw/Jfa/ncItqGQtLgLm9J6?= =?us-ascii?Q?iXr+G8nxrsnL/7PowdbIRheRwIhT54R++XN7St7EpTYKbiK7sA+n5gbQPTOw?= =?us-ascii?Q?ZxBgXb7cilQxg8q4/RWDAgNVjeuyfMbRKHaimpB4jhmlFaSo5j+heNSB8qC8?= =?us-ascii?Q?4MYviLwapLFKZ/xRGepk8EsoS1Ns5+xOHcj0/JyV+fgndcbB5ZhcCGR8+48+?= =?us-ascii?Q?4a7ibPwVh+4E6D0Wg1+klDJkBoz41DBCezwbFxTcWNOagg8cTqPOT2ifMKHb?= =?us-ascii?Q?HnBljVmW90l1HsMEd00FMboxo1P2h8MHnHVqAg6h/mIaqLBCApNhuBV9oPQt?= =?us-ascii?Q?azCsfcj1c87PyNhVgacuDTIwmgd47dcKevMBh1bvj8b2Gn7gQLT9HImuuvEW?= =?us-ascii?Q?j/QlYcRS1lr0lfIJ4/AhKSlj5pTqg496+TdaZZwUfM/jsEexghinPlKUyVYs?= =?us-ascii?Q?ThKh12Qc4mSzjSldSoBsHlE+hmMnbzyPbI5aI5rSfVryQPp7uxTvQ7b+vI50?= =?us-ascii?Q?41ijD4bnuVD1cKq3Tz8GEJnX1vxoZYs0y2OIAVWGJb?= X-Forefront-PRVS: 03524FBD26 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR03MB3273; 23:VmGDiew+h1/kFru9mZ/W601h0A7MWAgTGZ5BMsn1Q?= =?us-ascii?Q?iB8eLmLwMFyO/t/oOfnUjtKNwmYM3KeuvyzuIPF+iRFHi7AjmFRafoYCxxdP?= =?us-ascii?Q?TEwxaIu2EmFepyBqYjanGzZ1v96fdAq4BZWuOSeZ8z0s0Fvt08f/EF6UagBK?= =?us-ascii?Q?Lxz7tXrUQ99p9GqgL0Wl3ydCkIIJQocD6RViHi80mZvFj/xIR1r7+yF3p567?= =?us-ascii?Q?UDfaIzY1ZQkY30X1asJqrQxbcU2mxBV5Ur0AuBgx6BRu0fgKkWtaX0bPpe8a?= =?us-ascii?Q?5+lH1Gz/WZ7Ia/8fnatJkVM/tGs3yCiXBycJxPLsqgUK8kgjhe7zXWECWZMy?= =?us-ascii?Q?rN4t97x8jiBVtJC9QebnKchPntLtZaIpAIawqFt9T10i3DFRcqarnOVrL6ya?= =?us-ascii?Q?8lbXnthMY51bRUSvIKfcy2hOGf9j97x3EmA6Wq+V7cwlh16hst6n28Bjknyw?= =?us-ascii?Q?RVt+fHhxc5+uIiHbORTt/DxnXauZ5OGBx6GBBlCgYotW4FaypFn7aIgm5gKE?= =?us-ascii?Q?ubWdOQWeIXdUnCEREWPUcvZkCgyGcVkjWlXeWMqa0UTV4oTxq7iRmkKToRLC?= =?us-ascii?Q?NzX4m3D3hPGGND4Qcf1dd/As0tVWnxa5L6yrD4Sk6Hkc8uRk7SGShmRR6nMm?= =?us-ascii?Q?aNY80dNZIiZwrqkPpPO0nCavhHxNxVo5qWsq020nP0tLV8IXkdyfoqqlctVq?= =?us-ascii?Q?Sb+8pTi0BzgLZbedt9PFHehit3Epc9CTQzLpGJXyaG9spWz5jjqYPpQg6IUm?= =?us-ascii?Q?5UUBr9FTK+fH9avd2auQ773QtkfDo7HneJy5MsqrJ4q4UQQE/G8txBvoAnA5?= =?us-ascii?Q?gqevvHZ9eu8EhNnRT3U0cDsHkI/IOw+GIKes2nIy63cb+OKui2aIZ6Ivssl3?= =?us-ascii?Q?o84jg/pPDo0kDSVNWjLD9092MEKXWQkuuVGA1MGRkdLo1tkxQPyo6wBS1kco?= =?us-ascii?Q?ewc8Pd4w9M7FRTQWlU51ObmT2J/DMOvKAcAH72otZwWaTnsIBU+tTgnPnrDr?= =?us-ascii?Q?EZ0aLOxhvR2gWcK8f3Wvi+Hej327CASZA7kFYxp/yZn+/AoVA3JRkye62/W6?= =?us-ascii?Q?GJ0+qfEk70dZlsY6h8QNk6cEWAy0mDwFUZvNEUU+eMIksipIOU5AcnbmIDd+?= =?us-ascii?Q?MPWTEVMVH7FvVL96JHD12xpFWfKbgm+cGI5W3tMu4IyJekE1rlq5snW6Sfjy?= =?us-ascii?Q?TENBgpxYy4YTbSIhPLYmt8ggwRiJoxkWJgxVKHHZtZ8vd0ltnpE0JoH9q+Et?= =?us-ascii?Q?CpzvzJpd+2ZrhM02JI=3D?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR03MB3273; 6:Ddey4yV652yOrxZG8ZhCdiEvS4WpiiGKQJk/8mHOE4?= =?us-ascii?Q?JZIba25OgmFLLHHXDcvUp3knG16J2vX1kwpE22rdRZyBR5K0y4ohUsWSM0PQ?= =?us-ascii?Q?kV4zpBmllARis2yesG4rxP7NU5KV8k8bW+nyVxunYCkn35lWrQNHxn+Ti46i?= =?us-ascii?Q?rb2LBsvQkil+GQ/IN1GsNes8TEKv+O3V2/lZTvI49fhtGJF12LaGMnuWCTWz?= =?us-ascii?Q?X5lYah7hrQa0KR1C9xfBeXBuCHSRyKf3yBgTUuG1ics41H4J6Zg9NxQkyQW0?= =?us-ascii?Q?WVsY/tDg16zOBXbcPUyFr3VbDV2Sn1ulDC3EToLQYFYuDhqP7dTVjrX3ItDa?= =?us-ascii?Q?ZbvIeTBFHcqycYjvoI59WV0/TN6b7YCa+IRgNjalkDeGrTxPH6wm8fdrn/B3?= =?us-ascii?Q?8VBMOKovc2H5CjHH7sq3gxZTmQS4STxG8PLVTog8CKgVlI7IfoxhtjM/qhxk?= =?us-ascii?Q?zb9OlWIR9eHzRPxvIDm4whUxdPG7xvXB7uVXF7Yt88pkppK3zEOQKgshPTKA?= =?us-ascii?Q?ERrQNqC+BNVYoFgH6PF7gdR5ncOrMtymr9vFRuTWT4qCRsPLJFPl0jKZf4j7?= =?us-ascii?Q?aAZghmGCq+iNoqEWGVY7MFGveDPpR0EbODvMvLPdfaqCxl8mwBf02fPkwTqZ?= =?us-ascii?Q?9uSWeos6u/DshZGpTojB67zi+ggJ7pw6TFi7Z6TrmhtFVKf0xnW7sNnc1ujb?= =?us-ascii?Q?16mq+AMeMEhCD6xxzhDBc1p0FCwt4/f/YTNiF9vR8JzGO3tHN9vRasRWHzDk?= =?us-ascii?Q?uZ3jFMCg6usKBfeOng02LhCAWbIwKxVOZSin894++1sGvCA+lvJeENhmaKNU?= =?us-ascii?Q?vv3IOVuTqWm79L5jsL3SAj0SfIOCAhMsO3/E+BBLVJSA4NmfOIpF78etE5fs?= =?us-ascii?Q?6teqnpziofcj9xPq2ksewp74coQmeNYV/PGsvLniPjeEgxCUFYGeZDUpehP+?= =?us-ascii?Q?EeXzj9156d0jAJ4igSVSs3I4ksEsPPoEK1GWLYCA=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; DM5PR03MB3273; 5:L1lqQjCTjVskaM70HH4X5DjdvNdcSqK5hrC6VQlbE6iFfb3fe8c5UNio5RRsXDBsBE9zDxcF6IzQTNeFDb6Sr7joLuAKVywkQHHy7ndrq486fUd5gbLgLb3GY6V2tv1HtjmImG+WvGYnrZOsmPVcJULRtxaYX4+17+wHdUlCaioD26CpR8szE24Ek52vDFV0CP+N61Zt7dRaB/arN7TNSIsh6zl5xFN9XOuM2moByxJFP/gUCCbY5p0eUb7+W7mo0jN+M7h/F2mIuSaQ5NZ0HrU9kDQ6QHNDfyXgEULZ0WQkCteb56F4PRa5O8EhlDILBIzBcdW1yP2d+Cd01OvOMyjngBOuXuRMQz9Loz0B5LVyPX0MSPrw4WHon6uzptv06a86PpLcxsgVcqytZQkDZNPuf3fkXCjrvzL1Otuivi9u0vxCMONNJc6UdSSCROB2bz1TiP2MLHbAl9GWGaSheWigPP+TLuttzyZ9aJVqpO5nZypDLrEMKcM/trjfSt2ZPy/xV5cN7Hksb7nChAk08w==; 24:6jW0s+Oj51Gqtrh+y1l4tfEp5cfnIpzMd0ai4WEC1w5sw9nDuajC6jwesGHoOuG9hr9wyI0eoPMwbTM+IFOxwqO3ZV62PSFz7ifyU7bSsxs= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM5PR03MB3273; 7:vwkDRTmcF7ZC5bWBFcHbGaFrBlBI51Zz0nmh33Zj0VDrdVk0qz1DQxLeGFE3St/2tCvkahj0UyKEjykmGIIH65R/dZoK3CBsToGVpQf6O/duKsh9afny+SXHAY4R4NcSvpQCZgbvmV07UPdNd4TO+w1DlyF75MElJi6yOv7DDMt42wHkVpHlRCoDlt4t0dU/qHr5dmzpbD46fWXWPyUo2RR662h+fJaNXijQDPQJI26ksfzjLMjcQ3mevjw4ff6rpTNID2QFHFMk2ydh9rM07dkzul5kJFCr9yWJ505BJ/1EEhJOJkWZZjXuB7kzyDb60cpjJrIlqG3vY8r4tmS3hz+oLnDoIfk5FUJfkZNPnSDiOfzvrUHXYQKKHOGpW1Wr7CdSaJlqr8O5QB0P9dcE35TTenK3oxqUhYjD0P2hQzSNyq06T5kPSxgbccdZl831z8SltGdKazfXRaHwK6Gy2V9jq5zCon9uz1KwXRQQlTrPqMnnZi7MpzyGGG5g7WZsI3u1yYxtL2QAJxb47NOvh2gYsdLa07kgQrJWlRe0JFEN1WRl++7+P6e9gVpRf6aIDRP6hTMYkD211mmN63LUvzc8SPM3Scth0tkomhnYYKkcfauwfw+MQWay8KQi+71i7Qo9zAcbAxokvxxaYIGDX4NIj1MYV31BuV+TnvFvAeomSo4xioXIkhJbvXxWM++CrcxkRhGu4G43obiGk+zbBjUaGdedKkNYDJC4kmDCfDLmba0ONvUzkcFf9a9WUZCwYu8pjxTaQuwBE/0o062Lr2ax9aWZIUun6KobT8NFGho= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Jun 2017 15:18:05.2138 (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: DM5PR03MB3273 Subject: [dpdk-dev] [PATCH 17/21 v3] 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: Wed, 28 Jun 2017 15:18:07 -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