From patchwork Tue Jul 11 06:16:25 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Santosh Shukla X-Patchwork-Id: 26762 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 A16557CC7; Tue, 11 Jul 2017 08:17:50 +0200 (CEST) Received: from NAM02-CY1-obe.outbound.protection.outlook.com (mail-cys01nam02on0042.outbound.protection.outlook.com [104.47.37.42]) by dpdk.org (Postfix) with ESMTP id C1FFC7CC6 for ; Tue, 11 Jul 2017 08:17:48 +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=K8PrHJ+5zJEBlexrhRONCLAJuA/4wEVh77W1I3oI7Mw=; b=ZaJu3QtvxhGbhzdjkSiMRMo2Tnf/F4kITDTa9y+REBnvkHYPB3N+Wq4pSPnF+QAVI2MEkVV6WLApu6t9cCZntOfPoMZNcPWMYT31zQdJPIaM2CKu4DKsSNQqPbp1Ea7NUgCp+qT+xMbJytrt5Jy9hGC7HycQneJVhGEtla5MBaw= 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 CY4PR07MB3094.namprd07.prod.outlook.com (10.172.115.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1240.13; Tue, 11 Jul 2017 06:17:42 +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: Tue, 11 Jul 2017 06:16:25 +0000 Message-Id: <20170711061631.5018-6-santosh.shukla@caviumnetworks.com> X-Mailer: git-send-email 2.13.0 In-Reply-To: <20170711061631.5018-1-santosh.shukla@caviumnetworks.com> References: <20170710114235.18970-1-santosh.shukla@caviumnetworks.com> <20170711061631.5018-1-santosh.shukla@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [111.93.218.67] X-ClientProxiedBy: SG2PR01CA0103.apcprd01.prod.exchangelabs.com (10.170.138.157) To CY4PR07MB3094.namprd07.prod.outlook.com (10.172.115.8) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e80426bf-fc4d-4d54-76f1-08d4c8248c3c 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:CY4PR07MB3094; X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3094; 3:Tb1hdMheQf8t+zof64YkhDR/sOzY3uwFUxMXUvXVk9m6gHJGA+Y4OqzWG1FuN8FUXzMPtgCHK9r13KquiZFVEANs+VJbUQK/tXOIeL9bYa+fywA39e7fDjTDpkd7hVKBheep4g1ob/hLQNf6rwKgwnM0WtmMf1SVy6pzbLhHJwrRsAb/0zpUSH3QH+JlYQ5Ll3zYjlI2Li+xxsJgK/OqkYbryIGn7B8LXf4Y+cNKpX3dlmqZAaprTFGpaXJL58IOmhbnQc5/Giv/5vPCQLlVZjNQYBk30It+WsC1v62ZjB1dQm7U0t9vavdbnjK4QAlTYr/dZ2KrnpMeqi2sbFB4U1wihCPWvs85C79f09HvzfzHp3DJMU2GmyaB9pjf6pnQKQ+7iBG7CLgzUnRFM/UDBXWVYE3/zaoBSAuO72QYuBrK/pwxGCdWtlEf3udE/DpwQe4L5n93AjEhalpMLT+fVCsCO6ys17I8dEBPgpNcLMXV1+bqxqswHSnD/WOauoUpuora3HWJ2fuXbMe57B/SHdZJmSpw1zdoqPG7uN8nlwkS1Djz4KF9bjGK0uHlUCn3B3iMwssCmVTRb49SYCDFuKuoepkmOofDcLajlw7cmJOvs/xJIDaLv2Kt9B/HI0DT7TXBbxAewI7XXVu1WrlAJ72uf9D/kVme5HuUB58MZ4ZuhKDgAQLbnuhXgRJ6XHlKKfmmjdauSUQbgOSfJrgaB0bta1GE9IcDDpQcX1LXORc= X-MS-TrafficTypeDiagnostic: CY4PR07MB3094: X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3094; 25:Llh9KEpBTH3kANFV6hd58SpnWTav9MKWcI94Tb1+yRLkWTXIKsWNiRJfoxo7VIgXYV02sHrP3OkkX8bQ2ra9cf7ZO3PkIQXMGPgvn3S11gQAn9ki+GfwKr6d/GVil+IXf2X8niVVjYgmW3Et3s8xVkY/zFs3LYGdGeYWHBERCyo06O18tESlw5wC6llLUqk/mKhh+R4/l9Ff+KopkNIxCh+UgF8D9EJsCFyNoVT7q1I/99WO9KFnGJ0lugKudEZ0fNjc9SzhN1xfODRQ0XjkQg/sw6DeUrr4c53sHwajdNALIoNAuMkvELoNB8cn7W23XOgy1lYtRhf675p4WHsZv1SpS74Bk3J0Ugmu0eecUt5xx7ZwZTI1itoulUOnT9cWyu4P9DXn7KQB69a0YRDxhLzWggLKIkNU+brAf2sWi3ApFKuQCJ7eoRfZF2QesOp3GiaNhlN1eKHOus7WGG0BmoqW5ecU9nAr3m/4XUSNoWNdsfGT+iH3SNMYSDRMUDNhPNTYM9caQmBmpIzGp927lnLTERpdY2nkbTiRg4DLWnSGGGJtGaJ3fLLg06MwtFUNHdBrUpee433YIzLmJh8/PbiWtwh86BbvAVQyskcrtXl5Zppe+j0CF+YpISSz4ScaIvjExi6oaNrmKCDQmfRvKbpMdmxBkEFuMq6qRnQWXlU8Ri+Ygi+JMg5R2AYZgp4LOaJmniGcckDyFxdB86h9VXQs5Y4UedoTi6rY3P5me2TEIhiRr93wk/nZJCufnFALKT6D/i3mUkBkES+sCc98o5yGC/s3LIpEK25vw1xhd6TEvwc/O1wmVI7f0JJz86pLTfSHZNPqK0nlsp8UKBE4kewlX1yrmdlPZuaQvnAGNCdnanR6HC2vGvyokbEG9sVj7q52TbCgUtZU8fcGCnpfDqZ/XMY7SIPPF3/w/zNVsSI= X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3094; 31:tlGzbkROz65NN2B5Z7eh4SEv2XpXkSFkZAU+zeud0FZPIQNWDxMhuFDU7FZYYQenu2/WK8MxRP64+eGTDUrhpNLdYpeDbZ/yHw1IiEbj6RWJxPQEDCdENRoAVCFe0NVgwuOTwjaglDeTh9cBexHt+aUqsRWUvlkz71BMDwN32pCJ/VqSRDj1xebvyQbkb0LW1KhBzIlpEEcC2NCZwjP9VP7OBg+ZaAwiNL47kGhqfP7Y43OG7LA9AsMqEbEtGODS3UEr27Iii3wImDHZvK40Wh/b+t9R+2zrs3bPgR/0ypf0XSr9AFls7JIn5t++wfefbkveJmgsxqNYjHIOQ3+rQwylS+fYLLsNNSvMhh8O0cVEN0R/GwQ8BaYRJaNQK9MgKoCLD5tRXtjwYuUeAqYZ5HAmcQc7ngoBepIA2y7eQBAsUT83M0BfxUEP+4PwYS+NheHhIp1kGpkE/wbEF1z5AQG1mkKgk9GU7xsE3W+rO/GQwvF4LDnhUmN7hZOHh2NxUfOY4r4NYJT2EH/2HNX4+M2Rdk0JNZ1AFNe7/6R+j/qf0ytwE2BvrNVy2xRah9nwdGRr1XFKZqqwqBEHJzGIa2U/AB8E3vfUEPA3mxVSoRbJ4EdrBVY3fYmKkHcL5Lu4+7uV+MZkaXoOaSvh1mT6uWpTvC2GaMchg/y2ToEH8u8= X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3094; 20:YttFvZ4eCZrpEaNOIM8+tvVWERVNKcmYINO/ITX3Lf01ydu+zGTKYw5uqZYJQM43iXjphhrIfGKrfwNXTsUalAjLe+uOFae6SwaNg0e+t919JlUz/2B0Wj1QC+z1Kxz5GAG/DWBRz2FtjiZFqjhaENBP7uMA98t7HkK01BiUjWUl8C9aVbQ4Pd2WBcCvSTINrMVsdfMKOYpyz54OQt30tmHPatFjwJu5A5TGoLocwxmz6IehFdUCYzgJAK3Z+aS34oys2UF5QsstiDDF+8a1XbVSIR0G2jvkZAClYZVPtKaBb/F8VY/M/isfY5yt75lGyjGNyQnwCj6A4HzuTUGxxHrz3Sf12w6ze28N1tfDytV8U1lkrEe5p7dVzSdMHlW8ROBmXzgpy/w1lwko1mU9/NEMetFRY/5dz8be4uQtay2fjfPw7pg7dLZjcP5wHjcQidLxn/tR+0s4IbPT69VG1O3XmQRtCGshFz7VX8VbKb2DWtbKCwtspk7ioD8l/fW4MOOK1UNrT8sxE2tcVi+VL/jLWjRl43vAxX1L2DD7aWEMqJB1t54OJKz9b+p2eTFGZtMmQGMIVoUUS42XtomsJIX98qPQXNCOxw41IkxKV/Y= 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)(20161123560025)(20161123558100)(20161123564025)(20161123555025)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:CY4PR07MB3094; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:CY4PR07MB3094; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY4PR07MB3094; 4:0wNOi/RLiLk56BBNOaqQyPUQsrRktZldeoKTDZ+M6y?= aPn58tLYZz/XHdrKaDPc9hlgUq85hXMwHIi8AG4uwUfmOfHSGfUyGhcy9kyhE+TnS32bfEjl9p+H13a0BWK2f34s1vlNuLahtSnS4/OSZNFPvEa9Sm8ZDqOz2d+L5TuU7IRNnra3o5haUzhJDJ7GlXARwybxcwz7HbcFmv+25TCpOQT6X5WLPyut0Odo44aRc8XFTRvTmOp1LOc2R9dQP9DMO2+4TpRku7CwL9nk+qp/cbddfUQfYiTPBbnGExtFLXYQDw5kMdBRm4WfqFt/sVT8KBffWcQQEs2jYqTlAXz8k18YuMgNzrSCP0CP6VosdWhw1wehokQSP3caSqNpqzXGDgqQP/2ia0efgsx34oTVffxWKc7ZmtYsLFy4XFs/OGXc3ZQ0E/nGhwunBR/eOIu6B+veY/NSlQgat8nnOaPhY52UcQOAVl3QwQgsmLl8WjdkEue8aIOohrK01+tZNWTwzUh9xY6l9uTaiCBbqfdqMKEjBLQEq67DYQ+m6L9vqqJRWmyvXf+sdZvb+PM9/LpLj0JEOIiOS+c8A2r04vr4Cl3CWo7BhLt8DCq9RTzsN0Ouqz9mpgy3FTN+cfurJSF3p7K7Aw8WSa0SiRGv660fOet5lSjVc6ttRFKsAfncyML/Ug9ZizYRPn2lgqXbUni9yA9hYXZFcwfwSdbIYAfmwx6pAiXgP46D7BZ7hg6qy+UD+xX/SeHIObjRxX/N8BUijB04Z/BabQbx11NIJYUeiC/etkEAkMqtwgnovQs2BxTRkertsKOlnqlvxxGrMXkOHqaQNb2GBmTOw9F7ohXgEx1+/LoNIeRHR1Rp6y5YQlIzoU6iWzYSKvcsa/ckPLjXWqg6DNmi1W/ebHiwJS4Y42qHQ7b6g0qUVcWK/aa8yhhbIRCeibxR/X7CuAAA6LhgCzhqM8cgNCpN+QTUyrYbT2D0A57QAVCnr2/5CkwmlDHf15kGELVO1j9AmxZyM4KPHFPTyezv1WkNfCJvswjj78LBBbwV9jJeb5f4IEVZwNEIAIPnEej4GHuhF5eIKmjRxm/zeInxuF8F9NDLEOkUI0zS2Op4A6pFJSx+xziv2VEFu6cIl6webYaPhfZB2zS+Tn40b9AUfIcqjbBbGKtGLsutEVzXENathP9I2xlzl8I9LxBzc3L8jQEj2229nhHYPAa3lJ7Ub7X757TxJ2jQ== X-Forefront-PRVS: 0365C0E14B X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(7370300001)(6069001)(6009001)(39850400002)(39450400003)(39400400002)(39410400002)(42882006)(2950100002)(6666003)(5003940100001)(575784001)(36756003)(50466002)(50226002)(2906002)(5660300001)(8656002)(6512007)(7416002)(7350300001)(189998001)(6486002)(6116002)(3846002)(305945005)(7736002)(1076002)(4326008)(5890100001)(33646002)(53936002)(42186005)(107886003)(110136004)(38730400002)(478600001)(5009440100003)(81166006)(72206003)(66066001)(76176999)(8676002)(25786009)(47776003)(50986999); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR07MB3094; H:localhost.localdomain; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY4PR07MB3094; 23:bV7EWukrkS4w6G2peNLl/HCcTXPoszx/TkLNtjsvq?= QyUdISSg4xCnwdmAWA/4W4jdQwr86vvjdp886Hryf8juCR1ahFnMhxiKOL+VXpObe99PUkLqFIXSMrb+r3UwZDKdhTCC0JIV1ww3qhHtsCfusrTGRjs71as3rW1OyxOyb8pA6cgJZQENXgcPDlGKl07fps2Gp90UCdjF7xo5SZjo1N+Cam0xNrMMlmQBOlJUuVfZMnvemNvihT94YxPbyOs+IE+SRoCRTJMCnHV9wsRxMDT3e48eeNn2cu09EBq69wXqZ2TVdx+1DbNo0r3fb7ON8dewE4AaihlcklApPT9+UkYRa9WCNUCnYOV3SR+Xs01iMvEcksMaxvUFIY7HLlpybpGjDaglRAeG18OW7fEHWBtgPxNdRVlV7nPLzRNNEtlMbQTsNuPF06gD/vA+ReVigN9pDXs6TsVmpHzywPn+l7NKOMIw8gPbyomIFb3BNohFu3Pdoj7+t9kP+RG0VydXIhit1XbsJSQNv5anpUIdRvxM4rqufs/IJqVcRgDz//kRG+jEbbgiVj+JyfDjqYBO2Lo4aY//EWLP3PByP3yFrKUpWBu3gIsZgZeqFhusWGVK7p9TpvTOSJraYXuSlF9CPOe95/nPxA1Tslr2TFfE4sF/pt4sjEN7CT6rB3ZRsLVfvX9JvviQqUUc19Ezy22J66c+F+tU7eVB+BEu6Yw4A+ecImfF9I09rzCd2t493yn8erYD+Hj1zCn+Rl1HXVwcKMNyJReDBxDTnqF3pRrkT5rAGVcDueMKwMTGqNtTaYg41eoqAC0FOZVmbjCiHZi4/yNrz2VBkkqRjS/EjKBeNhmwKFyOllXe9FDhbHsHkiUN1eglmGuNLvMZBsmY1DvPgYu47YdbMbjEVaMD6LW5IqRLIIFeJKE10BLFGlhnZn6poPo/zG/oyrnQedx1U5uBu/v3uTDx6tk8V4k6GmKK9XYJGWSVs/+hsDUG8bT5D8BieBh0FLLBJ4Uk3V4tBv/nBHyfXJooB5UmJtZWaYC7ikF8I5RRB8l5PiRthxgZCkV8YjxYiFmmfNhXgd+d1r3xroD5Bo3QRBEqvFOHKGLUH1ZSnrtJThrmytdMyJonc8YM/vw94tEz3p+d0i/X9gs/iIkSTO4oKQqPhEdGdCEDTVEEBWDf5UChVA3xFyujD714F26X112E3fctnRycjo/ X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY4PR07MB3094; 6:BR1QAvqpaW8iq1CzxbFHwk/adO4/GztkkCgidppGeb?= ZtkizXp8vaHHNFsVkSrwsDZnDq3GjubtpTA3CA+u/6nAxvQCqrRJpl1RfQIZg5s7HpU77cC39oxSemUOS5jf/r4ycBZxlsijCikS7JtAIkpwGbuJGokmICjm41bGibDI/ar8QAjz+kpGPJmK6j8CSNDV67JgQv6Yv2ZxkIessPFItMwlpJnU8Qp5UTql8h1AQwcq2fKSrJOOCUSJqYWMXyZgT7TQy9SfRe5JOfHKUA0ovhelsgCQjbd1VAt+aDNFpeIx3mKFeB7d3CkcMO5H9PONJO0XtxsLUFrP65xnr7pTWnEObGwDpXxEhy/2potVdHVDyPsAxSRpEQmQob/3NRAmMdU9FtYkoaQcNx9J+uHucHlhZWPyJNWmdLYh8d6tjSewdOWoWEcI7dkGEHlBRqqvHOJb1v0aJigLqhRZOiFxgWY525F8wmIbHICD6SVV+lx48KiF3unGhtFDBBRXYSyIKjVEjBgwRrUSCCZtQHDXGkvZHqJUQ7IRKZRItJZzZkkGL48Aio84JUAhfQi7SAPMIszPjAXgnMXzRXuqndvH2W6VyzckHGCTp1WbnSdk73xPuoLKp1clWyLAQfAl4VmcbTKPRAP/vlI4LYNVuYf7eUTLlFRkQ4wAvLlSHmE1H7Dk8E4nAHp6YjLQQB1fpe8juHLijrfgD2JZcKtI6bkfw3RUGX314MAzWTZ+6ibFHEa8pg7nSk60gAbGjejuQKmR8CZoMMePMazfJPSRAwv3uL6btbE1h2AA4uHXPLyf88CbRnd2+0+zKhxME7P2RlJ+PtHNqLdchcI5TZjb0dW9Lp2uUW6GUFmjZLibUMM1n1rsYz4Y0fi/7+pnKqWR+qcq9J0IC6THObeKNY8FA/mQ6ZwIUVbchmAREaf6PuQAE/kn0y/ZaEQcs1Q75RTejLdopMaaxHHhfgFjzxdmfQe7v/gEoz3CveonjhIgGVH8E= X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3094; 5:IBO3m+GldSi+ZNl2AJwO4mmJQIHpOoOiPnuYv3U0shNYaJRHI9vUXj2U5ie0NndufTzAPvr4fBulHkUnK+mkzwacBOsin+Q3xydiOWTU/+66kgzCLhrWFGYn1H/uiUOIH3APczghKwItkjCYDFYr/4ymV2inFSn2aaHZQvev2u3OUWojOKxwFTfk0uKTOxj3x8i5QXjA7aT7d0B5foFX8tcVq5+We4hq68IY7uSXnhD+7mkj4iYBmK62ftBO5vbi5u9KCruY0vK4qIw2Cy814fmbmPvbFUgiySjUJPJZ2/M6A/i9muX8/juUXq//oG9em/c7ppeAtp0QOrh4QrFBkN9tFucY043MKTAWAa9wFkjYUyCQGC9nUFNk+w5OLO3mZK3ifGLqX9755hWRcJ9GzYXhKM4C1/GpGN+BmX7CkLwmlE1WjZja1I3yuSx1wmoqUX8QHTdbRGaW7/x8gGArs9/y8paRLlS/vQrSNpAC9mJJNUdw/I4LLjcQYXqR1mei; 24:gwY1kPKbp0/w8tNB6MN8Y2s/kZ69EmglcTvY4ljnxMauvn8J4566WadVvpr0fXrSjmn3JQ9XJ62a4VPdUg2EMryLAGUUGaOiaO8Z/JI2DYk= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3094; 7:YP6Tt0mD3JjeVNpEU4Yk9EL0fTJw0fYvcgqYFgr7leJP26zhCq6iMv1Z2sEajNR16SnmYUndBZR1/tAArwj1Pt13CUMV1euLXz36PvNKmsLVY8c9GOQCzVA5E7PHhjAX5Y+ZIuUkNTltT+vi2JpTkbz0TpH9NP+LkPqY8Dmqf9vtgNN72MER8yA3qbHJem/Cx8dpnk3z/Si+QsQs6gllJSW1ChoMRRHAgQYt9bcyEejS8AaM6O9QF3UnUWZK7O5AlS+xO7b8MzisMqtiijaceJnKoBmKMUUkD313z5rKWjk5hAPvLYOYxCeaM5jT24EbvnRjvK8AcdSHA7FlrzVhndaVS9ZsC1f8sq38Q2QAOTzqMcVtYF7eYi2hy0UAQq89Y8wNCNwVxPERXuhdSXwqIo+z+brnP2E/y/An0cOY9lOaF4Hi99+Cc+URgL6prC7MPeQ+M2dUzwf/v0JSkCYiBmQI4af28qZEVMh5JwWuGDUe+RA2PeSQTw5DRuSmb35EQDCEw/nvDzaa+/vf642SjDL6+0MyJrgdE/ntdfxsPAh2Nu76tMQSHK+7iNRyCdaj95tT84bwv7OzsD7qdf+muaPdWg8+/GacWkdNuLQw7mXO6uchOMxcJ3ayQOphVx4urddmyVnGZIs9fthTP2EzOejXsf9CFkaMgUgb4UrHZOiWjv52/3h3r2IUfZ5mW5i5g/wXa4L7gHx/3Vx+NS7L9H8a2eSltlkRwwf/vg/5r+mt6zMX7S4VWjC+owBh2GKJAhWsFfSpS3Sjn9iqwjoIfE7kk01bIyoYgq6T03UwhGc= X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Jul 2017 06:17:42.6812 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR07MB3094 Subject: [dpdk-dev] [PATCH v3 05/11] 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 through 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 08bec2d93..5d5753ac9 100644 --- a/lib/librte_eal/common/eal_common_bus.c +++ b/lib/librte_eal/common/eal_common_bus.c @@ -222,3 +222,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 7a0cfb165..8b2805b7f 100644 --- a/lib/librte_eal/common/include/rte_bus.h +++ b/lib/librte_eal/common/include/rte_bus.h @@ -181,6 +181,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. */ @@ -194,6 +205,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 */ }; /** @@ -293,6 +305,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;