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-dm3nam03on0072.outbound.protection.outlook.com [104.47.41.72])
 by dpdk.org (Postfix) with ESMTP id 9B02E1E34
 for <dev@dpdk.org>; Thu, 13 Jul 2017 10:23:43 +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=2hEx5q8YelbhTxceC8g9Dbditdl/k+otC3ZkRDwMIiw=;
 b=A1u5VwIK2KnBFObZ84vsmFZf9SAivGG/OitoaSQ+9mgFU9RKhPElgr+MyKjtvMEyU0KvvgpIhux4OJSPdtCdj9yJyP7OVG3caQL77f4N64QW7iBzl/yJ+pSJ8UkLYMpfqREUS+AbC7ROL0MFvWfBBCf+VLwYS4FZY4ldSmoaahU=
Authentication-Results: 6wind.com; dkim=none (message not signed)
 header.d=none;6wind.com; dmarc=none action=none
 header.from=caviumnetworks.com;
Received: from [10.89.1.17] (14.140.2.178) 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; Thu, 13 Jul 2017 08:23:35 +0000
To: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.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>
 <bf71cb15-c517-ed20-64bc-1cd88fa2084a@intel.com>
Cc: bruce.richardson@intel.com, jerin.jacob@caviumnetworks.com,
 hemant.agrawal@nxp.com, shreyansh.jain@nxp.com, gaetan.rivet@6wind.com,
 anatoly.burakov@intel.com, stephen@networkplumber.org,
 maxime.coquelin@redhat.com, olivier.matz@6wind.com
From: santosh <santosh.shukla@caviumnetworks.com>
Message-ID: <b6df44d3-7d96-df45-8734-0fa4c7913d8e@caviumnetworks.com>
Date: Thu, 13 Jul 2017 13:53:22 +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: <bf71cb15-c517-ed20-64bc-1cd88fa2084a@intel.com>
Content-Type: text/plain; charset=windows-1252
Content-Transfer-Encoding: 7bit
X-Originating-IP: [14.140.2.178]
X-ClientProxiedBy: SG2PR03CA0051.apcprd03.prod.outlook.com (10.169.50.19) To
 CY4PR07MB3094.namprd07.prod.outlook.com (10.172.115.8)
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: ae048e1e-2c37-43a3-dd04-08d4c9c877d7
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:AuvVxVpSwQq0ifKCYrO/SVeu2TEAtqfiu6PwRCJg31Pf0X2gJnTrA0AnQxX9p859NnmfEroFkrLsXx84SG4cFhCVZat4HTfaTF/4Yqtp1dDipKpGJM8UTG8ar6HUnaOZk6u73v3+IaIkLIC+Q+07dmvX9OP5KJEcYgigZiiGRNSlTd7Y8moW3hE48jrv5WNfaQPNiBj6ou0UB+69+C23I1/l5Xv1lLU85bxMZlwPV2hJifWRKywgyqgsbUoSGQejRngqAGWh75ofu//nXT/PspFWGATE/XW+WKdrXZuA9pWeo7a0HZscEEKpHk13p+/ARYogbpT4XOJmodU1ZZMO3/HGgzQtY8b3fMQn4I2p5LKICh3MJeXWg9/rNleX30zrCF0dRCZuKacuJ5tMGW6pj67kOJoyT4Bjhm2X0aERS9HTjrhHcAxNa/wTPSFuXRFoaqnBW/fMeQRJvqWyrmkgY61uFSQv2mnGVy/A/rSPl2lIwDbP0XsJQh/mS2MZ4rqB+z2gHsTdixOXZXuzQrzvpPedJAuD1xItGiBbcXKbzefEqxmtpCOQiGkXJZRCPUMgqU6P2YkTagIxY22wVXUZKpmHw06c08hlcSIh6ZuQ6fK1G29AfMzSg/fV88KmCfPMHlSqXr+qGzonEecx7viKBvMRUZDWHOPskTrAVU52wvr76XHUV0hXja8ROZiSmsyzYgPv8vVPMi3zcaXrZp57ui8f4fuUuBZc/1UtWVCHeo4=
X-MS-TrafficTypeDiagnostic: CY4PR07MB3094:
X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3094;
 25:64hUhtOZnS64KTEHC1nB1AxGhXG5k/5Qk6o0Wcc2X/wUNrxt91GKBQPehJ6fmJEeRJvaokmm38Iiq/LqN++n8UPqrvH5V86+lg/63d5ipIjt84o4uTgM1m2umS8box24D59cDeuJbEmqkYrg/4Zb7PCuryzoWn4EquSMvgDtOdE2steiO/1Y9fwsqzAxmOVNZ2+GoNBdaIudl8av2YR/ABqEhAbjJvG6mtnF5E0MSh0HB7K4QC1qStjh+c5BymQWm2QgsOj7/PTaQDSXy1eQETk7yZjl2sO1s+VOo655lB52m34zchmCP0uJWxD1C3By8F+y9+c8TL7s7wzJ8MLcgLtIrRfSCL06ObNkflmDKMTdrKcVxa2NG+mCJfJIymlbP2KQ2o9sPl3KdBcW2czHpW3zh9Qhs+yaCLSr9uxmeh3Mo0mdcs6cpkmpK5Gl0cSLzUtpw7cK3LR6t3+xWavSZorm5EX8yZ3OWaLVsUDw3Mx3S4vR1lr9FPK2pTYG4nTeHl9QiRMgKt/Z3GSF/VfELsrXErMl1qd/lsv6Pui8EpYmgEGqcL7nASnqrPIpgf0mj6RmHRMs0NvZB6req/FyVSu1AQdmY7M8NmQm5i+E9PZDrSz/oOLmcrV8I83Pa5szaf53AGNNW8CbcUl0mx0KSEzXGFey5muw1y5jT1japfgjkqw243gz+/aF66OTTiPlLHjwRfjKqrIyadCygNiE6eX7RNsQjJHw50eyOp8z51vSwJn8bDYQPgYrN/MSrpE7wcp2MU6LQk9+gBWDuYwov7uOve8+1GXJFlQYQAEwKIYuEV0w19dw2topEbjMMKn9WdaQ1L/MdIVrvOx6Le6qzGIs6mcVzeRQi6g7E+POebXppBtNhyTri4yXJ9TggqgnomSKfEDW5CCKJbKFTtQDpgPLwTdc5pKjpCCv7ZVatVM=
X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3094;
 31:gi9oitL+lfX3S+uiN1b7li5mxfYBw+aHlaLRITYKLxqWybeTBWYa7l82JqGmqoW+/2FjrZcnqk+5eHWy5WFrZRAbOCLnDEjLjdw4m0D9ilqq/O+lutiaHmbJGKmqqPqECsevzDcu9hRrpqKdmj8tyJA1KoyCSPApo6m6cuse8+vH7aNoWNGzU4CYRZLtkiDykfrvlRTmMj72mRrwpwTHI5rygQOdEdAwRKqj2J5iJdPCPd1+U49J+c0I8DtB24rZr/0ZOMCRAnqs9yZppY6Tjl/jxdE8p6H/jDOpb2/OJ7I5DBelwO6sAmlkdk2RLKUnduJaTMtMthjAoHAm1xssm7fIMvRhzNjYeRhZbo6EcJhdENDTmJnocLHu9ZKbpXtzZDtCUxbOF0aYk/RdOPSm5FmNllwzMQ/tpzcitCdfQ2I0+ofu3S1ko5QjxyC+3ZGs9aR0lMiO/64A3Mej7hRuuchE7i2542BXfMYTPWbNEGN8YEID0S9qvl/7QsYXfhtnTDdoZM4qd5ZNBkyPCJq1TDnditAo+z+d8wwoyaXaZBPtwGp8zJv73MxBg2z/IJMJyAdAfRfJ2T6xsP8hrSQwPuQFWl32Jly45s/dQOCOew9OAzcRLa/J/cgIE3nYomBUUvzWSfPVc906t4LP86YMU8hn6LfLTBu+03cKjczEP+g=
X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3094;
 20:VxxKr+D9mTiPx+iHGabLPyzgbPEzUupUbYhcTun0D+mPMJZQ9HAR4Od09l+exFyE35JkDuBBcmlzECwSitacd1ebLtaS7rLn/zN4BiR8sIdh1Zu8HZJu36iU1Mlv1AM6nIzhBa4iNpip78eCP0Yux5Jx4KaDY17Uz0TlPS/uV9PjG2Rin1dyA/jE4GwYOwqbh1DRzR36E3guNPTk39uR5YIN/WhJufOfB/LCMP5RTBvdgYb5xTTcVJtDMtW+LwyeXkvgItX9WZnz5WokGrW148sxmiVYfgXuJtlxHP7tikE/epn2RpLG3w/8LHYU+2l+LcAfmjE0XS8bJe5kCn4UhC1stQAWm0tW7HQaLK8/CFPvnUgHvEYZCiCdSFIcFE4nW36jq+b9plWTDjPX0jSfCypQvpKmQ9YKaYgMcBJ0894LUmDVufRpTMT2DviFK68hR6QXRJMGSdXhSyCNX8YUVJm2DZebyCf2zD5rrMH9dpYaIK8nfeMYWmSK7cTmMNsAGTIrSvDvpfk6ploqqB8DnHVNGZD8CLVm9bRvo0c9+cxj7sDjwtsreGLgYNK2aXF2bPMZsd5xZD2xQLriCZ/MluOq1GuaYpVYuT1o9mHpPZo=
X-Exchange-Antispam-Report-Test: UriScan:(236129657087228)(278021516957215)(247924648384137); 
X-Microsoft-Antispam-PRVS: <CY4PR07MB3094AA4E8F5EB0195FA37CE0EAAC0@CY4PR07MB3094.namprd07.prod.outlook.com>
X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0;
 RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(2017060910075)(5005006)(8121501046)(10201501046)(3002001)(93006095)(100000703101)(100105400095)(6041248)(20161123555025)(20161123560025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123564025)(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: =?Windows-1252?Q?1; CY4PR07MB3094;
 4:HPZjc+qLxj2qADm/Dbv1xBeoiQBnUYTD79MZgJ?=
 =?Windows-1252?Q?38zk85IQnThaCA1z5wShhtPx8Y+5D5mTzXzKyZJzbUCdt7dzR22WA9KG?=
 =?Windows-1252?Q?2yl5UyyqaKSsUEE+YWPj90xFY1BJd/PZw8fjwzp/Czq45uCWWQHmB03w?=
 =?Windows-1252?Q?+QqFUDnehuIcZ/GetB633Q1Z+Lrs6bvU7FNmsUSZt50DmZVgv4eG50g4?=
 =?Windows-1252?Q?/gtyhCgX4AhIXew0ZsAceWeZDi2pxDSHz/N5Y3m/o2Z+qvYEG2gp+oa1?=
 =?Windows-1252?Q?EaHk2KDTFvyMc8CthWIV4b3X5hLPFtRJzrn3OJrJNW+VCj/GYUmRBMuz?=
 =?Windows-1252?Q?RCZHTE0mo/admAY8gDgO+4KMkvPT5dund+HyGlFsSyd3GodrvD/O7BF3?=
 =?Windows-1252?Q?Abm7TVkqJUTtlnFuEkCOeBhow7a+UYZt6bqww3godtghKR89tx7cr19t?=
 =?Windows-1252?Q?FkuAUHQGm9oSLzmyZH0zd5WHR17fKFc7T+4ZR+hl7ZO4ujJ4bJyKJGmn?=
 =?Windows-1252?Q?kNfRkjXU9gViPCHpGXcItObHm6RvRjI5sI4dEoC3FKm8fU6xnPTQXBQx?=
 =?Windows-1252?Q?TeI/Jj1wTfpeesrq96jlnqsNhSXXN3jd+bYYsj/DZEVFvJ1BEau9csnZ?=
 =?Windows-1252?Q?mmDZcuCE25jv5tkbJnDBtiO+24Y2v1oiL67kEcCro6c3+EHHcuDPtb+6?=
 =?Windows-1252?Q?s0vAZUxE9muXug+7t1r/mo6lTYGhmXxsPhNfT3GGAYIbhtiIhCce28sO?=
 =?Windows-1252?Q?DzF7ryml6EVvPdsVwqxAf4uBbhjKJYbZUtBHFFaAZ9E3PvrQ8LXY7yz0?=
 =?Windows-1252?Q?/OyrpZlN3CKmzkkz6PMyohNLgO/5Fl9TxVJm1wgOWbqZ3F08EbFO7wqo?=
 =?Windows-1252?Q?aKUv2+d6Xs+H+FljpaDTVwNOIiwWMoBKa2Y/OQ8l1FHaC5RM0BwgpY6L?=
 =?Windows-1252?Q?PU8CXULQu4CXuDU9lBTHnZKNrEd6rV7QJZg+U2CTPyUMT2z9FCFndMoz?=
 =?Windows-1252?Q?hC1wKClYICkWMSOaix1nE/Hn2LKomn2+NhbACGa89GldJbfuxCNBu7KZ?=
 =?Windows-1252?Q?e5ND6K4gpZKg1pXP3XE4NQSxr0rU64wNQGV+nkXmd1AuUNxkYoL20Mef?=
 =?Windows-1252?Q?jYHRZxOW2flnetfmbaz0ltCjrLnwVrnSUfDWUq15QmplI73wxiUwWgzu?=
 =?Windows-1252?Q?e6CBaDp4+vkPMXIH7zbaaolg0JD/vRzTwK1IuBoGEficue9Xn3JyueXy?=
 =?Windows-1252?Q?UDSSXHx23huWUQIQ+YiveRQiArLwYIvcnSm3smhW5X6RamrWzvXLb5Ev?=
 =?Windows-1252?Q?0e35zKevZQjpBoNDwIlmjIg/VbscZ2MuEUdFhwZ8jcc2vsJ8H5Y3Kpoy?=
 =?Windows-1252?Q?86snVjQklO?=
X-Forefront-PRVS: 0367A50BB1
X-Forefront-Antispam-Report: SFV:NSPM;
 SFS:(10009020)(4630300001)(7370300001)(6009001)(6049001)(39840400002)(39450400003)(39400400002)(39850400002)(39410400002)(377454003)(24454002)(42882006)(86152003)(6116002)(2906002)(65806001)(230700001)(7416002)(23746002)(229853002)(6666003)(64126003)(2950100002)(4001350100001)(36756003)(8656002)(5660300001)(77096006)(65826007)(90366009)(6306002)(31696002)(7350300001)(189998001)(93886004)(6486002)(83506001)(53546010)(31686004)(3846002)(7736002)(6246003)(305945005)(81166006)(33646002)(53936002)(50466002)(110136004)(68736007)(5890100001)(72206003)(8676002)(5009440100003)(76176999)(478600001)(54356999)(66066001)(50986999)(47776003)(4326008)(42186005)(38730400002)(65956001)(966005)(25786009)(110426004);
 DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR07MB3094; H:[10.89.1.17]; FPR:; SPF:None;
 MLV:nov; PTR:InfoNoRecords; LANG:en; 
X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1; CY4PR07MB3094;
 23:fzvkvu7zltGkY9GQQZDD9W2+dCqpEu5Vu0Ll9?=
 =?Windows-1252?Q?WOF/b90hjAYJyc7VzwM5lMxV2xjfKqLzjccihCHtWZEijkLSu1ErhBIl?=
 =?Windows-1252?Q?SKYYtYKiPm+CfD0av5AN48HkowviWp3mxHOtd4rgtCxMWGKMmu8HU4eG?=
 =?Windows-1252?Q?9t8S9kXB4keraO5lTh8j80viqwwxKdXbmIBe7BPBT0fsCsm+Ln1VUd6b?=
 =?Windows-1252?Q?HZSBm1xfZU43veArhCcSEEWy5o1SzH9ECFYD8vEqJA+SadJpizO9hZmB?=
 =?Windows-1252?Q?iuknMsa3s7WFEppZwrVcAt9hC7tuusBF97HaNFiJmQ8F5QeAB2YgRfMm?=
 =?Windows-1252?Q?PxH6IDYDrWZ52HlzF5a6eBSnA/UyCftVnRzYxTYmLG9s5p1TQsMJsqEq?=
 =?Windows-1252?Q?oKWvTUNU9ymFJk65s40DihG4rBqmR1CwrbsLvN32H3d2j9+jBe1SKfKG?=
 =?Windows-1252?Q?ySnf+NSWqbKdrYTXlddd8RN2N8GRKk+0EqzIhpi0ggtjFMHYiMHBAWVR?=
 =?Windows-1252?Q?pSFN5VzzbXhaiSzw0QIp/9pBqyNZwtaqRx3JvTQmmIPtPY+jKNI48d31?=
 =?Windows-1252?Q?phdx1KfCZ7MhHtZyyQV/sxlDg1+JNWpyKunrDhVmknepcC48PCYqppXS?=
 =?Windows-1252?Q?y5s44/oTUK9RoXdA/UPfjsfT6t5mxSD1De4fJg3+S9OK5dDP6N9X5T5s?=
 =?Windows-1252?Q?jHTNkSu1D07qRA4vCujeTtonN1B0TYKsEtP9DXvVdCDBNvmEdvTClNPM?=
 =?Windows-1252?Q?tnYjCQ/sRQZE+JAUFJls7pEDu73J7wi4HAbuW+UNVMYLKTt/cXXFHLak?=
 =?Windows-1252?Q?82wtYsKSPeQJjq8hyO33Nw1GQieAJOkiFsurOQC5GKmjapNdNN7MqOOL?=
 =?Windows-1252?Q?s04SnL8PLVx9C0YGeKgUaBTuiWvbMvsoA1vOR+3Xy6SKCPhGs2edqAvV?=
 =?Windows-1252?Q?6f6L1qEjLZlQBrPz6RPe+ofXMhte491GczoDPZ//8EBZ/mU/PqYFlWix?=
 =?Windows-1252?Q?emhQO8ZRjbEdeHnUMN+Qo2sf1hwkYEvBduVpGrSokL80sHUGD3D3E4Pm?=
 =?Windows-1252?Q?d8Siomj9aVbkFaGMAawpVzsuLhrtIGXhyjAaYDmmuxabX1rooIMOxlt3?=
 =?Windows-1252?Q?EqnkQ0/iQRWIizazrJUSWp9lKIreXNuzgKgpLYY1owsPLXRyH3VsQRdH?=
 =?Windows-1252?Q?zZf/qL++Mi378M+nkFTq2pavL+9oyqVvJcrF6OkmDUtqCvtDCbCwtCDW?=
 =?Windows-1252?Q?VtUDHWKbPJhfFV7DeBiZFy3hEOIg5uuFvBn73capjlQqrbu503RW52X0?=
 =?Windows-1252?Q?KU3ChPLLjjTto6B1LHgywbazH0DhvpDYWJoEZYEa22ET2g07B0u30V/+?=
 =?Windows-1252?Q?a8kdUcs97qfpx7ae7EvtjC0n4Na+FkaA2cz5HX3zEtTUW+HQZ0HyPorj?=
 =?Windows-1252?Q?o/iXidjD6NE8t1O4vFRaqDs0uizzvCVmRKlx2MZN68+uhLwTXOpcO/1d?=
 =?Windows-1252?Q?6BZpZBvq9DmWIfGfNBLgWX8LjL/E/+gHzE62OfH/NVV2C0q0H5lC0uu9?=
 =?Windows-1252?Q?OtOo9u8k5dtSIWOhn758s7+19RvZAm5QYfSW4BGTfCr6diBkwXQnH9Fv?=
 =?Windows-1252?Q?Vs0KAIq+kvHd4xKUBaYchjQyPecozZ+sljUzkslz7Tocor7pJ9sNUXKD?=
 =?Windows-1252?Q?Sh7S1FYtowEWpazFIUktVle32fVVSdk2boabPbgnbhVko9KucZTz7JCG?=
 =?Windows-1252?Q?4rLjpBTAvgEXFyAxQ=3D=3D?=
X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1; CY4PR07MB3094;
 6:P+fOTDfQQGVSMT0tyYv1eJJzPd4UnfqhIDJfDt?=
 =?Windows-1252?Q?+7K20pVESRXjmq2CFjizhv0J3Wjq8Oh4tmwqoYI2/gSaOQ9ziJJPY7sb?=
 =?Windows-1252?Q?FcSMYQpALujarnG6uqE/dp39GnExnmfZsbKWCwrsSRHKFew9JPABbk0V?=
 =?Windows-1252?Q?/2kBTItIib76OqPCS+J/n7H9POEdxm6+REdKZM5dM5YT81ulLEmtoJMx?=
 =?Windows-1252?Q?M4pxgBJXm602jeI/ye6rc4Z861nXLP0/lmJpyXBeVmWuCi3BmsHPH2h3?=
 =?Windows-1252?Q?L2FKrSJe3s74uL/KjXuAPNG0wFDzNQzR9qwkaS8HYGfVS20mIspWlenz?=
 =?Windows-1252?Q?AC8kDPo481TE1BjWwwbqmjTonmREM35riusIpwpdiS5n18VhBRfka0sE?=
 =?Windows-1252?Q?KpWzovdFVtNmy2HSO6XkOmXqOTyZG2Rg5klBo0f2PIN0JtWrElETKuxf?=
 =?Windows-1252?Q?8Teq0PU9RuscrPzExdaV1sGAryq4TRJmQoiZreN0y9zkv+EB+aPDuXFZ?=
 =?Windows-1252?Q?ESLa9yRT8ghrL9FlI2oKrCkhSEznvLiT2KhdJZsiENuNUmUycSq7RSlM?=
 =?Windows-1252?Q?+kShAXSNcVyJUvgwTv9N/oV7hfKFGPl5NgxMJTgJWvaxez/9M3soOMCh?=
 =?Windows-1252?Q?RQ+Uizqce5kXlLGzvpsEdZjYx1XU/PtfGZkwJnMyYTDUbLQd1ptGuxpJ?=
 =?Windows-1252?Q?A3nm/SX63x2TvN0HMZgoetRjZTSwOXlzToxjZokm3Bu+YVGVvokKrvoc?=
 =?Windows-1252?Q?lfgo0Mr7hVKiFjDR3OO0VnOeH4v+T5wARBBJDGueKV9o9bD0h+/yascj?=
 =?Windows-1252?Q?rPAS3b2+4kChg34LMF9t1PRVoYjbfN1sG3JDZKA5nJhyXdlL9mV8kR0N?=
 =?Windows-1252?Q?bM4UWJVI0E5FTogQRJwfQshtgZIlIrfvJAZ+4mwFELv1vihonxuZCiV8?=
 =?Windows-1252?Q?Y9hPAwBNbHwYhJVKWftQvLfplrPvxpQb+/NA84JjysShJmolZuHMwFx9?=
 =?Windows-1252?Q?ovDpzc3DWsMw+D1XkI7zzoT+oOKl2X6raLqJ1rXEyTAwbSpUXdqChTm2?=
 =?Windows-1252?Q?x9k/CsaDboZJ8=3D?=
X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3094;
 5:fIEZdW/nyk4kjxOlgUJTAzZxaaOpvuDirBhU2UDnUGfkgULp64tdFMX8raO0VN5bDmxaWQXe34fXGmk3FQaXQOupSrzzwhutz/k3lZsPTeuSt9r39Q/WuPQixbAkG/SIYiMfvbBukNOD3D4mWQjM736TsqakWkiCBMQi6hPyFOuDJShgz6vCHFvoT1v5LxTv5cXqp16drIMpoN3bAHYmjCUqV3Id1Oo8uHA+VIWOYoO+O2jBUEFE0/lr6rM17ZnbHUVqp/7GjByr+7Hi4QBsowtGTUnQ2WN0Jk0Mp0uUmqMudv9G5ZCRUf7eQEQVIY7WoGC9WMrKkZngci1s2KXY5S7EUFPbQdaDmjHdJcAZaHQDusGP5jMSH9Ugq7vAAz6uUF0aocTzUHCtHBesffj/3t8YdfMjTqeeNeabRMI5CzgDhyIS6NdpGeHw0T3o4K0hkBtaqh0Kz9DzbZZyzmVMs9pypn4bq3aGPRHtVpgMufINW43+ZBMt+I6p1+8juTVf;
 24:Ka9kZehChCJdEAKtthzT3FVABgAglHz/j5ubXBFNCpiHEmSG5BEx6Mx0J9sUxzYFB2LGBydBnCcs5Rn6GF3E5EZ6gMB2e4xR2hTxPwwJ9LU=
SpamDiagnosticOutput: 1:99
SpamDiagnosticMetadata: NSPM
X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3094;
 7:0nVlZz1t+XKSu1Lg6SXcOZ1qlPx4FesEKTGZGXoXJlfrtVhNCLX2T3/nZA/NESvWnWxywxPinibogsv3eP0hoMEcxoWIF2zX0TDxV+zwEpxcZ4h+npJfwl/Qq8je54ucdQm0o4hxvPhNnIEgoZ5QgVaVO2UTswFRZJhJqkdx1RuhftK7fcUflLijzpUZj5nbbjrj64VtFYgIJMghOvsAxijJBv3C2AaV9GOyEU6xC7rkEdV5vaDVH7WsJPIgUsw0A6niZrMnTUcQpI6at4yuxXQfUqnQjjcJyRTt3ALyceUpfFWCzrl8n3qju4YWcZsLud+5gfyTXoHB4+Ix3aKon9mvlXtuaKfIxzQAqP+6QIzRhE0bzMYiWojgA0M+wJ9c96a/b/9ELyky7y9epbBXj4KiZKx7vdJW+OZMhtm+sGnIT20W4qJBiGxggQUsyRln5+/JpDCI7A9r0rAvIG+GppztfWD+e8jC+06FEu+A4mr52YLJEZ22Kkm/tAJQn3w6pbBbPauP0j2MwXCHx1lnofMU0cWoeYviY8zQYY2RG3hQktltvpUr6GuG1epschJtLDibZOkL2Qjkc1bQkYRVzTAJSEpt+JawWcF9jPINtOMKFJVYzcLPyq+QVUIXMVy9vAWJrdOOHRbr8ZXXDxQyUC21Hr4RHQl7GWBd2HncOBcaCJHk6O2USUz4VIkQ4WqKnIn/F+yi2RM50ByQ2S2yn2qq1ndfWpeS+sO2LntKU5iEnOP74EInSr0JlzGBpotYoN62k9RUv27PxrqKIzVzHbfLpla9gsd5YNdVpEAFsew=
X-OriginatorOrg: caviumnetworks.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Jul 2017 08:23:35.5717 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR07MB3094
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: Thu, 13 Jul 2017 08:23:44 -0000

Hi Sergio,

On Wednesday 12 July 2017 01:50 PM, Sergio Gonzalez Monroy wrote:

> On 11/07/2017 07:16, 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
>
> Just wondering how it all works with device hotplug.
> Correct me if I am wrong but if EAL decides to use IOVA_AS_VA scheme,
> if we were to attach a device that needs IOVA_AS_PA, it will not work and should fail to attach, right?
>
It will work for igb_uio case, and won't work for vfio-noiommu hotplug case(Invalid case).

Yes, we can dictate iova awareness to hotplug/unplug area.

> Thanks,
> Sergio
>
>>   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;
>>   
>
>