Message ID | 20170718055950.10208-7-santosh.shukla@caviumnetworks.com (mailing list archive) |
---|---|
State | Superseded, archived |
Headers |
Return-Path: <dev-bounces@dpdk.org> 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 <dev@dpdk.org>; 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 <santosh.shukla@caviumnetworks.com> 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 <santosh.shukla@caviumnetworks.com> 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 Content-Type: text/plain 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: <CY4PR07MB309680BC874CA7C92EA675BDEAA10@CY4PR07MB3096.namprd07.prod.outlook.com> 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 <dev.dpdk.org> List-Unsubscribe: <http://dpdk.org/ml/options/dev>, <mailto:dev-request@dpdk.org?subject=unsubscribe> List-Archive: <http://dpdk.org/ml/archives/dev/> List-Post: <mailto:dev@dpdk.org> List-Help: <mailto:dev-request@dpdk.org?subject=help> List-Subscribe: <http://dpdk.org/ml/listinfo/dev>, <mailto:dev-request@dpdk.org?subject=subscribe> Errors-To: dev-bounces@dpdk.org Sender: "dev" <dev-bounces@dpdk.org> |
Checks
Context | Check | Description |
---|---|---|
ci/checkpatch | success | coding style OK |
ci/Intel-compilation | success | Compilation OK |
Commit Message
Santosh Shukla
July 18, 2017, 5:59 a.m. UTC
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 <santosh.shukla@caviumnetworks.com> Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com> --- 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(+)
Comments
On 7/18/2017 11:29 AM, Santosh Shukla wrote: > 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 <santosh.shukla@caviumnetworks.com> > Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com> > --- > 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. Can we try to improve this description. " Get common iommu class of the all the devices on the bus. Bus may check that those devices are attached to iommu driver. If not devices are attached to the bus. Bus may return with don't core value." otherwise Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com> > + * > + * @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. Get the common iommu class of devices bound on to buses available in the system. The default mode is PA. > + * > + * @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; > >
Hi Hemant, On Tuesday 18 July 2017 04:35 PM, Hemant Agrawal wrote: > On 7/18/2017 11:29 AM, Santosh Shukla wrote: >> 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 <santosh.shukla@caviumnetworks.com> >> Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com> >> --- >> 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. > > Can we try to improve this description. > " Get common iommu class of the all the devices on the bus. Bus may check that those devices are attached to iommu driver. > If not devices are attached to the bus. Bus may return with don't core value." > > otherwise > Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com> > We'll reword description in v5. Thanks for suggestion. >> + * >> + * @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. > > Get the common iommu class of devices bound on to buses available in the system. The default mode is PA. > ditto... in v5. >> + * >> + * @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; >> >> > >
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;