From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <Santosh.Shukla@cavium.com>
Received: from NAM03-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam03on0083.outbound.protection.outlook.com [104.47.40.83])
 by dpdk.org (Postfix) with ESMTP id E0E247CBC
 for <dev@dpdk.org>; Wed, 21 Jun 2017 19:33:50 +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=fPqF5OnaqN+i0o3rXBBY9sr9c4YyDTC/Tu4SZIIbO+U=;
 b=Gj3hVzMVkbhzIuOKTcOfp9LioTmk8x3ETRYyNdnfvNJpVjmgbpcEhqynFDtSZ4Ezr9oF3S2uMcVb9Qz8zj6GX8HF0Ms6Bc+jicbQK46x3utPt2TE2jYVpfwZpN/E7azRblrG4f97tAdnYNMuuUr89A9Ozy1o8ykbxOxZjxHR6is=
Authentication-Results: 6wind.com; dkim=none (message not signed)
 header.d=none;6wind.com; dmarc=none action=none
 header.from=caviumnetworks.com;
Received: from localhost.localdomain (111.93.218.67) by
 BN6PR07MB3092.namprd07.prod.outlook.com (10.172.105.10) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id
 15.1.1178.14; Wed, 21 Jun 2017 17:33:46 +0000
From: Santosh Shukla <santosh.shukla@caviumnetworks.com>
To: olivier.matz@6wind.com,
	dev@dpdk.org
Cc: thomas@monjalon.net, hemant.agrawal@nxp.com,
 jerin.jacob@caviumnetworks.com, bruce.richardson@intel.com,
 Santosh Shukla <santosh.shukla@caviumnetworks.com>
Date: Wed, 21 Jun 2017 17:32:47 +0000
Message-Id: <20170621173248.1313-4-santosh.shukla@caviumnetworks.com>
X-Mailer: git-send-email 2.13.0
In-Reply-To: <20170621173248.1313-1-santosh.shukla@caviumnetworks.com>
References: <20170621173248.1313-1-santosh.shukla@caviumnetworks.com>
MIME-Version: 1.0
Content-Type: text/plain
X-Originating-IP: [111.93.218.67]
X-ClientProxiedBy: BMXPR01CA0048.INDPRD01.PROD.OUTLOOK.COM (10.174.214.34) To
 BN6PR07MB3092.namprd07.prod.outlook.com (10.172.105.10)
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 4558f342-3e83-423f-2950-08d4b8cbad17
X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0;
 RULEID:(300000500055)(300135000095)(300000501055)(300135300095)(22001)(300000502055)(300135100095)(300000503055)(300135400095)(201703131423075)(201703031133081)(300000504055)(300135200095)(300000505055)(300135600095);
 SRVR:BN6PR07MB3092; 
X-Microsoft-Exchange-Diagnostics: 1; BN6PR07MB3092;
 3:eVzIsnDvbzz+tzoRDOsBP8ynhdEJPFzhB6eF06az++fT6tlPv8Hi9rJ1TUR0I/VKW0H0ResW536IvYGXalcwKYofyBgTDd1Ood26rLM/SEs1WAj64F+WtJD4C8jeq3FLnXISJh9LUFKqV0vzZoF/n3A4J4hjLUnu5D9cPCZP+Yh/6MLOWohONuqmIeYE7bepy6nXbeYkA2ctL8VIMuCTDfH8PVa4k+tftzSr6TNBVQOcp/FjyKeyIuinjYjiOPQ1oOvHaGfR1ByKC5LWzi5UDv1g/AFvlu8Xu9nG6Fz/yC5nsHKawrwwFzYvTkJUdrwW5WYuecQJ5BkMH/5waC5hpxhmu5KdMR4tHG45Mkzi+VmoYZGb2AVvx6wu9PqQFqLI2C5TJLhCPKt5w81XGwDkzM5wr3O/OgEnNr7HGmT24lbUy3oz2Rqehn7d2jts2NrMwDUYKtUq1usiqst8f+WEyHdxcSgGPqDfQoQEC6F3in/63aM1Zrp2ocYHjryLVt6aIQ9mjWRs0QPukoZOAQigq4AOf6AQDlHPwft1cxASeY9liW8G5FAcEbGFh+aifOLxo1wQoslzF4fVZBztHUM+MQ0Bbl5j+sB46Fw3TYzyTDMt0YRRW2pnrpNvXY26S1j/hT4Uwk5B7ecwPi3TuG8Xasb5Df8tyWw5R1OwoQtuk9ANxgSns+j+grGUcahJ0a6t
X-MS-TrafficTypeDiagnostic: BN6PR07MB3092:
X-Microsoft-Exchange-Diagnostics: 1; BN6PR07MB3092;
 25:pNXiw2NimVIUEaz6kbC4ADy9ArMXvPc0q57C/ErOoSPmN3G8Kua93+ilE8u1wPwKG2EefIvn+gJKWkfreibRkwmmnmSn2eZgtAi4+6wk0rEZtNy4DjmPQ/0FYg8ISO8copUWyLhsqv+7TRpytszM6mioB3GsdQ0g6FToscowhiSTJK2+eRcE6BOyasFS8PM+TIKw+l4tltPVsCdyl7Lzb6K/1pG8fRuT/A47nX02G5/VYMnYi7S7c6tnL4TtzarVX3xm8ZPKeRdR5Orjdhmstg34iC7V6Tpn57LKeDSTLIlCsxq+DOwgHhvc9hGxedTTqW1gu35v4YSkdRovKr5B1aXcjUEWrPOOCCtCiHFxxKfxNe3RFzq2kKCGVYACxUJu3Tk+NJf+Fkkg0+Ytu+V2OliHcleqJc+lwGc6Z+yXmTW0e4pt6b2UtlNmZIes/BpXR8fqeaS6EsoTPdOPAytRaN+Xz0RJCwrSgJvPILu8mTN5iuL4kGIdN+Rmun9ZhYIg7aqcmKGLEVMfQ76Ahf4IFA3xVHrk+IhmodOJmKk8pkk1AIRaIcH5NIClZ5BV1SKX6+Qu7WeHE8QE3REWnLs15WNrrhgw6pNyDJr8ZOHtYNNDSKOePYAEMaJYA9zo1vgCzt8jD0spq9M4ziUyGAxwjlvk2TCMeP726430Qawr0md3cI86tQ5Iq2bfwFYRvrkI3yuk4ESwaH35qYyrM1pLaBk2sC/lS7zfrw+3IMriN7PnHeThugUL4E20vv5z6aqFOfzCz2mljancmMAI4y5f4sMyWeWXjmBiWD3U0GQm4yhaV8S6vIWchE3wvyTDmakAcKqjpKZyfXnsTeYA51VCsHjHUQCP91FCB6ll5YZsP+VhEU/WwMFI/KuoTBH7hcGBFzSw+1ThnH58k7hIJKe4i4AFcRkds73X4hSwusAR/jY=
X-Microsoft-Exchange-Diagnostics: 1; BN6PR07MB3092;
 31:H74dc83DDE34OR4Ie0qfChwrD0XjeyYt+pqgR9cRrt3sLoG7FzwTQDfZONLAKF2s/oMHIvPKO75SNfkX9y3ncrYUH2OO+P37MskKeyBtUNEl7NkSeufwBFyPDEnSnBPGFq84j3ApGwQQ9YhBzuvC7wiv8rvSCcpD6wTpsnOv+aIXwzcEaKb63IBpZo8eWimPuophKtBKpQzjDN//UrlZmmb0Q1I5Qz5VBLg/hmFmYk3S5/uQfRxaUVsssb0B8SYmOnZ0MlOCGrd+1+NFJ4dJ9zvOF7O8cB7n98Yt2yhs9eyIvqj+On3OkYGZ0bLq0y9K6RzCNmLY7ug/unEx7vZ6Zx81svX9dBKeAv6Zld28Jyr4GNP26aGZKcxkPHKuaRe3CnQl6OWahALH4eNUkMoArvoEej2VQKKG0L+ivNdIxXv7y1NY/T9aPZ4vMrDdPO9ZZYGwpZWjHEWQpNH2OIUUjyGT4zPXq0qTJ9mSBrIrrul+Jv3kQCUDV17FnRjmM7UY+qmUdvys27F/zbnM/OBw4puE+sFpqs6v3hOj2QO2DC7JE+RYsovEti0hBiAgAI6dColVcfg8mv5wGV9da92q8556VKDqNGyJyQJGwcJgSMqm83/LD3NZSemTfVUjbWW6OB5IQGFutZCG6cynqWsj7wK3CAxsSJGdd1+6305GE+U=
X-Microsoft-Exchange-Diagnostics: 1; BN6PR07MB3092;
 20:3C2JZp3s08DUDwFWod4A+3ny/wsDXlDfQyd5hxOtbIq0b5P7G2aPUccg42bDXqFSb4otxBbj9j+KPsBgGA4iMYgdwWQgak2eL8o8ARB97mbYRuKtiFUB5NHFsMMPHsLJOyD4Jze5lFSmDrcTldCZwYZmq9LN/l0ZvSx2n1JRQoZiD87an7kdt27D3FV9+Eg1oYUkJ+/gF7IhixjGZ4Ml/uRuNCy/JxJViiea1dOXwI2opU3cuYsy+RBAbiWxSzOtWzLIxP+KZ9K7Sy+zypsL4omM2I/c7pW2yyY3TnKvQMgrPozYKVasnptB63z8H7tmtLg0828sQWEYS6VCCdhg9ikzrWa6j8o8uOflIOgGMqYLkq6FWBDP8KIZdRnIDtdjARxVdQOtgFEa4CxqINir/M1B4D4Lp003fIuKUK54N7x8UJK+3sXzkxVOov4Gisg/HT45SmoHwO/uGldapbwp3VBzLGAzIfRklbIxjFW6Ag5SvLyqau8ABp1LqXt/6cqMoy80dMgzoxwzRqSWEnvrarcc4EAUToIgyEJ9BKaFmglbSukfKQ+Pp47LOTvVrwOVgQxi/EqiC9RiN9Tdi5qNnLan197q2XX6vVm8917zFcg=
X-Microsoft-Antispam-PRVS: <BN6PR07MB309236A1468238C0C331FBA2EADA0@BN6PR07MB3092.namprd07.prod.outlook.com>
X-Exchange-Antispam-Report-Test: UriScan:;
X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0;
 RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(5005006)(8121501046)(3002001)(93006095)(100000703101)(100105400095)(10201501046)(6041248)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(20161123562025)(20161123558100)(20161123564025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095);
 SRVR:BN6PR07MB3092; BCL:0; PCL:0;
 RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);
 SRVR:BN6PR07MB3092; 
X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN6PR07MB3092;
 4:oLOjwNYXestADVHM/ScxwUNbJU/IEf7aOL2JxpDcG3?=
 =?us-ascii?Q?guxehbFxDkC5rQLZG6pWy8KWWLnF8LE4ktYB4BldO1BlqeB9BUyYliY6dhYq?=
 =?us-ascii?Q?oXYBVz+vzvKpznMd+AD6PKKTicBc+jUzUOGSbxzQLxauVI4PdVR9Z3lCCMSO?=
 =?us-ascii?Q?5e5a8HqbasmH6tfTe6y8SESHOJHFKTXLWKCjg5Qo1H6EmU4AUdh8FIgT6HOA?=
 =?us-ascii?Q?uAXjFktIK2s84N5sJh4bxPB5KPJ05P1eub7N+GbLmkwtEEYnbpm3AbA6M9kB?=
 =?us-ascii?Q?D7nCB15stH2vgreju3CE72Ta0aV4B9F8aoX+zXS6lww5z1He7Mf0YGYlH7k3?=
 =?us-ascii?Q?BEtHb66XoqiWxM6tr7vVV1/QOuldnZwqNwncd5NJiQnbpKdvkgTxYI6jeF8R?=
 =?us-ascii?Q?emxVTT6+fkkloIEg6VNhXwk8xBF67gIRUKpKfnuWXWPFSqSKWN+1WSGypahx?=
 =?us-ascii?Q?z7FfVYTVxAGa0w9YOUD1sahkAGCmFu5iNVXupr+GV6SmAgbQa2nwS24BUDKU?=
 =?us-ascii?Q?mnN4tHbk5nnad9k/92Qm6G6sZ41kr8AZQOUpaGXWDrDcuJI2YiKvD795XAmy?=
 =?us-ascii?Q?sFOdLeag4gHMlUrrwsjvHIKjuwvBzEMwn+eFJnARytWH8MNZV05WC2KTQPYC?=
 =?us-ascii?Q?jkYhiX/+vwiLi6IgdRmTSLPMOIdkMBqFopl1z/BAzzdlWKQk7lAo4O3xezuw?=
 =?us-ascii?Q?QLTYzo6x1eNrxCSO121Celkm2lFY/at6aNW+UmHSlcfp01EA3B0KaTiGcRs8?=
 =?us-ascii?Q?ZIanze/tf07Vel8GLufyu1LCGXdUr8cpT7OIlvHhjg/2DR9fwvSfV2JNuFmZ?=
 =?us-ascii?Q?UdXmjf450LOGz1xBOuQxJkpN1R2f5Zi1/TfLP6rB/t8Mmn0fOq/Tg1feU8De?=
 =?us-ascii?Q?4r9TXxnH+qXwkqZPYFlS+wbLmiSliJn7auJrmiyQFZoZt41p7BYdBL7nCuq3?=
 =?us-ascii?Q?za3nhQfxZlLuROXvdSo0nBj3dcwCwlUHmNuKI8obqZYjs5ud5nQmb+w/XOuO?=
 =?us-ascii?Q?VHF7GTzn4BjDcTiKejzcAFzx9nGln0cP1wWgDKmeF5WAQUPSPOdfHDXr0wmW?=
 =?us-ascii?Q?AqGSz2V4xL4RGkPN3relI2vMCSCJFLB35jQWj6tfze6BdgxGUhCYzQRsPW2h?=
 =?us-ascii?Q?YvB2PdOA8=3D?=
X-Forefront-PRVS: 0345CFD558
X-Forefront-Antispam-Report: SFV:NSPM;
 SFS:(10009020)(4630300001)(6009001)(6069001)(39400400002)(39410400002)(39850400002)(39450400003)(39840400002)(107886003)(110136004)(38730400002)(50466002)(5660300001)(25786009)(42882006)(2950100002)(4326008)(478600001)(72206003)(5003940100001)(50986999)(76176999)(42186005)(305945005)(189998001)(33646002)(8676002)(6512007)(81166006)(6506006)(50226002)(8656002)(7736002)(66066001)(47776003)(2906002)(6486002)(36756003)(1076002)(6116002)(53936002)(3846002);
 DIR:OUT; SFP:1101; SCL:1; SRVR:BN6PR07MB3092; H:localhost.localdomain; FPR:;
 SPF:None; MLV:sfv; LANG:en; 
X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN6PR07MB3092;
 23:Z4ZfbdAKpU3dlJZ7CAOFmOSomnGVlBNczRnc52Q2Z?=
 =?us-ascii?Q?Q9YZVnpBkv35l/h7bP89Xq119JNYdHUWNoff5E2MsADXICvXCbCCbnLI4M+F?=
 =?us-ascii?Q?fxoPkD9qjp7TcT/YXD7h0XvimoQ/D+if27OAcQZ96YBRt9avZge0gx/7tS0m?=
 =?us-ascii?Q?zTOLyEdlcNGuHXDCEaCoaBw+PTCdHmwhCis0H6Xc4oL0llfk4qESZMYLj/vU?=
 =?us-ascii?Q?UlVZLVAoFwaSD4LuYyxlgzR1Mx8Hd+e8owae2y0u6wcYAwHMKHzTS4N3lhgN?=
 =?us-ascii?Q?CABInkZdvCHcYHKq8b5QYYCgTJqJW97gZZXUsC0aF5OGqlPt2+ghgHZr2vR8?=
 =?us-ascii?Q?axwxVXsqKfEgigtnU9szeMGrmnLChskT4jF9NCnzHDAjW1mpam9Q8bd5FuXw?=
 =?us-ascii?Q?3MusnfL2J1sELQZW8xo0hXDsb907cHN+xUqqAGuYDqcceupVhrC5nJX62JQj?=
 =?us-ascii?Q?qVuFZFDvGS2a/u4nBjZo2VVokQNqO2tB0tN8Bd7FaPPXwhCnLVB3ZJNqiwzr?=
 =?us-ascii?Q?HxInAMgfYy22ZEQr4CNNGsfrI7s1eACqW4eoMQs5ht125Ay0Jxvu/Tl9nARA?=
 =?us-ascii?Q?iiz68Vl+0celYWQGTkC9MLpHq9q22fFLL232vMgVFuDCnJKwIVXVlfwJBl/W?=
 =?us-ascii?Q?LL1qHqaYXkPh+nMYsUVOCzwLlLIyW65ItUETWdB5pjJVr1Vn64YqlLM3mT2a?=
 =?us-ascii?Q?cpKSIchZ98FXee0CBylxRotvBgqcbt8HNmAXsuXJkyMnhCfscKBhKke7TTBm?=
 =?us-ascii?Q?2sAD4JQyODmq2G3h2kdtgYjsdDp1tT8w53Rxo5ecQ15Ot1fq8jgWbHWFKZql?=
 =?us-ascii?Q?BBUcAD9eK30zVEDHX8N8P+xBHALOdSb2PXe6e2W/FbfrN7oEeergOG5jB84c?=
 =?us-ascii?Q?DyCXm96hSCFzsEW+pmS7xcv5C0HezjI44XmnFJ/G2dwhd4qHKkxabQrK2zTx?=
 =?us-ascii?Q?oJg/2vN+GksTw7DplzFRs0a3ZqpP3AS+RaBBoKrxR+TlKkgjN+FBQe3gSXUS?=
 =?us-ascii?Q?5jJ2JIHypeP5vab/asJHQqVvknG6ahAW2PnI2z9JXjN/07ePQs9lUbA/nrB4?=
 =?us-ascii?Q?ijdU4BEBU5cZfgDW7GP6dJxIlZj?=
X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN6PR07MB3092;
 6:i6gRdIkxSyAQG0x+4H286fOshsNitYgbdinhFds3lU?=
 =?us-ascii?Q?PItRGSLiwyDsLqK9dkFF0Uyjm7SVyqBg7MVgFwwqcxIAfJm1HijdP8SMsHNc?=
 =?us-ascii?Q?Z3P434aAUzPWDlLs/7zH1yempG280e0qfYHP7m4e+Z78u1xfSNPUdbDIba5V?=
 =?us-ascii?Q?kE2Rt5qH40ct/60MMTbi1hj5N94QZvTFZdZpw4qMN2D19pAKd0TJGj6NSiZF?=
 =?us-ascii?Q?bUnUdrKIqQv8m0qeSbAkU/5tJfGqn/LQIawgVqnHy43Uyka7pxpcZrAbtLN/?=
 =?us-ascii?Q?m+vAdWeaWoSIlGgh0yN6SncfE24KlG8NGhvOyUOscz+p3jYpUlp4daEVXg4S?=
 =?us-ascii?Q?H9KWkKXi3i/W69KxMsnMSSy2lW1GFrElTz4zlO+sXc2Npl+c95yBB+LYpPNt?=
 =?us-ascii?Q?waewUmiDa0x68d1cJ0ahVXgFWY/Ok4yihrQFlMHziAMC2M/3FtZcNdquMcD+?=
 =?us-ascii?Q?0u6ByTfP+4fJXJHrMau0iWdIeIwbFMom62BFTrR36yVt6f+ttbg3/CN8MAKh?=
 =?us-ascii?Q?EINku01h1bzIDtJcvBGICQrgkHUybfU4ql0PEq9syT3xCkPzBzHk5KirNDlI?=
 =?us-ascii?Q?wBndvbw4uNc6K9x42qkMGfnHQyrZlCB+PT4DSL/pdGIQWRThY8xlzAOuKlTi?=
 =?us-ascii?Q?B2U6uNh9JBn+O7bLLHAwENk94IDuyLYBbuwHX8ZbXYgmA/OEEo8m5j/w0jrO?=
 =?us-ascii?Q?dMZu3g8SZqVM2cSDPFZdRcEsOq+/H1FSD8aJ+270XRnC2tVkdedq0CpDBx7K?=
 =?us-ascii?Q?xQkIwT0ApiS4adTEmy+VGr6yPVrxYoe3It9CwvaENLwMEceegZ6qPXbGdkfH?=
 =?us-ascii?Q?Un/kxst3/B6AuAkvYkl4l/+a4DmZ3JnA2pQgHVcCNLdggOEROAwxMjUth7c0?=
 =?us-ascii?Q?vTc9+00P59ZOdrmj6VbiI7dylf9Ahe2L2j+OHQHnmvn5/FM02HaH7PLVGUc0?=
 =?us-ascii?Q?hEIkWeJNYjPvsHgtXUJquVtVKgFzAxKSVPmF7KKkzQrJL3i7cVg0nqK1rzsj?=
 =?us-ascii?Q?E=3D?=
X-Microsoft-Exchange-Diagnostics: 1; BN6PR07MB3092;
 5:9SbI/Se6h0I/UbqFN3M7K9S9Pyb/kgLPStXxutapaXm0EJycL9H2d6o101KyMWBKgWjovcsOZMCNA1vHupK6CM6Xe2fY5/c1UB0MrIXLhHHjBkTVGjfDlRPmoYtHO78buYcqB6PiRlmJdppfgFpwLG9eSXqtYXP7yrb/teeZcl5fXWcu0rztV0SO42lxXOic9PT53O9mPEfGxsp2P4LZvCkxbStCQuY8vq5pouRE+h+bjbiZ0rZidDSH0GK+IP+nOD1GTZ+R4+Vvf0uM7H+JsMuHoBpkXSQGTj+OVDyzqwMBs4rIPudVkvgqOznMFPqkWGoAvZkb71pmkK2hREWbB2T6BfNsOhZu+VFHfp7VdW5gBIhLNZvCRSTU+bvynAngj2eHINVdW78+rIEiK0BWEbiEsaVPtLGYzm7Oc2IfCHV8Vj0h8viRgkKqZGICn7dPFKzexk1qekDe0paEN3vPWVP3pqKqEcjjolpPzrwEfl5Uxfn7InlI38mT47zVNckj;
 24:hR6WBEwn41YL6PAkNzOhAzPL2vtLwE9QiUunB14pvLhEww8myAcT3pje9RQfnzXHCZBw0Zx7qpsDg3fQZ5ajXxQmqdYZ40QXe8VbA5cCGXo=
SpamDiagnosticOutput: 1:99
SpamDiagnosticMetadata: NSPM
X-Microsoft-Exchange-Diagnostics: 1; BN6PR07MB3092;
 7:bQ8hDbYtDo80cKecVBsafHp8qjI0MWELINaCFA/8MhlRxavfaW0e1tAP4cEjHgAb1HnCMqNvO8JCi4C8X0eIeC838xT+6aoBR5wxy3nJ7+hY8WDbxau9x8tQr3MHxV4f79PoGBoDIVn3Uzc1i+1/xIwNlnaH2MBAx5/dg6VXla+pmVhrBxIEeOxtwx/YH4nVtvBgV6uf8Vn2x8wlnk8j29KxExwUajvVjaHVJ6iml8N91po1ckgN0slAFbnOseBFxNdqnLo3Tu5JgVon6vz2UBDB0WdqWpd97FJxj27BnINoGN00ZkZqzzCgE2xASEqiCqrPpXMi8+iyonXtzVzOCb/D90ceN75H6b+4acKP+EhQD+vSYYSWw2efzN3vHAadL4y3UsZJN1Ynzhb6nudJrQtersYX7ehU2u+3ql5NoKPFImw8e66UOU+AYG8NKhFFv9tOEGoOpzbVDWk4EvFZ/UF/2j4c/hWhZngWG7zpdkDab48D+8KMK4BV4fEqBprDefyGTYAD2mYM9XO/o7icMl+rpIbN5ADFndWohhHffQ0q8pzTGOdRel/TZD0fLYkWxwMHXuooZhPSnTCWktN2HjYhG4puAn3M/B61h+xksgG4H7xXdIXdg0JShT7TjHH2PYUhfgJ1+eaPB9cRmJ5sh6xXH7xXEnMQr3mgp8+Xh/i2tVm1gtFIxbL+Sp0p63mybuupw//XhOYf4LfYCbgSx/RIw9xbb62Kay0+2rnCYYWWqI44e7sk/qw0DRF2kH1d/Oo5fRg+FW0tyBU2hYewstLaMaVFXRqgC4mN16QO21o=
X-OriginatorOrg: caviumnetworks.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jun 2017 17:33:46.7113 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR07MB3092
Subject: [dpdk-dev] [PATCH 3/4] mempool: introduce block size align flag
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: Wed, 21 Jun 2017 17:33:51 -0000

Some mempool hw like octeontx/fpa block, demands block size aligned
buffer address.

Introducing an MEMPOOL_F_POOL_BLK_SZ_ALIGNED flag.
If this flag is set:
1) adjust 'off' value to block size aligned value.
2) Allocate one additional buffer. This buffer is used to make sure that
requested 'n' buffers get correctly populated to mempool.
Example:
	elem_sz = 2432 // total element size.
	n = 2111 // requested number of buffer.
	off = 2304 // new buf_offset value after step 1)
	vaddr = 0x0 // actual start address of pool
	pool_len = 5133952 // total pool length i.e.. (elem_sz * n)

Since 'off' is a non-zero value so below condition would fail for the
block size align case.

(((vaddr + off) + (elem_sz * n)) <= (vaddr + pool_len))

Which is incorrect behavior. Additional buffer will solve this
problem and correctly populate 'n' buffer to mempool for the aligned
mode.

Signed-off-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
---
 lib/librte_mempool/rte_mempool.c | 19 ++++++++++++++++---
 lib/librte_mempool/rte_mempool.h |  1 +
 2 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/lib/librte_mempool/rte_mempool.c b/lib/librte_mempool/rte_mempool.c
index 7dec2f51d..2010857f0 100644
--- a/lib/librte_mempool/rte_mempool.c
+++ b/lib/librte_mempool/rte_mempool.c
@@ -350,7 +350,7 @@ rte_mempool_populate_phys(struct rte_mempool *mp, char *vaddr,
 {
 	unsigned total_elt_sz;
 	unsigned i = 0;
-	size_t off;
+	size_t off, delta;
 	struct rte_mempool_memhdr *memhdr;
 	int ret;
 
@@ -387,7 +387,15 @@ rte_mempool_populate_phys(struct rte_mempool *mp, char *vaddr,
 	memhdr->free_cb = free_cb;
 	memhdr->opaque = opaque;
 
-	if (mp->flags & MEMPOOL_F_NO_CACHE_ALIGN)
+	if (mp->flags & MEMPOOL_F_POOL_BLK_SZ_ALIGNED) {
+		delta = (uintptr_t)vaddr % total_elt_sz;
+		off = total_elt_sz - delta;
+		/* Validate alignment */
+		if (((uintptr_t)vaddr + off) % total_elt_sz) {
+			RTE_LOG(ERR, MEMPOOL, "vaddr(%p) not aligned to total_elt_sz(%u)\n", (vaddr + off), total_elt_sz);
+			return -EINVAL;
+		}
+	} else if (mp->flags & MEMPOOL_F_NO_CACHE_ALIGN)
 		off = RTE_PTR_ALIGN_CEIL(vaddr, 8) - vaddr;
 	else
 		off = RTE_PTR_ALIGN_CEIL(vaddr, RTE_CACHE_LINE_SIZE) - vaddr;
@@ -555,8 +563,13 @@ rte_mempool_populate_default(struct rte_mempool *mp)
 	}
 
 	total_elt_sz = mp->header_size + mp->elt_size + mp->trailer_size;
+
 	for (mz_id = 0, n = mp->size; n > 0; mz_id++, n -= ret) {
-		size = rte_mempool_xmem_size(n, total_elt_sz, pg_shift);
+		if (mp->flags & MEMPOOL_F_POOL_BLK_SZ_ALIGNED)
+			size = rte_mempool_xmem_size(n + 1, total_elt_sz,
+							pg_shift);
+		else
+			size = rte_mempool_xmem_size(n, total_elt_sz, pg_shift);
 
 		ret = snprintf(mz_name, sizeof(mz_name),
 			RTE_MEMPOOL_MZ_FORMAT "_%d", mp->name, mz_id);
diff --git a/lib/librte_mempool/rte_mempool.h b/lib/librte_mempool/rte_mempool.h
index fd8722e69..99a20263d 100644
--- a/lib/librte_mempool/rte_mempool.h
+++ b/lib/librte_mempool/rte_mempool.h
@@ -267,6 +267,7 @@ struct rte_mempool {
 #define MEMPOOL_F_POOL_CREATED   0x0010 /**< Internal: pool is created. */
 #define MEMPOOL_F_NO_PHYS_CONTIG 0x0020 /**< Don't need physically contiguous objs. */
 #define MEMPOOL_F_POOL_CONTIG    0x0040 /**< Detect physcially contiguous objs */
+#define MEMPOOL_F_POOL_BLK_SZ_ALIGNED 0x0080 /**< Align buffer address to block size*/
 
 /**
  * @internal When debug is enabled, store some statistics.
-- 
2.13.0