From patchwork Mon Jul 24 08:39:58 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Santosh Shukla X-Patchwork-Id: 27124 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 C6A7B7CB8; Mon, 24 Jul 2017 10:42:39 +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 9139A7CC9 for ; Mon, 24 Jul 2017 10:42:31 +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=7OHqgLfYLAqPP6HIe5vfKcWEM3YXCQSSUk5GRR6x8EI=; b=WyMHz7VKqGfUgDeu/4oReB5Ujp2AKyXpDT2cbxgH4Bw8cFmSe/cVOz0CRt8X1VgzzKug8klKT6oyVxkN4aBg4jO325cQRmD58Kl6Shrp8mTAXK0Bm6AjKyPVW8qljasrQ3l8mUF8ZdnjOhmMHMxyidOPmGJVCZ8sQW1CHoRpmVA= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Santosh.Shukla@cavium.com; Received: from localhost.localdomain (223.180.24.9) by DM5PR07MB3097.namprd07.prod.outlook.com (10.172.85.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1282.10; Mon, 24 Jul 2017 08:42:26 +0000 From: Santosh Shukla To: thomas@monjalon.net, dev@dpdk.org Cc: hemant.agrawal@nxp.com, 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, Santosh Shukla Date: Mon, 24 Jul 2017 14:09:58 +0530 Message-Id: <20170724084004.25542-7-santosh.shukla@caviumnetworks.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170724084004.25542-1-santosh.shukla@caviumnetworks.com> References: <20170718055950.10208-1-santosh.shukla@caviumnetworks.com> <20170724084004.25542-1-santosh.shukla@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [223.180.24.9] X-ClientProxiedBy: SG2PR06CA0085.apcprd06.prod.outlook.com (10.170.138.11) To DM5PR07MB3097.namprd07.prod.outlook.com (10.172.85.7) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0dff9db0-253a-4229-4635-08d4d26fec1b 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:DM5PR07MB3097; X-Microsoft-Exchange-Diagnostics: 1; DM5PR07MB3097; 3:ita9KyBHSHw0Smm3prMmfa/TmdU6CTiRvOsEJNxRs6DnSJx3IA4Gb9fVDE1rMKz91jL5FaCnloX9DEweMZjKZ/qiKh9Z1snWlyG6AEPStXG7EIR4ikZ60GwBbLdQ+OVeYf82ne7sh8jwiDbu7b5prs2jb+9te/PpmPpL6+L9HI1xnExnnnFA48NDbKNWP7383opX5fc7QY79MQUXq3TaE9FcBpeQaqrObWklleDup/1qr/xFu4BRNR6JF+kAh3fH983enmF1InkY+67FULUz9rAkJ1rxdMxDIWoIELJQZ7BKXTWmEkYyo3QndCPnY4aDP9NzW5fFK0+kdMM1V1+XCeHPm6AlwnGItvTevQ7OKTVoTvT7zWGYrTtk5OGehPPm7ITdvioDR9HCcQ4KDWGKX5ZmM8nvijoFkorgv8RlYX3hQMqBqudHPALruR3aaVh1JkzLK5nUQfXGGE8slhE0784CifsoIUOeVvzQmYRdPBKtyQPSERBCkEhNSZx7O7lwGaRWTwFELIiwelsIiMRE8IeKDUplZ8G4A66yJyC70TVEUlYfwEHnVUzE1H4YuNqj6XhU3sXBNRs/K7K64yNTj8vx2riw5MSMkzRXuEJkB6cRT2nXw2+2Z0aQhCQh5lJ7KPTkZcWIuptCUJg4lqDNHEoX5Hyho6tXi3YBsGhiv12dUQvrEuZbJrVOtzSHZPjd2KQSVocQ5lZnwiYJdk4l531Tk81VfGF/Tk7MTY6XjAw= X-MS-TrafficTypeDiagnostic: DM5PR07MB3097: X-Microsoft-Exchange-Diagnostics: 1; DM5PR07MB3097; 25:C+hmDkbJ5qFdLho+j0mO8M87SheLTWE4ZTagciOASzn8mBWep0PdKXViIeJwCIGWc+65nEaca565XDE5Qsk9ryqdiMB/5pX9USIWdceR7d14L+XzD/nXWqT8LJqVcF9LhBzIVfDNGh+ijV2IMVUnPO+eYznjSyGz6+SPVaO4RaMXzjRKlclfy6QjqnTYB3E2+g8GiDWRkSxHV/8VCQVwsPTphLffnjyh7x9SJQD12UPO8/W4P8VrYTp+OQGZJ3GFu9pV1uNWoeSbha4iGe7xbwfwly/wvHzqaFr2r5XiyzV/UaLPbnWWC/YQ9G684aGwGnq3QoOhMvFCfappWiIpXNqkUuGp5L5RtAS4cvDDz2Os7CxCQ9shSHz8WVLNLByE81ij+tpm//504iRAhnEw7fK3EAxjYclHefAg0u9DLhwRCPX0lEs9neprJRpXdhC9Zd2Y10wVZZY17wC17FUoUNyW3YqEqSJilJPeh1VuyfMvx2twThGEpnaD7Z5ziSCtQax+mf/AaoKWUXQWxYukpBkQ/i463PSrprAqJ7LkLVoV8PyHvxJx1M1nXy9CE1tTsJDv7NdDaJi8qT4iTr4MxuietjVk3ajFticdhvvgO6w2A3HFHuK8IFBgwUD0J5RjDsHMNYk11shK8u0+oMjllSvaOQUUjuL1oHrDb5K++t/JIDAzxtwjs7sLxvz/iRWmyymR3JRPHWLixwJdpUIQNYPssg/A/jBZGu5+RQibGWOha3PpTKGQIorxjbtTzISovpHQ4sjMXGNv7+6/FeN29W93eO5rsiwLDjMbyw8W32gVhhWAmbyTx3bvMwdVB04HUCUSnUTUPBqccLZHgMiZZmQKIUoVxT7GFTXZJEuH0zgo8JdslJon55zE3CHJoumcj94mTEGDteXcvpOl6FjUiT2kXRlERD3O6LDH3FOuwoM= X-Microsoft-Exchange-Diagnostics: 1; DM5PR07MB3097; 31:nKs3m8jw9neaNk2eGjuyMxaa0TeVGgyTa2ELcn1v1PUV6M3ZkHcxjkZTkE0nYFzE7g8b1RjB7/i6OPLBoLUvVQKYuCoxevfpJ0fsMepiaFif8ddN2XCzP6DL1XYj1Dwd23uY0MvKqfsiFPPcWM07R54Aj9lGKr9kNt58cCpiq2mhaY9wVg/17GS3r2ZqkkYAH9mBwjc9ppNTrV0lljKj1AxCp202uT1fNqKTY/4g8ji7aNrehrWv31zePFtRNL9i29D7Qn88/cm1ACv+TutyowrRyFBLfrXQY3Neu58Ea893CgS/QoPEE4uM0Pyqi7Q0anj1ON1+chs+/Q0hV15D16YqxmNlJpbhM0rNsWJ4M+Xe77lZp4To2kpryc+998UTB8kWABWN3is8W3xB57WNH7QE1v/a6k3M6AJZ4a2mVyMrN1WvzV4nP3xD0lcPWfeLCY+WLjBKET2RDBIx17y100boYdyb4uVmhlKqSdDqjJE37V9vVFwAaLwPPPNoHWUXRgFOoV4RJRzfd4CefVwwF21p0+w8lXRZPUQ/sJECci2pCcUijw80yiIavNmc4/QXAX2Mebr7mqDI5e+Z2Zt2Jcl3bfnebaKpReL4hMTgXZyQ2rC9hDA7eTzvMdRLlv/mlGfN1Lcbh897MZ3vgylynv1BI0Cs3y4nsSGcU+s0NiI= X-Microsoft-Exchange-Diagnostics: 1; DM5PR07MB3097; 20:cf3/09VfuNI6exM1WZBOE/SGJCoTsycA3d+BQ1oFodnSZBttZPwE4YzQvksO0mwtpunOu+8fqVn1FqL2lUYiHqrvahHEfTZFLBJUuM11vTeovbJmdC9FveHsN8ncsqCRtvCtglVWmNNMN/m2oWOU+xyaiRG5JFX8e+tPMT3VZPNoEZZxR/4LcXcTJOX9hY+aKVjUbgu3LAlg6TzIUrYM30xMd6+zRLB91BJX4thbOVTom/oN1yUMtkm4blwJWfVgjY27myZVFzpzlo9Jl+U1cPKGkoLfw/c6mqeAusalSfdmXUwpXiP9/cQeLVcoZrj4pN4tQDS3vr5z/jAxsfsIOXUO7HGrrazP4eNaRAPy9+m1vqsw3ZQD4eapk7rlyJ2Oxt6o6DuEWhTPW6jMHS5zG8uUxb6E+5g8WNg6tOLC89HEPqof2T1ZBZl1gO67jwqAFBMzrp5R/trLKpB9/V/aA8DO3IHLcvtdBw5ehHx3A6pXBvSIxFjZ6OmcZy/4Rl+I1I7yCht6x/mojwS8q2AUzHIgdu7WB1p0aV0bwXO73lXvDbwV8yUmacCwnoUJmxiz/NGS6Z902zu75G0yYduYuNL2jx9J4kbnwB0wUVGhK5w= X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); 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)(10201501046)(100000703101)(100105400095)(3002001)(93006095)(6041248)(20161123564025)(20161123555025)(20161123560025)(20161123558100)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DM5PR07MB3097; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DM5PR07MB3097; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR07MB3097; 4:NdjJQ6Fb159BGgUOJd/ZzXqVF4CiLzQRmtmIc4FutS?= vEQJKmoHQ5uUkMXLJLGVrsITQOxA15YCbMUZMG7EEwwy5oo0TlEnU3LhCqwl+iB9T43L0Irz5rVMeVgDV3KsNuSs8s4oDMqxdhRuGuhhVe/8iZxFF2x2PRfbQxbkwCuQikNVLZkokUuQmWrWmdu2cyHDZ3Aq5Um4D8djs5jMAnq4GcKlUh/LXTGugBGIl7bU/u59ok/bQER5hTrkwDDQN0rz+9MPsapFgfVJdWogG5azwyhxiUJBcMv46AUW68ax9MSNFCo4Eu4W29tfwkaMR6+5Mcs9vVSplyzWtTLYfdcRmHs5Tsg3tJ+AXnqz6tb5puV+J5Nj9+thPpFi2R76LwlKWP28SQKHEy7qTZDhxGroHom4NswKgLgEtuonImOZYPPi2jBY9nsZjlzS55sJhV+bC4Eb+/TZGmPTcdsqCsKdAukjTqXWVP3iOuQ26tLhLVK/rHKO4TV8Ep8gLKv169e2X0VX2C3oHVZjIZZnHuom8TZ5ghpOfC2AYGB5ss+gY6Jt4ZqIl4MjOIWcP9SdZm3oHMMBgV4hXfwqaK2yUNQwy45jfhRNuaoOWQnoAF90ruVE4UJq7rY2l7WKq7ixKmaH8zX8JLNRArQuQBydGmlouozvNs/aFkH1WfstUsUJLUYlzr8JPexg7wx2zRksYILcIG+rrnouAz6/fhg+NY78msCvDkf5yYr859e4ooewZ24jpq1s+WgMl6CE/RrCyTqVDNrGbXGaXgL/ioUrrwCb1EeHtc+V+Cau1RNtPQ1koUTLSbe+8kJm+y0rXPJ11Vu3MhEbj7c//48P5FNf8uMx/ff9XZnwIwvWNxWMfLBs0DojvV+mpl4N267vHZgaKJJUKFmSXpfa/Me/fkBmYfQ2EyYueYPi/hfAwk9gco5NObEmPe0VFUuYb2+WqC+JKc/B4jaxYPd1zhn7q1Uz4babxAVy5ObbQBVp6I2YWa96RVE4Rmx2qB3tPsRqm73+SeC5SyfbD4tjXCdi9D2/vr/9SovcVusapF2FM8QRnMOFIO2n+0/ogdgdAFki5hB2IdCsFgXtY+uCl5AUul5UDMCpnHnkmjmtXPm9uloaAWo3twhF42cLIyqP+vaT8FyMAUWfTLLl5oP7sQjXTnLu8YuA== X-Forefront-PRVS: 0378F1E47A X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(7370300001)(4630300001)(6009001)(6069001)(39850400002)(39400400002)(39410400002)(39840400002)(39450400003)(189002)(199003)(47776003)(6116002)(575784001)(38730400002)(42186005)(2950100002)(72206003)(36756003)(42882006)(5660300001)(6666003)(3846002)(4326008)(68736007)(110136004)(107886003)(2906002)(478600001)(5003940100001)(6486002)(33646002)(81156014)(8676002)(81166006)(97736004)(106356001)(1076002)(5890100001)(8656003)(53936002)(6506006)(66066001)(6512007)(7350300001)(189998001)(101416001)(7736002)(7416002)(50466002)(50986999)(50226002)(76176999)(105586002)(25786009)(305945005)(48376002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR07MB3097; H:localhost.localdomain; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR07MB3097; 23:g0ZAJVR2h++VwQJZS3tTkx/6KS2dVAjRnvreeymBt?= 92WpNfE0iwXubacd9VynWJ8pvMqMbt0NGQaCXBLuqeLfInI4EzFTHGSNMte13BKkEvoseJAdkEiH6N1bKt2z6N5SUul4MJ4nHVq8WuyBj5rQS9a8IB0RDWJ/6gIvlfuSVb1h/qhEVR+CYuVvvIpWUF1QQSE9EgJwJqPniM6NQDkqdUTzUUedbQCzgUv0UyrpaTVptIYRYWdZiRTvVsQxz3CwSHEQLIW5Aug+tdDgH6DZdlPz+nl3mfZjpUSvP6WYniVXtUD6oVQh/hDv/+Q7Ft/KXfN9SmR18SzXlRSIADfQ1qYXiC7Tdxr56l0SWqAqKjvx0gnGL5aIbS+c/3LxbEqi2bpJGkjol56oy8Ocyp0dOE98QiQpkGrzB1jUGJGcRrp4r1/1pWScqOFoCxwzI9c4XMG/iMVMmbfXSeS9Jrgs7USIFIDC+ZT7pZT9kzjBrgCsL9BAEz7RfvvYQ16Uu0BogS1PEmpuVFJF7h51gPzcbPEeQBfPeTuGhB4YCfmTJ+tUlys0+eWff5I5bzhYdy+H+4tdL+fQCt3qvmW1D5dCplTO1dONWNYBBUquXG59kqwKFMayDEd+aIrt6saFT9wKTlK3aPBm5nW/O6REmwAG9amfMlpFERfXcNAN9Mg73qaVPYx8ChEyXNG6ENrjJPf8qevP+g+1OfVDGrO2rimJ4JpYSEEKfS4oCeUTLu7EE/l0vygW2b9snbyFTbls+FezyxnaSGuEI3ZEo3CGCoOeGDxPkxSmxa5ALlZVdyakaLx5as1Fv6Ix8Jsqyz6MFzKwjZ7bV9D1nqAaX39qoUzCbUZnsde3MwI5WhyxeqCfSjllYeKjAj9UdXScsoGVdiN4ynRTZ1N2nML3PqziN6QRD73o1hE3uHdZw8mphqLOXlwkW85Qg+X2Ve0v6Fop2kiiVRX3gtOVTZnPEm+VNDcXkLwAO2rpA2Vq9sLyw7RyaB2LUNPgKwWmCLNy1ImS66eCA9a68Sm25dDuvwkXctsSdgut/7E0I/u7zwKNDSd/Wa4SIMwAMGot+xRz68jq2OZRJDiKZ3WkkAzdQAmNDQnXUmXDMAvaR5UgzR4MGrWH2QSjJjm/x+m/PMlg/dP9TgWYGv2pxZXututpsTr+my50PulLtdg0jQJXMAORB8flU8M5LkDbGHqQ0JrF0CDJy2sCozazdNebfvRjo8fnvtGpeaQczldbx5lNN39xFduTxqVhH1mjLnrdFROPVMjF2oDPmhFpD9oPCq5h0ZE/gPTJ9aw28hLDC7y8aasLoG4JMTc9fiISWHRAoARtLK/xbFNOG1Gb9o/VnO+Bbsd4OUSoRldN0/J0czfL63NqU7t3lDQC/XRYFhpjCw8UrYgl6LT X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR07MB3097; 6:Z3NV/IkzqC74ICoXMkryKvpqj9M+OoNTKJGHjiITPZ?= tuwWGQjPmrCkgSdR7TyGI3lKzpigPLKRXhjU/vYZqwReS8UHKnfgrt1yxyMOSlc43vN6Vg4G74Arn/u9yY+f87V6e76CwadYTOcfRyJz5RK73qmIy7dhEbhQdxe+8MKCT8kJ7FXBXBibLClsju3JEX/5nZWthL0lqnQECyY7dob8xbmKzweY8pFiVLan+lHJR51Kh2QByyu9aemFJjwGlUR78cS29Yrr9SNO/0drpdRM17JLLPourw1YCrdgHI859u4KYl0UoYtNV2xzlSLMA5YiDJgKkEKUobf2uSuh0gYFBjYv0Iv67ya0jFLX8LCSYG9xdXFEYWZDDDbNnYhUZF4qAXRjs87M7oiTl8aZEVcBYo+7iIWvt4iSEbFMEz+yYtYriM9HMZAdEOhIl6zEWl8Szm5w9t4z3Gd2BdLgNf7R11CEohjKYWTqKPfJj2LkHUX6anEhDJSRJRVKFjaJwClmPsjhNOC4FWvp1UTzjprEq4SHvIYDpKU2LANvCkjS+wqYVNK7V/X/HOZ/+zfnjBf3iRj/5cbrRVkFk98/JPxTcUGgu6lCykKSTVXt6WI9iIpXJpW+R7kRx+dfJZVxRQjxkiJuTVNG6nqgpQZoU5GYz73dhoSfDYMGmterUKkF24PL/2yy5RcHSKIzrCmxsFzyFEb+TkI6KKOPOlx9ucw5ELBW4/vIPpWdZmHMaUnFNvLzKSoht1Oaftb65iH8qtxdrp8A3vaKjgouJ2sGRhQMa29jjr7BwsY/L8kSPcZQQQgkKCEFPZftkZEWde2A8iiocya7M+SWy8zy67VtBxwp1IjKAv055yaU+/O7K/0ZsswtxI4/5mjBnRMtpw20HEGpkVg+UTbhnZpY9ojHhYuHogN+ddiiKPX4VpVF/kQ+PO1L80xG82P8jstsN3RtKxftU5hKrG6Zd67MvW9+6IsvrB7PXqKIu3ocbG3LPerCg= X-Microsoft-Exchange-Diagnostics: 1; DM5PR07MB3097; 5:l+cmlsOUfU0GCf4AC/Uh/cGBWGoNNzlkiY9hzfQZBvZ/+eoL1F1rZ891xfn1fp6XGsLd9mA8waeuISEQ5JUoReAE6hh9mj1K9gjSZN54MhGh9GCuFOnhz/FwMZe9xkffNRsRn6bMuE8/x3B2SnEwFIaSjlcdm+HoOT9gkPCNKZVcnX8QT8ez1jtZGPyj+HLNd18SE/M+flGaKCueyaxrkvfjjc/vzCMGkkOzyCwiw9/J+45CyZbJqkLAswoWyUISD2hbcRRwpQl92nDFy/K6l+XnLJ1A+CHOhKoh+roBvTeQvm1w63sylxaGGJGKahnxA3wCuruoPZWLYb1PUR/0a7/cqqzXhWM5wphH4mvG23IquAWC595+XDPYbyJhqX7nVSW7w1DM2qohrkj03FXH0iVV640y5W0llnf6M6x7RG24+Gs0HW3y7YNRI/BYCpRE/6uiz35qDlAE1iVcieTskYsAlrA6t4+YGcIKqb2wDQEQQmaNZdvS4yqAcoluuycI; 24:AozwWrpOKrSkTSpDunqbrkUukogcNzvO4CHbY6F3KNb0DTtaj618yV0NxQ7vxgPgYJlBDOqX1WWt3vUbGygS/E3OBzq/sK53p6JmW4mgBBQ= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM5PR07MB3097; 7:3ntTDPkOGjgL7LHoK/+uyCxxGNcDcjtAFhbLYPgD0ehIYqCJ0WeaPwyV4GcrB/m96M5RkPz0uE25v4ZkVKS10JOeVRPHgmtx+YN+CMWyfHSMXfBkNveTZM7O+hPKnnpbj81aj3zU6NkGicRILvPgt01vHp1mV+kPfNNptB7f81xFsO4WQjoATUYMuZ35vJ1Xj2DQUop+4ZuMSjViSSPpHNJNOHjDhxN7jeeOtAjeuByyEV3penAfS84FAnI+QlLWk16R7A2dWHi0lnW7uakPPmBMHIRn5GPie88A1HWKeEQi6xEkTpy3v2HgaVXAz52jBv5rh/KNkXla0GZgvLQJtQkCIkT/X1tuKt1fbMg3YaAQBdiOJ45gMMnpQ+JqwXJhwG28qK1ofXF/wd98xE0TtUi7ewe/L8tzqaCfUfJ/piS6dNrQy8suOVVOWtBi6m/FqzW5AI2VsAn7nArgSz1/mri17USR/kJoRXIeb0bhvkUac8BSqEDo5mFk9WxMjq5p1fO4LbcaeXRd8DsiVT5H2qozxZdBOcACteHWd0tJ1Pm7SGQIfq4KAEKeCuVhzcDDEfex3cbgyjdlwSffHJDM2dhZJU/9mH1ThNnCVdb9I+ZPrNYA4Uo1bJff7M1hMKr68GfSmbPTUAfGY2LfEyZPL8FngYzvFzE7E2pqxHDTvlDJYcG7LkPlul2Zap+LAH/RZURDp07MAjatFIvCm9W9a4hNrL09ny7pOvu7mUDS5+SkdVCnhj+UlgkwfIZ60cCdSYWeIBe4Yv27ZfB0ZHIgUOBpkPHDHysthxE83YtPwFE= X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2017 08:42:26.3485 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR07MB3097 Subject: [dpdk-dev] [PATCH v5 06/12] 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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. Mode selection scheme is: if mode == 0 then iova mode is _pa, if mode == 1 then iova mode is _pa, if mode == 2 then iova mode is _va, if mode == 3 then iova mode ia _pa. So mode !=2 will be default iova mode (_pa). Signed-off-by: Santosh Shukla Signed-off-by: Jerin Jacob Reviewed-by: Maxime Coquelin Acked-by: Hemant Agrawal --- v4 --> v5: - Reworded bus API description (Suggested by Hemant). v3 --> v4: - Initialized mode to RTE_IOVA_DC in rte_bus_get_iommu_class. 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 | 25 +++++++++++++++++++++++++ lib/librte_eal/linuxapp/eal/rte_eal_version.map | 1 + 5 files changed, 51 insertions(+) diff --git a/lib/librte_eal/bsdapp/eal/rte_eal_version.map b/lib/librte_eal/bsdapp/eal/rte_eal_version.map index 8d5bc5000..a30085a32 100644 --- a/lib/librte_eal/bsdapp/eal/rte_eal_version.map +++ b/lib/librte_eal/bsdapp/eal/rte_eal_version.map @@ -242,5 +242,6 @@ DPDK_17.11 { rte_pci_match; rte_pci_get_iommu_class; + rte_bus_get_iommu_class; } DPDK_17.08; diff --git a/lib/librte_eal/common/eal_common_bus.c b/lib/librte_eal/common/eal_common_bus.c index 08bec2d93..a30a8982e 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 = RTE_IOVA_DC; + struct rte_bus *bus; + + TAILQ_FOREACH(bus, &rte_bus_list, next) { + + if (bus->get_iommu_class) + mode |= bus->get_iommu_class(); + } + + if (mode != RTE_IOVA_VA) { + /* Use default IOVA mode */ + mode = RTE_IOVA_PA; + } + return mode; +} diff --git a/lib/librte_eal/common/eal_common_pci.c b/lib/librte_eal/common/eal_common_pci.c index 3b7d0a0ee..0f0e4b93b 100644 --- a/lib/librte_eal/common/eal_common_pci.c +++ b/lib/librte_eal/common/eal_common_pci.c @@ -564,6 +564,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 9e40687e5..70a291a4d 100644 --- a/lib/librte_eal/common/include/rte_bus.h +++ b/lib/librte_eal/common/include/rte_bus.h @@ -178,6 +178,20 @@ struct rte_bus_conf { enum rte_bus_scan_mode scan_mode; /**< Scan policy. */ }; + +/** + * Get common iommu class of the all the devices on the bus. The bus may + * check that those devices are attached to iommu driver. + * If no devices are attached to the bus. The bus may return with don't care + * (_DC) value. + * Otherwise, The bus will return appropriate _pa or _va iova mode. + * + * @return + * enum rte_iova_mode value. + */ +typedef enum rte_iova_mode (*rte_bus_get_iommu_class_t)(void); + + /** * A structure describing a generic bus. */ @@ -191,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 */ }; /** @@ -290,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 the common iommu class of devices bound on to buses available in the + * system. The default mode is PA. + * + * @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 bf68f02bc..780539dc7 100644 --- a/lib/librte_eal/linuxapp/eal/rte_eal_version.map +++ b/lib/librte_eal/linuxapp/eal/rte_eal_version.map @@ -247,5 +247,6 @@ DPDK_17.11 { rte_pci_match; rte_pci_get_iommu_class; + rte_bus_get_iommu_class; } DPDK_17.08;