From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on0046.outbound.protection.outlook.com [104.47.36.46]) by dpdk.org (Postfix) with ESMTP id 29D197CDE for ; Wed, 21 Jun 2017 19:33:53 +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=/hzdWc2Lu4hNpnYWHMaU8manxCSG4FtMgH2pZJXN2qQ=; b=meZ8IoCdo/KKuxlMMfe3XKj0AwjeE1rEDe24SS84v1K64Wb2GNG7F/G1E7D8CVcg5Qw7ZT4yjLHseMLGvZiDmXgnxjJg60XxtAfqNu7X5BOud2kzi9o+eiLathajtKyfgppW5o4AbA7q8CrOT0KKi/677q2Mrd1Wrni28CInOMw= 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:49 +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:48 +0000 Message-Id: <20170621173248.1313-5-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: 61109d07-2368-4df2-cc95-08d4b8cbaeb3 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:MND+Urfmsn2hdMUJo/lzuj0vdxONPSSD8JaC0mulmsn58LLDeUTbOlgE7SGM9BeEO/7qyz2yFTrRZu+D8A5dYkTMNxUxaAhEjJ8tVk+gOXxLyuL1Dt/N6rmACttjM1oMtE8xUGizvdX/slDdivfPHs3La1BqPi7d2anmJUShe6HE24TfEHBWDWuUHkP/5vzPaNDxibEh/Md81yht80PxCscaxNUMuIQCc7cWgVX5fK4WLpw+l51SzoeahLliIRgw7SdRkFL13Fj/9GAvfCWuQ8kafKkHAEzBUn/RJRspFHmYO/WWwg+vvAjj0xPN+lhdLY0GwBaUF5jy5fQi1cMomznKfMm4PEDHTXqk5zVFG63Ki/ASMKyMaYHgEQubxvDIXuFFlDsRZdH0EflqLW6SxTByiGbp54kKU8lNpecymOMamqS8ZcHeYghOc1AZ8xmOYWGRO33oWSUatlUI2Vi0HMo1xAgEtiOjROJ+Fvj6q3W+yp122WBXzOOmMvTNXFBCRPxT45lf2AZDfpXEym8AV4dlL2yHzgG9+CNDzZ6W5G+e0NRenXZx08MPHKxRB8eNIgRR1jx8YU/bG79blJPTft5VIPOGHWSL6T3x5m0a90IPu7xENPm/vqpTxusrzKt6lSK7QGvSpZdtzEh3xesUWuKN72MTtWiH8ko13kSDkGU44It8FqnXmGk4uEqQW7D7 X-MS-TrafficTypeDiagnostic: BN6PR07MB3092: X-Microsoft-Exchange-Diagnostics: 1; BN6PR07MB3092; 25:42/5LvuAkr5acs3KaIiLq88TRPS2qaq2PA0BXP0YVtt3EUHolzomLUriXXvf/Dpa65HKZy8uNDUE4yTCMWBThuzVePuW8+yeUhpzj6RhlOx1LIhr5mN+K+ouap8fp+nzv1xUWTghcaPDsTDY5SSqh2dIuGbDGQ4vPb8RT+kGdWJAHBr6lTPAcLk7mLzS9bop5X2CC+cQu25Ja/cVjV9Le/XjRUE54j3o6j14bNwQWbjlvy98NeXyst/aXpAMtjnyV6BlBtnKOqviOAgMkZXlg1ZrCZHaq+O4AEFUSb82MKbiZxKTN/Wa5AAQlShT19V3ljSfRn94ZImgxOyYb3fPDTpZrGNLU9NlQ8vt0gY6JS1ac7fkMQ/El8ekwmySbLkg/dHebVDAVt35XX+3jsjiCbEIatzjn0qDGeJ361mnR/Sk2kr1S7qD2rhj58FVozemOJGTi4ZVGCh4fzHOU5C0a2PZyMV0FVEiDpfVyFLXTcftkB9y25f+kKntIt7w1s0Fxfd35QWGi46/lGHWy57MdEZVlMXNlSd8RkcGCp8CfFSRDIsC5L5SZpNs6CyMs+rAJn94nPOe3y7RwQEZ5uvv5R15z4So+JHJdfefR4eoJ8GEVGm5FywBRdTWZQKLxlr3OJuLzhcby8NxE9Oma2PMAXIc3Zs05At3YPCGvZYVqBtMC6sksy1MDkC1FFQ2HnhsaX6QEgnm93ZTrzg9Fg53J7Rpw2ujqXKtF7gZZzqrgrScwBvNwNTxqEJ1bnD8/5K9AywJ4YCL8LYE+9iQT6rSRJbi+tg2ZarvRVkwQLcWFLIzVd67LnmcRcNxhBw/qPHUCxEHlN9QN1x1u5vL7pogEYu6Z3ThTu9GT+S0vE4Rfvs2YjNHc2vi2R2G4YzKVMzEWOdw8x7dESNAif88PKVcxy6KSZixjyS1fRxsimuq6w4= X-Microsoft-Exchange-Diagnostics: 1; BN6PR07MB3092; 31:H3iXm5cfwEpjO+2BDysKZe2ghrBQxuU+n0xzQ/Ip5CZIiL7Q/6a3QyrWzdju2DphMHJM7FpIsMlOA1I02bqWoRn2PofAwtPqcxSCZ8uWKHy3byR0b26j4aETQKhJ2IJBUDGGEu3c3Nd+Jw8DHSHBe8d+8cJBGFdbyAo+jN4C5Ai1/dbHTxByiSGAxdZXOFClJFoz18wqXBd5EoM/HrMKJw7cRa1HrUrU9sNRZbvJLgNgpnTDWvHUU2IPliObW6yGcC+6dpm/uC0lCMyLL+XOLseEuoEzcjsO61c94Y4J4pwEqlBKz5QCFY3fS5KmtieUTf9IZ62TMxRFpqntE+6wq8OuaNPaSlcIJ/+u9wDFTjgf/0Y8wpXfE8eMje5SmGJh1O201S4ldlReyAokmBktH941wClD+YazCB+voRGr0FoR0yQ9Xy3nbuwJThhxXWa2dSssMQuH6RlBSRj41B5RRfSZqT0ZLdLai/mmF6wgw79fbipSYKc6znKJrNFMZoDag9kUiPi+tFnGbPdHC9HbjteaCbageoYfTHe09v9Yx3OQ9LePyVkqhiZe8k9pNjWTkJD5uZ+d8exwDhESL+o/sg8AUpKIPf5c1CXGwpIMI1no/kUuXp9KwuMfQtK8IFP83SWo78M6qDbaaKYhPhi4NtrLw+UwWOmqaW7fs8te6dg= X-Microsoft-Exchange-Diagnostics: 1; BN6PR07MB3092; 20:Lh4OHJk4+ApVGixWCRpTi5sv7qj1FHu7+csbLsta8Xhja8/rczMuRxZu0dYTzVXYxhPT5eNxpDj9KT9LX5nL9c52haiOouO1JYFKzX+BpVTnj5WeydIav01iSVgjbo6yYjaLxece7IRZgUPooeXXxm29XXcXxPwjOVOAvwz971vLISZ0BotDJkqSr6OjZRo4olvQ91fvYlfNmA603jQJS+5/LMAGXOZiIGYXh8m+qEVsWqU1Lt8Zsnvt1lofdrFwGcpSnVg5zpQzhdxjBK3p2wVyuisabGbmyU4AtEk7WHdHldN/GKYiDf4UrT6HxqPu3nZzV+N9iJhymB9oxs+O+6nJTG1ilScjzsblasm+p180LcMotV8R5qrQg5des+ZIOYNzKPNOAMBz0+GuZHq0SbaBDkqVf626AaGSCbpCQf6rx95q/EAAoxxj7SlBO8GjYtMu8Qu7VV3OQ8EgWfnfHeQVzdP71KyOeURHAzUzN5u8AdaqcJTlwF8kf6/hhMUMHuX2OARHVH8g55f5+8dYJOYDO31PkvXq3/ITXuN3hroE2HbNwsPXOGbX1M51QbdnuUdh/5HxklTjb442v2QHGOE0gCtS10Nh7gmkNIy0Sb8= 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:zupYVi1DMj3rFs4zLxtw6bCIfYEBJO4cASuCMpfd2K?= =?us-ascii?Q?2rMhc+GCT1Rgcg8A6sWwGuNgxZr5ptn5apAzJkneiZsLgkwnYWtx9Fi4WJAd?= =?us-ascii?Q?ahcd0ioCV1gwb5sf3DrsQWDixNwsG+/nuB3JB8lP3EIUEpYQb9li3s6RbfAg?= =?us-ascii?Q?lrb9XGzcHc2/YSOTustGIeqNWMyriiApBAFKOBemYLtebDH7qKuxpmCSUTmN?= =?us-ascii?Q?2G5Ab1eDOidr1yMuYDzetXc3AiU3m+Au05NrxPod+71hc4S9wcCgyWsamLpn?= =?us-ascii?Q?5W0RotaCbQfda33h5CA0YNwVlBQ2o5JT8kL9mJXIzIbZoo4pap+TPsbvMGnm?= =?us-ascii?Q?ResqJsNqvfxHeKqZLbUzEMOxcudmllfvNU5fBEAzIYHjIpnmacjNVm5T1XhK?= =?us-ascii?Q?kCpi1nH+0oKSnHQRe/FUt+M34LeC9dvDRyDjK/fD1KTpb4iEgKsywRFjSheC?= =?us-ascii?Q?m+VgIUdpPEdwLLn27hJKDLaei7WJ8WQaMTMEjJsav58V6Vkuww52EYIXpGMI?= =?us-ascii?Q?c20kdC13hUk3T86F5CTfySanZuaFlCBMCuVJ96yV2DQg02E9UlLB4MDz1x/k?= =?us-ascii?Q?qaNekUT9kpJN0JUAdNbk16Tg0dGlQkboZ0cf5DJa+X9Q0UEoqhedqQcKssQi?= =?us-ascii?Q?UTFfifi+3lCJ0cccgMoUya8cGgKRVhSiUa/lk1rJSuvotzDnxlh93e0s4/tO?= =?us-ascii?Q?ktpV/YPoTroQ47OEnXH4aBkG3/1m5yTLlXaR7NSWtf+btWxsuQ1hCkkdX/KS?= =?us-ascii?Q?/C/LQhWCAY+Zbdz+T9d7+6vtIQmGyWb+jXJ36ReFx6yVBMU64td6uf+ynu+L?= =?us-ascii?Q?oXS+a/uS1hDd+faL+tPLCFn94c04IGGXW+vDsmyakPkI+pdoDPvBDjXQtj8a?= =?us-ascii?Q?KWSfzTKB6kTj/ZKngaAIlHV4Wn9X5ikYiBQVPuva/e+2eaG1jdNP3HVdfE6a?= =?us-ascii?Q?sINYma7aMYo+KXgwx2zoeBGHjBQfJH+JeejNwoQpeMe6HgVvO09RnjklGHuz?= =?us-ascii?Q?WJTQSbiiEdpfkKJAAnFc8LBh39UB9DySIbaRsCzB2gs3K5q+78vPfFBBBvCO?= =?us-ascii?Q?y45QkPdYPRJQ4TCZID5ighGpHSERwN06LmvRVATWNVNUEyafAf2SiARvUwAu?= =?us-ascii?Q?z7Au//CDg=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)(15650500001)(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:hdzWfNpPUMxlDhHOkS9FbBJ/j5H39O0ZPueHXWDCp?= =?us-ascii?Q?abjMpulAIIAM4q9zhr4uGzSPrmUVWQTu/YDcmzVdl7XffG5T8Ohiv59WTdVr?= =?us-ascii?Q?+MfVWQaXyJvE6bWz9AYtATWaa9o4K/p13uipcZGQP2XXVAIwTUHbuhOBPAJG?= =?us-ascii?Q?YhY/4TG/fAs+aq/PYRAMLyPnLWonDp+Vv7/APIZgXbFpZ8Ym0NbPNAnKL/T/?= =?us-ascii?Q?GXaMiU+KrNH3Zlpwa0MPpgABl8MCVkLOHXr4Yr9LYiax6NhZpQBCBWm908p+?= =?us-ascii?Q?saBrWGHilNNbKg2j1SxOFyObi2CVXoDly1nl2fFxwRR2ATV1IJ9w6FPgxTmj?= =?us-ascii?Q?2etot/YtyuApEhd2tW9ogs6GaCDJVHFGRmFqFeV+qDtgfv7/lf6aXSbZoxGe?= =?us-ascii?Q?PnMZhxqDM5E7F7LTcA6aLi0OXMEM1t3qSpizMhlw8TRzv4fwcBNEG+p5AHeE?= =?us-ascii?Q?734zFh8nR5GSRUYDTXeaSmbHkBV78UPORlTmk4aXvoEcvQd8V9xxWzqVwkeb?= =?us-ascii?Q?Usj6u+MIAkAkRcxW34c6l7BCdm9sDzmJCHC1aiPyuTlrxns6ROL6+DT1Cjis?= =?us-ascii?Q?80ArpqkWAKCMth6gpMEMizx3v8qgsbH/jmRyJXokoEWxxkZjtTNHkRH+X7dY?= =?us-ascii?Q?GYJrcPnmbwkgRFMZikp4w1OTFYLLXJcpfipEdD6adF3NKlXUVl4DEI0RCPrb?= =?us-ascii?Q?/j2Ys71M+MU1O1aES2ZW8nqB/1BK6SlGkhx8FcwpHJ6546NqZuKzue7sbPB0?= =?us-ascii?Q?JsWCyya0AfO+cjtO+VVEQqGHSvTBpSAcrDgQeEaLjBYWG1nVzU7o2zyotjJs?= =?us-ascii?Q?zERpr9YlZLj0adCWBQE+lXBZzXsL6b9lbDLTE6fGOtjxQS15hIkvj5SBUdk2?= =?us-ascii?Q?2b+kCWNjWjhRiMiUPP725YxwHcEWFJeG5/4LhOUJ/9yVFFn38tyoDm3qNiIz?= =?us-ascii?Q?M4tivi6di2/YekYYLUdmYIQDmR6PLGIT1iBq3LTRWJJE+lh26/y9F8NGxOt3?= =?us-ascii?Q?mTJrM6P3ZtGNbOjWIfldUFJf8nHdb60nKxaMJGz7Mde1nfQXBhE2rJ7vrBxn?= =?us-ascii?Q?3aGhRnhJe21BhbbnShTOBoGftuvRrrkk/1tmXotlKYDD+4Mog=3D=3D?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN6PR07MB3092; 6:YEQCghZFYLtFy1AcAq8KvCuBcSzfLaULA17qYGw1cC?= =?us-ascii?Q?pxonRM8IMvHVY84AlA+pHYTwSZe3QTb07OURAp6cimGsrnoo0BRpynqpz9YP?= =?us-ascii?Q?TecTR4hVI+AH5KHb8CpOF8WBRToqWpRNG7/aOwHigf7b+ghyfCSfEXJNYwcq?= =?us-ascii?Q?qdREeWDYL6XVeLiJ9/SEdMTMJ0Cp4ePNYSFn8lCms0s+BP+e1TIwwVd6xRPr?= =?us-ascii?Q?zCf2A6mSZDZUzeoCM5z4Yq/3PNU22XvfcdWgg8KQWbDLEnwdxYhRtMv/KoHZ?= =?us-ascii?Q?BsXSXVmebpgl6xnp6sxLhnaEPO/quZZLko0FLiNjCjADHahitUml4lIRj368?= =?us-ascii?Q?dHZ9ItQxruAdNqOUvV9ZJsGIBJ9o3CkCabr/4raA3zzxRq8No7XDUEJ5L+Ss?= =?us-ascii?Q?kGKHVqETjRDdyB/lplbejdt+XY3UUFZLpOifT/qLqCRGAHMxLsBjo77f0HEo?= =?us-ascii?Q?Menbf2GW9Gi58sT1q0G6idC06rCIfOADXW7YGH9BZKkqHnFdBgSTqbuqXCRH?= =?us-ascii?Q?YcLF/cQLdzy4Xup2JySyn3cVs196wBeR5mYDQW/fJQVgunIfSKROKXKJ/5ob?= =?us-ascii?Q?AjI1PKLGkTn7xzdkX5505f2B9ZxbmtbdXIg9FxlnNvfsWhi6Ay4nvx+jHSYT?= =?us-ascii?Q?GvzojSysWjNLd5eqTXMSlfKh4+vbNnFlnjSwSVY509rTZuGmPrnO+ji9dx5y?= =?us-ascii?Q?13qqlPvcPV0J0HRPltOJuKvxkQCnTZOX0NRiZM/YUWT//fDNFgOgEbYsCbmj?= =?us-ascii?Q?i0P5d5Y8LXK5lR2Sh3/brEOA2g3UvNn/t8Kvv1Boj8T2r91++XJFImc2d9G6?= =?us-ascii?Q?J38ldqNLGBYhzav0B9sGLF87805sXLLcpd2d4ESwnkP/lifQGRxyeU3QnSl0?= =?us-ascii?Q?Ajo4uI1gZnv5NOvu8CnWtmjXojTF6EadFWHFrsUoolU1gyRuGEPCcbZFPJIY?= =?us-ascii?Q?HESrXrc0zthXTsiOyd8FSXluCbasUXyGlYlsTDn4AHnk5ru9YjlpCH4EAygl?= =?us-ascii?Q?o=3D?= X-Microsoft-Exchange-Diagnostics: 1; BN6PR07MB3092; 5:ProjFmtgWDXqiF3AEEAKlyDa3GOmhexTvWKqO1QlGHZ7COd3yKE5qrkdQP158qB6WEX1I9fV4Nu9ha1wGGxW2FMxmL5rA34nNmatoo6wwEamciJBE+ZpvdSjEewlH5M0+jI4KnSYYcDdKXfNK9IlffrbNotuY7jIZnBuqzRoh1bp+HjW+lzOqORKsViU9F2LyAkJ4qIyD+XNjI5uVMc3SmMlQyirj5pnDTN+HogWYyWLB6v7YH4fFpF5tpcCBNXyy+m2k//B23Fji3lLDNm+jwRNM3X5NeahnqMMMZ0n9eL4XheACgcLgmNj3KhafgI2KV3YJFH+TCP7ZezM/OQNtIB1VcekgFHWD4Vgj7v7nqBXEVfEie1hBu7FQTx6zIiuo1TazXLP4AKZuM7LevWiTtN3jxX8wEuiqoNPV/JTwwEpXfXfEPHvlbOM7GzFFvySzXPKfUq0TSxWlpp1zCsJZSW5o0ZZRDPFWHpLRcGaezveZpeYzEnoyOurSE3xN/5p; 24:dwPPNY7SdMCgXz5D8eUC54sl2HDMr/KpBXARnv3xjS111PPRIVx6i0bYlIXh5A7AuOPXOj3JekWnKQ2CwEiNz3uu+3oWHD7JtD/qhmO2PaQ= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN6PR07MB3092; 7:BOhqPXc5q7WTPwcX10K4PlGgbRQQJUpA12W0KuHeTmFI/wwqUrA/kcnfz86Sp9xBKf0mWbF2NVbKBoPqZ/4NznIqSyXMlMlfilEMgJjGR+j/S+9+BhbsbkgXBR033H7qrqapr5FseQWWBWRcSQFiDShb3ssttUuijFMrZXHPVtNNzfc5bowuT6SRr0PvRApdnTgH5gTvyAQdu8F+3ccRzjHSdb78dGOjvy9qAB/clFw5H2SItXP8xd+LQU1B6/cEgoWByep2aKu9KurwoW7w+CUX9RjIaEUT/rcVnyLDwwZeGB9URUI8N1hwChEXlL+7IAnuslXvjD/1cyS6lYUs5rraecCPsxKA6ZD4zaHDEJYskz9M7svMB863FDe4RDrTUHnI5ymC8lWbhzzDrTRZhglaSS6h+OBi04DuSXSJSwWddtkaSbOml63lNf+KxYku8kYFmYv5+dS+e01D4nrhwivigLxpyXZE6wnN0eKJj9JpWS64rqJ+3g3A8g2O7Ow6zz4j8zHVWxbmwxTR6BZ3S9Dx/VzIsM7gN3NgJU/LTcYG8/BRdd/mNTdAjPo6AogQT9B2xFMJUGyHZTjJQcnKdhApIKl+SVVXxtHHfuit1W0jvuULTcvTRBeVFIAVSpo4nX7Fx8it6v8tqFu0An7/VGJqgCGLZ9AJermfdPYZ42MM8LmLag3wdvLDN61oLu8eebL8V6hvTnnD93TBRmqritcDEUGQpdFb5BUrRGSBv60Jn1FB+tM6veVuWbo0eTos0+mnDSZJPe4iIUzbzIKHQwQjV0jiFsDLB2QQrG2z3TM= X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jun 2017 17:33:49.4145 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR07MB3092 Subject: [dpdk-dev] [PATCH 4/4] mempool: update range info to pool 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:54 -0000 HW pool manager e.g. Octeontx SoC demands s/w to program start and end address of pool. Currently, there is no such handle in external mempool. Introducing rte_mempool_update_range handle which will let HW(pool manager) know when common layer selects hugepage: For each hugepage - update its start/end address to HW pool manager. Signed-off-by: Santosh Shukla Signed-off-by: Jerin Jacob --- lib/librte_mempool/rte_mempool.c | 2 ++ lib/librte_mempool/rte_mempool.h | 24 ++++++++++++++++++++++++ lib/librte_mempool/rte_mempool_ops.c | 13 +++++++++++++ lib/librte_mempool/rte_mempool_version.map | 1 + 4 files changed, 40 insertions(+) diff --git a/lib/librte_mempool/rte_mempool.c b/lib/librte_mempool/rte_mempool.c index 2010857f0..f8249f6b2 100644 --- a/lib/librte_mempool/rte_mempool.c +++ b/lib/librte_mempool/rte_mempool.c @@ -354,6 +354,8 @@ rte_mempool_populate_phys(struct rte_mempool *mp, char *vaddr, struct rte_mempool_memhdr *memhdr; int ret; + rte_mempool_ops_update_range(mp, vaddr, paddr, len); + /* create the internal ring if not already done */ if ((mp->flags & MEMPOOL_F_POOL_CREATED) == 0) { ret = rte_mempool_ops_alloc(mp); diff --git a/lib/librte_mempool/rte_mempool.h b/lib/librte_mempool/rte_mempool.h index 99a20263d..ad5bf6d3e 100644 --- a/lib/librte_mempool/rte_mempool.h +++ b/lib/librte_mempool/rte_mempool.h @@ -398,6 +398,12 @@ typedef unsigned (*rte_mempool_get_count)(const struct rte_mempool *mp); typedef int (*rte_mempool_get_hw_cap_t)(struct rte_mempool *mp); +/** + * Update range info to mempool. + */ +typedef void (*rte_mempool_update_range_t)(struct rte_mempool *mp, + char *vaddr, phys_addr_t paddr, size_t len); + /** Structure defining mempool operations structure */ struct rte_mempool_ops { char name[RTE_MEMPOOL_OPS_NAMESIZE]; /**< Name of mempool ops struct. */ @@ -407,6 +413,7 @@ struct rte_mempool_ops { 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_mempool_update_range_t update_range; /**< Update range to mempool */ } __rte_cache_aligned; #define RTE_MEMPOOL_MAX_OPS_IDX 16 /**< Max registered ops structs */ @@ -531,6 +538,23 @@ rte_mempool_ops_get_count(const struct rte_mempool *mp); int rte_mempool_ops_get_hw_cap(struct rte_mempool *mp); + +/** + * @internal wrapper for mempool_ops update_range callback. + * + * @param mp + * Pointer to the memory pool. + * @param vaddr + * Pointer to the buffer virtual address + * @param paddr + * Pointer to the buffer physical address + * @param len + * Pool size + */ +void +rte_mempool_ops_update_range(struct rte_mempool *mp, + char *vaddr, phys_addr_t paddr, size_t len); + /** * @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 3a09f5d32..a61707a2b 100644 --- a/lib/librte_mempool/rte_mempool_ops.c +++ b/lib/librte_mempool/rte_mempool_ops.c @@ -86,6 +86,7 @@ rte_mempool_register_ops(const struct rte_mempool_ops *h) ops->dequeue = h->dequeue; ops->get_count = h->get_count; ops->get_hw_cap = h->get_hw_cap; + ops->update_range = h->update_range; rte_spinlock_unlock(&rte_mempool_ops_table.sl); @@ -137,6 +138,18 @@ rte_mempool_ops_get_hw_cap(struct rte_mempool *mp) return -ENOENT; } +/* wrapper to update range info to external mempool */ +void +rte_mempool_ops_update_range(struct rte_mempool *mp, char *vaddr, + phys_addr_t paddr, size_t len) +{ + struct rte_mempool_ops *ops; + + ops = rte_mempool_get_ops(mp->ops_index); + if (ops->update_range) + ops->update_range(mp, vaddr, paddr, len); +} + /* 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 d92334672..fb9ac5c63 100644 --- a/lib/librte_mempool/rte_mempool_version.map +++ b/lib/librte_mempool/rte_mempool_version.map @@ -46,5 +46,6 @@ DPDK_17.08 { global: rte_mempool_ops_get_hw_cap; + rte_mempool_ops_update_range; } DPDK_17.05; -- 2.13.0