From patchwork Mon Jun 26 18:06:59 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Kalderon, Michal" X-Patchwork-Id: 9810169 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 8854560209 for ; Mon, 26 Jun 2017 18:12:18 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 86AF52851D for ; Mon, 26 Jun 2017 18:12:18 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 79C83285DA; Mon, 26 Jun 2017 18:12:18 +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 AA3952851D for ; Mon, 26 Jun 2017 18:12:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751393AbdFZSMQ (ORCPT ); Mon, 26 Jun 2017 14:12:16 -0400 Received: from mail-sn1nam01on0074.outbound.protection.outlook.com ([104.47.32.74]:9120 "EHLO NAM01-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751386AbdFZSMO (ORCPT ); Mon, 26 Jun 2017 14:12: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=L/1ROcM1SqO6dii68aBh9zqOy4VTPygFCBxmwPTckBY=; b=nIwjJ4cgTgiDQenqr0p/nnFSfG5MYMt3N+HJjMTpIavTKT7OaXVoS2OjTuDGEntaa3tUb5/SNBnZF63va6xbIZANX8gP9ie8G35ASeEGxtG0sg3hGBr7ScutJM8vp9CxhZOBiMq4vR7oFane/5ofec58Spgk2ODhh1HqzCRy9ec= Received: from DM5PR07CA0042.namprd07.prod.outlook.com (10.168.109.28) by CO2PR0701MB1013.namprd07.prod.outlook.com (10.160.10.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1199.15; Mon, 26 Jun 2017 18:12:12 +0000 Received: from BY2FFO11OLC005.protection.gbl (2a01:111:f400:7c0c::126) by DM5PR07CA0042.outlook.office365.com (2603:10b6:3:16::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1199.15 via Frontend Transport; Mon, 26 Jun 2017 18:12:11 +0000 Authentication-Results: spf=none (sender IP is 50.232.66.26) smtp.mailfrom=cavium.com; vger.kernel.org; dkim=none (message not signed) header.d=none; vger.kernel.org; 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 BY2FFO11OLC005.mail.protection.outlook.com (10.1.14.145) 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; Mon, 26 Jun 2017 18:12:11 +0000 Received: from lb-tlvb-michal.il.qlogic.com.com (10.185.6.89) by CAEXCH02.caveonetworks.com (10.17.4.29) with Microsoft SMTP Server id 14.2.347.0; Mon, 26 Jun 2017 11:12:09 -0700 From: Michal Kalderon To: , , , , , , , CC: Michal Kalderon , Yuval Mintz , Ariel Elior Subject: [RFC 09/19] qed: iWARP implement disconnect flows Date: Mon, 26 Jun 2017 21:06:59 +0300 Message-ID: <1498500429-22557-10-git-send-email-Michal.Kalderon@cavium.com> X-Mailer: git-send-email 1.9.3 In-Reply-To: <1498500429-22557-1-git-send-email-Michal.Kalderon@cavium.com> References: <1498500429-22557-1-git-send-email-Michal.Kalderon@cavium.com> 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)(39840400002)(39410400002)(39850400002)(39400400002)(2980300002)(428002)(199003)(189002)(9170700003)(478600001)(72206003)(8936002)(305945005)(2906002)(81166006)(2201001)(77096006)(5003940100001)(47776003)(50226002)(50986999)(189998001)(76176999)(5660300001)(101416001)(105586002)(48376002)(8676002)(86362001)(104016004)(54906002)(6666003)(38730400002)(50466002)(106466001)(107886003)(356003)(2950100002)(4326008)(36756003); DIR:OUT; SFP:1101; SCL:1; SRVR:CO2PR0701MB1013; H:CAEXCH02.caveonetworks.com; FPR:; SPF:None; MLV:sfv; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BY2FFO11OLC005; 1:YrhadOL6PkSvVNQ5CLBPGJj+KXXINFDXiLEgV50+suyQc92GfLY6Ge4ASP95mByg1CWtTBqGGMKtGpcIDw5XtosDVVIQjv7XM0wKOiWUFMMmOpB/+cbcT1xJhUPFVfb/A4veumH2Z0x2naan+nC90sOy7YGox6TMtp2tktBKg3AacfycXV65VTL7uLWItQi88awpm9RUORZpLWxMgGoA5tR9PLWOWCBDg+trerm54mRGhe4HvVyHKjVkSXzu2Wybuk8h+eJRMs0YFG5yj10qpPlBzslxikCdvunEa+PVerF6Ocfvwrqkm6oBXbX8JXMmmUYFbrxtJsCGBihCfTyG4dzJzOT4ucmHvFenmYl55yrcvR/DXijM6tE7XbihsB4TVOuFQKjFBLdouelDMfx5Sefokjqs15pPWqFBCYaFMt3kdrBXK5my41fDeae8vcarKVkqhx5SNdduRtpgfya7E0St+hpGU50NCk4oZ7w8xwU/GR/N9BD3VVqNww7CjBclvUECKD/5Bz4auPfNr2+YbJix9OT+QhciRZecw2ArHuWrlK/XA2iako4+SRrwoJrKzQ5L+hRmdxUfpqj3lwUSRo+ziFFX/q/qzAErwqypGg4CdPoClJfFlgzuGmEI9aIxirIHPtP0mL8MdLqRnTlnV27QidSaFXNLJ6pTM6JLQsMx0w5Beif+OpkyREWWCksdIGALvTYche/WdK/4APoUHjx9K/4PDvwcSsN5evklsswHulGRLmlEwgrBPTw+toNacq7IlXMIxaoohiicNA5NU91ko+T87iz9ZRT5+uFi34QgUa3Br6OpI3JsTtQkCWxPdxBQc7bx5Ifvk8dyvTWhmvdFKVGACD8PmwCc95mSzl0= X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 7c7fe91f-305f-4023-71af-08d4bcbeddcf X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254075)(300000503095)(300135400095)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095); SRVR:CO2PR0701MB1013; X-Microsoft-Exchange-Diagnostics: 1; CO2PR0701MB1013; 3:rcvqpMYZ0dHGYEMiKm59kn7rFWYgTkEh5QHwnClCYfEZ7/LCAtkTU1joJutsJyYiluFeOHAHtqA5iyA0mUtzFB0HipIgfJSuYN/5V1iXFls2ZFxkb1FplOaAIN+XQGRng6lf6r3swlZjXi3AbI9r07bbEpqnRCKmntUYyUXhMYfT0AO+O6DLc0naN5yFp3J7m+n79eAwiBkpC40VIoNXzARYGqKKlml2wiuChaKsnBNeFTUi5Er96GSOX9lKHp58msubSp9+7kGP8ds3pWkRCHIQwpWOy61ke6DwxLFm8IeB95gZhaZwAoSXxMj7/jbZXm3ZKkeBIpE8lzEAmEj2RJ0Zu7gkeRJv+s8WIIoaPg03+qbAh9C8qU251FS//pHHIbmuuhajmQ0F20dXvJtFRhz8pua2PlZ4QiXJ6dNWHQ82Yzaln5wRNl/A/oS3Ufc/R8KHI9o8AsupWfHaD+7waRzQ/Zd82l0rKSvXCE3JJM1H0T/c7N6RgnuVJGEZeoN2TLLh2mELtvm7u6tOqpcqxCwvF+Oojyp/N0dYENgNBH2+MrxPtSVEhjhnGKX2QvvhEpA9+V1zbSCVOEwqCCPTbzZEHeHMWSNVKHgkrY/cNGhVypNk8GVCdPxGmKm0yzOEHHnHRA0JmVq2IGmKCTXvdmyHYC8jzkTjJ7fhwIpDZcpAlcDc0AzDFJEhRPyfFPoctmbJ+uOmhiNydGjdKvEZv99l+zxF+TBgKb+i7Fl15bfUgkuk2GLuDVnoU0UVz2p4tqObGY7fqTt4XAVUU+PR/fHAqqOUOQUV/HYUiDbo3P2UOwiBCtZPCxlYAJ2thn1FOB4QGJ5oS/X3Kbq0tvMsew== X-MS-TrafficTypeDiagnostic: CO2PR0701MB1013: X-Microsoft-Exchange-Diagnostics: 1; CO2PR0701MB1013; 25:JoG+1fLKNmQAYutTWEBhXuxwW/vYosbBBsxulFetwz0tJaqODEU5DX2e2e+hszGPovxaQ9KR5YN1VM/Ha2Jy3Q3xovSBa6h1Fow2bJgbrrHO4jPx4doA1ehneeiEWWK437qy/LIH65eC9X3zZYguq7jMY33lzLLy/fRXFWX7qt0kfR45RU5EV5LlrJa1uGs8oGs3IGuX9uvcFr7WlvgDj508PZBaXZEF3SJCIVNy27J1JWRi15vJqdr8ffBHHgp3D9pOIVqsh1dcWQbcc4V43gz6aLSN65ko7HLtCogQKIKWhWuf/ALoBc5XoJZBLzv0v2NrTBr96wsN8RuSot7BsooWjQ21ZJdJ98m5OOkt26oRfIE8e6ghfoRoV4dYp4DNSgOgEr/TXLrEuy3T+AfNYX1EY8VBsi4v5IC8Kj4+QfuMJJMO0CbNXMIDAD9MXKPrKqTPdWstp5FQXQiMpqJraexGap8qW1tnSKWL47GIeeZlwnow9JdWNqgCrwIawHp29vsxdAaaxhZi/kd80krZOIrBUq2HYHU4m7tHejtKZA2GdVR/pAbkPDUwhqM4yPu6Ejhe2PD6oJ+oQzxgERu04Tj5h3zAVXS0a2NitF7dBId3m4e7YJ2DybDMUb0BBG8vDiTtY6YrA9f03aPlDq8MpwnfSQdG3Ra/hIDj2yuwgHDRKlVIfLM2oXbxxccMATnXSNe5w9CGZHQnrLZoCqnJAgDn2wQXwfHw6RvB/BJsFMtaRVKd4tfTyYkPVf1nAQizy/OQW9BCKHrmUGUnSCVEUfYzRXmtEomXkvMJ57zEGjeNC/hxreGSmFJz5aQHV59SJKTX2YCOXnO9h7VkxLaJVA/4r/2sKcRXgevyBNXXu+J3vCYqfusu9/o0rFNWovzFDFFb02V19yWcLeNv1V+gtzSXV4wR9fufRD7EljU oQMw= X-Microsoft-Exchange-Diagnostics: 1; CO2PR0701MB1013; 31:5U6YSMqqdbHXf21UOd3DsX+X7xfnQGxRPlVF/T4HOLHNy3Qo/hfZNB/lS9opZtpcr9LZuD5BOLZiz6qG7ZRk23i1+Bnxlmbx6I7eOEJFS33c8/Jk7UmslBD1Ib7yPIf8LTjRnOkSQFhBulVqPAO73pRLh/4pxLP1mr6mtci9CtlqbxhPTLzJ3xQDXG04XWutevFwQaqsZG/4yRKeKIu4iJmLoicRjv4mUiMaGOCY+kh4uTrDqx7hj5pT0ux/UQswppIabV3HqGYgkWGOcJ4++SamOF3vCLd3M8AoJHM4RK/8b8nMFy2N99Ihcgl1LfNmKwkZn+4odZBXU4ziaUv9Nlaq05fI5XQoUsksUN7j7Xou5RED0aeuXRXpA5NHq1yTxBfw03pM6URCUiNxvXOkvbLIDOcolUIOcs8CfmN6j5fDrvO084xqwHC/9mHYQDecW0hthysjjtBCEJwdGQrf1sZ7/EdWH+p3hEp5dYymUECWLCgqTDwqihjELqd5GCF4C9zCfPm/G+f7wHZSzTbTVnTAEbDJxY7VIEba2HIvsqUbzKP3UY8YJk/AoRq7iU4Do2mddd6hfD+rRbkA1f55kbm9WyrA4c+68ics4MudyIWhmAFf2G92bt0vdGnJLhbtazd/uM3GaxhDkWTx7gUz52lVqUjnw+sNEl7P3yuY7pyioSL1HasFcG9pQwgkJsY+x7lMKgTUc4Vln1doCu91tw== X-Microsoft-Exchange-Diagnostics: 1; CO2PR0701MB1013; 20:R5qF42pqf9LkeyJVGuPnVdp4EKAOB3SbcvFFTn4kXTB+3+cBTaiUYAoHZA1hqRRasR8/Wn3XRv5bG9xHUeY5k8MIgRMAAHXYUhTI7+lxYRhzvw0ciA6tT2XfCEobBXX88hVk9O5rpe9rrV5/xzJ67CKMBl3Njhq2PQ/CO2wfR+Rcgt9TBtdyoN7ZY1ThQRWKY5G0nuVW/HoX8KjvRKNn4/pZNI6eLXKjOs14UVhHjub6BS7aR+OQWYMZ8upuXGFt7h7M7mFWRLfc3yGZCGmCvju3dVDQmSGdi9o3WeTsnEHBE3x6BoOoHHKqm6bN1+m12Kgxiet5zqIxq6kJ60OtJ2Tb+XsX2XGC6ZFJ1nG+w6GdEftsj+RviumticbYLrFHMvj+sABdYBoKdaCvoRoi6mwIDrii1uhhZ4mlYbeDsB+8HCAooHK1xMgv/3kodcnJnrQfwnuSQdJmUR4bywZCgFoVA70Q/gvSJzh5MnXzVK/IkmNhzLSSgwSY+5IDboW/ X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(13018025)(8121501046)(13016025)(5005006)(10201501046)(93006095)(93001095)(3002001)(100000703101)(100105400095)(6041248)(20161123555025)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123560025)(20161123564025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:CO2PR0701MB1013; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:CO2PR0701MB1013; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CO2PR0701MB1013; 4:lBTw2r+9z8c5X4ZZYnk42QGOfCHQAw+Nc6HmkRiA?= =?us-ascii?Q?AFhs8vW2snIbmhsDUQd2GKp0bHDGM/F36JBVWIzlzszmkQfwhklxy9vmpEPb?= =?us-ascii?Q?UJaTg966r5B+XuwQR46xJGtclN6Z8qbUPWhzszVHMv8YO3X0R6iiiCQQmQEa?= =?us-ascii?Q?vbUy2OcEzO5E8OYC+HVh62MCqjqAQdZ0L0GGb2l73+KDwXi2+cwUVFGkKMws?= =?us-ascii?Q?o+yFi4LnEDorNzzXhnODxyHJ00nfeBgHCCSrrJpxGXgYg2k5U7yzVOXj56s9?= =?us-ascii?Q?onVR+Hi//z2qGW3X7O85+NwErvjs0yG69+1oOZCMece/o+piCsD8jJj2blQJ?= =?us-ascii?Q?adROhTtiJrrt6LN1hECRYqgigzr4ZQiT3z0+tyGPgnJM8iwqVIbZQunqsenT?= =?us-ascii?Q?2s8WxyGnEcOssLeR+NTrUteTLYTDxec52yAVqcTaf6dv3F9b5Gw/A3c2Lyzo?= =?us-ascii?Q?fW8lQoJXJGE73n9gKNOqAAPhg2/b4+Alq1/ekTlDJZFys3rSDqB6R+6u9Ib9?= =?us-ascii?Q?vA3Jz5skPb7QcJ7CjpZWiEGD+4Xl2pVwcq1Svas+Qrspwc+Mg2Dvn0orJvg+?= =?us-ascii?Q?kkIvThk3Z37k7rUjguR/2gy9nhT/Vs6jTvQDiHcD5PCObgqXqVL/TDiUgdKV?= =?us-ascii?Q?/Ps+14BsPHi7n2D6vTC29aNR1rKMBxY206mBxhR0o923FemYWQ910fJ92ulm?= =?us-ascii?Q?F289ZshXgXuI89+yVYviOkmLixwjDOdNlTm+1/alZBGksvjyHEXy82jM+jZz?= =?us-ascii?Q?5X5HYgEhEFgXdXUF59qpoYoJJL9BHIJ5vIKBDFgDCuygKtt6XGofQ15G6nQF?= =?us-ascii?Q?7HnhFjHHvh18Xp40XdcJZdjSs5KT5FwNCowsZ5uZE1K+Lc/XsHWuxaypg9nb?= =?us-ascii?Q?dHQ4roxoywqXG4lZ30pqmom11dkXAnkz1D2UddW8UNGpKltXYjyhZzFP/zJU?= =?us-ascii?Q?t/h1EZLifaIp6N+nDeJ9/04U2bUINQ8xAbqNFqJ7Mcd+VncucIMNmPS8ShRi?= =?us-ascii?Q?gQhfIaj5FxlWWU5+wsTjJHSlnGe7ZhdNTL3Z/OVt+z1FxNjHn0Mq8vcYw9N7?= =?us-ascii?Q?OgwHMo9QT+xD/tQMh5MJumLk14ttrfYJjteYgvZCWH0lbxvkhSR4kCGuzGCu?= =?us-ascii?Q?C8mcvSz002OybqaB5xDcko6KFDWHLXvHepO5kVhPm3yOAvoi+89PEPZMpINL?= =?us-ascii?Q?hqbM05TRjDsZ05A=3D?= X-Forefront-PRVS: 0350D7A55D X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CO2PR0701MB1013; 23:q2/arryrUC27NOPAnUo8tfeCGdfyoe4YxHUb2b9?= =?us-ascii?Q?gDt4qK36c8OPSMd0uIaIvLNOHrneDiob2U549kJ7bN6yxDL9BKLvKcWX5Abx?= =?us-ascii?Q?Ek9r8spQI9ZefelCfiGUap/HiwMjWHmczvY/aqaiG7o76WhLy9Oqs55kFVpI?= =?us-ascii?Q?useQNAIdDYDDls/3YjqcyYkXQouNHOfAZkbGZQ8H55loe54K7lwnoi9UpA7c?= =?us-ascii?Q?DIx8FEjuDHlGYGeLX4R/zh6TNaz7maFgXZMNBjgxFJpafIlyVM/8yrzR914O?= =?us-ascii?Q?5ize4Hs8Yu/Hs+65dECPeXxXwX/59nGpqq+rCiTGCC8NLydGNWwPt0BQSQt7?= =?us-ascii?Q?OdX7ouw3IItEv6XS3LKNEKrNNnGp/7OtaiXRhUkLev53SnsO1IXpYpF2uF3G?= =?us-ascii?Q?oNFzWStvITVZK6BKS0joNDiCQbfTfZIVakllP/RymPWf5Kb8+fuVzCQK5tDb?= =?us-ascii?Q?nWsnBmn/BSUmNxQjiSXmKXBoPxGafPCR0sV4EHvsQWNm2mB3Mxg0RQI8e9/w?= =?us-ascii?Q?31fQnZMShNNIJLiEITBc6oxrD8CD5v6pU3I2DReyyoIGgdt543cQrwb2fL2B?= =?us-ascii?Q?SvXVCQ7U4lFEnLHT9OOylcgIRos9cLf8rvq+qv4JJ14VUOVsEH4j2yCvKy8t?= =?us-ascii?Q?nXNOXlO7Ib0SlGTcSUU9AWN5AvNBIy8ovTYY5Nbof880YISe0NU5snUK5XFu?= =?us-ascii?Q?AKWVS5++9ZTLSs3synY9x5ihq8isJvOvx2MbJIwIonXNU7JhtgYrD9HDehOs?= =?us-ascii?Q?62ZDOu9nHtkCs8NjIgNYyQbVB65JJ035Rg9w5sxXdiXensRXukNWYuaHNPG/?= =?us-ascii?Q?3G0cl1QeUef0ZOaXeMqno+w/RIoVAd4knE2254tX8tgztNkqGIq0UjgzTI2f?= =?us-ascii?Q?R0pO8zky7xbkjg7p8CuOmLoeIAihhaNfq274svd70tIapsFSFnXogosHPV+A?= =?us-ascii?Q?HOq06AyKD8G3wf3iHE0uW+iwxPvbHYuXOyaAnM0/EEhlUdr5BH5yqwwwfQxe?= =?us-ascii?Q?RJF4dqNgZKiYffmWqhYhZysxU3ISLE1ikKpIOXivorfin/TO7cPjJRdHAaTj?= =?us-ascii?Q?jlFnL/9o=3D?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CO2PR0701MB1013; 6:YhRWUChcnFN2OsI/rWxprh7A5t9Ti2YXSe/MoIy7?= =?us-ascii?Q?Eph35OI4BdrSSicOO+TmfCdLm7xexpYu5vqkH9X7KhXtuwvEV3OMxtWC7rgC?= =?us-ascii?Q?aKT3WRM8WnnkqCAQA9lERH6AJgSIalPIn4urAZO/ZPMm1w1GiepME3l+6A/j?= =?us-ascii?Q?PhyHm0LP4zn2FQea36yx/C3rNDNewyVniTuiKccq3Cq5y47dkeRynsbwOtTe?= =?us-ascii?Q?AS2uURLY3E4j6g4TgTnlDN7PJZjlsXqQfEzU58oj3jbN+jD0S+i2Wzcg430a?= =?us-ascii?Q?HtGwPv/jY8imbSYd+6+ni/92YKgXc5LSnnlT9mblIYnL1Z34G0awukLNXO+m?= =?us-ascii?Q?83GndUDuGhcJKgfG5qD3hLhKVBA6AJBO5Tc6q1dQHz13VlO6ZIwEKp9GhC+Q?= =?us-ascii?Q?TwjNC8cmX+SND9fwHMro2w2pDGN3tyiJsyP+FGjglpctRczjLlBHxd/eIXOO?= =?us-ascii?Q?G/uN5GFqDUzIqRk7XigOqMCpADlTF7s8wNSnbtfbqrFIDlucQ0nS1FygF0oX?= =?us-ascii?Q?272a4mbpp2jrirhs/5wHEz2XACdHN56PfOOIQoKH4Ws22fFQyei3lmgjy1F7?= =?us-ascii?Q?Re7dNaQLLhAFzW1uhbUMNlZpx2tovXNyf3Lj0LAOkUJMbYSau7S6YYPEIwDr?= =?us-ascii?Q?aJF8kaNNPngT+srTfQ1yW5Y9UX5mMHQwL3y3FgWGKA8BdoACmkkAsybCGNMr?= =?us-ascii?Q?3t2KkxfijeE5dcMmYfktrTptW799IeWVgewV/OI0dmFgz1//4g0gWTI2UV0l?= =?us-ascii?Q?1QWcfSic+lmVw6cvTixGnx9shOCoxcJI8b9e6yAKFON9gVNRO7MSzUIWmu5M?= =?us-ascii?Q?HSbrTPnloVMtakeUjZkwW+WubGVkn4ZYbKY9/F6G7j0U/neR1BmCS6ccDDEi?= =?us-ascii?Q?Rgy+GB3f3iip/NIVhqHR3KMosjm8N+Kjsj2EPbrgtbp4bP/r3cqdUHuzrSmh?= =?us-ascii?Q?ZoMdIdjzh4HIuuPjD23FI5LR4WLAifMadOiEliEv9fZPbn8VhrGZPdZuPabH?= =?us-ascii?Q?l2o=3D?= X-Microsoft-Exchange-Diagnostics: 1; CO2PR0701MB1013; 5:uVs7T2RGtqrN1bw9GddFAXrYZVw0RJdj7lEXcKT1RuWVmxl4AyC36Filx9d+62dEmOOHmmyTnrn5QtBxt7BKE9ndnZsic7CDv4Csiyko7uxXFfyJnn2VWHqrC0m6qX01+8yEFtOIzoIobnqONwoE7ZeLrbe+3xa28PKRY2ud+1vJ8MszeQ1vozfIttRv8hrA9An82wC4t0O3R/qe+8B/eClvdvE7UvnMEbQVfSZjAZ7SJ8MelFa11nqxckDhM1ewThBW6P4BlyNW597/9CdRhUiwNR04/lOVEj/wQi49Hd41gM3mWvZPAUEEH24/p7Lx1Utyf2uGdCgdQh824nW8HqAng3+shYBCUbXUvL3v5ktTSld/coZPyi+QZaSxkeEJEOkdeybPz6BvsVWnV0Ss4RItqny5X5RV6ANh5T9bl5x4+qCrGrN3iAg0tregnAFeFnVnmSWRk7DtU4bJZXh5LxXCy4uXsxd98qAmlHTRoCcOgJSd+j6bok2ASn/ZG5pA; 24:232hKfFaoJ52XT87euzujSZX++BcrV719XH890Q4e4tsZBbQCv0TnJ7v0DjyMNa8D4NHyffunqG4fzwXHlRhXFKbaWwxN3Dl+Qgv4F9F2ms= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CO2PR0701MB1013; 7:RTUgg0892s8iozFv2oh9uwvoORgrrDhUtZrA3PLU9pzrNCQRneUJZfT9bYrY++mAt0hulSNUI/VLBKj70c0Sox6XLVw0JnL1l7oTvlxMhz0x4Rppv/CwdyjbOuUGKHR7RJyM7z0K3UXGmomNrQ4ccGSTZIxXfaf2QCO5IqkK56S6xAlp0ohTCuINekbQ5hfc7FBpWpXaq9gzFb4AVbeTdSgoQ4mhJE8TBrhM3zSxUQ5dKxPa0+8raDBPPsfttTaEuGM42WRzyQGaf3QlKQckPomXREAWN8WmnkiF6SGzkecCrZBoSJRpZZ7G/2IeZFbU+tlX7kH7SIB+4f8CiI42bx0zTezpmarazZS5NKoDhrppzpPi8j0Q+vO3qI27V1JAnkKDSD5KuoiPw3ClapuJDGNZ5Oj6VfFTiSzBGIVYJ6CfoaZ6BRDyAru42pzkaFEiFHrLkivfnfAx03gPCITjFwSPNHMF17oMSISKcFCvFZo349lXs3EVaXtJ27Q/CWjVVFLFopY70dr1Nfpt/3oO3HLus+0yFYibhQhiKIPaeeqSmGn9gOCXolwQLXm5tGWpJOuO5u1hGo3y+b6rm7LS32iMTYHIVQAlXJ1okAjafmn0vca647+SOCb++EHTyXbWxDyrHjdM2QUgUBgCkzHLQQ7+kdW57HCtbJ7p2dYzH/yKsDsZH2tvdQMy4M4W0fWl+EO6pGgXO++L4e35euT6+I8kwgpLjD2A+kOrvuMnkrrQtxrkiAg/+ACotwNeCJY7IR6bG00RW3T/TaZjU/S9dkdwJDmw9ZPQHOSzENMC6zg= X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Jun 2017 18:12:11.5222 (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: CO2PR0701MB1013 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 This patch takes care of active/passive disconnect flows. Disconnect flows can be initiated remotely, in which case a async event will arrive from peer and indicated to qedr driver. These are referred to as exceptions. When a QP is destroyed, it needs to check that it's associated ep has been closed. Signed-off-by: Michal Kalderon Signed-off-by: Yuval Mintz Signed-off-by: Ariel Elior --- drivers/net/ethernet/qlogic/qed/qed_iwarp.c | 90 ++++++++++++++++++++++++++++- include/linux/qed/qed_rdma_if.h | 2 + 2 files changed, 91 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/qlogic/qed/qed_iwarp.c b/drivers/net/ethernet/qlogic/qed/qed_iwarp.c index a5da9fc..84bcda3 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_iwarp.c +++ b/drivers/net/ethernet/qlogic/qed/qed_iwarp.c @@ -496,6 +496,8 @@ static void qed_iwarp_destroy_ep(struct qed_hwfn *p_hwfn, int qed_iwarp_destroy_qp(struct qed_hwfn *p_hwfn, struct qed_rdma_qp *qp) { + struct qed_iwarp_ep *ep = qp->ep; + int wait_count = 0; int rc = 0; if (qp->iwarp_state != QED_IWARP_QP_STATE_ERROR) { @@ -505,6 +507,18 @@ int qed_iwarp_destroy_qp(struct qed_hwfn *p_hwfn, struct qed_rdma_qp *qp) return rc; } + /* Make sure ep is closed before returning and freeing memory. */ + if (ep) { + while (ep->state != QED_IWARP_EP_CLOSED && wait_count++ < 200) + msleep(100); + + if (ep->state != QED_IWARP_EP_CLOSED) + DP_NOTICE(p_hwfn, "ep state close timeout state=%x\n", + ep->state); + + qed_iwarp_destroy_ep(p_hwfn, ep, false); + } + rc = qed_iwarp_fw_destroy(p_hwfn, qp); if (qp->shared_queue) @@ -1956,6 +1970,61 @@ int qed_iwarp_stop(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt) return qed_iwarp_ll2_stop(p_hwfn, p_ptt); } +void qed_iwarp_qp_in_error(struct qed_hwfn *p_hwfn, + struct qed_iwarp_ep *ep, u8 fw_return_code) +{ + struct qed_iwarp_cm_event_params params; + + qed_iwarp_modify_qp(p_hwfn, ep->qp, QED_IWARP_QP_STATE_ERROR, true); + + params.event = QED_IWARP_EVENT_CLOSE; + params.ep_context = ep; + params.cm_info = &ep->cm_info; + params.status = (fw_return_code == IWARP_QP_IN_ERROR_GOOD_CLOSE) ? + 0 : -ECONNRESET; + + ep->state = QED_IWARP_EP_CLOSED; + spin_lock_bh(&p_hwfn->p_rdma_info->iwarp.iw_lock); + list_del(&ep->list_entry); + spin_unlock_bh(&p_hwfn->p_rdma_info->iwarp.iw_lock); + + ep->event_cb(ep->cb_context, ¶ms); +} + +void qed_iwarp_exception_received(struct qed_hwfn *p_hwfn, + struct qed_iwarp_ep *ep, int fw_ret_code) +{ + struct qed_iwarp_cm_event_params params; + bool event_cb = false; + + DP_VERBOSE(p_hwfn, QED_MSG_RDMA, "EP(0x%x) fw_ret_code=%d\n", + ep->cid, fw_ret_code); + + switch (fw_ret_code) { + case IWARP_EXCEPTION_DETECTED_LLP_CLOSED: + params.status = 0; + params.event = QED_IWARP_EVENT_DISCONNECT; + event_cb = true; + break; + case IWARP_EXCEPTION_DETECTED_LLP_RESET: + params.status = -ECONNRESET; + params.event = QED_IWARP_EVENT_DISCONNECT; + event_cb = true; + break; + default: + DP_VERBOSE(p_hwfn, QED_MSG_RDMA, + "Unhandled exception received...fw_ret_code=%d\n", + fw_ret_code); + break; + } + + if (event_cb) { + params.ep_context = ep; + params.cm_info = &ep->cm_info; + ep->event_cb(ep->cb_context, ¶ms); + } +} + void qed_iwarp_connect_complete(struct qed_hwfn *p_hwfn, struct qed_iwarp_ep *ep, u8 fw_return_code) @@ -2009,8 +2078,27 @@ static int qed_iwarp_async_event(struct qed_hwfn *p_hwfn, ep->tcp_cid, fw_return_code); qed_iwarp_connect_complete(p_hwfn, ep, fw_return_code); break; - /* Async event for active side only */ + case IWARP_EVENT_TYPE_ASYNC_EXCEPTION_DETECTED: + if (!qed_iwarp_check_ep_ok(p_hwfn, ep)) + return -EINVAL; + DP_VERBOSE(p_hwfn, + QED_MSG_RDMA, + "QP(0x%x) IWARP_EVENT_TYPE_ASYNC_EXCEPTION_DETECTED fw_ret_code=%d\n", + ep->cid, fw_return_code); + qed_iwarp_exception_received(p_hwfn, ep, fw_return_code); + break; + case IWARP_EVENT_TYPE_ASYNC_QP_IN_ERROR_STATE: + /* Async completion for Close Connection ramrod */ + if (!qed_iwarp_check_ep_ok(p_hwfn, ep)) + return -EINVAL; + DP_VERBOSE(p_hwfn, + QED_MSG_RDMA, + "QP(0x%x) IWARP_EVENT_TYPE_ASYNC_QP_IN_ERROR_STATE fw_ret_code=%d\n", + ep->cid, fw_return_code); + qed_iwarp_qp_in_error(p_hwfn, ep, fw_return_code); + break; case IWARP_EVENT_TYPE_ASYNC_ENHANCED_MPA_REPLY_ARRIVED: + /* Async event for active side only */ if (!qed_iwarp_check_ep_ok(p_hwfn, ep)) return -EINVAL; DP_VERBOSE(p_hwfn, diff --git a/include/linux/qed/qed_rdma_if.h b/include/linux/qed/qed_rdma_if.h index e9514a6..01966c3 100644 --- a/include/linux/qed/qed_rdma_if.h +++ b/include/linux/qed/qed_rdma_if.h @@ -474,6 +474,8 @@ enum qed_iwarp_event_type { QED_IWARP_EVENT_MPA_REQUEST, /* Passive side request received */ QED_IWARP_EVENT_PASSIVE_COMPLETE, /* ack on mpa response */ QED_IWARP_EVENT_ACTIVE_COMPLETE, /* Active side reply received */ + QED_IWARP_EVENT_DISCONNECT, + QED_IWARP_EVENT_CLOSE, QED_IWARP_EVENT_ACTIVE_MPA_REPLY, };