From nobody Tue Apr 30 16:53:55 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:ab0:35eb:0:0:0:0:0 with SMTP id w11csp3164335uau; Thu, 23 Jun 2022 07:54:35 -0700 (PDT) X-Google-Smtp-Source: AGRyM1uKG/3JW4MexKriLqbr26EqWjwAOh390L9JtHvibm6Dub6Y+EEHQ8L11hULbBfZP+BokHAZ X-Received: by 2002:a05:6870:d10c:b0:102:820:126f with SMTP id e12-20020a056870d10c00b001020820126fmr2720124oac.224.1655996075820; Thu, 23 Jun 2022 07:54:35 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1655996075; cv=pass; d=google.com; s=arc-20160816; b=opmjZbwzy558nGy6FJ5GYa+eEpsHjmBwVV7EqXo0Gr0RNW+40K2ztfmbMRkBfrXVfp OOmGM5eC4yFDnEN5Qu0scfTcqcua/0b2AyAzcVA4oZUWmhzwYdyKB05XD6wu8bUGSgRg UFL2Ogzcpp/fqVdbFyXSWxc/FplFe6QufEG+QrJD+swqSrtET7orw8H9TmBtVrmmBK0M EgW6s09643L3mGDFKJwBBvrKUE8hpQOzBT8PkB8RcKP51wNbmBcUJVBfFuItE2K3Nv8A RtAByxfzfTGAJ4bH+wKl+BA82cJ52CH9Exgt8bWdPVyUP5s/zF3oAtfRqzmoh6sbSnE8 sbnA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:list-unsubscribe:list-subscribe:list-id:precedence :content-transfer-encoding:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature; bh=0ZB4xMH76SkwxyNpUeggaReNexgplLy3BOZmanOZBwA=; b=UVdoFu++a6gZsitdbTi/t5pIYlQ+RxdqdhnZgVruuLJLAuhTUU/t5ZI3e0AjoNOTrI cM9CvPYXkvRu0gvWwUIUP0zztuf3HE0O9zzALx44IGi44Hcpj7caU+6oNUeoUpmxveRj Ug4jnblo7EGzUMGTM8dwRBw915RNFSDHpHKSrADcBcn0N8kSkNXQ5RNc34b/hG3n+554 IQrYfERbuWpW41E3WQGDWN4R/OQabrkiWcGz5VDGqTlDgsf8ZO/VHRiUe+KLwdSImqGg u2Vgu6aLHBMd8wbuI+XlfbZs2NVTmqVFs/Ve7E0Ir1vvR+osgqr0OC+grjWKJK7UMnuL t6NQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@suse.com header.s=selector1 header.b=ULmpsJUN; arc=pass (i=1 spf=pass spfdomain=suse.com dkim=pass dkdomain=suse.com dmarc=pass fromdomain=suse.com); spf=pass (google.com: domain of mptcp+bounces-5791-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.84.19 as permitted sender) smtp.mailfrom="mptcp+bounces-5791-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Return-Path: Received: from da.mirrors.kernel.org (da.mirrors.kernel.org. [139.178.84.19]) by mx.google.com with ESMTPS id u25-20020a056830119900b0060e39daac76si20135769otq.219.2022.06.23.07.54.35 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 23 Jun 2022 07:54:35 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-5791-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.84.19 as permitted sender) client-ip=139.178.84.19; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=selector1 header.b=ULmpsJUN; arc=pass (i=1 spf=pass spfdomain=suse.com dkim=pass dkdomain=suse.com dmarc=pass fromdomain=suse.com); spf=pass (google.com: domain of mptcp+bounces-5791-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.84.19 as permitted sender) smtp.mailfrom="mptcp+bounces-5791-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by da.mirrors.kernel.org (Postfix) with ESMTPS id 8B04D2E0A0F for ; Thu, 23 Jun 2022 14:54:35 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 52DB843E8; Thu, 23 Jun 2022 14:54:34 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-eopbgr150058.outbound.protection.outlook.com [40.107.15.58]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 792771FB1 for ; Thu, 23 Jun 2022 14:54:32 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QoCLN9F+wmybiPnKFu3LsQ5w3urLPTw6iFbVhwXLaTWLwuTf6dKzRXq25jN9elWwo4SbGQpfnZmd7iVplkfywFhvLItlFTDD0ZVMOGJbcVJwvLMdzpgiQQSp/8MqEIRQVM+uvUM4DiocKtXhmF0e+U87sLORj8jn7/ZSLLFSpwekkJBGoIugRTbBS2GEzY79Ss1pR0K2xxHsqIDWH4skY9nL9jQYFX3HkfTdUPCReo5ycSyvopRDTpNShfP1IE1HYcjoSQNrJYgk3OJbudaDSz/++kMlnphcxMYsWZkv8LAPnhkzUAEqtKMp9z7steY0OTyLxMbQymCM9FipoUgzkw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=0ZB4xMH76SkwxyNpUeggaReNexgplLy3BOZmanOZBwA=; b=T41JRHlzxKsblb4GTwgqw7l9P8I/j03BDev9CwiCGLE/0q40hX1uF7sVuiepFEkkNySXm1s5ZnP8Q1a31HV1r/XdiyOs70rMLtTxInWIswrq2w/IFxFLKZ1RJb2bzEE5C5nDmMRDV3lctHDMytVisWI9PXRhyMp00crvsRP73tWEWPLX1NdSxyrX7iRPp2TqPDV9RO8n+6QhM/aH8XD70j52O8iJMBDB5FaIMdxcZf9Of3reCSttYcPI4FivGL3F0STc25fB+fooim1OLSXNnWSfyOwJqf65Tb/u0MZEdyfDglf08JWRpu6JY+aiReZ26FoPxs/8I/7vbN6tdy2fpA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0ZB4xMH76SkwxyNpUeggaReNexgplLy3BOZmanOZBwA=; b=ULmpsJUNYX7KXLvRdz3J2BqLKswlUdzGa8K/7KwevIRR/FoGc5BXT0pfatZQDxGGsJnUays5+/ZAhGHFRiQXu+FiT2F7zbpINMWs4vPVl4FHO4RMkCy4YPY3VDH+7VUnH7CDyfBSpq9socUbTjpqNILcj4KIlHmnWSE49q/ivyVps1dDUmWLBFkna9tvGi51FZVyuuIoBAjKU80TdpmbjmGGd+hj+orhzXhyPtj3PcPjezXHMvxQb2NHzzcgLZYws7G1QUSIoLf8i18tU4BJDyNm+mufql3NDQMu8Mc2GopYu5No/I4tMM9VNFGM7qvlMs7U027HqHto/7TBhffg2w== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) by DB9PR04MB8299.eurprd04.prod.outlook.com (2603:10a6:10:241::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.15; Thu, 23 Jun 2022 14:54:30 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::8002:50a5:a57a:d8fe]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::8002:50a5:a57a:d8fe%5]) with mapi id 15.20.5353.022; Thu, 23 Jun 2022 14:54:30 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v9 1/6] Squash to "mptcp: add get_subflow wrappers" Date: Thu, 23 Jun 2022 22:54:17 +0800 Message-Id: <2ea43145e988162d2a778644796c1b8d7d91697c.1655995770.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR06CA0211.apcprd06.prod.outlook.com (2603:1096:4:68::19) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: bbc2cb6a-2fbe-4ab2-1dce-08da5528469b X-MS-TrafficTypeDiagnostic: DB9PR04MB8299:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: KkqBSVyry8L8hDwNuyIPe5n2hORi/qWA/Ai93NS4oKRX0BLzNXamemsft014mDkIIaZ8ULQ3n/qxUUB0X9XCGhPsISYGyn+8mtYzoVv1roor+39xPJJOPZvisKPmHFgQbSDt8lPdiai9nyIBQyy8YrVUeau7DCcdvtgWYHevhuMQap6RLuAYLwkL7umGWlLeP9pZyWTMOSWFtBEkZ9pZc/Hrn/ufecHFdPvRjEDM0iUPqiydboT7Q6JPVhNee6NFLlnF7RS4yDBQSVniJAHgMHnbvv0kk0OFgsR/92f0KsmkVQwBXmjvXsOFU+3bWRWZUXwTxFzkulrIOx4ooJFReHnPTXNWEO9bU1G9+DyBxZfmEF7U1b9f5+XZGHnGSCaTVW8mVwuRktIWrhoheR8YuqH9JXLhLxS6BxrlxSHRs0qvv1P/nFIVgiUCL2wHaEltiYV3l5lJ+RbS0ZXm36w/p9qQObrwVWNIPZhwaPkq82i/A6QwFnU63Z1g2HPOJniTS41WYXtxK7gEbt+givnOTeewgyfzIT+gPynhVL/3JYbQF97/CHDeU1sO7Ne0QmUWdq5wT6K6h5XHP0T1p0ysoRhbOpEGhE7D33NvHdCy8iBkcvJ9/7vptWQ2nj2m5zKTctr5pvovUl4LNVF8dsS8AZ4NfnUxbizpA2vndCHhfSC2cuj6w2L45MUUOLo7tnwlgbU+9HAA11RFMU4A+OG0f0+0G88CWYR+2lbo4ZnlDxyRhmxFWFJYWNEWhy65NibH X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(346002)(366004)(39860400002)(136003)(396003)(376002)(66946007)(66476007)(83380400001)(4326008)(8936002)(8676002)(5660300002)(316002)(66556008)(2906002)(6916009)(6486002)(478600001)(36756003)(44832011)(41300700001)(6666004)(86362001)(6512007)(26005)(186003)(2616005)(38100700002)(6506007)(107886003)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?BTWs/4lk6790D/YRx8aVfI5PV986a0xavzLhVoWJ06v0u1gX4qJR+jKObmPb?= =?us-ascii?Q?UDI2km8ixCqcMC6LFeynuHepE+QlICHFwKb5XGDPh4uFmaJj25DHiiN5Wrv7?= =?us-ascii?Q?jfHpNbvCW39tADgqMkHUWvbra1wCgwGwjbjtrx1I4IER+mbJ/6DjeIG4vF85?= =?us-ascii?Q?mWpFXgItLNJV4CpVrYlzs8r8xcDMx7LF8JkHpg5nbECsG2tL2Fzc5k58j48V?= =?us-ascii?Q?tyoenzdjQYUXJTrxBbIYj51gfdwcr+kSN6eF5+ifPxCwpEiRxr1HlTJjm7BQ?= =?us-ascii?Q?llFxgrDwFSGryH4cDFzObZHcKvYirUMLK8zHwSe3HVAmPFPy4x3FQTo2y8a/?= =?us-ascii?Q?znQBQXVkl5c3q7b5pUWaT2niaQWep2HI+6JKlyiRJ5ItQ7WYyJDgwf+DIgZP?= =?us-ascii?Q?GfR6CDvhX0RaT+Y+y23SIb7iPlDxyLDzt39yzBZlELZKAeUi1fdrhRUTMGqX?= =?us-ascii?Q?Op9lTcG/qSvmKfMorGvkCYdFyBpHEPLrdozjc9bb4mQBcx2kL0S6Uq13LPJO?= =?us-ascii?Q?8bR6A70JrHO+8DzXcBRbNGLgZNW7avqhVkmTzBOrDnoNQyo1w3/GjwWFiisR?= =?us-ascii?Q?hiY9HB3g+qOT6MJTZHnT5Abx5Gx9gKVr5eqk4YtrQ1WVvdQpdudEZK54MjNb?= =?us-ascii?Q?Iw9l6Zr0jbANtv/fI08yABRcud5MgLCsSQueT3bhZLQ6kmhjXk2NESH2Yer4?= =?us-ascii?Q?+fkQMNDJrOC8rlFVbfxXbNWsE42fO/9mfRoFB/XI3+G/hiBAwXvGeykUVvzv?= =?us-ascii?Q?4N1ketqfIySTevCydNPc0uW3sQjQDZr7lgm7XK9kRcB43lNKl5oMuNyp1X5p?= =?us-ascii?Q?rD3RhFiernwkh8UzVpre+f/L2EpDeI5pscNFFub0i3HK1rJmsjlteMmakhfX?= =?us-ascii?Q?4fBMnZW83BJxuOtzN3TBXUdkZX+pRNCU8Xshxz7tROgpDIHkYS+Mse0Av01k?= =?us-ascii?Q?2dZXoe7vK8EDU1k9Rtq7tGCXS+GQXmF3J0YkgGA1uqEWt8TBvg/KBLcm08in?= =?us-ascii?Q?JzxaVI4viIu5T3wkW/nZMZNszHuCkRIt0BNpuuIfzr1eJzVG8X77ABBwUCAb?= =?us-ascii?Q?siqnMaty4eYQ6LiMBYk/imNjNg2wurIYJ6boIbpaXbgNzjPXCdrVfmsAsPSB?= =?us-ascii?Q?g9DBBtXiHpneGKjUmvi2TWO9PwlLGh+ClOUg3UqFGswY0Zlep/1iz3d7TF3j?= =?us-ascii?Q?nDzMZQ99aMK6T/93OGHKKveg+uAzrEDUs6W4btwy4A7dKeL794aXIRCd4wJn?= =?us-ascii?Q?W5xc9lFc2znMLZevkd0UIJzEG1x+HZcY0bA5UY+Ytfj6GRvSZ77xzV+Qi8QE?= =?us-ascii?Q?0uaXf1zGxLv39bAY3X1y16d5MLR0j9Ukmj6S5IvAMa6OdbU33RhxzDK6zJCr?= =?us-ascii?Q?GuirCnYAFaBBoK/x3hsFCU4pWlQ0wv7NNmdM+yjPeI5gmqlqDwDZ6FqV0Z8p?= =?us-ascii?Q?iKLbrAcRpX9ew9plA3csu0DXM7L09MNH4cJ65zJH7P7YKs0YLiQiIeqMM88a?= =?us-ascii?Q?XOFqQCxDfLbpnhDbrr8UEta1JQzkKhPq9vJHnCtfqAQNNZuVaiFe6EJgj+E4?= =?us-ascii?Q?dSOk5GAzKXn+Nh4DncZVXvenw0yWORaD3PUTsD7CTDmWmcfGBWxfTOkBKKQm?= =?us-ascii?Q?DIuxKM5jUc7RCl2tqVo1dVXkr5l5kWFgFDRhNot/Oy4JJ1bUQUcX7NnuLc93?= =?us-ascii?Q?Uw2r9WN7/38U4ttkLvJCG3Tsd7YRoDXM1LUK0YlffH+zUZMsrnRGSJDZNlmq?= =?us-ascii?Q?W7aSOFuRqtxzzo+3/6TdIBdOmlwNACA=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: bbc2cb6a-2fbe-4ab2-1dce-08da5528469b X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jun 2022 14:54:30.0469 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: XNqW/at1R8MWaqR6Drn10tJFdomQ3meZKUtuU0BAuLJitM+0uh5nRbIt9Yj4NoMp/z/7jtJXfmzt0+7ShH7oWw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR04MB8299 Content-Type: text/plain; charset="utf-8" Please update the commit log: ''' This patch defines two new wrappers mptcp_sched_get_send() and mptcp_sched_get_retrans(), invoke get_subflow() of msk->sched in them. Use them instead of using mptcp_subflow_get_send() or mptcp_subflow_get_retrans() directly. Set the subflow pointers array in struct mptcp_sched_data before invoking get_subflow(), then it can be used in get_subflow() in the BPF contexts. Check the subflow scheduled flags to test which subflow or subflows are picked by the scheduler. Move sock_owned_by_me() and the fallback check code from mptcp_subflow_get_send/retrans() into the wrappers. Redundant subflows are not supported in __mptcp_subflow_push_pending() yet. This patch adds a placeholder in mptcp_sched_get_send() to pick the first subflow for the redundant subflows case. ''' Signed-off-by: Geliang Tang --- net/mptcp/protocol.c | 4 ++-- net/mptcp/protocol.h | 2 +- net/mptcp/sched.c | 56 +++++++++++++++++++++++++------------------- 3 files changed, 35 insertions(+), 27 deletions(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index b1fae2f747c9..6e44786e01fd 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -1532,7 +1532,7 @@ void __mptcp_push_pending(struct sock *sk, unsigned i= nt flags) int ret =3D 0; =20 prev_ssk =3D ssk; - ssk =3D mptcp_sched_get_send(msk); + ssk =3D mptcp_subflow_get_send(msk); =20 /* First check. If the ssk has changed since * the last round, release prev_ssk @@ -2408,7 +2408,7 @@ static void __mptcp_retrans(struct sock *sk) mptcp_clean_una_wakeup(sk); =20 /* first check ssk: need to kick "stale" logic */ - ssk =3D mptcp_sched_get_retrans(msk); + ssk =3D mptcp_subflow_get_retrans(msk); dfrag =3D mptcp_rtx_head(sk); if (!dfrag) { if (mptcp_data_fin_enabled(msk)) { diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index 95c9ace1437b..af414cd8b7cd 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -636,7 +636,7 @@ void mptcp_subflow_set_scheduled(struct mptcp_subflow_c= ontext *subflow, struct sock *mptcp_subflow_get_send(struct mptcp_sock *msk); struct sock *mptcp_subflow_get_retrans(struct mptcp_sock *msk); struct sock *mptcp_sched_get_send(struct mptcp_sock *msk); -struct sock *mptcp_sched_get_retrans(struct mptcp_sock *msk); +int mptcp_sched_get_retrans(struct mptcp_sock *msk); =20 static inline bool __mptcp_subflow_active(struct mptcp_subflow_context *su= bflow) { diff --git a/net/mptcp/sched.c b/net/mptcp/sched.c index 8858e1fc8b74..85c1fe85399d 100644 --- a/net/mptcp/sched.c +++ b/net/mptcp/sched.c @@ -114,34 +114,46 @@ static int mptcp_sched_data_init(struct mptcp_sock *m= sk, bool reinject, for (; i < MPTCP_SUBFLOWS_MAX; i++) data->contexts[i] =3D NULL; =20 + msk->snd_burst =3D 0; + return 0; } =20 struct sock *mptcp_sched_get_send(struct mptcp_sock *msk) { + struct mptcp_subflow_context *subflow; struct mptcp_sched_data data; struct sock *ssk =3D NULL; - int i; =20 sock_owned_by_me((struct sock *)msk); =20 /* the following check is moved out of mptcp_subflow_get_send */ if (__mptcp_check_fallback(msk)) { - if (!msk->first) - return NULL; - return sk_stream_memory_free(msk->first) ? msk->first : NULL; + if (msk->first && sk_stream_memory_free(msk->first)) { + mptcp_subflow_set_scheduled(mptcp_subflow_ctx(msk->first), true); + return msk->first; + } + return NULL; } =20 - if (!msk->sched) - return mptcp_subflow_get_send(msk); + if (!msk->sched) { + ssk =3D mptcp_subflow_get_send(msk); + if (ssk) + mptcp_subflow_set_scheduled(mptcp_subflow_ctx(ssk), true); + return ssk; + } =20 mptcp_sched_data_init(msk, false, &data); msk->sched->get_subflow(msk, &data); =20 - for (i =3D 0; i < MPTCP_SUBFLOWS_MAX; i++) { - if (data.contexts[i] && READ_ONCE(data.contexts[i]->scheduled)) { - ssk =3D data.contexts[i]->tcp_sock; - msk->last_snd =3D ssk; + mptcp_for_each_subflow(msk, subflow) { + if (READ_ONCE(subflow->scheduled)) { + /* TODO: Redundant subflows are not supported in + * __mptcp_subflow_push_pending() yet. Here's a + * placeholder to pick the first subflow for the + * redundant subflows case. + */ + ssk =3D subflow->tcp_sock; break; } } @@ -149,31 +161,27 @@ struct sock *mptcp_sched_get_send(struct mptcp_sock *= msk) return ssk; } =20 -struct sock *mptcp_sched_get_retrans(struct mptcp_sock *msk) +int mptcp_sched_get_retrans(struct mptcp_sock *msk) { struct mptcp_sched_data data; struct sock *ssk =3D NULL; - int i; =20 sock_owned_by_me((const struct sock *)msk); =20 /* the following check is moved out of mptcp_subflow_get_retrans */ if (__mptcp_check_fallback(msk)) - return NULL; + return -EINVAL; =20 - if (!msk->sched) - return mptcp_subflow_get_retrans(msk); + if (!msk->sched) { + ssk =3D mptcp_subflow_get_retrans(msk); + if (!ssk) + return -EINVAL; + mptcp_subflow_set_scheduled(mptcp_subflow_ctx(ssk), true); + return 0; + } =20 mptcp_sched_data_init(msk, true, &data); msk->sched->get_subflow(msk, &data); =20 - for (i =3D 0; i < MPTCP_SUBFLOWS_MAX; i++) { - if (data.contexts[i] && READ_ONCE(data.contexts[i]->scheduled)) { - ssk =3D data.contexts[i]->tcp_sock; - msk->last_snd =3D ssk; - break; - } - } - - return ssk; + return 0; } --=20 2.35.3 From nobody Tue Apr 30 16:53:55 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:ab0:35eb:0:0:0:0:0 with SMTP id w11csp3164675uau; Thu, 23 Jun 2022 07:55:15 -0700 (PDT) X-Google-Smtp-Source: AGRyM1sxUQzftJ8VJUUMx8cjN9kHY3Aav54SuxKysjEYQI8EktAuvfuYZ1ASL4/ESZLVGQLl1oHx X-Received: by 2002:a05:6102:2387:b0:34b:9f6d:10da with SMTP id v7-20020a056102238700b0034b9f6d10damr18010695vsr.28.1655996115726; Thu, 23 Jun 2022 07:55:15 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1655996115; cv=pass; d=google.com; s=arc-20160816; b=Agc8EDQaf+9PiHVW706ojUX8e5A/JK+BWCY6ADZU6rBhf6lcwARfywyxGVwVPXgWHD IkMxmRtGHBGAOpH6l3xL/xE9PflbKS4zmpBfPMJOBAW6eFHeDbh8KdjD4AeRHTYsMj8/ +qfDd3litDnfXkD/Xqg32+44Wr0fBCbyxMCbXe2OwUWSMiSuOaM1rcLqUT/CJ3SF4QvL II2NGod12YvR702DtZ/fP+gtGxPqkW+/gT14poj+1whWUEEG37mK345JJBv2+KECCR7d fz0+lUzBhXpPurHr/iR4+9dEOjPBE25+MYXEvhVkk8wRizLFf+IsSeTIsWPzZRGyBPBI IbeQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:list-unsubscribe:list-subscribe:list-id:precedence :content-transfer-encoding:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature; bh=26iWokZzac81QCDO3If3ITIZSHHPM6LmLzyOkDdEQbg=; b=RQUipTfEfXAJi+y4t6bz/jViq3XCC62HI8du6gSnpAenPJ/g69E2YEvf4kfGN/6S9j 5C4FSzCNSE7uqYYgiF3yvI2uOOX7DOoDwaaNkNMrsDLycl7FFKOOPOeIaAoGUDoHdU7j EEsQQ3GLFaIhfCAzy0U+TouJXNWJJ61PqebSFnKNcngAGs/YYPmogfx//Tgbl2ofwhYU MAaakb3zEgcPDwox0FycsIagSDVZML16ma53vDonqTTmgLNBAcOsAzhLg2ycpuE382dt LFe3C/CS666bBQ5OGCqz0B0iDWzhPmokI7e6PLdJwHYxBZrijGnxeuDcsDOZfDMvsVce 8BgA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@suse.com header.s=selector1 header.b=v8mRreHA; arc=pass (i=1 spf=pass spfdomain=suse.com dkim=pass dkdomain=suse.com dmarc=pass fromdomain=suse.com); spf=pass (google.com: domain of mptcp+bounces-5792-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.84.19 as permitted sender) smtp.mailfrom="mptcp+bounces-5792-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Return-Path: Received: from da.mirrors.kernel.org (da.mirrors.kernel.org. [139.178.84.19]) by mx.google.com with ESMTPS id b83-20020a1f1b56000000b0036ca2afd7b9si1190013vkb.16.2022.06.23.07.55.15 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 23 Jun 2022 07:55:15 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-5792-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.84.19 as permitted sender) client-ip=139.178.84.19; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=selector1 header.b=v8mRreHA; arc=pass (i=1 spf=pass spfdomain=suse.com dkim=pass dkdomain=suse.com dmarc=pass fromdomain=suse.com); spf=pass (google.com: domain of mptcp+bounces-5792-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.84.19 as permitted sender) smtp.mailfrom="mptcp+bounces-5792-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by da.mirrors.kernel.org (Postfix) with ESMTPS id 43E622E0A47 for ; Thu, 23 Jun 2022 14:54:41 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 0E7861FB1; Thu, 23 Jun 2022 14:54:40 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-eopbgr150055.outbound.protection.outlook.com [40.107.15.55]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8581743E8 for ; Thu, 23 Jun 2022 14:54:38 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Ga3SKIC5oaOrkyvIRKGtUh2s763R3MeguYbyF2JOd5hCdP2Wl3YnZnoyKINFSA0mczXAWN5IKkaO6O0HJ9oz3PSUe1W6m5G94SxPkTKW4pOqDIY9NgXaCUcSDxcPFgS82PKyvukVGrBMFfGjBbpvJLM/C1s2CDznbX79kGX/+ZZLItDgog+YOaq9cVakXF1E3x69FvPoCWkAunqR+D6WNy9DKXhebj1E/yY/95gtRuqO6Z4+hoB7MnrscpGu1v9RuPD2mZ3Yct4qpG0rWHFu5HRj+8vyADf+XAyO5gGTIlZiHob2BP6KuBJ/Q0FzY3sLTxvGHVDYpnJ0jYviz9zkeA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=26iWokZzac81QCDO3If3ITIZSHHPM6LmLzyOkDdEQbg=; b=FkRVfQV1WlbxcqGqdLUUGJkuFQcKkvJ9Y6GzrlHU+KWHZdMs32qtgKv0DFj4Vb/D+zkPkbdwF7FFRH+o3eiaL6aAh+YsWgs3bwVMY58GeHa3eZncCKJB+LVMdwheayH+wagCp3fxhxFNxzqOBm9DkemOyP27ZV+Oaw5huO1D7/RbnmxhU3TwBFS9gvsQZCBJzDhAyOzOLBLjjxg7DwSV3LOlkOc41DaBETS/ERI1063XYnI4vSAk9VFDCEgHptlfGfqouuhciP4mlttSlu2s7Gj8wg+Ea12kbddUZ7rWXGwNa7WUcl81tH9eHelXpk3lg9bOp0IlmZpqr1BOtiZtJQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=26iWokZzac81QCDO3If3ITIZSHHPM6LmLzyOkDdEQbg=; b=v8mRreHAIg+bzg62fDrDZvq+bhfe57kt+zidKlUsj3tQxsHV50cA6Pl1TWAw6UbE9qmEsALxqR762RF8txcSMrfy8NafCdc9C8+I9BqhDYDN9WylXrZLzP269eLPb8+ukZ9TTd6ex6bkf+Kx8yHm4kISK2fsFPwZCS88fIs6dbj2Wp069ulBVEzG34Q1lLAYnBV8wrMHtifsVdh1qt/yhBtIMW0iEa4Fn7ZOe6E6Z834p3DmZoaxLhXW9VMVfHtqeSEsRanGJtSHhkDFyYvUfqybyJAEtQmI6njxZffhMEe4cYVBs+jZU0noVesFRb9RnUTHhqA5rxFAGVCdfRWcEQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) by DB9PR04MB8299.eurprd04.prod.outlook.com (2603:10a6:10:241::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.15; Thu, 23 Jun 2022 14:54:36 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::8002:50a5:a57a:d8fe]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::8002:50a5:a57a:d8fe%5]) with mapi id 15.20.5353.022; Thu, 23 Jun 2022 14:54:36 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v9 2/6] mptcp: accept right edge of mapping validating Date: Thu, 23 Jun 2022 22:54:18 +0800 Message-Id: <6f5dffe33bd23ea18ec8cff99c8944e9d0f9c6fe.1655995770.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR06CA0215.apcprd06.prod.outlook.com (2603:1096:4:68::23) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 29711458-5ddb-421b-b4f3-08da55284a73 X-MS-TrafficTypeDiagnostic: DB9PR04MB8299:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 8QnxgYhCbP1ktgOKotH+z8YSI3gjuw2Gl0aEZViwQiteiLt7bOX5iESNkO1/0ILFytmR3GFdtVtZqm8xXyV10a+JSSvn+qqz4QMRyvko3wDs+8ZNjjOnIVYLMUQugPeg3jPRNAdDU4BgWpf6+zVS+mEsQzMsTx2It0GewhLLtnelSb8coeEdxxQVNWg+jK0mT+P2KZfA1QGrOgabNziiG/gu1KxPzuxY15Vvfv+8VpPRgkbRKCNImmMCV2fgVstNNeGM0zd3rOUGYcaft7EuzDhJvHknWyVAasaQ3XGfaKt7o7oBDv6nJ6ovWYhi+y1zW0/4LDgPXfxjE1YZMfa1O4pNo02sQ4LNGCUMlMEP+Iv2H7u1QZ00XO38XMhAumHeRvw7RSV30+Dj2YZcjlI/RedXH62k1iryh/n4MRLWSYtuzZd6pQQ4cn43hfymWD8JNl+ieNF2yK1Nh8CoT8lmo0h+WJyiZlsIM0VgowngN5Xpfmampc7z0hD4DWexG0gafdZP/wkTgeCNaggK4P8TYVoWfX3XYxBl63emNbcf9s9JewU35CvJP4CdXuvfYjDKPO9jsc5eJfzkUYek9jLemUb4UHjw1cyXmMQStMAi76tTqP5yR8FFR7gtOznEp6gz3Bcpe7pJm4zqOl5/6TmMvaXm4nAeoOH1l268i0YRz0aMHjnZ59+gGRPmEVkd4nt+Yozmt8oj2Xnk26Qm9rMSXUUnHzxMkQMQAc9tRZ7cMzJo/OItrDNa256fXUyro4Cc X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(346002)(366004)(39860400002)(136003)(396003)(376002)(66946007)(66476007)(83380400001)(4326008)(8936002)(8676002)(5660300002)(316002)(66556008)(4744005)(2906002)(6916009)(6486002)(478600001)(36756003)(44832011)(41300700001)(6666004)(86362001)(6512007)(26005)(186003)(2616005)(38100700002)(6506007)(107886003)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?NcZuedrHdwOjLmKo4SEP7jaD67IZbqe4P7TYo3D8skE9eWs8TzQthZIDUl9x?= =?us-ascii?Q?C1XfAsNSolvKsywA4PiSc4cCoVJ1GKD8vArOjyA4VXuTUO59FNt2G7lr3dsx?= =?us-ascii?Q?S/wm1V4RA02i0/HX3/n/wF+KQrloNYI3rqLiXh+M6Uf3KGK4UhmFhOD7OiJT?= =?us-ascii?Q?f5yzg1vnCSM+JhAYOitNkHmmcLTzs73rrPJJM1RChQPrJjgrviAX1Y0QZm+K?= =?us-ascii?Q?soygSI1Nd9q4vZOkSbWIqNWaxlw+diJd6OCTa19t1NkrmDM95KeBzPNch+bg?= =?us-ascii?Q?dyzP6D2KUjVP3rxqMPdTpYxbWP+JlnPjfC4rMadatLVHg+NpEpiJPAHM7bnn?= =?us-ascii?Q?3aiDs+Dwca4iiGfhVkTRFBi3uOFxC5AILv82X/pZsO4DJjzTiVFBp3vMxkrv?= =?us-ascii?Q?EUMDimxX25V3nIqa/0Eyk9x0Di+dQIAKzZIxPmyn4mnbrLcBbAhOpM/c+8ZQ?= =?us-ascii?Q?ni6TsgNzcFmn4H0cB4hTHt3ehTs4+i/GQf4ssrSH7nO+fzz1OYN1kTzQQHGM?= =?us-ascii?Q?M/dbRkYN4YmTj5R5l75e9Gu7/wwr5+vA1nAVF/XKBtjRLqI8dKJJD5Oed/rs?= =?us-ascii?Q?rXsZgybkZ0fV83llwCkIuvVDWNEG9zwb0kScGp+H1wFe9Szk/rwXtHeMnqv8?= =?us-ascii?Q?vIkaZ2v/OLcrKiyT3S+lDnoPeetP7S5veOxRIKTtAZGjig/AlhTIzOlEArn0?= =?us-ascii?Q?UcM2v6kMAZYkD7xccGZSROQ9jmOulscEcKPjurpIvaWPy+IRoVcFqo8YlOzL?= =?us-ascii?Q?I0nzirAsyMOs9FYBVANOedsg7Y8UkJcL54PgaPEns9QLNQ+ZrfRTBkeap+6E?= =?us-ascii?Q?swyWQPIR9AeICvWfZ8nElJT+IwHff2K9OjNz018E2jquBV3VmxiC5SnsrTDh?= =?us-ascii?Q?h1qEerAmaUzP82ap6Y0gTVkaxGO2aZuNV1phkxZcuPsrPYpB7SnMcccbz8sc?= =?us-ascii?Q?Sf/Yz+Kpe8eali1bla0nu4xkfNVXame6duYeSDDe5bZZnoKnnxSD2uWlG9DE?= =?us-ascii?Q?CLc766TK4D3cdcw9R6xEFwXw1mG3m61KPJEfOmBF1LUzCErFJB54sp9/VNQU?= =?us-ascii?Q?L3mctabkG/a/yhAPEasHvAqbnXpKlH/W6Q6CqscKFabe+E2ZcYsFqsXty1XV?= =?us-ascii?Q?F0lraGgDHJ2q2+rmyZGzslVn/GEX+FeE63wy2OMtllSUqj93ekGONmkyooY6?= =?us-ascii?Q?1Vo0z8LnewgPmuvhtWiQXg/o7iHXkIaI2jXQokKQwNdsRIEiLgePzwiUzvPP?= =?us-ascii?Q?Ho7aQCfqQoh39RfEYlOwsKhkresdLeIo/jf2EdvoJLos3hNs1JNZKTlNHGbt?= =?us-ascii?Q?boEwONnajtuwkwPDKy0x6EUYK9gqiIfKJX9vwmFBhLnWPuOBNDGo5rKvFLHq?= =?us-ascii?Q?jBYxscYS/2nQq94+YXXyG8Oxqwq9DGgsZe8fELWcEGT1W+lcj/M+II79ioF+?= =?us-ascii?Q?OMQH/hSJ44HgFtH9THZa+XxRdGBL2DxtP1hiLwtGS9GS+hcRjo6EBgTXJnQS?= =?us-ascii?Q?Z0rvNOJRkGszFevrXWsCXo/kMam53vAmrPQ5tHOvgDgr1apu8sArfxCJ8qde?= =?us-ascii?Q?r+wVVcC6p7tGx396sFHJ0hHPX9yR8P13Z5QWRqi+6FzQAzY21xA48hPkuBpb?= =?us-ascii?Q?FZZ7dBf1FtMSSD/x9Qdo0Yp/hpEqVT39M3COH16yxBMtXO5v8Qt7n9Fm9l19?= =?us-ascii?Q?KitFlsWkRbQcZPOswmOWL2eOshLzb8AiELw1xzaJtyQGGIy7VQS5C3NvcnSG?= =?us-ascii?Q?++H+yIQMDSrNxsKPWnZsu8n39zCrBPM=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 29711458-5ddb-421b-b4f3-08da55284a73 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jun 2022 14:54:36.3433 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: l0wfTGSuV8cuYjc1ynjB/VVOwtqH1x3TVlZ0mDktFAZSwyovySISm/GuSNMiuTFjYoYBP0d+Id2iBOlWuwvVkg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR04MB8299 Content-Type: text/plain; charset="utf-8" If ssn is at the right edge of DSS mapping (ssn =3D=3D subflow->map_subflow= _seq + subflow->map_data_len), it shouldn't be handled as a bad map. This happens in the redundant subflows test cases. Signed-off-by: Geliang Tang --- net/mptcp/subflow.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/net/mptcp/subflow.c b/net/mptcp/subflow.c index 63e8892ec807..69a2c3e6fd76 100644 --- a/net/mptcp/subflow.c +++ b/net/mptcp/subflow.c @@ -878,8 +878,8 @@ static bool validate_mapping(struct sock *ssk, struct s= k_buff *skb) dbg_bad_map(subflow, ssn); return false; } - if (unlikely(!before(ssn, subflow->map_subflow_seq + - subflow->map_data_len))) { + if (unlikely(after(ssn, subflow->map_subflow_seq + + subflow->map_data_len))) { /* Mapping does covers past subflow data, invalid */ dbg_bad_map(subflow, ssn); return false; --=20 2.35.3 From nobody Tue Apr 30 16:53:55 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:ab0:35eb:0:0:0:0:0 with SMTP id w11csp3164477uau; Thu, 23 Jun 2022 07:54:48 -0700 (PDT) X-Google-Smtp-Source: AGRyM1vnivLFeHwmv+cdynIlf/AZE71KorTILL++g9NiNyXACobnNoh1D/XGkrewi9Sw/Ef03NOP X-Received: by 2002:a63:3c0f:0:b0:40c:8a83:fc4 with SMTP id j15-20020a633c0f000000b0040c8a830fc4mr7931979pga.397.1655996087841; Thu, 23 Jun 2022 07:54:47 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1655996087; cv=pass; d=google.com; s=arc-20160816; b=FD3fheJtNKxFCeXKfrGZKs7qPTiZ4/kO2JzUlH0VBcwCB828Dmz8Hp0oHHaYixjSkY HT5Shyh7DM0E+4NNMUUZegQIdL8L2YJsXlEUDKYFeVkcxTuYEen0HC3+ItWfTOTguGc/ Rqzy0/Be+z/SXuhkn9ncv+5irpPeeBAN1ZAUAuW6t5GBQKwK6UQ6/lb4fYajHykqPf8u dF2t8wBBIRlfUTlHL5lbkHgnZ58gzoZ4pMI9f4afNXw7x0fP6V8mmt4P0784nA00FHIP I1JrvlYKW73POUXtmVwX8WCPfX1xDRgUjjYsvtHw+e4afcsp+IeX0N3bnOQtQaKfhige hYlQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:list-unsubscribe:list-subscribe:list-id:precedence :content-transfer-encoding:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature; bh=1hBf4u3g1ZoMVunEVwziilOUKOwUlliu/m1DsvKtvms=; b=rn6JfydGqh7M3WrGYk+No/nSCZSuJCz/GCuu6JbL3cTLICL1SX2j6eN+2uqKbD3NYO XnRaGp6aXz6tZ898l4Su38C6v3/S/8iy5R1zaUJUWgUe79WtnkkCBL1VRLOAiDW7aqlT KwAvBWYUvQ9wSIJmgh0DZMWdJaLhO43dsCLgolR/3pgh1qcSxpi+WDC5OsimcxvM/96r 7vUuSzIC9XYrWgeUFsf6kPIyUAwwW3HetLwYcEwzxiGIu/54kF5WXev01+zSFm/jAJh2 AzzagEftvn8VBmTbsYK83GQHJC68TiVJhwkDb295OUfTgWA9Bv2alA3hbB+DCM6CjHQK s1Nw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@suse.com header.s=selector1 header.b=HSV9SDWd; arc=pass (i=1 spf=pass spfdomain=suse.com dkim=pass dkdomain=suse.com dmarc=pass fromdomain=suse.com); spf=pass (google.com: domain of mptcp+bounces-5793-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.88.99 as permitted sender) smtp.mailfrom="mptcp+bounces-5793-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [139.178.88.99]) by mx.google.com with ESMTPS id 67-20020a630846000000b003fe25580685si28972733pgi.349.2022.06.23.07.54.47 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 23 Jun 2022 07:54:47 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-5793-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.88.99 as permitted sender) client-ip=139.178.88.99; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=selector1 header.b=HSV9SDWd; arc=pass (i=1 spf=pass spfdomain=suse.com dkim=pass dkdomain=suse.com dmarc=pass fromdomain=suse.com); spf=pass (google.com: domain of mptcp+bounces-5793-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.88.99 as permitted sender) smtp.mailfrom="mptcp+bounces-5793-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 4A3EA280C31 for ; Thu, 23 Jun 2022 14:54:47 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 6358243E8; Thu, 23 Jun 2022 14:54:46 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-eopbgr150081.outbound.protection.outlook.com [40.107.15.81]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C1B4D1FB1 for ; Thu, 23 Jun 2022 14:54:44 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MwNlPpRqc+GIH1L3/VifuPwZFjPXzwtsSPq7xdDXL739YtSLoCAHvz1nvJ/DkDOGy0zBZ85a32no934mBMhOpsuI44u9WEEBMkMp3HtNYNi4Xvsj2D8LyFIi6nMfkCoc+ODbS1U6AW5LucVrkCRouMrj9DxS+px1/Hea9yrAxJXKuZk/Sw32i5iN9SSxdmm7q8rJl41uz5xBTUX3H444vw4PXg1AfpO+1WDwSotUtr4UxZUSqiTbYL4+ySkKkpi/GmGO8GNR88Nv7pWfJ1K0N+Oj867BjzByYt63U8720abJM5ttr78EdOmNtcVuKmVqJYadNxjx4E+PHAblOhHW2A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=1hBf4u3g1ZoMVunEVwziilOUKOwUlliu/m1DsvKtvms=; b=m1JhRhKdmHcsNcG1+wNyJkMNnIGufWOREshY3zf248omxY5EaQgtjeQtcH2FfH+w9YvMtq10aNDw12EQRx9U6rs3QjeCjBo5Ot7axKyt+RoqPlPYq6yDDM9KzRmyORv1JyH/oKXML3qRdTv39aNlp8zi8iba0+0x1ACTVOpfKZu2cOuoBxuVuRRcGvA5lR0ZEAR2VCi9MNauNb8a6TE1BgswETwsQP7KVgFHBhuz2I8ruClQJ1bN4dTz2KyYfCFQ31kdCSs60TeSPHa3v6t2lp8lzJUesMCtaA5xQByl0dxDO5t8JJ1OLi4z3k1PDVdh5WyS2uMEjksp2mFvkTyVwA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=1hBf4u3g1ZoMVunEVwziilOUKOwUlliu/m1DsvKtvms=; b=HSV9SDWdQ7SfN+D/jocrdmObp8D595iW8YLDTtyflubimSFTrl47iIRQNRi0Yj3Cb6thZ6929nb8nssczjm3fhZIXDGYbRtxQTtmMldN69rkfc9IaYPe8dF3vWRoVyGnW/+riIs562I7YSj03UJKXshrAnGDxl2Dxd2LXZzqZjAzCiplTR9608DXlAZ/fwOATpepE4hiJcChacptJYZwW1AcGGYqGFCiINuLIBjeEp9zdUbhYSYFHv7F7GP3zWihqfnZdBWhOL9HBh+yr8C+MJ8l4foyfU9/KwPGe9Hqjn2IAHNtuZQG4g6cK8qtTXqY3hE3/GwFMK8EYjWVCblFtw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) by DB9PR04MB8299.eurprd04.prod.outlook.com (2603:10a6:10:241::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.15; Thu, 23 Jun 2022 14:54:42 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::8002:50a5:a57a:d8fe]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::8002:50a5:a57a:d8fe%5]) with mapi id 15.20.5353.022; Thu, 23 Jun 2022 14:54:42 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v9 3/6] mptcp: redundant subflows push pending Date: Thu, 23 Jun 2022 22:54:19 +0800 Message-Id: <7845ef0db19df1d87225b22911dea3947792c711.1655995770.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR06CA0186.apcprd06.prod.outlook.com (2603:1096:4:1::18) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 8e9cd16d-0b7a-41ed-d981-08da55284e17 X-MS-TrafficTypeDiagnostic: DB9PR04MB8299:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: NyB2xRe/WGObNmMSExq8Hh0s+quSwvJ15pzVq3IWyuTly0IsPVxEmN9cZcfu7A0ww4pNEz06GbnKOY4NhNwE9m2J44DrnWTm6zOQzO/TWhk/oE/9we6R5y/8Ssa3tCKlUKXWEdP14Vi6rQE5MrK3ckKxQOI4EUDoACKtBVqUm86Nb8C2308k962lMqDTgiKNBfq4NwkODZKth+5B/duhps9qlg8nzR2U1U099PJb4YmiN+hBpBGWR0B3Wfy08aX6XDW3xzOLVXsxCdpExgrCClxhMZ7bqkEbzslwWGF6C5Re4k0oP9WmxnWh136swMx1dPNzGpWv4zZKySTiA0RFVcAiYRIERCUaZM8gAIwIqAkz/9Xf6+a+F40IHl64Va9B492PVUfq0DUFjqubsRUXCaHTDSDWC4uFgDy1h/20D4iYf7gmjQ+1KMyTN5WZWJPbMWvgmfgiLDPjLyixV8r7nobZjIcRGz8WRF/yZOxrE7g7WQ94nJLODFFTSP1S2JlfURnZ9WXPgMBbWmlMjp7sTyTm/GZXFsWSJ/Cu89xkM4apZBYSKuJJTAkXEn6hsB1ogujIMn9YhmLb8lZvvZ/ZhBYtUi+xFc/vmLPYujgECka7bV7E1Xa34B02DFpQyQ2DL05qSBHX27z2gLcwXqh4UCnDNFbFh0kqJG0jiFPgSs7XLIZeSs0Y/xW4M5Ie6OIi7QsrVQkW02UZnGVciOXu4/dva76kdwiGR6/mgJaZKoWUNxEZewOcRzm9dptELrbh X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(346002)(366004)(39860400002)(136003)(396003)(376002)(66946007)(66476007)(83380400001)(4326008)(8936002)(8676002)(5660300002)(316002)(66556008)(2906002)(6916009)(6486002)(478600001)(36756003)(44832011)(41300700001)(6666004)(86362001)(6512007)(26005)(186003)(2616005)(38100700002)(6506007)(107886003)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?7YtJO9slbuR1ey8TAInBBUYmZP12YW/9I3TdZFW27C6/RE8+/x4lFF3RmzuB?= =?us-ascii?Q?WMbbNCHMVEbqbvQ6DDai2NOrRKpgkSUU8k8JbFGI9A4PTQQSFaymcHdIOPZg?= =?us-ascii?Q?Qx5ow2ZnCdYSWrkUMz4zAOXkBYgx9urStWycKsVkYLeXD0/fLHSHGttPvOhZ?= =?us-ascii?Q?QyLoDBFEMX6cfge6kSSXxPqy9CY0YIJQeoCkHbx95DhngsmFjzwOZe28tqbw?= =?us-ascii?Q?bcspOV8CLJIsRblJJweS1h/vPl3pIZFxijTkbZHADsRt1lSzXjTeOD9Yqwru?= =?us-ascii?Q?wSu7t+hyRfuqcqTYoHE14KFWrKhMxmTGEO35mcgBhLzAi0Yn/N+GOGKAWTjy?= =?us-ascii?Q?t7cmbxPsBRsqRhbipwaPN0FIW8Xx2qN3zKIfNjXkcq8ddjmVZtV8MgoxREEF?= =?us-ascii?Q?yCSj+zSrL0N8BrxNXGKU1sFqOiElOfb156jT6pIO7Q976K3Q1DJrds07vM95?= =?us-ascii?Q?xu0UzpubIX28x/jwnHvbAEZfME2z0EzBYe6zBzKphO72VcrTsMfUV6R3/LzS?= =?us-ascii?Q?oijmQfUEKbNt75jJ7Fy1slvKfl1ZQRstiKSJzNYx7JUUaEs42+eL7bf5si3d?= =?us-ascii?Q?E2F/3zKbxTsJD2p9pyq22pKDzClamak44M0hhDAHP9q8jvS+NtqQc6Y9lFHK?= =?us-ascii?Q?h/sX0XH3BVtMFiJ1A+xJa3YR5PDpSZ2CTbcUA9BeQCNlgPcHPIP1FQ2O35+Y?= =?us-ascii?Q?4nJz67vbEcCwwEfL0uPM/OO/ZHH9acPOeC1bylUZnODqeVg1oFMGl/mjXssF?= =?us-ascii?Q?PdCzGC65u3cfb8ie9kJB3neJzgJg2C3AYqqU96Sr56Pn18lsyeZ6Zj2nksiD?= =?us-ascii?Q?/vIAWr36gUEAmrxbpMVZWq1jgH+ClZEpGpL9MDkQrZHRhnwVf4IuRNJ6hn+K?= =?us-ascii?Q?WG8sPO/ASVOZzrCZGdzK4opbWBkLXVulEh+3+/kBWYXst3H9juTk/uFQhyRW?= =?us-ascii?Q?4v0D7j3HziTqMCyUIPXCTesxG7rTpg3a0l6rN2Hd4uAap4rwNQ4OxiEu4Qv3?= =?us-ascii?Q?57VUTCBlqLgKuxDAcYwJ33jEFFUEcW/yHGFpP0OAZU71DqINLeGDd0eNIIWw?= =?us-ascii?Q?P6f+HQ+bPzPs4wl93dPyx9UGreeVw/KHvhImSEbn/OYXvJbSgaQCwKq8P6MM?= =?us-ascii?Q?LH7YLTVREfRSH8Zr+l5Gpp69N97SLakzdg2YWKpRX4iFq9l35LBFyzEcKBP6?= =?us-ascii?Q?/12SXhCuUHqd7k3+95YL/VYPY8VYCjor59Yw/fa93i3IKknhxylcpo0xLuGi?= =?us-ascii?Q?cf74IGrVWRhpFww+I+uTWfeMOOjUg8H8QcGeePNi1RoHB1qSFCxtRf80cYuV?= =?us-ascii?Q?h8WUFgLNs185OMFpQ4L4TmURSe11c0v0C9ysHaNxkvd+D+pafXq+AOzmm+cf?= =?us-ascii?Q?pt7Mre6+tNjM3bEhZpHNN5DxBLtoefUxaCUlnudkiz7yvVkeievJLlVn4ge7?= =?us-ascii?Q?G3Kfd1CSeKifhNwOCBRYdMtSjgAkXPMJgHMsgJlYwZsUFnxhoKD+KbSmNGWo?= =?us-ascii?Q?qmEmZ+n+qnuwLvSHZ2vUUK+hwGinEtKa1Q7bx+3xGRXFb7hHbzQJIS0iFhKv?= =?us-ascii?Q?7AiZYy9Eqo6Rhx5a+M02Xc6x7pCK3BxbdDOir217jMWghUlONtfbbLiEWViG?= =?us-ascii?Q?HKRJONAP+mK6RVpno8+sXFQqf6llLAZHAqD44sHsJKrZYC5TqVjQYD2ZlsG6?= =?us-ascii?Q?DBPTwDVnR9Hpm84N2CzWXd1/0lc5gr3zNmJ/Tlstjm1jS2x1rZsNiVI9R3ag?= =?us-ascii?Q?bHobZoCeMS0Llz7d2G9AfSEkDGn2Vxc=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8e9cd16d-0b7a-41ed-d981-08da55284e17 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jun 2022 14:54:42.5147 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: QnphD+vo3q3UxuVIgE+9utT3coL5tYbfa2VDzRsK8a2EA8bT6QsyxNYCxEFZZlx21YK2V/+KdkecP80Yx5wULQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR04MB8299 Content-Type: text/plain; charset="utf-8" This patch adds the redundant subflows support for __mptcp_push_pending(). Use mptcp_sched_get_send() wrapper instead of mptcp_subflow_get_send() in it. Check the subflow scheduled flags to test which subflow or subflows are picked by the scheduler, use them to send data. Signed-off-by: Geliang Tang --- net/mptcp/protocol.c | 98 ++++++++++++++++++++++++++------------------ 1 file changed, 57 insertions(+), 41 deletions(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 6e44786e01fd..d09b01f1dc29 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -1516,63 +1516,79 @@ void mptcp_check_and_set_pending(struct sock *sk) =20 void __mptcp_push_pending(struct sock *sk, unsigned int flags) { - struct sock *prev_ssk =3D NULL, *ssk =3D NULL; struct mptcp_sock *msk =3D mptcp_sk(sk); - struct mptcp_sendmsg_info info =3D { - .flags =3D flags, - }; + struct mptcp_subflow_context *subflow; struct mptcp_data_frag *dfrag; - int len, copied =3D 0; + int len, max =3D 0; =20 - while ((dfrag =3D mptcp_send_head(sk))) { - info.sent =3D dfrag->already_sent; - info.limit =3D dfrag->data_len; - len =3D dfrag->data_len - dfrag->already_sent; - while (len > 0) { - int ret =3D 0; + if (!mptcp_sched_get_send(msk)) + goto out; =20 - prev_ssk =3D ssk; - ssk =3D mptcp_subflow_get_send(msk); + dfrag =3D mptcp_send_head(sk); + if (!dfrag) + goto out; =20 - /* First check. If the ssk has changed since - * the last round, release prev_ssk - */ - if (ssk !=3D prev_ssk && prev_ssk) - mptcp_push_release(prev_ssk, &info); - if (!ssk) - goto out; + mptcp_for_each_subflow(msk, subflow) { + if (READ_ONCE(subflow->scheduled)) { + struct sock *prev_ssk =3D NULL, *ssk =3D NULL; + struct mptcp_sendmsg_info info =3D { + .flags =3D flags, + }; + int copied =3D 0; =20 - /* Need to lock the new subflow only if different - * from the previous one, otherwise we are still - * helding the relevant lock - */ - if (ssk !=3D prev_ssk) - lock_sock(ssk); + info.sent =3D dfrag->already_sent; + info.limit =3D dfrag->data_len; + len =3D dfrag->data_len - dfrag->already_sent; + while (len > 0) { + int ret =3D 0; =20 - ret =3D mptcp_sendmsg_frag(sk, ssk, dfrag, &info); - if (ret <=3D 0) { - mptcp_push_release(ssk, &info); - goto out; - } + prev_ssk =3D ssk; + ssk =3D mptcp_subflow_tcp_sock(subflow); =20 - info.sent +=3D ret; - copied +=3D ret; - len -=3D ret; + /* First check. If the ssk has changed since + * the last round, release prev_ssk + */ + if (ssk !=3D prev_ssk && prev_ssk) + mptcp_push_release(prev_ssk, &info); + if (!ssk) + goto out; + + /* Need to lock the new subflow only if different + * from the previous one, otherwise we are still + * helding the relevant lock + */ + if (ssk !=3D prev_ssk) + lock_sock(ssk); + + ret =3D mptcp_sendmsg_frag(sk, ssk, dfrag, &info); + if (ret <=3D 0) { + mptcp_push_release(ssk, &info); + goto out; + } + + info.sent +=3D ret; + copied +=3D ret; + len -=3D ret; + } + max =3D max(copied, max); =20 - mptcp_update_post_push(msk, dfrag, ret); + /* at this point we held the socket lock for the last subflow we used */ + if (ssk) { + mptcp_push_release(ssk, &info); + msk->last_snd =3D ssk; + mptcp_subflow_set_scheduled(subflow, false); + } } - WRITE_ONCE(msk->first_pending, mptcp_send_next(sk)); } - - /* at this point we held the socket lock for the last subflow we used */ - if (ssk) - mptcp_push_release(ssk, &info); + if (max) + mptcp_update_post_push(msk, dfrag, max); + WRITE_ONCE(msk->first_pending, mptcp_send_next(sk)); =20 out: /* ensure the rtx timer is running */ if (!mptcp_timer_pending(sk)) mptcp_reset_timer(sk); - if (copied) + if (max) __mptcp_check_send_data_fin(sk); } =20 --=20 2.35.3 From nobody Tue Apr 30 16:53:55 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:ab0:35eb:0:0:0:0:0 with SMTP id w11csp3164579uau; Thu, 23 Jun 2022 07:55:06 -0700 (PDT) X-Google-Smtp-Source: AGRyM1sGmQiSPi6iEi9A48aoA60Zsrow3fxCiCObsOQDaR4miFzx93FBP+Zp8zLIKneAiHNh+YUZ X-Received: by 2002:a54:4e95:0:b0:32e:1ad1:2d4 with SMTP id c21-20020a544e95000000b0032e1ad102d4mr2484139oiy.235.1655996106101; Thu, 23 Jun 2022 07:55:06 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1655996106; cv=pass; d=google.com; s=arc-20160816; b=upOSXhqAcSt05h3l/foUDX2fvr+ZRmXXyCQz6KYigDli2Iw2bT1WPohoru+GjIpw56 G2+U21rLgerkMCBGFuoy4MFaUrU7fMa15agF012lXoeCGGn1j3vy+2vps5WRoBg58Mz9 z5HdAqhpw+1iBUgeWTiwb1HGU1SAVzXWwxpxoS7U9vemmAM7LjUmw7+kgCQDMKN22h3c KOzl0O8HIXrgADepDNTMF/HUJKnwI99BHwuJyL8sdalGSUZNeaB7DYxVK9wAa70mcVXl 0fDNdvR6dmKaMam27IHdPcgwS/2GWEexz4/X/Pb9zozczqSrRfNobgNHHmJ15nBLccRA e7uw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:list-unsubscribe:list-subscribe:list-id:precedence :content-transfer-encoding:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature; bh=YXAPynTVxZu89adkwojsAU7JghYEy10fp7QxGK9ooj0=; b=JjqSM1zJNoM6mN24fcZ6japXYTj/+9Be0DEvjhUjHrs6+umnXIqvFAaNXrz/qEYEjw mTd6Drap0LNqrlNU3Km8Si/D5FVW79fyS0A6ciGRRJ5gMGNlhGYEWErmwQH4iF8yuyz3 Zc9pADFxZ1qV+/IctiTjk8zHeMu1VrjC5dGHozNW1FS7qaxdPWFSudG+00+n9H6MIejR KChzf4BKKx6IRiPFcL/ZyY6LfgukunoDHr6aDzoqEu/bFGtgKI6z7Syds3VGVK7yoj+n Val5F6cc3YU6dssekKp0s7Xm6fEGmkdahL4RugV2tUEsAVYcG0tDExV/d3KuXQ5BarZM 6bbA== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@suse.com header.s=selector1 header.b=Nn1T8NuL; arc=pass (i=1 spf=pass spfdomain=suse.com dkim=pass dkdomain=suse.com dmarc=pass fromdomain=suse.com); spf=pass (google.com: domain of mptcp+bounces-5794-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.84.19 as permitted sender) smtp.mailfrom="mptcp+bounces-5794-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Return-Path: Received: from da.mirrors.kernel.org (da.mirrors.kernel.org. [139.178.84.19]) by mx.google.com with ESMTPS id r127-20020aca4485000000b002ef0c34761fsi18433083oia.159.2022.06.23.07.55.06 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 23 Jun 2022 07:55:06 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-5794-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.84.19 as permitted sender) client-ip=139.178.84.19; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=selector1 header.b=Nn1T8NuL; arc=pass (i=1 spf=pass spfdomain=suse.com dkim=pass dkdomain=suse.com dmarc=pass fromdomain=suse.com); spf=pass (google.com: domain of mptcp+bounces-5794-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.84.19 as permitted sender) smtp.mailfrom="mptcp+bounces-5794-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by da.mirrors.kernel.org (Postfix) with ESMTPS id 4255C2E0A77 for ; Thu, 23 Jun 2022 14:54:54 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id A530B43E8; Thu, 23 Jun 2022 14:54:52 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-eopbgr150082.outbound.protection.outlook.com [40.107.15.82]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0F1D41FB1 for ; Thu, 23 Jun 2022 14:54:51 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EPhojWMOTjQnf6ndBP6/q8GfOOejl9NwvQczRDl6/HEhgIsJiKAHimwuj9vwHJJvEwsAg7Xz9ZRjzzqhzcHnuqsy2IGL5SBaGUxOlQCZauWFWJ1Hyqmpz4uGG5hW+1tBrBNpvKcFSvKUFqTV0wGIM9RCfn/PVw1oTSD8n0OVwQstS0+a9NufRfGxSJeTdVKubq6cXOzjG7Ld4uaSBWm5V6H/HbFWRRMkOXoYNjb3gF6KjklPs30sHS8XYKhZvXhfvvmtO7iA6At3uKorsygjCHwVnPOAR1Hh11R0H08BsZl9C+dGh/A9ev0FOCcqiQQ3TGS3PRqBqEFLLlX2XDJGsA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=YXAPynTVxZu89adkwojsAU7JghYEy10fp7QxGK9ooj0=; b=hv0KY5HV4/AvqJX6BZh1CY4NPfihh7P2P+QORG6Lopbqhd48hJPH4wySQhmIXWNYd+DlGgxDyjZgsGsZCw0rnAuZkd0URYJH8cbb/JuCBnFPJsDlAwDxGTIQCq5A/LjsjWTvqGtr8YRD9XFh4jA1OoJiSLzZoeF3OAJj9oIU7ePO52ZSoSiNtf7NAqCdftuYsKHmx7wTzPs87jx1gW1qi/ME7N9ECFxS1Q91n10+LK2R1XzEKhk76/1io5hOFy7f1Zd0lJaXBXSBPZWYBfc4iZYQ8ObN27haW+fStfaJQqfPqIiq6mP6pzCyCmAyIsDwRzWsLxbU3J/foiJqtQSUuw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=YXAPynTVxZu89adkwojsAU7JghYEy10fp7QxGK9ooj0=; b=Nn1T8NuLb2TyD1AHPyd4hglgaAJSnxt6cOTT6D0Tsw5NxMzicO3rnGK0XQAq9z71kwHfQhxhVpmstmH5oegMlYigUwQpgwHZ3NXRdhr1iZWKichzq7WB7zlr0gNMbPuyNJWPLOAaYYulq8RVInCBEpOEMvYchH0wDxw4VgNbB7iBizfuotNqyT2TDqklGXpidjk+uC9LNlrnT6pF0mP5wTYDZh93jZN8dLif275rJiyrrpGA8W7pgjP38X07sT05Kw+ozY8c0UAqgeHyFz6q8dvi7ns7x2ejlmQwO28Ma5NhvqQrShFczc36GhAy8JiccAfsfq0ejmD36Mr3BSKZPg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) by DB9PR04MB8299.eurprd04.prod.outlook.com (2603:10a6:10:241::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.15; Thu, 23 Jun 2022 14:54:48 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::8002:50a5:a57a:d8fe]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::8002:50a5:a57a:d8fe%5]) with mapi id 15.20.5353.022; Thu, 23 Jun 2022 14:54:48 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v9 4/6] mptcp: redundant subflows retrans support Date: Thu, 23 Jun 2022 22:54:20 +0800 Message-Id: <4e48d578633ac9363ae80e1c8709394fe46b6f4d.1655995770.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR06CA0184.apcprd06.prod.outlook.com (2603:1096:4:1::16) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 1d071b25-3f8c-41ad-9bb4-08da552851b9 X-MS-TrafficTypeDiagnostic: DB9PR04MB8299:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 9GqihoYmA23YopmuFRy1m/qdQycDC5u03J5g02HXXCd8bogMNWxDIyl3B9ZX5QS+wz3SUcjNG2JhAgaPHrLmNDMZxOtLc0suzjDpwP+gfYqfWYdqz59FdlwogXQdYN7g6aDYOxgTZI/etE968MoyKuhnRn5bCoWYYNCnYkwQbJLO3ISAmmV3CKWTpFR7suVAiyzgKNos5VSaO2deV7OgcZt5gFzXLCv+PYqeTp7zJxcM8X9pcdsdDPEWWaJ+5g3Fswpd7B3W68fYXZhixt2rnUX+ZDmgGvhU94SHLGnIrcIrvReGUP1vc8OMtaFYwZGS7qiFBXXFR75/50K0+PfNT4xUUG47EutLmUYpwAjhvOtDOPp3AvSF/VJ6a884qW+A8wEO7L1ZAwVO54juPcpqHmdsOduTqS80UaV7CJFWv1rwk6b5ohbyXwK7aMGgAsntwfc/0TGCHwAgD0bEwrLQp0q6wLL7oLee9Tsm8weNIIGuJrgo/9axZBxOegrskwAyPXdDDLngB9XuOMz2HfEImLiUigE60DpYYPmA1Qgg4vXP0jtJwaxmKhdkilCAEVkJMZXc7QSn9F9mzPNiztB6DvuCIfPpvaUZ+/OfiKreTLUaEqUQcQyKWe5+Ha6s6MELiQ7slwtxchXO+/kQ4vLqGEiJsVHIEraOHG1uvm+BM6e3aKnZPQvGV+Ykb8KfknqXbYwd70ad+iBCsH7vHGaH9uEFaAqeSh14/94agMZSm3FL3dgetHIUpTUI0cj8jT0J X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(346002)(366004)(39860400002)(136003)(396003)(376002)(66946007)(66476007)(83380400001)(4326008)(8936002)(8676002)(5660300002)(316002)(66556008)(2906002)(6916009)(6486002)(478600001)(36756003)(44832011)(41300700001)(6666004)(86362001)(6512007)(26005)(186003)(2616005)(38100700002)(6506007)(107886003)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?KPE2uQuGcSBUY+1l3TUApVuBgd/zQzuWgtxsihMVy/CONbEqMOUI9F6TuJ4X?= =?us-ascii?Q?3js+hIHuHpYKcEte4GpbgG9ydqR0j39dGm1QIOjcU/xA8+s0mSrQR1Pj09NT?= =?us-ascii?Q?ED0vmt+CtaMJyWlTQL9B4d3ydtfO9JuI0CGNm/TAYR48h0DiSr8y++Zwl1Io?= =?us-ascii?Q?fiDWkek3hFZ4drq2KKmwR9FswBRzYZYtNyo4f9Q1ccJQkQCtrqMbDdCERzAC?= =?us-ascii?Q?O3RiKnNDIrjdpEXb/DA+XI2hrLyjRFj9eJGetUTXkueQtUwNmgeIa3NMtbTL?= =?us-ascii?Q?7xhJzjqur/7Mmplqe+dIjYaG98P5802Pd6IPPULBQqyAtboY+/M45D9eL2cA?= =?us-ascii?Q?vFLWVDE3qHPUGJvaUgsqXeAk8iKuudW+e//F2mEQJuGd/VrAtM9/NGGUMrvo?= =?us-ascii?Q?8kzA5dhvknSduCoz+o6yabAAd2hkiZJslvMzfC9F++w+OQ0vGGy+u6kqlhav?= =?us-ascii?Q?dQv0zy4umg6gFU8Rw8dnSKPv9Bl4YzNadZFNn00cZOQPvlE6R3+hfOmGdU4S?= =?us-ascii?Q?Q+Ba99msO4+2a2/aZqV1E2DwL6mosBSGhmRgqgIFd5d1yNwkmvYA3aIkLuS4?= =?us-ascii?Q?Nl/e/olRPTEgQt5b7Wv0cHTdmU+TWOkOP2BURHtXaPMv5UoW/zI7M9F65Vrs?= =?us-ascii?Q?vHmfw7aNsJD55IMuXI4hBIVZV0DZqp7qLmW+BOmvImPm0VM7VmUNkVx2I37s?= =?us-ascii?Q?z65i91ZXITBLfYxTZeKg94fJSkw3RzzFVEoiA2+bgzTrB7hUr+cv5UMpcFsL?= =?us-ascii?Q?/UJrZ8VIA47zwhw2wFsz0njsiw+6hgtY00AciDYFV6r8wql/cdxaVsooqK+h?= =?us-ascii?Q?gXOtdZwlSF8lmmvEXCRLr/B+wiUR/lA8FvSYjI+tXBVxFYGZd5JMbBWZ7pj8?= =?us-ascii?Q?GXoYq6bao5MZVWVXH3RVpX5aUEUCCVqjxHPhgrpMfstpaEnvVzYAknyI3ftp?= =?us-ascii?Q?4qO5WhsvbAMksbDRWvK2lD6uUY9qpEpNiwUzPr53e7d95gW6oumRyijIJ+Wo?= =?us-ascii?Q?y8csIOxeR/O0Kt0O2mfFtNieGZ2RIt+F46aPOZgqArFVhBiLC97TZI96IJPB?= =?us-ascii?Q?vIeFdlLivaefvQL16rZfYNVG9zEKf2Clj6UBi4BVx4/M7ZmJcye5S4AZuXwC?= =?us-ascii?Q?OVOJ2uFRC9DVTXPni3KCwwc7IEBSqSJsHPxsAMhfDsT2w54dz3mw8ThDtl/n?= =?us-ascii?Q?Q49NDn8zRqRTdrZtz+Wlth0ty7zRs9+vzs3kSyAc0oMnGhWqom7E80q0xSs0?= =?us-ascii?Q?McDRVIAZ+jWvcJdtw3pfVuLwcShsvXLXsLyJ0Mh+ApblBZfCIqtj3hXUzM2J?= =?us-ascii?Q?jD2bCOEgjuJZLpbCq3ErPR2kUxdDqahE2NPRsC0c4b44P3E7DYNWumO7Du32?= =?us-ascii?Q?HVWuaJaiCpqSZdQ1ngpcyYfyfNA7aUcxrltxpMb8lCusehgZOyFy+VB7mdta?= =?us-ascii?Q?jq+3yMAuGaRtDeeXFsq8akM4UN4+i+VK/5WpfHEl3fLVkFXAsM2GjhoYY2rF?= =?us-ascii?Q?OvhbFQmmZxpkzrKi+3e4Su6tKevsqZ57w7utfFdd2hy6nyYOseyDlork4BFH?= =?us-ascii?Q?sULtPM9lAi7ni7bX/3Lwn0mgVcs+Zm11BpI82SVsdpR6uPRm/2VdT0Aw5dDX?= =?us-ascii?Q?L0SnbISL5kqvBRsQ9tzoouo0+7ZP02vu3Vwu1kt3wCw/R2LV2pIMWAAJ9UMH?= =?us-ascii?Q?udojA9IpoaTrjjblkAlUHzNXIN7kjebBnPCGGYDO/vgeOWfzwgv3N4OVRJlg?= =?us-ascii?Q?PDNBuP705cwyvVwsVzb0RFQmB2sgblQ=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1d071b25-3f8c-41ad-9bb4-08da552851b9 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jun 2022 14:54:48.6548 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: K8SklWeywGNg3SgcNiQLDlSBaN2IBu+YGDXYnNY+WeSC+j9U0W5ZLaF2Ljk/6vFDAQkyovifNf+9pAjBthbQtg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR04MB8299 Content-Type: text/plain; charset="utf-8" This patch adds the redundant subflows support for __mptcp_retrans(). In it, use sched_get_retrans() wrapper instead of mptcp_subflow_get_retrans(). Iterate each subflow of msk, check the scheduled flag to test if it is picked by the scheduler. If so, use it to send data. Signed-off-by: Geliang Tang --- net/mptcp/protocol.c | 62 ++++++++++++++++++++++++++++---------------- 1 file changed, 39 insertions(+), 23 deletions(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index d09b01f1dc29..0390f3d951ca 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -2415,16 +2415,17 @@ static void mptcp_check_fastclose(struct mptcp_sock= *msk) static void __mptcp_retrans(struct sock *sk) { struct mptcp_sock *msk =3D mptcp_sk(sk); + struct mptcp_subflow_context *subflow; struct mptcp_sendmsg_info info =3D {}; struct mptcp_data_frag *dfrag; - size_t copied =3D 0; struct sock *ssk; - int ret; + int ret, err; + u16 max =3D 0; =20 mptcp_clean_una_wakeup(sk); =20 /* first check ssk: need to kick "stale" logic */ - ssk =3D mptcp_subflow_get_retrans(msk); + err =3D mptcp_sched_get_retrans(msk); dfrag =3D mptcp_rtx_head(sk); if (!dfrag) { if (mptcp_data_fin_enabled(msk)) { @@ -2443,31 +2444,46 @@ static void __mptcp_retrans(struct sock *sk) goto reset_timer; } =20 - if (!ssk) + if (err) goto reset_timer; =20 - lock_sock(ssk); + mptcp_for_each_subflow(msk, subflow) { + if (READ_ONCE(subflow->scheduled)) { + u16 copied =3D 0; =20 - /* limit retransmission to the bytes already sent on some subflows */ - info.sent =3D 0; - info.limit =3D READ_ONCE(msk->csum_enabled) ? dfrag->data_len : dfrag->al= ready_sent; - while (info.sent < info.limit) { - ret =3D mptcp_sendmsg_frag(sk, ssk, dfrag, &info); - if (ret <=3D 0) - break; + ssk =3D mptcp_subflow_tcp_sock(subflow); + if (!ssk) + goto reset_timer; =20 - MPTCP_INC_STATS(sock_net(sk), MPTCP_MIB_RETRANSSEGS); - copied +=3D ret; - info.sent +=3D ret; - } - if (copied) { - dfrag->already_sent =3D max(dfrag->already_sent, info.sent); - tcp_push(ssk, 0, info.mss_now, tcp_sk(ssk)->nonagle, - info.size_goal); - WRITE_ONCE(msk->allow_infinite_fallback, false); - } + lock_sock(ssk); =20 - release_sock(ssk); + /* limit retransmission to the bytes already sent on some subflows */ + info.sent =3D 0; + info.limit =3D READ_ONCE(msk->csum_enabled) ? dfrag->data_len : + dfrag->already_sent; + while (info.sent < info.limit) { + ret =3D mptcp_sendmsg_frag(sk, ssk, dfrag, &info); + if (ret <=3D 0) + break; + + MPTCP_INC_STATS(sock_net(sk), MPTCP_MIB_RETRANSSEGS); + copied +=3D ret; + info.sent +=3D ret; + } + if (copied) { + max =3D max(copied, max); + tcp_push(ssk, 0, info.mss_now, tcp_sk(ssk)->nonagle, + info.size_goal); + WRITE_ONCE(msk->allow_infinite_fallback, false); + } + + release_sock(ssk); + + msk->last_snd =3D ssk; + mptcp_subflow_set_scheduled(subflow, false); + } + } + dfrag->already_sent =3D max(dfrag->already_sent, max); =20 reset_timer: mptcp_check_and_set_pending(sk); --=20 2.35.3 From nobody Tue Apr 30 16:53:55 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:ab0:35eb:0:0:0:0:0 with SMTP id w11csp3164585uau; Thu, 23 Jun 2022 07:55:06 -0700 (PDT) X-Google-Smtp-Source: AGRyM1v7w8ppYyQD7CcUQWS6LN5ecsq8hZ15Ui6cKpjslaEciixY23nqNORH0DZCwLPnrfEK2vbn X-Received: by 2002:a05:6808:3089:b0:32e:f7fd:627d with SMTP id bl9-20020a056808308900b0032ef7fd627dmr2427795oib.181.1655996106480; Thu, 23 Jun 2022 07:55:06 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1655996106; cv=pass; d=google.com; s=arc-20160816; b=oqOv6e2xmmGPol0WrCDBsPLkfqGdQaOFkKfB+LrVdRZ3b279vY93Lfa+hekNbZKuLP ptUZ11T7Rl8o8I3r9R9jH/zw8PNtWBJFPm1Cover0eWxEh3rS6KHXKom3Xn6N5lAy+o/ qe/tyaJsqUC2/lyGFKWWJ4uMv+BvlM2/44g9GL1HbIIaHd5fPehoRsjtH29WPYOVpShI JC69+wCX4BnJsgpvAgSVzmSS79rjWOV5t9EJuEe935qLjS4Ty09djbH6LgBEtGauC94y AI9Sjwitui1tOFwzuB1IrSFPIh4yD2LV8NNyfOpRfoBp8tJYvclv1nNZ96KddIlKTq6C ir3A== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:list-unsubscribe:list-subscribe:list-id:precedence :content-transfer-encoding:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature; bh=4SpylYRiXp0P4k3XioNA01AuM9ZHejqqclsSfyCQrL0=; b=jk0AvJWe/I/C/ZZJj50qHDtmNqnBO0HZWAzTopfkhL5OFYPgctc/CHJcqzmI7ouqcF qiw4PRFSDgBx0mc8a9H6zh9BB4RcmDZ1zPVZf7jMJKi1iQhIKGiXsknv9OuHnkhgfMK3 3+rba/BdVSfnmtBuI6unqvG6K96o8/3admIezMn3r7d5DiN2EcenGDww+Nrc/VS9ND2j zl3wn6KYTREf8bFsTV9RKJMClN4MTsWrT65qZKkLki/WWmWCaDhR4V9z5mQKWpMZ2c3h LHNz0XzabLF75Gyz/kaMqnObVQxgVrdOV+1zva1ZB5C8pdNnry+1segO54YP/hDiHBfQ ZS2A== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@suse.com header.s=selector1 header.b=Ln9udPDt; arc=pass (i=1 spf=pass spfdomain=suse.com dkim=pass dkdomain=suse.com dmarc=pass fromdomain=suse.com); spf=pass (google.com: domain of mptcp+bounces-5795-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.84.19 as permitted sender) smtp.mailfrom="mptcp+bounces-5795-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Return-Path: Received: from da.mirrors.kernel.org (da.mirrors.kernel.org. [139.178.84.19]) by mx.google.com with ESMTPS id q41-20020a05687082a900b001023fc37af2si5207158oae.173.2022.06.23.07.55.06 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 23 Jun 2022 07:55:06 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-5795-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.84.19 as permitted sender) client-ip=139.178.84.19; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=selector1 header.b=Ln9udPDt; arc=pass (i=1 spf=pass spfdomain=suse.com dkim=pass dkdomain=suse.com dmarc=pass fromdomain=suse.com); spf=pass (google.com: domain of mptcp+bounces-5795-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.84.19 as permitted sender) smtp.mailfrom="mptcp+bounces-5795-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by da.mirrors.kernel.org (Postfix) with ESMTPS id 0630E2E0A8C for ; Thu, 23 Jun 2022 14:55:00 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id BDF3D43E8; Thu, 23 Jun 2022 14:54:58 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-eopbgr150041.outbound.protection.outlook.com [40.107.15.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7902A1FB1 for ; Thu, 23 Jun 2022 14:54:57 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hB5ZmdXJwYboA7IxC05FA6rW3sm2yQDORk5Ehhr0c0ECEiw01Gli880sRDs8z1QgSG0E4SkKlnV4vu5koM7ZQ8BnoeuhJPq02i4xupIQZa74cibKC4yHi2nXYBxK6X6MNNtVBqPdf4hCPoQpQTdmuJwvN67P1FWhxUZZWgSAbSibOyZ+9UEDnKoMhyupI1i48bbSmEgbHQSrkjETx8OQwts56WlsytLbjQfsJCbSkWbgHMbJBwjtO2ighpm0fIPOYhrpFfq78y7d7zSlkYP4zTCGXMX3/K27CgrQTWuJG37l+lorFBcB8/nAOFR4c4SbRrciHzXVXLUfmux12zqIqQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=4SpylYRiXp0P4k3XioNA01AuM9ZHejqqclsSfyCQrL0=; b=H9NLWIrfjDGK9yRXchBqRuzxTvYN3+6W60c6smuGzBawrPwepQ/NH1owFisIrfNcAQ+bYzDaKZ2Qb4cnzanlg+5KmeWdlgeUynHiFEOWObBbnDW7CKS4lUY6kBZ8jrV47EyihWetVj3NV6JIO9wv8u9+DgS+inJp8eB5akaweuMfG/c9adSawRHqnQ2CEPhrGtq3WemBXj1T8h8hHBkEfZ7n/cjQIiAsdIsnSi+ACLpIm808aQL5mQtpNQj6WBPk0lN73ImRpeg40K6IV5HZFWztMDf+ag1mFOLptsYJSEKcsHE3gLzPHFvPkEV8bB3ndGmBQpwYfMciV+mPeK3pIw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=4SpylYRiXp0P4k3XioNA01AuM9ZHejqqclsSfyCQrL0=; b=Ln9udPDtqlJ8BBPqLHoC1R9NuDfvjMHcNDR/xuFYt5sn5u4ILI2pzI1YiMDee/a4vuDAiaE1pgKU4/6sELlZAsdThzbOhfKsvN1Iu8OUILdEHL2KPXRjsySEuvycd76nrvRbwTAOXtMw52UoRYu1ZVSWe0xK1PDlqJ1tgBPUnMmmyUI8tbQt2w0RdT+zufMUY3uVtc6iEszqV1ngIfJ2fJPZiA3YTrYp5ZS04XXFwE4mWaU5vzu4+D0qxPHDL2PeV6fndOU/mBrd1yn8BUm3n7kIk8/DqrfAzc0ttj0TOdS9PUoPXORHRa3DyR4LZsdJlCxh7gUsjgSdunTfe2pLrw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) by DB9PR04MB8299.eurprd04.prod.outlook.com (2603:10a6:10:241::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.15; Thu, 23 Jun 2022 14:54:55 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::8002:50a5:a57a:d8fe]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::8002:50a5:a57a:d8fe%5]) with mapi id 15.20.5353.022; Thu, 23 Jun 2022 14:54:55 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v9 5/6] selftests/bpf: Add bpf_red scheduler Date: Thu, 23 Jun 2022 22:54:21 +0800 Message-Id: X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR01CA0148.apcprd01.prod.exchangelabs.com (2603:1096:4:8f::28) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: c32d93c1-ed56-47a6-6e46-08da5528558d X-MS-TrafficTypeDiagnostic: DB9PR04MB8299:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: +xBE+Xy21IY0OPQU+8xN0kQ8pAOZbr29Li+59TaeQXL9k6SRu32pdP4+iDMxa29EYBVM2kIXpf3zX1BKiijQvrdU/l4tXHeuzRqD+MhjuYK1qZRcmZ/Fxkfa2w8GBnrLNCo5ubMwVK/ZLcXLvGZYov3v9CX64+Z1+NxOSVTzDNlJ7M3mGhT2rje12Ilbct3GAnJV2QVJHUjkFK33JsELsLly1zOllVuW8DEdy5qluvZOqMW6fe2EPFk5vMc2VKtua/4lgKStnkNieNjS4gyaMEF9r++FXKGMza52wM5evebvSKOt+3kE0/L9cGskK7gjebHd+VHZJv11FGbF357pANdxyqyPwg1VbJXYTXBF1Jt+xGUwyzkvffNR58qGkJM+TWWZJNo1ksh74jBKQk81yMQ1fNho/oM/bEJ+nSChKPUV2MXnXwivEQWrrDkNaKu/ZTjr3YgXXHqlhT5Bko2/MFlCmEQZb4l9mbcX++BtfHieTRb3nMM7uAYFJJBbvV0DPdly+zDztRsA1bcNvr9RdplaSE6NQSs8oiG3Tv7WlYFcDpZB1vWY7U1q9youxpIzCkgRwgTQ2Xi1t0jV39fo9hmO4Z/AOdwynpvsJWDkRid/81o150wOksdqJ1ZMMBA3p13piUDhIQ0zinODQ8guvzDXk+w91oVXtM0UPJ8yIVuJGPp7X+TjoXgBjPdZYi/nIyx75uLfFIQHaytiaFodo5Bi9DtTE7yk3QWT6o/07CYfPR2VNCmPe742m4Hdwb2o X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(346002)(366004)(39860400002)(136003)(396003)(376002)(66946007)(66476007)(4326008)(8936002)(8676002)(5660300002)(316002)(66556008)(2906002)(6916009)(6486002)(478600001)(36756003)(44832011)(41300700001)(6666004)(86362001)(6512007)(26005)(186003)(2616005)(38100700002)(6506007)(107886003)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?leWb6Uin4bMKtz4tmR7q06DLRkNP7HqmY8uruTjt6BROMT4KKyYFu2n4Z5Qi?= =?us-ascii?Q?+47x4IFCoeiI8/HGYR4M+6EwOzmzTFiS0WJruh/aTeml9U3pYaEv8RURSmMp?= =?us-ascii?Q?7IfGr2CArIY9sOAtwkeNbgA4GhrLIBliRh71B4twopEL6zkSkQb6COEqHtUx?= =?us-ascii?Q?6g3TIdjFOsttbi6hCciWXIneTgTDBLPP4Z0ZQDQ/8B1kxMfAETryk5lt15Ec?= =?us-ascii?Q?kZ3WppiELop0dxmGFTkHYXBBxXYmFZPW6UBpDAHP9m8/bwbS34v5jlbBByUj?= =?us-ascii?Q?OURluqMPt5UH3XnYDXAxcDOzgFzgjXY19YhQxxtROwv+e2JPQ28KAtKDdY/V?= =?us-ascii?Q?w9fHqBED9bj9/J/Ap9wxmVezfhIZOOU0NCo4jU/NvDWBpU0+NwUULb3qQCfX?= =?us-ascii?Q?9SO/2wtyEpHp6LIhdEyQbIP/y+KOGPvW1QR6K4S+tSfoR8VhYWv0Fe9lNDTU?= =?us-ascii?Q?sXWb+intP0XyH/ymGcD5yuNst/aOSv9eknYAn4nIXD6uvLx4e1iGwT1L6HVP?= =?us-ascii?Q?vm3GhQERJuSeuhOYhdvHqbqRnWxvqbncDj26Rbf1l9zCE4I+oMXQRpsGrqak?= =?us-ascii?Q?ltMKsQ6nqjdQCWQdePcROg4H3QPqfnqMI0CqYVllsewwmr771vyVkf/trrAb?= =?us-ascii?Q?/rp5HCYAD06XCSBnWiqKqpfjt9PhlRBtZOZ9pNe1J3iC65lJvk9dmuvg+BOu?= =?us-ascii?Q?MgNs33Znpj1haIfMquqkNbPC7/xrbybQJZTS8RS1xX2X5sMq0w9t2ojDhi8H?= =?us-ascii?Q?RIls4v16uvAItoc/mXphsCyBNCrwXyQWJRYTAuwgRcOc522i6AXTDgYBUbKM?= =?us-ascii?Q?l/ybPHT/zdiDwV5Rl9sZS3/kq7WyOdKRV1lx2Lg3T0xIlTll2gyi0HMuvzyP?= =?us-ascii?Q?YdQzciZPUDvIMZXIsDKMquvJ0pydfdO/7JyDeSpQomMFX0bmwS8/pMAWtgP6?= =?us-ascii?Q?GMgEjR9KftpVuQ5kRy1R5NC8ISwY5PmC5lpZ2wV8lvKDgY3N+SCRPxv3Gxla?= =?us-ascii?Q?/dr+jYPYwdli8OwzCy79n+qvzdOtCGaZV2Zl2Rx+tvVzCXxYfZi2swjGI4Es?= =?us-ascii?Q?/9tbEOVcHQB8sO1Iby//XiyhMDxPpo0NPvFxsdR/Gd2Qx6c8P5lKsktnbf8W?= =?us-ascii?Q?y/0hRj/tPQ0t/8GVQ9pqzICg7qC9V3qm0HmdmCoeNvgsmlTpyj+ar/mUAqM+?= =?us-ascii?Q?8/aEFwdLjM73Zdk4Xo1QHXMXlqonJ8emzwcyJgNmqa7CmsWMUB/gJsNyqRi9?= =?us-ascii?Q?7kIXOijm9M/0VXd+v52z72yO5Vq8f0g0Pbp5agBo+TlO1qH5lPl2wfrS3p6/?= =?us-ascii?Q?lIM3ntFP+8cx0Jf0szFDtxEugBrURLaYL0kXWvvuLEyrdQHUMXdQEwOe20/M?= =?us-ascii?Q?J8ij7x6M/EwYCXOrgkj0v5TTk6P6FOcVP34DObWJLgHGoyAc3qKjsIcJQMsE?= =?us-ascii?Q?uIWED15kObXkGsPNVartmYxl6Lfe2ggfMdiAKlWH6QOgm1PvDjpDv7cnPCCU?= =?us-ascii?Q?yRv3t2l51bar2ZS27k6wTgQWAhtRvG/gyT3Mf4vuX5FKlNYMqp1RzqEcq2Nz?= =?us-ascii?Q?cI1FNUxdmhBaIC56qVDfrc9SJfkAM9tfNo3eN/8+iuWeNV3tEvbkJnq7AMea?= =?us-ascii?Q?s7gH9Y7MuGJrdix2lSRBRWLzP/+BaUID2lrEuAE8IRKEhDaJV8V87E9iqt/k?= =?us-ascii?Q?0wxv9o5eV2iraUSd5/Xlk0zwqytv1fv9b7HrJ7RycHXnaJq4iekBzQxbAoec?= =?us-ascii?Q?bu1BHG+KGOUwcoSKNH2cO9Qo6MV/glE=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: c32d93c1-ed56-47a6-6e46-08da5528558d X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jun 2022 14:54:55.1231 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: pciGxx/f1F6XLWP5lo4XUC2y5XRE9JircGsgYKGOlN2Q/VomS4JNc69RN/aDI0+yQiGaGsx7iHFjnswOuR+RbQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR04MB8299 Content-Type: text/plain; charset="utf-8" This patch implements the redundant BPF MPTCP scheduler, named bpf_red, which sends all packets redundantly on all available subflows. Signed-off-by: Geliang Tang --- .../selftests/bpf/progs/mptcp_bpf_red.c | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 tools/testing/selftests/bpf/progs/mptcp_bpf_red.c diff --git a/tools/testing/selftests/bpf/progs/mptcp_bpf_red.c b/tools/test= ing/selftests/bpf/progs/mptcp_bpf_red.c new file mode 100644 index 000000000000..58f90473e495 --- /dev/null +++ b/tools/testing/selftests/bpf/progs/mptcp_bpf_red.c @@ -0,0 +1,36 @@ +// SPDX-License-Identifier: GPL-2.0 +/* Copyright (c) 2022, SUSE. */ + +#include +#include "bpf_tcp_helpers.h" + +char _license[] SEC("license") =3D "GPL"; + +SEC("struct_ops/mptcp_sched_red_init") +void BPF_PROG(mptcp_sched_red_init, const struct mptcp_sock *msk) +{ +} + +SEC("struct_ops/mptcp_sched_red_release") +void BPF_PROG(mptcp_sched_red_release, const struct mptcp_sock *msk) +{ +} + +void BPF_STRUCT_OPS(bpf_red_get_subflow, const struct mptcp_sock *msk, + struct mptcp_sched_data *data) +{ + for (int i =3D 0; i < MPTCP_SUBFLOWS_MAX; i++) { + if (!data->contexts[i]) + break; + + mptcp_subflow_set_scheduled(data->contexts[i], true); + } +} + +SEC(".struct_ops") +struct mptcp_sched_ops red =3D { + .init =3D (void *)mptcp_sched_red_init, + .release =3D (void *)mptcp_sched_red_release, + .get_subflow =3D (void *)bpf_red_get_subflow, + .name =3D "bpf_red", +}; --=20 2.35.3 From nobody Tue Apr 30 16:53:55 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:ab0:35eb:0:0:0:0:0 with SMTP id w11csp3164588uau; Thu, 23 Jun 2022 07:55:06 -0700 (PDT) X-Google-Smtp-Source: AGRyM1sd1t3FBLwkcCxWyopk+Pa/vnXIRz2clS+ame2fYB3I8e3mGgxwu44BXGvauRLww9mF7UX4 X-Received: by 2002:a05:6870:d20f:b0:fe:110:267c with SMTP id g15-20020a056870d20f00b000fe0110267cmr2727403oac.250.1655996106660; Thu, 23 Jun 2022 07:55:06 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1655996106; cv=pass; d=google.com; s=arc-20160816; b=IcUKcht/SE5hobCUFEUze/Mw3qNe6iwFf8h2W5RJk7XGHoeDK+1m2EMejpWqlLRsjM fu3Ee2mxW+m1hV8XdoWaKHXeXffnPE2l5aFooYm+lDHGS+ciojMmVcGyotKQZx+2T43j MroUpuW9uk0yHm6i6P92hq6GFNvHwjcnVtD3YckhOZY6PO/rw1jzSxxmt06YzuWmjSuK bdaMWgPhFQZKHrQk3tf2vXc1JlqM+pdPq31rkyELJzfyfmhDAyjTuG4d2baWAjh1p7Mr 2hzOP0AgjyM2ANzJfn4ukXi92gKpFzw+FZeyaC58YtYIXmMqWDElKxjHoZoWq9iUBytW P/Xg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:list-unsubscribe:list-subscribe:list-id:precedence :content-transfer-encoding:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature; bh=G5VgHOKGiA2QU4SHX+fkno94QBSUGbqMBV+Qv9K8cJ4=; b=UXkI4gEuvzWhf/9Li1nd5a2Cxbg1C6tRZiWGt94oWDE6sF2Thy2eulZlqlc5PIOqdW iF+72mUUEaqCmMfploXmzwHt2xQ7QHY+JekFa1KrXP7AM4GxgbU1OxM2kGQ3LPHV1zud zPeTXn3GKJZ1h6oZodXcPCQ50+9WPI1qW9ZzP45FriX7bO0Rvk89zLxLGzM+iq8+FFsq l/qTw9qLLWNztm1PZAXs1Q5iGrMa9P4fe3UtvEDt2mHqoJp/77pqRyMBYJ6q6R4xSosw Bh6NzMJKBoAFRogYFNfGjzALNxILkbx94/0t4zsfdOUx8dA5hyZ3VC7tA2CAOrU8UFVy Ck4w== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@suse.com header.s=selector1 header.b=imhagwWs; arc=pass (i=1 spf=pass spfdomain=suse.com dkim=pass dkdomain=suse.com dmarc=pass fromdomain=suse.com); spf=pass (google.com: domain of mptcp+bounces-5796-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.84.19 as permitted sender) smtp.mailfrom="mptcp+bounces-5796-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Return-Path: Received: from da.mirrors.kernel.org (da.mirrors.kernel.org. [139.178.84.19]) by mx.google.com with ESMTPS id b26-20020a9d60da000000b0061685d60cf1si6419335otk.160.2022.06.23.07.55.06 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 23 Jun 2022 07:55:06 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-5796-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.84.19 as permitted sender) client-ip=139.178.84.19; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=selector1 header.b=imhagwWs; arc=pass (i=1 spf=pass spfdomain=suse.com dkim=pass dkdomain=suse.com dmarc=pass fromdomain=suse.com); spf=pass (google.com: domain of mptcp+bounces-5796-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.84.19 as permitted sender) smtp.mailfrom="mptcp+bounces-5796-wpasupplicant.patchew=gmail.com@lists.linux.dev"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by da.mirrors.kernel.org (Postfix) with ESMTPS id 52D222E0A4D for ; Thu, 23 Jun 2022 14:55:06 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 135E843E8; Thu, 23 Jun 2022 14:55:05 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-eopbgr150044.outbound.protection.outlook.com [40.107.15.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8ADAC1FB1 for ; Thu, 23 Jun 2022 14:55:03 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bQRZn9huyr9tARKVpstQzDHbemH80XlvlSy3fp/MPc9x2YrcTCOEYRf52zwKpR/607+gUM/tFGwpquZ6i5eRpFyl8m/0MmkJV8e5Q1GJwPidPkNq94x/XL0Qo2FlCa3/6B2WOW4u1blbHTu+kYJCbk7hNQ6squLE92xAe/MiiIo1lryz8SkAqpHrr72pigGRCAAoPaJc4zZQEbxkM4MGlqmlkIlKfWavHCKbCi1RwXmmiImTpt+e/rv7pvcxF3kTvU4JxBHo0q+GAcI35zAru23FD0i/Wwz882g+tjWF+ZhVHWuQN4bgTk9mxs/4N+EG+df0vVKlCzU+grvw8aX8vg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=G5VgHOKGiA2QU4SHX+fkno94QBSUGbqMBV+Qv9K8cJ4=; b=mUTfe9Y2Ly9T7zcmmHVMBeX/MkraNAkunmZRz++M+ZC5l18xKySfHmaYVIwiTyF2FYl/A1BmwNMd5UQnTVanGawKUjVf58+tC/MQGgcOYxDmVOoGX4We/6igxp4nlsO+tpu86u24yc4MWfSMqNiR7D60SrRST0ffAIvPybXJz0w8FGTYvwNyNDqYYqiuM8Lt157udjqV8rxEf/lnFDxH/EWLQjCcVVFXyZto5YHCZShajc0dZ7XL/RQRJ406JzyL7rjNjZ8kwulqUK5Vtj0o19sZHMN5oYcEJET1lFdfFdFrkhv+6lHuEQZaYzfQHdSBSeGh8X9yWzGNdkKBsf3Phw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=G5VgHOKGiA2QU4SHX+fkno94QBSUGbqMBV+Qv9K8cJ4=; b=imhagwWsqykBFniqIMON2x1rawaVNymjDSJ8qWc6zg5IJdKjcr5Gc0ks0z9dE4YcvBf0taBbG34GrVN1EjTSUo1T3+Sm6aictLHxhvF5nXOFWvBP2DLFUNB3QqRny0frst9wyLplLmOxobynTHYP+z8dFGoNJUOMkjZBMVrdu66LdCFR9sKAth56RFno2kJ88jE8SBWd8A03Cc2lZPjEQ1KseLpDf0ncDNaVxiheZifjK/GE+8AB8tewQhh6xvN3drsYG+gw2e95+fB283XnBONjmMgsVQMj/GXj3vYytOCT9yyJsW5/swjVdF4Mh3pHTN/H52PHnOgvByQHKdxmGQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) by DB9PR04MB8299.eurprd04.prod.outlook.com (2603:10a6:10:241::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.15; Thu, 23 Jun 2022 14:55:01 +0000 Received: from HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::8002:50a5:a57a:d8fe]) by HE1PR0402MB3497.eurprd04.prod.outlook.com ([fe80::8002:50a5:a57a:d8fe%5]) with mapi id 15.20.5353.022; Thu, 23 Jun 2022 14:55:01 +0000 From: Geliang Tang To: mptcp@lists.linux.dev Cc: Geliang Tang Subject: [PATCH mptcp-next v9 6/6] selftests/bpf: Add bpf_red test Date: Thu, 23 Jun 2022 22:54:22 +0800 Message-Id: <9eeeda9e63480ed2ac0b01399a70a5c3e92d9816.1655995770.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SG2PR01CA0134.apcprd01.prod.exchangelabs.com (2603:1096:4:8f::14) To HE1PR0402MB3497.eurprd04.prod.outlook.com (2603:10a6:7:83::14) Precedence: bulk X-Mailing-List: mptcp@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 83d1791f-bca6-432e-90c1-08da55285950 X-MS-TrafficTypeDiagnostic: DB9PR04MB8299:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: fkGeP6kPiAAqd4HEp1mLVq1/d87jGb8M6ensjcildt2tJT+4gvlRX1rVN4aTqvN6CZRO2FLbCXSFRszqqav35ek22cqE0uAZpxJUOt1ldA0Ne8Yw/eS+D7yK9/bys4hxtHYBMDFEy/GrL1/O7OnSX47n9UbSq3vhDWZAPVdwxCv5hXYFAP3+9jpDqCR5OhJEImAUKrBo89SiIqsa/AUBDzNbwvctm5hcyNDGL0dY+oGgj4XZXWe/G+ZDYpKbjJpVgmS8m+6U6zaFdzPo/UFCsMXwTICoKx7MifAjwJ8yTcI0mxuCB2AoGNrNq3oI2PWawQl4nuiJWSXPojU+x8tK/12eGLIr0dHIoZAt6MVDyOAo+gppm9AroU+zZ6kEXJQghpvtELCmtCTS96TcWn7wrXQ8xA+rorjd3vPbNoQTi/utxxjOhc5CaZ3JyZ8TrFDSKvLb+KIgBkDdou6ilHwnnXS0/+RDQoWVRC/aSiw+S+jCUOaoNvLup8ssRviRw0jbbjsr0zoEpNmqF9zwD3bePJuzrMYIAs/T7kC5yx1KgbJX9UI30WLmCauWwJJwbOCn3VYvmulcng7cTfp1WLS5b4Yi5FjxH58qpcX+YBaHSJAzPJtYg/Rf1ZKtU7DPfVxXaTAGDRCue64xaEO1dTKiVW0vnvl45Wx9LuOj3lIJ+I9ANxW90uqvRM7XuwPRY8FJ4guE/fBdHGU4W7yggFT239txEyNtgYkFm+nngl9kgrfiMHgaNQwEzy5xzLigmWk2 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:HE1PR0402MB3497.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(346002)(366004)(39860400002)(136003)(396003)(376002)(66946007)(66476007)(83380400001)(4326008)(8936002)(8676002)(5660300002)(316002)(66556008)(2906002)(6916009)(6486002)(478600001)(36756003)(44832011)(41300700001)(6666004)(86362001)(6512007)(26005)(186003)(2616005)(38100700002)(6506007)(107886003)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ZdrF/XpZ6ZUo12G/HEzKNZxzV4BbU55/5sdRQErbWommn7KP9EpE17pjnBWl?= =?us-ascii?Q?lx3lXMmyVGmtCi+F6TW9y5kNbEd2diKUYL8trtJeqaiiRdPKCIux0TavLJi6?= =?us-ascii?Q?GLdWrvu6dW5c/t0WDMANrDAK89lCYCfTP2Ggz3zMhiyA7m5YS3I9hFk9ubMW?= =?us-ascii?Q?e/EZNDprmJ2q9Al/+F1nSQrjWSYIZJM+hQ2pzeKCl8fwWR3OKHWDmCD699cf?= =?us-ascii?Q?7qWql1bbDRnA0GjQVesRbVqVhHK+jC3Xeo9FSLEnu6hdoeGdj7RtjJI5akj1?= =?us-ascii?Q?JLnSJGo78N5Pk0JOrmQNf2doxewML59ktXs5c3kahYqMamKAlfZ7h1QyUSfN?= =?us-ascii?Q?zd2+nF2J28eR3bElazGhIoooGoRHuLWiDOW2G69tALDy1Msj9c30zhqHfUl6?= =?us-ascii?Q?/WtZ0v7eycZtopJIZqMWAIAUD8uygGXBckgplyLEl3Myqh1QcWQB9/hLHi7g?= =?us-ascii?Q?ICIeJqxPtTfWEuBlT3A3GcTGaOi1Ua3PmouCpgbtNWH1DfLcCH5HZ2w3Ib1v?= =?us-ascii?Q?0DXY7Q4bAjs4stCaQPe12pzwdNAc8NySj+pzlSyfsi1u+dqfukNGm8zgUbVU?= =?us-ascii?Q?VeTIpi88bcizl5MiZbGpQ1Zhwj57ysxdYCzdxcSeIT2JiO3qIcdq+NZfbAaf?= =?us-ascii?Q?10eH8Kww97E9i35pupaZZ5qUiJnGtLabqIQuapJjFD85MH+14MPvAF4+uj6y?= =?us-ascii?Q?cEG4W4vWKmHInVu9X4h5eixquSnRsKDBEcPlVvy5rqbRy7WSQoBY0M4fzyjn?= =?us-ascii?Q?ynnxkcJwG/sJoLP9FzDE1i9EHHBO6fUj+iD+4ySH/387UC4Zb16Z7EiAkGb0?= =?us-ascii?Q?V52CUV4Joh0Xjj9uRC2SICsYAxrChbdJC718TzhFZaYB7SAS+QTVVYUKsOh4?= =?us-ascii?Q?k9uNrYW+waYElygkBO17kAsliQj1R2sJOEl9GFcQxkbCK3sm/+cvtY80ajbV?= =?us-ascii?Q?T83OuGQ87CbFRu9BVdPlW8z2ZJN7Q45Zrd70QYUoL2t9HT2K+T9jjoR3ckWW?= =?us-ascii?Q?/55FWKYiTw2CvJA6Pj7SzdMusqJxid/hrZlsa9sLRtfVACKmvJmHht/wEDpO?= =?us-ascii?Q?sxZ+Y2izaT95OBl1p0Q9m1mO/uUeF+Esw5RyGMrFC+vi9o0XvsBd21k30I9S?= =?us-ascii?Q?Cu1Hpyg1W8/VNhw1EkzdVdSY/Hzobw9a7+BpL/2B8n87rN1DiyurN6i26U4x?= =?us-ascii?Q?ErpTC6sVbZ1+bsguvS/usASJ2+Z5dIztPl9jZbEsiEOxiUhxnIcQHpIANhwB?= =?us-ascii?Q?+60o+BbiHs8WhIKry1iQR7zausAjnLGloL0qhagC+TbcLmrPtAgEXjYqHa9F?= =?us-ascii?Q?eFuZvpyBw9YJEGneDSpriY+hjdlrvKPwGVEJA9ercNeLK9lzdMtNsaITpptv?= =?us-ascii?Q?ustfGovW94p9uS+V3oVRu4DWvZ3NfXUZa1BLBfar+y/4vxJFptXNXgH3Ihoa?= =?us-ascii?Q?Cy4gHyUfM2XL6AOnvigr+KmyYIiYTIIb0le7Qapz2jQ7rSo4rv042Om7govs?= =?us-ascii?Q?BxaSaqNRngEn0qZrGcNVn4GP+CswgL2efj7E5y7F5/INgrj0x2nDknz6+Vw9?= =?us-ascii?Q?3Knzbj5walAVN+0RfEtyV3PGesj42KlIW+7mhDxz1D8mCWQqv/txfY6ZG0gw?= =?us-ascii?Q?l93SGPKNjt2dU4OrHT4NOuWQncZBXlLKln07MN6m2IerFff3mW2izlUH5DB0?= =?us-ascii?Q?VBZVUE9GnAVKPIqUmEDwbyfMz4POj4l7WqX0FNRr+zEMLwdTNwsbHDOtwprA?= =?us-ascii?Q?keHDxgX4rwbc/INmWdLBlyN+mwIFbVU=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 83d1791f-bca6-432e-90c1-08da55285950 X-MS-Exchange-CrossTenant-AuthSource: HE1PR0402MB3497.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jun 2022 14:55:01.4351 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: PwVAMY/d+AB/h3H9fthkedXdJmjJE5nGU6SPguxDndtq7wo1fXB0xPDP+fnB9c/iIkIi81gAIiCM5ZeRbEW5Pg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR04MB8299 Content-Type: text/plain; charset="utf-8" This patch adds the redundant BPF MPTCP scheduler test: test_red(). Use sysctl to set net.mptcp.scheduler to use this sched. Add two veth net devices to simulate the multiple addresses case. Use 'ip mptcp endpoint' command to add the new endpoint ADDR_2 to PM netlink. Send data and check bytes_sent of 'ss' output after it to make sure the data has been redundantly sent on both net devices. Signed-off-by: Geliang Tang --- .../testing/selftests/bpf/prog_tests/mptcp.c | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing= /selftests/bpf/prog_tests/mptcp.c index 647d313475bc..8426a5aba721 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -9,6 +9,7 @@ #include "mptcp_bpf_first.skel.h" #include "mptcp_bpf_bkup.skel.h" #include "mptcp_bpf_rr.skel.h" +#include "mptcp_bpf_red.skel.h" =20 #ifndef TCP_CA_NAME_MAX #define TCP_CA_NAME_MAX 16 @@ -381,6 +382,37 @@ static void test_rr(void) mptcp_bpf_rr__destroy(rr_skel); } =20 +static void test_red(void) +{ + struct mptcp_bpf_red *red_skel; + int server_fd, client_fd; + struct bpf_link *link; + + red_skel =3D mptcp_bpf_red__open_and_load(); + if (!ASSERT_OK_PTR(red_skel, "bpf_red__open_and_load")) + return; + + link =3D bpf_map__attach_struct_ops(red_skel->maps.red); + if (!ASSERT_OK_PTR(link, "bpf_map__attach_struct_ops")) { + mptcp_bpf_red__destroy(red_skel); + return; + } + + sched_init("subflow", "bpf_red"); + server_fd =3D start_mptcp_server(AF_INET, ADDR_1, 0, 0); + client_fd =3D connect_to_fd(server_fd, 0); + + send_data(server_fd, client_fd); + ASSERT_OK(has_bytes_sent(ADDR_1), "has_bytes_sent addr 1"); + ASSERT_OK(has_bytes_sent(ADDR_2), "has_bytes_sent addr 2"); + + close(client_fd); + close(server_fd); + sched_cleanup(); + bpf_link__destroy(link); + mptcp_bpf_red__destroy(red_skel); +} + void test_mptcp(void) { if (test__start_subtest("base")) @@ -391,4 +423,6 @@ void test_mptcp(void) test_bkup(); if (test__start_subtest("rr")) test_rr(); + if (test__start_subtest("red")) + test_red(); } --=20 2.35.3