From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <Jerin.JacobKollanukkaran@cavium.com>
Received: from NAM03-CO1-obe.outbound.protection.outlook.com
 (mail-co1nam03on0057.outbound.protection.outlook.com [104.47.40.57])
 by dpdk.org (Postfix) with ESMTP id 85E552A58
 for <dev@dpdk.org>; Wed,  5 Jul 2017 07:30: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=0xzOoKXLSVMVT+dZLugqv/c4wyPiDi4dSyn74ps2yG0=;
 b=hSx2G5eB2bF0+7ImEcH8EO1gRsTA30evg3E5Hh+d0Td9BmVOpnnYfmgN7XQiyKmvkyzglm3UFvWUs9tti+SpdsLAR9T2DKZkxHw+wa14sygCL2wwsSXr2jcZRPOAT1hsZiRCGRTs9vVds/a7L91GH+Hc+m6j9uNkE44t0OMqXPA=
Authentication-Results: intel.com; dkim=none (message not signed)
 header.d=none;intel.com; dmarc=none action=none
 header.from=caviumnetworks.com;
Received: from jerin (111.93.218.67) by
 BN3PR0701MB1719.namprd07.prod.outlook.com (10.163.39.18) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id
 15.1.1220.11; Wed, 5 Jul 2017 05:30:39 +0000
Date: Wed, 5 Jul 2017 11:00:22 +0530
From: Jerin Jacob <jerin.jacob@caviumnetworks.com>
To: "Hunt, David" <david.hunt@intel.com>
Cc: dev@dpdk.org, harry.van.haaren@intel.com, Gage Eads <gage.eads@intel.com>,
 Bruce Richardson <bruce.richardson@intel.com>
Message-ID: <20170705052853.GA8031@jerin>
References: <1498751388-41571-2-git-send-email-david.hunt@intel.com>
 <1498830673-56759-1-git-send-email-david.hunt@intel.com>
 <1498830673-56759-2-git-send-email-david.hunt@intel.com>
 <20170703035755.GA6275@jerin>
 <25452a77-c5ae-97e8-b41a-5dfcb9fb19a6@intel.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <25452a77-c5ae-97e8-b41a-5dfcb9fb19a6@intel.com>
User-Agent: Mutt/1.8.3 (2017-05-23)
X-Originating-IP: [111.93.218.67]
X-ClientProxiedBy: PN1PR01CA0088.INDPRD01.PROD.OUTLOOK.COM (10.174.144.156) To
 BN3PR0701MB1719.namprd07.prod.outlook.com (10.163.39.18)
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: 37d737f2-087f-4016-6c5f-08d4c366f9cd
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:BN3PR0701MB1719; 
X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1719;
 3:8okdBOaPo+N8VZ15gWlD3rUPa7AblstpeOVZVxUfwG5rYMR6rXoA1HUct455Ie0DvTWWRGAVrLSjnECbQ75R1+3hltilkhixVGzcQvoSkdOIGsMFs0RYtYVQehzRCkRgrxD92VUtCy2mhuDImeGIqyoR0Wwvo3EpwkJOKAVwKSoHHtuoWxsDRsyXfcfE4Upi16cGuv3MNiT642lpwP6WDknmt1Zm3UDQIxXQsGlQphyLN7218wr72hfH3qL6J64nxA9Gn97XWfakXF/1C30SiLpAY6GVQ4jQzFuVQT0IzFzu2pBPfB/wmWtZFGWUOXIbF6NIUl9vK+RCN7bTD7SZtkl1dPU4VL0LJga5LDgZJt4wEkVRclDGWpo05u07mtj1XHLXWx+tolSLnYwU1PhMeWfexDGTpEs7xmr8TBmRgjVVAa1Xoen9eP/j7GQidCXy4+sIdIMLzVDRLUjX0kC5BW23BXsImmdZlSEpramLd5MRNPF+ZdoZpcvv8vJGClzeFY00u3rjD9GzwBXvNPhDZ9jxBVuHQay8TT+EVQ2ztZqe9S9VBbOIXTM6jYuNkT6lhjbVJJn3pKAnj1+fl5VpbhQvI7XamucafPuHLWIOn7aiNJmHltB/gjuDOlkNXn+2NWoS86+LVW86g1FUHtrA8GonuqHoUWkumon2RzM8jYho0GqQocQdN/stVdxXKr5vJFqj9Dh41mvh2Z7EQ0vi3sb9cpfvprCzU1+x8Sj/Pgj0b5Hmt8Xz37CuIkzBN6b7
X-MS-TrafficTypeDiagnostic: BN3PR0701MB1719:
X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1719;
 25:QGTzLR7U2f4992BjjHB9MD2WPF7zO+WRo0zT05kME9E9tPm3p3/7XnIxYW6d8ru30ckFBT/a7lmsHXf0N034drPliPB7gNbv9KM/Qw5v6SMhQAhPlXxeAAgFa+50qiOSeqmnTjzP2xbOwyDM5/mcEv2AcHyYRZGnqtIf6LTeqs32t/ITGl+MRbK8L1YyCCJpCjhDc83ijI35Kv96qMP3IHPfSmQZzXSOH+xbUXQm0wJqPIQodxoj4F3HzGfdypcT3z3Er9f3m1GZ2cfPcv/4f30jaEh0iOVQw3zV7ZWbUGq15D4RdmgJ9KAVYJm/yNbusRvLsk3T/rULMItRCn5SuUGdbDtBhOorMIewQRoFljCORu4HuGLR4bEzJR3Hl6TrPbf7Nx8mE92O0xMnuYPThEQYNAASmqva7ls7PeD0aCmmCpRETStG2NINgxL3ObMSqvsOA8m8vbrEO/uwsfzKwyIRYMLRi7znWGz/V0ODTyuHLkxoyoVJT1i5TE7QJLwn4S2yjBepv4MzWbNigqwhafIg9cyP4wdpVswhWw+Y0u9oEvkt6E1kJiSgY2X69cw20FG5J/dZjlPbhKZBI2BBLyE8B4sLeVOw2VYbCiTnRFTbhBEybduxIy7/uzS+a3fPysBMcknb9uWJib52yyhN9DP23Y2HEKi7+zwFUGPm+6K9r4aMJ5uoRnTVovp1lh5lxtO0c2h6p51QimnEcFIFvMjjVUOkEzIt7YDk7MEz3+BSTMjgHGAt/3QganzAXjrHGknR6D+1NYcD/KVxz/1tdC6Rn4M7CYvlACRYAKf8aun+RF8n/XcY9Y4+JaloH/cZ7AgSBIMHfby08eYMFGNDyCxq9T2DxKCqEacSFc4qUcFMf+ON02SXfPUY/b+Il1gKYqFmlq5mAqIEUcNkc3q2bHl0eKWfxuAbwfbWjkw6QOw=
X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1719;
 31:LNIMYujMTkKsi5h0O5fm6xYuH932Uk9CvS6YlRpFlsmcJJLr5i7zCkRWP0kqQActe4pGUDdx2FVGXQfyACH8fUzkEW9oGXfJZ/RRZMrM2a+xJRLZjOv5wANeC126XXih0Vrc7kjxDW4pL49MM7CN+IJx+GwbLOL4yhvOXGmCLeTqw4k6rfTH+TpxYh2hAl5Mgs5rrciMRixoHCn255fCXWjhxi4hPREeBN2rVGPBlAlruH6Q4zDafyIGlLp4jRJ93ysOgaASh9CHafKK6K9CaLyPg4+fgTfigqjFsXPtUynCS6mKCIObpFB3clEjKNMcwqQFlWSMup6YhQhFz3wasNMHurUDL2aNckEAmyMDv4WYndS0MKhpUMqRh9wmkgve+y+Hguy1uY9dXRxlyfCDxLwf5Wfc/vFzsvWIfnpXuthfd2p8PfM1yI/fkmXLluS9XLHDRD80sj9o4PmGAilUL0ElQfUPIrTCMPm8gyOTdkSiRVrXVKFYCNeV+7Ewb8aulEtiIFt8RZzNL3cpqfbZVWIROUE6rQAGvb1v01ktFRhr+m78gHU2RK1oRf0b5Fa3XmH8U7r18iA16+9YILlIc4CRkHA0sglMRyDRvrc3/4cxrWYnQcA8sbigFnFVwmT6M71+QHlUoFOlSmaRIdZXRaBnHu2scJsDfQ2mTekO6I82p1ZKGs9b6l1PaKhKHpiq
X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1719;
 20:7fR+GqoOtO1Qkxahikq4ySrrSFLGzeF/jQIQc6VG5Is6s5azHA3f8LTsanNb/WY45ZWsy3qSHT8aD/nWlUuphFl5QDB+mSQoxmBs8jL+lpBUbIAeirgXBuR72XbnnL29GY2wNFGjyTTBS30lAvFdQeFfpqiAhb01GdRfTltHuklBhzKdEChFxsutf2Fc8VAJAUIzgMrTJFBygz8JfWYXrBvZISLiz0kmFIjWeO0kxnCX5LkcvL8RArXrMQDLpjdHucS+kskFjPN8uby+wKAb+vKXonRV+t0b1W+NDB9Y3EzVEMNX4VpFiE8JGdGGH+axOPsduwytMDECtsoH3mRY0sUGw5HCreQJiKCcqCWuHNXiTjVEgCfzzjMbpfnGeiFJXd1NA5dPzm/pCQEb1Xwz0ZqagvTHSsNmucW6xvidj1x+2QRyNpghRmMu5/X4uRDJ4pO174Utv+T47kPbUJ9oRqqpoQGzjszkxFcA1qTd4j76c5Co8ssdhszCcLIAfxYK7SvJVCBr2fHE1FIpQ5rTPYc3YOKm0qHILWD6jPcjbxCo/SW3X/G+W6/hTT1I6XQ+++I964XIVJV241sF2s45lle3gO0NzZeSipB+Vb0eV4A=
X-Microsoft-Antispam-PRVS: <BN3PR0701MB171968A195AA82C0D805A54FE3D40@BN3PR0701MB1719.namprd07.prod.outlook.com>
X-Exchange-Antispam-Report-Test: UriScan:(236129657087228)(148574349560750)(167848164394848)(228905959029699); 
X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0;
 RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(5005006)(8121501046)(100000703101)(100105400095)(10201501046)(93006095)(3002001)(6041248)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(20161123555025)(20161123564025)(20161123562025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095);
 SRVR:BN3PR0701MB1719; BCL:0; PCL:0;
 RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);
 SRVR:BN3PR0701MB1719; 
X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN3PR0701MB1719;
 4:PMVnaV95vD8OgcXA4Ck30zj/AC+9k319eKcG7Dmb?=
 =?us-ascii?Q?nkKkFCNwR4m0vKNi/iQnReNEeNLPNSZcgq8GcgVDBezizXXSTA+S2EzTbL9b?=
 =?us-ascii?Q?f0j9DyA7XtZ3Mon9HxqAFHR5+WFUYXX7NZH0ON+zZaEKCM7TWT7f0+SgGgKW?=
 =?us-ascii?Q?mqd34W7TpUq2f1XK4N8pq9AC+OstPmymUndh7wuYJeLTmRKWovbZQiIDEfuq?=
 =?us-ascii?Q?eGAvHShzWW+GY/T+5SsF1GOiLWo0FLisbY2/nz5BVXUMjRi5iT+eqIF0pdGt?=
 =?us-ascii?Q?1qdE0AkDdQ4Azie1P1fx0a1cuVpVfrY0cchoycYJUPHTwwmPqNDQbLIc61SB?=
 =?us-ascii?Q?Pd4YYDV2nKoROIv2KCOEnoXMgZA7s6qJqQNCBaA9HAcE/uomYmKGuQXabuJ0?=
 =?us-ascii?Q?PNaHYCPtpel31BSGe/X4kNJi5FitddUj+VcE/hhs1kMWKe8xxC+B0SBrWTSt?=
 =?us-ascii?Q?sZ8ouxCxRLutng4QSKizpbUvCkxR44Hj6bUfZQCHrwZxT7ENDLAmZ2Do1M3l?=
 =?us-ascii?Q?reONq+eE0jG8KPvp3lh2MsKFQpJd+AUh1J81J92FYNeMUAAHne8ZCe0PIHbo?=
 =?us-ascii?Q?Dw3KDU+x1u+7JmhOqW9NHmajYZpKKcePiy7FPyG8WkplbNdLP8M6VOfEKZmS?=
 =?us-ascii?Q?8+/wDvjeoe7fkjHuT+UqdXUSKr6cUYxe4KduG8fz46X9zlEme8n7TXOStDCr?=
 =?us-ascii?Q?++lrTJB7ukMJg64K9DeNq0PfdRcGUC2BtE3WBoTmNeu1dAowEvT4eKpYwgt6?=
 =?us-ascii?Q?qN2X4xZaACPoKEzCRMMaaIpyctjecYYPW1ZyI9FOkNlVeBcNYQFq9UZ+KzHs?=
 =?us-ascii?Q?UHehHjWg5+b3f5YrzC+tdDTBO+yMJh91Zs3u2shPwrs30stJe5f5PNB0sJ1C?=
 =?us-ascii?Q?ZWKigp1R4+o+5DReu0a+SGP0UELkYKIJeZ4WA0is7nzdXeoemRfVm3Zt3Qfn?=
 =?us-ascii?Q?uAIydFvTSx4HvFGwGRijBe5nn20f17VzFdA26rEcxsi0BHMWxl7tJBt8Si7S?=
 =?us-ascii?Q?1VpgiWsD6rm02COXScgG+V6tJzjcc1H3j9GmmYZcHxKQDy5A+alVo+VsSIav?=
 =?us-ascii?Q?4GKzYYeo3ApvUdfakgIDdYVCybPkmRBsqwTex97zHvISpWbtsGTjVWRbKWrh?=
 =?us-ascii?Q?6FpcoDSaYi3+FGRb2ga76oiNYrH4XJXL4qB/Sdr/J/t++//iTZelnVPaohV9?=
 =?us-ascii?Q?HPbxIkw7Tf1rKXf/6SBsDGF3L99hGAlihxAEnWNOP5RvO24jjVIP+KOFsVFT?=
 =?us-ascii?Q?bmp6DeevAfO6I644v/XvfR8RnXlo4A18E9ykSss0?=
X-Forefront-PRVS: 0359162B6D
X-Forefront-Antispam-Report: SFV:NSPM;
 SFS:(10009020)(4630300001)(6009001)(39850400002)(39840400002)(39400400002)(39450400003)(39410400002)(13464003)(24454002)(377454003)(57704003)(23726003)(1076002)(25786009)(7736002)(5009440100003)(189998001)(4326008)(50466002)(5660300001)(83506001)(8676002)(6116002)(3846002)(81166006)(305945005)(50986999)(2950100002)(76176999)(478600001)(6666003)(42882006)(4001350100001)(2906002)(53936002)(42186005)(9686003)(6916009)(72206003)(55016002)(33656002)(53546010)(6496005)(54356999)(93886004)(66066001)(6246003)(47776003)(229853002)(33716001)(54906002)(38730400002)(110136004)(18370500001);
 DIR:OUT; SFP:1101; SCL:1; SRVR:BN3PR0701MB1719; H:jerin; FPR:; SPF:None;
 MLV:sfv; LANG:en; 
X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN3PR0701MB1719;
 23:2WrlsbOpORQ5HqvW4/G1FmiKdO9ov1Klz7Q4jcR?=
 =?us-ascii?Q?2KdBVe8aKNka7LVbX5+z2PXdmPqMnqzWNwNrOC44T1JdodX1ac0NR8yhXwLz?=
 =?us-ascii?Q?/qZkobmIsIT0Sg+ttkYimsq7bvOCS9RdCJxL5y4f/z/ix21+wijJas3Rlnab?=
 =?us-ascii?Q?kkMpim9FJYQ6ceEGoR38iw/YAVmJR+vbgV3f2XOUrkfVqe3bOPb2wSTg2HCQ?=
 =?us-ascii?Q?DWlRBpuM8nk+xVbj2Yio2UE7Rk0q9iKTDbG69is3U0k4KsnbXMFyzTxX3BDL?=
 =?us-ascii?Q?8z2Es9MC4qcAWHlCqWT8udp8hSGXgIQ6gEV88yDwcqIO0Bfti1UrBvQu85YP?=
 =?us-ascii?Q?rMZWtWwQI+c6Ptg9TtmCodCjLVVjkoct1Zf8ztX5mgA0yUUDzCz5ZBXqaGLQ?=
 =?us-ascii?Q?T/+i61h1g84WOZc0BSRxk0J2MKgSPhhcGzLiyJjDw1NhM71XJX8vz9W/Y4gb?=
 =?us-ascii?Q?Q/sIgBsqtpU7uBfCnQzoZdYrZMugPiR9nLcXm8e7XR/FzFj9N6RbSQPfmDKH?=
 =?us-ascii?Q?XMHz1+/R109aBJjGiJltZp8hl1zp3KiK3XwrsPA5WYYTyBF0oVXdmBpZNqYx?=
 =?us-ascii?Q?+7gQDvakeN+UNhWq1vMB2yg+x7ZdgHis15+RPE4OiciZBckLSxUfmBVXd8DT?=
 =?us-ascii?Q?WemP5cr1HqLcALosRtVGX1f8nGsK2hcSovFv9dRur6hyHYCzPdJrjrFUMo2b?=
 =?us-ascii?Q?oiTPsgaX4CP9ZB/FyiUhHU9z5gbQzPjUJ9CqGB/SCj/xWWMEOfZRaURIHSv7?=
 =?us-ascii?Q?/Ruu9uO6pQMPXgixgY1idoXXZ3Ptx7bYC4IhoZS/AvABJBbVr95H/cTVVKNx?=
 =?us-ascii?Q?0bQhR75zkREuiGoDLFBkWEBUAvE8ELxFCpjFRJbx6eFnu2SY6yIZgRICJtDr?=
 =?us-ascii?Q?JF//g3Xf0tJ0VlS9e9RM2/UVd7lWGdTu80sqfxKgmPojgJYbVJSP87wtCFUZ?=
 =?us-ascii?Q?bAeuEbxPe4UvrLrKNigTGe0djAdPLIP+tSOflOkGegOwUrHPdtsMqQp4aoP7?=
 =?us-ascii?Q?fDYv1qiJSKzuLRe1b34UPyVbXj7R2Dr8dJSrJYbbPBYOivs4EV6TWQ36+eD+?=
 =?us-ascii?Q?YXZKEMwvkfY/i58eVBQc4X8oOKTPr/hMRGQmj85W1ToPPdUflBJ4L+TrCrQH?=
 =?us-ascii?Q?Kg2B4P7QEpw0sOcU2PzCBCZepU5u5hi+c3tAedtLcy1zjz+4H0AWYXn8uCF+?=
 =?us-ascii?Q?hTOyRysbHrWi5RXWbOKd5jEYP8WOZIwSzDp0Cjz0hgYQmLaO1m1ofX8RySrn?=
 =?us-ascii?Q?3PEn1vO0if3eZ95Iat645NJGUMEiXHIsqWYp9aTzM6ROU13t9aOlA4otdeJ5?=
 =?us-ascii?Q?dS8anCHzz/58BvpfXYEtaVAW8usZL3OBHBbH/gl4Vqyg0?=
X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN3PR0701MB1719;
 6:LGlxz/gFMWSZXasBbCiSf/UqORrSQfP7VWDG1Cjn?=
 =?us-ascii?Q?PBrwnMaY6gua+HAOWmq1bp+K8jvteKYvkf2lgne72qdHR3iFhIfdJTJdwrxS?=
 =?us-ascii?Q?n0KPQhmX2hekaNgJdaLCrb0LSOPnhGjv1kDW5m0viT0R8i1vLm3VAA3kwNiK?=
 =?us-ascii?Q?cin3r3uuI9madO+6tiV9DkTtDamXTkEEsAqhh1Vw0sQzCDVM/rikBj/2kmHr?=
 =?us-ascii?Q?3Qg4ind5nlhwp7tpAh1ICe6UjGkasAvWrLjgNvFRR/p2tjYT/606BLae9QcF?=
 =?us-ascii?Q?IIOEXRp89JzePKAqrotkYCLHOBAoxme81Aw81vSgtAYTeQp+B9LiEbPtiMIO?=
 =?us-ascii?Q?RvGaccx068ARoy3535JbJA+mFR7mPX4yFk9GEt/OA1cDNDtwgi8jlm4uv9+6?=
 =?us-ascii?Q?eXhXsw4tv82j4ZhlCOMTFH+y3e0QaVkJv2+zdnKm43Yazj9u3ODKakTdFTbC?=
 =?us-ascii?Q?L62A5+X6506HBaKYe/818GzUTGolcaWgwOFuYpe8ecu9XJsSzOIzWinU9Icj?=
 =?us-ascii?Q?9l6UCW2ycqridczN8mVC8j4kD3UxLejefGYaMxY3wxWSkklntfIThRS1rBRR?=
 =?us-ascii?Q?m512ZFoZD6COYtKRIivafFLSCwVpsNX3tUxzUeeyav0HsQRaC8V+PA4xiMmy?=
 =?us-ascii?Q?0z1kIA9ZDIgqH5mL9O/wiwRpKy31yh7Z5Ue7I5sNWPTktmp9vJz2uGm1F5EF?=
 =?us-ascii?Q?I0YXR4NHfpLeLMu3LR9Zfb610RTRRXjBcOyaHb/KMcK8zsYRHjG/NSjovX5i?=
 =?us-ascii?Q?itRGTk0rwFr7ZN6btnDPpHJkR45moWBNRSGYaJS4tdT8zy5vpeMWkwp+R8cD?=
 =?us-ascii?Q?+lnAPB3YbgudUZMJM1mzacL62Rz4gcBSAdk7CY1O+BcbVIwQdzU0DtFpZ3JT?=
 =?us-ascii?Q?Poun5K9ODZdTaI9uSoQd9rPnUVhD+PHqvRbodU3gn33gTDr4Twq9sA0OrsYi?=
 =?us-ascii?Q?FlqhtQjSt5p7A8tU+7ZxgKDijp+LzQuzpxEtA+e2QA4aRVed8tkcdYRCmEnR?=
 =?us-ascii?Q?mlo=3D?=
X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1719;
 5:c9ZJRMf6ZaWr2Gyv8kPyGnoGIbJAZ1Sd1FkAy4pFI9uEdsxg+KBSpENSsn4UdO81DrvJX52xnFxv90UKxz9Vs/fQ573ZW31HCssDNzCp7Jua2uO5LxiFc6A8fkxJBiLjIwOTLKeqPCZE/JrXzIWXPf/0lFATNuff4ZQKWQPYINg7zinC1S/jgunfr+R75OE0tcSc+fTNgTxZOaVS/nGBTksmnEJ5HdFAqxtAf3AFsWgEpm/CrkzKqFLMqYyZiuRDZ+FIDEMC9/oE+WGfoRO1biSddQZA+TIVNQE/5KHxf/J4nPprXwyIU8YOmYM95Fm/3k/MANxemzOhk8Yo59NqcuOyGi9CsbSIfdvsbbwra/+TWt5S8p0bm5zV4Un9AEFSDFf52wcwYXEzU7RSEKYrzw6yrHKQ1e4oa4YtBm9VRP+PMcLIwvyqvMcIZ+OAKyswvXouXBLZyHlGOqW5QRCaI4se2m0kVMC9vftKVmJR0oohri++45U1gqKqmKEDXMdY;
 24:EMfBdBQHOM4JDjS8H4nwLPQz0V1IrVy4r9awRPD+Gmp0bIye5JCoIIVtY+9MyQceeV5kLfZhfWiQXCSVuYQtpHt4GCV43DhA2/Bw+pMsn80=
SpamDiagnosticOutput: 1:99
SpamDiagnosticMetadata: NSPM
X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1719;
 7:8DNO77cu6LhndIDcGdhgjkOXrj+bJ7uJ8Mk//dRgJPGot94WZTEL/+33dQD+gl8HAE6wAYcRSELb9zwoqwxT+kT1miqTKc/lKNrwneIk3shPyrJGs/cjIbxi3LJzWl0wQ6E0Q8MEXInWlYIngiDEo63JsvY6MWJx9iBac+Q/0R1JD25W96tUnPJXAgs7c9FGsR42PaRMznr0vb0iZBULay4xpEt9aPeKW5TE0lKYtm3a4lR05hL9pYWnIQZYK2XVE1+7Z/UGsF+boJ8yYaLFPWJmtZBgBQ2f0WXcFldmHdkHc0vpndV1Y36vpPDNX5jUOvU4qoSAkkOoYkRF/Y7Ss0w67eOBen2zKK/fr0Z0dPjNjZjoQUV4LsY1qYo1g7mp+4lvuvFzuyhv0JEbvv8NPmPQN7kSEJtblJors8YxLmSck6hn/kqgziaHFEks/dC95G6CvpLRLnzxkgJdrYYYKTrzPeZcHHS+GojjcdjAMNyOmGuZv3i0zeG9Pu6eA8xkZBeS7eUQhBo/hpLT/fYEC2FZd8bDz5NYkigQqp0ZyeSP8jaRBiGHz2TBceD4uadTURtFc6l7ZvJ1TVv8gouNKwvnpDnTnj7YmiE5VgLNOkjldM6u475QUGVeSGoRjUXUXJrfAurQCq1Fu2zGitQpGtB2ywuoU5rOmnSVR+IfLVh7+Q9DcLfu2vjqdN1Cf0CSb1gVM4U3+eUr0qwFdbK4f5B3ElmGwA39dr6+U3GXB+raVv6PMhfGAVAOKI+/+Id6eyZc5PzE8FsmQVzWmqTfo/7kLmokUhryg3NSv03hecQ=
X-OriginatorOrg: caviumnetworks.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jul 2017 05:30:39.4120 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR0701MB1719
Subject: Re: [dpdk-dev] [PATCH v5 1/3] examples/eventdev_pipeline: added
	sample app
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, 05 Jul 2017 05:30:46 -0000

-----Original Message-----
> Date: Tue, 4 Jul 2017 08:55:25 +0100
> From: "Hunt, David" <david.hunt@intel.com>
> To: Jerin Jacob <jerin.jacob@caviumnetworks.com>
> CC: dev@dpdk.org, harry.van.haaren@intel.com, Gage Eads
>  <gage.eads@intel.com>, Bruce Richardson <bruce.richardson@intel.com>
> Subject: Re: [PATCH v5 1/3] examples/eventdev_pipeline: added sample app
> User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:45.0) Gecko/20100101
>  Thunderbird/45.8.0
> 
> Hi Jerin,

Hi David,

I have checked the v6. Some comments below.

> 
> 
> On 3/7/2017 4:57 AM, Jerin Jacob wrote:
> > -----Original Message-----
> > > From: Harry van Haaren<harry.van.haaren@intel.com>
> > > 
> > > This commit adds a sample app for the eventdev library.
> > > The app has been tested with DPDK 17.05-rc2, hence this
> > > release (or later) is recommended.
> > > 
> > > The sample app showcases a pipeline processing use-case,
> > > with event scheduling and processing defined per stage.
> > > The application receives traffic as normal, with each
> > > packet traversing the pipeline. Once the packet has
> > > been processed by each of the pipeline stages, it is
> > > transmitted again.
> > > 
> > > The app provides a framework to utilize cores for a single
> > > role or multiple roles. Examples of roles are the RX core,
> > > TX core, Scheduling core (in the case of the event/sw PMD),
> > > and worker cores.
> > > 
> > > Various flags are available to configure numbers of stages,
> > > cycles of work at each stage, type of scheduling, number of
> > > worker cores, queue depths etc. For a full explaination,
> > > please refer to the documentation.
> > A few comments on bugs and "to avoid the future rework on base code when
> > HW PMD is introduced". As we agreed, We will keep the functionality intact to
> > provide an application to test ethdev + eventdev with _SW PMD_ for 17.08
> > 
> 
> Sure OK. I will Address.
> 
> > > ---
> > >   examples/Makefile                   |   2 +
> > >   examples/eventdev_pipeline/Makefile |  49 ++
> > >   examples/eventdev_pipeline/main.c   | 999 ++++++++++++++++++++++++++++++++++++
> > >   3 files changed, 1050 insertions(+)
> > >   create mode 100644 examples/eventdev_pipeline/Makefile
> > >   create mode 100644 examples/eventdev_pipeline/main.c
> > Do we need to update the MAINTAINERS file?
> 
> Updated
> > > diff --git a/examples/Makefile b/examples/Makefile
> > > index 6298626..a6dcc2b 100644
> > > --- a/examples/Makefile
> > > +++ b/examples/Makefile
> > > @@ -100,4 +100,6 @@ $(info vm_power_manager requires libvirt >= 0.9.3)
> > >   endif
> > >   endif
> > > +DIRS-y += eventdev_pipeline
> > Can you change to eventdev_pipeline_sw_pmd to emphasis on the scope.
> > We will rename to eventdev_pipeline once it working effectively on both SW and HW
> > PMD with ethdev.
> 
> OK, I've updated the directory, app name and relevant docs across the board
> so they're all
> eventdev_pipeline_sw_pmd. This should make it clear to anyone using it that
> it's for the
> sw_pmd only, and an updated version will be provided later.
> 
> 
> > > +
> > >   include $(RTE_SDK)/mk/rte.extsubdir.mk
> > > diff --git a/examples/eventdev_pipeline/Makefile b/examples/eventdev_pipeline/Makefile
> > > new file mode 100644
> > > index 0000000..4c26e15
> > > --- /dev/null
> > > +++ b/examples/eventdev_pipeline/Makefile
> > > @@ -0,0 +1,49 @@
> > > +#   BSD LICENSE
> > > +#
> > > +#   Copyright(c) 2016 Intel Corporation. All rights reserved.
> > 2016-2017
> 
> Done.
> 
> > > +#
> > > +#   Redistribution and use in source and binary forms, with or without
> > > +#   modification, are permitted provided that the following conditions
> > > +#   are met:
> > > +#
> > > +
> > > +static unsigned int active_cores;
> > > +static unsigned int num_workers;
> > > +static long num_packets = (1L << 25); /* do ~32M packets */
> > > +static unsigned int num_fids = 512;
> > > +static unsigned int num_stages = 1;
> > > +static unsigned int worker_cq_depth = 16;

Any reason not move this to struct config_data?

> > > +static int queue_type = RTE_EVENT_QUEUE_CFG_ATOMIC_ONLY;
> > > +static int16_t next_qid[MAX_NUM_STAGES+1] = {-1};
> > > +static int16_t qid[MAX_NUM_STAGES] = {-1};
> > > +static int worker_cycles;

used in fastpath move to struct fastpath_data.

> > > +static int enable_queue_priorities;

struct config_data ?
> > > +
> > > +struct prod_data {
> > > +	uint8_t dev_id;
> > > +	uint8_t port_id;
> > > +	int32_t qid;
> > > +	unsigned int num_nic_ports;
> > > +} __rte_cache_aligned;
> > > +
> > > +struct cons_data {
> > > +	uint8_t dev_id;
> > > +	uint8_t port_id;
> > > +} __rte_cache_aligned;
> > > +
> > > +static struct prod_data prod_data;
> > > +static struct cons_data cons_data;
> > > +
> > > +struct worker_data {
> > > +	uint8_t dev_id;
> > > +	uint8_t port_id;
> > > +} __rte_cache_aligned;
> > > +
> > > +static unsigned int *enqueue_cnt;
> > > +static unsigned int *dequeue_cnt;
> > Not been consumed. Remove it.
> 
> Done.
> > > +
> > > +	return 0;
> > > +}
> > > +
> > > +
> > > +static inline void
> > > +work(struct rte_mbuf *m)
> > > +{
> > > +	struct ether_hdr *eth;
> > > +	struct ether_addr addr;
> > > +
> > > +	/* change mac addresses on packet (to use mbuf data) */
> > > +	eth = rte_pktmbuf_mtod(m, struct ether_hdr *);
> > > +	ether_addr_copy(&eth->d_addr, &addr);
> > > +	ether_addr_copy(&eth->s_addr, &eth->d_addr);
> > > +	ether_addr_copy(&addr, &eth->s_addr);
> > If it is even number of stages(say 2), Will mac swap be negated? as we are
> > swapping on each stage NOT in consumer?
> 
> The mac swap is just to touch the mbuf. It does not matter if it is negated.

Are you sure or I am missing something here? for example,If I add following piece
of code, irrespective number of stages it should send the same packet if
source packet is same. Right ?

But not happening as expected(Check the src and dest mac address)

stage == 1
00000000: 00 0F B7 11 27 2B 00 0F B7 11 27 2C 08 00 45 00 |....'+....',..E.
00000010: 00 2E 00 00 00 00 04 11 D5 B1 C0 A8 12 02 0E 01 |................
00000020: 00 63 10 00 10 01 00 1A 00 00 61 62 63 64 65 66 |.c........abcdef
00000030: 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 |  |  |  |  | ghijklmnopqr

stage == 2
00000000: 00 0F B7 11 27 2C 00 0F B7 11 27 2B 08 00 45 00 |....',....'+..E.
00000010: 00 2E 00 00 00 00 04 11 D5 B0 C0 A8 12 03 0E 01 |................
00000020: 00 63 10 00 10 01 00 1A 00 00 61 62 63 64 65 66 |.c........abcdef
00000030: 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 |  |  |  |  | ghijklmnopqr


diff --git a/examples/eventdev_pipeline_sw_pmd/main.c b/examples/eventdev_pipeline_sw_pmd/main.c
index c62cba2..a7aaf37 100644
--- a/examples/eventdev_pipeline_sw_pmd/main.c
+++ b/examples/eventdev_pipeline_sw_pmd/main.c
@@ -147,8 +147,9 @@ consumer(void)
        if (start_time == 0)
@@ -157,6 +158,7 @@ consumer(void)
        received += n;
        for (i = 0; i < n; i++) {
                uint8_t outport = packets[i].mbuf->port;
+               rte_pktmbuf_dump(stdout, packets[i].mbuf, 64);
                rte_eth_tx_buffer(outport, 0, fdata->tx_buf[outport],
                                packets[i].mbuf);

Either fix the mac swap properly or remove it.


> > > +
> > > +	if (!quiet) {
> > > +		printf("\nPort Workload distribution:\n");
> > > +		uint32_t i;
> > > +		uint64_t tot_pkts = 0;
> > > +		uint64_t pkts_per_wkr[RTE_MAX_LCORE] = {0};
> > > +		for (i = 0; i < num_workers; i++) {
> > > +			char statname[64];
> > > +			snprintf(statname, sizeof(statname), "port_%u_rx",
> > > +					worker_data[i].port_id);
> > > +			pkts_per_wkr[i] = rte_event_dev_xstats_by_name_get(
> > > +					dev_id, statname, NULL);
> > As discussed, Check the the given xstat supported on the PMD first.
> 
> Checking has now been implemented. It'd done by calling
> rte_event_dev_xstats_by_name_get()
> and seeing if the result is -ENOTSUP. However there is a bug in the function
> in that it is declared
> as a uint64_t, but then returns a -ENOTSUP, so I have to cast the -ENOTSUP
> as a uint64_t for
> comparison. This will need to be fixed when the function is patched.
> 
>                         retval = rte_event_dev_xstats_by_name_get(
>                                         dev_id, statname, NULL);
>                         if (retval != (uint64_t)-ENOTSUP) {
>                                 pkts_per_wkr[i] =  retval;
>                                 tot_pkts += pkts_per_wkr[i];
>                         }
> 
> 
> 
> > > +			tot_pkts += pkts_per_wkr[i];
> > > +		}
> > > +		for (i = 0; i < num_workers; i++) {
> > > +			float pc = pkts_per_wkr[i]  * 100 /
> > > +				((float)tot_pkts);

This will print NAN.

How about, move the specific xstat as static inline function.
port_stat(...)
{
		char statname[64];
		uint64_t retval;
		snprintf(statname, sizeof(statname),"port_%u_rx",      
				worker_data[i].port_id);                
		retval = rte_event_dev_xstats_by_name_get(              
				dev_id, statname, NULL); 
}
and add check in the beginning of the "if" condition.
ie.

	if (!cdata.quiet && port_stat(,,) != (uint64_t)-ENOTSUP) {
		printf("\nPort Workload distribution:\n");
		...
	}


> > > +			printf("worker %i :\t%.1f %% (%"PRIu64" pkts)\n",
> > > +					i, pc, pkts_per_wkr[i]);
> > > +		}
> > > +
> > > +	}
> > > +
> > > +	return 0;
> > > +}