From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM03-CO1-obe.outbound.protection.outlook.com (mail-co1nam03on0081.outbound.protection.outlook.com [104.47.40.81]) by dpdk.org (Postfix) with ESMTP id 1A0DC374E for ; Tue, 4 Jul 2017 06:55:08 +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=4xBLfIG5N9LuvVUV8aCp7FFU44IuH0n+mh/rh0QPsqI=; b=S21ZwqJWOu9AjGTS/+/RnCalwNVlBCgZF+gu2xwWjbjiW8tyEJ7ZCUw5mtTEiCY9nczeb9V69dv++W+kPCIyEY+6teyFTKKehy5u6sBVa7MVp2gni54A5YWICKg52ZdPzQIbhH86N4aNPLQlt8IhcS7GcYyFhp4FHeZ9K7SwtAo= Authentication-Results: dpdk.org; dkim=none (message not signed) header.d=none;dpdk.org; dmarc=none action=none header.from=caviumnetworks.com; Received: from jerin.domain.name (106.200.206.49) by BLUPR0701MB1714.namprd07.prod.outlook.com (10.163.85.140) 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 04:55:02 +0000 From: Jerin Jacob To: dev@dpdk.org Cc: harry.van.haaren@intel.com, bruce.richardson@intel.com, hemant.agrawal@nxp.com, gage.eads@intel.com, nipun.gupta@nxp.com, narender.vangati@intel.com, nikhil.rao@intel.com, gprathyusha@caviumnetworks.com, Jerin Jacob Date: Tue, 4 Jul 2017 10:23:12 +0530 Message-Id: <20170704045329.24711-18-jerin.jacob@caviumnetworks.com> X-Mailer: git-send-email 2.13.2 In-Reply-To: <20170704045329.24711-1-jerin.jacob@caviumnetworks.com> References: <20170703191402.3638-1-jerin.jacob@caviumnetworks.com> <20170704045329.24711-1-jerin.jacob@caviumnetworks.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [106.200.206.49] X-ClientProxiedBy: BM1PR01CA0106.INDPRD01.PROD.OUTLOOK.COM (10.174.208.22) To BLUPR0701MB1714.namprd07.prod.outlook.com (10.163.85.140) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 9c9a3ab8-9c49-48b5-4260-08d4c298d6b7 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:BLUPR0701MB1714; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 3:bUF9qpI9UH1GyYM5Weqzt0OMKbE9IT9+SyXcH/iaM4u2RHCyy58MFbPXvTA44l50W73ReR7m8eZsf5mweEpZegPJo9eXRu+lwKXkjLa5QhGCOyNaFJ1DyhlKqgCweGLUiVynn64kRI45fSzm6+QOOIzsPGn+Jwznu9SQ4QlfT9Or6xEdC9QvY9mHf+EpAt7a9jJVqs9EkeK1nwoWIu2o1VxKJuERmUibKtEh6VeJPmzOhnwm2R0LoLK5r5Vti7YMjgyGPk3InZXC5Zhk6nIC1JWVB9cnEdMp+UG2YlP9rIHrOQ57RxMYrDfMD9Qo3jMue0ARElYprV+dijK7sLn7fBhv7OW+xWJOegYFHwQCbJLfiIEGJzfEn7eQBaxFvSg1FkIIs6SZJUEU6ahxf+w209FR6wvnHYZEkmWUzn/qLLpjn40xRGomg9keH2YZkdkAWCHsKu+0jtbMFHrfpdhd85z3YlA8ZwNQhmUEBO2IhuMVQh5f1RQkQigAH4nAHa5+/6eanMN47oP9meO05w6FjJQLPNrPXOY6xJZZ7Dv/wnEUj8Mo4SVGa30QYQMk5zHBify3atQSQhAu0Pk9ExeWlWvTlFmCit8bZxNORBLUFK/IbIVFxuFtLjDGFFKdXX6Mz0WsvZMpZAQW5ppHQnO8dd39jTAGDWbA0raETOh9KklSH22vxh/pWemsAnJYkSnvb0XTdK1WvtBbVlZnOApDBhAfKUppuY2B1kYfb5/QsLaRmvQZbAetKiF4ssATYL0l X-MS-TrafficTypeDiagnostic: BLUPR0701MB1714: X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 25:DGdN5MwplJMJogCdEfR8QbEtkhWgt+wVZDnyHKEypZZb89FsqiI929nnN8pRMODpFPNfuPN2kaxw8CENhJtWDdAxSnkNqZkGg3Cu8E01+9Hc5gwovdHaWwTx6lowFP12qP9bNc1v2K7LJnDsF3fQwfsSyoBzs5r6dnjVGl/I2YwQ51YT8I8W1SQuT2p631SizFmfrORbRRBYkV+zxrmR/GWJ0icgioI2eGQjPccVsV4xr7dn0A+7F6dQ5UWWzxyR36pjQjFKBxDUCYa6wcamDFeOUa3abx5axCJeCzv6WrFWFdfw6dn5LlvT+47lxHG+RH2Eg5oeygzw/pUiHlT47g5Hq80r6P1L1KVJPiHrC6sDeTmgWMuBl7GxaH0PJHVGlKqcG0358bQmQjlvjHHglCWZi9D31ANGSX+NA7wcK3i5QtdDIfy2KZ6zPBhKFqxfhJ+qqxgqhWWhZn5too1OyRZ+SFMJ9YoDI0nJKLBDUmkiBGfFvvutjorzcHSv4ZMT47k1fAzyAQ70cBYWTpywFCghwOgIquqSGUHCzrtImXGgps5+kgv8Ylex+wyj+Yu/mfxzYVBH1nYvoattXwlif9XQsXMgFtl8FIvp337fBJfceFZ9VRUyXLAIQZgY62RbgtNZyJqWq1wSK5bzCdVz2Q5p+y3enhn/fL0GqzxmV3C7uBhspAjeYvdF/uLqe/hhoD+xVjor/fZ54q4Jy9QpRCb2jA6onAnuuEhxe8ruQR4U5N56wwHUirc8nWtb/hOJz9KlNqin6FH4pPOhG+fPYSZvpMR8jno+Q04WG0Y6HDj48nwkhj2f8S6jQ0tRwa/b49IiV/VwfP+tldK6CpQMfyhORvuhXeBKWMA/ICrk7IkUJnnPM4peUh8LKus5yfbtOaz14WiT0iiSsdbr2wW0s6lHTDn109PLbU/HNJcuW/w= X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 31:0DA7hnYNG3CXJFNV+Tsz7iMaKvYmfGusaiRKbQ/VC9zCaU3WyxMf57nGdAMxVSY5ldlTzdu/bjYyWO9a74G0hsTiUe6kkYyi0fdar4qh+LYzvWiQioky2I7wNhcLU2NkRPbBBmmb411TUW+fq/y6uahiizSbLSFvhVd+ZlkyHaUWGM1dYaNYg8tgS83oryXK+lkE+sF9NWp0NZiLUd8OVjoQtTDePILPmL3zmFhUHtCaKKHA6J8AsOPbtQjAWuxSnMw4rIHPBceQ/3DOhmWgJjt/bhe+EbFs2F5fnSoWeVSFgY+RQVcsxZVO1vfA4+AIKCdLB3fdnAUHe0MSnWr8SO+CCnxdEOjVHBhS6KfPPk0P+Vlely1tt4MAIBZhOPKG848VDMe+bv7iryLrJiMdmCehvthS3zfdPaq6j4LVep7h450eCKUcfFBHD8jWFV57dc80cbCpzPVX2d/pQf6JwwkSqr6Y+J1xeKRQg3q3rbOCunguembnsqqmF7k6r76D5cfuxAGS0ja2lFqJ0cWg9O6022TwWrB95YleTyLR6gqTJz5+G6LlvuWYpUaQ2m20WDxieIFJxK4tpzficyPGbwEqE/qrX9QU3uefdTcAugWTGyPWnNP2NCAN7rk4WzJJQ45kJuarJHGJnMwj7Dd82GNRY1hGJP/Mb18emsE2tl0= X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 20:ky4GriH1Z6fe6aE9cDZLMY6ZCpaqtTsYdu/xYHeXe3SadaocFemgfCoHLYFVGQtc8g1MDrRz1i0u3ql6FLqgjf5n546eRH3G7NLYU2oXMkvZea3wKJ2cbQocEDcYrHbje1NiV/atG/YOYZMkdZkyqHP2Q4HxwSriJfDUFJ+vTMzo6tqdST3enek4XtVxXp3opv1+5MGTZifiErFSVjLGrcNsOD0crq/E/cOSvXu+O3oHUteq5F7W4mScSblajzWGqD0m0NVyMpD3yP0Wyf88KQ+vQ0qW7H0D0d+YOqGTG9omQStoXyGkSklyk4qTHunSk/oeOM+WUAoFeND/ygwvPoGvfm/o5NX4SmpkLrlPk2jGBqUaX79jkHmaFnevQJMa1mGGY+bFeXHpi3u3f0wGeaQ66QKb1+jKMLTvRUvyRwRN8BCpOwvN+Cfm3usIIeiTwsYRgpjFqjZNM1d/m74RizbR+E+KWCzM6BfO6gMKmDn3M/Mk/+BYBNkatNOWjd+l98N9AnAOdFCgo0v4wH7/2+fbPUa5Lfs7iFqJNKJo20OP4jkmYOizaNYkuMJ2MpmjipHUHBiX1Gvu13NPbd8NwRNsxSqDFoXKbs1xTGqiRnc= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(236129657087228)(167848164394848)(228905959029699); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(100000703101)(100105400095)(93006095)(10201501046)(3002001)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123555025)(20161123560025)(20161123564025)(20161123558100)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BLUPR0701MB1714; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BLUPR0701MB1714; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BLUPR0701MB1714; 4:IcNQsiE0T3o3sbtr28p/bLeQlQxlTKNq+vi8mCvf?= =?us-ascii?Q?xuvRilwan0zMWmmQyy0+iQ/VRxcU0p3TXADCXN970Y7BdXsCl0qfZBhTUPjt?= =?us-ascii?Q?ijPqeC/cOtfhAk7asXrAH2UEEKSRU3d3+tc5V2bDHtUX7D9+WV+msBxOw8Rl?= =?us-ascii?Q?rn3VxMHzML9jz3n/Flc6WdzczYz9hspOOqUoi2IQS7vrRuE6OMuuF4uVEDMM?= =?us-ascii?Q?T/5L+ik0WnB9HNC+UYmApxrafzd+SBVmFNSIIkssZ+95UM7RcrYF7SGG/3Sa?= =?us-ascii?Q?6Ahspbmu+nJ54do1zbZ9N797c4RM0c37p6YT/GSpLmQIeKrS7UiWcgV15IUz?= =?us-ascii?Q?KgqgFPKCiDE6pB319eNUaFnGySnVNN3jXo/1IyFOg++wq/zyzJkAhIuVOA3C?= =?us-ascii?Q?auPc6dOkK1tRhDUAwYJGk4A19j1ElhMyfsy3a31zE6h+sIiZtHCbdlAGkbFv?= =?us-ascii?Q?3GbFRQi5BChrUTNAPo3k4DU9rJ04X+GFzlBoVDUfT41YM+ftgRGt3sss2it7?= =?us-ascii?Q?5otSVcDQrR37wLmHY1lBhVouCgH9EhAklXEHa6+tIjFdSXimJ34cR+eDtKWD?= =?us-ascii?Q?O3CAVC+ScNUfVcS2gPd5pOFb9mdfgWDLxfUj/F+hyuzSHrWDQ1fvO9iY2en7?= =?us-ascii?Q?LGH5+C8tYCH4KeJoaz+SZ28bc+BJBPhrLXYicQ/3B1VOsLBVyRTvL4vlobBu?= =?us-ascii?Q?wuMyNf63BlEcm/ycmZmqWiqG1PQtwdXWTyQLfYAjbyQViqMDcRjTU8AwrxMo?= =?us-ascii?Q?7nPDtEJgjx6yuq0Jux74zE9m8asbyufiJKcvccSr9vOUGwa9PBEkdkXkDHeT?= =?us-ascii?Q?tCFNIr0WzCTqS/PuR2Fm6Y0mEhlCyqjqgLjz9IYWkHcXVTM59J/eH2jwMdMv?= =?us-ascii?Q?1G+kSQRoSiz7OFlbGWcZ4c1q58I6KhUfcbnpXCB9YFvY+W+V2uOicldN7NgP?= =?us-ascii?Q?+yiGJehFGz0pKb1Tix/CRUxkI07udY6EwS+Lz4kJY3vQ6PvjEtygKQJM3OlC?= =?us-ascii?Q?3Dz2232z0bsYaxzJuTQPX/wIMnJi2iztzVzIt0w/h0S/yeU6kJ872khubr23?= =?us-ascii?Q?L66onaYoSFuEoyomnXtVFmzpFvP7Fn34pyQeqR2TE519R2xX7kE3IBpj3DcA?= =?us-ascii?Q?humFXTmFBq9oeWj+wWQ3HAGrJLTRwNcECAv5CFPxIlEeOjVH0NFSrMmdNGQn?= =?us-ascii?Q?OtTHmahjNRZEskyGP3gHSQ9XKiDuWW2P/2xBbAYKG0BQf9H9fTLEFQ4a1LCW?= =?us-ascii?Q?uQxvT4xDYUBx4Qm6FFk=3D?= X-Forefront-PRVS: 0358535363 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(39850400002)(39400400002)(39840400002)(39410400002)(39450400003)(4326008)(107886003)(38730400002)(6512007)(42186005)(6306002)(6486002)(8656002)(6506006)(33646002)(966005)(53936002)(25786009)(6116002)(6916009)(1076002)(5003940100001)(3846002)(42882006)(47776003)(2950100002)(478600001)(2906002)(6666003)(19273905006)(66066001)(8676002)(50226002)(48376002)(81166006)(7736002)(53376002)(110136004)(2361001)(2351001)(5009440100003)(189998001)(5660300001)(305945005)(72206003)(53416004)(50986999)(76176999)(50466002)(36756003)(562404015)(563064011); DIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR0701MB1714; H:jerin.domain.name; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BLUPR0701MB1714; 23:7mbgZJLwH8LWJXaOXZr7xRXLahr20pV7bwR1qbt?= =?us-ascii?Q?R4WL31OTDC4nYQJGt8N/90M0R7tfXowIGHjDlceqAOKwv+JPuiNvyLUnyQD3?= =?us-ascii?Q?GtjwPQb4jb5BbK7EhPGvul/GET06CNjqPMNMERi93D6hBQyUS0ozSXWEks/j?= =?us-ascii?Q?dwjrUeo+1/VWS97DmjqajK1XQ8g0azkRoOUtdU2IM9tNq3FP14DviYSSnjxF?= =?us-ascii?Q?5oh65XjGAZxGRdqO9nMNPrlOVO2Niu3iXsI5yqcxwMiD+Tf/ivvQ5Zfk0g2Z?= =?us-ascii?Q?zJNmBBzr8Ie8HiRow4kbYoIEqYlYuXdmbkR7tMiw4OXUmzbldkhTU3KGCEki?= =?us-ascii?Q?lwWet3nKjQbt7/uKAjeHH7e1sO9/XhXt5+47tHHr9lK3wUZokrfK+BsbajU+?= =?us-ascii?Q?QWDf/CYhI7i/lF7gSCk4hau3Hzz166BQq4x+/c0ExqP7bEEpl//M8tl2XIcc?= =?us-ascii?Q?qubfJYKlrfvjbcbQiwCHMfOtof+9/Nrp7Gr78c3df8oegoBNARK4xsN14xMl?= =?us-ascii?Q?P1HWCow0wslaZxyFCeEpcN8W4qEbqiRi7fWnsz9JzALmtIHn41yZPsP2cdri?= =?us-ascii?Q?BdMBlu49FAeoynt/koXxfQtme/jWzJz5Doh0eIbC+iFafJJLyvExC0prlB7b?= =?us-ascii?Q?vr5NI5GwLKgXzJxcMcsqwcRppQzKXHVPQFssT9TH9wVGSZGWKz0JPdAM032P?= =?us-ascii?Q?vQZSy2EU7DqJNZ2TKXf4nPc2ftQoOZwGR2qD5WEeoqYO0zkXeLiFYv9ub2mk?= =?us-ascii?Q?VYF+hMzVpgAjmQafHJiM8BZKXYMRqwkxOOy1tOm1e2MJOkrEK5J7ZKHWseZd?= =?us-ascii?Q?z07NotlFNhaQIR9ySCPAbb7jMrN2Ft11IMylGSO7U/SE7ZklJkztxbM9zzMe?= =?us-ascii?Q?IS7hJljBiuAD/I5ccrtry5qHfNTn/1xnGWDGvseH8v2wwfgMNfFyg5mMMhy7?= =?us-ascii?Q?aht+TiJWAsE+J68Hnhrnv/nP3Mmjh45UtVH6GA/wbvxjIOzptMBlo7oLVjDp?= =?us-ascii?Q?+gDS0isLGDenk8EFrslIJZnLbvc9HneBs/p3l/HHXdBZDhiglAyTl5gtIph5?= =?us-ascii?Q?ktsIWAgK63X67ybwDO9CfvEUcJi7C8ACoXSIDsCO2sAuhytsnFWmDx0VFsI1?= =?us-ascii?Q?QP8fUUTH/r9GO3eOj1OYdnw9n3XShvyMHccgIRO+YDdeuOui5GjScbtxuTvZ?= =?us-ascii?Q?6t9ZK1shn39zlahd0Pld22MF1Qt/Bb58n9tZ3XpJLm3OtDm+qJQ8hQajj1H0?= =?us-ascii?Q?BCqtPV4604cC87h5Xvwi6WzMEZOrRuXpsx2zvquv+8jDVqp3siXuovO6yEJC?= =?us-ascii?Q?eRqJkwqrgK0EVAwiDOBq0A3V33puJ0Wd19T1Q3d6y1sGN?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BLUPR0701MB1714; 6:6S+cCnFZPBDcs6p0re/qO78e1q0aKyu1dcUjJ9s3?= =?us-ascii?Q?GOAer5SQF19NiN8Wq/16F2m20hTY4IebOSytqUY5jWr1+Jc8JtTdXNqreUkx?= =?us-ascii?Q?RLfiFp5a8/MJ1r08DWTamzi7JKNvggMV/KAlejkuO6kQaRIX5NBMlnimNkio?= =?us-ascii?Q?NqlHDBTpJvTnuqAEg2WTQbPbh+5/FJXfxoZCnigLOwLFMW2FZmk5IdH2zEH+?= =?us-ascii?Q?LapJcZ8/VnRjCJQPNljaNIyxEfzn0gSM++3/Eq9a0A1yrmY3N/dcZKEuXa0S?= =?us-ascii?Q?6dDrgDhbutJHPB4/oADA05psMxCagKE1M5hRaCo6JapVjPxQWvCY/AdvWCLj?= =?us-ascii?Q?zsfXjuea5cFDg4Av6t4vrSnnycvfR7gXkN+AWiiaf2cbWJYKChzpVORToWl7?= =?us-ascii?Q?Txn4hf4537JIm9wbSGs3AttQ2SQjtM6Cfq5phuVvFmz/ulbwbHLL/D02FLZz?= =?us-ascii?Q?08j6Jrayc4SCSYO2hgB3n7vgswFqYC0jBb6v8ND8pI7gh7VkXyffOapLo1oX?= =?us-ascii?Q?2PTiINgJKREHUhn2T+WZCZ+qJB/OuSegRHRggWH5WUHRZMClg9lwAj/3cS0L?= =?us-ascii?Q?5aEM/qHt73UcxNsGHqvamg2CkHAoczHwyg8Rya9GWb5SIfQ+BOFodtJE6sbj?= =?us-ascii?Q?+t62WmBEJ7ZGdEg6ip/Ew+fHyhCqITBeNoLJYw8xgVTkAZeeQxtGhhv4Xxzn?= =?us-ascii?Q?oFxGTVChbPAu33ekWT+EMGBMb7lpJjZxigc4ILjB/9rnVzp0n++9Zs+2ZGFC?= =?us-ascii?Q?1xSmyB6P6f6yWVCowEzjDF6J4c09LduSrPOOsj0UHi8CNGAF+490m3Jx4R3Q?= =?us-ascii?Q?qUFmTtPfOYCPnPMOM6br9CLmKmYEodUc9mJGuNQOiN2qa6snCtLuLkxi9JM2?= =?us-ascii?Q?lCIEZST8DAjgNNsjmCJcwK4HgEWFnjZYNI1Q5Oc6VMTON3n12f8FT2oQeaUT?= =?us-ascii?Q?joBVmqZXgEJ21ynRWu++4oB03+zRzrlp2JLaXBFT33Ys6/qOTcx019Tpeio2?= =?us-ascii?Q?LLc=3D?= X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 5:Sd0dFkTNWwDtQo2y4HKqTqkC/61Fq5jRwTKYoN8YMvFLHMmfWeQfPY0bC8K3wQjtxC3Z/Y4npqV/lmMt8qm/AeRFiKBrmtE5QpOUcx9VynyofXUWYxyEZVYNdF/hTEyfVhktedzq4WQ98hRYk5mubdPsbsskHKkNuypUJl6J4Jwd2KzAAWBaA66PxNENo0dkjTLl9h+fPS3jG5P1guzr3Qw9fZmutnk5ImXOrjyOR23c6OVl1y6W6DVJ+DIRPM/6mcMH+ykoRl1+IREyJr70VrmLs1Ie2IchGTK89uptrtLy+0uaAfkmr0VvEqLYX42rxgeBSVe5EvFWsTdT5apPiRl9yAnKjBDIdWH3o8bEzTRmhHEou47OtWYGJKHrmIz6z7aP/nlULDLJ861n0MVuKcvVCyubchaqO8aXmcJBXhqQNwH6ZsN8GAo7/MTsK2t1OWjDDXFUUSiF23/T0OSjCOlJANbm4z3tcXEIMk28trwG30mapn7dw3EYr/juDNaQ; 24:Ii7ylq/xkPg0uP8Z6oDXuTtm7ROklBA3ylAjV9XMIvmCdLhUjeh24sSWrIi2uZEysrORBBrfKxuE50FFQ8Pjgbxd7zKMKSpp02PdmubYlpE= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 7:FpM/YhfR0GLeDyOFPQ2zMwh4LLO5yReHMwVAtTKCiC3Cmtx1umeImKUzUlQFbL+z6NHN6OmkK/t1IPQYlQJW433l6R9B0nBg673KDOrWEdiOosDvTKQ8JwGfAEhLPFZEyD6CapG4XLycx1owcT43X6lGPPxay9i6yfq++YXyT4QRv+FrN31T0n9pdHliQ7iZOMmNdy8UAaeo2oP9iTkJRuKuk8KibgeDbGcy4hA+jVStEezz5c5jGwJiZQexZzQNtgMQa0dCctx0XPlkJbBkjX4amWfLJy8X95dKlaVWqf/KBiUMYg7u2aJckMUxS65VO31tZao8YskIry7YfG2uzSraZUIUcqvXNIourJazdZzaaHJKGowakYlD4joxGrKhZDhY3s2ProEuCUB314z68HrvIfLzKz1JCfFwxa0fev6TkSU0SWT5Eo12WBHrGSJgVP7B1gp3aT4M7gTXQGJ7lE954U0ZfUwUWyoiV6veITR4r2yyNX00Xf4dGgws9M3ZI7NPjHJdmEUWDXo+MfDqF5Oi0NnQBQa4gq0nh4RjvNPEDhlCW0IqmpB0L6V4VrWWChmmyWnpaNxegIWNYotO3Tj/i0YBbvnLrsrq+AbjKpgJwQIZQxx7wgsve1fIPbyz2c6pDfBUAXUpxccxM9E9IlakNlBduBd/tRxlrQyIm7PdFk3DLhAXmDgZc+BS00hVojq2t0rNcSvu586NJVsmOy70/POwT82AQVNCoATA8MaP3+nez3j+vTVft1gBDXNKQlwJ2+OXIawWnlmRkeXS0JBw8Imao+kIbsyZCwCyeeg= X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jul 2017 04:55:02.7445 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR0701MB1714 Subject: [dpdk-dev] [PATCH v3 17/34] app/testeventdev: order queue: add worker functions 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 04:55:09 -0000 Signed-off-by: Jerin Jacob Acked-by: Harry van Haaren --- app/test-eventdev/test_order_common.h | 47 ++++++++++++++++ app/test-eventdev/test_order_queue.c | 100 ++++++++++++++++++++++++++++++++++ 2 files changed, 147 insertions(+) diff --git a/app/test-eventdev/test_order_common.h b/app/test-eventdev/test_order_common.h index a760b94bd..88cb2acd9 100644 --- a/app/test-eventdev/test_order_common.h +++ b/app/test-eventdev/test_order_common.h @@ -90,6 +90,53 @@ order_nb_event_ports(struct evt_options *opt) return evt_nr_active_lcores(opt->wlcores) + 1 /* producer */; } +static inline __attribute__((always_inline)) void +order_process_stage_1(struct test_order *const t, + struct rte_event *const ev, const uint32_t nb_flows, + uint32_t *const expected_flow_seq, + rte_atomic64_t *const outstand_pkts) +{ + const uint32_t flow = (uintptr_t)ev->mbuf % nb_flows; + /* compare the seqn against expected value */ + if (ev->mbuf->seqn != expected_flow_seq[flow]) { + evt_err("flow=%x seqn mismatch got=%x expected=%x", + flow, ev->mbuf->seqn, expected_flow_seq[flow]); + t->err = true; + rte_smp_wmb(); + } + /* + * Events from an atomic flow of an event queue can be scheduled only to + * a single port at a time. The port is guaranteed to have exclusive + * (atomic) access for given atomic flow.So we don't need to update + * expected_flow_seq in critical section. + */ + expected_flow_seq[flow]++; + rte_pktmbuf_free(ev->mbuf); + rte_atomic64_sub(outstand_pkts, 1); +} + +static inline __attribute__((always_inline)) void +order_process_stage_invalid(struct test_order *const t, + struct rte_event *const ev) +{ + evt_err("invalid queue %d", ev->queue_id); + t->err = true; + rte_smp_wmb(); +} + +#define ORDER_WORKER_INIT\ + struct worker_data *w = arg;\ + struct test_order *t = w->t;\ + struct evt_options *opt = t->opt;\ + const uint8_t dev_id = w->dev_id;\ + const uint8_t port = w->port_id;\ + const uint32_t nb_flows = t->nb_flows;\ + uint32_t *expected_flow_seq = t->expected_flow_seq;\ + rte_atomic64_t *outstand_pkts = &t->outstand_pkts;\ + if (opt->verbose_level > 1)\ + printf("%s(): lcore %d dev_id %d port=%d\n",\ + __func__, rte_lcore_id(), dev_id, port) + int order_test_result(struct evt_test *test, struct evt_options *opt); int order_opt_check(struct evt_options *opt); int order_test_setup(struct evt_test *test, struct evt_options *opt); diff --git a/app/test-eventdev/test_order_queue.c b/app/test-eventdev/test_order_queue.c index c4003efd2..232dcf26d 100644 --- a/app/test-eventdev/test_order_queue.c +++ b/app/test-eventdev/test_order_queue.c @@ -37,6 +37,105 @@ /* See http://dpdk.org/doc/guides/tools/testeventdev.html for test details */ +static inline __attribute__((always_inline)) void +order_queue_process_stage_0(struct rte_event *const ev) +{ + ev->queue_id = 1; /* q1 atomic queue */ + ev->op = RTE_EVENT_OP_FORWARD; + ev->sched_type = RTE_SCHED_TYPE_ATOMIC; + ev->event_type = RTE_EVENT_TYPE_CPU; +} + +static int +order_queue_worker(void *arg) +{ + ORDER_WORKER_INIT; + struct rte_event ev; + + while (t->err == false) { + uint16_t event = rte_event_dequeue_burst(dev_id, port, + &ev, 1, 0); + if (!event) { + if (rte_atomic64_read(outstand_pkts) <= 0) + break; + rte_pause(); + continue; + } + + if (ev.queue_id == 0) { /* from ordered queue */ + order_queue_process_stage_0(&ev); + while (rte_event_enqueue_burst(dev_id, port, &ev, 1) + != 1) + rte_pause(); + } else if (ev.queue_id == 1) { /* from atomic queue */ + order_process_stage_1(t, &ev, nb_flows, + expected_flow_seq, outstand_pkts); + } else { + order_process_stage_invalid(t, &ev); + } + } + return 0; +} + +static int +order_queue_worker_burst(void *arg) +{ + ORDER_WORKER_INIT; + struct rte_event ev[BURST_SIZE]; + uint16_t i; + + while (t->err == false) { + uint16_t const nb_rx = rte_event_dequeue_burst(dev_id, port, ev, + BURST_SIZE, 0); + + if (nb_rx == 0) { + if (rte_atomic64_read(outstand_pkts) <= 0) + break; + rte_pause(); + continue; + } + + for (i = 0; i < nb_rx; i++) { + if (ev[i].queue_id == 0) { /* from ordered queue */ + order_queue_process_stage_0(&ev[i]); + } else if (ev[i].queue_id == 1) {/* from atomic queue */ + order_process_stage_1(t, &ev[i], nb_flows, + expected_flow_seq, outstand_pkts); + ev[i].op = RTE_EVENT_OP_RELEASE; + } else { + order_process_stage_invalid(t, &ev[i]); + } + } + + uint16_t enq; + + enq = rte_event_enqueue_burst(dev_id, port, ev, nb_rx); + while (enq < nb_rx) { + enq += rte_event_enqueue_burst(dev_id, port, + ev + enq, nb_rx - enq); + } + } + return 0; +} + +static int +worker_wrapper(void *arg) +{ + struct worker_data *w = arg; + const bool burst = evt_has_burst_mode(w->dev_id); + + if (burst) + return order_queue_worker_burst(arg); + else + return order_queue_worker(arg); +} + +static int +order_queue_launch_lcores(struct evt_test *test, struct evt_options *opt) +{ + return order_launch_lcores(test, opt, worker_wrapper); +} + #define NB_QUEUES 2 static int order_queue_eventdev_setup(struct evt_test *test, struct evt_options *opt) @@ -133,6 +232,7 @@ static const struct evt_test_ops order_queue = { .test_setup = order_test_setup, .mempool_setup = order_mempool_setup, .eventdev_setup = order_queue_eventdev_setup, + .launch_lcores = order_queue_launch_lcores, .eventdev_destroy = order_eventdev_destroy, .mempool_destroy = order_mempool_destroy, .test_result = order_test_result, -- 2.13.2