Received: by 2002:a05:7412:31a9:b0:e2:908c:2ebd with SMTP id et41csp5504596rdb; Sat, 16 Sep 2023 22:49:30 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEGETYA/HBIphD+Q7XQv240t7v4t+RNQllTbm61Xb2IRNbf5iFCh14FDDRZ+P5QRcsxW6JH X-Received: by 2002:a05:6358:7251:b0:133:b42:69ca with SMTP id i17-20020a056358725100b001330b4269camr8230567rwa.18.1694929770414; Sat, 16 Sep 2023 22:49:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694929770; cv=none; d=google.com; s=arc-20160816; b=brEbN5g8823JaKkQI2Rl3hxMMUiSJ+jDgQujx5z3mRRA7Dp12osI9Xx+aULIXB1W1x HDJWUVqfR74RPqf5FUsiyObTl8R+LnOh2ADACKkmIKLlozJLxwrlzIcwsu6xb6r/tVHe K98vrTVuOibXznvT87krYl6dq78edH4CZFTUEEulHOOORSvdHhPlE+99rX65/FqRMAwX 3XCCJf8UgZ9BYRVVAOpJk2m4JRPltMh8/ru9EVTbXxt4dTpnKFARt9/ne+fOLkBf29eV lVQ7csT87kBRYW/+FeDufW43epjaQaSk1PfBov2afis9iogp2Mwm2VpguCalw255NSdx NDUg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:content-transfer-encoding:mime-version :message-id:date:subject:from:dkim-signature; bh=pXq3ztXMbHolyHBrYC8jW9R2bypQ+SZTONMaVPi85RA=; fh=+X1ckSXbU3NoNIppn18DOiEcIy9ZoAK12DX48ZHLNCg=; b=WSQcIjj9esVxcUWEkK3j1OuiZvB9AzhU6b0YSzjBh5Pnb/Rn7TMVTYEFGPGRd15sSE 3HKVirzJfnYS9/PvUyY6TAvZSFy3Lv+gkvluKvLXXKCDIgMWhbmSVGqxn7MK5LSJrKGB zoCmS/cgj9dnsZO5aaWw5+D4Yc1wiGbdv51l0rVSWT/bqYWO0usfHNOq2+zvpIgB2zZq e5ObCWvOs/lWD6B4jC8WyBC7zSPo+d5N+rxovwUyGGtTTIa1OZAUqcjHtZBsf9Xe45CB Pfajh/cd98r5m9znFQ4OLlBnFxJm656nesZKyHqWx405lZrxjNnIzyuTgagPcvArmfc8 yYzA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@tessares.net header.s=google header.b=5tsFUfaP; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.38 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=tessares.net Return-Path: Received: from fry.vger.email (fry.vger.email. [23.128.96.38]) by mx.google.com with ESMTPS id i15-20020a17090332cf00b001c329a93c0fsi6434852plr.418.2023.09.16.22.49.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 16 Sep 2023 22:49:30 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.38 as permitted sender) client-ip=23.128.96.38; Authentication-Results: mx.google.com; dkim=pass header.i=@tessares.net header.s=google header.b=5tsFUfaP; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.38 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=tessares.net Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by fry.vger.email (Postfix) with ESMTP id C90EC83BEDDB; Sat, 16 Sep 2023 04:09:06 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at fry.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239055AbjIPKy0 (ORCPT + 99 others); Sat, 16 Sep 2023 06:54:26 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37328 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239069AbjIPKyB (ORCPT ); Sat, 16 Sep 2023 06:54:01 -0400 Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com [IPv6:2a00:1450:4864:20::32c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 89541CF7 for ; Sat, 16 Sep 2023 03:53:55 -0700 (PDT) Received: by mail-wm1-x32c.google.com with SMTP id 5b1f17b1804b1-404fbfac998so2931865e9.3 for ; Sat, 16 Sep 2023 03:53:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tessares.net; s=google; t=1694861634; x=1695466434; darn=vger.kernel.org; h=cc:to:content-transfer-encoding:mime-version:message-id:date :subject:from:from:to:cc:subject:date:message-id:reply-to; bh=pXq3ztXMbHolyHBrYC8jW9R2bypQ+SZTONMaVPi85RA=; b=5tsFUfaPGTLlJ7/oVRRE8JTabmYFF75Xrm3yKL49kUFdAE11AJIzmb7PLwGYIsr5N5 adAcJgLZYSxKNW6iflD3ZjoLu4xhkHosb5mNI0QnZwNyl43qEcgl0wDfO4VwxeSOdRuG MvV9aC3SXbuzclpPetvV4+UCnrlGy9fcQaBsAkjTDeA8dHyS/M7O/D8bByV5M18mAiCD jN5JTp5bI+oOGCM5UPqUwJrf9GsWtCsgFsLdZ/taXIkLqvgTZph1DLfvjE1EwMjN5StX 8kyRi7/NIcMeYcixjutLi0e+mVVN8cvZ+az/acaV8bDKMARPLd76ooaeKC0PxpkLHAkA gNQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694861634; x=1695466434; h=cc:to:content-transfer-encoding:mime-version:message-id:date :subject:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=pXq3ztXMbHolyHBrYC8jW9R2bypQ+SZTONMaVPi85RA=; b=E1A39+2fOO473H24paPshWESGnd1VkGl7oEMAHiwocIGCddncTHWC1u1qLDDrZs/9m uA/r1n++WLL/0B5vmmHL2PM56yQOc8kQ+eevhU8Bz3EdxdjIdEL5IRQVp8tmLBmqG9+C 6SjmZn/79hxo7X1/t8l7M79XJoWdfNR1Hte+LfwfUS8VVrsi8Wtp24Sjfv7prFcjHD6k 0LoqUdh2IIw6KcKyikjOXyAcQjIcrLgg6nfTDAHG9dhqg8FtyVOfHHRAgA1KcLvTkSbx brGkC3g6jznoFgn+ZZVcL1O2r7QUnJ3fs4cSvijx+HJjQcrY95v07Qo6jWrumU8DhEl/ dzPw== X-Gm-Message-State: AOJu0YzynPQJJxKdIGk5t0he3sWr9tBfih1Xy3H4Fty7nB7JskwpDOAF TgJltwsR2Gy3cCCaxW0EukCOoA== X-Received: by 2002:a05:600c:2299:b0:403:9b7:a720 with SMTP id 25-20020a05600c229900b0040309b7a720mr3942992wmf.1.1694861633854; Sat, 16 Sep 2023 03:53:53 -0700 (PDT) Received: from vdi08.nix.tessares.net (static.219.156.76.144.clients.your-server.de. [144.76.156.219]) by smtp.gmail.com with ESMTPSA id z20-20020a7bc7d4000000b003feae747ff2sm9900743wmk.35.2023.09.16.03.53.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 16 Sep 2023 03:53:53 -0700 (PDT) From: Matthieu Baerts Subject: [PATCH net 0/5] mptcp: fix stalled connections Date: Sat, 16 Sep 2023 12:52:44 +0200 Message-Id: <20230916-upstream-net-20230915-mptcp-hanging-conn-v1-0-05d1a8b851a8@tessares.net> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-B4-Tracking: v=1; b=H4sIAPyIBWUC/z2NywqDMBBFf0Vm7UAe1NeviIs0He0sHEMSS0H89 6YuXJ4L59wDEkWmBEN1QKQPJ96kgK4r8G8nCyG/CoNRxqpeP3APKUdyKwplvNc1ZB/wL7As6Dc RVI3qre2eujUdlFyINPP3uhqhyDCd5w9FK11VfwAAAA== To: mptcp@lists.linux.dev, Mat Martineau , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Davide Caratti Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Matthieu Baerts , stable@vger.kernel.org X-Mailer: b4 0.12.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1934; i=matthieu.baerts@tessares.net; h=from:subject:message-id; bh=Qibb+XUG3Fu5XjpF54vZjeB9fuXW430sjfoEwViSqns=; b=owEBbQKS/ZANAwAIAfa3gk9CaaBzAcsmYgBlBYlAmJev8waCdAk/HQ4mawHPUUqTslGS/EMGx HFwgFDm9aOJAjMEAAEIAB0WIQToy4X3aHcFem4n93r2t4JPQmmgcwUCZQWJQAAKCRD2t4JPQmmg c10dEADHm11WwquREihNaEZRxVI4RRl2js578WKR9JZcqmezDjdgPplnVNVpoue7dPM/Bi2PEx/ 11Zfs7E3/oZKZQqp8bmHYIUrriTON8aLVCck+TODLiAvvQzMJcBrELpdQP279PcSNWUpzHrDzNZ Dk0iYs/el2szXTp3dJi3PVW1KQGibEzAy8YGvnXdvKRUOV5S2lPBPEuRA/XRJlwUs6vFFuPfowe Ef80nyrbn08eGgT45DnJ2UBilgOxKP5zuFHvJ4Ik3K10W6wa7IPnvaKobQPaCByV7e57petq7Ww HbZMbzoXyhJqVXTRr06hy8b/G8tp57fzPDDWs5SLkYI+i8a9TV166eIjRnpsEaS4M184G1LaxnG rfbNrdbrj+yL8EClR5qXdPnPfRGnHgCMMoHVvF29uAX1B7qjfcefoF2Ehy0wRSpZcYhjyosVRf2 f9btUL/sbOvZLPL1Cq7QwBfCANDYMcl86hRqFSi+7+XyoRltbaiJa1aHdzExWP2jZd27NBM4nsZ DacKWknb/Z/wjVToRDlCt08zjObRXjXmGWxjwQuHs7OCklWVNesfuqnxTH8jxEtHJwCKbyFOVce HEINmL2Hx10EsrSyDcQKQMH0WbTtqHWkIMpP9E6rw7ZTACV+jUnyWCdRWPBVpwx4wigLIaLRXps rO8r4imsJOL/+zg== X-Developer-Key: i=matthieu.baerts@tessares.net; a=openpgp; fpr=E8CB85F76877057A6E27F77AF6B7824F4269A073 X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on fry.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (fry.vger.email [0.0.0.0]); Sat, 16 Sep 2023 04:09:07 -0700 (PDT) Daire reported a few issues with MPTCP where some connections were stalled in different states. Paolo did a great job fixing them. Patch 1 fixes bogus receive window shrinkage with multiple subflows. Due to a race condition and unlucky circumstances, that may lead to TCP-level window shrinkage, and the connection being stalled on the sender end. Patch 2 is a preparation for patch 3 which processes pending subflow errors on close. Without that and under specific circumstances, the MPTCP-level socket might not switch to the CLOSE state and stall. Patch 4 is also a preparation patch for the next one. Patch 5 fixes MPTCP connections not switching to the CLOSE state when all subflows have been closed but no DATA_FIN have been exchanged to explicitly close the MPTCP connection. Now connections in such state will switch to the CLOSE state after a timeout, still allowing the "make-after-break" feature but making sure connections don't stall forever. It will be possible to modify this timeout -- currently matching TCP TIMEWAIT value (60 seconds) -- in a future version. Signed-off-by: Matthieu Baerts --- Paolo Abeni (5): mptcp: fix bogus receive window shrinkage with multiple subflows mptcp: move __mptcp_error_report in protocol.c mptcp: process pending subflow error on close mptcp: rename timer related helper to less confusing names mptcp: fix dangling connection hang-up net/mptcp/options.c | 5 +- net/mptcp/protocol.c | 165 +++++++++++++++++++++++++++++++-------------------- net/mptcp/protocol.h | 24 +++++++- net/mptcp/subflow.c | 39 +----------- 4 files changed, 130 insertions(+), 103 deletions(-) --- base-commit: 615efed8b63f60ddd69c0b8f32f7783859034fc2 change-id: 20230915-upstream-net-20230915-mptcp-hanging-conn-0609338b1728 Best regards, -- Matthieu Baerts