From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM03-CO1-obe.outbound.protection.outlook.com (mail-co1nam03on0076.outbound.protection.outlook.com [104.47.40.76]) by dpdk.org (Postfix) with ESMTP id DEC472882 for ; Fri, 14 Jul 2017 12:22:37 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=N07SE0tKqWlfWcmIK4mdhvR7DsHiCw7kOFhvnIQ5c8g=; b=N4eAmfYfB0Bfp7PhkOmlgxkohrnGAm3YQuyaFvRCiU86B09dwnStWP8bFSQCH/p7yRbjNtSfO2MjPcf1aiqJNmitCDjq7WVksELihrQ8f6b1kKUc3FR6FLFfzFckrH2ncIaEuwPAg3cl88mECI4D4Flqn2IRcd6AbPqAt8ymnDw= Authentication-Results: 6wind.com; dkim=none (message not signed) header.d=none;6wind.com; dmarc=none action=none header.from=caviumnetworks.com; Received: from [192.168.1.100] (223.180.9.21) by MWHSPR00MB240.namprd07.prod.outlook.com (10.175.56.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1240.13; Fri, 14 Jul 2017 10:22:25 +0000 To: Hemant Agrawal , thomas@monjalon.net, dev@dpdk.org References: <20170710114235.18970-1-santosh.shukla@caviumnetworks.com> <20170711061631.5018-1-santosh.shukla@caviumnetworks.com> <20170711061631.5018-6-santosh.shukla@caviumnetworks.com> Cc: bruce.richardson@intel.com, jerin.jacob@caviumnetworks.com, shreyansh.jain@nxp.com, gaetan.rivet@6wind.com, sergio.gonzalez.monroy@intel.com, anatoly.burakov@intel.com, stephen@networkplumber.org, maxime.coquelin@redhat.com, olivier.matz@6wind.com From: santosh Message-ID: Date: Fri, 14 Jul 2017 15:52:07 +0530 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.5.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-Originating-IP: [223.180.9.21] X-ClientProxiedBy: BM1PR01CA0087.INDPRD01.PROD.OUTLOOK.COM (10.174.208.155) To MWHSPR00MB240.namprd07.prod.outlook.com (10.175.56.23) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 7d57c220-7ca5-4398-e560-08d4caa23b2e X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(300000503095)(300135400095)(201703131423075)(201703031133081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:MWHSPR00MB240; X-Microsoft-Exchange-Diagnostics: 1; MWHSPR00MB240; 3:fzp5ihMpJsZS5Uq7CEt6synDgHK61cOnzEH4AAXZRjSKWIncUN/YjcW376j5ZbSqCs/vMh3WWjn8G6na6a+PWeqg8+lLiqdOntGkAbB5A1lCNXnEKgksIs72mK7S3SffceemW0AkP8GEXT/eQIAn60a8oF7WsSGHjCVstnl4ec5CHi35+hashANnWK8xtqqsWNtfKDaWCVvPJiW69ocRLGJc/y9J4jI4+bjWL5HPuctZ4pU4Fww2kyDYkV1CMdqIgescCPWNsojoerBvUzM0D4zMVRHpR/mIOLepr3O/UcDNJNVAXH8W/ezXne/oJQmFF3+g2LPMlLd4A+nz5oKb4B+dY2y6ML4iCwwXNu8vsvysaBp+9Kydi9/aoFAUWoXcocgCflt3o5xwW7cSTfb4hnUsu7yT91hsoFu5mB38zR7LjMvSGlgqSxAvp5r1lcP5x2jOBck206fZ0ELtc99YOhYR+FIpDkVbcbsYxwDmc5It1dD8ky6zDt05TyCmY7woUhmVYyFOddddRrgHuXB0Sm2zdKmPwB4Pxlix7XCoVpYkpgu4cu85G0TC6uorfLdxRHox8qHAqrWgcZZ9JE81XKt5hjBWoWQUhkzREqO/SJszpVXYkN6O5K6leyC2icaTQ1oMzTsmK5PmB/PV5/iA6ANGhg6nrFsuyV309joTkN8hhPry5k2ebeytHxCwinV2KVrL6TfZIyWonuqjLkbuPAjtQMBTXs2Ps8iL/z9Kj/8= X-MS-TrafficTypeDiagnostic: MWHSPR00MB240: X-Microsoft-Exchange-Diagnostics: 1; MWHSPR00MB240; 25:KiU5IQEDwia8TpQbszOUD5r4h4L3jj8PntTRxLbuuAuPvhD710TRqpuFa1SOarqdL//A677mYPxmuWxrCT/2Kdyqe8C37hoTzNYV+5ssZsKqZsQXLl7KLi26K65hya4M9NoH6H7wzeg9xjg44r053AxgIH5CtJYrSDWDzJQqnANIIS2O/hLaX2qXdKNA/M0hL78zgAzwFRhZYgqkFRzEkCmIM/6Y34SCANfKLbrQMA6XlzwSg3+bDNvIntp2WFI6Xcq4IkVs5wtnnbODFCy/k0AZ8zip3izHe3DQOgd2fLFLULxu1W5BjhvcPufTd8418jDP0KXzrU3cZm7hUgl4J4QPku2dhxeGEpuSm/tf75ieallMjw1tIF4EVDMgfety4cM8Y7I7EIGZBdqWth/5UM6hNADhkiYjv+kyAW0h5Eo4Z+epO184jvmr1DGl7OUUeBua0pkBD0/cCMkZE3qpPgUXQzDO9Ntn4M/o1uzqrrnNcIQSgvnnKoBCOgq5OuIjC+GIVSs0d2s98eU/6GE6aUuZ9j+5woUL3sZc/2JkeTXiPHmd6LJfw85AoQ7EhUzykw6xtojR1sFYbeTVDBCQXAKKTfkRXvEJ7VEj0NvNwWWYcN1/MvRyyQRi5oGn3jy1YHX4L+4G0JNckB/UsS7BFzWoxe9O3cXNrTn0ZFileECDQWSGbjrZcfIoPCkTLsq82nC3kRf/D/oqpSM+ZucuPq2DNrmC13Oj7+4weo9eUTOvJhF5Z4q+OaqYvJqUdBFYjElwq27LY/1hHH9Cmd5p11oQVrBr54eNplJ2CTXGT6XV45FGV5DSspV/T2g+qW2ADMCXdHNWVrtFU5Z2sqAclJ7s/WptFFtiQmyR+qqUAJXSqFo0Uwd/mqjc5mX4tCjHP7QtR+TWSA40di+6IFoP+ExvC4FqSKH70OKA9oxEc+g= X-Microsoft-Exchange-Diagnostics: 1; MWHSPR00MB240; 31:aniN3EGVVRPTnzYHivUd13AA8gpZA3Ujl97/zKqdtUY6QzKsMc7h+2vtuwCb9aEKdQYhA5FewOLiPWYq6zbEVFOum5PQaxw8tCYRNjZP5OdYaVx1kBTIEejVz8Y7NwE8uCbSO0fLA3uSd7MTUXQ6YpflMyLKXn5j9StE2D0nmHaSlqDHbyWg0LgsoOXMo1ZS1E5TjsOeg1TjUWsl0IK3/R5NIKsQ4d+Sbodronw4XlwS6Hqqrp2FdYu8ZhnvpLWG0FT+HVGehH1UuDkYGO9Pj/NCYGsVwr0tJejiNkXm2lBxNaBHDWR/BzBVOODLcHJkfkSxNI/7XxJmh3Z9i5Pi00CS/A3RBXQtyejkKFutSkuWHBenAxtkPx5WsJZh5oJENZe5Q2Ydt26M1xI1UwNLJ/Gw7b/qiz/ZsyVtJK955bd8U3zlMIS0hcobH59mCZBN6JpDOG+WzCdi+JL457iYuif0y7S6pSmFFR3UFHhUisHnfO+eqdPgNX9kpww3WlvMYAvxxSHZ0moUHNJ6CNtcqiDmGFjg8HkAPXUU9VbPxZwe2X4+uXsZioPXfppeY88JCNACd2dITmRX2KGIOWuLQJ6G//XpzNMFRszyUL9aqjRy7LQvSDHaotUKwqh3lys7SzJWVJ+JG8s0vfDsi1JuI92wXJZvQapTLVBjvH4zwEE= X-Microsoft-Exchange-Diagnostics: 1; MWHSPR00MB240; 20:WRqv1SBeQEoqgjSNzLJYCrJ8iIEA8UyFnt3JbwR+P/SN2z16oL1uoKMiOhUgQvTS5WQg9GZ6j3KS3GUFPGUXEaGH6gR6nRl5jvgiXIxHwOMNNNg5WNQEitYgpZSwSBTLEY0WXOpSgRkJjk8cWbE20bRDgxwEmqAbijNC1jX/BEilLyJhAcBCRBlWrbJQTZyuC9rHTJu943dbb4/nOcd9gjCyCQy5R1yBiwKNNrnPoUrZu/+c/Ab2w49Jv9tF04CodDXJ+pk/KEje6+AS7J1qRqOIqW+4wjgARAOk909q4zAVRtIfvLyGV+3vNsBcJk180FfSQe5TAMjTy+2X6Gg/TmMRKlxonLt0WgCv6yiY8bPquAt3UFSzziobb1Dhxiy8S6tzHsj8cjfJw4EF7FUG8gAwau3RnVBGEfRUxlLuy4gxEoxYw5PbUVDCHYt238DzewsFmArhwquZIOvUscwkTybZCqD2Y+OpPP1OMD6C8In1xebuV4tCln6aqGWqaaVPJiHkSs5H4v7TbY1NhhvJPtUZ1zW32qIn3LniMvMOdd7afRPxXYAnntBSVtuC67CfQ/BISrlWOUuBOYM0iBzyUC4nbQD1HgIj/4OhVr5NvK4= X-Exchange-Antispam-Report-Test: UriScan:(133145235818549)(236129657087228)(48057245064654)(167848164394848); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(5005006)(8121501046)(2017060910075)(93006095)(10201501046)(100000703101)(100105400095)(3002001)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123564025)(20161123555025)(20161123560025)(20161123562025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:MWHSPR00MB240; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:MWHSPR00MB240; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1; MWHSPR00MB240; 4:vxunok/GaI/+2uk1YHvIoodJ6lmap2tbN9rQeV?= =?Windows-1252?Q?QVFnEBHkUpWgNcPWTA9xpkWjzoRfXGlU7pY4Hm0YOGkNZJ0jikwOrNm0?= =?Windows-1252?Q?eMcqERsawAF+Pw892uYd3dK9AtbUMk9SR/LcZ2VbK/7YpSjWCH4lBaQL?= =?Windows-1252?Q?zfJ/+aW38Sq+vFAxbSLgXaKy+njIhrL1L2umThSbN0V83pYSf2olhbYl?= =?Windows-1252?Q?/cw8zlS/EEEt3skrCyVJhWt39122KakxMMjq0fqgfu4Ny4VSETS3gpk5?= =?Windows-1252?Q?1iYNXU0MsDN5cwHeTupX/LM2Y/7QWB7PeIGFhEI9OBrBRyu9iHbOGt7I?= =?Windows-1252?Q?Hh46PcPqw0qJA7N5oFlJohQTR2g81E4oJj57FKrUNZTt76QTe+2AMScm?= =?Windows-1252?Q?bhbIKAxJOKiwYAz6klVK7Ua3KUqqRGHHpCQ1/0AFJPMZvzBM66kBbFfv?= =?Windows-1252?Q?XZ+IP8ikmDC8pMVa7VrmwLfKJcUg6s6OwSbAtrdYG97t7h1ADTRutpoO?= =?Windows-1252?Q?M1QbPkJtQ7JVVSLUJBkG/XLO5XpSGKF/R90cizbbuL7rZMoQtkqwcelZ?= =?Windows-1252?Q?iAbFdcogNWHQtqW1ovWozdD2V/p8XA1/+rEr8zyW2YXLVXAbo22x3h+i?= =?Windows-1252?Q?Z7xKxF2bPhiq9W8tbtUTvtEDBSCpnEVthWpTqQhYY5xhprxfv0f5fwdH?= =?Windows-1252?Q?Z4Cl1lux10HYp6Xn+0U1KPMkQht0WQmo6JteFwtM3iZdpnoNJ6YqPe0n?= =?Windows-1252?Q?Lsh8QjMhdoCY6fEdpBzg0gzsdFQzWHG9McG+57c8riE7osmgknFGEQ8a?= =?Windows-1252?Q?oDBidoOjLi+As2tmw/XOhkxhmBDkf1a34W/MM4ZmOk0hwvfogvRJbhcA?= =?Windows-1252?Q?tuVJNq58p6SqbdUsvvIitEVx0jA5wqhSbqz0BG4p2J15WG9MDFJEkIcU?= =?Windows-1252?Q?+Vtv4sba4nUzfNSuCrFV+Sl4Ig0iXVj2OyZLXEIyYont27jAu3sIh/i5?= =?Windows-1252?Q?7USLAgA89SihZyWGgnPFUpjr1o69EXI+dqg6peYN7RGHTzgh8iV7m9oZ?= =?Windows-1252?Q?eNreHSPT3/FWWdd8KJp5DMbdDyTAkikxdixglwi+DkBWJkwcjMRZqIEh?= =?Windows-1252?Q?gcLQoWVOeKe1ft65awOdxEmZwn1+s48Ile25e8qoFfM+eeIH63+DxwMq?= =?Windows-1252?Q?+0uWW/3h4drN1vijX/upGwjfM7H012Ly0aYmp1zuRI8TY+YCtHoRFmoP?= =?Windows-1252?Q?fwrlxBb7ErdcdogWcHIewNtvXEgXnIJEJPj0ZkK9SZiAMXfSjHNzeVoy?= =?Windows-1252?Q?jDEo0urPtoDrOSZqMDuiTnQ7ig5/x1n2NEWzVHKXWULkTPREl48BE9Fy?= =?Windows-1252?Q?mWKWpG5ehz7KVEeTcmIqgw32laoRQMKCBuFD5i72EBMtzfVt+0uSw=3D?= X-Forefront-PRVS: 0368E78B5B X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(7370300001)(4630300001)(6009001)(6049001)(39410400002)(39860400002)(39850400002)(39400400002)(39450400003)(39840400002)(24454002)(377454003)(6666003)(93886004)(2950100002)(23746002)(31686004)(54356999)(42882006)(53936002)(229853002)(189998001)(2906002)(38730400002)(76176999)(33646002)(8656002)(6246003)(42186005)(50986999)(86152003)(110136004)(6486002)(31696002)(478600001)(25786009)(7416002)(77096006)(5660300001)(81166006)(4001350100001)(64126003)(65826007)(4326008)(8676002)(36756003)(7350300001)(575784001)(47776003)(83506001)(7736002)(3846002)(66066001)(6116002)(72206003)(305945005)(53546010)(230700001)(5890100001)(117156002)(50466002); DIR:OUT; SFP:1101; SCL:1; SRVR:MWHSPR00MB240; H:[192.168.1.100]; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1; MWHSPR00MB240; 23:c80PfgXkPSwHDpTNf9zNkD0mj+0S1xzJIwyIr?= =?Windows-1252?Q?wjJPsfSCA/sJG/kYU4GkRz9W3ZW3YLE8ICPbK5fm0VTeWAemjNKv+U2o?= =?Windows-1252?Q?CZVXhHno3W/P2zxmElW5qHgkHtapYSV7qsAxx2VThzqGF+MG/mehEPaf?= =?Windows-1252?Q?axYUB+LCPYZ9J4SsclzolDU/IWwUVWi8Eu6F3a1rAgTHeKyobAJU1CRF?= =?Windows-1252?Q?13Dpyeulwb6EJwyyhmdo0RMpAZnO03xaZcSoFdjK32OgA2qGzCk9Jjiu?= =?Windows-1252?Q?LeJSzl1mt0jvGPEcXCaflwDMWJDaBB4n4ACgDuDLHvhACVoCtHhD03cj?= =?Windows-1252?Q?hrPxvoNcAaIaFXe9vcaIWiJalhRS/i3/7y0axYgxDbohJuJ5M6OuoqQj?= =?Windows-1252?Q?/v6sI/rNtfGHLMSXJLHLwRAQ1fc9zVZzcNUPYzkF23tPnR+zi9F2F9rY?= =?Windows-1252?Q?qNSJNykHKDHJKxuNT8kz/3zASxloBO5EQkheF4Q3ki1sHE3KXXS6a5UP?= =?Windows-1252?Q?2rE/Kp7u2PmoMOqJxh38ZVqIAxX4y6WBxhljJVaEPXNTY5fD2L3Dsf2q?= =?Windows-1252?Q?cxWr8Kz/IR8KXtwtUNKR0w2XtbYcS0fCbjhfVZULKwrAy/T/B6JLp1Cm?= =?Windows-1252?Q?n4Kpl4EWBOknVGYFFEQ1qmzkM40u5vzws0WSRpSl8h+VtIxeqpi0zcdv?= =?Windows-1252?Q?YuXiNUVV6Ir51U8XIYQ4FGen8SPzvMeMm7t2dIDth0J6x6iPtY21XFHA?= =?Windows-1252?Q?rBv/ERPObHtBtFdikI2Z9E8gisPsCvKfO8AT//xkHZ+bgp2NvaDuD05D?= =?Windows-1252?Q?3Kzn1661youdCBFWxJ+bOVkU8yRAg4HtdAbjp7WqC78o8SXAzGxRNs79?= =?Windows-1252?Q?oIF4S2eIebMTwvuyTc6up5ufdfqA4UUzlHTFmducjWHNHaZ8qMf7mdtV?= =?Windows-1252?Q?mjOTIREAyUpBXnhBzNcvYDrcRvJk+Zb+Y0iQs9Z08FZPRDF1tRZ8wuTJ?= =?Windows-1252?Q?XVXqK1LHsfo/QfoZgP+F99Z0//85j0QPWsrE/652GgEStkmPAU4cVV6j?= =?Windows-1252?Q?RkJxXBubHdCwxufs9ougGcSd7YkU0kzjPSXCyk/sbuUvkLEGEMX80DQ8?= =?Windows-1252?Q?QqeqZOTwLXTh1Fs0LLmUkFQiaPvdrg9IxWWw4yUa090Ir+6wVrfH8uF7?= =?Windows-1252?Q?bOApZOWQuinlwm+vUDYqse3OBvOhsQ82dx4rlaheC/CHAJO+3jaz6J/i?= =?Windows-1252?Q?nhRCiKKqr6YShP78hWQyiwBNQ+/7WR8iO2svpj3fambxQVAKvkptNIm4?= =?Windows-1252?Q?Aig9bHdojXXBLaiQdsdU1TG5nTGonDiGittT6EXnkfGPkwLqETxYblfi?= =?Windows-1252?Q?8PFazUAq0r1JymBEo+jy0SSmiYTh8mxCUe4CLmrRqlinh3pnKDQWLpha?= =?Windows-1252?Q?cTrp60NkWN8aUBpqLWS50IXnWC/MzVn4uew9bvxUnkToZ1OG/5oDdRLO?= =?Windows-1252?Q?w3lXYh20XejePgO+3lkOfkMUV5nEjxA+bw4+Rdi97cFQggvnozr04J5J?= =?Windows-1252?Q?nxyp7uoyy9JtOz6HW5NeeIccVGEPzYO12Viye0aGbV7JLf+i5PxWo+oh?= =?Windows-1252?Q?q+CfZ3sznO8KNOrwzkCSUc=3D?= X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1; MWHSPR00MB240; 6:61zZqSlQV+f4K+23Gwh8BXvPIrUaHrZLmB8BB8?= =?Windows-1252?Q?IVonOR8CyZr8Ro0tAQL/6SQ8Y7uBDu1S9vALldDewZxXWZq6fG/oCAjw?= =?Windows-1252?Q?gWfBPch6P1wM9Hg21WZqcdP6kyFcz2dZgzsFVYOmNYoMexJ1QDhDfhEf?= =?Windows-1252?Q?NmPjsrO8J4zgPU6tT1tDBxMIKi1k76EaokHu/W38eMJaq6a0pr2wzgko?= =?Windows-1252?Q?SyCzrA58CkWYQQAkLQIMv3EY22sQ38v3Ux36L3Smw5yMr0QReouCQTwQ?= =?Windows-1252?Q?JUX2I53wkLQfHAGhUvyVyK7D1/Tt/XN8OT7DzpoYTuS/Ycx+fyLUFbNA?= =?Windows-1252?Q?PcwHSebQDnOptE38n7pJdjb9AIytHC/hpK3Pwy7kyKAuXfSEWy0oUpX4?= =?Windows-1252?Q?FnCEz9B9ZcQQd/qrEjZJRgPHQxffZhliJ86+BPdZrTf5nhxnKCWvpngm?= =?Windows-1252?Q?4S43Hhq3TPX8oCOMKuOpG42PPmO0MKXBe6liKiZPj5qH+jfHapApCxej?= =?Windows-1252?Q?QimkXLTCM2faSIE84giH2VZYcOy/l9DPFsmhEqdCOldbi7iNe/dSLCPU?= =?Windows-1252?Q?wVLwx27Hp+vKUx1Uz2Wo/0eMtoJ0+lLSdl2nfvOVLe/6wC+rtEzBo2CM?= =?Windows-1252?Q?mOo08jqMKBjlhYeOjTAFwdBDYOjM897oJlwvDZqfX7luFa+W3kBb1UV+?= =?Windows-1252?Q?Do//HKI/gipikrKeETeBQ8BfSN0sKB4q1XmlXDNb5Kz/3WfJtfQduumY?= =?Windows-1252?Q?CcKdreaNhlNOxpLf0PmRoHoueNgNxA5yqfT21kMz179lU0r/TsZRJCi/?= =?Windows-1252?Q?gybB0cjN7b5zEfx909S//9PxOP9mof/oQMApxM3G7Rtzz4crT8fW2s6j?= =?Windows-1252?Q?S/qEbOnNaC81IxvuxLYSKFkgHzMNFi3TTQMz/QGSQpAlVAsQQvi8xwzP?= =?Windows-1252?Q?Uwt/Lf9FFhslXNJel7A37Wlvze5ysjNyab9YQPjX2wjvLP814R4ZEJud?= =?Windows-1252?Q?ScsRRsUedUcv2olVRhRJBXOc1mCM7uwoziDcazN2uiliAhFJJHl6xtxY?= =?Windows-1252?Q?U4zJySa5riJsE=3D?= X-Microsoft-Exchange-Diagnostics: 1; MWHSPR00MB240; 5:QkKerg1oG+Jb9CX8mZ8ADgGPrwx6ZXXcgeIrJFqlvl4MprgxE0Cy1bR3a4LUpgR9TMw4xItScJpELk6lL8dM08kwhZHBUTA2gKh/qwOcoUswwFqE8hFoeAhYP81X0vSCrcUKY/6voy3MTq+ykaBYoyFNg4wG6hs4siQl+YJj8O/2gA0mBv62EnR9aAuJksaBWRKsBUtpQmh/M7021cKPqSRKNAkVR02HfCjNqHd2Uiij5c0tdoBXxPdRRjfYCgP//cD9O0Coz4qgWNnjlTcbIkoiHF7YIwwNlzaHZKhXbOzS0f0oTVdNoheTCcD3lsuK2mBmanOgAMFDCJ/eWIFoBFAQzgInWRwQMRG5BZ+n4lYZmq9pWhnzI7oOA5QQRpAscCDXrHlIMC+GS1nvfEJWQcPI7e3X9zB+aLUVQ4ilOqeXBiW9BiWDKhumEETFmeEY7VwA24buYFNXE5yJXBbsXCT/NL/+WWFhF6eXZ95oCvT4nzXiiLAwLhhdnK/zaePF; 24:7x6QxNhabBsQk243xbVAOtWDRennWKJAefhR1KpoZQgWEZjiNLjydNfX8lFsjrFGOIGhYANBrqkvEmLSPhmuaFHLAzDd3WCJgb/1r7aldPU= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; MWHSPR00MB240; 7:P21JFI53ENYBX584PWbB4zjxRH5/oJlhHOhQHQEzqbya4aES47OVZRybdRPa+nlRzOzT9Hfy2m9BUzlmz6zJZeQhTn6LyMCzHles1CrD7s2SY+k2ptPtCPh3RgB4iwun9jWQ4OxdcPMkXjyAshyGCqVtulXKr41HcPK/gqHZKwhnEpcx4moa+toe0ZBQllTz59q6rOoq9fsEyVGJQ8+qHPjL6fkX9LoeIG23nHolWcJRwtOgMfz/9PJ/A2WlmS6wBU9700wknkjOWPM3VeGpqYd5yloltIPp1QpxH0fCf7bm2rNxkPLnj3h3i4rNV3I8U87WSTz87O7qsY/BvGGuAg8K22ljuvSnxmiIdTnyzlso6IA2bRAHti4g8J9lqyFK6rAtyJukkqtm+HE+DMm2hFsoUiUd0C1B+JT5BM3E8xpmvlC/o93OuDX6YDrYQy9a8GcvX0yiOi90Jsp7mtThszZJhOe6IAgwdSBEGP6MVvRlnWql9G2Vz9k1fSXW6ybDsWB7NyiwBFkU9XfJWKRb2jk3s4n1GVhRBaNnAP/6x2awmyO8jh0i0UaVX9hcu1eeGxhx3V3PuHAhknDc16Yaq2L5P1PUxJs0fop+p3Kqlj0KUentHgJl7Ju6FkliTewVydGsATRXVzmv6dzmx0k62bMknpc0ONHArluqfY84+OQ0nkTiT0QjJOug7pCNSn5w0/8fD70P/AoZdOAvo+yvcynwk8A3RY320ACCQgnpBbQmCRbzcaTR1PkTnWm9+o0a+mOTkhFxskRVZ6AmnwRn/5/FalAxUBBro7n5D/ESVi8= X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Jul 2017 10:22:25.7992 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHSPR00MB240 Subject: Re: [dpdk-dev] [PATCH v3 05/11] bus: get iommu class 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, 14 Jul 2017 10:22:38 -0000 On Friday 14 July 2017 03:09 PM, Hemant Agrawal wrote: > On 7/14/2017 2:00 PM, santosh wrote: >> On Friday 14 July 2017 01:37 PM, Hemant Agrawal wrote: >> >>> On 7/11/2017 11:46 AM, Santosh Shukla wrote: >>>> API(rte_bus_get_iommu_class) helps to automatically detect and select >>>> appropriate iova mapping scheme for iommu capable device on that bus. >>>> >>>> Algorithm for iova scheme selection for bus: >>>> 0. Iterate through bus_list. >>>> 1. Collect each bus iova mode value and update into 'mode' var. >>>> 2. Here value '1' is _pa and value '2' is _va mode. >>>> So mode selection scheme is like: >>>> if mode == 2 then iova mode is _va. >>>> if mode == 1 then iova mode is _pa >>>> if mode == 3 then iova mode ia _pa. >>>> >>>> So mode !=2 will be default iova mode. >>>> >>>> Signed-off-by: Santosh Shukla >>>> Signed-off-by: Jerin Jacob >>>> --- >>>> lib/librte_eal/bsdapp/eal/rte_eal_version.map | 1 + >>>> lib/librte_eal/common/eal_common_bus.c | 23 +++++++++++++++++++++++ >>>> lib/librte_eal/common/eal_common_pci.c | 1 + >>>> lib/librte_eal/common/include/rte_bus.h | 22 ++++++++++++++++++++++ >>>> lib/librte_eal/linuxapp/eal/rte_eal_version.map | 1 + >>>> 5 files changed, 48 insertions(+) >>>> >>>> diff --git a/lib/librte_eal/bsdapp/eal/rte_eal_version.map b/lib/librte_eal/bsdapp/eal/rte_eal_version.map >>>> index 33c2c32c0..a2dd65a33 100644 >>>> --- a/lib/librte_eal/bsdapp/eal/rte_eal_version.map >>>> +++ b/lib/librte_eal/bsdapp/eal/rte_eal_version.map >>>> @@ -202,6 +202,7 @@ DPDK_17.08 { >>>> rte_bus_find_by_name; >>>> rte_pci_match; >>>> rte_pci_get_iommu_class; >>>> + rte_bus_get_iommu_class; >>>> >>>> } DPDK_17.05; >>>> >>>> diff --git a/lib/librte_eal/common/eal_common_bus.c b/lib/librte_eal/common/eal_common_bus.c >>>> index 08bec2d93..5d5753ac9 100644 >>>> --- a/lib/librte_eal/common/eal_common_bus.c >>>> +++ b/lib/librte_eal/common/eal_common_bus.c >>>> @@ -222,3 +222,26 @@ rte_bus_find_by_device_name(const char *str) >>>> c[0] = '\0'; >>>> return rte_bus_find(NULL, bus_can_parse, name); >>>> } >>>> + >>>> + >>>> +/* >>>> + * Get iommu class of devices on the bus. >>>> + */ >>>> +enum rte_iova_mode >>>> +rte_bus_get_iommu_class(void) >>>> +{ >>>> + int mode = 0; >>>> + struct rte_bus *bus; >>>> + >>>> + TAILQ_FOREACH(bus, &rte_bus_list, next) { >>>> + >>>> + if (bus->get_iommu_class) >>>> + mode |= bus->get_iommu_class(); >>>> + } >>>> + >>> >>> If you change the default return as '0' for buses. This code will work. >>> e.g. PCI will return '0' - when no device is probed. FSL MC will return VA. the default mode will be 'VA' >>> >> I'm confused why it won't work for fslmc case? >> >> Let me walk through the code: >> >> If no-pci device Or (future) no-platform device probed then bus opt >> to use default mapping scheme .. which is iova_pa(default scheme). >> >> Lets take PCI_bus example: >> bus->get_iommu_class() >> ---> bus->_pci_get_iommu_class() >> * Now consider that no interface bound to any of PCI device, then >> it will return RTE_IOVA_PA mode to rte_bus layer (aka bus->get_iommu_class). >> So the iova mapping result from iommu_class scan is RTE_IOVA_PA (default). >> It works for PCI_bus case, tested for both iova_va and iova_pa case, no-pci device case. >> >> Now in fslmc bus case: >> bus->get_iommu_class() >> ---> bus->_fslmc_get_iommu_class() >> >> * IIUC your comment - You want fslmc bus to return RTE_IOVA_VA if no device >> detected, Right? > why? > As I didn't understood your previous reply: `e.g. PCI will return '0' - when no device is probed. FSL MC will return VA. the default mode will be 'VA'` So, I'm asking you that in fslmc bus case - if no device found then are you opting _va scheme or not? Seems like _not_ per your below comment. > If bus is just present but no device is in use for dpdk, then bus should return 0 and it *should not* participate in the IOMMU class decision. > I think, I understand your point..Example if you have no-pci on first PCI bus but device found on 2nd platform bus then you don't want to fallback to default (/_pa) mode.. instead you want to use 2nd bus mode for mapping, which is _va. Right? If so then In my first version - We did introduced the case called _DC. _DC:0 --> stands for no-device found case. > Right now there are only two buses. There can be more buses. (e.g. PCI, platform, fslmc in case of dpaa2 as well). > > If the bus is not being used at all, why it influence the decision of other buses. > If your referring to above case then I agree, We'll re-introduce _DC state from v1 in next revision. That will look like rte_pci_get_iommu_class() { int mode = RTE_IOVA_DC; /* '0' */ return _DC; /* if no device found */ } Right? > if no bus has any device, the System default is anyway PA. > Right, If no bus present then It's also responsibility of `rte_bus_get_iommu_class` to use default mapping scheme which is _pa and which It does. > >> if so then your fslmc bus handle should do something like below >> -- If no device on fslmc bus : return RTE_IOVA_VA. >> -- If device detected on fslmc bus and bound to iommu driver : return RTE_IOVA_VA >> -- If device detected fslmc but not bound to iommu drv : return RTE_IOVA_PA.. >> >> make sense? If not then can you describe fslmc mapping scheme? >> >>> if fslmc is not present. The default mode will be PA. >>> >>>> + if (mode != RTE_IOVA_VA) { >>>> + /* Use default IOVA mode */ >>>> + mode = RTE_IOVA_PA; >>>> + } > > The system default is anyway PA. > No, That check is needed for case like 1st bus return with _PA and 2nd bus returns with _VA, then mode = 3 (Mix mode), which we don't support so (as I mentioned before) its responsibility of rte_bus_get_iommu_class() to return default mode (_pa). That's why!. >>>> + return mode; >>>> +} >>>> diff --git a/lib/librte_eal/common/eal_common_pci.c b/lib/librte_eal/common/eal_common_pci.c >>>> index 8b6ecebd6..bdf2e7c3a 100644 >>>> --- a/lib/librte_eal/common/eal_common_pci.c >>>> +++ b/lib/librte_eal/common/eal_common_pci.c >>>> @@ -552,6 +552,7 @@ struct rte_pci_bus rte_pci_bus = { >>>> .plug = pci_plug, >>>> .unplug = pci_unplug, >>>> .parse = pci_parse, >>>> + .get_iommu_class = rte_pci_get_iommu_class, >>>> }, >>>> .device_list = TAILQ_HEAD_INITIALIZER(rte_pci_bus.device_list), >>>> .driver_list = TAILQ_HEAD_INITIALIZER(rte_pci_bus.driver_list), >>>> diff --git a/lib/librte_eal/common/include/rte_bus.h b/lib/librte_eal/common/include/rte_bus.h >>>> index 7a0cfb165..8b2805b7f 100644 >>>> --- a/lib/librte_eal/common/include/rte_bus.h >>>> +++ b/lib/librte_eal/common/include/rte_bus.h >>>> @@ -181,6 +181,17 @@ struct rte_bus_conf { >>>> enum rte_bus_scan_mode scan_mode; /**< Scan policy. */ >>>> }; >>>> >>>> + >>>> +/** >>>> + * Get iommu class of devices on the bus. >>>> + * Check that those devices are attached to iommu driver. >>>> + * >>>> + * @return >>>> + * enum rte_iova_mode value. >>>> + */ >>>> +typedef enum rte_iova_mode (*rte_bus_get_iommu_class_t)(void); >>>> + >>>> + >>>> /** >>>> * A structure describing a generic bus. >>>> */ >>>> @@ -194,6 +205,7 @@ struct rte_bus { >>>> rte_bus_unplug_t unplug; /**< Remove single device from driver */ >>>> rte_bus_parse_t parse; /**< Parse a device name */ >>>> struct rte_bus_conf conf; /**< Bus configuration */ >>>> + rte_bus_get_iommu_class_t get_iommu_class; /**< Get iommu class */ >>>> }; >>>> >>>> /** >>>> @@ -293,6 +305,16 @@ struct rte_bus *rte_bus_find_by_device(const struct rte_device *dev); >>>> */ >>>> struct rte_bus *rte_bus_find_by_name(const char *busname); >>>> >>>> + >>>> +/** >>>> + * Get iommu class of devices on the bus. >>>> + * Check that those devices are attached to iommu driver. >>>> + * >>>> + * @return >>>> + * enum rte_iova_mode value. >>>> + */ >>>> +enum rte_iova_mode rte_bus_get_iommu_class(void); >>>> + >>>> /** >>>> * Helper for Bus registration. >>>> * The constructor has higher priority than PMD constructors. >>>> diff --git a/lib/librte_eal/linuxapp/eal/rte_eal_version.map b/lib/librte_eal/linuxapp/eal/rte_eal_version.map >>>> index 044f89c7c..186c7b0fd 100644 >>>> --- a/lib/librte_eal/linuxapp/eal/rte_eal_version.map >>>> +++ b/lib/librte_eal/linuxapp/eal/rte_eal_version.map >>>> @@ -207,6 +207,7 @@ DPDK_17.08 { >>>> rte_bus_find_by_name; >>>> rte_pci_match; >>>> rte_pci_get_iommu_class; >>>> + rte_bus_get_iommu_class; >>>> >>>> } DPDK_17.05; >>>> >>>> >>> >>> >> >> > >