From patchwork Tue Jul 18 05:59:44 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Santosh Shukla X-Patchwork-Id: 27005 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 354CB7CBF; Tue, 18 Jul 2017 08:01:06 +0200 (CEST) Received: from NAM01-BN3-obe.outbound.protection.outlook.com (mail-bn3nam01on0069.outbound.protection.outlook.com [104.47.33.69]) by dpdk.org (Postfix) with ESMTP id 613957CB9 for ; Tue, 18 Jul 2017 08:01: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=pdOxL7Rds1VJGfe8xYo+Hr3thRRUTb6q2hTyt7Qd89w=; b=owY4TBLuYUcxTqISSmrfAysItBttpr6S9f4pGuSKI37frMSrh3ON/te01i9x2Gvzz8YOTGQtj9/x0+DBaxYeEZDy9Vdj4sNPx9lqa5RqVFzm5H3nN9eSg7hpapbAobQ5FU4gcTUjElkM9duiy5zeSPwpkJ0dkbTVmTtD9ENKkk8= 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 (14.140.2.178) by CY4PR07MB3096.namprd07.prod.outlook.com (10.172.115.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1261.13; Tue, 18 Jul 2017 06:00: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: Tue, 18 Jul 2017 11:29:44 +0530 Message-Id: <20170718055950.10208-7-santosh.shukla@caviumnetworks.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170718055950.10208-1-santosh.shukla@caviumnetworks.com> References: <20170711061631.5018-1-santosh.shukla@caviumnetworks.com> <20170718055950.10208-1-santosh.shukla@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [14.140.2.178] X-ClientProxiedBy: SG2PR01CA0029.apcprd01.prod.exchangelabs.com (10.165.9.167) To CY4PR07MB3096.namprd07.prod.outlook.com (10.172.115.10) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 11d1f33c-8751-4053-a1cc-08d4cda25eae 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:CY4PR07MB3096; X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3096; 3:3KPSH0S9Zvxa/vdkwYPO0knye2n8lVUvYrRfbc4UgMhq8Bpgc0whKKJZt6vGHZ6vtVNB3X68A63lpWIT3XmvUjFByipwj8rlovTs/YxaV/9a9S5SXCtNHSDUuzArMhQbVSJos1tzsD7pXRtIA18K9gz05Q5orcgm3TwYLTCWdG7XIJp193kzm6RjQlg/AyjBBT3We1fASF7ahQgb558ewey85QbuIpjpoNZ1I0YkDfVLKD0E+E7juigY4TFLHQAJ9n50+fj2qXaYfALXCSP8ScwJHJODUgCvjgMfMkVBD38c/oxhostDTH6+Y/uxozOEXP9OFHiL8D4m5IQ2s9E8S2qLkZiDQudSB7ehjg9DngjeWalMYdHVIK1/MkB/RUHYiQJbt/AZKMRaCxxDn8P52h7vzNbuyzs9Wdjsyv7No8yFvBlDIz8kNq+kOKL7vkVinrdshebwX7mbdqduuutsjRzi2rRfEglLgBqH3RWhEs0jFiEGB7nliLerL3Q3A8yNEwvcmp9cptwrmYkSfk2L/QuvkKA4K5xfxZaDcy2MHcnlfzcVPV1OBrOAonzlxqRvO7HUt0rhhRGA3/oH50G3oQmGyhT8BPkYG2XOX2vQkSGdYouh8MkWywKVwldHIir/oN3egaxU2X+PDU38c/2qOwOJjGHmJRZ3tVN/C/mxPFPPHpr7C3lSUbXzvmipn20tzu8gxtBWRq5Owly/yZ6NcXOLy76S6gTVTHkjJeRNHME= X-MS-TrafficTypeDiagnostic: CY4PR07MB3096: X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3096; 25:apRiokuiaeGYgnnT7v8GcEcW54t1oEFCr0OjRPzVgCg+M6PWZYRAxpETG7soXUB2/Zg+MRjOqOrn0KfYjMzoWVB6QzHcm36biC9HTr4jGd6h453+5FhJPPnInCNPljVILR5UQbjq+Ax90iypgJU8gczwBE0u5+4fPhx9BDhE/TPCL4wXqAkQ5nMaDAqlX1Rzm7BIHqBrtfpFHDmQJeWLzqwWMs4+/fh2nmZKIP7VAPOTqNeS1foPLVC83M5ZYFM0VZzy8Ipq0idIZ2TOlKi8/BGy+4HdjYZFwK0uOZ/cF+wUe+3K5YjBtHJbm0hM3U7DEfU0y5oB+XnXU44LfvNeSeSRrZ9gvgJGmPIZGe/MnOevBPPjZ7oF2kKAENsqlxwIWNEf2UAHw0BZ+Yp0/4o4x5zbaH9++10evxW0uyFjKc1V/yqFDLx0hDve0i3i00XHAYaRCmPx/c+wnb2TtZglUNRSMftXVJz0voIHGhe7Fu16mxL7b4PgbWGAqLMZEwo5U5UEEl6zQ1SkUlYtcSec0B+kgtGnVuYCSmtsoQiMBTXixT6L0MjtHKo8HZa3KRRUeyXfbE69VE3uG5xK0lt239IJsGk5c01nk0yjVHNv5D4LFxRtSZJ6tMDlp3n6gV6ALK7paG6isbUqy6vEZ1Pp9iIdOcRsXdegWV4Q6lcXaHM6lBKwoEYj6hOAe3tVnzcLAMSPyd7Sd67wQmmQTYEEgGd9amL+doDOtoS7bUJYQSUHMWeVk0tV0jbOFiILcSQP7pWeTMZrjMcaslBsNij+mOzy+ZVC8P6j2qUEv5gYt9B0JC70gSLUpFKmSW4oriEGnRDhAlyGlGrBDAixTS0bPCrovao6mOWnzz1pnfgEtX4vtSxZ5fE3cdGAP9ewda0D+mwrLLVpcK/N3J8CVfqYC/xLNxm4cTM/InR/tCLeXtA= X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3096; 31:sTI0tOWsE2S1yQXGPz5LLpihaV4rnA/C3E5MTzQsctbFFX+s5BZ6jRcn792RBRB5Gd2r7C9nMZ4HF4087eqkodkwtVmBu2aspzq7Hue6ScMrr1Os8TNdq1Bv/g50Zi7scFBkPO8alG1DaZuytnDa1vE4Vge2ShnJ0JL2ICt4s7UrmAkTSi9sOoCZ5hOm+4S0oDEDC6Wp4f3AjmKJSjh3tMVjFvmFEsuwXHUsnUVr5GnF0qau3vQFr4fPZRCNDzS5Si8c0biW/R/O5g7ekz8v48LkSHA49L1I4yacnenIBVkQid41z/RhMkCIvoOT8c3JhkTClq5UqChTjecnZoq3xYY1BEQ8KRB6i/+Oqd+gG4SOHD4aNIHIw1j39KfZiIV7TRyAU7qXmQCSYJ7GEe73WiAxugld2PzQdZMG7pdGGNOATGUW8EYVIgOnfZ8VxZy5y2K1v11Bl1VEjIjjBScDd08v1JJpIAzsU5y5mr9TkBLpUDLt7MoSp2gce2EAuUQOwa1J44aZak/NBohCjGKx1GGS3oNWM3qFl7rCFno4u1kqthadSiXLifxHPiAWCXnaluId+gF1vNlVS0VYskADSFsQBXqKHW65qcFUyG2e/fRb7l74a9e4l6ZCT+vEq+SXeSYVU9pEKw8HVGJAoRw7eJZApUD/WMvdMOhu7aMSExI= X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3096; 20:WBkEc9tgPaef8P3vZ5RWDKIjN/HBqdZdfO66FmgM/+J2rJqmOBzxqi4LoEEpfwWmIETVosKZNwXuXvo/wTJ8PrxjSmXZHy79+Ej90r8W7Nu69PPWy4I0L4lianb2An4LOpwn08IM5Zz1ikYYvQae7hnjzNYKoYzTUllKOwPjRTbvoOhDRBmE8b3pFJt0rCXZq9s6STfLD211YQ0nDdEqEKIIA+3ZDPh2q699GZrWutv1WJqX/bfbTZnQ7eK7OpC0w6GirTL4iuTrDsPf2pGO0Cwn13TOjHDuo86Our5EzOlxTFQPG36AVY8Bm6EbrLFBi5OxlPLPn430AbFGUNjD8SBoFWT0JPmhixhmlTYe+shA5QqRfywiAhDRaVLMqRISPRQvEYvssHxp+/gD2ZYwBEO5/QkGethLXpBSQEDBJMK3swn6O0iL6sZVggWTmTD6jWJNgiIn6G5SaWUOeYuhMo0Fqp4CJpltky13ZpnKzoaG+CfXsVlErYByeT8dWBPm6jYUG9elmyYVKHyVIyYgDLCMzgykPgx2dzEnmDq4zSba2zCphc9F+qcQRllMHsOaXzZCVHhcT5VuRzZcbkYJXfOQ1hBqvFpqZ9sQTljsPeQ= X-Exchange-Antispam-Report-Test: UriScan:(236129657087228)(167848164394848); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(5005006)(8121501046)(2017060910075)(93006095)(100000703101)(100105400095)(10201501046)(3002001)(6041248)(20161123558100)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123555025)(20161123560025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:CY4PR07MB3096; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:CY4PR07MB3096; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY4PR07MB3096; 4:W3jOve54aAAIdTb7xLRoK1L9k+CfmHenM7GIoB+puR?= Zl610g0cHdoZpTJgUvwldQ50+HQ8TAoJE4Oskot4sJixxLoPOqAShElaYCBhDceQi+NI/nPHXoeQ0cEUFjppqaXAL9pf/NAIHgqtUapEIYxPtRFJnJBF+m0ioYss4qmh8O48aO8qyLfIbaoKdM9MsOI9xME9R74VrbWXrIVPI/fQ2ccs+GVQTNdTjUaM8giWx9c6cnaDhCt9iQ6Hu1fcRsTfvyolS3s59CMNH+q5xlnEiJPCqnHK/sgp8FIV3wGzOO1bVOofw75E8SsbrmxhGcPhgCC+7awAx/X5LHiMJveQMMUTwM0hAFLLAA6CL0J6wGPA6BALSqbNDbrZlD3nmSQu9T/yEQj1xSFWOssryj4fT73CRUscWo4HgUx+DzhkXtPxG20kKfUNIVjDoypCOK6Hu9yDh633Elz1z79b4S3jAoD920mcu0G+ebpNK9FwfiHhuHFFn4LreoY41yae17lFhzgmW8/jyUS9AkOTpjPfS7Oeg7kK/p3yLzE9M4MHGatgcLOiz8WT1A5GJjxNOdDljMxq6cUviN+F0K7z8p3haNeD2AWZGopL9D1Io6riVcnVfCWtazsbM5zcQW+xAjsOyjbWwqchexXp/4ztcIu32oIJo3RvtYQszjScvqSApjjN3bO32cd8IUxFy0g5D1Rc7lRsJWe560f1nXIOpkIdABkpQqdcNZxDya1G9/+SaO0OYxH+3QRiIak3sDCSF2+voPv4W5egMky1gpolz0tJE7Qc1g33w7Cv9ENYoggH9i8RV4cE7jV97uQLbMypW1cs1KYqf5HkG4iHaiDhZJdADpmAzcOWxfzMd3btS2FlshRGzVbWC/88YTJA9/k7kj3ogvhV57JaT+/WcWaP1GryMXGoXRnjGI22F0UelaeAqvGoof7wvuTLOvrW91khYqkadfyUFDAqTwC+CqCDyTmy9AnxmMv1QCAtBreRj86/h8e+xfuX2bWOruNj7dCLEFFjfXr14YFrODC/SV2+NrWW+FSIxuGOq6WDrWsAvmomOLZKU1y5GSVqxeb0as0xo19eqgjqy5At3KDbQo2I5FEmWgCcwe0KsVrVi7SAPyxI1bGomsMeT4V0ZrWsq6dAw3sGJLRWwwoXzGK4SBOiVhFiHdHdUdp0C40HK+9BuVHvyBw88ub86fOar6rWkjcvHwlh8YDLjYYm242KtoFIu6BA== X-Forefront-PRVS: 037291602B X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(7370300001)(6069001)(6009001)(39410400002)(39850400002)(39400400002)(39450400003)(39840400002)(39860400002)(48376002)(25786009)(66066001)(42186005)(50226002)(81166006)(6666003)(189998001)(8676002)(6486002)(110136004)(2906002)(107886003)(38730400002)(7416002)(36756003)(5660300001)(7736002)(47776003)(1076002)(76176999)(50986999)(5003940100001)(305945005)(6512007)(478600001)(4326008)(72206003)(53936002)(5890100001)(7350300001)(3846002)(6506006)(33646002)(2950100002)(5009440100003)(50466002)(6116002)(8656003)(42882006)(110426004); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR07MB3096; H:localhost.localdomain; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY4PR07MB3096; 23:pt8R9Jxsfoxz4F5/0jblf1Wky4QUrfhEW1cHvmYSq?= Oo8Ze124kl99EnyfYaWJ+ktELkQcEjWwZf62Ct54oGIrKtT7mgNQee9FAvZb/Yt2XUFIq97KJzndgJWih9P5D89Klqz9H9u3lW32DumlqylGgoz/dyzOcDpCPPKJGFGfL3l+2iJojNEqSoMj/wmDzicL3jSiaWAzMKKAcFUD3ggzJeqKzxcqJZw7FOWCGm/9r4noDfYJl0pLirgpEzP1HCYQ8WakxTty29c1By3+POIZ579xPRGmbGy3BOrPhaACBiFx5GYZ8DuZBCcaMtmvgNNdbPcSpAJydGEnUxiedUGp5BtExzGWudugON0gJygGKJA8TYIPkOdA+kxuAQ3S/z9T3Pgiw1jjiHZtv4UK4rZhqU44++Na9b6Q4S4NpiVNoSKRJDQwq7dg7xnIV0q5n4I3JJ0ekCgNqAZmKcMNpKJkaO1SvhGEtnVouu8HudJlJiFm73C3uYK/MvtjM3GNieQ+QG2KlrUZob95KqIFTs9yyy8yE3c867SpKBdnvq21tGMLWa4mZZ6efJVYGpVft3vxNEGNQdyqfiI+4rmd0LiF8/w8ZYp0dmblFIBrt1vw5D+6jdgGAGNl+xRgWjt+37RrWXDnPRFbWFjxM+9/C+E5VdFuh8Azx2c95oFBDAEka8ARdzcqqxSW8gjZihFwj2Iyp96kqUEA6KV+/rUJKqK9hqGHseApkY/3imzHsNrQST31JRZ8cOVlK3k6fGhju20Nt/E6jyvPIjGLjm3VmR1foOYo0rVDTz2afQTslje8n9rXR5w0SWB0Zs4YAZ/xmlllh0lG+RL7ODAF26IFKiq3l+FYUJ2SmyCZQ0bic6h0aY2Yv3/8kW1un1W2pxvYb7kgmggfjUQ8zPHFAzPXjwpVJYqPbOzoAMVNmA8gvTFB3SHj/U3pUCzchAWq1eGxlo/VUf27uQn8BvO3eti96X+2LxGp5OHRD32uBtax4KsYnh1SUAGTSVHkBnc1aSeUhd/17u109Z583oqz//wbRip1K4qB1a/FqXrK8Kpm24zUGsZzA5qu5bMQNQwbwc1mprtbS4/p4Kj2uiq8D5+dQ//adX8tHu9f5yI2WJBkuXvpKDvePHk0t/hoEm87q/kpcDorCPu4C/azK5qU0DSkftoNzXCoMk6yxRXWFnATENwVeDzHKBcz21Fwds//Xec4x5TZkQ2G8XRU734f06XnPSnn4geNdm5Mjl6mzs9Cu1sz5xjci04AYCcZT04P+vIXGowTzcFcKUWwfyvGaiOkGV7dw== X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY4PR07MB3096; 6:pBRm4KE5J1JvPEpiwAuaV33ke4/0tpsEV+zS5ts3cZ?= Fwvudd/qW2G0MnELiD9OdX6alaUQeE8OZ0KMA4EJ5prGkgWT/9fV6ig1VkQwx0huheKBUNI9x8paR1cDyT/CQ9QI/BDTPSVXDCka4S6hK2d3bCY58t5LMRStv5ovbnYcQluQkZbbI9+wMaWgYoZbzOYdLkCxq6ElrgOoZ5DHCpaPoNyXmSS2YsY7YuK3pKxRtTux7mmNEnqMJlv30Rar8um2aAI4VTSSYx5JZSOX+FYHDvR8iRnUyfr9oZPylt6kiG0yJNON79qc1u9wc3urUmTtDExDhVFiXCTxjCH3xkWX1AXnlZODwfy5vnNK031IkRl5wq6mpYapF8QAmzv2sN8RtbC6vbl++3/t8e9Zcxk2dhAbY3VOqzbF3bkVJcH1y0YvjGjx0Da87PfvPuP9hIcWkOr9yCkJ++TudZGlwyQsGrygpX9waV4NCh/Ui3TBCzvKFtMpm7WqMx6kVn2Il7eK8GVnrB/guv8RKo9qy3/5T8VKRwm+awsbwCrNWphiVT3KvJSS+yGlukOkjsKZD511XFg2Lzn6atp4rYOWluWF+tTXGMoBh83Gbc2pICAgsph6pVtEK25r/jKuAmzYr9354oO5bK8yFXcfBFg4Moq0RNcjlA09bCyOaI63154frxbeNHWfYwJYvaoutrIsYliL1xvuPKLk9mfrqQb2gZ37utDaKP8g0ovbn3jizncBIpry6t+Vp1iww65YPZ4hkZj3iyi55myqFgsy4I81HQVEuWfrxExzCHzYzPH4DRbCI4N/EKN8zRiO9d+g8Y8cv0ICXtVtu4h96iwp6yV8/QaiVVhTwzp8loEUkHZvbEKLgqij7O+CsiejPfHIh1VLZfbqesSKarQ3HtznmXmBjABFZ1Biio4gmk5bwqV5WceVA0n0d5+Bb2acQRYQEqlvA5oWXuOaMgFcROsn38dj1R4EfIyGtHr2W6o9j+lp4dBpc= X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3096; 5:DHkPbGZyN3WLgySuaYxP2j1P5D40+07owPN2vtg2JLCyNnJJAAiX3cRc8H5GTAbZWAkfgQZDIuq6rn06UT87rX8hTiSmyAUFfgjLF7braRHLgV+UR+0B2xIfitz4SBM6PVO2337PPm7b+FlpKC+Xq5EIirxwRAprJ71U3XcawSB+q3j5YVe5aDs+j4xXxwYTuAUBzPJLREX0r8ekDx599z4mnNP37YFw8pcGnGu1gn+zNziOPmu8SNlMXp4pd7WKAal5p5VkVX4NjrBkZvkqDzJVdu9Wa09qn46ggKmjYY95rJwDYzaDmwhMxETHwVdjBJ3EDc6Er7X8fkTaZqXH1SAKEg1l4b8mb79MIh03YwIZwUlJvXV8ia9ne9ijdQOuwN3R5bu0EsW6L0S7antTJUSIfsNYw2nSbMr2dvlkMQqcSyggRgambm8+ys0m1yqjLjfRvtv+P22B3BXYxGBJf2e9IQNPqklKE5wCtxZqveCF0UYqcOz0Z/AsELOf69zf; 24:v1hJWy2qVHtRCyF9sQKM6GXLhaWgcQnlXWfgD1jWkWwuMXWf52uYF+OHUCqHeiQ8hWEn9vwXv/AUlwDErWeGT9eCGZ6NaQZ2U51bhoFtT4Y= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3096; 7:sS96Vw5+CCdD2B37ZgENx2GeQcIG4D8lqyss/W2/M9GaE0iOvrzuORr0x2PybR5jVJYBTr0KpMUReT1jlv/+L9V3bf46dPZifh/UTUUg3paFDLMzgeEbIYD4Y0/vw4SmJHIK16VAzWdiVZphGVusaNW7GuUbh5JXpyrklLbw2Q9IFhaxNznMDHuWrZG8FbBZiBwjVCTlvaMfTMd2wMM18VnhiIDx9TQIG8xLhH4N2uglFg8g+lIvzwPCIeeelxoAAxt5NGwS7FSYJt49wf8wYAgxtLrSL99dUlEA8kwGtVcyMx2O9tKblSSlDsP204xWgTVhySAhkixXtmkU551Pd23PD8e/KqYgGi9bMc6yg6e4n4QOIo9Tdq4P7ha++337eiGp+z85rzTL1HVKY1T9pldmvDZkQtFa3AskBVzdxhNm34+Hti0N/SqXUBn0wYXP6oXHa8dNbxEcN5NjnUrkmir1guZ319mCL8ZW3lvP6sbpRFxD3CqxI+ysxiBNnbvBcWKTpZSqkhyrqh3AsUtF+yDm4NX6zGhLqjlEJSN4KE2xSCaX3Hc0DWGvywFeJ3ao+o5zuAkMfkSqLgbZMXXNRz8NgAJVdcPHYSzEYlULIp+zHv9o/UYuLTQOESzRVNKK8Bs5bmEkEavkuuclSuD19x3Laws30ggPuvX0auxr9oiXkmHXSaDtM8JmHFoPXOoIR4/Tk55JGDzhpUYaatX0qOxAgXnXuXnW+0v9QGZGpLDzFCpSKn6AMVtYGcT3JKm0i5h7GwoNV+7rQrwc495UtGYyS13wx1Pf81/cI50+Vok= X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jul 2017 06:00:57.8137 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR07MB3096 Subject: [dpdk-dev] [PATCH v4 06/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 through bus_list. 1. Collect each bus iova mode value and update into 'mode' var. 2. Mode selection scheme is: if mode == 0 then iova mode is _pa, if mode == 1 then iova mode is _pa, if mode == 2 then iova mode is _va, if mode == 3 then iova mode ia _pa. So mode !=2 will be default iova mode (_pa). Signed-off-by: Santosh Shukla Signed-off-by: Jerin Jacob Acked-by: Hemant Agrawal --- v3 --> v4: - Initialized mode to RTE_IOVA_DC in rte_bus_get_iommu_class. 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 4b25318be..b9ee82b6b 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..a30a8982e 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 = RTE_IOVA_DC; + 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 e06084253..94f1fdfca 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 */ }; /** @@ -294,6 +306,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 5dd40f948..705af3adc 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;