From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM01-SN1-obe.outbound.protection.outlook.com (mail-sn1nam01on0040.outbound.protection.outlook.com [104.47.32.40]) by dpdk.org (Postfix) with ESMTP id 2AA27910B for ; Tue, 4 Jul 2017 16:36:47 +0200 (CEST) Received: from CY4PR03CA0008.namprd03.prod.outlook.com (2603:10b6:903:33::18) by DM2PR0301MB0608.namprd03.prod.outlook.com (2a01:111:e400:3c08::24) 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 14:36:46 +0000 Received: from BN1BFFO11FD020.protection.gbl (2a01:111:f400:7c10::1:159) by CY4PR03CA0008.outlook.office365.com (2603:10b6:903:33::18) 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 14:36:45 +0000 Authentication-Results: spf=fail (sender IP is 192.88.158.2) smtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed) header.d=none;nxp.com; dmarc=fail action=none header.from=nxp.com; Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.158.2 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.158.2; helo=az84smr01.freescale.net; Received: from az84smr01.freescale.net (192.88.158.2) by BN1BFFO11FD020.mail.protection.outlook.com (10.58.144.83) 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 14:36:45 +0000 Received: from Tophie.ap.freescale.net ([10.232.14.39]) by az84smr01.freescale.net (8.14.3/8.14.0) with ESMTP id v64EZM7L016426; Tue, 4 Jul 2017 07:36:42 -0700 From: Shreyansh Jain To: CC: , Date: Tue, 4 Jul 2017 20:14:28 +0530 Message-ID: <1499179471-19145-38-git-send-email-shreyansh.jain@nxp.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1499179471-19145-1-git-send-email-shreyansh.jain@nxp.com> References: <1497591668-3320-1-git-send-email-shreyansh.jain@nxp.com> <1499179471-19145-1-git-send-email-shreyansh.jain@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131436526053404486; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.158.2; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(336005)(39380400002)(39400400002)(39410400002)(39860400002)(39450400003)(39850400002)(39840400002)(2980300002)(1110001)(1109001)(339900001)(189002)(199003)(9170700003)(5003940100001)(50986999)(105606002)(8656002)(305945005)(76176999)(104016004)(53936002)(36756003)(6666003)(6916009)(2950100002)(68736007)(54906002)(2906002)(50466002)(189998001)(110136004)(48376002)(38730400002)(81166006)(8676002)(47776003)(2351001)(106466001)(575784001)(33646002)(50226002)(356003)(8936002)(626005)(85426001)(77096006)(4326008)(5660300001)(69596002)(498600001)(86362001); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR0301MB0608; H:az84smr01.freescale.net; FPR:; SPF:Fail; MLV:ovrnspm; MX:1; A:1; PTR:InfoDomainNonexistent; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN1BFFO11FD020; 1:pRAdKzrpPLSKwHyyKDh5d/s+cnuDocnktCvjI/5Wh?= =?us-ascii?Q?t3cY/hNyauPxdkh4QAfO4eggi+n83izXNvGVyC8toKBH9F43ZwABRYqHNNM8?= =?us-ascii?Q?B1myux5IOveon4UN3CR1VuWR6IOpZ7WycaxIaXCtZRgf8P7tZVHeMfjlgmCV?= =?us-ascii?Q?F1LhnQS1jA+TcUFWxIQ8dLrZdaRNvKlvw6m6W5dQ5cHZ5BfA+o91QKLQspV0?= =?us-ascii?Q?6yutQ5hlov7fT4xNU4hLh/R69Jkz5ZDjEEhPLJEbZzfNoSSgfIkWA685y7JJ?= =?us-ascii?Q?KEDLIUeoA9xYqv+yBZfgWjnEuvoeY2zLI7L/uFJEQBkffVULl65ubDebxmWR?= =?us-ascii?Q?5zPnepNqCcuz4VYP11XN293wJtSI++y//Fwxh6nASSfTQ/OUEoo+QfSpKTv5?= =?us-ascii?Q?745WPS6ZpJYWt5vMWvkNr0SgW0ZZo4O6m5YCEGiDYGdte34fj+4W6TFvZBlG?= =?us-ascii?Q?eMeB6ZJg6r3SqsAjOfy3Aykxf2o7bs8FC2IRw18Vk/XPZeVryzIc90j8Juhr?= =?us-ascii?Q?eKC+897nZ9HuAveOJCxBRZrg3W/kfrIbK7tBvUfihZU9cTggxQA5szfjON7y?= =?us-ascii?Q?V6fbpIgQBDmHXKYg95RM7wEFkpRaJcu+U0C/5AeR44F53pJ9CjSyQ70NM0qq?= =?us-ascii?Q?l7rCNQtRd+qvBgOYRUUScC7Xg0JCn2iW/yIXnCoDTRBek7uV7Xx2qDaASvRf?= =?us-ascii?Q?dBNlXr2i8s2lYENEFzIO59FqlwP3ulIZJ5SsplBFIP+zVXfnV7nxzhbF9s0y?= =?us-ascii?Q?A2N2hErCbXLOoDzEb5PkTz0p6v/oaQrF9gSdK73CuMLwURJwIzXTWgvrcJwt?= =?us-ascii?Q?kiT56OhOYh52QPkam/M9YEEMKl+xuqg7piyLpEzOzL9++igrqjUe2xPLuRlP?= =?us-ascii?Q?dkiGDyUtmCV23S+Q3OgS/oQMxsoFq6Tzr2IVzrTSKmbTK/exnLLRI92UJcqf?= =?us-ascii?Q?KQ/+eIjGN/A9ERStG2vH53xGxeQS0Yoaif2kgM1AiPS19raT5gZdkBU8zTP+?= =?us-ascii?Q?Wqumo7smIuoHaU3pDmBAXYA/aOBV/CiinUPWUlPk9jkR3AusPKOQQjcm2T4A?= =?us-ascii?Q?4wtVMuMZ4+5mfwi70oVewW1eHKd5DTVMp0YCuIIT7u9IkEBjw=3D=3D?= MIME-Version: 1.0 Content-Type: text/plain X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 70a212b2-b4f7-4529-af46-08d4c2ea1863 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:DM2PR0301MB0608; X-Microsoft-Exchange-Diagnostics: 1; DM2PR0301MB0608; 3:rWn87EZvpAx4ngxc44P8GI/wJvOnaorkVYew5eKkVkOkdWxU8nPnphZMNB7fZzzLkhfTQZe8q0qPMempzsBcFnZ9lhMABrNJtwBS2/GyCqsSrAonodFkkrTIEu/34F4FhvGm9vA2L4jVvZBsnGZim5f3T7mThGjTonm7HEyDmwlR3r0bNqvk7XHncxb/D+4pl3fP3jg+WwhRPvAMH5i7iodHputgOQWknHVk1YRrIYUxv1nf0HbUR2UBcDMONSoC4UwuANL2w6iltD9aJdBoc3B1YzUr07u/S2VfSna+s4AP5Eazmjg8kmP+DdYXnfifJLguXzTuMzFFHHcCSyglQnYKv6uX/k5F2cwujT/nUFjAx49aVJOpOX3X1kqPMvi3T5tTd1uMuLUsdb1OnD94XFt0/mNpUiTpg+qKVWFObKLst0oNGinBxmbP/tWqN+hXwk2ae3QVPcfAY4gw+gwVcRTDdZhzeRX+41EfxGrgqEXPv1NGSyqQd3S7O9oiJI9hjO4eKMtujd5dLPaKMkLiNCh+epBMVO3e0igPu710eP6yJaRpLp4ZiUtGi9CqJwAh+V5Uuhn60rtt4nksaLvdRmfd49I5CmgERDH2rpRjPQXdLvi2pgeWo0GrQQYq9yVKgoom3x6QP5prmt2seCJ6SLI4mbZG/rpVIQ/jKVFPAh3/EXkZOiSH9hOlt34OfwCVB677zZAv5syFiYSDVFekSfJeOoQWRXnAwCCyDePVKl1KTxFcxcCffq87e1BEvcJyA/zLu4gnfgF2Kzl2XMU8jZONcYsHR4oGAYF4DUhM6LYQg8uEIJUDeRyh2n1Axf7SWIF/YX90w5+n1eMyegHd1mJudi23rvsizFfQDkPLU4koanZ1i3Z5vvkbfLq1B6Wa X-MS-TrafficTypeDiagnostic: DM2PR0301MB0608: X-Microsoft-Exchange-Diagnostics: 1; DM2PR0301MB0608; 25:Cx8cs0MR+aDJWi8fcz+LUBQfqlzwnFnBrZEYUyYHde01ZIJFzGROYgMTZ6hmFhmLKCQORgBdLS5Ao/pafTc31cuPcpBcZnrS3nqLT2ugnsHPcPWSCA5YnKQ7RmxlPIfBT5lceTxSvSHjPCfX0ORKczkXcqpTwHeyuDC9hlgmNkLlBOXzrQjOkMYfC0oiM5udbqIKRMczNv6PwdhqquoBVgcceXUsLUEIL1upK3K9n58Ntdiw1b6Iv64zlq4t9PU2V3bq9YeCCJ6v/LGAoDllm4lTVXaLf/eTaf+MNhEefP8yc6nA6/DebLbouFfMpAT0m4wDkMQYyGbzQiRCYiwIBxVbbGAqyvVT5CagZnatRS3hQ0pj9QoUXH3AZHW2wBCWfSDashQBhCxtvN0Kp+/K2tAiMMayDxiMC2FSR6LZA4IMPS6s1LYPY4QlpT9HYFpsbn0Pw2iBWM+IBdH8gfEW/nihzbeH7ZS3yc3SrE/ewgfyH49+MT4E30wsUGv3qUWKx0XeQNSmGCWy8vyiCDdXl/iuASzkuu8EBLe1ksKU03fKaDvCz0WD1uTYyA5OiXqGy7fhHYtfXNgN799tvXsxi83WaHBLm9cLO7LaW9rz6BZPalqEHhpFkwtBt1pf6RDlJROLC+5brs5+1k0K4xV0jl1ZhaiHXE8dCendIMyCo4f9CHqcNyK5kdDdrpIvRjjXufu8zKoDpQXz8NAhxRsA2xPtBszW4EyYNtg+AWFJ6oy6lcZx44RJyA4FAkCJKQEJD1faz+i3YQWxYzmHOSdQ1cQ/qBfxc++R07LYjwC/VgKZm6e/Na2Hz4j3dRPNCUwGVV+osTvWRBDmxFmpfueujgiEw8VYZh8bbtd4buEsI99dT71A4A370z8HwsYPwjjBZp3j1gsyKkWuwExwlGfXbf6otk/KuPRvmsQGaEURwPY= X-Microsoft-Exchange-Diagnostics: 1; DM2PR0301MB0608; 31:oh1TyNylR06blucSgqBk3RbXN1McLgFsNoOX1OLOjXalb5cl8/BPKSOK5x+Soz6ktUKdDFJ0J/R3e1kBYiXW1Ya5D19cls7tHU2QmRBYyub9Et2pytRF8tWDyhoIB9/TeYR5CLBSWhq7MCo6XwzZDeBVXe5psPFPW9Pp6rV3xnQSI1IzzlVarehAKQn3IS/RdSZ72rHR1NPWZr1RZWfbKfKjVJewfOgBqXebiweOEBIjq3auTj/IgGiTSE808RkTeHx+EITUy7dWJM1p7lKFXFmeLofLpkO+K6I27w3H1wOLIKEXnXpW2CiRFUtKzdbXqXrHVn66AHM5TkhqaApVud7CF0pQgJWsh/pYUdSjjl62aRrwhd8x4QClKN2d3rNyvZbSFx3q0CVlhj+X1DiEkUg7YvId3JmlG91fIh1bJwITfwdpmohDDl/k7Umu+R0THiocEe/7+UIn4nQ9TE71HmUWpzYO0JhrkpAM1wz6SfHOlzv1fwCZXEUMHdYTwokJav8j2vDi0wn5/DspNlTfP2hpPoz5wbdp0zjkgVr7UmxrqfH01eMCckU/BNQn6C/6KBalqg2KbxP7PJ+ASKepzWRr0Q9iYkO6Lf828RwnSqsFQPEIaFN6If3UggXXoa5c9BjpchS2lNVmgjU9B6m0SrFkGx96U7+cuugX8YTEZmdMJ8bqjVI/2xHDoV8HnrR+Kxc67adQWQYHWH5PGf4OOw== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(133145235818549)(236129657087228)(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6095135)(601004)(2401047)(5005006)(2017060910033)(13016025)(8121501046)(13018025)(100000703101)(100105400095)(3002001)(10201501046)(93006095)(93001095)(6055026)(6096035)(20161123565025)(20161123561025)(201703131430075)(201703131433075)(201703131441075)(201703131448075)(201703161259150)(20161123556025)(20161123563025)(20161123559100)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DM2PR0301MB0608; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(400006)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DM2PR0301MB0608; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM2PR0301MB0608; 4:7bxGkv6emszaeVnfu17KtNzXUVvvIOIOHOG+dIz7?= =?us-ascii?Q?lLZnURojLcPm6ieXalKeJ+0IrVW1PhXjpetBdQXxycawJdSuCDtV2FayqSiQ?= =?us-ascii?Q?B3V9vxZBBZLRQf0qjZOcXrQi89OgRbfsZ/p06VHoLcjRbZ6AppXP/fWiKr/1?= =?us-ascii?Q?+najin/ePXvsIeQ+rmjRgxu9pIqUe4xZ/yMDNqBAESlB+0VeNUlzUPgbKwJG?= =?us-ascii?Q?yy0ZZWm2QSkMurJ1PSFwqA0k4hCxirxbM/4J5OJ5aKWATx3s6mVa+zp+m4p+?= =?us-ascii?Q?O9l4+3D2q4tgDabQedtxou1b8P3Fh3vPbkKs9QS9OF1v1kEvjYlS2btBfvjc?= =?us-ascii?Q?SwyjW6XsKzD9O/MdTLhLMYmnnIZEEkgUiub7czTC2zZvh4J0Zm44oynYA7w2?= =?us-ascii?Q?tBaf1IJkHpodwAqGM0KdCkNxXcO+sAlUGLgnK08FT7trMVenWPTN/b7cdkO5?= =?us-ascii?Q?lBqe1tUoKutC3RLNd90nWgaD8FAhamHmpPQWbWdBz2sUwEjDL2vyKsndz99S?= =?us-ascii?Q?Q2Wmfknpfzl5KWby/Au1mmo37avn0LC6kfADHmXu1J/aKRT2pMaymnHoHdc1?= =?us-ascii?Q?un9ojQ2pUgKqSiLmzDbFUm4ir4vfpdqfbc5t6Pz92UltKj0VKFmAm73xjIOf?= =?us-ascii?Q?5oLB3TWvtIXilQ4eM1H0Ucrw5dxwu+69SSO/Ft30Nd0YHeTfLKzSDej+cn/z?= =?us-ascii?Q?pWoHzBgP9l9IQkQetNHWqbGL1vOTjhXrimQLh2T16X0YcdwOoDfddEjQ4lXS?= =?us-ascii?Q?koXJBn1Z78C2ht+y3pNqSZnTX3zWxJrV/StHthRHofCpHiQvbP7s40RjeWxP?= =?us-ascii?Q?V8hd8AjPgboom1uTyFU6QX0je3up3Bk4tTSZHbWDMkOxCwacpsltuGzzHkGr?= =?us-ascii?Q?9sm46G1Y3w+siaPPlGrvwzYWaY2IUrhivo0dgsEU9YAWSlBWj99OEJvqVt5U?= =?us-ascii?Q?keP0/345feCKQ9XWF6goSQqZiIHGs6lx4dnZwYsqoZcWIhXEvE52kT3OwnUU?= =?us-ascii?Q?o0aYsqdTNpqMu+ALmQvtVk+N7nCiC04j/VYeEGSGoCPuFoxlsW+Qvog7oUu+?= =?us-ascii?Q?ftKOujfYioJhIcRr6zEzGrK3/ADMui5rFI4jtk6oEW6FfH9DDnJlveyn2MiF?= =?us-ascii?Q?bxPlp/F8SfWp/orlC5gT2HEMPRQp5SBoM+djvNSLbZ93fWv7b+l9GD4/aOGe?= =?us-ascii?Q?f9HXKAUj+iTFA5u7HF3f0yIPb3iII9Vq/B9CR2n6ZsO5Hq3TaW5DedtQnCpB?= =?us-ascii?Q?IWQ7Hnp6aL0BTSF5gYpUoXGihERP+43bp4XclRUs4HWx6rszykkeV9PD+8Wh?= =?us-ascii?Q?1kZfpTxAUXbOR/uwbfeRiAvk9izcOy4nj+hkySdUQY4ycRnZLGicGyxEjGEm?= =?us-ascii?Q?SAM1fQ=3D=3D?= X-Forefront-PRVS: 0358535363 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM2PR0301MB0608; 23:fKlz27elEqGgvCRDniL7sYxWeRj2I2HbbA/0AgT?= =?us-ascii?Q?wmcQfJ686i7gnBeQ0f9WxWcXVl//DpA0DGD4Kg8s6upnX6sWzvc6+2t/nieK?= =?us-ascii?Q?Z3p6O+qUZwmcpGzmxGKavjtz8inVGQngW8cKYY+39jaDURllA+xt7XevASYM?= =?us-ascii?Q?A/OnX6IuYju4kggfSud3htrSfKeRUIkV9e8XiyD7SO6zjQ+3+sCM8LYkG/HR?= =?us-ascii?Q?ttRv9C1DarlISWfHu1/zNgbV26AVkxSx69T77fNMRTejEhtPaUr/U4LZwJH+?= =?us-ascii?Q?1giSbX/k/v0f8vQf1D7IbaYQaeyJnJ9aQBa7KXiWoExHVNkzqWm7HyLHU+bB?= =?us-ascii?Q?LOTSNxUQOW4ZWzafBPbNpxK/qOEqrrPiCI37RSp30a+6stvTJuid+RVxTRSv?= =?us-ascii?Q?oib87UZmX23xRH0dd1Ro1BijTWVklfa0qYJ/KvK3uOspZ0atwvJJqbRpfE/I?= =?us-ascii?Q?e/42EDXrCK1pY/TzlULQQ6PI36SJ5OtdfA6zoxR1hvXMjJkmqXVp67uwXl+p?= =?us-ascii?Q?xt1obplv6OxYhww52NjpgFquiatsWUqtxFj+2wCGOGGahCTyMz1mSSFaMdj6?= =?us-ascii?Q?BjUZx7i/azV2Cb5Za2FHg4ITWMkhbkRdC3tNW8dAD7i3ieteYG+gpOuL96ui?= =?us-ascii?Q?opOXe8bghrXT5D3zowXerHUPE47904y++ekE8mK/DAwvpU8ynWVUw+mdFB7b?= =?us-ascii?Q?hzWZt0qEXjofmJ9V+Z5y+3pBEkIjeaAGe8r3lCgrkO468yvSe+PnCox3Cb86?= =?us-ascii?Q?yCWGnXrP5YnN0H9qhqfryNBd0nqsYUQ1dVUFGXXvm8XeQNtsXB/HNdLwolU7?= =?us-ascii?Q?HIPMcoQeoWGnhOgHhUh0auhwFEuW3LRJUrrEz0pljgY9Z4nepP5Ge9gxaP+J?= =?us-ascii?Q?6yXolKybVbf/pony/qPXbNa1YyMEKGDIFtMWHf5z6Eg9FZWtNp/rgkiHEUkP?= =?us-ascii?Q?Me63hqe4Xufx/dIDr+JyC2upTmdURmfLjjpoknX/iIJQ7ik89mFMvpTnCzIm?= =?us-ascii?Q?TgSavjQvUyb2FDERAKJvlNWI0mdFqKAsoRUOs5HrNqBQm3DrsnJOc2jDgtKw?= =?us-ascii?Q?JyNcEhzcd6YFmKtLG1xjIPPrbRZQ0HzV37v25PePmuYb/OmoBwS9E4ApMXqw?= =?us-ascii?Q?SUQdEjVYbNb+/4wVxKffNR5mn1f2UFLrNPCU7snLDVMKaoboZCuIfYqTGMhJ?= =?us-ascii?Q?v0Pr+5TbKLSwY4g8mCWrDDllSm/mYbiJu3vGe4pw3i1nIR/HZxgVnFdfXfJk?= =?us-ascii?Q?fMekUGc2S0hA+NzTqQeKKa/k62ohsEw2Bb3kew4iBAu6dyMcC5l26SlflTaZ?= =?us-ascii?Q?b3CYO7D+HucF2y9ZNSBJUUiQ=3D?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM2PR0301MB0608; 6:MHNjptsVg1U2gSL12WYy7joZxYPLm6no1j15vExg?= =?us-ascii?Q?R6NIvFruJq9rfbCo1A357t6f+SnRNV9XdEVfnfZipJStckUfM2ecRhDR3vZv?= =?us-ascii?Q?gFdpDqceTHp23/btAiF320VylL+p2ZXTFSYzKZUNDZeHnWIigiIhzgrXElds?= =?us-ascii?Q?YodD8cMZnyni6IQ8xqlshpyQGLW/WONDcNt93Ff6hIIs4CDtzv6XamZmkP73?= =?us-ascii?Q?Dm1Mne81ts7UTyfjh5m36oz2sxVLwXBx8vuERDMUujWsSbVDofNjwXMhjfDQ?= =?us-ascii?Q?VRIsua2CNR13WB4mbTXRw10wjUA+bRa/b8n9aFoLqPghz+UMuxLL0a1xnY7P?= =?us-ascii?Q?sXS9Id+Ch2H4LJ6+eXD++8+eDKk373v7JCo0MO7NczFl78j/OclQPqSOpM0K?= =?us-ascii?Q?tMg6j2MCe/+GmlhGvZ85SVjw2RDDKQ7xK2nBqv5ImaHxa9Q+ozpgncWU6lw5?= =?us-ascii?Q?MQz6oGeQ166m+EpN7vZQ+ULu/h8g+w7be7sz5tkkmE6RiV/mXGXSWIQyQJOe?= =?us-ascii?Q?fohhKE/7hTerMrzjRaNFke+xpYLMNmBM7bwlBCLctGx07giEM11RuvsPCcwR?= =?us-ascii?Q?4kg1ddMxJikIejjk/1jdjRxi5nS9rfxsRDBilKXOE1Zt4z/Eq4ZuhGmcB2Rr?= =?us-ascii?Q?mFns4+w+/Z0d/DVTa1U0JHyMbkebMNJof7qMl/oY+nTEbrw7WzAstQmsS1TO?= =?us-ascii?Q?roJRgsIbOHeXrKCx2FUll2+0Z9IWDKiAt9m3HdfkhPgC+jxKgEqPe2jOd1Xg?= =?us-ascii?Q?bAKDNzeQV4zhk7FmaaC+ah70EA9N6Ps685J5v3Hvgh/NYqLtgKjpTF1d/cdt?= =?us-ascii?Q?V+1Gy8MPR5Y/h1o9uwk6IXtKDv43xFJ5O+jNsM9x63A7hC9T9kTt0ivvBhLg?= =?us-ascii?Q?MrQOeNvwnKgbVwXeMgZfhsg1YpazYb7d7yYNSLwI4zVtjuJehAdkr8r77QC6?= =?us-ascii?Q?N2xA/VNPTBxmB3pjVrdfM4ClkdJhiqBlp4eyNxZQXH3w1kXcDJBT6Cq6nfEW?= =?us-ascii?Q?q7g=3D?= X-Microsoft-Exchange-Diagnostics: 1; DM2PR0301MB0608; 5:RvycFV8m9w9bY0e+UB22B9yE4R8ROcOkEyqGeoJQMfhDYO3g1Th7sDVzBhDIctnPtPCrBxJmrL3etdSO89K77pDn7+5mkO9i4W5i7GhTTocUXRRHe4KDWzlqhQrItBlXD0k7yd+ekixcCfi4/5uvvPw7lDQsgi0vi5WUvLCUIYVgLqlkITpGWSwrNW2ZMtTj3P0W4Ggylc+4BC1kAfIqq0shUaZuioe1MSMqntvAnUgRb6IKD/VOq3mamCsGdEND9dHJxdaPjXi0UWJQsO4jgFEzvY1PuttIc9wVMIA3frGNgdbc1TZUCbtiwDLG1Vjhrm3F8TuCjjMztYTIrwxQMIFbhmD8QVkV8wYv0oLB/O/6+Gam/ScRdKXlfApOkqaB4T1g3DQrahppGDwMHTFEu7ojcyeNHBbsREtJnpHzcubyIqPdFfuSwAwSXaSlZXlK+h1PKSjjhiNs0t3eYkn2GPA1/0G423OAaiDNwTD2csLrGvVhUwhfZ3wEEMz6hpKgqlbYEyG3WYI7d8FBSA9iTg==; 24:C+ioKRRrV+dRTC+uIJujDb0aKtU0vTrF8/kzzf2jigsl9l7eLZZ4P3tRqFvM8YSF7dsHjHMDplQmD8fRHiUKj+4bqUC+iJUWLPjJBEoLLLU= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM2PR0301MB0608; 7:JTrKKxgUz670aIyA67sIjpUqTqw1gUxsPMi8hONoADKOtNiTcgSaK7GImL2hxwYSUgB6kc0hCwqPaGI2MfQEzpTxuVbwuBTMoXC0jUUeN40Fkp//Cl4RwSHjtSEH0bzfFYHuq2U2DwHVNOHOXg4Q7fEeW/4mxxDMDufIzF1vAJ0q0ZQz9pCKX+rh0jqv7+C0HALLpVxbx+40bFj0aExVvtZbO0WYautj1DXNPYoKB02WOMzOrnq/aimSRZ88nN/LM0iztv8KzF37buck0+JnYaJUNjzC+wWcAoMVkTZNXxorjJ9jcjO/e7RFhcXxFl4gbgL3u3NQlIQoTXA4jfeUPZl/rLfNk6n6IjQBG3EdBel8r6OkRJWNTKkPO64OOHpVTopiu4Uz0lZLdolxitAwllEBEK+C5WUxelxPKW+UC4YjZO4kDpvQ8YYSfrhh6hSkyl5ULx0IjxcQ2Ws0lIXucY+rrrAEveb7OnxDrABz8TUrHazfnUspluN4sMo3D3Kc8zQ5wthG4B3PH4Y/RIJTHb59HpFciq0kw6nHV/sGU2wSnmSjFZrnXLzuIkzT6nSRbk7XlZ8i4Hz8F6OHTLypdyJmzAsZhPG7ptAYbx0mOdiV4b6uWBJ0jNRfbzXufapwCDQm2iOpMsLUBuzKDqnFKaMqqzCmr9BblT46FVT1OPhz8PRwzOGfw0uiAbp2CBZm+Ln6VB3MrAzeaq1GZM/zCWwWRRavGnG3kAPRSZxFcfu1Pbs/OsGmRn2pGm03zZ0z3WPQ7Do3XNdlwfKveOLjt7jpdFF+Y/d4nudhPDaM8zg= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jul 2017 14:36:45.0752 (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.158.2]; Helo=[az84smr01.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR0301MB0608 Subject: [dpdk-dev] [PATCH v2 37/40] net/dpaa: add support for checksum offload 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 14:36:48 -0000 Signed-off-by: Hemant Agrawal Signed-off-by: Shreyansh Jain --- doc/guides/nics/features/dpaa.ini | 2 + drivers/net/dpaa/dpaa_ethdev.c | 4 ++ drivers/net/dpaa/dpaa_rxtx.c | 88 +++++++++++++++++++++++++++++++++++++++ drivers/net/dpaa/dpaa_rxtx.h | 19 +++++++++ 4 files changed, 113 insertions(+) diff --git a/doc/guides/nics/features/dpaa.ini b/doc/guides/nics/features/dpaa.ini index 2ef1b56..23626c0 100644 --- a/doc/guides/nics/features/dpaa.ini +++ b/doc/guides/nics/features/dpaa.ini @@ -13,6 +13,8 @@ Allmulticast mode = Y Unicast MAC filter = Y RSS hash = Y Flow control = Y +L3 checksum offload = Y +L4 checksum offload = Y Packet type parsing = Y Basic stats = Y ARMv8 = Y diff --git a/drivers/net/dpaa/dpaa_ethdev.c b/drivers/net/dpaa/dpaa_ethdev.c index ee9e1be..b45dd0a 100644 --- a/drivers/net/dpaa/dpaa_ethdev.c +++ b/drivers/net/dpaa/dpaa_ethdev.c @@ -185,6 +185,10 @@ static void dpaa_eth_dev_info(struct rte_eth_dev *dev, (DEV_RX_OFFLOAD_IPV4_CKSUM | DEV_RX_OFFLOAD_UDP_CKSUM | DEV_RX_OFFLOAD_TCP_CKSUM); + dev_info->tx_offload_capa = + (DEV_TX_OFFLOAD_IPV4_CKSUM | + DEV_TX_OFFLOAD_UDP_CKSUM | + DEV_TX_OFFLOAD_TCP_CKSUM); } static int dpaa_eth_link_update(struct rte_eth_dev *dev, diff --git a/drivers/net/dpaa/dpaa_rxtx.c b/drivers/net/dpaa/dpaa_rxtx.c index e091cd8..9afc722 100644 --- a/drivers/net/dpaa/dpaa_rxtx.c +++ b/drivers/net/dpaa/dpaa_rxtx.c @@ -200,6 +200,82 @@ static inline void dpaa_eth_packet_info(struct rte_mbuf *m, /* Packet received without stripping the vlan */ } +static inline void dpaa_checksum(struct rte_mbuf *mbuf) +{ + struct ether_hdr *eth_hdr = rte_pktmbuf_mtod(mbuf, struct ether_hdr *); + char *l3_hdr = (char *)eth_hdr + mbuf->l2_len; + struct ipv4_hdr *ipv4_hdr = (struct ipv4_hdr *)l3_hdr; + struct ipv6_hdr *ipv6_hdr = (struct ipv6_hdr *)l3_hdr; + + DPAA_TX_LOG(DEBUG, "Calculating checksum for mbuf: %p", mbuf); + + if (((mbuf->packet_type & RTE_PTYPE_L3_MASK) == RTE_PTYPE_L3_IPV4) || + ((mbuf->packet_type & RTE_PTYPE_L3_MASK) == + RTE_PTYPE_L3_IPV4_EXT)) { + ipv4_hdr = (struct ipv4_hdr *)l3_hdr; + ipv4_hdr->hdr_checksum = 0; + ipv4_hdr->hdr_checksum = rte_ipv4_cksum(ipv4_hdr); + } else if (((mbuf->packet_type & RTE_PTYPE_L3_MASK) == + RTE_PTYPE_L3_IPV6) || + ((mbuf->packet_type & RTE_PTYPE_L3_MASK) == + RTE_PTYPE_L3_IPV6_EXT)) + ipv6_hdr = (struct ipv6_hdr *)l3_hdr; + + if ((mbuf->packet_type & RTE_PTYPE_L4_MASK) == RTE_PTYPE_L4_TCP) { + struct tcp_hdr *tcp_hdr = (struct tcp_hdr *)(l3_hdr + + mbuf->l3_len); + tcp_hdr->cksum = 0; + if (eth_hdr->ether_type == htons(ETHER_TYPE_IPv4)) + tcp_hdr->cksum = rte_ipv4_udptcp_cksum(ipv4_hdr, + tcp_hdr); + else /* assume ethertype == ETHER_TYPE_IPv6 */ + tcp_hdr->cksum = rte_ipv6_udptcp_cksum(ipv6_hdr, + tcp_hdr); + } else if ((mbuf->packet_type & RTE_PTYPE_L4_MASK) == + RTE_PTYPE_L4_UDP) { + struct udp_hdr *udp_hdr = (struct udp_hdr *)(l3_hdr + + mbuf->l3_len); + udp_hdr->dgram_cksum = 0; + if (eth_hdr->ether_type == htons(ETHER_TYPE_IPv4)) + udp_hdr->dgram_cksum = rte_ipv4_udptcp_cksum(ipv4_hdr, + udp_hdr); + else /* assume ethertype == ETHER_TYPE_IPv6 */ + udp_hdr->dgram_cksum = rte_ipv6_udptcp_cksum(ipv6_hdr, + udp_hdr); + } +} + +static inline void dpaa_checksum_offload(struct rte_mbuf *mbuf, + struct qm_fd *fd, char *prs_buf) +{ + struct dpaa_eth_parse_results_t *prs; + + DPAA_TX_LOG(DEBUG, " Offloading checksum for mbuf: %p", mbuf); + + prs = GET_TX_PRS(prs_buf); + prs->l3r = 0; + prs->l4r = 0; + if (((mbuf->packet_type & RTE_PTYPE_L3_MASK) == RTE_PTYPE_L3_IPV4) || + ((mbuf->packet_type & RTE_PTYPE_L3_MASK) == + RTE_PTYPE_L3_IPV4_EXT)) + prs->l3r = DPAA_L3_PARSE_RESULT_IPV4; + else if (((mbuf->packet_type & RTE_PTYPE_L3_MASK) == + RTE_PTYPE_L3_IPV6) || + ((mbuf->packet_type & RTE_PTYPE_L3_MASK) == + RTE_PTYPE_L3_IPV6_EXT)) + prs->l3r = DPAA_L3_PARSE_RESULT_IPV6; + + if ((mbuf->packet_type & RTE_PTYPE_L4_MASK) == RTE_PTYPE_L4_TCP) + prs->l4r = DPAA_L4_PARSE_RESULT_TCP; + else if ((mbuf->packet_type & RTE_PTYPE_L4_MASK) == RTE_PTYPE_L4_UDP) + prs->l4r = DPAA_L4_PARSE_RESULT_UDP; + + prs->ip_off[0] = mbuf->l2_len; + prs->l4_off = mbuf->l3_len + mbuf->l2_len; + /* Enable L3 (and L4, if TCP or UDP) HW checksum*/ + fd->cmd = DPAA_FD_CMD_RPD | DPAA_FD_CMD_DTC; +} + static inline struct rte_mbuf *dpaa_eth_fd_to_mbuf(struct qm_fd *fd, uint32_t ifid) { @@ -368,6 +444,18 @@ dpaa_eth_queue_tx(void *q, struct rte_mbuf **bufs, uint16_t nb_bufs) } rte_pktmbuf_free(mbuf); } + if (mbuf->ol_flags & DPAA_TX_CKSUM_OFFLOAD_MASK) { + if (mbuf->data_off < DEFAULT_TX_ICEOF + + sizeof(struct dpaa_eth_parse_results_t)) { + DPAA_TX_LOG(DEBUG, "Checksum offload Err: " + "Not enough Headroom " + "space for correct Checksum offload." + "So Calculating checksum in Software."); + dpaa_checksum(mbuf); + } else + dpaa_checksum_offload(mbuf, &fd_arr[loop], + mbuf->buf_addr); + } } else { DPAA_PMD_DEBUG("Number of Segments not supported"); /* Set frames_to_send & nb_bufs so that diff --git a/drivers/net/dpaa/dpaa_rxtx.h b/drivers/net/dpaa/dpaa_rxtx.h index f688934..b1c292b 100644 --- a/drivers/net/dpaa/dpaa_rxtx.h +++ b/drivers/net/dpaa/dpaa_rxtx.h @@ -41,6 +41,22 @@ /* IC offsets from buffer header address */ #define DEFAULT_RX_ICEOF 16 +#define DEFAULT_TX_ICEOF 16 + +/* + * Values for the L3R field of the FM Parse Results + */ +/* L3 Type field: First IP Present IPv4 */ +#define DPAA_L3_PARSE_RESULT_IPV4 0x80 +/* L3 Type field: First IP Present IPv6 */ +#define DPAA_L3_PARSE_RESULT_IPV6 0x40 +/* Values for the L4R field of the FM Parse Results + * See $8.8.4.7.20 - L4 HXS - L4 Results from DPAA-Rev2 Reference Manual. + */ +/* L4 Type field: UDP */ +#define DPAA_L4_PARSE_RESULT_UDP 0x40 +/* L4 Type field: TCP */ +#define DPAA_L4_PARSE_RESULT_TCP 0x20 #define DPAA_MAX_DEQUEUE_NUM_FRAMES 63 /**