From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-by2nam03on0061.outbound.protection.outlook.com [104.47.42.61]) by dpdk.org (Postfix) with ESMTP id D28A3374F for ; Tue, 4 Jul 2017 14:22:50 +0200 (CEST) Received: from MWHPR03CA0016.namprd03.prod.outlook.com (10.175.133.154) by BL2PR03MB465.namprd03.prod.outlook.com (10.141.92.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1220.11; Tue, 4 Jul 2017 12:22:48 +0000 Received: from BL2FFO11OLC015.protection.gbl (2a01:111:f400:7c09::140) by MWHPR03CA0016.outlook.office365.com (2603:10b6:300:117::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1220.11 via Frontend Transport; Tue, 4 Jul 2017 12:22:47 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; caviumnetworks.com; dkim=none (message not signed) header.d=none; caviumnetworks.com; dmarc=fail action=none header.from=nxp.com; Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.168.50 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.168.50; helo=tx30smr01.am.freescale.net; Received: from tx30smr01.am.freescale.net (192.88.168.50) by BL2FFO11OLC015.mail.protection.outlook.com (10.173.160.81) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.1199.9 via Frontend Transport; Tue, 4 Jul 2017 12:22:47 +0000 Received: from bf-netperf1.ap.freescale.net (bf-netperf1.ap.freescale.net [10.232.134.28]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id v64CMfKc013683; Tue, 4 Jul 2017 05:22:45 -0700 From: Hemant Agrawal To: , CC: , Date: Tue, 4 Jul 2017 17:52:47 +0530 Message-ID: <1499170968-23016-2-git-send-email-hemant.agrawal@nxp.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1499170968-23016-1-git-send-email-hemant.agrawal@nxp.com> References: <1499170968-23016-1-git-send-email-hemant.agrawal@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131436445674468010; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(336005)(39860400002)(39840400002)(39450400003)(39380400002)(39850400002)(39400400002)(39410400002)(2980300002)(1109001)(1110001)(339900001)(199003)(189002)(9170700003)(50986999)(68736007)(36756003)(33646002)(105606002)(106466001)(5003940100001)(189998001)(50226002)(4326008)(8936002)(48376002)(50466002)(53936002)(47776003)(81166006)(76176999)(54906002)(5660300001)(8676002)(626005)(38730400002)(2906002)(356003)(305945005)(77096006)(104016004)(2950100002)(498600001)(85426001)(86362001); DIR:OUT; SFP:1101; SCL:1; SRVR:BL2PR03MB465; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; MLV:ovrnspm; A:1; MX:1; PTR:InfoDomainNonexistent; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BL2FFO11OLC015; 1:FQSjY1N18cT+1wix3tCTbWlKXyut8OqMT6j7LsLx2?= =?us-ascii?Q?lV7M6I8/iO46r5kDF4lH/rh11xXI0aV8So9wloQHF7JiavGMqhqh8Psd+5IC?= =?us-ascii?Q?VDYteBqKVjnrLBMsb3gP5L8QvHW5fkgDTdPcd3RYQjtNAMjxkdZrK0OCs9bn?= =?us-ascii?Q?mLLt1HXTSN/s0OLZ1RNfmZsYjcMEt3gOshHNXr743IvCn1rOtvrRn8w8Uu7u?= =?us-ascii?Q?yvQQRS4q0x/NeySG15MJt/omNILm0gafjPBW37q47tR2iCS8eTvUA11Rc6FN?= =?us-ascii?Q?lDJlWHmlQnE7yBhph6i3DzsKhzjIrlLPBYlV+13EzVFbyw1byymBZ+t704Jr?= =?us-ascii?Q?/GMWR9Dzi0UrxQnV3FeIQkEHSS8pIiakTSyp7ecdptmen+d/Ex0WU0ZL9C8o?= =?us-ascii?Q?nKKeowt1XUAuijifKxRqLrWPs7mY6bYrb24plPkyIgukdsDueg1DXgJGGxLs?= =?us-ascii?Q?wmJUle/Y4ginczv09SWdQyes3ggiw4Plx28HLxWhavqxhOB4k0FD/yZ8btcs?= =?us-ascii?Q?lnQkdjP6MpYn5sRobffr9roRUfHcXxDP/I0XtY1umDZTnNZT/plaLuqv3KxV?= =?us-ascii?Q?hccxEbmeGiWAD+kvOad4yFk15LgY/6KdaYywE77EDZMkaUxRIzVNKsfmWjs3?= =?us-ascii?Q?fVklaB67TmTB+meGuMNx9yo0u/v1fYqTQWwCK3hmRLymPSWT1niIFxuIoBb3?= =?us-ascii?Q?OPsdXbXUhYx17y43V8YYmOnA/PxwZAcOgh/J/UyFzVQ/QEiL8pXLuhndjQyy?= =?us-ascii?Q?HwPI+kO2wblcCYrMM1ADBp0vfMbI3RK7dJ4NGGaHG+AnGOOdZWJ24XAJ5F+z?= =?us-ascii?Q?yMJMmIpGb2Cl15DM2b4ezbYptKPzMg2W09ezax0KxEawTZatTOjo0b+VkCD+?= =?us-ascii?Q?L5dlNkKcdqnQxAPcssG+AswN8xne0gNTckhKmTQjy9QdIZ0SS+dMRgX8RmuQ?= =?us-ascii?Q?tHEn6iKoUFzupj+uY+TKakKmfRCu3a7BxXZO1Y5nQ=3D=3D?= MIME-Version: 1.0 Content-Type: text/plain X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f0f14cca-0185-43c7-67c2-08d4c2d7615b X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(300000503095)(300135400095)(2017052603031)(201703131430075)(201703131517081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:BL2PR03MB465; X-Microsoft-Exchange-Diagnostics: 1; BL2PR03MB465; 3:kmeAAUw69GZFAsLAxOUcTit2niHELbAjIT/t9e5ymTcWittupe+dipZ9g8LOxqmGiuiUE2vV58DgM/59Y9zE/CED59p5avxkAqmBfnph1tdQIBvfKy/lFj9A/EBRkx9fCHiWZ/aPG16WVUvOOOm7fABw5eaZYoJ3RxTdGtZdg6c4QGBk+r+3VTZzSJtsYPgdnW/29R7nprGC4ErafsbWvc3afM8C9yjL1I5WPfKzdMf/pEpmV3qjEeGuHIYB2u4CAXVE7+qWJMbGll4iXij9cOB2mjUkW+wbQNvvbg4B+JbkxgvuWCd3yCXjd12ZYoGwzNukW+L1VQPlK7zGsmrhef0PTMTncb9OnKg26puQRgyfoxJr0vrIqATfEvxZlhzeUzLTrX34GD2HjJ5h/Lla6hQyf11mBpwxRaus/KZPph3ToasAsb5ZgjDlxBvTsw0ZEOYx0u8QlRZO5AnU40Y95W69tl2wC5WqCqq/4kUDZSjXbaNApK8M6jyB3Fbp6/rohIPKRPXyvNntv+XFjfBlnaDAOoM+M+4lNNCfmaeiW9ymBB7SqNC3P8/nvcPKDmMxeRar3d2RfLcQg/G1HdzD3QW1ZEDxjJeJngO+Ozj+HWzMdWPoWqHBjm/Uh123ulX+ujC8jrAlU6l1WJW5iqWqFF0B9h1J+D+tQHX69aTgzQRz4FpovdPT6CsYf5OZP8MmFH6RiN4AoIr8hXi8jWJOF02Jb2tQau9gmn+el4glD8zZcOaiwH4+Qg4lOWE5wwMH78VnI1VdIpjhfBMEXcOIFLiFrb47c6ZZh9c84xejHkivNoe+jXjkn+frcJP7l/2focSSRUA2T2MjD3WvQu3g33V+8mcjKS4497/bOVSBKT4yS3p4SrNrc14XB6aHSB35 X-MS-TrafficTypeDiagnostic: BL2PR03MB465: X-Microsoft-Exchange-Diagnostics: 1; BL2PR03MB465; 25:TKRmVyAXbsoOvm3SEeovgtgFeUxeuz91gPdEL/7Qf6Ys3zYsX0/jINeKnGmpRmFN/2e3AT8t8f5a7pY7rq0BxNxja/MnDmfg1HMQLx0ZxiFbAaPhgQpL0QOAzH3IxNP6/Wh7bu5cBR50772DTBcjrfQFxvYQzEgkmUH5nMSuZbX3ZDtogmxC9YbySpFikp4+aErIBo8WI5ItGO+QvOlspYCgZfsLEwP2QYtBhfA4l/6leRhQ9cfxGwD1ISEmG+iYbeSxjRNRKVpr32bsk9rEDFQ/rD+QSpy28YzdzZBvPIXqVN3tIVG/aIHeJ4EMRre6aJPG6IV2BuYkTZjKZVg5itINoki26PGPlJDTytH8w5RR1ZrqZPr/644NVprsXqvuaYLV441mSuK0eu3YxfOLs5P8cDzCgbSYK+KFRUJjhYkwQ62SG/S9+7oD2g6X00kuHM00k/4Vd9YI1Q9RR5CN943nFzXOD3ufoiFW0kJkmvMbIaMgpV4emjRp0apNoBu10OkomJnBhKGXyNys6Xc4lCrex4zfZWa77cZFX1mUbCp1I47u6LpB9kosns7NuAK7Hqv3QDIYYpenfpA81pcORiI23kQTrBXnxgZ8P70+6CVVkawp3YfI21jig+w7uK65ulXIVIWa8HT6Bwxmyims8jLFwPn6RNHoH2TTT/mOcAhyqeU2yMvXoNf2IXE6rGPRBkiZH20lPozXPtqzM6850dEDXWQg7aG7a8gzYiHhtwibf6lWQHYCXWlbgnVcdLqkVxyjiZnWf4KAxe8ALaeiAenI6eFAP3S8Af4glr1IgdcFA0QgfdXvP1tPyJXQeeL1TxdkiMvCFuinehTp8RjdF+j31TcYREwbCJzyzqnJk7pO2rNoPi4CNvaBA/GTSxNWZL/NGoV/VRYdoUyb1qf0ctWrvdv5w0voqJ83wUi+i9I= X-Microsoft-Exchange-Diagnostics: 1; BL2PR03MB465; 31:pCfSsD+2d8gqjGFGIvM9AwEm47r3j5Icf3LF0MWW8DghQLKhyvOp1SgySVY8YyjQTszNDj8qKM+m3+WRC1GcRSBWBxDnewbml3qZEf3LnbICp+hBIKUFpxXudOnb506PFmhPqVJ9ude9ZQDirIrxs5GgTsh21vCitLo4LmBgAK0/HYKWZwPpQ/783NzCsF7TKoRdtJIXzm5PUwFZHBJ8uPt4nC/sQwO9eYqFlvMOsByCs6qxgsOjJHrwiWSU+w87f19nrM4NQ7bclp7xycB2tlV45jGkaT7JntbjssVu3r4pOFdZQ7UXrkL+Ay1rIAjiU4f42jW8d73yNUfkKw9SENILZwt13GjQ8HN1J1GGV5NG8hjXX1NvhwwvsPboT2lUjWmFKIClZHBr9P5K3ZgrsCfwunTKb1YsKP2BVloNUVFbFSR/y8/PKQcoSWc+1plmUn/vcEc9WuMpt+neMkRygwYleBWcnotV3VHZCDHy/C+ky2ar/P8XMbw/4dMNw3Ji1EK97cYAanazJtR9rQXbdX/YCKRAXgNJy5UTFk6QP6DcWRJ9JjImHPDhKNJoKneAu5rWdmXVyGtVQIH8c/y0GsqlaDBvgiiVZ92TCiXJ1YLAoHJ0ktNObz5VUQ6ajT/TWOzLVTRlPaddeyNTbYLCOVxoFnNRSltJaseYgNePvSC+1FJJAHtUbhaKe7E45zeS6RxXdH2qYe/GjBSC3gv7Qw== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(133145235818549)(236129657087228)(185117386973197)(148574349560750); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6095135)(601004)(2401047)(13018025)(8121501046)(5005006)(13016025)(10201501046)(93006095)(93001095)(3002001)(100000703101)(100105400095)(6055026)(6096035)(20161123556025)(201703131430075)(201703131433075)(201703131441075)(201703131448075)(201703161259150)(20161123565025)(20161123559100)(20161123561025)(20161123563025)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BL2PR03MB465; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(400006)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BL2PR03MB465; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BL2PR03MB465; 4:XtdHo96vRlKHqLGlQHr1hlD41bCmlfKopYjOVP4uXcC?= =?us-ascii?Q?h+8e/q6C1HihCKaol/rL1ZQN59JuSFLVf129BSDkM0WQpp/xkEMe+W+nDKu/?= =?us-ascii?Q?ogOIElVRkyIaZ5HHpr9ePEXt/BM0GFe+/7dsXiN9oblZKTp6UJG008bWyuqE?= =?us-ascii?Q?A1dW0VkxFsMp51+TzNEuOdvwGInwNwi9B4IVA5ja+CcNRtpFbjyIHaF751K1?= =?us-ascii?Q?pmXPshywt6Q6SP5Swr2B7gbVq43xRXnb8Qu/KleriTEPZb27RkxbvRn6hm7V?= =?us-ascii?Q?M/Utx2J9Z0lswxGNSN1vfrLSatk7kiN4cZvg5WxwFW1vrH9oebpX4ikPmIC3?= =?us-ascii?Q?AVVVNKh6312rs68rpd4DiPEx2Z8jb1+EVZURqTkxpiZtSgI768PPbrSCkjqF?= =?us-ascii?Q?r1VPQcTzvgnHq30meDgCnjD4x4NCU3OyrkHHL3TpV+1//bD3n0n21VyA4+M2?= =?us-ascii?Q?/dK7sAKBpBjX/ITrRUJWk9TFLM5hoL07LBXbM75iozMvxhb/288bl4EJTTkK?= =?us-ascii?Q?pthile8+gGZUddNzyT80J5ADnDoyzFrbJMsvYSPFe5SS3XrKdXbQln50m3Gs?= =?us-ascii?Q?+q36UIUR/FwezwV1XpQCn/yXHfroTy93qqJbRjuIu1JCOwu7p802JoBmFmX3?= =?us-ascii?Q?e64Hhrf6YlXCmZyjHjxud+maEOCiVXfSBcQIHvhj9qHOOkfO0dlyXlxHyjGv?= =?us-ascii?Q?yHw3HV73OtZFayQl2fpNP+COAbUnoryY5S3UfIwcYLeABiBtn8WaVv4SDZhT?= =?us-ascii?Q?e60xF344P8fGnkWOm8jq587obgAHHhfmXTAIKU3EiH/pwZbSHhfolSqnzixH?= =?us-ascii?Q?c4meO3vdmwKnbSOR+euzMxv2gnhMMoKzGVz/cYlP6pOBec1RKD5c8Nn49PHj?= =?us-ascii?Q?y5fHrphaLqkMD1e0HymF+z7LVyETQi6N3HRZyf0lgDEPviuPHku8dNs5Ohel?= =?us-ascii?Q?bcpMh4mNx/Pf7qzRYBJmNTMSN4nTJIjJ3ZkYeQ2/SJ1KXzEPgWDfPMM5X+LW?= =?us-ascii?Q?D/jhH6mVgLjq7omKQviBSZxvDfa/rowWjZI29Yt1Ia4F6S3XS2EtXEynr/lI?= =?us-ascii?Q?fBtqSmDejjePUGRX2O/cil1m3FITjann7WXUUcvM9fDsdLg88pTVWsaGRlP4?= =?us-ascii?Q?b5Czm4+r98g/hmNhMUjiHLNZajUohG92WvnfEvumX83vAxfXfKzJCEed0nLs?= =?us-ascii?Q?+B19r3b0HfkjjAPAwIPLApnRs6l4I2eMZ4/pcG8KP/Nl47ekuvbiKk8ZQbz9?= =?us-ascii?Q?ADTu05ta6h4spTZ5SwfdgduOW6D/ibOMYgX7gUzcyIADH2AP3S1BgZ72w9+B?= =?us-ascii?Q?4Nm+V3CKb1ofqgVQs8RUdTZFgFzKdyv6FEJ+d4yx7KnHcZaHeph55nHksjpo?= =?us-ascii?Q?mEtLJtc2n+1MVfYKS+FBwd9I=3D?= X-Forefront-PRVS: 0358535363 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BL2PR03MB465; 23:yl+XuYB7IETJWXN9nnXxHPpg2rcxPxitG/K+25n7DC?= =?us-ascii?Q?pYoeYQIsMcGAYPr3eMSExFzjcpi3QI8TVrUHc9jy/ufuZZKeFziy6XFce+R2?= =?us-ascii?Q?uVDlFDYBf0KXqokAxYf04WPMw5Yaf8cJDh2zznGQjl6CET86SaEj0nGy82tF?= =?us-ascii?Q?Jrew//aS3jKx0qAziBAzq5VNnOmMLHfEXp+ahN+ZWNwcetRovIOYsMYH8Ln2?= =?us-ascii?Q?Sm0ZhFEJApdfLLLtqgeNBuim/t+mEsLXy/cX0ctZKJh4EDtxoaHKEXFP27zC?= =?us-ascii?Q?YuitTl9F/a9Rh5ynLQDCvYH/bm2LqFx3uFjvjCqXoO5RgLh0nmGR85myhSOQ?= =?us-ascii?Q?kCNITXfTHBo+qmIOfDqjBSp2BnzIBE7D2RAbQlT5xv/JiwYy/OsTR5LFICJg?= =?us-ascii?Q?e3eWzA0IjIIGvm6Nqba3/849vAXkHriYZCk/qsJBbmLjw6e91freomQntpAk?= =?us-ascii?Q?yW3YbWWzh69RnvbOwrYB7GBcYhKCbu7pfCqu1ad1p/lh/pm/SHRDlpDmKR06?= =?us-ascii?Q?TQQ4FpIwYF8C8pppigNqYmdbKjzkBmxZn8gzgkzxedoBcp0LeXY6ilZXFAcX?= =?us-ascii?Q?oCIkslr2AxW+Q8kn79uNrskZd7czg2dLpsqyUIOicopMmWjADk5F8kVDTQ3a?= =?us-ascii?Q?fs5RL+3DABqQuUf1L9IhUnx9dftWKs4Z9ZsIxc+2wC5lwJeKdRk/FddZFivq?= =?us-ascii?Q?Dj7Ne/HTSuNQUcbF2Da9Jz/qvYZtCRAVm2zuxnjesJb7RSqvBiFf/EyiuZVC?= =?us-ascii?Q?gNT4enGzOKNUD9yZ7WySB0ZNGn7vyKjKP+6mMWWR4PpJxDxGnIsZSR0//Yym?= =?us-ascii?Q?BF+uyXtOUJcLPUphZWkJ+2GDny4RwlH9aPvu6KXbYQrRL/MYkKT/WlM/poYM?= =?us-ascii?Q?C2A8tYRr5hr8oMtf6BSV+WlBE3QuSRWhxuZDq42KNFCiCIDAP90tRQr0dFnU?= =?us-ascii?Q?w8gau3SbrrpLAkxcD/fiTwzq+1zhckIDdvhUgX38abzDDlHE++/QMryjnkzZ?= =?us-ascii?Q?7gsCUOuTFu9w2fq1ss3NDdhUy59ayAYa+PJvz35ARGo/mzT9G2vJu/1s6ptz?= =?us-ascii?Q?6ZUJR51MWxJ/E8WUgF8W/KwsmAZMlsh9RXigFyek1rIkrzoO5AYge7U53545?= =?us-ascii?Q?OF4bf7o3tDRaE+2hKb0SajMkr8wJxNTurN+EHEy7q4iyeg32u6GJDXiuRCTw?= =?us-ascii?Q?n2n8ksVutAiMs=3D?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BL2PR03MB465; 6:yuCDBzMfew1splqgZTUFcFLZn5tgz7kzQf9H9sZ40Wj?= =?us-ascii?Q?jAapctRQyVYRIG9q4ibGSnxJKEYvwZny6f/sH4Q0w5NPbvBg4Lbm3hkwfJYg?= =?us-ascii?Q?dSyyufwxh5k7/ZeBrioAaVcVtisPfL/xv26CQSi2EbNUiW4Ar09xDZ9fQC+P?= =?us-ascii?Q?Vbvd7Z0YLCQQ7bB5VBqXzyC+IL5hBWlXLQoZkchFvh+PmY2cacAGI6YakgKH?= =?us-ascii?Q?UxoTOVjEeW31X8gBDDkIgqi7A8XQx7arlfaLGTBjg5OuVhVaIemBF8qlJYmI?= =?us-ascii?Q?qOiEBEyPXvoBEQ+eijNIJyXcAdTpS6c+PsimOwwYV/og6p6txHVKtebE+tZs?= =?us-ascii?Q?55zSGoWrB2iHb4Fbb92emv8J8GOnKHRjWtLJP58NFQoE3ZlTAVotqew6vr8h?= =?us-ascii?Q?cUnzez4q1z0zX9DZeclMdeEDUFUtc4/3X96q6LejGbB7WYL67SpVmwOiITRR?= =?us-ascii?Q?E2kejR5C8vEpmBvdwdEowF6blmg2lTxlVB0whN2UKzBPgrVcz9CA6ompXmCT?= =?us-ascii?Q?0F9hBbaFm6NORwuiN5M67Sx55/vFh3flmwae3cNBESTJfCG1TDNo1ScPxX8c?= =?us-ascii?Q?Z9yC6gBM5B42U3867iF5/ORnYbXlTLR8teRCeh64Dgcwuub1sheW/BwnnN5B?= =?us-ascii?Q?XJWvg9900o09Y4RK/A/WUYg/geWIKIvUSRGopnmqm3rsQs1UOMiLg/lY16mC?= =?us-ascii?Q?Kss4tJmz8IxxzLJa3e/lWYjVrXwfX2hoE1wQfn/0fcqf3XNO4QSiPLwM7qV9?= =?us-ascii?Q?sV0bMupaUl9aZ3c892UDqpbL5YgeUcWIysB/akEkiVDJ8k8aFIT/Z6+UdChI?= =?us-ascii?Q?Bwa1N70a66uAZ7x+dsap7nGQ5M1W4h0mal3wKjS+JeDLMdpc0od+j1dkrv9B?= =?us-ascii?Q?H/6pQGQbyXOYZ+hUM9gYSHatqgnJ1iZQyExamjezL8KmguccN3MYBlHh08ql?= =?us-ascii?Q?sZwCbFInm52IGyMj+jatr5cSqprF6y6q1EIZGOPbz9UmpiwCgoxYzX9BaayU?= =?us-ascii?Q?=3D?= X-Microsoft-Exchange-Diagnostics: 1; BL2PR03MB465; 5:NmaCMHci2KzozAxkRUuQzAu9cSFQ1OoGbwVMTQdDNVsX0NHxfKlQ4KopiGVz0vrn1WfPeMVvm2o/LNgVwEqzMhUYkCpWZFZK+GXRHxG7HfWiBiE3+dMXOSxiMIRCtWHk08WrShBj0qOPmIw30hNVaeWKQKCUIqQbd+fqXDX9ZmK9Oq0VK/yuB0CrZl8RRVeZvBYpHX9ZJA7sZYuhy2kxf4ELKsBoD8IEuHBP53vvnqMYXuT41MuFWyJwZE/SWTxjw1pFVKcioqU6jcY+tap/hDPje2MKL4FEzQeVx5SQbuFqYtTA4A/vWRbggp9myf/zAbF3iereE/+mSM1MecVJRofju92Ta50yQlekNdgnemKLsfNdmEKwOclDtl1XfI/LLd3W2RjXmKH1DNoLV17bR5dC9p+NaE9+k7aeGcV4EOXGyaSx7P31mCuzXiwESnN/dAxmPXaI4TnZgS68flsjmby2tFRbNUDmg9WRjppH3Kg8i/Y+Yl+++QCv0+a3tDOBDEmCGcGKZv8znMeUB3YR7A==; 24:/GCq0RVOeKSV2bzjvLwXN1689nPn+EtP/BaiVN5ddfjGc+th+SuNZ3GPtay56VGxRZD3n11hfhaFUvbSamLgTeVpMGpKyDKv0HHqO2ivYS8= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BL2PR03MB465; 7:KfoG89M+s/6TrTCVOjLSUrxXUDAKS2xqwNFAMw9TLzeCppv/4vBQXD3xNqndj5z/FqyMLjeCkhyBvr4fdFd4ezHBYbZf4rOz7+FLTi/6FdzOMfwB5GSRw7vWYdhClF4DmWmjFKQVirtbDHUJwq+UGqtXVH11j94hSLY6M6dGGaflk/1Ar2jX9hVUAgo6ljNkCKAZdUlfK1iVMGKDyFKRAxvFbMytR3I2f6Gh91AfoAydj5FdYvGNxopjH5Yfq7Z3f7iwp6ycrVILWV1GaFcvLCIvZFGwIKAkMfkPcD7xamxTfmUjLWjh5M6Fp0yJHffPcs0/oil46c6QtziQ9twHnIgFKUtJDOed5Ojehv8D+SWKLROpB0CQTP+sdzb9yfG5BnpemywyoB/QmjAgHBQkyqt67z8yY4TcRmQPZ0I5h7/eYugkmED7jzJ1rfXV3VnfbPQgY5qul4fRtl22y72s0JQA/wHFbZs2sLhtxBbqeejr3B6sK9ovaHCW0GXt+praMnQ6jUyb7DEykak22UDJdDIqLy0cq0mgChRb5ALRQEH1HvZvRzHj+FHlHOA1SRGa8YD8x3cyfpi+78yQgY5d2IsE6RZ3uMbBPbApIAHJbsvAk7iD6u1Gai0sH9L948xM0x8F/Q+CuG5EA7ARFGSNqBNbLRtVkZLsqaaoaThY9XPBo4+odxP6R6zJxNhWnqIf7UkyPV8FEfic6/EAgZqpGD5z6P885goUQoKDjMTr8HgCmNrd2RKTGjxJr8zPlocLgX4f/d6cNcHgVEbL+4lLQGwXJJctTh6EiX5lXl0Q9mM= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jul 2017 12:22:47.1504 (UTC) X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e; Ip=[192.88.168.50]; Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL2PR03MB465 Subject: [dpdk-dev] [PATCH 1/2] mempool: check the support for the given mempool 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: Tue, 04 Jul 2017 12:22:51 -0000 External offloaded mempool may not be available always or compatible. This check enables run time verification of the presence of external mempool before the mempool ops are installed. This patch introduces new optional "supported" mempool ops function to check if a given mempool instance is available and compatible. If this is not defined, the default will be that mempool is supported. Signed-off-by: Hemant Agrawal --- lib/librte_mempool/rte_mempool.h | 24 ++++++++++++++++++++++++ lib/librte_mempool/rte_mempool_ops.c | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) diff --git a/lib/librte_mempool/rte_mempool.h b/lib/librte_mempool/rte_mempool.h index 76b5b3b..1ae2e70 100644 --- a/lib/librte_mempool/rte_mempool.h +++ b/lib/librte_mempool/rte_mempool.h @@ -389,6 +389,12 @@ typedef int (*rte_mempool_dequeue_t)(struct rte_mempool *mp, */ typedef unsigned (*rte_mempool_get_count)(const struct rte_mempool *mp); +/** + * Return if the given mempool is supported and compatible for this instance. + * it is optional to implement for mempools + */ +typedef int (*rte_mempool_supported)(const struct rte_mempool *mp); + /** Structure defining mempool operations structure */ struct rte_mempool_ops { char name[RTE_MEMPOOL_OPS_NAMESIZE]; /**< Name of mempool ops struct. */ @@ -397,6 +403,8 @@ 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_supported supported; + /**< Verify if mempool is supported for usages*/ } __rte_cache_aligned; #define RTE_MEMPOOL_MAX_OPS_IDX 16 /**< Max registered ops structs */ @@ -518,6 +526,21 @@ void rte_mempool_ops_free(struct rte_mempool *mp); /** + * Check the given mempool availability and compatibility. + * + * @param mp + * Pointer to the memory pool. + * @param name + * Name of the ops structure to use for this mempool. + * @return + * 0: Success; mempool instance is supported and compatible. + * - <0: Error; mempool instance is not supported or not compatible. + */ +int +rte_mempool_ops_check_support(const struct rte_mempool *mp, + const char *name); + +/** * Set the ops of a mempool. * * This can only be done on a mempool that is not populated, i.e. just after @@ -533,6 +556,7 @@ rte_mempool_ops_free(struct rte_mempool *mp); * - 0: Success; the mempool is now using the requested ops functions. * - -EINVAL - Invalid ops struct name provided. * - -EEXIST - mempool already has an ops struct assigned. + * - -ENOTSUP - mempool instance not supported. */ int rte_mempool_set_ops_byname(struct rte_mempool *mp, const char *name, diff --git a/lib/librte_mempool/rte_mempool_ops.c b/lib/librte_mempool/rte_mempool_ops.c index 5f24de2..c426a9a 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->supported = h->supported; rte_spinlock_unlock(&rte_mempool_ops_table.sl); @@ -123,6 +124,31 @@ rte_mempool_ops_get_count(const struct rte_mempool *mp) return ops->get_count(mp); } +/* check if given mempool is supported and compatible for this instance. */ +int +rte_mempool_ops_check_support(const struct rte_mempool *mp, const char *name) +{ + unsigned i; + struct rte_mempool_ops *ops = NULL; + + for (i = 0; i < rte_mempool_ops_table.num_ops; i++) { + if (!strcmp(name, rte_mempool_ops_table.ops[i].name)) { + ops = &rte_mempool_ops_table.ops[i]; + break; + } + } + + if (ops == NULL) + return -EINVAL; + + if (ops->supported) { + if (ops->supported(mp)) + return -ENOTSUP; + } + + return 0; +} + /* sets mempool ops previously registered by rte_mempool_register_ops. */ int rte_mempool_set_ops_byname(struct rte_mempool *mp, const char *name, @@ -146,6 +172,12 @@ rte_mempool_set_ops_byname(struct rte_mempool *mp, const char *name, if (ops == NULL) return -EINVAL; + /* verify if the given mempool is supported for this instance */ + if (ops->supported) { + if (ops->supported(mp)) + return -ENOTSUP; + } + mp->ops_index = i; mp->pool_config = pool_config; return 0; -- 2.7.4