From patchwork Thu Jun 29 10:28:01 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nipun Gupta X-Patchwork-Id: 25970 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id AD11C7D00; Thu, 29 Jun 2017 12:29:38 +0200 (CEST) Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on0080.outbound.protection.outlook.com [104.47.36.80]) by dpdk.org (Postfix) with ESMTP id C8DC37CE3 for ; Thu, 29 Jun 2017 12:29:27 +0200 (CEST) Received: from BN6PR03CA0057.namprd03.prod.outlook.com (10.173.137.19) by CY4PR03MB3270.namprd03.prod.outlook.com (10.171.246.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1220.11; Thu, 29 Jun 2017 10:29:26 +0000 Received: from BL2FFO11FD014.protection.gbl (2a01:111:f400:7c09::159) by BN6PR03CA0057.outlook.office365.com (2603:10b6:404:4c::19) 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; Thu, 29 Jun 2017 10:29:26 +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 BL2FFO11FD014.mail.protection.outlook.com (10.173.160.222) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.1199.9 via Frontend Transport; Thu, 29 Jun 2017 10:29:25 +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 v5TASSbT002766; Thu, 29 Jun 2017 03:29:22 -0700 From: Nipun Gupta To: CC: , , , , , , Nipun Gupta Date: Thu, 29 Jun 2017 15:58:01 +0530 Message-ID: <1498732085-18449-18-git-send-email-nipun.gupta@nxp.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1498732085-18449-1-git-send-email-nipun.gupta@nxp.com> References: <1495735361-4840-1-git-send-email-nipun.gupta@nxp.com> <1498732085-18449-1-git-send-email-nipun.gupta@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131432057661779637; (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)(39410400002)(39400400002)(39840400002)(39450400003)(39850400002)(39380400002)(2980300002)(1110001)(1109001)(339900001)(189002)(199003)(9170700003)(189998001)(105606002)(50986999)(8936002)(4326008)(85426001)(97736004)(81166006)(50226002)(104016004)(86362001)(8676002)(33646002)(2906002)(50466002)(48376002)(498600001)(53936002)(47776003)(110136004)(305945005)(6916009)(356003)(2950100002)(54906002)(8656002)(77096006)(5003940100001)(76176999)(6666003)(36756003)(2351001)(38730400002)(5660300001)(106466001)(969003)(989001)(999001)(1009001)(1019001); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR03MB3270; 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; BL2FFO11FD014; 1:sn8uKTMHpfhs/xtb2C5+Z04fbo+n5e2LPqrmoX8Dho?= 0TAeGW3SmPGxglgZDZVcdtoX6XZk1E4n+j4FN5+vIOgV+jCWAmdYaw1oBC2f/HVEDJZcRVqxnZAu7bmn2uNO7JaJ8tOmSQ4N/hrHO+UCfgJ7UIwc2A8VvSj/eQAkslesCzGyE8v96AXUxkaczAkgBmcZbwyZRF9A1A1gAtZu8z5RgqEQZ3Hog3KRp25htYJystyPjKXm+NYsZcXbKsEtpBODh/BuwXJvtleajhULtAMqpkBo1UpwUQ+2H/HJqmVxcaHn2oIZIdRvl8m5WDzLJLIuANm/UADqHO45lETPvncpPPPhffMfLbLUw4rAsHSTkcBIIvNIWilSdXcQ3u+k1DAlgXJkRuPJxwShQOGgT9iUs+aspCZBf9XeUwDQdZnJQNU1xNZvPxu3V7evHTS9mL3fkZqAG+LVydptxA7rRS3Zp/dObk54vTgMo3jIizdNWBcYfqoV3eWGJkiIXg+FSmABWvdhIKf023kej/6QT0k++PyW2fQ5/TWPOsmG899CWcgIWmbX3tQCU7mODBdz3z4gbhFCweXDfLOy5PY6GilRwrvlmrkPd85cDJnBHMMJfhfEZ9xXQMgir5Dy/T7ayZ1zaE/EMu5E+qi6q3KbPGfxvfBlKn2SnuOUj2+BlWEoOgtgvV8DCV7vqg+MDHSWG+tFQstClIqaN8PGUzBUEFveIgBWxW5Fh6H1bq2GZp/M1TvRbRUfzUvf7RPhE2p0uOWDpLRzAT7aoeRpUW2XwbiQPee+OJimKHc5dgkqjhfBp3tXKLEeywz02hJZzWd1LBIAWz0wQF7khy3OvypxsIFUn/X8Ox9LWdWHHyXXgXQh5WsUFG2IDwmdFC3OeYKkzWbD6myKSSTnn6YVcncFAH8HID7f+D1fTVthqos3H/SDHr/hF2TjCPOvYgZ/JjidY+P0GEQISSduM3xdxgGAW40HzPlGswrVats4BXb50cP29NZWlRv4U6fUVLngT/sQ8Yct0c+Zfs1wOdREUqPo94lw1GR8F7eMjVqvGJWIAI1kDei9p18OftgzASfDV6h4mFNni+n8lXLNVO3zsPlN79dg== MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 7f3904b5-7876-471c-0d54-08d4bed9b77c 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:CY4PR03MB3270; X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB3270; 3:eJso/T1cE09cIpXgyGYi7yl1yIBtC76EHXidWsKcg7HJmPKPjRk9v3rUjGVhkcYdwvGf9HHH78Bobjfr/E18qPagbX+9dNBZf6m8VuB1CEFxdR6SP+xVhPWSqYcfBIzmioQXgSP//NvZ/5vwRqYb8IDFWC0bJkTpGZa6MONVYE6daHi/GIZL6tCZ9/VhOPGoPBgvbpSCuzQp+msO75eV3reM/MEt/vAtq838DyZvvGSSTDckHYtd5dq/bs3zcpWJIP8qlBzO5k/L2uear/y44+G6vw7ndlMij1ZGPrCDGF6sRd9dp+U75Pk1loTxH3nQSawQsbk+fZoBv4Anfnf/O4JfcHnbm2ed2EuZuz6YNHRipYJbrEXO7MahSENoq8N7FQ9lp6tYYk8mG9wUrNV9mvibtGkseY2Ti5IU2wy80+1Nl1uAD7FDMt0k4mIYrxoS90Q+gIKmVwg0UrN3QtcvGNe37NserfUSCQ/N1y+PdEMkZFohbp5YONOST8H+8yL/9Iv4wQeqX0cN7Ebc2MtFmZbhYj3kqpU88S/dqY0i/ac09NpelHG8WFv6M20O2XmkEWqEQM/3JJ3fNX/fGZ1qctmcLnzyDUyIro5ZdD0kjuLMb+YZhE0GnVGq5pc26bSdbincoAjY+DSVw8l6qRjWHIPhD86i603ftr/junDRTa3PR7wsHHOVLh0OJvXpBApLnRGyPNFeoWtdSu9n0gdscG1o/VHnBgQvW0ETYa+RwjzSCEZ2Pv+peikWHy/ghBYAEt1E4GSUPJkHKGmjLlJCUHQ3JwBXw2g+XVwJT1GKMFsRgHgBxS7h2bZ5Ms2VuKy0ohPt7eELemknbqW+5jRWVQ== X-MS-TrafficTypeDiagnostic: CY4PR03MB3270: X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB3270; 25:e7QkqY5HiPCdgcIgUnD6ALCI/XvtsmKJ4dFQAfaWDQ6cimHRyS+9grfhQ2raESSUGMsH+A36cm23W5BYHeBgGNE9ziJre7QkOO8HBxj+cRoMDOEAYzHL6Kob4uz3Vb0N0ttwu8MElOtmlHHtvoQDPVIMQguaO30xxJXbeJ72RGAT0gLxE+sHbo4stsTw/EPRu2YNpB/uSAs5U9Yr7XZhuYIIt/UpmKYqbTElXokmEo/sWIrJcmHIhfu+F5GHop5F09oruqiuz4gyHZZsYucLZFfwMqhMYihEhBH6XVVIVP4VimmokO3xJTQm2eBCKAXr5vSpp3muvqmgNhRgSASxGH6nZRVa5pLmgqhQkzQ9S0ReNQeOfH3dM0XB9JbuUK1YMlIwV/CWApd8/lR7xcRj/pcvzIXMs0bZYtOfWr5+n5+gDNok+BZk7ptGn36HfghWnESA+SY+Pq9rojKuKqTp/AOMWTeXyL0pjZM4jgJZJTF0FLhswhCiTrhpHQ/gWTbaBSZdks7rYp17RELN32LOavI8AtnOOwV0sR+hnLKV9UOk0nsv4fvPqlhPG8auLmwG7fpil04soUIZaXS+iRdbsbt5X4oRxWN31mjFVQqii7uaSHnpERkAicvtargy+i33P9OFG9TvzK8HprpwVScyuKbz27hCumFV7w79vltvMu2/0AvDhXUGlL7lJvInJJVN0YYsrmniOxahZZEsnpR+e2oDwdSL/gl8S6umbkDg57LIL4nXI5TpwBGvwuTZ31T/Rw1TLroQwN2kVoqnGLFZwVmoaDfebSvj1EdQF1QzSlDUEBdBTxSDlQbvSBqx8rVq3uWvrmyS+KcuFFtQdzcsYCvMGwIKaLpGgYDy81PKcSwDZbnnQYWxV5c2fkYy1zyiyMERkJen0YM2uPGmfTC+u5xK1re08xCvRLjp/TOmvCA= X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB3270; 31:mElrNO12DCWbz55ISVTSQSjqjT2tQwAYZ+1KaKJC1PJQlUQDrhMl+f+WUjXATvMJap6DEqRe8OqSE04BDCsJGaiX54HRuVxLFNNdj5X7DwnkDip0iZZgwmtfWZKjnSrPjqjq7XUTaS3+ab4frD2ez9/Rjp8MviqICGrJXEoNOwq+yPIdRrhtIlge7rVB0+ePt6DDIZbiNZqNZCbIxZcJtECJndOFJsxjJanAoINQzFpgc15qmxW1+QHgaiFqtepcp5cayXDWs3DbVg6oTZ09KeNJaOC0Gmdt2qkcmmvOZTuSgPomxSIUCHBgE4qdIVDUqXkp9fqUIFuMQiSrlS2a167CJYJUkF8iSAUSnDmCTIIUDXVWZZGU9Pr1XVaNP7PjPGs2UZP/lFlYzRCLtj2/+qAIP0l7rUXvIrGQIn1Q6EMobqeUNw6ZGghg9sqT2R8PW4jLOgP3ZnvHmkUHf2I6yt2T2/4z3U9aDs0EZ6eIdRiEjfph9Tvd0LV/ZVHOaldcBHKe/i4tRWyyNHfeCkbSy6Gt0yAwJQ/c3e+qrOD6rJdYveAQASUeHCTsnKdU1yGmf9C4uhuovzTSZvOmTtkkwH82k9CTM/zUed9ic3EFp/QjopJJeVxh4YNssq6ENoKm3V1XfMtvvkKN3jE8UA9B4HHCjsZajLe62QcFILhUzVTsCb+pX97R5pGQlFniWjVw 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)(5005006)(13016025)(13018025)(8121501046)(93006095)(93001095)(3002001)(10201501046)(100000703101)(100105400095)(6055026)(6096035)(201703131430075)(201703131433075)(201703131441075)(201703131448075)(201703161259150)(20161123561025)(20161123565025)(20161123563025)(20161123559100)(20161123556025)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:CY4PR03MB3270; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(400006)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:CY4PR03MB3270; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY4PR03MB3270; 4:C7o4mDQJnYCbxzH+wO2pyXdQr0XLdW4UFv1FQhK6Ua?= sah51C99hlW2XegYRLqemVWPHXfjEOKvMTGz+xAzQFpHr6OH8ClesWIsiaPa/nQaKiEcVsK7FGVgqm32y0nxsc4Z2BkqCioETaIuvposcHG5p2rjTt2noO5nc2uyp2ksqFBjkFyhy0WtjmcA9LkaRGNRHFi34Qh8hZrZAEOThX/n8rjZqTYpBOFNHVWjzvEFkFW68iJ9PWObbMCsmpYNdtkukSrbPjAG18BAF6GJjG25W2rpjwqBmSOZbQ1xjNdPK1gyEatk1roqtZPxShz8BNlMnfq3aEBCR1iEuPDbAquRZs9itW8SVDdLut0omjN+lznOXZDT46+BnT62IonN0XffUpNPd0iDJp+/rLBl/Ql10TGrvCwfFG1doExhO9l5c6jCSgB3D55Zjr4TVPZcf1lijHjgWEjy0Ux8xA+sApgqm/iuJ3Hh7OaQHEBAqmCkNE54GVSJvHKEsc7MoYzX2CIm/uG/27SNO7youRibfNBPftvpsSJYiUAVGZEWZZgx6NwmgykwXxM91Zw0PZ2egkpMsxueK9R19xdQIbf28bsHc7ICebl04SjaAXnbl7frkpwUxsRHQcG5xqxg5jhYUWUnuAOoDG8koNtKRMSgf0oZ1EPAVKOvRTBalLvbD9XCNFnrQZMsNUrP8qrGsVzvsMQFmfY4aKFFRlRR3qQ8eoN02baff3jTvKRuM8uJDw18UrGEU9evS7vVgDreus51/WWSwOW2QBkK9vJKWdyJKBdIaYj9npCMQIzI2qHikVwwRUCBNDIfeCZm+dcvSIqueYM8Al13PICROPqZmYVFEWEsdmdpMsN4+67ziHvGImSo8VuTK4Pq7HQlomzjMwVbjws8uT+O366+s2iWgA40ACSHTCVEa230asSsJW4QsMDUsDjeQqbNJ1FGYYDyslYdvzeKN3sdHJz8aW34Mk6BN3tRrZy7eAeTOyeDHHTd1NpO6B+A9bWeBSWFl7kdJFKymhP8tg1BDjRVn/T2r095D9vZqW3VBFyRUaYGtJh9dGZq3ExxxSdtQyKFvK8NM4GfEqRJgZiJY6r3g1sgFCuT3hJR3l74EnEOKVWfQEcUeVx1lYmh02BOKHyQZqURqCUim+Ofo5haBW+qtF7RXaao27PSNeTCyf8qE/hkh0JFJKfygnN0s2iY9HdBSmEsw65lgZ8ETmFzk73dGzP09by7IkO8hcEVtHuDomzn1JPWBAJ3OOJ72ReI6xieNYOVwFWCTdY149tdL9fk0FR9PpCKmm11xlIe17XB9DiaoV7rD4CwTHBHeYg4Q+OstexsR/0dlZ X-Forefront-PRVS: 0353563E2B X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY4PR03MB3270; 23:BV9xaVHmzyodsqiC/CorApxVh0OdYRpQ0YMfTBEUv?= 19n7lgV9+PPRRPrFO1Ksl1Hm3S1FVFYKyQhAYHWPdc0YD/7M7Ytp7nhJcfYc/jVWXtQjieZmQhzgXdPudG4e+RjN9nRBX5RfJY1rmF2+064FattQFD+Ck7q+uDDbZu0uVPnf2aGJoj4NnWdIcSoLQkKNU32fDbYXJhDJBRKvf6Mfng0qbKyFgN5otpG0zxkTKDKAPnHIApfsBksOqbpJtJ3NDDxe7EuWzO5uh+YblQf9+hvPxcT9nemryMFaXIA7Mfpz3C7cRtnU7LsUGnASywsO7E4Hko5R6aSGvoF6Jjs1y1yZAlEXJ+gpEyx0yX2PkaTmU0NXh0/Bfrci95lwSYTGqGqvUqMdJcynMNg4/4NVpRq+82pmxrLaxHwJnqFprc1SXzgeJfBP1vLcm0XxxVp+wUV091k/rZ0NqjZlMhSIBjASLduTBtzAHYdUbgx/KmQN0+sirIX8zN7OiR3hnJmqOeWS+iFDedeLwCvTAu6JKlP+IPHf/smu7MYZyNP8wtUyXPM1yoBWXLq6sh7hw0qkMVrwm/PJGiLrKyP8Ahk1MLQUoOPQ6vglHJ8bMbYIUfnLiw0BVYUGkgIWIiyqxqCpIATn3v9Cl5yYgUvryYiTB64GMbWn9DCglcKr4+UgHfzN+0B9A4VooDykIsaiWj5WfWZzrchewoDO7ryBNnvk1ipASGUA5lbL60+ImxE2nf5oH6IhDTQ4f5q6aKwGJWUvqMYs37tE6faR5In1G7MSqWPTmrapi1cZH0Y3wTLdEWF7P66Mdj7+PEEj+9L89Ypic+kKYNwOpyUjsqHHAmoXLbhBK71yciSZqYbvyld8ldJS4ARqLXg17OFuocoym+39PQT5FPPG5q6R0g5CiuxVh9DLXVHVE19bZURn6PbnNoBquPM7IOce5vLj84pwYdnl3wf3PpYC1ZY//NSDDPMpCsx8D7BwChbQ2whmsm6C2C9S+gXnmWvLfjJ7ftanHfeqmxiE7NnuU7Su16v4yndpwDvay3g0pgCBfYQOxDUuhUrx2VrLwbA4KMWqJRtjvMjzdKyUaMjYzjzLvuB27NlRRIkPPxhdRWIG+Vr/iGno7YISaJQobXqs2SM4LvJEe16No4U4GAU/XstNC4nXGanki8e2syQN8lc6gVodsHXlww5HqMWH/zM/66olsGSNBEgLWnX9m0Nw6wD5v54SWiJtMmOJhgQlKReLEBxfYxzzALabuxZSmbUdDk3zMIuB0Z0c7F1EHDW3gBoJefj8B4Yhb9NTB/4ADhEK/9OzETaamHkKmQcGFaJum8kzGAFBVMZj0eALjk2qjTnEuaS9fFuKQ== X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY4PR03MB3270; 6:L6IgtblzqZBFHPWn18EPafUlxHBSKZWuncZx3O5InD?= 30/C5Bw2Hkq6CvrMY++AW1D5/F6dF40bWk0IfjGTX5MA36D7b/JlAODg+QC/AXkUHvnQKy5P67TjiTEgLSDrFPa4pgC3DCcX9A6NyQbq3frpnU4C0r/2crYhMZuOW0xgLziHeAu7kQJdR31mS7LDb8v6B2O2Po6oualf2EqRvSEjd2oLbcH5h+qnbA4kS2yWbPra/AGLNuLaZ3rR4tv1s5vMGt2PBsddxR0dphvrIdewkA/6O8LFXFiw6qibukIi3IPbxPA6vDymf8HJpDpahyeFcp7cM3aBfh6wTf9A9ku0AqLcz01i996lzDVAwHNdObXaUbAJUmn1rxXo5QjQ3I3szUoTc7U5jls+HaeAwZfXpb8MEQw7C54WRfEQnyCVpEXY91xlLiniAiPbud7vh+/3ClaHvYJnUSlQLdSJ9pbJh1KiYLPUEB+oABdMJ9HFMdPlZS9jxVDsD+JMPYPqDDX+Ovsoj8sw7mOufgOYgKWtWaVIksnaLWuzllGiP7cLJtfRPMA0H6uXOSq9rf7LCVJibAQEN+jX4/F56ztfoYwyud5XTtB0Odhwea/asaId3OE0TJdqJdGIRs7NOHydAPinPTAJaPr80cRa/lHgIKVTeSwhiKNp44+XJ1gJjEn6xyW6H1J/UejhSNUtLDZrNvXmbvkSYdMP2WIcoGPKo9uQ57ocFx5fVehmAylWcxqybYvuukqT1tY4eS6ppk0Z5F1x8OrCrN/l94tczuCGiwopzc2i0RV+S2RQrqBMM1dsmPpngC0CILZ/7w6fXJFbYqTFNKDE0jIZnyULDNudW49BNSzFaQoa309Y+Xo1aQhwbDCZXerALdnDLfXl/74BzyB3u3TMnJdcowIJSq0TNt/llDYFkosPC87xJcMGEU4TdJDgrwx+QopsqBBzA1CBlmy/J5koiO2/XAGETFAy3wuA== X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB3270; 5:cXM6DbeVWyVH1mFxikW1DXmTijp+81GAo5AD8e84zHQrhyFykcJ0DANhtgLaDDgalo7FoFpTygm5Q7ZnkrXA7Ini7p0XBpzH5czU5F5E2rSlYePGhjKgYGpaHBYC/s28L/CETNBav6dcvrCmBJCtS09PPAOn7Hja/gU3+QXuNL1LxVgMAUUT02m72HWHGQULgMYIgzOFUl/2wTCZ7tTyt0t+/GnbVtbhZc7PvCmfZRPQ/fUH+a468d+6Xzn1IKb/BFp65RWxeCzlFmKBuhP6+V7xIlbkCvQIvXpGX1uKFeBSaYk3/5tFRoz/9NRmw7/fMRdtwMsnvNVWL6dnkFqM3tp9DZQuWHJm9ODs0gtdoghHO0qAlp1lppvIr141Y4S+d6i7FJevpP+TUoiajQ5ZyQNY+qPZmQP0wgV836QdOX1agkM7LH5cAFK9ZL+Yx8ob6jANW58ikhvIyrSNdxL94SnocLDKXHjaHEVzDt8BjpyvGLancXxyKkP7npSOfb9mRIVlzHWW1pXvlRrIp2gNfA==; 24:NwLAogwd0PYW3Q0XHnUehUDo+0PwI4J3msdLM0+lWhxfebofmwI81uvhMqkkEjMp5Wqd8+iyP9cY2/L+99KmEVmrQxzOv3c4smyO8+vK5VA= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY4PR03MB3270; 7:KnJXPBQnFtHhodbn6sldAhw8/xLLaHAHQEQ2jW03w+nOGlRdLTiNgBv9ZwZQrSQkwkfHDnugKmNItJFpUQYDKOTwAkenb+oymoDYS6xYLjs1W2NgwqEroCJzTql+RFXtwMOTPN7cqM7Nq55LcVomkseFBa4/KpWSTyO+t5jjH8bpU37qMEs744Vy84/ZaX+kTIEmqnuYnGWw1FUkTGcBcVk0G19d80rk6nsGBLRYyLBXEAfjDdWTKdoUIJuRNgi+cxdWHQoSn0PgMUleEYmgXrmt1pcGccxSfMugDQYQdQ1QB1uZ82NOSaf+atJYztp5AV7cl54mlR0ABr2OYFeYQQ5aIx0+nqiEmb+mTLCuBMpRxZPDBOq1YuY0j5IZ2g0NapAshLcYo+L0m/Eb6sIlp/2mMfSFrZOua7uAyFWycG09YMOwTth5ZFKaLnHLzfJ+a96hT0+vnhK1VvIVPBoDHfCpeV0CemqVK5eBIHK5t85/m6SfxMfliQCfO6S9o6PG0TMZBLkxVzTxPMdzF0gEPoFNrqsxDBYn/WGKS3/d0Y3qQejv3Kdx/m2n1k+2P48HoACHxtTPo0Vgzii7+Lo4BlFAmRCtgyD3+F6VfdU1hacPJ+8L9sLt9jXu6yCXWpKDw6na6ZGq0RE74A2ZoFhSuEfB4WzhQRA4vrpITwh7sd/yyDwU/ymBbk2/GNX5/8OVaZ8pGwUwkZaACCofs3Nd1yVMcSNRUQJSKf6fXXrE0bm0TUJVMaCo/OeNHOeWiEZ590D7br0NFseS10+fXJWMepYYEDUObyWY5l+v6aTspXU= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jun 2017 10:29:25.9907 (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: CY4PR03MB3270 Subject: [dpdk-dev] [PATCH 17/21 v4] 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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,