From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM03-CO1-obe.outbound.protection.outlook.com (mail-co1nam03on0088.outbound.protection.outlook.com [104.47.40.88]) by dpdk.org (Postfix) with ESMTP id C2CD37CA3 for ; Wed, 21 Jun 2017 19:33:45 +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=yyaCMe2ujOoEtAMeEuHsveyeBr/W22nMsB36PfUV5wU=; b=j/wPz/AuOoEcYqHXASkEHNF/fyoGY7zhmSUJVUfCobf4WDhtIkzDnDk9AyadTFVy4S5aQpSfkfHAMgD7dIsh3eSlgYWgnzzBHWZ2xv25JnpaVig/ONv5QS66xcLXyjFmDmPCpjSiEVdw5+lgr85+Bq9O6tDQYXJ7U2FmT9mTmhY= 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:41 +0000 From: Santosh Shukla 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 Date: Wed, 21 Jun 2017 17:32:45 +0000 Message-Id: <20170621173248.1313-2-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: ef68f3f9-b371-483e-869c-08d4b8cba9da 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:6EeXI1/WoMBPbSkNlF13GQ2Dwb6zeNulI2ROENa6Uc2i9psdH+8/i0Bz5lsKt59FCD7QInVrkBeHBF/uvEc6TwBGZUiMmExcG3GlGXfDXCtd1aHIK+MVH7bc2dejhxm8txJD1i+niruh1/EImEQwFsz6KqsHwm3Opb5uQUnzG+JYETNpf+HGB8l5US2iyBzsN2TGS1X3ujj6U5fJUWXRuL/PjCg3W6pcGqPxFZrJRXQ44YeVzxPxEpWTi2RlTbG6ORWfVcTsHM3Hkt0kA5oUEB/TGcQr1LrUUUHZk+AkUJ2vda8YS2qP9xTthr2WsgdXQiCEct3/9Ly2E57HMrwb8TDxL3SsHswccSzdl8r/bggvZzuZUaHOdEXOx5xebQbxTlJ7Kh/M7kVxOHchsXgAjw6M7IJYXtFEd4EV9bywGT5R3q9xcV4QkyjfDYtAcXjQK7A03Ir9043yxgmEuq9cMqp1dVmMeHB/G9iGm+2ExVuWltJkaSN2ZqLDDOmsYExHKuQADEC0XlI7SIV0J+hl86Ioq5zJRIEu/wSH+j/pn2yWjbft4mXaBoP5B7+jNDnzt/OiI6qC5vBKQVIW4bbEXr+6FQKJ6rmgQELlCu13hyXiemWuupTUTgNN5WAkH0YSA9lgrMPWr6Hv3ro83QwkymP1YvrggHVvEYBeu6J3docxLZAYDEHSnKkpgYRcz7YS X-MS-TrafficTypeDiagnostic: BN6PR07MB3092: X-Microsoft-Exchange-Diagnostics: 1; BN6PR07MB3092; 25:I5PFWiOU72yyZU1db4whYxxEffsS09+YIvGX3NpajoKKMAmP+bjIBzG1RbBFs3/E5XWOqCJU3kO4Vr+45ay95hJyRnMmij+JFyO7+2GBP36kNNyABu1bv2aJqtg9eyBk2rDv35BpXSd63KmHYKlfGfZC23Vv1uA6CnSMUJ6+R8oYd073PUhhW3Hnyihyr3EW+lzJQxZ3Lix2KgcelPjgSOxzzIqi/KL6m7VK4Q+o7QD4u3URw1MpDwacID9HZlXaE/lo9q9tC8qyo1EehSOc/8rD4/Vd7feKW8TpqlbfHeWJjNkt7ZzboDbWmOTs4M35awYf6aBIxz5BgtX5TR1B1nGxZwUBQpMJ+qObOqkhUuy7be5Bh/kbXOix6PpW+w1t6BFm2Ae+QuqKLucSSaKI+oLoNELqD8DePyupdrDBDMlJSpE5QVu7va1bFc/F/z7o6K14YwutQFeyupIhfaHZKY2zHybyfUS+JQ2t5I/XH3FaWuwcsrXS6uaMxDGkHM2HHh3h43Ih1mj3vFnH6MR7lOUy6oW5E7qSZ3PlU1LuzLJ/lNfK7ekxBVTlFkdPhJTJ3CIJ4HujJBBBjlE9sqA+9wwouQ1i/j2YTe6io742DGszepwTQvKT3q8yrE7/LpqWDQnjCLMCmz6NxVenMlO/6MX/2ZuQQ00zMXhPLddDmK8SxlCUyAkG7dgsjJawyBAw+m2BL54LeC9O6kOFo1ImYzyqooLkTCXqwtRXP6gU/izjrvHe/PQKjj58BLbyhvnicKe/eCaFaxXn4Q8ZrTwKxnY+UdN6hxiW761DF8GfwkgfmsZWDwlaPCHzw30h8O0gNxiskZZKoYY++afoIcnm61wwCAC6i1hxhEt6R8S3CqeIUhqV1AUKMr+R8OiagdYz7hb6FWgop4RTK8E5STa2C77OrL7kMNKMecp1wFCvxeM= X-Microsoft-Exchange-Diagnostics: 1; BN6PR07MB3092; 31:Cma7H/xBlYKTa39lgPMb8QEYh8XJe0bUITngt8wLutyJzLNwCDfBaWfgGZ90kYdDUkym9YdNTWj3hWdPiCgJk11Fzcc8w654SKgelUiA9dxjARDW7GF55jAQr0yWniAOaDMmdAnGcLOopdo+orPrcG+yk4eX/bsdCohZ/2ALMe58NDfloqinld4oHP8tOgwUqRLMI3URe5rB12kbih8NkJuk6rxKq9OUw3Qps7JGWvGJkjK2lGljmoMlqcaDSFhqzBhddDY/3CGYZSC4AVOSD3nCmHvTPN9uvWX+3GWrEd9Ij8ncr1kF+P2Ghd+hpJZH9JbqwwH4/VUpzrsLiE1gmX2rpSXhK3siJIuh/J8SCgfKULqUcNIbIbG6v+7mDOyENlyCbZxr39YUokHuL/4Eh5v/I6BVzu25sCvug7uTdyosHpfFcFJwEV642FpD1rhHd2lfYIxLmNfHFAq8VwZlgTfGY3/kkHBkCL4SkAWwhME7NOGItp9PZLv05dnxT0OFNwzODceXQVxliFh/E5eHgLdmBnPTIp/l353xWM+aOS0tXoV964RJYwig3YhVEn6Epa2sZTUGH1+pHn55yiDYrNvts49gabzr144p2IYQdF9YAIgGRk15lrhlcooNUhYv53dLEfNfWHBrUkbblrGkT+0MldcPy0bS7ht4dF7id54= X-Microsoft-Exchange-Diagnostics: 1; BN6PR07MB3092; 20:J+bEbC2KOSvD+51CJKyJQCmgsBmTXQK62atQskA4GS9WmcGykZUG1HpELqMTEdSr8NsPMVWRILm0GzfibwE5VrHGwoW2vNwgX1JY0QKNX8tQFw01foVMNcsWk5mjBr5EF7VDU8Dd/Xa6mFM/mucxUfNbanH9d1ksraq4ORaVx4izvq1x8NW4FTP7Jy96EsrB+X+6gL5BFfAmWOOWml9F/VgoSrNE2gFnUPx2YeN3hv7HPLywWuH6tM2hKuuTqjbP9Y4c0cC+LHq3vDu+k4LVMpXKxAm+hcleG6sB9e5/wowLE9997a1lj8wElt9KZndiDVDT21v3FDdIqi0AXF4RDTa5zl1meUptAksIT92wnlgYGiw3MNnWUrDDDUGFkliG89EYUasqhIyZe/4wbyNr6e6P08Wmcsx8rkwQfEfxQ1DHqs1X4iBVhNPqTSpaYzbDjTfvXuqxSzZ+E8c7dF6T813l9Rpdo+nDlbtIns+KTlH86Fc+o0XRgm3NT1kP9eH6XuiotX1gm9SPeDO0hHR1051bUC2kTAdOvmKiom5N0ghcg9Xl8hKEotoHlhv78mImuzes3hTGXCxuR+IBoe98z1pECehtyoVg7C+fuGj3Hgg= X-Microsoft-Antispam-PRVS: 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:BHXc5Pg0EtvQPqUvVlt4Q/1QFfcq0JxLKCyRMC0vmB?= =?us-ascii?Q?3CcRZhHpOjeP52V0eYKsCAgvOd88FsKjlBdm9AavDihfTs9C2wkUa5nKvQhd?= =?us-ascii?Q?2imZftB9jT4vgMoCoPwqc8gMhRg+wrkQHZbozZSe90pgcV35gyTne7f4p0Yv?= =?us-ascii?Q?4dIYjdJ98aql8pnP9gtshSPEzbNVYjI4P513HnAmRMOt4CxVag3C6DsgD9Ab?= =?us-ascii?Q?SWceuSPFRcqraDgAg2jEPRScFa+eKNSoHLU0k9tQjPZ3mTb7ubV8SPpLFmwm?= =?us-ascii?Q?zTT1QoXzTtUwWv8tpEMDFVHGOadXs9D7CRpkiMc1bVJArdarTTyPMqYCjn0M?= =?us-ascii?Q?LnpcXaQU9Q4PLSK1OzSXh4IXmW4bz3I5Sop+Ioxt0f1v9rdS7ebnLSWfkTGW?= =?us-ascii?Q?jKPLZU3t9pXV8pFLakxPtvKb6etgy26lTCdU4ihryk1aOP1tlx/5MaXe7O63?= =?us-ascii?Q?ED4I89OJJQA90wTz0TN4YOZe+TAzXtu2ZTZcvaWmO787c9ox0PF6CBPcqYcz?= =?us-ascii?Q?M/QS75Yg5F00h39KaIPTs0sI/KwzJ3L3/6Af7LcWBUJMUKuILza5e7ou1kse?= =?us-ascii?Q?Q5iEpCDiZgmvGGTkzPYOg/5L3+EUdJlpwSX0dPH7jYXZxRUiS8cV2gWqicYr?= =?us-ascii?Q?jSJgX2vcPZFu7YsbdJMxw7gA04VCBquXXtLpBbU/TV5g6nNe2MFo1JmV5pqH?= =?us-ascii?Q?hp/VfKsbSnquwt9LdLwJTGt7wXq/RWZBW6XlrgQb++4BigCaao1CIWtzBhqh?= =?us-ascii?Q?o1TnSW8h1EKuVdWbG0rBZOzaSi4Byx1omC/N5Si0yEXgz6b4eVzF/fsERuB5?= =?us-ascii?Q?mZVnNai3ty+12+MnR/lb5QKZ+5QEf+M4wj3ZR9KbfPEgkquYPFntcg8IBnNe?= =?us-ascii?Q?X/9wP8huMzeUo5zsYTgxGKEFEd0NUo3cMSHNzUZ28jqMHaL1r6XWRqLKtIzJ?= =?us-ascii?Q?NBNbrctow78QdXqDTO99oZ+GPa+lmIHj/D4hJtuRsLpQ8mvtUErUmDsD0NT9?= =?us-ascii?Q?mfgYNz0dEONSeCgh1C2I7XO4gQGIWJAZxzcwMJVEQVf3nMFk01bbYg/mzS+h?= =?us-ascii?Q?FEuvG5fMItfTptMLzG1KoY2XVcJYW47yJ5ydV6G3CV5Y2gLOqs1hMDTbUe2A?= =?us-ascii?Q?lGhcCXG/k=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)(15583001); 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:QbAimUjbs3zjN5szeiEAHuU+7OVl+C7UPMg7s0cuf?= =?us-ascii?Q?6nZrwJKuEuU4gFhrarxbvWurxAutHwrjN8sUAh5PcnZXy2RpWEa6XCh+zVCm?= =?us-ascii?Q?QgDiuLNf8uQSACxyMSbuukM4UeHX6R68sHQebqSgHuPfp1WHgip5JPwXz8gz?= =?us-ascii?Q?6j1hVOL1mdcG6TfCKHmygonvkMhUSiVxIO+SUETlopVujK0Y4Tzrb39rIoDY?= =?us-ascii?Q?zfWGfXud6aveUcWKpcwqyJ7SoONg3dlqAmVCj3gwwKzfXkG+Idlak7EUr176?= =?us-ascii?Q?ZicXw3NAhYulEZlEz5xm6MLkeoVneZA2fs/M/fFsWCAa3gbng8mbdoyaxEzn?= =?us-ascii?Q?lgq1Al8xHsG5fgf5xMh/99z8Q3qcweaLpgoRbwSD2rYSr58B4fZuQyz2gxCS?= =?us-ascii?Q?bE+MUcy20E/4VGDNu/EhM6br4fUuxTAblRiSPWHwnYT1mkxHsoGNfcd5IC/0?= =?us-ascii?Q?aksi+bSi5zHjXxRKO2jim+Bl/tgX2vK3wyU30+q7PpRfpRenV0rG4eVAM1nY?= =?us-ascii?Q?JJlWR1oKDQ0iQYl62wyFkgdzav2nXt8fG2DocB3KkIwKE8OMaiPAHVPANhFN?= =?us-ascii?Q?UL+b0W5L2kbrR8h8di0cbySqoLiUtt4/Qif1+lFxZ1s6oKCjOhmBpJPrW68V?= =?us-ascii?Q?AVOvJ6OEdUrfR/sn2nLpg/sYoH7napHVmpP1nCGqCC8riBYBMAU/a+wb7irc?= =?us-ascii?Q?Xf8XTofIYKOm2lhy/f0eMbTJSjOgD16Z+ZDPeha/tZI/5y7GA76JE4qFk+iy?= =?us-ascii?Q?dvq6jReM7PNOaIZ9GSJqHqP7QFHLb38ZTMDxAGt3rQ6wkNr3vUMVt2Allin+?= =?us-ascii?Q?KayVAc2i908rfmkfhUll9lRAe6T+3cleuWlNC1zvKbeBlWuVUOt+m6O8N4ZW?= =?us-ascii?Q?prlhqWOo2LXjiHTtUD3ItrsDcmuJPlHeLuMkpSvWvvP4+2eKASHAb5Jy7ToG?= =?us-ascii?Q?0RHXE4c25ylci83ThF2yJSBlqYURueUQfzKUqgIHlYKUf7sK/8NZkJENEl/x?= =?us-ascii?Q?HW9owly45tW9kMZ0Vc0+zqGn2t1TVc7EKhHRgbYPt/jtGZIcUwNpzrN7AnEp?= =?us-ascii?Q?d+GBfRKA9On5xPuZPDnRQINvZpZ?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN6PR07MB3092; 6:2QMf1/DTQpzTKR28cVz0ByeI7FE2TWHDXpJ2wkg1wd?= =?us-ascii?Q?wOtc0MUYxMLSmEuK0gVd1T5rgMJRXSWP3cofq/HSA/Zma2I7/DRc0tfNUXl0?= =?us-ascii?Q?WuPI9f5gfKQ5Ri0y2zxriuKkzomuI9VEtbf935y8kVquskcANJSnrxHaXgPz?= =?us-ascii?Q?2tEtHy6TbV6yigYnf7Bkgqi2R7Uq49LePVyN0a0u7mWoE6wFfOm5xY866Obv?= =?us-ascii?Q?6IfR56jDztpesuH0yPOU2t0g0epn4GWYO+zP8tJl0YtMsqvqXMl9V6gssT50?= =?us-ascii?Q?n9Sl1hik9ACfvgJKgydLiYIEcBL5+Pv/CmzGc4+R3QZ3+Do/Qqw0IWgMqKmG?= =?us-ascii?Q?dGHqBM/A7jBk7c/aF+rSHLKOpXIkp4HK8FupAk5sCs/2V+maaqtjWy23NyfQ?= =?us-ascii?Q?jywRK3HP9BTa/rKxSyjvbEcWu2kVNT20HmgjPLP8kixoXsd5PQSxu2SiJh+f?= =?us-ascii?Q?oeMvAI68H0SxSx4LFOjsenjqhUjQBho1oYXsewRMWvvCPTN1PnCX1l0/WuJ8?= =?us-ascii?Q?3XYE3aRIGzjvVd6nvm0RoZ06ovBVBMOTFcqvL5UzoU0+btaSJGIVr4052riq?= =?us-ascii?Q?hmdFzpXFKO4gW/xkERV/AtjvPA4BgY3iYNQsqIlsYxxzOGc7XbZ1uUBxTB1i?= =?us-ascii?Q?y/XVhjKb2CL3CmzpeMOAsSKDIL9UKxLdI3egVo4hssJvyH6cetM7+eA2aFo3?= =?us-ascii?Q?wGpRfa0moxZbVCMEZydCP6F6rehKt+Muuzx7Y/jPxz/HZg02Lh3j17QMV9jE?= =?us-ascii?Q?zG4B0tc3EhqVtApWkajqoADcc17BZgZDSweTTu0oW2APn65SqxcTuUSLXHep?= =?us-ascii?Q?m/EOM+OxcEG6XPowCu8fZ1/uxe2ws13HpkYHlzxAuRGaJmltLsquDz1vlcYp?= =?us-ascii?Q?3J5++KdrlYyKHzSFBuH/VJVI6DbyvCAL5vk0ht81HkfG/gQjOMQZGZbf9gX9?= =?us-ascii?Q?l39pI1giNCGd/0x1dxr/SqDClde6A8+JTQayUJ9gt1caooEOyJA1SE9CS1vh?= =?us-ascii?Q?Y=3D?= X-Microsoft-Exchange-Diagnostics: 1; BN6PR07MB3092; 5:AnlUZweFdiSy8fFeJ19QDo9V9iHPJ39awFV1SlDLanCdlgTaXqOBzLhe5QDnhfTRt/mUl2fZUgvRhLv/M1bdivuYeiKEf4DopwQulvRJAMaqAKSaPw5d6/zOK+C5fSToGm/2sfo5GTUzbd3GBA10jVsqleISOoLMiWrHzMWT4RzApGd0u0JAwB1Ex8J3i5Uk9x63hqm6ViC+IQ14zASD4r6CIcddPYZ8baub0zYYnSpJloLncVf/Hi5a4bakVm8hGhCyFZTesKR9CPXkPdUKpLm16t+PE87eElprv9fZ8TLJ5alSDxiLcVwkJQcR+UItK6kp0CzeaK067tz3lZ9cphI9Cd96T4EAFFp6RIto+2uz8BwsdEwt47WkI4/HYIl8sX9T4TIUjw1RTOWZ8KD0kYzOnuNiLf8VSGUvTF334OOGx89/X/TAarkkycpCohu1ukaSYLu1FAAHJpD0J2FrIhSnolsNNfS/HUqVQGd97ODynFHtqgPfNCRMgfRgsNoO; 24:R/1tI0rX+EMhLgufTHtyAqdPXCUZIJ4KqbsnuhpODo13n0aR220RMD0W+4vGMQUMd8IYp/bCPCMLLzCEGcc4UhUCPoAOKV0EfoEJGL5qd80= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN6PR07MB3092; 7:JHAu2m/K+thQNJ050jKccwQx2JmE8j7ajxqoDo2zmbKPj4CmPNB8eDNzYMWpntdMS7/JwcQrBvJTRf67PYdG6yFqvsDU07/boRzVs76FygIZiuN3wKvH3q4UdLWJl8eDKlLyi69oXFONAX3zC+v0jrJxRQvx4QTPPQ0YrrzqY8MdcCi51K7NiYmMNjvExlkhVIDV+LGsZBxsfRbTlThEWe2yfGMWMLYXcnq77/3V24l8xGymzK+6DhqoHTnhdtPc6UzjCZ51yUwg1ngY4/XGMkIrE2EG7KsBF5Yz0ypLqq2XAv5lqIPHTMEntwuxa+AR90Na4dG2OTQXIPsLEWzlP6xfL9CjFBRG2s6xdkHuGaLnRuiCE2a2ue4kf5QTDqgI9/4CXiDbAeXT4tQw5FrpqF0cDLOMXQq6gs/1va9FGr0E7+fZ4/MlYQqYu5qirTu7tS6JDxUpyAVYNN6QtFPEcDwVAaUdLbvDbd9pEbIz3pZ/QuA4P5nTLWtovHgNjH3OQdvW8MJqqNU8nUy74TIEUu/ed69O9JocgRZXdr8F9iNT+l4Dt7mVOjSU0xruxhAYJivQUtwztpMKTZIRCii+/0tlzlKUpqjN8O9meFLRTE3MohbFV4Otz3WTKsQUEI9Zh0zpXC4LjWhe/qn6ZHi4AcY5k5ASYeVJ5XSqBtGOOZECmjYaUYCxXvnsfcjnsF6nCPFVUHSKWuOznOSTw3ZbxKKq7NmNxCV+9SRTK1WNUsxWGSOusG8+J7pyuDmJnSAPXEomN3mtSw+czSAuod5YlsRCCy267nWqn+bIseid0/w= X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jun 2017 17:33:41.2767 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR07MB3092 Subject: [dpdk-dev] [PATCH 1/4] mempool: get the external mempool capability 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: , X-List-Received-Date: Wed, 21 Jun 2017 17:33:46 -0000 Allow external mempool to advertise its capability. A handler been introduced called rte_mempool_ops_get_hw_cap. - Upon ->get_hw_cap call, mempool driver will advertise capability by returning flag. - Common layer updates flag value in 'mp->flags'. Signed-off-by: Santosh Shukla Signed-off-by: Jerin Jacob --- lib/librte_mempool/rte_mempool.c | 5 +++++ lib/librte_mempool/rte_mempool.h | 20 ++++++++++++++++++++ lib/librte_mempool/rte_mempool_ops.c | 14 ++++++++++++++ lib/librte_mempool/rte_mempool_version.map | 7 +++++++ 4 files changed, 46 insertions(+) diff --git a/lib/librte_mempool/rte_mempool.c b/lib/librte_mempool/rte_mempool.c index f65310f60..045baef45 100644 --- a/lib/librte_mempool/rte_mempool.c +++ b/lib/librte_mempool/rte_mempool.c @@ -527,6 +527,11 @@ rte_mempool_populate_default(struct rte_mempool *mp) if (mp->nb_mem_chunks != 0) return -EEXIST; + /* Get external mempool capability */ + ret = rte_mempool_ops_get_hw_cap(mp); + if (ret != -ENOENT) + mp->flags |= ret; + if (rte_xen_dom0_supported()) { pg_sz = RTE_PGSIZE_2M; pg_shift = rte_bsf32(pg_sz); diff --git a/lib/librte_mempool/rte_mempool.h b/lib/librte_mempool/rte_mempool.h index a65f1a79d..c3cdc77e4 100644 --- a/lib/librte_mempool/rte_mempool.h +++ b/lib/librte_mempool/rte_mempool.h @@ -390,6 +390,12 @@ typedef int (*rte_mempool_dequeue_t)(struct rte_mempool *mp, */ typedef unsigned (*rte_mempool_get_count)(const struct rte_mempool *mp); +/** + * Get the mempool hw capability. + */ +typedef int (*rte_mempool_get_hw_cap_t)(struct rte_mempool *mp); + + /** Structure defining mempool operations structure */ struct rte_mempool_ops { char name[RTE_MEMPOOL_OPS_NAMESIZE]; /**< Name of mempool ops struct. */ @@ -398,6 +404,7 @@ struct rte_mempool_ops { rte_mempool_enqueue_t enqueue; /**< Enqueue an object. */ rte_mempool_dequeue_t dequeue; /**< Dequeue an object. */ rte_mempool_get_count get_count; /**< Get qty of available objs. */ + rte_mempool_get_hw_cap_t get_hw_cap; /**< Get hw capability */ } __rte_cache_aligned; #define RTE_MEMPOOL_MAX_OPS_IDX 16 /**< Max registered ops structs */ @@ -509,6 +516,19 @@ rte_mempool_ops_enqueue_bulk(struct rte_mempool *mp, void * const *obj_table, unsigned rte_mempool_ops_get_count(const struct rte_mempool *mp); + +/** + * @internal wrapper for mempool_ops get_hw_cap callback. + * + * @param mp + * Pointer to the memory pool. + * @return + * - On success; Valid capability flag. + * - On failure; -ENOENT error code i.e. implementation not supported. + */ +int +rte_mempool_ops_get_hw_cap(struct rte_mempool *mp); + /** * @internal wrapper for mempool_ops free callback. * diff --git a/lib/librte_mempool/rte_mempool_ops.c b/lib/librte_mempool/rte_mempool_ops.c index 5f24de250..3a09f5d32 100644 --- a/lib/librte_mempool/rte_mempool_ops.c +++ b/lib/librte_mempool/rte_mempool_ops.c @@ -85,6 +85,7 @@ rte_mempool_register_ops(const struct rte_mempool_ops *h) ops->enqueue = h->enqueue; ops->dequeue = h->dequeue; ops->get_count = h->get_count; + ops->get_hw_cap = h->get_hw_cap; rte_spinlock_unlock(&rte_mempool_ops_table.sl); @@ -123,6 +124,19 @@ rte_mempool_ops_get_count(const struct rte_mempool *mp) return ops->get_count(mp); } +/* wrapper to get external mempool capability. */ +int +rte_mempool_ops_get_hw_cap(struct rte_mempool *mp) +{ + struct rte_mempool_ops *ops; + + ops = rte_mempool_get_ops(mp->ops_index); + if (ops->get_hw_cap) + return ops->get_hw_cap(mp); + + return -ENOENT; +} + /* sets mempool ops previously registered by rte_mempool_register_ops. */ int rte_mempool_set_ops_byname(struct rte_mempool *mp, const char *name, diff --git a/lib/librte_mempool/rte_mempool_version.map b/lib/librte_mempool/rte_mempool_version.map index f9c079447..d92334672 100644 --- a/lib/librte_mempool/rte_mempool_version.map +++ b/lib/librte_mempool/rte_mempool_version.map @@ -41,3 +41,10 @@ DPDK_16.07 { rte_mempool_set_ops_byname; } DPDK_2.0; + +DPDK_17.08 { + global: + + rte_mempool_ops_get_hw_cap; + +} DPDK_17.05; -- 2.13.0