From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <Santosh.Shukla@cavium.com>
Received: from NAM03-DM3-obe.outbound.protection.outlook.com
 (mail-dm3nam03on0044.outbound.protection.outlook.com [104.47.41.44])
 by dpdk.org (Postfix) with ESMTP id 9E5D629D9
 for <dev@dpdk.org>; Fri, 14 Jul 2017 10:46:56 +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=jai0/LdlE0YcQe36duFOtPvM/4lxYYERrmRmvGmipu4=;
 b=MnXgAwnKKfSjLwTrjUhA6hI8MZWZA4vHU6aVq5DbEDkqWiSd8OEBhXFRHJaHLGvb8OrJwszQJunx+KGMpdjJg8/8e1Vp6PWlXA/3k5BTTAkQLPlsGAr8PEUMuZQYfobBjG4EvX6JDGWbStnmf5cAzOctr3eeq2su4axfYejCM3c=
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
 DM5PR07MB3100.namprd07.prod.outlook.com (10.172.85.10) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id
 15.1.1261.13; Fri, 14 Jul 2017 08:46:51 +0000
To: Hemant Agrawal <hemant.agrawal@nxp.com>, thomas@monjalon.net, dev@dpdk.org
References: <20170710114235.18970-1-santosh.shukla@caviumnetworks.com>
 <20170711061631.5018-1-santosh.shukla@caviumnetworks.com>
 <20170711061631.5018-5-santosh.shukla@caviumnetworks.com>
 <f3b20de9-c23b-2f87-af10-d8babed1e894@nxp.com>
 <29242bd6-993d-44a3-f71f-64228004edf1@caviumnetworks.com>
 <de98822f-2dea-4d57-ab91-61203501b3fe@nxp.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 <santosh.shukla@caviumnetworks.com>
Message-ID: <d093f1c4-251e-960e-2d9f-5ea5f4b24cf3@caviumnetworks.com>
Date: Fri, 14 Jul 2017 14:16:35 +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: <de98822f-2dea-4d57-ab91-61203501b3fe@nxp.com>
Content-Type: text/plain; charset=windows-1252
Content-Transfer-Encoding: 7bit
X-Originating-IP: [223.180.9.21]
X-ClientProxiedBy: BM1PR01CA0101.INDPRD01.PROD.OUTLOOK.COM (10.174.208.17) To
 DM5PR07MB3100.namprd07.prod.outlook.com (10.172.85.10)
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: e434588e-8b68-43d3-fca5-08d4ca94e1bc
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:DM5PR07MB3100; 
X-Microsoft-Exchange-Diagnostics: 1; DM5PR07MB3100;
 3:0aTeO2P5VQKtmE0K6nDXRxwmSC1HxV6QsGg/mzsG1UNEQ9/mECM+I5rFgGXIfFK7cRq6dV33KZqLiKZYCDNLNKsbmb2zYO1LhEYLCL7eYgd+TfLRLsQNn22YzupL3Va0BQuXQW87CwRSbkxLIkkt3xhAfEE3ntCdD9HLaxVbGLdBG9OVd+GSYIZinLRjw2vXIl81WWIaIqjEsDAkot4tE5SR44wwq9tQNw+vss4YT5IhlrxJ6kn4egiPioS2KmuyWdL3n1o8Sea4CdeP/hsYAFKTjj8eTwEH4qOBVFM0fbwxi0s9QydoM9Nrr5wq0BzlHLSDreAj7ieMfHaMpgQL7P0wPUcbTB9ZsiFl7p+ZXQXRkQtsmsbzKN3t+xe9DCFHaO+SfC9njc9BpVofMIkPBZu1wNnDVXEe03M5nGhBqWMtQgCqEAu4FIWV9P17guAZ5U3e11Eg2AIP5tfFrzesSuRbNXVvjxaj9icI/07j3NgtAeNAZ6/4EeyVkSuZKfTimfIHmzZWawOzR+NsS2maGpV4IXOatrNAdk3IGkcrdO6N0nffHeXHrI5UrjRljt8EMEawzTS9/HLrrvQaKAMzqrZkb8xYDuqNESTKf5ECl+X/hPzJGU5cTrlO5BxuLfwj7wHuIACy5IE+p8cTt5fFU18YTbCQz6UklYmO7MJQlwgvb/7Qzu5iocJSFxQpfoZI2QALR400KY3ou0pzdwyQJxkHrnNFb9HWrxZBXnq8Xa4=
X-MS-TrafficTypeDiagnostic: DM5PR07MB3100:
X-Microsoft-Exchange-Diagnostics: 1; DM5PR07MB3100;
 25:FS9YU9FrINmyn/aVJQVLdUVJDjTNPmerC/cVSMAeiwdf66XuDhuB3P+h6dxHPmV6cp9qObNSodjPDIzjsIAaFG0aig5i5UwQ5dTMUVXblnN7sp5dGhTMksbfl2WsCnwzNhPvwP+lQ1gGJMnD983TraGSmgLJ9fdFcdpNSuyn5Dtv+v5W4P44ZGgFZ3G/iLO2s8jPjp7Ii2nzsyqcLIUGAWgwPSe68y50yrUweypFK/cjOQVfwm0ZfGd0lRdR9OvJCm8i9XFEgBPbHV6ymjlKIMpWbh5PavULleFCvnhIyVb32xJO6mWBBbyztVrmwZ8eiXt+3Nidq9lEr5JUmci0m2MCa3eLh6xrRX5InUkb4t6uYD3V0v2hCK0pLVyorMzZXxB7/5LNkNJ+qvhFYw68w1ousIYn3b41mKcmymShCnfe+gtj0lE/xbS5DvBIhnzM7dy09eVIdwyIPXlPVZ5VPb3lNlp0oQVNxq93BKmmTHFxWpK6xTyIM5uYJmJ+MSj71bEyxhRZjFfbML53XEE9geKFivXhUW97hNiFrL5qnfUSnLqojlTZnOF17lXJ3uHvrbTsOsevfEXefteTb4Y9tMj8MK8hWcNLXZgj68v6UXrz+UiJ7E3KTW2DAmAl27LDZ7WBGIvE6YSlyFBssizvkolOw4tOPF5pzEuYkqrpCiuhYw5MwJnqBTLZJwtbBlyHu8QkrsEBbVcuOWiqTssft1oKLq52de22A+9ZeJx5CZwjP1xCEV5atrruDVLmV3LzoXL+1Zgh9Rtmt5KSlg6ZIDFc9C/u5jSTG22vWVFCfB7OWwG47OKnqvZWj2LTWSQG6q1GrUzHg6U+ZFfTEm41zoc8GxOSAx2eRMiA/jP1TFloDI6INwWzxCNg2UHHlX5V3xgrVrJkot2NnzJu8rlqbunwZMlq1kxfzqDZV3hHUlE=
X-Microsoft-Exchange-Diagnostics: 1; DM5PR07MB3100;
 31:fCtrS8RIMsDz9bee2J9Vnp9W94HBgY5vgpgKfQngMHv0U3x5+F1/Vy1/zjjmtz9a0QYfppK5fAXbWCKrSY7DP7an7yPtJAS65Qexmx5KOlKq7U4xn1QemdipSyXVLDlAWGGnqpKpCFfgj/Ag5PxBW/VqHBHxONX1sSt/IbhGgIc8SOJl6u0EmYacBqJsTo0M+NMDfRFJ+ye99mkpR34mAoIsoISEaBpT+xdPiB8HTBQqBMnv/OCpdRxXZxAlFtH38+mbFzMjNM/es94Wy1WhdjR/4/gLBdXL70ujIvIm2VUDLVcU6tgiR3On73n3Y2cAx6V88ye4HZgMr8VSICVRNwq1dpFfuIdQQ/iE+/XNdWCBvD2WPQSaVg+iZXqyAxYxTpA4xuI2b4eBEzaxk7P5yjzhBwhmOOAFD6Z3N3aOOqoqKWS5F2Mf071UKnneQgl9KGwxizHIorcZoEv62YYCgw9Cqjlpr0WzkxtTtW8iQqRV+K5QdSjY12M+rbsPOaXCM4TFE3wQeXYtMpXfTT6UQZnUEKWVqFYr9aw0vSvFJnyd0F2gqil8tmTfpfVHGGBvEeKjatTL2EeEhaDF4iAJ2HKImyihU2U+0UBeiC4gR2/KrcR9n0uf/EqbL3Ij7f47ZWz8BOo1xjYG+vcK1GyMcFuY+tBwTPfwpvffQp4zt6s=
X-Microsoft-Exchange-Diagnostics: 1; DM5PR07MB3100;
 20:AvigD8zHmuVhdT9yVMKmod2zRivG63PGqug6QVTIrryzeEA8TbtoPomiO0XIUOeTAtOJ9rcvY1x9GqmtpY3kqCTswby4uktkQjfstgF4EWZy69eDrJdNdFgvg8ls8V/2k/bfRXCkLNLrpBiIihoknYrW8W54YGWWzxOfYRET5Q8RYJsbetXggZL/liYwLtAY7HcdYj2PHhmPREuearpnCDqeGyl3RN5zfF/POD2xPjxxkij4H02AGYMyXHNUqiLjvMELeaDIlMX5wD8M02Z2ae9IHbjLXIXb0kCKtTtUiR9ZRkBxPeBtWrH4/MihyvBFwQ8WOIyHJvAr37maseVEMxBWC8xPJDAiKledSriQN+Ly2+Zhh+nKH0kp6G6YaWT2C3vrp2fRN6GQNNUpzVQz/Uf8IrxyelYDtnIEFvK3MHSlQ3J907a3Zwf9oK2zNpTAmhd27y/f5rFq1JVdTeJjCQ32rgZbGmSdsM4z5Em7alCzOvrnQ8CuwRLK3HnJBy5Dk8wHCpm2doK5p4uFO4upz8tDu629lW0AnDsfWVneeaFdp5mnc48NUaFM/xzcE4hdAjeBlAtQ5l1DIqIPt4tWj29ODzoT7F2GUkZL5seCDaY=
X-Exchange-Antispam-Report-Test: UriScan:(236129657087228)(278021516957215)(247924648384137); 
X-Microsoft-Antispam-PRVS: <DM5PR07MB3100F70C53EC98D7FF05C600EAAD0@DM5PR07MB3100.namprd07.prod.outlook.com>
X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0;
 RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(5005006)(8121501046)(2017060910075)(100000703101)(100105400095)(93006095)(10201501046)(3002001)(6041248)(20161123562025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(20161123564025)(20161123560025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095);
 SRVR:DM5PR07MB3100; BCL:0; PCL:0;
 RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);
 SRVR:DM5PR07MB3100; 
X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1; DM5PR07MB3100;
 4:FKne+xnYXmIQu0mrzi21qTv/OfcjLLrC9sAq6W?=
 =?Windows-1252?Q?3YgOwt8/+BfEIyx2YWTa/YgsComt5gZNoHEkHvriGj4OZdeRSxOc/1FT?=
 =?Windows-1252?Q?YgZigCfxRKFnDeq4XYcdUyUCr+PdN0kyjWqqL7Sv+tMT5jS0es31Jznm?=
 =?Windows-1252?Q?voAar7Xe+pzLzYu2JXZc37rfA3t7aL7McoQ9o0+eRh7v0HOvde3Tieyt?=
 =?Windows-1252?Q?mz73h/faLIi1Ax0xQPXbKwAkFBX7YBFrMqZjql0KlNZ7EUTBgjtt2AY+?=
 =?Windows-1252?Q?8jpOIT+17knx2N5UiwyQ2k2uUeiKR8mrC7x+87PkzhpmhyTa0s/YfASY?=
 =?Windows-1252?Q?j4c61Er0gpEjRmm3f7tn+1H/k0DfwCUWARanuC8ywdhXSTWlyjBnlOEj?=
 =?Windows-1252?Q?YmBJroOfxyhay3Cdr+Dh8R7niwzMjmj8Ag3pRG+mEGkaBb0Q2HfwAd7X?=
 =?Windows-1252?Q?uRa+GP0JlajD8/goBloIN0JI32rGdvkPVausOXBZAwIV14P1eddY1L3V?=
 =?Windows-1252?Q?QxLJOgbCN4jHGZ5ow+y0YE8GB1XCafi6T7FNA9FBe2OS0mAZ1nPswRus?=
 =?Windows-1252?Q?v8AdtnAgVCzJaf0x2XRm8pe5D9wdS3TwCDGFb1S6bMSmKQtRaghDSpFe?=
 =?Windows-1252?Q?SCPKtIuHV/ceJkFM6pjKq+PXc5pRrgNyQSCQnxt2+JaaTFMXNYJX79sa?=
 =?Windows-1252?Q?1JFGaRBmM+v4F7RD/esu99wHhQicyBYdIjo2xTvTsqNXXkH0ZaOwfYOD?=
 =?Windows-1252?Q?bKIPB6P/DXwiaYjkIvOb94OeFSJTXfZrfiYWYIRG3wcj66DjtsyjAYVT?=
 =?Windows-1252?Q?XiZmVFoXAA/NX2NRX3jAx2wTrJvAxQ7pGqlnlvjAbvCF5OfvgAfncxfx?=
 =?Windows-1252?Q?ZwMY3BNiw6lPltBR7RebqdkSREdspJ+/R7OByoDtdTq/rXpA39NRaHAL?=
 =?Windows-1252?Q?pgNV3ryRWWJHwkpEzG45tiUvD0rhdbVd4S8x9pxibtO2CMAIrBubEIAh?=
 =?Windows-1252?Q?jVA/UYs1kJ4FZyF2Q85hqsJiJ+QgDDkhnNPpDJtzLMxxo9wLLcUJdKJQ?=
 =?Windows-1252?Q?7hbT28JznpMuAt04EEge8uNzzmFkN776aj+fJM7vwBhCI9LVAnnbP0kb?=
 =?Windows-1252?Q?tydyKTe3nHAZekFTOCsgihahBSrRmKVX6vTQ2v/Qnnk97x1tq5whol/B?=
 =?Windows-1252?Q?PxROySsGR2asW2Tjw4DxskuanBODK7evst+/CV1KM2t5J2S9w3fq/sdn?=
 =?Windows-1252?Q?V7zSwz6MvicXSvEVl9SxBDjyPnlMYhVTd4f2RibEocZhXWpUCmVihIEQ?=
 =?Windows-1252?Q?VHeq5NF2hteaE7cX4X/+XCs8oAzoMwco/4odHwa+EcrNTnIymekSul5K?=
 =?Windows-1252?Q?Z/z8jOtpDh?=
X-Forefront-PRVS: 0368E78B5B
X-Forefront-Antispam-Report: SFV:NSPM;
 SFS:(10009020)(4630300001)(7370300001)(6049001)(6009001)(39840400002)(39400400002)(39450400003)(39850400002)(39410400002)(377454003)(24454002)(6486002)(7736002)(50466002)(50986999)(478600001)(7416002)(31686004)(229853002)(77096006)(81166006)(2950100002)(5660300001)(72206003)(54356999)(66066001)(4326008)(76176999)(6666003)(33646002)(93886004)(5890100001)(966005)(8676002)(42186005)(64126003)(6116002)(42882006)(2906002)(3846002)(230700001)(53936002)(31696002)(83506001)(6306002)(86152003)(7350300001)(65826007)(53546010)(110136004)(117156002)(6246003)(25786009)(23746002)(8656002)(189998001)(4001350100001)(47776003)(36756003)(305945005)(38730400002);
 DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR07MB3100; H:[192.168.1.100]; FPR:;
 SPF:None; MLV:sfv; LANG:en; 
X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1; DM5PR07MB3100;
 23:i4ncY5Xdom1csR9kh3xzkLl8nJMoWd9ASUIOA?=
 =?Windows-1252?Q?0TN+GqD7MVGtJBTf5KKZO9fDeInyB9HFbnwH0nyfDjJmxyNkO67MSE7B?=
 =?Windows-1252?Q?H0p78oPKzGl7Om/iia8p3EkI+IKPRs986Pfg3d7tdZ+taHor4GzRNMAD?=
 =?Windows-1252?Q?UQ2a6TXYUI/aWqnurvv2+C4gkrj1HKrZEX+rlEGaDFBvgt9cQAZX8Ur+?=
 =?Windows-1252?Q?XPq/tCHtQbeb4HMP9584qAjz+0kmyQ7Sc3rGGiBwLEBXTz6I3Qdqmtji?=
 =?Windows-1252?Q?621kBkRgEAkDBa5t4t0deR+wOqCdZ/u1qlUc9f+GxcMwEobNVWWiDZpp?=
 =?Windows-1252?Q?Vcr1H2QSoiYok/oy5acGfvxwuL7TqS1ID+mk4fXDUKSJ/HXLp4agQPHt?=
 =?Windows-1252?Q?9TpIccpgrNFD3i+aUucUAg3hSWhRT0AZ5k9DNKY4fitIFi2b7zP2/ix5?=
 =?Windows-1252?Q?ABk1inxpMowiQILrEqgqsLLzGeKMkhN2vzimcLGrnXyxZJ098mLHzGUK?=
 =?Windows-1252?Q?dxui47cH3pW7KQnwRd64vPnyA1FEiSy6qtQAv4XwEjdF9GP7rtMfs1vU?=
 =?Windows-1252?Q?Jk+Su2tnn4zTvOUlVagEt8lLyJR4CqF+cu7NTDU4/CSQ6YzlujZDL1TK?=
 =?Windows-1252?Q?5zBrH+RVAF/jXxUvZ67WZiJz2/CsCVbv8LB3R7giMK3F8Fs2He7dfSBm?=
 =?Windows-1252?Q?EC/1YI6XA4dN5P1FThZGCcfi6TZNiR22yNzR77jWRsA7x476gD+GlvwX?=
 =?Windows-1252?Q?AIcL3i7zIp/dMDSeMNa2e3heRWfJSUwOwDo4lhxVib3wfL0yKzYT17jy?=
 =?Windows-1252?Q?tfbg3+JArWzXMNkidceDhEVmbinqRnDYumdSZv6OZp+eH5wnA1L7Ra2S?=
 =?Windows-1252?Q?cPInnOd4urnAxrrjAkLPaPFtkq1AZaOrZ2fYxPIPfXg3XA0K13Wifr5W?=
 =?Windows-1252?Q?yYl94M6YH0kHABW1D6FmHrBolmTis0FAvUGIVKmBkgMnEcjbaRYta9Je?=
 =?Windows-1252?Q?scJVW6swQ7Pe3F/f/jcbdP9O/wDiEigYWtZf/CLCm8RzWxV7DY+dpo3J?=
 =?Windows-1252?Q?QzgEtzv7S/I/G8A4II6LqV0yUHyjnQHMcbh1WwVajf1DSIVQuGixPPPJ?=
 =?Windows-1252?Q?rjRlzfjAfo6g/OHZwtsS2L7fsqe6Q9fnyRbKZBxKMMVROLOiQ2Zbphjp?=
 =?Windows-1252?Q?SJAlVL3o6oJYQQptEVQ54aysLXZq6TRPgSCatBBl7ADI1jZIyHcthkQG?=
 =?Windows-1252?Q?caiVVh7nA7zDqpdZmbNlzukM4wac74MNCgYkvFVA4VvDrBhdy7lWSpWv?=
 =?Windows-1252?Q?GWnmOxb5LQIptk4Tfvs0c3XmFu/XM7kxQ3+/EQau98cvvFRPXExcnjeW?=
 =?Windows-1252?Q?qsuGhdqlKulOPRSIQjXertg/lMc23JnzigGGAUX6NwMkMQrz/uZUumiT?=
 =?Windows-1252?Q?rWebcwgCXljc+8do9E1YE9UO3WDDLGQUroXgct4aV5x+y2DMLjD0veUY?=
 =?Windows-1252?Q?kVnyAOZZHWlJscQbzL1wN6DjXZfmZMxy4QS//cXU6XyrMJslxA1h6Pbt?=
 =?Windows-1252?Q?bwep6K8u8z9uA5E4zsSlATPQhUhpxyqp2MCRkNzWoOhg33yZtV6MjZN7?=
 =?Windows-1252?B?UT09?=
X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1; DM5PR07MB3100;
 6:Tw9+GM/UJwhV8hWMIZjPF3aCq2VeJDw7Kp+Nrt?=
 =?Windows-1252?Q?xZ7Q+8X4pN4mdtKOauwfRmL9xqDklNPd8x0uAbmac1Zw/w5N2fQXueuP?=
 =?Windows-1252?Q?Y/yaFDlUBH43vAIwm6gH4XCnmQsHMZWNRAJzjBz08fKnwN31EFzNR8jL?=
 =?Windows-1252?Q?eVmVtG9UfCEN/51fS2KBl9wgOP8JxQFcZ0xOWQjUq248chs4WPsVDqfG?=
 =?Windows-1252?Q?6wCV1DvQPc9DvmEBEZUCikTpKTlZPGr28rdrweE24rCxTK/Yrm8RzmAU?=
 =?Windows-1252?Q?m0aE+45wnBjLlmcUdKsfizLxoUuZ/YtiYwdj5AejU3i42IeS+lH2sUKY?=
 =?Windows-1252?Q?mBPsE3Hl6H5BySqL41Ds+xySUyN6/72Vd8bZym6Jm/hoPqK5JUiCfZ8A?=
 =?Windows-1252?Q?icDl5eZU/BwB4nz4bcGtWF5S0ca8AXO/ZrE835NVb8NTi1Y4m3M33bV6?=
 =?Windows-1252?Q?iJ3g1Y1SCmdviBV/ek0hS7ED9VouwnjKkBq7E8WKw3QSmxnyd9MBvDI0?=
 =?Windows-1252?Q?MOHjoNdMebty8JOvuPZWgfiK8UPebl07EOv+GzNKE8SHapLylrMUgtKJ?=
 =?Windows-1252?Q?kahpfDJ+/aV2RorWJXGwiyiIGKZSKJ3fowyYEOemHVHi9WiG6pS1cjPf?=
 =?Windows-1252?Q?RYXbCSlJ441GXSBagJ6V22gdh7NDYbinIN0fwgcxOXDUsveLepLl3TDS?=
 =?Windows-1252?Q?AXxRsRiigpIzxpEUlpjNj15wX8cfSqNz5PkiRExyRwsMV8EGuR1PQjjY?=
 =?Windows-1252?Q?hzA4IBcHM9kbiDRrGDsZuF8trubkCcRGpztIBr/B+270hllj4YGvPjfo?=
 =?Windows-1252?Q?qZ6+Icuj6pJ5d0YoBXL21ZJRlMGPfmrYe7UjiekeqGU4o7LLBg76kb7Q?=
 =?Windows-1252?Q?MZhLxZ4Jw7VqwwYPmadbHYrjVWCMmYZwmcmNm4Wo6hlSMeyvwnbLr1+o?=
 =?Windows-1252?Q?t+4mfjtbeTCK5wJRJRngwJjlTSW63xefr9grxCjf4UHQwbrO+lvF4S4Z?=
 =?Windows-1252?Q?yU3gWjGsgiQm6GildsMMUA3gzRp8WP3AVTovG6By/ch5OeLEQbFvhKWO?=
 =?Windows-1252?Q?8T0Vr6x6AiO+E=3D?=
X-Microsoft-Exchange-Diagnostics: 1; DM5PR07MB3100;
 5:qMOcbbPZyXchmlFMOd/MSSTBW+Dk+tGqKynlwv/qsFmfCU4Cg3XSfuD6bOnZuoOUdJFPllj9n9I0esM+VFCQcSO/UVq3u11pw+DmBzgE9CItgctiKq7e1DDCUEIc91y/fjNYRT+O65lk70OVpeRRyTiL0w3QRs/80WprAoMm3twno2Z2JNNgNDdKqe622qbC/m0uIG/8vL2J5ZMOr7RUE1gRNuJhLmWHt4ApA36eyxhniPFLKfEFrJ1jQ5DjyI/1XnUwI5f9v0Q0D+Sg5RmhJnUmvMlWSj6ZsgHHtMI9MKFZLBarhtVCqRCry+7VPulnLlmfCE77mHZ3I7MfBPa01EyxTj6joI7ZyYJyPLnzAGIvtRzMYycZ4dCdvYxo4xHghD4Xto3L+VL+vc48MnaYwBBLcr+nivVrvTJSR4Ry1yvRF+ay0ZH0TKGeXzUifx/PtGTBinV97qjTlv51x3t4CXqCOIAgRhGN42u1SK0zLVTRNYJ8leve7cEKgt6ITLLa;
 24:dKWaekdsUent082wjnodAwlve485gqopvMuEhkqnVf0B1LgrChbRx+DWwdxWeXUDDQE/j09wIhKY3J6hJoBDAiveYF4FsRYvPuiRvLF/Sb4=
SpamDiagnosticOutput: 1:99
SpamDiagnosticMetadata: NSPM
X-Microsoft-Exchange-Diagnostics: 1; DM5PR07MB3100;
 7:YGDwGOo3LnIsUOQEmKCWkitQPvEmcwgEq0r3RoiJDL3m573ORbt2dRA8IoMX9DqbcSSZUuW4teykYFDLLCPyqlqXFkCABl7+NZJZRzahUoWArUi0afIPtZ7V1MQNgr7P/fzWA9M6JJFtNFjIGYSxTKymdqGEbOKSuHVScZPTEmb/xhM+EP3UK0C/Na3c/djvhGjKwEUfkAIaM1bzPOi6YEzgUrXwr3umzJ+D7L5Wa5NsboB08FNfXDeUc9rYGYJOcwwgFplx1T+rg94TrnPWoNk1hXjbJJIwpCmyzeYCqw05W+3LGxTYPJXV2MvYR6ajKj32frG6Z3SFl1389KU5QeP3PsoUzu2mZa7aRQd5FGIzqdeCnDS3bahNgWhfhnrjTLuCqYWxjqynhDQBgv2Aopl5ffME/iH6PU3qdqmYGVNXIAXhSE8yKPSkdB28DkVpTbYLPoQFv5JpSsBQ5lU0/AS6564j33Icc5U13cV1Ba8l0AOB1EN6ZKhlXjsSnC+EDb22h8l6uR0U/eDb0ltb+xFMkhOpWmMVGP0TqrTwINQmSbuJreETY/WxxM+ilx8dqsSDve4CnXgIYFq0hK6TMsDYxUDFeXhmYYv7esN5piVpQvpjYZuu0nq4zjOKZ0Ltb0WP47FUyG2q78mKs87mDz1SNc8XdSVp3wLJdzJU8ZSafscDMJ/eabM1q4vPvGef/a782B2EH4W852g/59pbl2XPT3FlHWflqaATSTMDAl/B5H8qmHTIjZudUzY3ui611G8seI8Fal2ObFhzwQ2C3Vw1FXy+8haMJzid0YbaFu8=
X-OriginatorOrg: caviumnetworks.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Jul 2017 08:46:51.8561 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR07MB3100
Subject: Re: [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: Fri, 14 Jul 2017 08:46:57 -0000

On Friday 14 July 2017 01:36 PM, Hemant Agrawal wrote:

> On 7/14/2017 1:25 PM, santosh wrote:
>> On Friday 14 July 2017 01:09 PM, Hemant Agrawal wrote:
>>
>>> On 7/11/2017 11:46 AM, Santosh Shukla wrote:
>>>> 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;
>>>> +
>>>
>>> PCI is generally present in all platform including dpaa2.
>>> There may not be any device found or available for dpdk usages in such cases. The PCI bus will still return RTE_IOVA_PA, which will make the system mode as PA.
>>>
>> That's the expected behavior. And implementation makes sure
>> that PCI_bus return default mode aka _PA if no-pci device found.
>>
>> Isn't code taking care of same?
>>
>
> I have attached a PCI device to the board. But it is being managed by kernel only.
>
> EAL: PCI device 0000:01:00.0 on NUMA socket 0
> EAL:   probe driver: 8086:10d3 net_e1000_em
> EAL:   Not managed by a supported kernel driver, skipped
>
> So, there are devices in the PCI list. But none of them is probed or being used by dpdk.
>
>
Therefore _pci_get_iommu_class scan result would be _PA, As no device bound to dpdk.

>> Let me walk through the code:
>>
>> has_iova_va = 0 (if no pci device then pci_device_has_iov_va() will return 0).
>>
>> And if (has_iova_va & ,,,) will fail therefore rte_pci_get_iommu_class() retuns RTE_IOVA_PA mode.
>> which is default mode. Right?
>>
> This will create issue for the 2nd bus, which is a VA bus. The combined mode will becomes '3', so the system mode will be PA.
>
Yes, If both modes detected at two different bus 
then policy is to use default iova mapping mode across the buses(which is _pa).

Are you operating on two different mode like _pa for PCI-bus and _va for fslmc bus in dpaa2? 

>>>> +    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;
>>>>
>>>>
>>>
>>>
>>
>>
>
>