From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <Santosh.Shukla@cavium.com>
Received: from NAM02-CY1-obe.outbound.protection.outlook.com
 (mail-cys01nam02on0050.outbound.protection.outlook.com [104.47.37.50])
 by dpdk.org (Postfix) with ESMTP id 9A8C77CC4
 for <dev@dpdk.org>; Tue, 11 Jul 2017 08:17:44 +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=eoyrkrKKlYswrIvdv1L+RDoMWxnz/n+hhKdZoX8zmTc=;
 b=mJtOCxFjd+4us7WTMmIcQuPM/OvodBTudQxzTkCwsNy+xBBwMtiNEInw2bw4OKY0zRcOiuP37Bv5Ip6Q0Gk+TxCCzTL4pSa1OOdS7LWmOxIkKwWx5hoEygjKOTSpvXiJPJTv/A+x8wvlNuyyR5fzM0rUR25RrAdoJGkmLIs93kM=
Authentication-Results: monjalon.net; dkim=none (message not signed)
 header.d=none;monjalon.net; dmarc=none action=none
 header.from=caviumnetworks.com;
Received: from localhost.localdomain (111.93.218.67) by
 CY4PR07MB3094.namprd07.prod.outlook.com (10.172.115.8) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id
 15.1.1240.13; Tue, 11 Jul 2017 06:17:38 +0000
From: Santosh Shukla <santosh.shukla@caviumnetworks.com>
To: thomas@monjalon.net,
	dev@dpdk.org
Cc: bruce.richardson@intel.com, jerin.jacob@caviumnetworks.com,
 hemant.agrawal@nxp.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 <santosh.shukla@caviumnetworks.com>
Date: Tue, 11 Jul 2017 06:16:24 +0000
Message-Id: <20170711061631.5018-5-santosh.shukla@caviumnetworks.com>
X-Mailer: git-send-email 2.13.0
In-Reply-To: <20170711061631.5018-1-santosh.shukla@caviumnetworks.com>
References: <20170710114235.18970-1-santosh.shukla@caviumnetworks.com>
 <20170711061631.5018-1-santosh.shukla@caviumnetworks.com>
MIME-Version: 1.0
Content-Type: text/plain
X-Originating-IP: [111.93.218.67]
X-ClientProxiedBy: SG2PR01CA0103.apcprd01.prod.exchangelabs.com
 (10.170.138.157) To CY4PR07MB3094.namprd07.prod.outlook.com (10.172.115.8)
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 8c166c51-5575-4d9b-9aa4-08d4c82489ba
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:CY4PR07MB3094; 
X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3094;
 3:dZRaHUUi7rR9RE0Xq5paZZal/jLIauRcabbRzBjWSTUk5JWpnbiMyijILg9zHvA5tnIZdGe1fLAQDWXRbnkygoGjh7PoNtAqw0di+110ZQpkpRJKdHzneHvzLwLlfdSbVSJaqaHfJTc26I8jx5b6M6sQTB6ywKsIw0msNfBels1Ov3CxflblF8YBtH+B+6X9vGX2NORQBdP26nierjR512vbZwr+8nSAln8YJhbMDAFpNxRTUO7XdEje1dGCz9y2g25d/HLAC+Vb34arR9/7tMths1yxitZsE2cBLLYQlC4EAVubw502btWMW3QG0sHhap61NbNGsX/a7RVq1eNsADYnlkALBB4bEFvAic1UnVar1v4flTiUVgh/H7hFawB2sU1+k7Uadniax92LsQCMwH73L7+/Ct75PqUSGq8zXqorDVaxNoXCGM14rT5QShJAwyQ0iIUR4+7eHkAcvnpOE1qNosaPGRiF79+pjjggJPW0h+E3cjvL9haOpEakDacceLfkjwPozt53xn9SNtcPrxkpvaW9TaqKLFH6nZWNrswlfBDpW4AT+/AMTePpjrv1s5h5WkGemJOL1ge000pnAlvPKHVfrzmo1k1FqwW9CT5lDh+SvhJbAAuRNX7Vg3Gtw6cGOWrosI8Ba2327z1uhJm9ZRZwRZJZTLowUIx6zeuIkT3QpV/Vze3v3xziDmNjOUb5FpkK3+UXdXVHoriJKQNGPPnYdPLg7KAACkyQu84=
X-MS-TrafficTypeDiagnostic: CY4PR07MB3094:
X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3094;
 25:qn+QTT9qUWG/XN+/Ohif+NYI4hotIJUoRX+N6JkSn8uSt9wEt/xr2xsEzrdJfKGlCuq8LhvigECjJDLsLjGipywzW+IL2nJZhHuUyIgAwr2HiMLeAeBBs4SrGJeKciy2kUyB+hmLi3CEtN2G/Cj1tfegzqwx+lV8kN4qBlsGkaOsTD/wyfiE1TkZqLX9pDnXmSq+yfS12tCNIzo6gp9h1ox8r0Kody8U93J6LyCeKiF35HIRPTXRSYIFoho0Z8Z3oWn3+TpkvcTZFn9W+Z6nEGGmDZ6j/re+CuSuXbNDDvp5542wrWS8jz5Fg+f9Ek4lDH3BneA9sCm5cNmbiDYEyWGvTjKFH8Ltth31zf/G8trJWL/Dx8cfBWu/9eVJuWy7A8+MN5iYaUvddEkFZUk2W/Ncbx/H7GCAaVQRoxeb7QVtbexBm+wwXaV6jaJbH7LPOhsz7TPAW9tIydjHvRNQkTueROMziFw+ijhw4A5WwuVOwOyQwNX6DN09+w6H9iXBxN0AxhnVocmahKwto8GvIVbZI28Lxwi4nAGxc2heCtfFWTDOizv5bKoGHLuL39W2DN6rObRYiABLpvQNHXi9Hm4PHlNM4K/vOLSYxb6F7BUCno6owL1Gw+SzUVwv+zH8zJ28lXN+156JRwOnveDxhC0Jo+9F3q/lThh3As90PVTcjXpNK+uOJvF+60hFZ5YSZjnLaRBGdDESlHJZU2h6FGqapVlwHP4iEpIGl0OBsYV68NGTBqneTuZxTsYEIpUuPBroLuWRdaOU9tm4Sfv7Brl8+/uaiT62qw/UTCMSF8S4nMD2d0D3K1NBmETqEXaxJgim2JvXiRH6zm/aY2HxokvCoMzio88Biw3MbB5K7H2buRY/XAEgeHtHkvtgDcdsnReLohdXkkuH4D7eA6D8Z7VnBbfhHRzooGf/CfkaZvQ=
X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3094;
 31:CXgxICd1MNvKdm/wRcFv0fBt4CdW2Lguhw8W9TC6pxFA2ndguD20P7mgk1zJrqbhdspeEaplt610OSiLDsh7EapxCqmWyaOYltFmQ+dAW/gSMVvPEb0T31af2lec28faHnG/CojnS+WxyfrEHd1fhuhQhdGT8jpEMmQ3GdqoQv17aAZdyuFZj/dGEveHKsINMtKtknSIwRog2sdlk1oF+lvw4RD4ntaH6k/MCkn+DkxAjLsbfqPA4L4ktGqjuenVdvLVbqT3URQJ/XBEN6C2D6F5CE6em13+er88PCNI4Q7Xl1WEI93gA5nuPyFDxKzoAKwpbc9IJM87sybH8LP0mIH/YJC5vpA/5QW33OP/7v/wrA8szBUw4/t18LcbMDa8LLceuifbaZJKyx4seGjuocMcnkG0uYH4y2pyztC2rgFGRpzCekKUK0DvA2hTiGRe9ULV4eWsMSADR/b/ZjF2M0R7sOJCrHvNNnyIsrfUFqTZ1iQSE7Yv/62wcTI48wLn79DO+ZmyLR1kIO4ItUuiAHm4vygWRiBX/dBRvjo4LFBq27BrQJ+cpP2pY/fzV2Rxt8XyCuDmss37U2uF4jrtgV1/QbYWQkppTLcIc1HzTrN3CVd4V7gChQyx8rPcuXb2rupfHctToirtNj8BcSNZrhztbrHZLyuARjBCSRaJmfE=
X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3094;
 20:nnKNG9vXXeu9cY9Ap+cyyukvDanwJNWetPO0Mb3ss6sRu+YeDDC2yYTuE5Jk4Zhj2/dXCgu3wtGjwgrCSXHHxZ/l/AU++oEB7qc5Ie17FK//YXd1zr8SITk2+uVyQ98FVrkMQERAc+gGlK+w3TNLJr6BRxjcAsr+UBe9racVnsbd6W5f4Q4m6vbiZxJ2jfwI8vaq+DBgmBT4gl/7PQ9oDHtvHyz7juiCeH+87mxZGgLmyvl5EC+ImjCUH5nf/msCVWaqNtyhMJjJTSl2DBVUtnx1twy4q5mZ4f9o5YjjCenKglXhk5V26rMZ1cslfl3LpiqMMHa97/JfzzeRqxAgV9TB5cWZUze+Bh7PkinMuBGhAWdi47OUdBrrWkPQD4gnm3DCCgyPVDA1vKIz6qgLw3VjXr7VkJf1vGI8vQM7VKoUfdTY+dtX7q0fE3ZgdCCKSo9lP+cF/nTW1EX9ehnUto2urJICwcjQBDrzadS97UOSg6TIAaMRrlLe3KaL+pVrxtUlj6ZxamZvPpIR8ygOUrdA4SjHQS+JLLJfvSmXwOY9rDTw4PGXzz6jMEZrs4PUNZp2M93IFXIwjh7BGAb+tvMcpatXlHHwabShj+gPAN0=
X-Microsoft-Antispam-PRVS: <CY4PR07MB30941037320780CC21532570EAAE0@CY4PR07MB3094.namprd07.prod.outlook.com>
X-Exchange-Antispam-Report-Test: UriScan:(236129657087228)(278021516957215)(247924648384137); 
X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0;
 RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(2017060910075)(5005006)(8121501046)(100000703101)(100105400095)(3002001)(10201501046)(93006095)(6041248)(20161123560025)(20161123558100)(20161123564025)(20161123555025)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(100000704101)(100105200095)(100000705101)(100105500095);
 SRVR:CY4PR07MB3094; BCL:0; PCL:0;
 RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);
 SRVR:CY4PR07MB3094; 
X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY4PR07MB3094;
 4:db6Gb2qkC5TN0FeZrtvolHLNa+xv1SyiGU3tiZknPi?=
 =?us-ascii?Q?oyXEiYuSsW7KL58tSgg7URd3OCizVujaTHC1ksY85HFhG3GtSI1jHDE1egQo?=
 =?us-ascii?Q?pHXs7kY0mWBAp1PgLKaPyA+xqwWSMUCjevPERIotdP1d4LUAKp5rV0bzzvlp?=
 =?us-ascii?Q?ncadz5twU1hUmrlEKFYIzAaNhIF7gtwHzV+Jd2U5qhVR2QtzPDG856WmehKA?=
 =?us-ascii?Q?JFAQdbECYZRZnYuyHhZ6FAK97GwIPPXLpXyt4QPVyEHwexNcm6qthDlnx7MN?=
 =?us-ascii?Q?gV1ZmPs0jkjC8/3wXk4UsvAoUtFWBu+8T0BT0Z57qWNEUoTH8tRAKFqRsMZr?=
 =?us-ascii?Q?teYFwQus91+nxHQlQcDPRQcLpvhLPIUwf1b4SgWCjV8Br49ochw4oKdFjqsP?=
 =?us-ascii?Q?qFfV32MyiQSSoG9PSl3W1l4qo7ZeYZYa/tiyg3aw/rNFlDmFkyVna1xKLRXL?=
 =?us-ascii?Q?j7Ro/N8cofXadVDsQefCIoKz6NQ8QZilLStfsg6QDfGDHGg9cI7LMMqAp8Ca?=
 =?us-ascii?Q?BrOBERVORzOPYyZxlRdZaqCDOgHKnwoybTQ9Sisehg+F+1JNguKH7jYKHrou?=
 =?us-ascii?Q?k1m51apeyKHFNp7yApFVUS+zatje6X+ghwzQhLrRJ6+HeyLmKT17iVO5i+Gj?=
 =?us-ascii?Q?5zfnDP56UBZOuOHstzXYUfu1AWKFUrZC8JsJvii6DkZV1VUttnkwAQXhzZmc?=
 =?us-ascii?Q?scL4B6iktJDLWNWV1ZGXOC0zadifUu1KsNyCq7q944r91bHTAsl6LbAmDCFQ?=
 =?us-ascii?Q?pKV4MUObysrUcjOeU/xEJYDTvcv+9RcRHZZLn319ne7EcHlrofOYc3mUN2no?=
 =?us-ascii?Q?TWIWShWI7z+1Lng1OAqtnP4lYU3oMOsuCFqxEUaVhokurlno8XHjtr2iVGbH?=
 =?us-ascii?Q?3n/IuCDTF1eOOz9mB4HNu9S749/aPJOaZIsG4bBn+kfGS4b0+yYZkqSeLIiZ?=
 =?us-ascii?Q?bA1OBib37l/FvVATXzWGJes4sgg20uJj24hrMr1r1siuGbcAIeyNlHvEQabl?=
 =?us-ascii?Q?OHWbJxVoI/49UmAQjFx0FpLrWC1O9nSEKytmkPGgzolrq8aBFSfPUct/SHCA?=
 =?us-ascii?Q?CdxMbKgr02ouQ53f3SEJ8ef2LZRjsGHrqMOirST6GHAwJuZOwMhdUL/C/Teb?=
 =?us-ascii?Q?BTBr7j7WcOAv5DmAfA+viWRW8CYGiVIV5wsZNAi+tX6FY3YDG783GVMZsJSi?=
 =?us-ascii?Q?2CuYNCmIKXR/VsHD3nxK2YkNtGpE1dGFazJ0f6KE9eL8ZikjiYAfCcNQa8sW?=
 =?us-ascii?Q?gW6+7WCRzBm2n91kn27uGnDGH/ozf1TH2QJTQH?=
X-Forefront-PRVS: 0365C0E14B
X-Forefront-Antispam-Report: SFV:NSPM;
 SFS:(10009020)(4630300001)(7370300001)(6069001)(6009001)(39850400002)(39450400003)(39400400002)(39410400002)(42882006)(2950100002)(6666003)(5003940100001)(36756003)(50466002)(50226002)(2906002)(5660300001)(8656002)(6306002)(6512007)(7416002)(7350300001)(189998001)(6486002)(6116002)(3846002)(305945005)(7736002)(1076002)(4326008)(5890100001)(33646002)(53936002)(42186005)(107886003)(110136004)(38730400002)(478600001)(5009440100003)(81166006)(72206003)(66066001)(76176999)(8676002)(25786009)(966005)(47776003)(50986999);
 DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR07MB3094; H:localhost.localdomain; FPR:;
 SPF:None; MLV:sfv; LANG:en; 
X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY4PR07MB3094;
 23:vNzYQT2OUGAqgkjQJsyO77bbiKEphhdhMs3uI2e3d?=
 =?us-ascii?Q?vtvP35fiFAswNyIzBOmVYRA+se1hBPt9oMtTPzSNY0MVpPe+YmJdBZCw4KiC?=
 =?us-ascii?Q?r31Q3tXKz5SUnUGTXtz5U0XGVovZ1X+ZwkJRgJ824BKv9ydOjmgVFWvvFOSJ?=
 =?us-ascii?Q?M47yNFIrCBYh4scwdmGJxAX2t21jz648TAc/NgWbEDekBuG0PUkJKlQrgDx6?=
 =?us-ascii?Q?1W5RglOTVfXR5hO5sDZuwQ5xaSCz1wMMjfoIPUS0bcA95mKGMLkI+7qb3AFB?=
 =?us-ascii?Q?FJSJmdCZl6Wt74nyPPIBDeKxGYvkZ8tvpzCF7HZPHhAoexl65hVDy2esR1V6?=
 =?us-ascii?Q?nqd/N1cH3tVjPkH7C7WsQmN9AdGhz2nnDLtpYXMOrLiXgBabftSsKwJEVIo7?=
 =?us-ascii?Q?/9+gmA3n3jWEzi8U2WE1Z2uy24iPI2Uhv9VkilgD7mWLA5C9VvCFPyj1zuU1?=
 =?us-ascii?Q?SHOsAjInxr/+iFUJwT/rhYwHsXbf5WzfLcoDVkeGKnAqBUZwWnYXNZ+o9ksP?=
 =?us-ascii?Q?LUHuiAQXIiu4/yWym0FSG+aF8lNzc2fLhh2pDQNTD8RL6TqCZQNOSiaSTZ8v?=
 =?us-ascii?Q?/f/cqr4SE2J1MbaojOV3M9IXcB2HiLNNJfkonO5VtToPNjIW91yzCnHnOes6?=
 =?us-ascii?Q?KoNgS5JXXru7dty+JYUCt6GUl9Oj8w3GWGT5cYBzUqWl2g6TxzVlvXOSPyJT?=
 =?us-ascii?Q?qRn6pd8fDQ6i3idI8r2sFSCDoa/21jGZGrRSgpoP24T2vBeJ3RBo8uz7dJju?=
 =?us-ascii?Q?arBJDftuU3OFvO7LU3ZHsozfkjksDYeu37g62jOvxU9s7BU9TfIl64hL6Abs?=
 =?us-ascii?Q?5ZupYEoVqATuus65lE/QBot8rJK1oLb11hA7H5YBTB9HHM6dT+yzkialKsRH?=
 =?us-ascii?Q?TTdcxlQAyav7YZW5cInxby6EnmXdjnnWcfIBGkFakUDAGhMh2n50k48NJMGc?=
 =?us-ascii?Q?o3185eiYvmpfnsz0btAMx0k4+Ehb/FeUZwCALz4ioOSFISQjOTRcMIp20fUV?=
 =?us-ascii?Q?o8yqcx4XkFy7MhY8XUlAzF/s1e0FcfQcxTPdnjoJsYu2chD+XaHE4cYx0sZK?=
 =?us-ascii?Q?xcnsIDHd5WJ96pcyBLbppTcthf0pO9R3knMb447ZsCeHKPhc4rMxSNR97gYd?=
 =?us-ascii?Q?w4TiSrPTdFJVyMVXBilXcWumNy501cGIOmDlW5Ie8gdRlQBg0BjRsIdAmgtF?=
 =?us-ascii?Q?zM8BCiX1GJcNLVvOuvKfI+3FQMLVHokpinQ?=
X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY4PR07MB3094;
 6:kXODyaZ9LOjn+BD1Av/4YBHJJPbthhnKnbWljsAOKG?=
 =?us-ascii?Q?qKW7u//8JUrG3jChIoD3Z0x+AbAlYoW0KomeiC5Ku1LRNEJTovYKkYCx0OY2?=
 =?us-ascii?Q?LniVITdLFG2XCeU0YOch5OY6ENP4wbDqRDEFuC41UtsEgmAQFmdxmM9JsIqV?=
 =?us-ascii?Q?+yGAw0Kw/Gr8zpOvnvEXbz+oDvb1IxY7gC5bcoIGraEMyH2h/crJqF56xWnv?=
 =?us-ascii?Q?CLQ2L7cEPQzkq4KQag8/hwpR/7gZGIffxNfQFgfJmB7X/HzWPCdl16PZD3hB?=
 =?us-ascii?Q?c2W/7ecORi8s5YlBty6gqeJxEw4GxLs1hi/n6V6KeiodZet8Bfc2WPtV4nVC?=
 =?us-ascii?Q?fuxnGRh4ZP0d75pYRsZDf95RWW5ue51EstZZSt3DvaWDQCBUOuhHLyrSkmPK?=
 =?us-ascii?Q?DX8IzDlhB+M8VaETvGcKdTyXRzAInmLJkIGmoGNPrMcNJj+iYDHttO3aZ/MQ?=
 =?us-ascii?Q?b9+2aY5ur4Z76qRTpoIuRKVq9QvOBoXXrO2SMYSlmazpkJpwu11sSg4OH9w6?=
 =?us-ascii?Q?rgIQUrN41fLeqmh9n5WhzXrc27+QsPf6S0MNcbHdD5x+ZsL9tvNpU0QLBwLt?=
 =?us-ascii?Q?K9vGpoY6ADVExfH5i7Gz5ExhJLQ/Fqcu2TDMw4HgjzLGevGT98Pe4vxcMD0O?=
 =?us-ascii?Q?/ck9pvFpL+pU7BP8U04Q6+Crd/5m4ehbpKL5epa1WXdezYPxisxdNsrOwBHx?=
 =?us-ascii?Q?+ODrwdA0fQe7zcnr1S+0TLOLaeCv3hVKJJHo1tiioXV2tHap+ynISsei8l5w?=
 =?us-ascii?Q?JfGFbmbfpq50VAxdgHCiBwMYI/wKEA0GJ7y/lckBDmiNVlXvlNBgivQHkSuU?=
 =?us-ascii?Q?amU9ReBYmVvWsh9BbvNz/sKJ6JJAxebcfcBieQGyV1tIPBiKw0Mzw/1Wyklc?=
 =?us-ascii?Q?hTz3AodKv2v6I/bLsoQ+615zlRx0qUZg/bxr5xZ27TLbVWUotdHUlurDI6MC?=
 =?us-ascii?Q?DgYinCm7OHweEw4e4B8rlyCuOJvn725WfQ+Qkr2Y6AuXR9roxh2TWmKjeGLi?=
 =?us-ascii?Q?E=3D?=
X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3094;
 5:27IqP9ih5B1/01SWx5EM8TTWWRfg8jeoCClnKI7lvNKKU2qICR7KGM8R0HCPewtwSxE/SWb7W5KeLGm44bQ06EuhlKGdHgTzVxLIFVWJA/2WBRZDWLjUtjnCAsUqJ92fkf4/Xc/Y+0A9OP4H9TiM3nTv1mNqsKKF6avhZrv/rbbtG/reozRi0O5MuYZCBglDqFDSs4z26eD4hvnqUQJJHc5PrAZSsFHQKur15uRVtMBhLMsq4lyCeB1I3rcoJmydd1oELZJ/H3WNxsU6I5Vfu0x0ybFZciup3bsEDu6lTxKJYTadiqXidxblICt1c+F2OSbgwKEbB2jGJlUj7kF8+NgCalNzGaEfhjjiPUwh1Bwr6HLdS3I+GVfiDlrAWFOapWXKHnaSlbXc5nG3a5ZvPmDvw1cOu4aVlsBqqLc9K/iBDWWT6caCtxQbplvf5SeT6Qes2OnCLS0Qclc4zxvVkV/jcVGSjLs6lrwTXpPoik2Na+myJFVmMk27ZSAPBuR7;
 24:NJkfzW3sNuGFJJ0DHHLyO8Jk/kcir6NyEfu/kOy3SB5l5hMUEF8eXeYATtS+xmP0VQMaUokGfVOYpyOZXNt875z7jWOXjiyyXQzVmDssGoM=
SpamDiagnosticOutput: 1:99
SpamDiagnosticMetadata: NSPM
X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3094;
 7:teCJ/r+fjDwNo6RHnVt1ZmWu564fCbpsVcBCi6OQ2PtjbcgmyEYhFRfSgS3uE0PfevR09OFAPx6lUxQEL9O4dVOXtsQEIA9xSenI+b6sWKzOqiydE3Eru1fuuoamlIWTmN96jdNXJR4mEmhpyksAwHlzx3lFSVvaReOdNOT2uJgkv0NkoiKKUdjtITHiI3UwhLmcBrVD3zuabGr1oJUjelp12bf/ntqNgwzL0M49tiH59pc6iugthVrdb+Fwi4337KLvGsqnyBnEc6cfZawbb3UXJhKKGZ66Oq3klS+8qxDR58ilB0GPxiwQKu1K8eztbqh2zzanowfOaaLngNVaV0qg6enY7W6zaizln2pMiSWM+vYZhHNq/aE1mNQ7futbZSr2dlu1HaK3fs+6pfw3vP1NbmSfTqXDxyQcYJjYKSninNNxhaeMiBfpCyvuZYL+Ce2/X6TBJ5ZwHVhYl8xJXKEBuzCv4S4sGj6W2mORmnCWzB23I265S/DrqPvFw/495bu+O6iaY0kO2hWvj4Q+xZ8EbslTsyCKfqzjZhCpEjjqxxhHDw+tL+5VRW3c/6yhRVVY1+QyP7nQquzrDLSNSCxYkC7rGhRX1DoYssjsWoHsjNCAu1eP8j+HoJ7fSZNH8mKureLw7RzjLqFO9FgBN31eX+BtL/HPpJ+dUIhG6kN3OEiXfYwJdpR+PrKsEVa0m495nBZ3bOKmX37dzyXHEQX8J4GHI7QyTz+6ZFaPhqTHe0z4NclMWfDitLBKQv/k9/lWtr2P78Do4g+HIXb2y4IF/qfFnAqAR0ba0FgVon4=
X-OriginatorOrg: caviumnetworks.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Jul 2017 06:17:38.4297 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR07MB3094
Subject: [dpdk-dev] [PATCH v3 04/11] linuxapp/eal_pci: get iommu class
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <http://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <http://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Tue, 11 Jul 2017 06:17:45 -0000

Get iommu class of PCI device on the bus and returns preferred iova
mapping mode for that bus.

Algorithm for iova scheme selection for PCI bus:
0. Look for device attached to vfio kdrv and has .drv_flag set
to RTE_PCI_DRV_NEED_IOVA_VA.
1. Look for any device attached to UIO class of driver.
2. Check for vfio-noiommu mode enabled.

If 1) & 2) is false and 0) is true then select
mapping scheme as iova=va. Otherwise use default
mapping scheme (iova_pa).

Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
---
v1 --> v2:
- Removed Linux version check in vfio_noiommu func. Refer [1].
- Extending autodetction logic for _iommu_class.
Refer [2].

[1] https://www.mail-archive.com/dev@dpdk.org/msg70108.html
[2] https://www.mail-archive.com/dev@dpdk.org/msg70279.html

 lib/librte_eal/linuxapp/eal/eal_pci.c           | 66 +++++++++++++++++++++++++
 lib/librte_eal/linuxapp/eal/eal_vfio.c          | 19 +++++++
 lib/librte_eal/linuxapp/eal/eal_vfio.h          |  4 ++
 lib/librte_eal/linuxapp/eal/rte_eal_version.map |  1 +
 4 files changed, 90 insertions(+)

diff --git a/lib/librte_eal/linuxapp/eal/eal_pci.c b/lib/librte_eal/linuxapp/eal/eal_pci.c
index 7d9e1a99b..573caa000 100644
--- a/lib/librte_eal/linuxapp/eal/eal_pci.c
+++ b/lib/librte_eal/linuxapp/eal/eal_pci.c
@@ -45,6 +45,7 @@
 #include "eal_filesystem.h"
 #include "eal_private.h"
 #include "eal_pci_init.h"
+#include "eal_vfio.h"
 
 /**
  * @file
@@ -488,6 +489,71 @@ rte_pci_scan(void)
 	return -1;
 }
 
+/*
+ * Any one of the device bound to uio
+ */
+static inline int
+pci_device_bound_uio(void)
+{
+	struct rte_pci_device *dev = NULL;
+
+	FOREACH_DEVICE_ON_PCIBUS(dev) {
+		if (dev->kdrv == RTE_KDRV_IGB_UIO ||
+		   dev->kdrv == RTE_KDRV_UIO_GENERIC) {
+			return 1;
+		}
+	}
+	return 0;
+}
+
+/*
+ * Any one of the device has iova as va
+ */
+static inline int
+pci_device_has_iova_va(void)
+{
+	struct rte_pci_device *dev = NULL;
+	struct rte_pci_driver *drv = NULL;
+
+	FOREACH_DRIVER_ON_PCIBUS(drv) {
+		if (drv && drv->drv_flags & RTE_PCI_DRV_NEED_IOVA_VA) {
+			FOREACH_DEVICE_ON_PCIBUS(dev) {
+				if (dev->kdrv == RTE_KDRV_VFIO &&
+				    rte_pci_match(drv, dev))
+					return 1;
+			}
+		}
+	}
+	return 0;
+}
+
+/*
+ * Get iommu class of PCI devices on the bus.
+ */
+enum rte_iova_mode
+rte_pci_get_iommu_class(void)
+{
+	bool is_vfio_noiommu_enabled;
+	bool has_iova_va;
+	bool is_bound_uio;
+
+	has_iova_va = pci_device_has_iova_va();
+	is_bound_uio = pci_device_bound_uio();
+	is_vfio_noiommu_enabled = vfio_noiommu_is_enabled() == 1 ? 1 : 0;
+
+	if (has_iova_va && !is_bound_uio && !is_vfio_noiommu_enabled)
+		return RTE_IOVA_VA;
+
+	if (has_iova_va) {
+		if (is_vfio_noiommu_enabled)
+			RTE_LOG(WARNING, EAL, "vfio-noiommu mode configured\n");
+		if (is_bound_uio)
+			RTE_LOG(WARNING, EAL, "Some device attached to UIO\n");
+	}
+
+	return RTE_IOVA_PA;
+}
+
 /* Read PCI config space. */
 int rte_pci_read_config(const struct rte_pci_device *device,
 		void *buf, size_t len, off_t offset)
diff --git a/lib/librte_eal/linuxapp/eal/eal_vfio.c b/lib/librte_eal/linuxapp/eal/eal_vfio.c
index 946df7e31..c8a97b7e7 100644
--- a/lib/librte_eal/linuxapp/eal/eal_vfio.c
+++ b/lib/librte_eal/linuxapp/eal/eal_vfio.c
@@ -816,4 +816,23 @@ vfio_noiommu_dma_map(int __rte_unused vfio_container_fd)
 	return 0;
 }
 
+int
+vfio_noiommu_is_enabled(void)
+{
+	int fd, ret, cnt __rte_unused;
+	char c;
+
+	ret = -1;
+	fd = open(VFIO_NOIOMMU_MODE, O_RDONLY);
+	if (fd < 0)
+		return -1;
+
+	cnt = read(fd, &c, 1);
+	if (c == 'Y')
+		ret = 1;
+
+	close(fd);
+	return ret;
+}
+
 #endif
diff --git a/lib/librte_eal/linuxapp/eal/eal_vfio.h b/lib/librte_eal/linuxapp/eal/eal_vfio.h
index 5ff63e5d7..26ea8e119 100644
--- a/lib/librte_eal/linuxapp/eal/eal_vfio.h
+++ b/lib/librte_eal/linuxapp/eal/eal_vfio.h
@@ -150,6 +150,8 @@ struct vfio_config {
 #define VFIO_NOIOMMU_GROUP_FMT "/dev/vfio/noiommu-%u"
 #define VFIO_GET_REGION_ADDR(x) ((uint64_t) x << 40ULL)
 #define VFIO_GET_REGION_IDX(x) (x >> 40)
+#define VFIO_NOIOMMU_MODE      \
+	"/sys/module/vfio/parameters/enable_unsafe_noiommu_mode"
 
 /* DMA mapping function prototype.
  * Takes VFIO container fd as a parameter.
@@ -210,6 +212,8 @@ int pci_vfio_is_enabled(void);
 
 int vfio_mp_sync_setup(void);
 
+int vfio_noiommu_is_enabled(void);
+
 #define SOCKET_REQ_CONTAINER 0x100
 #define SOCKET_REQ_GROUP 0x200
 #define SOCKET_CLR_GROUP 0x300
diff --git a/lib/librte_eal/linuxapp/eal/rte_eal_version.map b/lib/librte_eal/linuxapp/eal/rte_eal_version.map
index c91dd44c4..044f89c7c 100644
--- a/lib/librte_eal/linuxapp/eal/rte_eal_version.map
+++ b/lib/librte_eal/linuxapp/eal/rte_eal_version.map
@@ -206,6 +206,7 @@ DPDK_17.08 {
 	rte_bus_find_by_device;
 	rte_bus_find_by_name;
 	rte_pci_match;
+	rte_pci_get_iommu_class;
 
 } DPDK_17.05;
 
-- 
2.13.0