From patchwork Thu Jun 29 12:42:46 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Amrani, Ram" X-Patchwork-Id: 9816685 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id E1EC36020A for ; Thu, 29 Jun 2017 12:44:24 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D504F2870D for ; Thu, 29 Jun 2017 12:44:24 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id C96D72871D; Thu, 29 Jun 2017 12:44:24 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E125C2870D for ; Thu, 29 Jun 2017 12:44:23 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753085AbdF2MoR (ORCPT ); Thu, 29 Jun 2017 08:44:17 -0400 Received: from mail-sn1nam02on0085.outbound.protection.outlook.com ([104.47.36.85]:52864 "EHLO NAM02-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753074AbdF2MoO (ORCPT ); Thu, 29 Jun 2017 08:44:14 -0400 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=MzK7zEO5utUby4g6j1e79cz2qGOHDIjkqU+v6dat5so=; b=E1m25hYHfVLBs7MA0wToKF1QAXSncPtjm45evQoMeLzBgMtkTm0f2FRA6Mu0qsMve6nYC43PR+3tiBh+8QD/+uL0U4DBNZiyqkp5QY0sGdGYOjQaknmoZ9jaQimlkOVBZ6UDOB+49duVXsdYbZDdwx6MDEhU75UOT9sR1fxZ6z0= Received: from SN1PR0701CA0056.namprd07.prod.outlook.com (10.163.126.24) by BN6PR07MB2852.namprd07.prod.outlook.com (10.173.28.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1199.15; Thu, 29 Jun 2017 12:44:07 +0000 Received: from BY2FFO11FD042.protection.gbl (2a01:111:f400:7c0c::189) by SN1PR0701CA0056.outlook.office365.com (2a01:111:e400:52fd::24) 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; Thu, 29 Jun 2017 12:44:07 +0000 Authentication-Results: spf=none (sender IP is 50.232.66.26) smtp.mailfrom=cavium.com; obsidianresearch.com; dkim=none (message not signed) header.d=none;obsidianresearch.com; dmarc=none action=none header.from=cavium.com; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) Received: from CAEXCH02.caveonetworks.com (50.232.66.26) by BY2FFO11FD042.mail.protection.outlook.com (10.1.14.227) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.1199.9 via Frontend Transport; Thu, 29 Jun 2017 12:44:06 +0000 Received: from lb-tlvb-ramrani.il.qlogic.org (10.185.6.119) by CAEXCH02.caveonetworks.com (10.17.4.29) with Microsoft SMTP Server id 14.2.347.0; Thu, 29 Jun 2017 05:44:04 -0700 From: Ram Amrani To: , , CC: , , Michal Kalderon , Ram Amrani Subject: [PATCH rdma-core] libqedr: Add iWARP support for user-space lib Date: Thu, 29 Jun 2017 15:42:46 +0300 Message-ID: <1498740166-16762-1-git-send-email-Ram.Amrani@cavium.com> X-Mailer: git-send-email 2.1.0 MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-Forefront-Antispam-Report: CIP:50.232.66.26; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(39450400003)(39400400002)(39850400002)(39840400002)(39410400002)(2980300002)(428002)(189002)(199003)(9170700003)(8936002)(50226002)(54906002)(8676002)(81166006)(106466001)(356003)(105586002)(2906002)(101416001)(2201001)(50986999)(4326008)(47776003)(38730400002)(77096006)(48376002)(189998001)(107886003)(50466002)(305945005)(72206003)(5003940100001)(478600001)(104016004)(36756003)(6666003)(5660300001)(86362001); DIR:OUT; SFP:1101; SCL:1; SRVR:BN6PR07MB2852; H:CAEXCH02.caveonetworks.com; FPR:; SPF:None; MLV:sfv; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BY2FFO11FD042; 1:2saL8I8j9ectzTD1ik0ArHp+T3V9cMmpl3LsM4lnAiB8BCUhbPFTeuRT8gsEwJyZpkxbC9/eISkNI+d7LGaRaAkOnPUhcDyL4ZTvB22pp+shSa2tt+IrLqK2prb6GMOwyxTKeb1clmSRRCL5rJRwaKTW9Z5qoC5Ea8NxrpmPAEOG5ye2SA9f7SGaPSGWRdLF2D+wDgomwVBBd/sLvgF9L0R+Lyh91ZPnSAd39/Xsn6HxV86lse8kWfdaT2le/duQKofojU7WmjEwsahaXEvCFWX2h73RLlHEgE+g134OUEjg6vWiSAn6RtziXgdrk99kjiSkd3MatmNhaXCfH7+4nYjPWcoWEmAxF21kDDa9/lZCsK2vSkZO0m6sWNM9e/jTJOxA3PTxGw1vaxK3h1NVoRBvMSieiETxKszGdDNOX2YAvsIRdotqiiEH5gPhZQF3MNuL7yN/rUFIBRFis8SklqTJMcrG6z9g19qYVPziZ/Z+02kAjAmQfQJsNCsLRM5PH+tmIWFC7WNhC1HDzNlM7Kdkq1QsIKNXJIwfSc+YP3tE6du3A2R6gLJrEa6Mb1JYXoMeq7u1O4oGZGpq8L32y85XHdA4nvTZRT2d4H7tfqO8MvdfCjE0ArEPp6EkAGrXSJitkTMlujQiAMlQnnG03qAMhfwITfzlLVcssurDc3D4HrhP/qQvFLasoZCWJ4OPA9Y0ZKVoPWLSYtwJgWnuT+Xwx0/uuqe8pdb09c8cOS/ypGo+LwKBH4UPSvNsqDNbQquC/WXjuCfDIow5M17cxQbIkW+5IFIkjnsDTbSJ7Ov8AeY0J0k4wY+1YJr43pY/G15mJRrqhpwIXMZ+yFN4J7O8RJHf51/D7i6qEpJjKMM= X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: c934353b-340b-402a-d45f-08d4beec8822 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254075)(300000503095)(300135400095)(201703131423075)(201703031133081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:BN6PR07MB2852; X-Microsoft-Exchange-Diagnostics: 1; BN6PR07MB2852; 3:ScybMvemt8Cfmi1vf1N3GpBtYUZ/Ngvqsb11XPm7RErKhlyNujtAwuxDfZIkzN2FEPSfGAb86lTqL6JDEf7oLS4enEhFgs1a3lt59t9W18w4faSVm/Ox7pww95KHAx/AkG8h39m0RMGIF+FLcEkGoGC7k9w/U2hHIasawiGOOUSZ8vwHuI+N2zHkPDNKIXoqWX7M/bOrc/wk0ZrdbySGrI1P7+m1YZr7OCDafFkOh9KdbXe//CEkIb9R3zLyeIxTbGYbYgmvTEbkDLx+GwRfrBjcCr5VA9o+lirBbjeosOGW2PqzQtHlbiURqAOlBspHTBmZgWzaCBmACqjthd85SXPs3eKga5Dv29bzPQXlu4O1Btth/dPB+YOkNX9dmjFVjIn8ctWfZEZ/qiEonigRDleFqSDa9P21wzl81IyzY/BNpshw+iDqAcUxwRPh9iUO1SE4Y/qDugP/Evuev+dG7w1POU5qbG0Tjpsf5Tpec17I3OKAfPg7fHpxlh0y4pF077Tw9EEkjoGNhwaYYQW0UNbqN/VfEeXy2v1LYadxgE1Y/99neEeTswK1wi15RjSt+rDKEIuBesRxuiBA3qx7EIJvGs8vLAhM4jfkqAiKU8Q8SFr7hw/Vdpq5z05T38ynEnHqIofsUP6i4C0pdnQ1vPQeSv1bWwQ04f+Fx/c7t0lVm55R1SYxyRvo21/n6Gsr8n7T+Qhe0xIzGBbZCucxCpFE1D6QiTUyagh0XYWBjvxZrfX6D3tYu1rJFYudXLLkSgL1OUPSIh89IMT9900V2UOMoGDFuKiTyN8m71iE4W2RU7eADEq7yR1k/wiNwemtSFPywwh06BR4z5KUi+NUbJV7ucEqXcM2lcKhURdzMNr+948KESCQrsxfEzYfr5r7 X-MS-TrafficTypeDiagnostic: BN6PR07MB2852: X-Microsoft-Exchange-Diagnostics: 1; BN6PR07MB2852; 25:hPMCmDc4C4ywBGcpOvP948vm+nNmyrdR8X4gTW3xFmJepk3CkQ9gxQyql9lMF+p609aflvHKrGFYsY1cMGpch7oSBxj4qkbNdAOp1fa83lZF2Tay6bNGv5XM33E/zZZbZI5LVQMxcL+a1I9UGRn0F6r2bftTLuzKXDflnNmE8e+Di0n9n+gZTU7bEl66WdUrYXJnyL2I0IkHq8Fhrk5zsIGDRyyztXsMT7VHrtyrkOmak0hbZLbGkNroRYs2bjc8h2tiWppFYdy9LJMbMExFIrqlcoXiqga3zcvAMxqmOajzuhtCxpocaoet3HcDjx3QMK3RENDm82VClA5V1VYsSv731mauq2Z/PTLlcV7YqZh8Td1shcz0l8CTuTDD3HhyjGHCIVP8zR5sGlHLAt8RfuNq93vCgZqpWxMuY83yDNWo3JfjN0ljfEFIf1kFZli3YdCXjWokwk5nSSO05PYzvizd97bkZXV4pHzGDXzxmEYiGenJ0ogev0DlaL5tq7YNBtrzYPqC90256EoCgnWcz1y8SeB/A1rwQHMHCZBlje1KCSDtbHhUAdeMz4vr6eY2nd9YvMx105hosjwgK3z+l0mz1qGZfFDomD1AbZhQ3fNLbd55kPytkEsiiB1JkMChDngqa9GTMaw9RZJTOAg6z90Dv2ZjSS0Dl4wM26hHEXD/dXGz1Uwr3BGLZweRESobAIlBZYkzan+wZ0fihXUWi3ba1PSgbyDx03z+yYe0FFuyiej7ihbE8anbIsj+tQeZbhMeuMkxBLXboDsmE/zGAS6g9ubOI9RhnzP4rnTAy0r4EKp9kWZsBpNLJLAXhPRRXd6Q6PlMSAINedhJgSGeUPNJcg2eJ741nVWZRURVMHdcCabE5cWS8l7wg9w2ME47Rrs+Q7iQp4B2b3I/4vGIwjEVlynGv3RoQYwgW0ae1 hE= X-Microsoft-Exchange-Diagnostics: 1; BN6PR07MB2852; 31:aSjDuyfUlZdO3dXGZCC7pGpeD/3tc90Yw1qf8r/rCjQO86Eq3KU2WwefATNP0yeB4g/WaChnJrapgY/5TYkFB5cfGJGVrVoeNMO26Y+zKB6ATmmo+FK4jNuigvpMNKa/N91Ghv9do6A0lzon0MDgZOTMiWLTGvSl0cvY2iIwI65qrHAyhmFEVDn5QLEmx8UhGElgdsFRIOg3a8RO80YcvyRKThwhIGWMaGqvdetKNfsSXAQYot66fF3Z2zYME9FpL0zRLMJ+udTP6SbroIfjuvgRnfXly6Pm/QweAXrC/5nwhsJIyNuHFjyV1iTzOGsW/CHnV+SM21Cbga3wL5nMwS0XDMKawnkmayi6XlQ474x/Ar4jCrU4lr5NyNYZEdxFcNf/YvElmxpTozuDHjc/ZS3qxwYaPn2KksLXVD2/tGIs/0LLYZG4DYKqvR3rJqzBG0348dc1dpltFo3FrEhMUiQproTxwOIso0nSdlpCamVN+bKM/TqafzkLVRyIze8mbbdmgaw/Z3k5C5i/pO0P4qrFnYG8SoDuI450HntiPUSwzzMDhimO4BWsABzy6Ko6Z+WO5n1OAZCk+EDBrk/sRJpAeNNNmWeati5C6P3Wo9tuvXSrHiAkvpb2ifiQ0qsE8/Za12PN+lCumbawvP9rzZ3JNHPSGZrSq2ptZLSHMS0Ep8fFLa1kCr7uiS8sDdoOsPxPMIf4OStSTKsLug63Nw== X-Microsoft-Exchange-Diagnostics: 1; BN6PR07MB2852; 20:fHSoxoPqTB3U9d5J/RlchoFifMp1xIt/l6h6HuJD5PY1TJejLzEMRkS1S6O9ZmhnUZy+qCAoaPJ18upQBIl5SrZQM7/pG9IR9XiYnK/RkUizLOXG2WvF8cQ9a2SCpoA6dUoegvIS7/szkowAl9tLjIA2a7MPP0spGJRAJxgVgWnvQTlgJ+p932uzGojVuvzKEGgXQaqSuQblRAJd1qMzBI/ACWudBkA4QmlblByQTaEW41NO5ZNNWyqnPg4oRR7ZUAeVA8o7M6d3pQTzC9bVAPo6iGthA6g5IBPIg0dNzgxDOt5DKeJlM2BtX66Lgz5vNG0zz0H1chzaQCI5ECDoJGkMRac1e7XKy5hJAi8U1tfDVn9E4j5VqNzlA7SqigxMTjBEYP5TfN6YpsoPDqFlkOVk9fIpyP54JwYir4jfZ/PnaBE0fORgSDpW9LCw9bxHa5x1Y1i48bsxyPzWHaQI3vMCgWr0GsUDz9vZCZ3y5KhhYFBy4pG17lCnf1MDyz0v X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(133145235818549)(236129657087228)(148574349560750)(167848164394848); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(5005006)(13016025)(13018025)(8121501046)(3002001)(10201501046)(100000703101)(100105400095)(93006095)(93001095)(6041248)(20161123558100)(20161123560025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(20161123562025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BN6PR07MB2852; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BN6PR07MB2852; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN6PR07MB2852; 4:NdTgMBXClmh6eBRTB8RZ+JCRVP7LSPIQWRZluWkgEu?= =?us-ascii?Q?LpPbBQcZE96M6XsVphKzCXu18ANxyv3CoN1Z3Iw+svlePjvOAPSev+Hvs2V/?= =?us-ascii?Q?NXXzRTXN0Ar1jXguR5jGdFHSqsSQeELKAJqL3MAIj6VIoa9U4ecpCXKicYQ7?= =?us-ascii?Q?adW+JlY2vbOjlvc1ua2NZ9RIL0P+tCo81inJHjS0m07B5Ad8ZSwY4ioens2v?= =?us-ascii?Q?0TX8+ir96dJiyUxoKmlRO9tRsgU0diQ5STWTsvP0cPWgQY422hG8buB2Fjhc?= =?us-ascii?Q?Nk55oAlP/PtfNLy553wL9QMvrUctjczTZCFTSY6v+BGpN2O/+HUDgGCiCc1x?= =?us-ascii?Q?N8ZgUQb/o7/L9/OtlfsqITjIgPLrBYY1Z3JPdmo/4tMqz6CmLnP+yxIoMLzh?= =?us-ascii?Q?rkQq9CZwC5/Ze/rUG4MNy1Qf8JTCTS+C5T3OXB+2c7DWHIfArlTGn01WnF2y?= =?us-ascii?Q?co7qjmJmqyFiOHm7oaqSUCwzeBnJEwQZ4dbthO9My36IwO1KjIj+RbfetWFh?= =?us-ascii?Q?Tpe0I6J2+DbvHHeGHP6OQ3fA6PfZcVaYbgo+XYFwl5YVKqmK3eJcZUZ9PClD?= =?us-ascii?Q?MLegKg5C6spKPkUWvQkFpWGJVlBIkXCdxMET7J3fK0EwYBjmgmxErEt+yBxJ?= =?us-ascii?Q?mS/nES4ovoyY5fuCC+eflHvyXIF49TYjkAX3GnLBNYoPnEe8ZzNZ/fj71bvn?= =?us-ascii?Q?E6GJVmRK3yr0rwzmf3lNG/6gbMlwlABKIzEKrtHA9091cm3RuOnNpDjfFjxH?= =?us-ascii?Q?oWYg2g2rfsU0+A0TQOgvA8PL02fAAdYokqwJyz+5eSMCUQEsfPhjhgWHFwc9?= =?us-ascii?Q?UW5k+65Aar8dj2rjMZP6AtqD7b9LjFpPhLrqWVlOlNKvGmnfaZL5gRS69Q8I?= =?us-ascii?Q?WH4KCOKp/i9pEfd69StZQf9Pl+63oNe+//hrToKnaJ8hCa1LaeWafUGXt56c?= =?us-ascii?Q?pHoxHq9Q/43epwVF0YnyGuDxGKIQLoh+DGnNwZYYKQuElMh3mp3RF6LTKnqk?= =?us-ascii?Q?QwDN4PP8gayWI5B9Kx8Dgb+BxqjnouODmpDE9GxFnlt0hF5t6sEVfQCqs8Ot?= =?us-ascii?Q?UqtxxM87h6Wjmhi7zOAZps8JrOLoritTmwlN1xE7EuTTYjNAO7VDJpcjk76w?= =?us-ascii?Q?kQb0GFZPZyhr4dpHeuRHFrprZK39dhMNFh8tGTZuFyfSn1PD/cUXJTieEEE/?= =?us-ascii?Q?2VhQJK9bqYDbcrR9F+xADKJjUQZrDOQrYWmDtpxS0fWbO2NbKTN0ER30S1xH?= =?us-ascii?Q?ge3NYFH2EmVqX9Dupuazn9WhlYvgtgadK4UJkEAT2sRQw6j8KZloecok/rVq?= =?us-ascii?Q?3PVyG9pXuhyKxtozIZSvPy7yMDIjUKw5vc8zP0uDqQ?= X-Forefront-PRVS: 0353563E2B X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN6PR07MB2852; 23:rrBS14nGUw9jqbTj+pJmzzV/GTY5E2DUPO5/SrIUD?= =?us-ascii?Q?4CrbD/2e4Wqmj6hFvK1MfqWUcGvyjNllWDRNo7eiAdNvT3/qt/XI/UVM6jrE?= =?us-ascii?Q?/7Fd2Dnc266tcxXvOwWlLg3ExjMKMvzkXFzjIGxDQ/ZE5xcZiaL/tIBjfbgQ?= =?us-ascii?Q?MHY4uzL2nH0B+Lc6wRwDXxpqt3cPqaxgh8cTkmh0tZQ+JqThMXOMFJIGQzGe?= =?us-ascii?Q?QyQrRQo20OkaClWuAb53VTF12KWTtVXSBiplSQab/fBFjGJCPxCk1B5iBThH?= =?us-ascii?Q?OvTyuLgP7NCjai2gqkdH4xO3QJj4GZZyJCQdVnYyzhXmjGBFqggeKuGLlyie?= =?us-ascii?Q?50MtamyMp4KsXoNzXgi178woFrzl65cWjGOAupC2ZrzNcr+X38CsGK6C5LW6?= =?us-ascii?Q?FEgJfM5ECwnccLneoPq8avSYJd4pTz5T6AdliysfO/LLHR6JpcNDwLz8hhw5?= =?us-ascii?Q?v4nqlkHo9VFChL0soRs4GQA7Rylr7NWjzo9t2wf8g238JWNbd8M+SsnwFo+V?= =?us-ascii?Q?eCWIRfshBvAGyB8tExY9rk5Wthryh33HdP1K7YvPYlYPJOz4m/0TV0Ggfocm?= =?us-ascii?Q?YOb1Jf6BfGrMkVatEpEUYVFTu74dDOoXXrrjqRmsu914+cLlsHOpzxah/0Z/?= =?us-ascii?Q?p3ZVuMTYXxId/31CMCBdr2RAw2BLGieRu0AvsJXWegSvgilu48amlN/KRE8j?= =?us-ascii?Q?XuIw9QxcHpuhSa0I9Yli0f/ZS+vOJau5sxuDTodgEVN7PuVXwylEEZ+8uy/k?= =?us-ascii?Q?ehmsvL3HbJrfFsvcq6IBAOYZ5qpyAEiLF/JQaR6jmxw8iZDynPzqEhOYtsV2?= =?us-ascii?Q?Bi7N3+SevUvYYR9gZRJOkaTR2Be8wQh8SLUwu4e31zb4o4i9xqKkvYNK2Ev4?= =?us-ascii?Q?T9gRIg50gO5J95NNjdTxjKaMjJCaPi5cpvOoIw/xsGyrntQiyL1OcVkmkRU3?= =?us-ascii?Q?V2MFvrq2NfC3ub43KZzhSPEPARHN5xhJ18apRRoGbyJKHKvXuoWKXrxnjEG+?= =?us-ascii?Q?BTiZiN6pXHXrcorWluOOPxx?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN6PR07MB2852; 6:UVHvJFN4JTX5GJ0xauA5RXo+8RwhXi+DwRvocrJW5L?= =?us-ascii?Q?tlAEhmyGDVkT3ywks0eu4b2FJ9qWtanj57cb6kOdPcKgax4UDGOL7R0fPOp/?= =?us-ascii?Q?X8+cdDKMkDmQtcHA8aHA4QiN/Ej48l68abgP2HlLGOKIOeV78zd/CzR2PNHZ?= =?us-ascii?Q?K3Ffe7KSAsJTkO9WFoO/zP+nlWPbRvKo0sXN9qrJKBy7nggOFnjkQFEy2og0?= =?us-ascii?Q?VQNKmngLfFo0tUThQBHBOwP/Mn2qwAbZgFPM4TaHCuwNI2p8m70kuL5ggz/4?= =?us-ascii?Q?GYpqNlu9C3Vav/yAkYScTICTI+Gh88+tsj859me+7KauGzF15mGOfx4/95I6?= =?us-ascii?Q?WF8tcATrCararCR1sClWk7l6USa+vI5rSVClkCnKcT0LmRv9514KA6cvis/1?= =?us-ascii?Q?YfFIsMCcAiW4coEmSuP8zc3jMjWruvEwRh/kVAIMexpbivjsFF86L4fnbdGS?= =?us-ascii?Q?jrCcixgdiI4fiKS28GEXww9PYXGZayeqjgMYHVboIWKZvtVxGXEs0GAlnH3x?= =?us-ascii?Q?mga3QUDFDrpBiVpia0ePWFOwN4O8y/W+BUaU1FjnMQ4bATONCXRraSQWzpzP?= =?us-ascii?Q?gj52IiopehBuFHLbDA9ubEzpAYMzOssh2jU8AmJpchb9mYc3/L+znYmx7Dgl?= =?us-ascii?Q?WuGEhs1mUiizyyY279AsbS9fHCayAMiBWDt1pCx24Nlf7s9zMJBr6icUsvCG?= =?us-ascii?Q?r9ekU/RP7mMDYYTut/tbW2lhjr1Gr9hwt8Vp1n24zLi9lEantNMqwOUmf5Qv?= =?us-ascii?Q?d44LvqJbKqAUbU2V4Q/lSByRL+M0hV0sWDKelVz9FqLqHUcMJDySr1loz6C/?= =?us-ascii?Q?sxHKcvvqNsVRUtyuDGn0RIDQUEpWcsw2ec6TKNFTn8EO5KXVhUOphzkbnHzH?= =?us-ascii?Q?FX1Fve45jniJ/UOvZILWFty7IguboqLbE35OmhrW6LBAFxqCj6P85QNHx0Iz?= =?us-ascii?Q?s9WT9m5sLa585WQ+E5Oen2QCwsfewQpmvfUzBqDVq8M/HxMpmO8WCXlFbrAg?= =?us-ascii?Q?Q=3D?= X-Microsoft-Exchange-Diagnostics: 1; BN6PR07MB2852; 5:hUaHqIqJntaxH5ATdPWHBeGqPBIYX/WrEkr73RlzH85VE3gmPelBeqi9VRyzcJ7nUYl1JdMz7mHLqAF5H/36TKgCcdTn77nZ+WWcnvDnyz3+75lgWGGmPA8o1VUTaYxgw+dZ8IihGr4k3A5na0+8/FyKezcxpvgROzlDGXgR5lzkk4xoUp2uzQZSD35cC2EaGyIJ8mNTUJkvQQnu3QloT3bXqOGnV0XWuDushjGpmUHXIH1M2lIQUZyPdaSQwY86Nxvb1H0AlOXhoUxvPuoOgHVJE3V9bEFRmr8GEq15m2MvGwoTtCA2/2cyz1ZXo+fRvuTze3dcZwHl5e0Mlx01XTk+2JDWMxUHSaTHj9kyYh61TIB0WQ1zH095f3nZy/T1PrYoFITtRUBH5jhjVkq87ghbtFPszhZWP3iMm1x3nbeltLOqBbdmH8D6/ditAkm1Qf6BM6OaWipL7vVDAxobx7AEaal1fYO+oZF/e9d0GBEO/2o5aEWW/2hLnocxhkzy; 24:WEiTw3ltW59bNYd6Bqi57EsDzVjsyZybQ/P+yBse6rXxErkRZFuKjYTbjEkMkzbzw0JmzCQsV3rEi9UJqyXdDwTQmhMbx+1Trnblpt0VpGQ= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN6PR07MB2852; 7:zWp2QkkyJwhkN8cp7TLHRULaFKZSk6ZCqTs5nUyoipXRo6UaT6gT8QPM3s3lSjK8VT9dDbp1ga99ZhhOu9ZNfsyD3TZovatbwOXCr1+P/GOeND5JDCOs7uESOwDLUftpKx+6oTwSXZ9Xnyhm13yByT7QvOU7CmdGhF+AE86xePwSCeJreP9Wa1wwV8+KBDoD0/0LkY1ghubBMJVch/hy7bZTuhHGJ6jgkMO9twNlE7fTyaQCV2kJMWQ9WPI4Ux6y4ZhkxWNVShjcz25s+gha4HC8VcU1SJLh+bXdLqn6erUqHFVSEWoJSrmf98Hjo8G+qfqpMZkKjx/pnrFE9gmtzuLORTbI1raQHhUUn5iImeIxQL/BUxMRKFn/k8NNSEX3Jj+hdCmioSPSvcQYzPlKO+SQw9JXyklckE2VwBb0wxtRzpZmG3077GK0jKecleHQ+g/zAq8nwYZ2V+T7vj99NeJ7+YyZw7FCoiz8mY5l3FTR685mGFh82hxmLShDfcI0qAJjlvmI68Rx/xjMudoFACwOSttmDJscRm/yDP8A7bNOm8lwd4m7R6V3KYMGnHqVoKwBfH2QCH7+WitlaiokLA12QB15uqaLgagaYvNB7lhPYBK1xH3tzsErCGF58XED/s+HHOeACeOHnza3wXoteI0IFSSGiTvZoVuS8nVWpNQGQpiLGDBnGRyit2lcBcEmNbMmqacDcx6xlW+hTEZgv1XEUiIXB8EHAXBNcy70G0aTIk0JAdq4gIolgNs/Ez+Ga5cf/t52KpLcA7PaSKGXyev1ohI1pQG62oL6jo/VZxU= X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jun 2017 12:44:06.9597 (UTC) X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=711e4ccf-2e9b-4bcf-a551-4094005b6194; Ip=[50.232.66.26]; Helo=[CAEXCH02.caveonetworks.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR07MB2852 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Michal Kalderon Add iWARP support to libqedr: 1. Doorbelling scheme is slightly different: iWARP requires an extra doorbell in post recv and does not need the extra RQ doorbell in modifying QP to RTR (used in RoCE to synchronize the QP creation flow) 2. In iWARP QP state machine resides only in kernel (lib is agnostic). 3. Avoid Direct Packet Mode for iWARP device (for now). Note: no changes were done to lib API. Signed-off-by: Michal Kalderon Signed-off-by: Ram Amrani --- providers/qedr/qelr.h | 2 ++ providers/qedr/qelr_verbs.c | 34 +++++++++++++++++++++++++++++----- 2 files changed, 31 insertions(+), 5 deletions(-) diff --git a/providers/qedr/qelr.h b/providers/qedr/qelr.h index 0dd6835..3c663e7 100644 --- a/providers/qedr/qelr.h +++ b/providers/qedr/qelr.h @@ -192,6 +192,8 @@ struct qelr_qp_hwq_info { void *db; /* Doorbell address */ void *edpm_db; union db_prod32 db_data; /* Doorbell data */ + void *iwarp_db2; /* iWARP RQ Doorbell address */ + union db_prod32 iwarp_db2_data; /* iWARP RQ Doorbell data */ uint16_t icid; }; diff --git a/providers/qedr/qelr_verbs.c b/providers/qedr/qelr_verbs.c index d44e28b..d61f2db 100644 --- a/providers/qedr/qelr_verbs.c +++ b/providers/qedr/qelr_verbs.c @@ -59,6 +59,9 @@ #define QELR_RQE_ELEMENT_SIZE (sizeof(struct rdma_rq_sge)) #define QELR_CQE_SIZE (sizeof(union rdma_cqe)) +#define IS_IWARP(_dev) (_dev->node_type == IBV_NODE_RNIC) +#define IS_ROCE(_dev) (_dev->node_type == IBV_NODE_CA) + static void qelr_inc_sw_cons_u16(struct qelr_qp_hwq_info *info) { info->cons = (info->cons + 1) % info->max_wr; @@ -434,6 +437,9 @@ static inline int qelr_configure_qp_rq(struct qelr_devctx *cxt, qp->rq.icid = resp->rq_icid; qp->rq.db_data.data.icid = htole16(resp->rq_icid); qp->rq.db = cxt->db_addr + resp->rq_db_offset; + qp->rq.iwarp_db2 = cxt->db_addr + resp->rq_db2_offset; + qp->rq.iwarp_db2_data.data.icid = qp->rq.icid; + qp->rq.iwarp_db2_data.data.value = DQ_TCM_IWARP_POST_RQ_CF_CMD; qp->rq.prod = 0; /* shadow RQ */ @@ -648,6 +654,12 @@ static int qelr_update_qp_state(struct qelr_qp *qp, int status = 0; enum qelr_qp_state new_state; + /* iWARP states are updated implicitely by driver and don't have a + * real purpose in user-lib. + */ + if (IS_IWARP(qp->ibv_qp.context->device)) + return 0; + new_state = get_qelr_qp_state(new_ib_state); pthread_spin_lock(&qp->q_lock); @@ -677,9 +689,11 @@ static int qelr_update_qp_state(struct qelr_qp *qp, /* Update doorbell (in case post_recv was done before * move to RTR) */ - mmio_wc_start(); - writel(qp->rq.db_data.raw, qp->rq.db); - mmio_flush_writes(); + if (IS_ROCE(qp->ibv_qp.context->device)) { + mmio_wc_start(); + writel(qp->rq.db_data.raw, qp->rq.db); + mmio_flush_writes(); + } break; case QELR_QPS_ERR: break; @@ -870,6 +884,10 @@ static inline void qelr_init_edpm_info(struct qelr_devctx *cxt, { edpm->is_edpm = 0; + /* Currently dpm is not supported for iWARP */ + if (IS_IWARP(cxt->ibv_ctx.device)) + return; + if (qelr_chain_is_full(&qp->sq.chain) && wr->send_flags & IBV_SEND_INLINE && !qp->edpm_disabled) { memset(edpm, 0, sizeof(*edpm)); @@ -1405,7 +1423,8 @@ int qelr_post_send(struct ibv_qp *ib_qp, struct ibv_send_wr *wr, pthread_spin_lock(&qp->q_lock); - if ((qp->state != QELR_QPS_RTS && qp->state != QELR_QPS_ERR && + if (IS_ROCE(ib_qp->context->device) && + (qp->state != QELR_QPS_RTS && qp->state != QELR_QPS_ERR && qp->state != QELR_QPS_SQD)) { pthread_spin_unlock(&qp->q_lock); *bad_wr = wr; @@ -1445,10 +1464,11 @@ int qelr_post_recv(struct ibv_qp *ibqp, struct ibv_recv_wr *wr, struct qelr_qp *qp = get_qelr_qp(ibqp); struct qelr_devctx *cxt = get_qelr_ctx(ibqp->context); uint16_t db_val; + uint8_t iwarp = IS_IWARP(ibqp->context->device); pthread_spin_lock(&qp->q_lock); - if (qp->state == QELR_QPS_RST) { + if (!iwarp && qp->state == QELR_QPS_RST) { pthread_spin_unlock(&qp->q_lock); *bad_wr = wr; return -EINVAL; @@ -1517,6 +1537,10 @@ int qelr_post_recv(struct ibv_qp *ibqp, struct ibv_recv_wr *wr, writel(qp->rq.db_data.raw, qp->rq.db); mmio_flush_writes(); + if (iwarp) { + writel(qp->rq.iwarp_db2_data.raw, qp->rq.iwarp_db2); + mmio_flush_writes(); + } wr = wr->next; }