From patchwork Mon Jul 10 11:42:28 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Santosh Shukla X-Patchwork-Id: 26716 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id 781CA7CC9; Mon, 10 Jul 2017 13:44:05 +0200 (CEST) Received: from NAM01-SN1-obe.outbound.protection.outlook.com (mail-sn1nam01on0055.outbound.protection.outlook.com [104.47.32.55]) by dpdk.org (Postfix) with ESMTP id 3F8777CC8 for ; Mon, 10 Jul 2017 13:44:04 +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=WvPhYY34UnSn1y/zXxd8YppdzwiYzc/1szDnGGj5DKQ=; b=mZqod49e3owa1w5R19u2NgT/7XdNrirGqFLbbziz8kMQclXGCmgsf/uKxzhD4/Bew34AGOjvL9u/Gps+kPHgASD2VwX/5vHOr+XXctNHdo1O8o4wWgxB+TfSlZqu22NWtzB7sHVwd4tXp/gE3JaPpaRsr0ngofRQCZCMd8p8b8c= Authentication-Results: monjalon.net; dkim=none (message not signed) header.d=none;monjalon.net; dmarc=none action=none header.from=caviumnetworks.com; Received: from localhost.localdomain (111.93.218.67) by MWHPR07MB3101.namprd07.prod.outlook.com (10.172.95.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1240.13; Mon, 10 Jul 2017 11:43:57 +0000 From: Santosh Shukla To: thomas@monjalon.net, dev@dpdk.org Cc: bruce.richardson@intel.com, jerin.jacob@caviumnetworks.com, hemant.agrawal@nxp.com, shreyansh.jain@nxp.com, gaetan.rivet@6wind.com, sergio.gonzalez.monroy@intel.com, anatoly.burakov@intel.com, stephen@networkplumber.org, maxime.coquelin@redhat.com, olivier.matz@6wind.com, Santosh Shukla Date: Mon, 10 Jul 2017 11:42:28 +0000 Message-Id: <20170710114235.18970-6-santosh.shukla@caviumnetworks.com> X-Mailer: git-send-email 2.13.0 In-Reply-To: <20170710114235.18970-1-santosh.shukla@caviumnetworks.com> References: <20170608110513.22548-1-santosh.shukla@caviumnetworks.com> <20170710114235.18970-1-santosh.shukla@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [111.93.218.67] X-ClientProxiedBy: PN1PR01CA0082.INDPRD01.PROD.OUTLOOK.COM (10.174.144.150) To MWHPR07MB3101.namprd07.prod.outlook.com (10.172.95.7) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 341c30b5-7865-412f-2f25-08d4c788f5ed 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:MWHPR07MB3101; X-Microsoft-Exchange-Diagnostics: 1; MWHPR07MB3101; 3:TgiA5Mp/srrBCJaxanGgQs6iQNjl4LBKT3nKW4Cxdza07he4ZJeqdDpT9X0UoyjMYLigg4RFpb7XdvB1/wetMuOavi/OpLrw2Ut+iIzUtSSCrnh1qLH/P/f4yDpeRExOFM5jpNCv2WmHjUZLbtzhpqC90uXdaE4D3zfzdubQQ/r6iTRZjyzQ433FyYdzWTmhMbTcakox+g9fPjgvsbjoznrx8L4JLgHSnZbNwXQCw0Tk4bwcRj+xy7A5buRCTneLpYtKmCrx5mZ71PAFe/qVLIPGIOHneJT14ID7REQc4LTH6mUFh6yAd9fZlaXYuD6wJdRmo6IRLX1ACVT+wOTmAUjdRGlt6jYC6Wq7Iwx2MhSe3CW04H2CvykolGuW8Wyz8yQTti5tpSshLvVC6TP9u4Q99bI6JLTx1LpxFonGM2eYaCdX+M7jf0yfwqxwE7rCxn9ikgUDCbVoaefOlkJDVzPGRSKOw0/JDgViEfoKpNIYEue9moBpGrr1d7j1oXb2lhH/mVSkDPACU7AJ20e1lo4W3LA4gmz4beZjc+GvgH0V/TtH5w8z2tlmPYnE8B1ZoXR2MgVhcMI8pFP3KoXrq17Jh2BtXLaL/Ozc8MNB72YdQNtvLRcRZBUcmBJvN+6DCgv7Zs+aCZHDrBI8UL/AeTBqVleuo7AEc1RS7km3vmo4kB2QJzPpgCq3uuTKEm59ZCiPWZ38+umuiai8p2uiBv8cUBz1rBVUPc4grHWdM/U= X-MS-TrafficTypeDiagnostic: MWHPR07MB3101: X-Microsoft-Exchange-Diagnostics: 1; MWHPR07MB3101; 25:aWkhc1TzLgHZ4uaOQLQftVBr4akr04BIyhhuFkf8H9k0r1vwG5ZMjqmzy0nGu3klHjVLNyv3kX0Q89BkbewbR5zgKpHrISDfd05FSzgGUWxv+NSFUBxfnQemBhuY3vJnN631pRGv9yCTWFn4bQ+QxAC3mEVS8IaA78B0JQW8vsRMKWt5WssEDxKqUcj8iGVuAGgXhhUZAb9XT7l32xQ+GUu1ESvbwOOmSsxj8r0pRNrl7oxY6SJdkitvHw2lng8qJ6MCGDo4YF/YvBLz1LZAAZ5zt/ofaJUcookjaaYNRT5bvU98F+bQ0z2mWhmyga+jeA0wosvdXqzy2vV1WoOe2wZZ6hJcXUAy95y2fasoaeaYnHyVaedQe+dgyiZP7H5ATLXMAoDF5LX1xc3LDJoCqZxPmrIKeaQKsrovZSCsi+S2HJDOGtCDnzz94s6yEuafqHII8np0cTgKQEdD13p/EO4vqYo16ClGOGMg/Jda+akaGUV8A5HlIuNZa3plNxI13zDtYooBPIv2Y5By8kAsXTB9EEo2dEdxucFx2dfNBx+DT0pILmQnS5gLcSpOjly2Gg4dQZfgt+Xt2CPTZlKmnVvi+RDZijd1YOIREdIt5k6QY3cc0H+0AbVIRDIFElqfMoq/DSeOb3upkTCITYBPnk+dbdLy6QuxfT3Z5K47kyvBd4FiARCHBq+k9UBVGQMBEJNclnPp+CIOWTVNbhx3Sw8hSoQ74LD0cCV17hzBwn9Bp6z0jSjz9wTKz5QDX7qxWv2jC7vZgL0+X2kUpFVMIIzwa8q/0rJx4kD6ZFUnLPdlYxDAB9ukMAk167PE4WWbDh8PfE/MwsXE4sNQ3hOvPAuJSVcuyk+khbmM6b3yVQXhYNx3rEtko0Yw3C6zZNi4rY35mc9VXfDY+7YGMEqPcyIg0Xp+UOFKNuD9ksjMgAg= X-Microsoft-Exchange-Diagnostics: 1; MWHPR07MB3101; 31:RXCE0xu617mVMxY63/1sVCbaFG6KQ5Dn9MfHBi2Dlxdb+2acLxeN11cGQqPyvru8sT7lg2AGAI0Z+Q7wfpOEIQEeJy4I8cVWplCzX4DPVIaVgPXAUA9GKkOMdA9d87yKlEfs2m0gQvlOF8NV4T0vtQaGQXQGalvgdopslmj3HOqWEoA6yCBe3huSzVkmc7ZEym/8NS6uqyajZ69ejpC/S2xmguzNKDuRDqFX+N6RSr28h36SL+DcdaIMdRvnY9d0S0XzvuWQ4mFd34b9w5330q5WxZRCbndvofqOZyCPRXMRfVJuL4Uccj8YmTgIwilYe5ZcP0AKb5GigE5t8pGF7tP7iacXUh039k3KzkdeaCPXze7YLN+cC4Yp5WMZWLW/cWieDJUCmKQC3DNgzg2eOlpdcNJZkkgdJlaq+FcQ56j0D4Ki1RrEOXRzU34AyDf35Q33cEyRmxv4eeIlo8vrJofM6jnuqiDsIRwMA3tSXkTNGdZYGu1eSgaEo5KuzPRGsHOSRzRB6h74jXzFHN/Os/1n6JEXaigBAXko/bAcKNl6U68hYhirxSSHBKz+RTitUL+BVKqX9FQIP3eGeWODcn/P6XjaAqXJZV7IWq423PEsvuU6gFIPwurbz/4lQb+4LKlnl9cFLbyPQGCeQzoHEIdu0fD5mrkmQBorWynBaiI= X-Microsoft-Exchange-Diagnostics: 1; MWHPR07MB3101; 20:53uYdajL2y9AEvljEWAkbkLUdn4yIGGHIBTh2miRAmZfeJ60v8RL9iHro/4xuZvnHEPoKUgCBSA2W0Jk0WCPuD3n6l2d7Y5GDauWMTZ3sl921BtQ2WR3eVwlje6KWAj6fsHbuNPk6Q0oV1H+gv6/aIu2zWhjy6seObipvSq8HWXOydM2pbc65NWuFArT3oNqya3O0KKqEPicxRx6+V2VypukQ2SLk0tMG4SFVFOoyitfByew0DOAO31lu7fVOZfvEJzG4wsT0XWDKPR6iP3e0//b9bKPccAfuNGd9q4WLKZfbqIFLaqoHDaY9PxnAfLzLYDnVBWXof2T9+fgvBXCek7+Js2IlnXY7boG6XFIwMii7ut8MMsq3on2hZgAUGiraPUUuCsqihcXdMH8A7dJXhjC6/0nT03id8Y1GrUGzXLTojqTZ2mUkbwid+0W4j8DfsIvoYhHr63V1PF83CvJu6tXwNJqR58pmzZw8DMgNcmED6qJpmupk6sctP/kRP0hhAUsUTi5GCjPSM1EzckcqYgbRmz4R88CBRfQT4vDU+sgkywpAZyhRz3YMcfi2CpwDSh6UqQhY87qdtuBbystJCanP/fPZa6mweW/0NGdW38= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(236129657087228)(167848164394848); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(2017060910075)(5005006)(8121501046)(100000703101)(100105400095)(3002001)(10201501046)(93006095)(6041248)(20161123564025)(20161123560025)(20161123558100)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:MWHPR07MB3101; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:MWHPR07MB3101; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; MWHPR07MB3101; 4:Od4BR09XEji38N26CB/DY4SDvND1lrwuuIgdNVaOwo?= vJhreJGSwovNlFeR21VLAHwOOM4rw8mqtEpOaXY0SlY6UGLU6zpPfagcQJ0KmRr+Jw4XrkuSjNa/g9MOOxlyLBgEfWzVPCtNlRxCEMKIWKevOjdz1c/29Cg1T0WLlt2LFjjlpr1rJ5Edvb316t8zlx5KpGBtJ0HXZ1/UfEELXtKrin6dDRzNWaxBr1HCFXsvmjIIAFkjAlZA2x/JLG0CFUMg/2YseatVuE9aecno0L24FWAe4vWjmHYJb0X+zpAqbE9iBd9uAREIcgCiJk9s1RY58Ty/U0p2jdPd6otBd5XUitAU/YD7DoV6RDhqrWWNCDhraqu1hK9xDJcxbFiVhf6qtsmLRjCyOW2udZIgY7t4a3zc48hhdigSgJFTdERYP8K93I2DkmQaODkuDc3vqqye0Jv/b7oAVDmdZR3KLjbAjgextMYeiViv/kxW6lvz56XNft4Y16bKYMKi9kjh9+ZKJpe4MWYNLPRzHuqlDlrwYpaDcV29pn6hWKQqtT2bZMzecxC7QeTt4vftKHbKlKPWBTLiBKHXCnmDdF0bw115BpCIFUdX95Ra0QMQmomovWqu3/vTjsx9QUcqwXaWHFcxdSZvgEKAt3GOb11+Mz3ekgBZqIajTclO6JA3etoT7UOyAr0AZcnq5AQaJRset25/jMlnVaEVzIpRjCtnNnjc61ZHksLqqV1g5vWDDyOttAMpaSUdAJSnZRoVQFDgjs2j2lVRpUmHaCJlI+fFBV5+UkpZeT3ATOp1rLMG6QM6ufydzlG7TxpvlYwP0rYS92OJMSI9W49NFgJ8ntjCZKDoakUkQJemI6OPe3ntOSrM9a3vAKgGvLXU7yotx1/xqNlX+R6XDXjOUalfP+lYHusU2RevbtS3Cu9PEoPPJ1m6Mbq8sWnQK6r52uR0SYA3ZucqVlsyHE+rJTsv+aIg8YmxNAuAqQ7clo6IcV09KLnlSu4oiLylFHzpkLx2meHo6P/YYTy7OZxerQnvj8zYtO8Zy2Jb8qFrZxZJH9a8vurVgna9axp3XV76TEDvNs2hXmjGE1Q/4c+CCrcvGA/gfStrrT8Pq9tvB3mBFaO0xId2kQen5NjR5XL35Mf1A7tITs+VSH+X4DcDVhI8cASaxrm/2VdLM2es2npjZ8NYnFyF+eBIgK8hzQ4kVaSCrFzJryZ/junS59G0jO9DFiRloDYpIMrqnp+4BEb7AEuM+J7rw= X-Forefront-PRVS: 03648EFF89 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(7370300001)(4630300001)(6009001)(39850400002)(39400400002)(39840400002)(39410400002)(39450400003)(42186005)(110136004)(36756003)(38730400002)(5890100001)(53936002)(2950100002)(8656002)(2906002)(42882006)(6666003)(107886003)(47776003)(33646002)(66066001)(478600001)(72206003)(6512007)(7350300001)(5003940100001)(3846002)(50986999)(6116002)(50226002)(76176999)(50466002)(5660300001)(7416002)(48376002)(1076002)(6486002)(7736002)(189998001)(4326008)(8676002)(81166006)(25786009)(305945005)(575784001)(6506006); DIR:OUT; SFP:1101; SCL:1; SRVR:MWHPR07MB3101; H:localhost.localdomain; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; MWHPR07MB3101; 23:VFzdW0yXWMf4Ng16Q5m75O78vmFEu96EAUJZdFKEY?= RXBXoFhF4zDAJI4lzAUMzOM7IBE+cr2res9rWMXtN3AY920zBoSgf9P1XrkpgI9WNk1Ik8MfHQNsJl+lRP66t6XJx3KgeQR8cFQ+0GNIf+CPIKC6SUfEphD49i1Sz+pozyRYGvG01osgg/TDGBtXuT0P0xDwHvF3RGzrfP4f26p8aK4ljHHl+Rg9QNkmKCX+FE3lF+s5KLk9a0ubVzB7RA7Wz2f4A/Y0eDGyALETR+H8PW7zofWQ1f6eHEBMlqBMRTmMUybGVQAZjk/m5wwdRDQCH1noZSFGtX4hLGRhgSTxZbNlP+Qphgyn2cG7ODGz2ukKt1FrYnyiVj7P1fVm5IVq6skTsYlbpD/7l6hO2kCf9Vq08Oyf5Z9FBQlxGLdn6GvcASktjtMGKs+TKIY1hZGw/zH3xk0mUGOviHReS69U5KNTU4ihKNi7BsIUbt76BqyMhJ2hLazJityLmg3IcEodvZF85a539B4+vNFWNUV+rb5V+Ka9tJyXw/VRIFDQpQVAblM8k1HbZv+Dg3WrO8QpcfIDNVZu58OGSyZ63GniztJvCogBo2VCc1Q3OIFurM2+0fIPwdmlMn11xzx6raDv6pKKAURiis5TWdN+/AKTZl84V6HcT/JtC6m3XBtMdcQwZvdQwPiLtxn3Y/XlftDY49zjwdF4QN6qBR6/gnb0hRkK71X50569zuEYKjyTdROUSLBk3L13QZ74+HFnN04fdlD0gnVrQovStxWPnlUCUYPEZTSEGOaVQhzp8rRdM9PaBeWYNaqkS2XsdR1pLH9mgexst5bSKYKvyOD6aqBrR+PfSK0Kh37INhunL0Rut2Un0GGYJjdvm5GmMGmqBAWQOLNnrdHgnf+ZuEsnN/hVvPOHq+f/f/Infxndd6G+Lty0vaTwiFnY+6zWni94fvYIYbj8Roq2mWXgvlX2I+RetosRFDkx1oCJBzZAbdMPwlYUUNv535UDmr4l0QuhIFhtPZzjWY6UpykDOQ8fI83GyBPjm4MMDLf+YewcCzpUjF8UxLueUokxHTADyU+/bm7glX5s9h81zafY/Ns4zS0eKiM23Yfi2UImPfS2kb3m6qJo5MdOiHSCpxhpgdWq836XHwRoCKygDkCesDXPaFR8QUq2M9zNfrYPxNSJI8z4tPr4znhAqrllqoqgjoyVA3w X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; MWHPR07MB3101; 6:jUcvNDSdq4o1MHpIzVNBq3BJfZTHrcxU5yH+X6l+xM?= 5ZcU+7AgRwoiGmEAh20xRXAMSv0N0fHBPHkeScX8N4oRfkJ5EEGJluerg3uruVGtC3l5TmFXKzKoHa46nfETyDkXLUFR3E2ZMz7WVkASjUPC81koj3GroHpRAhtsOrZbv+RybpaRPbszANmTOJy3KMAu3toL4SboUvd1t5EQYxuo8Y2J0vGck18FqK9Md1EI8JERNypxf0nj4y5YT/3U7fvFTzr2Hdb0g8Rw9Waj8wDIL7tngqIzjxIw6xvKAE16h06lljutdeAZT5Nuy42Gy4hCjINwIpRU5wwDXm7PhT2lWHSUGV3yg3DSqYHsh/tYLgZWITGXFTTV+QbMSV0r2z8bQC75GrcfzIiRKzDqvnit7yFi6pJilbI0PQBOmeNNxJXmsjjHkDZLKAyJxuDrO/4B/O0uehf2Dr9BZQ6dU+pMLbFgNrXMHLKsxccolRTxouXTj6/wTBvw3KX8ZyfhkpNHmtz9YUQWLkY5PiHc0wvzEBnJYjIPjrgxvXsKEG5svOHW2peFc0yPAorxysU6GzautKgJIcntMnMmip3IJiJtaakp4HjT7JtrY9tgKCJ+LgnBmlZRh/hYLK3sYAeWaRhYalqbCisOJRgLYfZH+zQzdFZuhHC1XzjwbH/zz0U2RT4ONfR7ZBNoWTtuxSfdnuk8isvxcTU/2yYfvLhkcu5fuyZ3hBWCO9uKjWVZozr8+k5tMpvcBWk6pLhiFcENUXw1gWB444Valwj6wKTJ/PNZgxhn9MgcW1NBY5ArcwCoyNWafcJZoZ2GYWN7V/k9uvPlkObFpNAfP+uqJITlmNck3CzEbM5voWLXHMWf4Bx7ByUHBI5o9RBCaIHuG14qgiFD6iRtZeopvMBDIRX6qhR2cA0rT+IbaQ3dQbE8D77+UqtVC2rj8TC63ygoN6SljtlhCKEfRUxPeQhiyrcYsYW0ekV8WrD2ypR61rJbOdSzI= X-Microsoft-Exchange-Diagnostics: 1; MWHPR07MB3101; 5:xxqKmCvXNsd1im5EVE+lzvq+OMn9FpmEzaFLjExx5cMl7A1vXthPOv/e5gXDAzWdJa+DoBbu/wAUfVSnQlqP75KE8L7buwN8mif4dsrN+rJbP/nqbGy7wvwt3Lf23+pPtqZfJV18HikfBGA6tURBOC5WdJbfGaXP/LDbGdRY/ncCPHlzFoax9tSEyG9aUxESyaQWMhpS+kq6lBSfzGn6ugNW2Pto/h/GylZIm0ZGD12C0BDs+sVontGJDBiiredxa+bilVr5QCnZKWmLO9JqmCSKz3nyDLhToyBr388XP6K83j441qDlKxVq3Ptf5IxNbAwOJIIsQZhY1Mo386CBqSxGGlCSJNcnlAicSO7Zh2UkwKTvQ62+BfLjzN6fJqshqXzayVpxs08sOMOnIAfZXHT4Rsmr5k+SiXNyp+p5L8sWxpeIRnv8yUneHmEL7tOQ/7IfPJ2BapjuO6mNkYXaztiEaWkTw0y1AtIP9flr8HvVOiDOkfs7YA6jd2SATKt/; 24:wWHi0d29Z/ML6Wtnyekdp7/u0RJm6iiZOoJ2QD+HDSMNTa9JdfRPW9xlp2ZEB88zgyRJ5M5hn9nKqNLqvIcWsNKBhzMr6wx7dNZcIqEOOQw= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; MWHPR07MB3101; 7:BOZNMZjEm4HL77daWLqHyLfZ6Poxm/zH7FbKRaNa0loYP8Uxg90t5E3JaEnExfLd8JEzSH6wYs49vh/PamtEG1iwxGySdJSQhE9fEYKZ0nx+5pbZCX3V9SFTr2cnPbRNwjDokROAUr8LaoCFzAfI0S+SyoPtH8nteJO+PoqEoY4QeutFUx3KT6ecbhLTDyIdGg8qLcT9pXVOEOGoV0jF/TWYmeXcrClOfljQX98gDz44nRekvrodlna9jD5SE7Z0WZirjSehOk/GA4r3rQrY91aP6Mdxqh22RxH21ub5CGzWlS91eGmc/DgWa9INAajw8s0ucwaXvPq+8QXzH/7FJJQjDDvpE0OieH7kBDqYT2aecau8tkZZqRouLCNPfIeYrWdvkQA5vfWsrJgo0DXR+m+EoFcl2pOU4PGmtSA0Qyc/x3akur8uMseNOCMiU0l9u6MSjFZuaK3hzkBjkNsTEUgt0AE8NHlypi85dmgyQYaz5gG1oLICEJ6epkAGSmv1fFAfGrWZbvP3O2LhJkcFpCYkdTSKXS3BAMu8Vik+s8AD4Pj8R951J1Kj+GyIhS8Pu+VOgP1S/VEW14hjeAuejOw4nu7xHH00PbSeUmjHwZlvyEBdwJiDojMU6pytCx2rRlRZn/KaZLKyXPpx0rdOU2eBwnn6Zg9OQ2Y+DTHZw//aCvVx43EVgyyFGy0nIiQtA0XStMT+GmoOnrbE13My7tnV1dBFoEYqqwERRcwhSO5tfALNblmhvRpN6jxAmni3QopEEDptK0PxHJEAELOrp9CUj3Sv9n0oy7D5e3CYqyU= X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jul 2017 11:43:57.6806 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR07MB3101 Subject: [dpdk-dev] [PATCH v2 05/12] bus: get iommu class 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" API(rte_bus_get_iommu_class) helps to automatically detect and select appropriate iova mapping scheme for iommu capable device on that bus. Algorithm for iova scheme selection for bus: 0. Iterate throught bus_list. 1. Collect each bus iova mode value and update into 'mode' var. 2. Here value '1' is _pa and value '2' is _va mode. So mode selection scheme is like: if mode == 2 then iova mode is _va. if mode == 1 then iova mode is _pa if mode == 3 then iova mode ia _pa. So mode !=2 will be default iova mode. Signed-off-by: Santosh Shukla Signed-off-by: Jerin Jacob --- lib/librte_eal/bsdapp/eal/rte_eal_version.map | 1 + lib/librte_eal/common/eal_common_bus.c | 23 +++++++++++++++++++++++ lib/librte_eal/common/eal_common_pci.c | 1 + lib/librte_eal/common/include/rte_bus.h | 22 ++++++++++++++++++++++ lib/librte_eal/linuxapp/eal/rte_eal_version.map | 1 + 5 files changed, 48 insertions(+) diff --git a/lib/librte_eal/bsdapp/eal/rte_eal_version.map b/lib/librte_eal/bsdapp/eal/rte_eal_version.map index 33c2c32c0..a2dd65a33 100644 --- a/lib/librte_eal/bsdapp/eal/rte_eal_version.map +++ b/lib/librte_eal/bsdapp/eal/rte_eal_version.map @@ -202,6 +202,7 @@ DPDK_17.08 { rte_bus_find_by_name; rte_pci_match; rte_pci_get_iommu_class; + rte_bus_get_iommu_class; } DPDK_17.05; diff --git a/lib/librte_eal/common/eal_common_bus.c b/lib/librte_eal/common/eal_common_bus.c index 1d3635c50..0a4d953ee 100644 --- a/lib/librte_eal/common/eal_common_bus.c +++ b/lib/librte_eal/common/eal_common_bus.c @@ -223,3 +223,26 @@ rte_bus_find_by_device_name(const char *str) c[0] = '\0'; return rte_bus_find(NULL, bus_can_parse, name); } + + +/* + * Get iommu class of devices on the bus. + */ +enum rte_iova_mode +rte_bus_get_iommu_class(void) +{ + int mode = 0; + struct rte_bus *bus; + + TAILQ_FOREACH(bus, &rte_bus_list, next) { + + if (bus->get_iommu_class) + mode |= bus->get_iommu_class(); + } + + if (mode != RTE_IOVA_VA) { + /* Use default IOVA mode */ + mode = RTE_IOVA_PA; + } + return mode; +} diff --git a/lib/librte_eal/common/eal_common_pci.c b/lib/librte_eal/common/eal_common_pci.c index 8b6ecebd6..bdf2e7c3a 100644 --- a/lib/librte_eal/common/eal_common_pci.c +++ b/lib/librte_eal/common/eal_common_pci.c @@ -552,6 +552,7 @@ struct rte_pci_bus rte_pci_bus = { .plug = pci_plug, .unplug = pci_unplug, .parse = pci_parse, + .get_iommu_class = rte_pci_get_iommu_class, }, .device_list = TAILQ_HEAD_INITIALIZER(rte_pci_bus.device_list), .driver_list = TAILQ_HEAD_INITIALIZER(rte_pci_bus.driver_list), diff --git a/lib/librte_eal/common/include/rte_bus.h b/lib/librte_eal/common/include/rte_bus.h index deced4f28..5336fa18f 100644 --- a/lib/librte_eal/common/include/rte_bus.h +++ b/lib/librte_eal/common/include/rte_bus.h @@ -182,6 +182,17 @@ struct rte_bus_conf { enum rte_bus_scan_mode scan_mode; /**< Scan policy. */ }; + +/** + * Get iommu class of devices on the bus. + * Check that those devices are attached to iommu driver. + * + * @return + * enum rte_iova_mode value. + */ +typedef enum rte_iova_mode (*rte_bus_get_iommu_class_t)(void); + + /** * A structure describing a generic bus. */ @@ -195,6 +206,7 @@ struct rte_bus { rte_bus_unplug_t unplug; /**< Remove single device from driver */ rte_bus_parse_t parse; /**< Parse a device name */ struct rte_bus_conf conf; /**< Bus configuration */ + rte_bus_get_iommu_class_t get_iommu_class; /**< Get iommu class */ }; /** @@ -298,6 +310,16 @@ struct rte_bus *rte_bus_find_by_device(const struct rte_device *dev); */ struct rte_bus *rte_bus_find_by_name(const char *busname); + +/** + * Get iommu class of devices on the bus. + * Check that those devices are attached to iommu driver. + * + * @return + * enum rte_iova_mode value. + */ +enum rte_iova_mode rte_bus_get_iommu_class(void); + /** * Helper for Bus registration. * The constructor has higher priority than PMD constructors. diff --git a/lib/librte_eal/linuxapp/eal/rte_eal_version.map b/lib/librte_eal/linuxapp/eal/rte_eal_version.map index 044f89c7c..186c7b0fd 100644 --- a/lib/librte_eal/linuxapp/eal/rte_eal_version.map +++ b/lib/librte_eal/linuxapp/eal/rte_eal_version.map @@ -207,6 +207,7 @@ DPDK_17.08 { rte_bus_find_by_name; rte_pci_match; rte_pci_get_iommu_class; + rte_bus_get_iommu_class; } DPDK_17.05;