From nobody Tue May 7 01:08:50 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6a06:869:b0:4b8:7781:bd2f with SMTP id d41csp4249894pis; Wed, 11 May 2022 05:17:58 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw9YzanbIgOMqGLPDVpSgD0TuN3aMtph0XPBxuzZjrO6uYkgyJh5BNfKl0xeI8W1a8Pg0u4 X-Received: by 2002:a63:5a1e:0:b0:3c2:7057:25c3 with SMTP id o30-20020a635a1e000000b003c2705725c3mr20737692pgb.529.1652271478867; Wed, 11 May 2022 05:17:58 -0700 (PDT) Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [139.178.88.99]) by mx.google.com with ESMTPS id c7-20020a170903234700b00155e153b8absi2655542plh.482.2022.05.11.05.17.58 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 11 May 2022 05:17:58 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-5250-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=mimecast20200619 header.b="X/lzu+Mf"; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-5250-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.88.99 as permitted sender) smtp.mailfrom="mptcp+bounces-5250-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 926BE28033A for ; Wed, 11 May 2022 12:17:58 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 8766428F6; Wed, 11 May 2022 12:17:57 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.102]) (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 C26EC28F3 for ; Wed, 11 May 2022 12:17:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1652271473; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=S3CmzXWoSV+s422OOrtUvM0WW4G8zTwCdTJGiM+Tv98=; b=X/lzu+MfeVw1KY/6/ST9ov4O5NCitX/8dqzdLh/bHRTc+AqRJTB7blHstSwyiHfEq9BSs0 /nictSLIMSm23t3kyYXx3BBydKtbuYrHBeN/LCN1rjhIiWliVHayNrTL4ersVQEUi8qAlE cSRpBClEAHePpmMS5mt5/H4aRIus8xs= Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04lp2059.outbound.protection.outlook.com [104.47.14.59]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-25-_BFTYsm0M2WIlqTjwebMig-1; Wed, 11 May 2022 14:17:52 +0200 X-MC-Unique: _BFTYsm0M2WIlqTjwebMig-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=krNqnQbf+n2x5VN/xA13MuKfgtJ7D+QW71NqquJnwcO5K7H9QNJaecouqinH1OXwW29tbwM/VJxKKU4TjvxPX8bA7FKS68ncgcOnPWpx6X1z5xjiTjcXXbVaA/TMn3P7pWsblVX30BN2D7mXXvbTvPazjU2DYd1HK79FdK+/UN8aujDBQ/a7w4Y0oOQKMCV/NeKh5xfbZMsJoFOouvIihoZS71F6VV5SHm4f3JDNm98+VDsFxs0GIycVL2AoWerRB1qeKtxM8jPSnXSBrALCRM2j/ofBAOvoe0UptZtwzrcORnJZeamLYuICJ3/jtrhY1uKQfPCGeitVC3NWCoRdkw== 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=EAAFsTW/SR2wIEcikYy9sDWlIiWAA/zr4GqSTsjKHcs=; b=YgTGeqyACBxx3EWI4AAxyrQYp5beZO6Be5SCg9bJQRvUv4xRFkX1QdsX1+1a/aL383oUAgJNQkXfJPy+obSlbW9LUclsZSghw2q2UhesF5ey8hvOxv8C7cdXqjoicyedwsLBNDZzbbub7n64elVvsygKSUpPUkUcEACHDBm2BJf00W0jsx1t/Ffi4Et9O/m+5KcpXLHi/4tw4n/fQrT7rSqdNj10Fdm/JWoJr7KqywaqjvnML0YxFoWAQi4y8bNFrc4HRZK1gZRfg0I+03OauAtozUVC+2yJx9/iDyOWsLQtW0TNjmICWAGjUNgoSGqUPnPmyvau9XQgYTeQm3o0Eg== 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 Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from VI1PR0402MB3503.eurprd04.prod.outlook.com (2603:10a6:803:d::26) by AM0PR04MB6131.eurprd04.prod.outlook.com (2603:10a6:208:145::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5250.13; Wed, 11 May 2022 12:17:51 +0000 Received: from VI1PR0402MB3503.eurprd04.prod.outlook.com ([fe80::b5c8:f15:91fb:33f7]) by VI1PR0402MB3503.eurprd04.prod.outlook.com ([fe80::b5c8:f15:91fb:33f7%6]) with mapi id 15.20.5227.023; Wed, 11 May 2022 12:17:51 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v2 1/5] Squash to "mptcp: add get_subflow wrappers" Date: Wed, 11 May 2022 20:17:41 +0800 Message-ID: <6e5584131d6f5dc59a6162260dd8f5295197acaf.1652271034.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI2PR01CA0027.apcprd01.prod.exchangelabs.com (2603:1096:4:192::7) To VI1PR0402MB3503.eurprd04.prod.outlook.com (2603:10a6:803:d::26) 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: 22e2c2fa-bfb4-4786-c4d5-08da334844b0 X-MS-TrafficTypeDiagnostic: AM0PR04MB6131: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: dsns9YsnvCdoM60xugKDdDckfXG5m5V3ek2LHXjAp+bVlWUbmd9U9vZsUKZMqXZ8UHiZn7wMSR2v9sNe6TwuMlY9g4RKPWZaPcvOYUHBfWM2VhFptljWPv115EXGhiSlFWZCOkUj1NmUBf2el36vP2WDfWY1HNizTtNGiUjTfl6GK0TYfTFBRgc8qkes1l0GYHurI9iXZ3a/f1iaYaAwOcSY5dX+7D+n1CCSRC/SPYFmBVT9Ud5PT7XNG79JTZMRYGeAvrw0QpzRovTF4RINW9vbzVeNyWFANM2EtEUc+Nh5m6xUQ0vn3LMy7bGcEuWS01MaRk/0/iGE51HW+/0yrbsfyRa24Ep8O4eQ0HqQmaQ9BMg9Ii7C9yGUoF6nsOfkdnHHMMyF2/neKGzRM6SNr5QvR+VJYVBa77MS886dWgp9syD3xZtpdeCR9gnuONGvTSxITCJf4XtlXLmJZwlW08EMv5nDdZz/k+06NmM5Yz1IDxo7vJV1IiFQo8344GrzFd04kYWkFeMrTFXCemMR6Ggm/9sFQtfl4wcLZ7Sw+txvcMvyu1E9Ns16oeaT3jMLYnppZAV1XM8n/nY8/IXqRveI59ZrRxEOUxgqodG+5SZCEzGwnq27qPNtkxkSFpiawx0uICJRuS6XhmSrWgOR+Ke98wdOCMNrJp+D5E8GhXjuzcrFkzkW8Q8oME8zUU8+5tU0szb5YtcodMwxenazsg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR0402MB3503.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(2616005)(6666004)(6486002)(38100700002)(107886003)(26005)(316002)(2906002)(6506007)(6512007)(6916009)(508600001)(186003)(83380400001)(36756003)(5660300002)(44832011)(8936002)(4326008)(66556008)(66476007)(86362001)(66946007)(8676002)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?rIoxm/swTrzbVMZ7+fp0lXmoS5XihF8TwUcNXScqdn9N/iNESthoJX3lplpW?= =?us-ascii?Q?IV5EG7GTPMb+tuEC7fsKOihNcNAYn2v8T0Uj3xvZUf6HJdj6aIgRScy0lKTo?= =?us-ascii?Q?R9xdkIFSvEmApnBXeZ7MGO4uCsAZBsD8euBMws5ITK9AyQx4S6krRZipRsBE?= =?us-ascii?Q?bn/1W6XSHf+n+z92tdiRDHrWshrfs4/8OhkTxC3aTYJwSS0+AfGQQwfCqHja?= =?us-ascii?Q?94jgbeHFjSPsXlKlBbFbx5siab70+o5kcrJSqEDxrJtwWqqHlldRYLbl1hTT?= =?us-ascii?Q?oFPsBNDW264tyfpy/LCb+exmeUEji6eGVSBY2yzriB5U6jgmUYaZ27j4FGR8?= =?us-ascii?Q?UFecen1M9VrCELgrzq0aa1frjxXnxHk+0WbixAKU9mDe0SnaTwzwDdoZhj2I?= =?us-ascii?Q?tB5X9P6G9xbUXLR4N38uMYdvWddEx08d6uR+Zy6Baqgnx5CK0zqBE3uqZ9SW?= =?us-ascii?Q?xKWwL6w0efNxHGz/7aSVhJCU/iWb+Gyl8dNZ7xatbUCe7hLXQePQPFbs1ZRW?= =?us-ascii?Q?qDIH4RMrqdmEixckOVPFVNyyDRuxYS/9WeU9MiF3Gud20Bl3AWPgkicmk3vn?= =?us-ascii?Q?yZAaDD11RTOYMMDfiv8cP9Dp2gMZpYNg54ctrYt0Ejwu1280naj/CA5PNDtB?= =?us-ascii?Q?jm8fH/5axWojgDOH+9zyqFYK+gG121I2WIjzUjOU6btqbHViF6AMD0g/pSJN?= =?us-ascii?Q?uhENYGTTw5K1MEQpG4DN1Jy1sBC6/q+Z2MGLOuHdq4bfNKdac1l4hHNgKK6e?= =?us-ascii?Q?xt8arKbHzXpf1pCYHKxkLk30Sp6wIEVwkP8cRffzHabGw0EU5XBgoFRXy+j3?= =?us-ascii?Q?gmDyf5eHEbq4bPeUaygqL4adKeyO3BwtdVgrCbunvNVBV/dBVKRH4nzxvkb5?= =?us-ascii?Q?oZ7WtN1wcn5v4gVKWhxUJY65EbprWFB6LgURQD1tXmnS1gFvmmBO5VLUTvbf?= =?us-ascii?Q?NyWZ/Jb7LqCEmVdo3WgPG299nQr4bpvrggvQtBcK5aO3Dn+tOEV49FQQHJOz?= =?us-ascii?Q?KmJGKFpUu+6+SfiHIEccbfDwNboqjxLSZyROdVWhSdPlT8yiwePxs4zmhuoR?= =?us-ascii?Q?OhqirF8HVgf+0UqDcMHPwGaWfl2OHuXkgDaFJIUXS04szMuSqTt7OieCxdK6?= =?us-ascii?Q?Q8rtg7pRkcew0PBSJL6Fd45fwIM7UlsKY60RwLntDuVTTUGY2SKjfjeWAUWM?= =?us-ascii?Q?2cbA1q1We3YOqk72ao8D0o+zy+/jQ/bs6OGw7lhRD7k1GZ6eMO4KXEOCR3ay?= =?us-ascii?Q?IktGE9wRUW6pe73JbEwTNnFomaAVFYd4Gvfo8J8V5E2Z+3CBC6Y18D0E6vP2?= =?us-ascii?Q?2H/gSEnvJJFc4ntiGHlhOJbwQub2g0W0qCvjCtcjPxEnCoNFAAbaCS1zdRRT?= =?us-ascii?Q?eMQWuzghD5jgkejWQBzGEGw2OJMSyrYOWJC/C9yIQ6OFSDRUpyoWRC3f7E0h?= =?us-ascii?Q?9IbPeEHaC5S5rcTD8dDz087/Jx6EJN+9BB7Dk9o8N8iDdiskkbiLl8rB/6fz?= =?us-ascii?Q?sdnoTZCPUVi4498rgXGY0ePwiT3DR8FwmMuP6uXtVvYgscwXM4Qdfi0CAC0j?= =?us-ascii?Q?wJf6pxUz0dbJSQ5laBnuNKwyvU5sUkJ9rl4RPFqd11pQMqeYSdK0ty1wYLbk?= =?us-ascii?Q?YdH+Re4BPmZPJ9tB6WqYY6rZbtroo4OCmzrQrHlQZ+Oehu9V+FECVT6cR7nY?= =?us-ascii?Q?4A44LOxi73Nx23cC4d3WI9YLBSUr4eAfTacuykYd8E89DDdtbslG6QJFeeH5?= =?us-ascii?Q?Vgu+N8bBry/eaonytXqiPgSbcc1kQt0=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 22e2c2fa-bfb4-4786-c4d5-08da334844b0 X-MS-Exchange-CrossTenant-AuthSource: VI1PR0402MB3503.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2022 12:17:51.1162 (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: veRTi/wXs2uGTis9PqMI7fhDO/9CIZRge2KmGGWrryNV4R9ELKgrFc20OAYhqIE3AHzaJMXLYGBC2+DJp8mUwQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB6131 Content-Type: text/plain; charset="utf-8" Add call_again parameter for mptcp_sched_get_send() and mptcp_sched_get_retrans(). Signed-off-by: Geliang Tang --- net/mptcp/protocol.c | 13 +++++++++---- net/mptcp/protocol.h | 4 ++-- net/mptcp/sched.c | 10 ++++++++-- 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index ea3c93322592..74dc832a9d9d 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -1558,6 +1558,7 @@ void __mptcp_push_pending(struct sock *sk, unsigned i= nt flags) }; struct mptcp_data_frag *dfrag; int len, copied =3D 0; + bool call_again; =20 while ((dfrag =3D mptcp_send_head(sk))) { info.sent =3D dfrag->already_sent; @@ -1567,7 +1568,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_sched_get_send(msk, &call_again); =20 /* First check. If the ssk has changed since * the last round, release prev_ssk @@ -1618,6 +1619,7 @@ static void __mptcp_subflow_push_pending(struct sock = *sk, struct sock *ssk) .data_lock_held =3D true, }; struct mptcp_data_frag *dfrag; + bool call_again =3D false; struct sock *xmit_ssk; int len, copied =3D 0; bool first =3D true; @@ -1634,7 +1636,7 @@ static void __mptcp_subflow_push_pending(struct sock = *sk, struct sock *ssk) * check for a different subflow usage only after * spooling the first chunk of data */ - xmit_ssk =3D first ? ssk : mptcp_sched_get_send(mptcp_sk(sk)); + xmit_ssk =3D first ? ssk : mptcp_sched_get_send(mptcp_sk(sk), &call_aga= in); if (!xmit_ssk) goto out; if (xmit_ssk !=3D ssk) { @@ -2461,12 +2463,13 @@ static void __mptcp_retrans(struct sock *sk) struct mptcp_data_frag *dfrag; size_t copied =3D 0; struct sock *ssk; + bool call_again; int ret; =20 mptcp_clean_una_wakeup(sk); =20 /* first check ssk: need to kick "stale" logic */ - ssk =3D mptcp_sched_get_retrans(msk); + ssk =3D mptcp_sched_get_retrans(msk, &call_again); dfrag =3D mptcp_rtx_head(sk); if (!dfrag) { if (mptcp_data_fin_enabled(msk)) { @@ -3111,11 +3114,13 @@ void __mptcp_data_acked(struct sock *sk) =20 void __mptcp_check_push(struct sock *sk, struct sock *ssk) { + bool call_again; + if (!mptcp_send_head(sk)) return; =20 if (!sock_owned_by_user(sk)) { - struct sock *xmit_ssk =3D mptcp_sched_get_send(mptcp_sk(sk)); + struct sock *xmit_ssk =3D mptcp_sched_get_send(mptcp_sk(sk), &call_again= ); =20 if (xmit_ssk =3D=3D ssk) __mptcp_subflow_push_pending(sk, ssk); diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h index 59a23838782f..2fe0021a678e 100644 --- a/net/mptcp/protocol.h +++ b/net/mptcp/protocol.h @@ -631,8 +631,8 @@ int mptcp_init_sched(struct mptcp_sock *msk, void mptcp_release_sched(struct mptcp_sock *msk); 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); +struct sock *mptcp_sched_get_send(struct mptcp_sock *msk, bool *call_again= ); +struct sock *mptcp_sched_get_retrans(struct mptcp_sock *msk, bool *call_ag= ain); =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 f86b97292044..0d5fc96a2ce0 100644 --- a/net/mptcp/sched.c +++ b/net/mptcp/sched.c @@ -112,12 +112,14 @@ static int mptcp_sched_data_init(struct mptcp_sock *m= sk, return 0; } =20 -struct sock *mptcp_sched_get_send(struct mptcp_sock *msk) +struct sock *mptcp_sched_get_send(struct mptcp_sock *msk, bool *call_again) { struct mptcp_sched_data data; =20 sock_owned_by_me((struct sock *)msk); =20 + *call_again =3D 0; + /* the following check is moved out of mptcp_subflow_get_send */ if (__mptcp_check_fallback(msk)) { if (!msk->first) @@ -132,15 +134,18 @@ struct sock *mptcp_sched_get_send(struct mptcp_sock *= msk) msk->sched->get_subflow(msk, false, &data); =20 msk->last_snd =3D data.sock; + *call_again =3D data.call_again; return data.sock; } =20 -struct sock *mptcp_sched_get_retrans(struct mptcp_sock *msk) +struct sock *mptcp_sched_get_retrans(struct mptcp_sock *msk, bool *call_ag= ain) { struct mptcp_sched_data data; =20 sock_owned_by_me((const struct sock *)msk); =20 + *call_again =3D 0; + /* the following check is moved out of mptcp_subflow_get_retrans */ if (__mptcp_check_fallback(msk)) return NULL; @@ -152,5 +157,6 @@ struct sock *mptcp_sched_get_retrans(struct mptcp_sock = *msk) msk->sched->get_subflow(msk, true, &data); =20 msk->last_snd =3D data.sock; + *call_again =3D data.call_again; return data.sock; } --=20 2.34.1 From nobody Tue May 7 01:08:50 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6a06:869:b0:4b8:7781:bd2f with SMTP id d41csp4249927pis; Wed, 11 May 2022 05:18:04 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz7efwkKJ3VHCKM91bwCOdmeGVeusEXfgpCB1RTKp8Qgrcks447C1xp2DonyY65/9/1oUgM X-Received: by 2002:a05:6870:c093:b0:ec:c13e:f938 with SMTP id c19-20020a056870c09300b000ecc13ef938mr2502482oad.123.1652271484875; Wed, 11 May 2022 05:18:04 -0700 (PDT) Return-Path: Received: from da.mirrors.kernel.org (da.mirrors.kernel.org. [139.178.84.19]) by mx.google.com with ESMTPS id i10-20020a056870344a00b000ee7eb7ef21si1340641oah.109.2022.05.11.05.18.04 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 11 May 2022 05:18:04 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-5251-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=mimecast20200619 header.b=DeYvXcOo; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-5251-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.84.19 as permitted sender) smtp.mailfrom="mptcp+bounces-5251-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 8CECE2E0A0E for ; Wed, 11 May 2022 12:18:04 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 21EEA28F6; Wed, 11 May 2022 12:18:03 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.102]) (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 EE5E228F3 for ; Wed, 11 May 2022 12:18:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1652271478; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=SHmdZbA5DCdBlzWX5veEwr86/My3Y86pnoae4lrgSQA=; b=DeYvXcOofrW2qzjsBUxDA32waTz2+C7qNyM0VJirlwjSJGYvhrJVuYyH75ZxSNv76Awgnj KJKpY587xMzvkX7IUmmz2nWlPKk9PZ8VzjKZh65L0oidcwhz700EfrnLMpnOY54ZNkMxSu izDNAos8aHHvaqCdGl8lO3RYAGohAQI= Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05lp2112.outbound.protection.outlook.com [104.47.17.112]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-41-bmmzmv34M8CkPf-sLVk8kA-1; Wed, 11 May 2022 14:17:57 +0200 X-MC-Unique: bmmzmv34M8CkPf-sLVk8kA-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dqXQVCnQ7vrl+UXj5rQlgKTo7U1RCcqViOrEyNbHp1g0s0Z+vRU/+qLbOJsbA6qJxIk94EW50XNKq4DC6f3q9BCy9FQQ2gEbtmmZnieUQTt1rVohAmJWqy7uBbWSMGJJ+szovyJffMEexyDroJbXJ5LYNyw3Sp51S/N9/jhY9zp+iWePDqBMVbrhNkISuTKr+A57QfSM9pPEYc+0K9UxcwKPzCrSHW2UPcYnjL3FtdVgj2HwOXL3LZbMpw+oZRF6qzEVVcdPoy1oRwReH6UWFGp+6sTEoboKp7Gu096cl71twl9B3sv1ScHVDxlO8ccCraMEM+gs/tPz2Eytc5XyoA== 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=oZqcZRY8VNcd18uPIKuAh5I+0rnteUwv8wMyHXRe2NU=; b=Gud5qrtv5LZMZQDcyEOkfeU1ORAQZ3sbXRJhUAdVcIKGP77OBzYU0EMRF/8iXzRNfGD98K6Gl2vnrHzCvEag45BfnUBXsmNSj+mYHlPgaaQsPVpthm8KQbOaed1ResAIzuCVoyUiQk4liNJg9mNaicVkhgV3gEV2sJqqb7vlfEX84YcNcvuTa1TaCgCrJwJc6glBorDPJ9y7eQHG1HPGUI7Th+amw74xVJ6KyqPQmjW1wDXCM8tdDtQwkFzDGcLXvko12/RYL09y9YYjrkl7rN9VjNRQlQ0gAKzK2OleBgJasbEkxhNHs1m1DnCqAQNw+RotzZI92O/hm5RDbhtDKw== 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 Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from VI1PR0402MB3503.eurprd04.prod.outlook.com (2603:10a6:803:d::26) by AM0PR04MB5716.eurprd04.prod.outlook.com (2603:10a6:208:128::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5227.23; Wed, 11 May 2022 12:17:56 +0000 Received: from VI1PR0402MB3503.eurprd04.prod.outlook.com ([fe80::b5c8:f15:91fb:33f7]) by VI1PR0402MB3503.eurprd04.prod.outlook.com ([fe80::b5c8:f15:91fb:33f7%6]) with mapi id 15.20.5227.023; Wed, 11 May 2022 12:17:56 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v2 2/5] mptcp: add redundant subflows support Date: Wed, 11 May 2022 20:17:42 +0800 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI2PR01CA0023.apcprd01.prod.exchangelabs.com (2603:1096:4:192::17) To VI1PR0402MB3503.eurprd04.prod.outlook.com (2603:10a6:803:d::26) 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: d0d79bfa-817c-4fbb-902f-08da334847f5 X-MS-TrafficTypeDiagnostic: AM0PR04MB5716: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: ts2Hdhzt4U/bWuDqqYNqi8+GvfqRZ+zNQR5HCI/490ggAAizbZ9r5dce0BhczUP84icMNm1uRyy7Q0EgmCBRk3zZlHyCWxB6OvThjbTnf31YLrkEYhMLPXRMoBnLdcsdGgYOKi1TX5CByBEQ46oLBi88ksemaCHTiwfiiWywz973TMe7Xa0Uxxv5c13DyaEz0WpOcJXslNzHdFFefa9+omUTDjhyIQS+49FharnpfNTmBwj3u8tHEgaFkSYXXCxK5EV+SsquwwzXsx8+7d0pB/5l72axyVM7GNpbPPWs4zn4wK0UhlR+J9UT2tgwsg9kCbc9jHhQIZemco5M98gdKlcDUbsa+MKEp7Jq7zsm7BlYZvF7yWTvfEKIov5PubuUjPrTKuZdYsZ2Hv/BXIbZtvsLMIzuMxAEFI5SJBvk3UuHARNSY6TBaJEWFDUosRGZ0fgEM+ST9LJHgrjC3AX+KOpFclwS43ozthBbtbvACK7om19r0uSFpTTX99ZNkD7nLSm5JFh+XMeLLgfaWuw1OadIGIFn/h76WVLdd+VK3/GwEY/naF/lOnDd3sPtio/mG+oTBK//wL9mYbnX3rXFnaWUxSRt0pVPoGnLtWqv4e1FK487DArw5sSN1m6xXw+nxp9tZEwQLd/lvADIbKuhwJCNHDcxSFiUjIay9+/NbPeOrA2WEDOJQghe6uCxweUPtIg+1jXn+8kPXhuzGK4FQA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR0402MB3503.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(66556008)(8676002)(6512007)(6916009)(316002)(66476007)(4326008)(38100700002)(66946007)(26005)(83380400001)(5660300002)(6666004)(186003)(6506007)(2906002)(508600001)(107886003)(2616005)(6486002)(44832011)(36756003)(86362001)(8936002)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?b8YrJ89tzchCeQ3bFRjedjt0M+2hNs8m2dc5lfrnUedcN6i5/fJYPDSt975y?= =?us-ascii?Q?emYgI1vs8Y7YTsdIjDPmbguoeZZ5YAZ6xMU6jS6abk5izu2QKbrl9aorrrX3?= =?us-ascii?Q?h3ND9AGMyTnnsA+RTC7Cv/blymiZsvJfiIfUz1o7ajZDto0NVWIKi3kCSFw6?= =?us-ascii?Q?BNSHJB+mp3vTvCf8DskWLo9hXVGlhVKvKeowvIsITaXENMxxMSxgLkofZIp2?= =?us-ascii?Q?m9rDgX1CmO7JvD1UHg9c0kpYMxQzK41zmjwbfY05gUCgnLnvO3mFEdt+dpUs?= =?us-ascii?Q?LgSigJQohFNe9i7n/9I6x+u7chQYXrFV2p5cxcR58hj/ArKLXTtDNtWgXzoX?= =?us-ascii?Q?FxKQsdCV+CDnA/o2FEncx/3HnrOKQIDd23Mo3K0OhyfvGT6bvvcxJFUEDOQy?= =?us-ascii?Q?mQcVak2tTMQ0zpanYrI4b4LkA/CPRVXPXeSwfRyYVtLUIaCY0jBzdifH+qBe?= =?us-ascii?Q?DAb2dK6NHeyt3HpqfA7N2tWdKWRIMN5oGmFhEbawF8aoX1vFg5AK7O37PSdq?= =?us-ascii?Q?H3WJJfm24I47yd1zbHPyG1sKTX21evq/HTqtUUtpmjZY1ap7GIK2H8rHUabu?= =?us-ascii?Q?Q5PJNrT8rakcOxuNW+sdNReNi0OOCazj9jXwY95EqsxN0ZE5fIedz1Tv/2bh?= =?us-ascii?Q?GsnvpyzOL02/tfXz5+LLTR6HbnmOpPaVp/VVuJeFp2nXJoTBx+O7Yp8x5Su7?= =?us-ascii?Q?9gTgn+y6jmS/hflzMHHAveKJP55BSLnKF1whcUtZnZv7BNM/q9XeTTwLSK+n?= =?us-ascii?Q?vfr/nrSbi9jmr4tEm7viDQiGVyDV3DuLkFCdiXdg5RtPdx6F0LMJTcwqrtqi?= =?us-ascii?Q?8M0xzBNAA63I5AM5BOAxGUAzlzoQQQ8oo/PzdcK2A8URErGCGTnZYU1bUJnC?= =?us-ascii?Q?A+xDYyLdgNnGSXG6CSIye2u8bhGaB9TqjipwRgjqZTfJChIxd/VFN/2QNASW?= =?us-ascii?Q?xxQbwgIJvbQw4rvYWTHsv740Uy2qkKzh4MiefKonZPO97ikwnCTQw6KUnzXL?= =?us-ascii?Q?KyZaZ6xUD6jX90bR6p6JIybZuFoFPAeCl2iwGz4JLe6o+r1GPCn4w8EkvIoX?= =?us-ascii?Q?lE3xm6kyzTp1E9CiYO0oYT5hRR18zkmID8WokCfoDnPFrD/Cdr5oiYYsLKVw?= =?us-ascii?Q?r/Dv5x5xfea+zTONjnYj1aBx2Kxfqwiv9zpOa3c+RCG1yrRpyBnjm+SzqDhM?= =?us-ascii?Q?eaeVXrhD6YravKVMxvdCegzvU3YXM4wRB8pLDxN0p3+YlCeFi9+wGQyiQrD8?= =?us-ascii?Q?qYndxbCodo7Hm99uF7Nn3MtaDv2BaGNVJY9KJ7ndO4WFJXGywnUduokH/qEN?= =?us-ascii?Q?iVZIPKOEuCHnOGwCRmkTsUkXPRz3mP1kgm/yxz6nYBVmZTxByPyTkJgffsAR?= =?us-ascii?Q?sJEuoCCN8BTi6IK4eazgx8Gz3/eTO7iQSpRHAxCXWgT57BskEbYsuHC5Yqyv?= =?us-ascii?Q?LCfT7pG/gyCy80n4SD3HMynGk26FNWvHV3NDOGkbe5aL1yxZFQjbOGjwPeZ5?= =?us-ascii?Q?iI7TIh+c8MmqOlWgISgroSU4JAs63KY+mW4e5tmABC3T8HWMWTm3QkO/Ipmk?= =?us-ascii?Q?hNdW6g6RNUT4Y/ZDo0hnkBjS+Uc8UaYkhWJhd81pvyvPzpQQVEGTR0aIt8qs?= =?us-ascii?Q?MPoAJMr1piU8DPE2AfL9yTtzPzHb/mKqfP2NUgA/kQRnHTprmsbEyPNHwIdd?= =?us-ascii?Q?wdWmBIIJwSFZF+lHXF7I+6xhZH8pplzh0xcbGnI6Gtuyd1CeuVvfeCGeyw3W?= =?us-ascii?Q?P2O8cha+OjRxx6awC1KVCKIqsCbc7KY=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: d0d79bfa-817c-4fbb-902f-08da334847f5 X-MS-Exchange-CrossTenant-AuthSource: VI1PR0402MB3503.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2022 12:17:56.6627 (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: cb9LWyDf+LdfKvz3o8/XMceJeRqVYIOIIbI1R+WcOAuQiCNr1t2ZOzCyz8lNdrznCpvyxJjRj03vMQe5ZvuPGg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB5716 Content-Type: text/plain; charset="utf-8" This patch adds the redundant subflows support, sending all packets redundantly on all available subflows. Signed-off-by: Geliang Tang --- net/mptcp/protocol.c | 40 ++++++++++++++++++++++++++++------------ 1 file changed, 28 insertions(+), 12 deletions(-) diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 74dc832a9d9d..1105c8ad670f 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -1559,6 +1559,7 @@ void __mptcp_push_pending(struct sock *sk, unsigned i= nt flags) struct mptcp_data_frag *dfrag; int len, copied =3D 0; bool call_again; + int max =3D 0; =20 while ((dfrag =3D mptcp_send_head(sk))) { info.sent =3D dfrag->already_sent; @@ -1586,18 +1587,25 @@ void __mptcp_push_pending(struct sock *sk, unsigned= int flags) lock_sock(ssk); =20 ret =3D mptcp_sendmsg_frag(sk, ssk, dfrag, &info); - if (ret <=3D 0) { + if (ret <=3D 0 && !call_again) { mptcp_push_release(ssk, &info); goto out; } =20 - info.sent +=3D ret; - copied +=3D ret; - len -=3D ret; + if (ret > max) + max =3D ret; =20 - mptcp_update_post_push(msk, dfrag, ret); + if (!call_again) { + info.sent +=3D max; + copied +=3D max; + len -=3D max; + + mptcp_update_post_push(msk, dfrag, max); + max =3D 0; + } } - WRITE_ONCE(msk->first_pending, mptcp_send_next(sk)); + if (!call_again) + WRITE_ONCE(msk->first_pending, mptcp_send_next(sk)); } =20 /* at this point we held the socket lock for the last subflow we used */ @@ -1623,6 +1631,7 @@ static void __mptcp_subflow_push_pending(struct sock = *sk, struct sock *ssk) struct sock *xmit_ssk; int len, copied =3D 0; bool first =3D true; + int max =3D 0; =20 info.flags =3D 0; while ((dfrag =3D mptcp_send_head(sk))) { @@ -1646,17 +1655,24 @@ static void __mptcp_subflow_push_pending(struct soc= k *sk, struct sock *ssk) } =20 ret =3D mptcp_sendmsg_frag(sk, ssk, dfrag, &info); - if (ret <=3D 0) + if (ret <=3D 0 && !call_again) goto out; =20 - info.sent +=3D ret; - copied +=3D ret; - len -=3D ret; + if (ret > max) + max =3D ret; + first =3D false; + if (!call_again) { + info.sent +=3D max; + copied +=3D max; + len -=3D max; =20 - mptcp_update_post_push(msk, dfrag, ret); + mptcp_update_post_push(msk, dfrag, max); + max =3D 0; + } } - WRITE_ONCE(msk->first_pending, mptcp_send_next(sk)); + if (!call_again) + WRITE_ONCE(msk->first_pending, mptcp_send_next(sk)); } =20 out: --=20 2.34.1 From nobody Tue May 7 01:08:50 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6a06:869:b0:4b8:7781:bd2f with SMTP id d41csp4249993pis; Wed, 11 May 2022 05:18:12 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzNZ0eAsRT8/7G7gLWnhcyRCJBo1ovyzFOqgJy5pHtjtRAwPpGxQSoWZTYEUTJkULaAr1Ma X-Received: by 2002:a17:907:3f8e:b0:6f4:4723:4185 with SMTP id hr14-20020a1709073f8e00b006f447234185mr24156806ejc.359.1652271492533; Wed, 11 May 2022 05:18:12 -0700 (PDT) Return-Path: Received: from da.mirrors.kernel.org (da.mirrors.kernel.org. [2604:1380:4040:4f00::1]) by mx.google.com with ESMTPS id y13-20020a056402440d00b00427d059cf07si2495349eda.516.2022.05.11.05.18.12 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 11 May 2022 05:18:12 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-5252-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:4040:4f00::1 as permitted sender) client-ip=2604:1380:4040:4f00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b=GZgWrBSR; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-5252-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:4040:4f00::1 as permitted sender) smtp.mailfrom="mptcp+bounces-5252-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 09A402E0A0B for ; Wed, 11 May 2022 12:18:11 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 8B74128F6; Wed, 11 May 2022 12:18:09 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.102]) (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 A2C4A28F3 for ; Wed, 11 May 2022 12:18:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1652271485; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=z6KxwViq407XjpBYg/2MwokLSnXeuG3YAotgrsXNM5g=; b=GZgWrBSRRHgIt6X+v+89jwj7hWRX3pgKwDZsZ+5420LtaEMuhHUXouSSeXkIsEGKiCOZmy 5AGpcCmpoC0EVAosiyQDsK/17xcMYV+PPp3aqGWUVROVj3XFCcDFTKLd54nycsd5srIOqX 0xIwGxO9Xwi5X1ck+KEThemrlLIkJmI= Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05lp2108.outbound.protection.outlook.com [104.47.17.108]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-23-1z1J5_meO3SToN-1I5XqdA-1; Wed, 11 May 2022 14:18:04 +0200 X-MC-Unique: 1z1J5_meO3SToN-1I5XqdA-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eBnhy8hVnM3gTFX5oBvM80fq2AXho+2CooPkVgU4+viEhtgaGIlXjZ4D9hxD+eRdpD1TrYT6bADM3elFI+q/oCLiof/eUniDU7B02MjPd9GvzchmC1Ka5tSWhA+Qv819BRGHpubtXqaqSq0UyCRPoGz+xC0ueDd3V0ziZZzJqd23PVRI23YtsK4enfyMLT/dmlyPYA6hBwMMdgBtgy/I9v8Bu0Fdnrnlf27QzpHr/K5f/Kz4IGoArQgGrebGhcZro5FdtATSc/peuj3UZW8K1XsIcHPU9WLdF1Jin2x/l8aoLS4GjIuCpz8fPnW7q2poglSzYoqUEbkwnIKWljZWvQ== 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=pEN+3zzLFXFsufRVMN+l26WgI2vygNtX+FYhUk9FO/o=; b=QesRH24UGGmmewYWjL2jsxb9XVW5JxBDa/w1WCbPiSGepaJRaC50seIZMPzqpo+R7nK1PkHuO7cuAhpOajbTUYNv1JD/FluEe5r9VhTuSAk6tlRCtkDW/TAhckJCzMYujsk6WDUxaTPZGyGRE1sTAzcjqRE9L8pIYVxjuUD4021pyvbFNbnJlaTHlE+YLKfyN9tV2ijM1kmlaqa+Jk99tiy5gf0ZVeMmk1/nbeqMWYFpBlQmdR/fBruMReRqfsFDABTy2ecPHYN/EgzFzn/xDfnoKUkak76feACUG4FC5hAYuAPq6CJvQtl5/34YsgsFkM2JzFpbONViUzAHMzc+gw== 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 Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from VI1PR0402MB3503.eurprd04.prod.outlook.com (2603:10a6:803:d::26) by AM0PR04MB5716.eurprd04.prod.outlook.com (2603:10a6:208:128::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5227.23; Wed, 11 May 2022 12:18:03 +0000 Received: from VI1PR0402MB3503.eurprd04.prod.outlook.com ([fe80::b5c8:f15:91fb:33f7]) by VI1PR0402MB3503.eurprd04.prod.outlook.com ([fe80::b5c8:f15:91fb:33f7%6]) with mapi id 15.20.5227.023; Wed, 11 May 2022 12:18:03 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v2 3/5] mptcp: add call_again flag in mptcp_sched_ops Date: Wed, 11 May 2022 20:17:43 +0800 Message-ID: <567c3b16d4058a9ddad6ee743b3d9887ea77fb68.1652271034.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI2PR01CA0009.apcprd01.prod.exchangelabs.com (2603:1096:4:191::18) To VI1PR0402MB3503.eurprd04.prod.outlook.com (2603:10a6:803:d::26) 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: 67fcb6e2-646f-42e7-894b-08da33484c0e X-MS-TrafficTypeDiagnostic: AM0PR04MB5716: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: kqd1XTg1xImzg908kyoOTJ1hiTT8cfe9F5RGZ5JeDkcPp5CcDD1wtGU/So/EfKiMiZUU/Q1mjvs4oZ1/cb7ZVeEkhx11V1OMFlS1swo+IzQ86fW0cktAZ4kAXBLhQkfR+qm2NxvPndrYAJ48CMzS75zTVLY3LBVT3BUXa34bQsajGBYScxcQWIvGGelIw3h7meTMrxXChdeQia8E1s0KoHmdhYqoEIsxsjswrgo+zbTemxXOOKx2DBTS5LL3wMKQikitWvqQyeAPY5b+Qt0gLRZjSvdU4rneu6apiNK1hSr6anyuhrUBAIXhN7ovu+MJeS6j++shjh9Z2EYsuL2wf6J4w8AVxxbRHcjpnt+xz2q668r9fOKudzbqYYwD3q0N05ytPVWP6DDXY408Rh/++sFvBmvz1nhpix4fnKh+yQNdNWMb8Pg99TGy4pXbEFYlEnAkQggD7NpD8XT0lal/8YdUoRa6T+1nlmLI8mVrXNzIRfZm8JInJo9GNwInNCGS+8guG9MKEYUNzMsv5ObGEEaAc1cdSsWXqtZtfI6H7OLb+1uVjIsR/dEHC/chfx96q+Qq+U/SZdYD1cIK7Q0zhrMDyjStu3lrbhca0QAFFmJOKJIJYjdsmXn8z1b4fnfGKuS3tRcZXneX/wFiu0G0lAdsR4FrS9xcG/REBMLRljpXRdXNnuaJJZnkdvw6HzF3I+DwjfF7wsUc4hPQDex4+g== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR0402MB3503.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(66556008)(8676002)(6512007)(6916009)(316002)(66476007)(4326008)(38100700002)(66946007)(26005)(83380400001)(5660300002)(6666004)(186003)(6506007)(2906002)(508600001)(107886003)(2616005)(6486002)(44832011)(36756003)(86362001)(8936002)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?RpgLKziXzEBHDxMsBW+F8TSZmsTmrGuAp6UO1h2kTmY1DIEv45KklvjaWQHU?= =?us-ascii?Q?HH9x/AvIqiwkKGFhWHqDiccQq1dywUxpQjf1IHS4ZbiQSVCqiH5dYAM/TGt6?= =?us-ascii?Q?KCMagKjrozTP255HsO9dFrux493dJB9if9RJjBdpNcSykhfSmCTZEy0P+Umd?= =?us-ascii?Q?PpA/upwkB8QtQs4c/oL5E2tdCANVQlSJ1ZS3MOwC3sUWYmgcZMdzUOty20f3?= =?us-ascii?Q?NEXnJ3ZtqTII/Qe4r9oOA/v818FnwLrXUPufOOHZ+htCFKzjQMq21u4GPmyu?= =?us-ascii?Q?lXkkiEKPyGRgtqCKKgC52zYtBxxY4uBSjGyC7FRH4gWFmP0LZ9l/WGjItZ11?= =?us-ascii?Q?plq1rzlXQLfK6xHRElPSCDz/7zpQFr3clu3S38863wy34VRt5+uyr6VYZ+RF?= =?us-ascii?Q?JNb1RvTqSa22NjDYsQWpZEqHDyReHh0A0esgY9VUYYpfOpsgTDjN8mftO7Or?= =?us-ascii?Q?u/1GdqdUi/aVvJeHHNzg6whr914arNgkAfXiJiarBrLr29XabtdtSkKUKIAL?= =?us-ascii?Q?Q/tMDjhr8FL7tY64n+qsXaDkIPx1OE1iNgdQOkex/79cCLlfom7+6JoXkf0z?= =?us-ascii?Q?e9BFsNRWoBEgNfa10i2xoUdcej+PnkVKUOsMa8SWHcNbP4IAxxpfj5FYmB3C?= =?us-ascii?Q?4zEKbY5sz9LAOeTRxx0wzW0nT0Ith/11oQPwvsbu0zg21kJHpiKML5qdRq1V?= =?us-ascii?Q?tMz49wwWKJ/mGkHQLHLzh7iLOdg9CYG9G0ncMrUPTEAS6T9iCmC4mSb1lKEA?= =?us-ascii?Q?oGyu0oF1zJprkkUoIlrw/c5JWh4Ajwx0cDQm2VpsDFFz8MyStxZM6WoHlFGw?= =?us-ascii?Q?diD2PN0adwM7YAB8WujIVdHOoNEy3rXW7wDU/Viy4PcmxtIrx19ESRvIF2bs?= =?us-ascii?Q?tjoQLlBNIj+uxQ2u89TxDFUOVHwcTbWopWvFHC1kWaVMZLB3VjHi5cDJGYfP?= =?us-ascii?Q?1QHkT1H4cWjfHciQqdt4OIqA80aROSfFUgn5VYWjiz8d/3NKMp26FbIMqjt6?= =?us-ascii?Q?YnamLZF6lM+q56803jYCp11QcxDMzNYUZKAb51grTmlA/mTqWBylscSK9Fs8?= =?us-ascii?Q?6SLT8ld9RQz1xmlV56ieAvnSzQyl67/TnG7B2cEYcybZZT9aMtTslwseavjw?= =?us-ascii?Q?Bmoy/U/v9VwJZdCNWPT9Blb3zTSb5GejQW/ZUO4xS6DQNy3FIGv9yw37lXLU?= =?us-ascii?Q?6t1bTAu/9NpRAi+WLV4+GsVByJ3x5HLCg/hnd2TwiJ9IRDnPQuT0jSCFXyOZ?= =?us-ascii?Q?IILSiryqMEGuPF/yr/A9AkBXE/AyeWvyBPDGkHmQy7hJph/sH4c+gfDDt+Sj?= =?us-ascii?Q?1oJjZ0+1CNlAkXfe0l/F/K9D3YwnTn0RHMpuS5toSvs1eXjaiuM/m5Z7pL3j?= =?us-ascii?Q?B2cf8GjugelIJC2JGaEeUsBtEiauUcTsIrFnrbvuOTcVAXZhmlwwTFyyKSwp?= =?us-ascii?Q?6r0TEQwQhIHC5XkbTm1/YIcPMcZr11EaQzL+54btR1wLLYrnQVZ/5p9ocXDn?= =?us-ascii?Q?EJUWYltRmASmBpO58OB6twNETv86B1n3IgOa0L/6qeVGADAvIXeSVVZHqw5n?= =?us-ascii?Q?nlNy/vi2Ik8Ch81RC2raFu+vC/18u/bzpAtRpYilwhW5w7j8StIcll69xXb1?= =?us-ascii?Q?SIC5z3tk6aZLwvlpHJ5/nCnXL6khQxw6mrKDDxmYm/r8VULQZrUCIa3/JFdQ?= =?us-ascii?Q?5FZiw039uKXVBkaHyt5BsbAdSZURCpaSZNiqsPdkgskLobrnJavvkGgojr95?= =?us-ascii?Q?MWvbfagmsMAMuV8L+9jymesF50kVFho=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 67fcb6e2-646f-42e7-894b-08da33484c0e X-MS-Exchange-CrossTenant-AuthSource: VI1PR0402MB3503.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2022 12:18:03.4591 (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: JblhKHb17z6uijGDGp2YlIPUgflCSicUPtqSV+FsgDFpXlOfSGTViqHwYPMXoo9Vy3X8PjWIk2MQ9HQrX0RZtA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB5716 Content-Type: text/plain; charset="utf-8" This patch adds call_again flag in struct mptcp_sched_ops, init it as true. Set it to false when the scheduler set call_again =3D true over MPTCP_SUBFLOWS_MAX times to avoid infinite loops. Signed-off-by: Geliang Tang --- include/net/mptcp.h | 1 + net/mptcp/protocol.c | 21 +++++++++++++++------ net/mptcp/sched.c | 1 + 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/include/net/mptcp.h b/include/net/mptcp.h index d48c66de8466..8c9991ef591a 100644 --- a/include/net/mptcp.h +++ b/include/net/mptcp.h @@ -112,6 +112,7 @@ struct mptcp_sched_ops { char name[MPTCP_SCHED_NAME_MAX]; struct module *owner; struct list_head list; + bool call_again; =20 void (*init)(const struct mptcp_sock *msk); void (*release)(const struct mptcp_sock *msk); diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c index 1105c8ad670f..9c1ebd7a507e 100644 --- a/net/mptcp/protocol.c +++ b/net/mptcp/protocol.c @@ -1560,6 +1560,7 @@ void __mptcp_push_pending(struct sock *sk, unsigned i= nt flags) int len, copied =3D 0; bool call_again; int max =3D 0; + int nr =3D 0; =20 while ((dfrag =3D mptcp_send_head(sk))) { info.sent =3D dfrag->already_sent; @@ -1587,7 +1588,7 @@ void __mptcp_push_pending(struct sock *sk, unsigned i= nt flags) lock_sock(ssk); =20 ret =3D mptcp_sendmsg_frag(sk, ssk, dfrag, &info); - if (ret <=3D 0 && !call_again) { + if (ret <=3D 0 && (!call_again || !msk->sched->call_again)) { mptcp_push_release(ssk, &info); goto out; } @@ -1595,16 +1596,20 @@ void __mptcp_push_pending(struct sock *sk, unsigned= int flags) if (ret > max) max =3D ret; =20 - if (!call_again) { + if (!call_again || !msk->sched->call_again) { info.sent +=3D max; copied +=3D max; len -=3D max; =20 mptcp_update_post_push(msk, dfrag, max); max =3D 0; + } else if (nr++ >=3D MPTCP_SUBFLOWS_MAX) { + mptcp_push_release(ssk, &info); + WRITE_ONCE(msk->sched->call_again, false); + goto out; } } - if (!call_again) + if (!call_again || !msk->sched->call_again) WRITE_ONCE(msk->first_pending, mptcp_send_next(sk)); } =20 @@ -1632,6 +1637,7 @@ static void __mptcp_subflow_push_pending(struct sock = *sk, struct sock *ssk) int len, copied =3D 0; bool first =3D true; int max =3D 0; + int nr =3D 0; =20 info.flags =3D 0; while ((dfrag =3D mptcp_send_head(sk))) { @@ -1655,23 +1661,26 @@ static void __mptcp_subflow_push_pending(struct soc= k *sk, struct sock *ssk) } =20 ret =3D mptcp_sendmsg_frag(sk, ssk, dfrag, &info); - if (ret <=3D 0 && !call_again) + if (ret <=3D 0 && (!call_again || !msk->sched->call_again)) goto out; =20 if (ret > max) max =3D ret; =20 first =3D false; - if (!call_again) { + if (!call_again || !msk->sched->call_again) { info.sent +=3D max; copied +=3D max; len -=3D max; =20 mptcp_update_post_push(msk, dfrag, max); max =3D 0; + } else if (nr++ >=3D MPTCP_SUBFLOWS_MAX) { + WRITE_ONCE(msk->sched->call_again, false); + goto out; } } - if (!call_again) + if (!call_again || !msk->sched->call_again) WRITE_ONCE(msk->first_pending, mptcp_send_next(sk)); } =20 diff --git a/net/mptcp/sched.c b/net/mptcp/sched.c index 0d5fc96a2ce0..10736c334ab0 100644 --- a/net/mptcp/sched.c +++ b/net/mptcp/sched.c @@ -67,6 +67,7 @@ int mptcp_init_sched(struct mptcp_sock *msk, msk->sched =3D sched; if (msk->sched->init) msk->sched->init(msk); + WRITE_ONCE(msk->sched->call_again, true); =20 pr_debug("sched=3D%s", msk->sched->name); =20 --=20 2.34.1 From nobody Tue May 7 01:08:50 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6a06:869:b0:4b8:7781:bd2f with SMTP id d41csp4250028pis; Wed, 11 May 2022 05:18:16 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwGYBbnsTxFXVcZZny72JXt034VHiDKesdh5DX5fkaiiByvUR8gF/Me4TcXeRNulm7HezVz X-Received: by 2002:a17:90a:1509:b0:1d9:44a9:28c7 with SMTP id l9-20020a17090a150900b001d944a928c7mr5130875pja.89.1652271496538; Wed, 11 May 2022 05:18:16 -0700 (PDT) Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id 185-20020a6300c2000000b003c6b7cdb7c8si2699362pga.670.2022.05.11.05.18.16 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 11 May 2022 05:18:16 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-5253-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:45e3:2400::1 as permitted sender) client-ip=2604:1380:45e3:2400::1; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=mimecast20200619 header.b=emyGTRpL; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-5253-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="mptcp+bounces-5253-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 2FB2F280BDF for ; Wed, 11 May 2022 12:18:16 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 4879228F6; Wed, 11 May 2022 12:18:15 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.109.102]) (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 CAB6C28F3 for ; Wed, 11 May 2022 12:18:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1652271491; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=i4Pu8vTlD18Oma7+ixgjVcsorCuMmBQdq4o1zV5XsKI=; b=emyGTRpLa4dOb/ED4D8j8GV3h63ebz8E0TT7Nfd7heolQBVhcwApnPKTzndN2hzh28QrOq ICrlJjJFfWhiHw3xqmNryGhl8ILx3TuSmqRdbDYEOZt9IQR8bMBIJlozxbw0dGZFYxx1Ot YtSiwKu0CG/a7w13Trl7PVJQPq4i2sk= Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05lp2111.outbound.protection.outlook.com [104.47.17.111]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-9--osboKs5MVqwR9pntjilZg-1; Wed, 11 May 2022 14:18:10 +0200 X-MC-Unique: -osboKs5MVqwR9pntjilZg-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Zx7Gb1X0rW8bPrxk5USkPj62xFBHUaz5oRSDR52i41jitav0AMlfrVXqZYEUSwVtOjvU0TrigcNrK876qsmoOt+hVOrTM+HFJGjc223r0a0Men28r6sT73cOjqvYhyxv/KpUcpijAHBDGsBaO5u79uFQ9Z9K8lf1jZVvrqH9anqA0FGdWSae2o5kP4uxxiGZXeXi0aXSRWn2EjwQkW3TO6XCfALvMsQSnqxvoLSO4rMrcJu11nfvbF3c5OmgChV1IW+8gRzjSeXNdEthqYj4M4JY8yFzp61i3pBFJa6wYB3tuhc0Fmndwo8zzzbWtwRGoI/+63ZPmkMn8bAvu5dDBQ== 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=c6Z9aVh8Xcv2DIh+yS5PrU5Z+TOdnbREVPtk1Ai1UKo=; b=MKPW0q8nyzViVF8IsydOXNEfDVgbzOkK+FCXM0UiIAZl24vWg088YuISS1rjoz7wHCUGy6tTG7m0NP4KmaTxhQV6AqhlYFsejAAQ9jXZNI3fA0VjIXOlQjbn8+n8ECAvEaxfsKE0tyMvsOA8M2YaJ9GbomiIrGG+7pDjcipKEnH4cQAT9TaBG6xF6aYrnOEIGMK7RHVpVugcEE0eUq8dWR2AJbHtW/7v5O5IVYi5DPoj82IEQH8w40/Je0k3gtTIjkt3Rm/UKOp/93m5i2sueLxycfndbIGQc+N5UCk4bWhwyNVNMIhBoDDkZjNmbwKF3TsCS2+TcpGwj5tI97S5Fw== 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 Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from VI1PR0402MB3503.eurprd04.prod.outlook.com (2603:10a6:803:d::26) by AM0PR04MB5716.eurprd04.prod.outlook.com (2603:10a6:208:128::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5227.23; Wed, 11 May 2022 12:18:09 +0000 Received: from VI1PR0402MB3503.eurprd04.prod.outlook.com ([fe80::b5c8:f15:91fb:33f7]) by VI1PR0402MB3503.eurprd04.prod.outlook.com ([fe80::b5c8:f15:91fb:33f7%6]) with mapi id 15.20.5227.023; Wed, 11 May 2022 12:18:09 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v2 4/5] selftests/bpf: add bpf_red scheduler Date: Wed, 11 May 2022 20:17:44 +0800 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI2PR01CA0004.apcprd01.prod.exchangelabs.com (2603:1096:4:191::22) To VI1PR0402MB3503.eurprd04.prod.outlook.com (2603:10a6:803:d::26) 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: 3bd226bb-4493-4827-136c-08da33484fb5 X-MS-TrafficTypeDiagnostic: AM0PR04MB5716: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: +ChWkld1P0S6XM/+N9bmSWQ1Wlf+86qSmN1m3RogR7UtqV8xI0kRI23MT/4WcEiCoM+QSSRuGUSgZtPp7PAwynRHPc+n9YDgMphg8/xG3uSV6fxKTYiAVWmlkcvkzUpozUh46K4PKtezBYG3g4FbUgZWeNExayuse5IpihaX+MYOhLDaiHhJYxaiDZ9A2boqOErJGZzCRpP3afQvlQw+r6qqgZaWv6UuRca3OiCQUwjgUtQ1NbvVIh1mRtTGlI0Mc3AMNJOKZd/86WTaD9hwFKy/+nzJLKB+CJtmvYC16cIbFosdXQhktKhEa3zeYkiFEZFli0j6KsFk27RjsPR5brBrZKC4lnzjeSwAo2p+OhqoLL/hiY9hfA7s+9xeVScCcU8AfuWCT6wLIuNV6BP4Ac6mR8VY3KCEMpSYxjEh+y36nxnEfG6lEHuWXidU6uCDsZMFEo1YOPofG8ZU0hXFi71vuSuCM4huSDsBatonQCPjIKW/HZRPOpex4Vzz4w4bGwqwkXMH7fHtErPfLckzBuJjjie/+x/fnchdiF+BI/8dAFSOlxoyGlPfSth153AYLhd48NyMhagJb2kLqQp+FvzTtXBsyUCJtutpylc+vhm8L9KN3QtQ3AoRgyyQoFW/ITMCEWc83VH79QSSiexdMohZ0ZQYIBPzguEdS2u6DqE2xc2i4LgNvmW0URUSHleHbCkCS4LKnLNMQwURzLqT5A== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR0402MB3503.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(66556008)(8676002)(6512007)(6916009)(316002)(66476007)(4326008)(38100700002)(66946007)(26005)(5660300002)(6666004)(186003)(6506007)(2906002)(508600001)(107886003)(2616005)(6486002)(44832011)(36756003)(86362001)(8936002)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?xcQwKGwum4f3w6xvvcP5R+lOYGxJeCBj6DVGtmAFZK2PI+vhrh+44Vlbw0Nz?= =?us-ascii?Q?aoQ+Oam/za13TqildaOwHCSVI4dq33ImDuZtF+YkJxbMjQKMPUP6S0fuSX89?= =?us-ascii?Q?sjZBA+zI6G/hM4Y1EMmZZ1JOjMMxlhwXB1HYDhIkbv/HoZfFr2ZW0yk9xFz1?= =?us-ascii?Q?m0k21du0OzADQ/iIwSOguKH/PyXqLqda9iURw8Kw2giiBkgqksLh8yomiM6s?= =?us-ascii?Q?c0EmWsRwN5zAc+wPWxRBZs4akNRRXYEW0/0BcaWRFpS1Cr0+7EWrbdpicTn0?= =?us-ascii?Q?2ktwrpe1quQvy5tg3f2Z7XDBz7bblE/DIKKTefh2iIxMp5yBigh0VFBTWbI0?= =?us-ascii?Q?lywPwKvB1RoRypXLH5ajzxFV2Rfzic5mhc+6YLcPvF46AUI8nB3tWqeBhAYD?= =?us-ascii?Q?wCdGIqyWPOGbNCYPQtlUj/nuZRy2GH17d9Qd0HOEVYpLimZni3T2/w+263Kh?= =?us-ascii?Q?lxO5YP25gnTQAycwMCq5z2UUCfl/2bJ+MygjNvO7trAGrJjn9PyDLRdq/SZ0?= =?us-ascii?Q?5mXhAn3ITNTANV1qDXJmvJiH2RaQ1HF85zDK6Xsjoji+/rbc0/+FU9kzERnO?= =?us-ascii?Q?T/A8zk/HavnQ/VxhREDyUSxIHdO98VH1YVDqdYMac0i+SvgqqbILXhoqF2Dl?= =?us-ascii?Q?vrMp0KZ2Eklm5nijIJbg3ffI9K+h0SVla0Ikq4Oa+sOgd5kQZodVjHg7wuWc?= =?us-ascii?Q?PtMIab4RZmuY03ofV7oR0QR/PETyo3N53utxyDT4bx9Gk+S/FfVvS8SPOH0p?= =?us-ascii?Q?auNU7+Hu7iR+LTE5MUFA6dLuO2fkIXbh8Ql0SsnmhrrC6wCPYJSrvqWoFhmL?= =?us-ascii?Q?vOxUtgdfV0G/WvFZviIWzuTJ9vaTsvFU6HhVkqNcORmBbe3XH1gxn0euMcpi?= =?us-ascii?Q?xurn7IQ2tKk7REJQeqR/RBV/MWqn0YxDiVvgrwfpH65KRGmto6xjuOC1mgyM?= =?us-ascii?Q?+DgY2TVOJ35rpDawkfDGl9bwF8PxSt1ucNacNaiw812jnT/hxL6nkzCNokLy?= =?us-ascii?Q?vTAlEfgMTKpofpolRugF5Vh21Wx3U0UG5fD3zxDDvlWuZvy7uoaaQfXGdIg+?= =?us-ascii?Q?0m0gsw+KoP+aWYjKKTmFKzU8QaxwdP8ptmVJ/BCREJnKk82kQ4HpsREFjnCQ?= =?us-ascii?Q?5Afl3SeSIUZfVfbxZuHBauX+sIpngwTYwqR5HTtq79zJUW1CQRTn1igfjohz?= =?us-ascii?Q?4OfHYgdlpZJY2FXEmLSeFjc03R0yB8ZW3rXpIKLlUm+A1aNaK4BsUdHZx96E?= =?us-ascii?Q?oWzfHQMztJIL4RU8FBRNTfcED3RRBLac+/vwCOVHGIX9qwXawVxiLOu4h+/C?= =?us-ascii?Q?rc29ZxdCZ3vggjDvOXxLjic5GLeFB6l9iSvYwhRjeCnXEtLtgNWX0j0aXuIx?= =?us-ascii?Q?7K9FyMWFObgiNk8fA0cEHVXzjMzFgteG+YwHidSFGzZ0XXyIpW21LF8ffO0i?= =?us-ascii?Q?og2ifJaZCfnp+8+BIEhNhFVD8rgH5dj4XENzhzURj3tnW8XJr/UpctJ+auR1?= =?us-ascii?Q?yeEIunJ4Gru+0KWEGAs6UmCa+RfVH2eBq4MPywUCwOXcZlW/e64lDXGR4Ewh?= =?us-ascii?Q?rZW36YDgl/jBQAG7468GzsxBO0puJrCB569FAFno3P3V6oBlUNWkrvrzibzx?= =?us-ascii?Q?4sKqnT0H7JbimBZEDOgXmvS8LcmruiVOBUpfIXbKDOxHD8M9fOmx1uv9WUz6?= =?us-ascii?Q?nIjvW5nlXWp+E2C3xsfnjaUjQVubVuUeCUou23MU1PWTdbbzYTjQzntfQPdI?= =?us-ascii?Q?1xiJpJThY9+zZqb+gVufYFT4N2c/baQ=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3bd226bb-4493-4827-136c-08da33484fb5 X-MS-Exchange-CrossTenant-AuthSource: VI1PR0402MB3503.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2022 12:18:09.6619 (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: +KFebqV9SJhXUVuu7MDXf7xPfg1Nhf7GVA4wErDo2Ij3dOL9qyawZeoyW7oGDG7ZAf5zcEOnW5IVReccJ0cKvQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB5716 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 | 54 +++++++++++++++++++ 1 file changed, 54 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..ea006a895cf1 --- /dev/null +++ b/tools/testing/selftests/bpf/progs/mptcp_bpf_red.c @@ -0,0 +1,54 @@ +// 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, + bool reinject, struct mptcp_sched_data *data) +{ + struct sock *ssk =3D data->contexts[0]->tcp_sock; + int i; + + if (reinject) { + data->sock =3D ssk; + data->call_again =3D 0; + return; + } + + for (i =3D 0; i < MPTCP_SUBFLOWS_MAX && i < data->subflows; i++) { + if (!msk->last_snd) + break; + + if (data->contexts[i]->tcp_sock =3D=3D msk->last_snd) { + if (i + 1 =3D=3D MPTCP_SUBFLOWS_MAX || !data->contexts[i + 1]) + break; + + ssk =3D data->contexts[i + 1]->tcp_sock; + break; + } + } + + data->sock =3D ssk; + data->call_again =3D i + 1 =3D=3D data->subflows ? 0 : 1; +} + +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.34.1 From nobody Tue May 7 01:08:50 2024 Delivered-To: wpasupplicant.patchew@gmail.com Received: by 2002:a05:6a06:869:b0:4b8:7781:bd2f with SMTP id d41csp4250110pis; Wed, 11 May 2022 05:18:28 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw6+uFJMnl0IyY/J68FpqN1UpjNBiipUzv8eDk9CamDlFv6vus/Q6fdH+Bwy7Gq5HpIPV/F X-Received: by 2002:a9d:172f:0:b0:606:31ed:5d86 with SMTP id i47-20020a9d172f000000b0060631ed5d86mr9405783ota.266.1652271508757; Wed, 11 May 2022 05:18:28 -0700 (PDT) Return-Path: Received: from da.mirrors.kernel.org (da.mirrors.kernel.org. [139.178.84.19]) by mx.google.com with ESMTPS id y28-20020a9d461c000000b006069585671csi1636576ote.300.2022.05.11.05.18.28 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 11 May 2022 05:18:28 -0700 (PDT) Received-SPF: pass (google.com: domain of mptcp+bounces-5254-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=mimecast20200619 header.b=cFBTtRLv; arc=fail (body hash mismatch); spf=pass (google.com: domain of mptcp+bounces-5254-wpasupplicant.patchew=gmail.com@lists.linux.dev designates 139.178.84.19 as permitted sender) smtp.mailfrom="mptcp+bounces-5254-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 107262E0A01 for ; Wed, 11 May 2022 12:18:28 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id ABF3528F6; Wed, 11 May 2022 12:18:26 +0000 (UTC) X-Original-To: mptcp@lists.linux.dev Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.111.102]) (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 1EFCC28F3 for ; Wed, 11 May 2022 12:18:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1652271503; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=IHj5/kdOTrVpOR0BXpBCCrRj/JAcMQFspS66lZdojSQ=; b=cFBTtRLv8H2IEIQYewnhURApbm2+8/ZSiyRgklrCyr7Nlkfjj2rrQdCkbgNW/+RtUWAes7 BDJtGztNx4h3/kWuhaDyEmb4NKP9vmfQFKPj/10Apa2Q1lf8nX5Tp91gi5/VeAPLYpXdt0 mDP8iWbNNEt6fufSlFhl+rwE523+WjU= Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05lp2172.outbound.protection.outlook.com [104.47.17.172]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-24-77vRF8QnNUm9vFWz4tawGQ-1; Wed, 11 May 2022 14:18:22 +0200 X-MC-Unique: 77vRF8QnNUm9vFWz4tawGQ-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SF0vbbLrEYtt5ySlZUTTvo0O9pelwOukKxhXMmHqCYD6ecmVlg98N029HQJ/fkMoo8dZdDqpvFp0Ulo0nzyGrqloQ+K1/BzoYC1Fqx0lumPoTSggIKRlejVrWDwV/X/nvwhA2Vme59s6XKG3Aosbvr3iH5z2NZ9fLxDKkYra/559hz7J3stuBXTboLqOr8TgjUnmmN05QdSj9KlTsP66p/RoQLywenRS06bBIqsStwA+vh+sfrCZTL8sP8VCamwo2huOV5mLWwRaM9r/5InqhILPPXqeD3efTnadh4hLRdehLVEIn9uqHsQ0XchqJbuVHbvgWwb8lnTQKCMVE6FNnA== 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=rOihhAklSno9eNJ3F+UDdesgolVQUEFBKrOTaQFuRJU=; b=f0Zt2zKaG06owODbUWPMKKlYcbXPLKwS4EUGjRT0V2mxYI5vCZ8RdWk7PVQP17whDgKqNFJgoJDLjt/+8Rcvn58CGL7ffDNCL2XoOZBLTOR8kQ9maAgTzuAXSRe2a7ShibiSxsJ7YXtkrewqDJvT6UmuVGUmOlc6hbDAZKSFbGRESxqWO4SaR5ubp9IT2hW3+k98KORheW4aZUvUvXdNrLUeOgSk61hN+xMeJIzFReW2cuCvP8Ta+653iLUKOsnfsNV+MiY9r/HOPH+bMK/FyM4WpkewkkyvDb/um3DIG9AFGqMQOY1sC2Ygpp35CqUa9YDk6v/RL0Oyiu93aEtH1Q== 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 Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from VI1PR0402MB3503.eurprd04.prod.outlook.com (2603:10a6:803:d::26) by PAXPR04MB9075.eurprd04.prod.outlook.com (2603:10a6:102:229::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5186.21; Wed, 11 May 2022 12:18:21 +0000 Received: from VI1PR0402MB3503.eurprd04.prod.outlook.com ([fe80::b5c8:f15:91fb:33f7]) by VI1PR0402MB3503.eurprd04.prod.outlook.com ([fe80::b5c8:f15:91fb:33f7%6]) with mapi id 15.20.5227.023; Wed, 11 May 2022 12:18:16 +0000 From: Geliang Tang To: mptcp@lists.linux.dev CC: Geliang Tang Subject: [PATCH mptcp-next v2 5/5] selftests/bpf: add bpf_red test Date: Wed, 11 May 2022 20:17:45 +0800 Message-ID: <98009f8c10d2a46ada81b7edbbe99faeadda1e0b.1652271034.git.geliang.tang@suse.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI2PR04CA0003.apcprd04.prod.outlook.com (2603:1096:4:197::23) To VI1PR0402MB3503.eurprd04.prod.outlook.com (2603:10a6:803:d::26) 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: b7c5fdb1-b6b7-47fc-01ca-08da3348533f X-MS-TrafficTypeDiagnostic: PAXPR04MB9075: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: Wyjze0XdrSRO1Oia6qmQ7r8qiz+KPWd5pMbc9VKpruGaYLBtl+XFzlea8u9Nlq9fLCVzBParO/KHIP23kMV1BiELxGUCr3T0L8Y0ZmQN5z6KdK/mysbYwXyBBRgnhBrhPCmn9V3YV0vrE5/4AJbKe4romLx3v5K+HorWgbeDlXszyT1YN2D2fyBxIw1UaADTOOiQ7lz/0b1ARmvatjeLvXcrj5c1ftKTN3CHAmnnxEjXXxfDUhEW60M3D7aezRhNiBFK8R3zCRWkY++K229Kftiiz5Dju0IUaYpnP1zNNUs3ENK1sxw0aISsAP7uTsttwe55I8R6cwT+QKVIKovnV4h+c2J9t/8bkAWUn7RDxHPLwl9DeHhVQ9sDfw5Xr94U4/85rYqakItGhq+NZpULDI8Dtlmr8/X1ORy4LTIhSbclWEafQ1o27JS1xGS8mMglLvaser31mVY0OiEynaMVE2lKY3nS66oWqZ0r1N06t0ziW+bzXOLlmCkGZ+p/1NmPGsiibM8DxcJwtp1uBjKVt7dnThldOxIfnIHeJqA6WlX0vK2aeX6ke3WqfF2lrzL8Yt4+D3+zKjK2wzxeI+AURMVz+4ongA0d+j+7Zh6lzQOM4W2FXlBif98oEF3KMk+YwVdXOu4zdRPewrqVYGrrDgQWNFTk0tZXfWBE7YmgokruI+TPMY/BGIDBfgQInaJy X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR0402MB3503.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(66946007)(6512007)(66556008)(8676002)(26005)(66476007)(2616005)(6916009)(6486002)(6666004)(316002)(107886003)(6506007)(86362001)(83380400001)(508600001)(186003)(38100700002)(36756003)(4326008)(2906002)(44832011)(8936002)(5660300002)(13296009);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?vO04F0RAAxw5V4QuhPvF0wCEJ9j817UhPdlsUWTUXFNaTJusMCQapLf7q1Br?= =?us-ascii?Q?OsB7CuqEiJZ5W7bGx6DUZYWbTUBMqPMnxf8OdOACBE+n0gJjotk1Tult0c3z?= =?us-ascii?Q?qxcG98Ce1Ea9VrdwQ1Pnq1/xnp/gRw62rX1WsS3T8RFhVH/W94OY/PoHvjS/?= =?us-ascii?Q?XBpVfqT6cUfOVFX0eGe1KxqrTo8a2CCw+mHdnDw1xyr6RE4zZmmsWOIj7dbF?= =?us-ascii?Q?6qb75EFYauBHKFeRRBJMXna7vte8kDNEx9TY4sJyjKU8P7nT2mvXR0ULxy7k?= =?us-ascii?Q?rYkrvtgUEvDoVk4u2nPJgsx0/ZxLhWIg37IY3LSajI2g3eyl66WvkToWP676?= =?us-ascii?Q?mrxJk4Jf7CC8qO/LiRJd4UxjdRtRADvPoBx75SWIObY41Exx+ceh761l1ueA?= =?us-ascii?Q?mf8YLCQF7aPQ6vT6YTf6eQIpf5e/5kefhSfiI/hZzFmMsWk61SPiD+dz3Hr9?= =?us-ascii?Q?SlgT4eoUfA2szdGqsVdh+gqcCZBaH7lZvk0g8jffNbDq41ge9ARg9z5tf2Fs?= =?us-ascii?Q?eYasuU7XyaLc5F5I4ZFAWk+XMx6CxQcAWPup0UuYSAVPtrfvDVQ0Ihaz4dXC?= =?us-ascii?Q?as83zbYaYI2/HhkLm0+UokvTkRvGpyMZBSOO21RMLJTbwioB+Iv/iQxzoCvU?= =?us-ascii?Q?zSEN8Tez3fpFyOSqtZUsZGEW6APzaAojurFvTHQ6hBNqObSqKwtmb+jSN5z9?= =?us-ascii?Q?9FEgjA0jDwt46zsWIvwYewYpSzQESW283uF/sUBgItgRceNe6ucj8V1eh5Rq?= =?us-ascii?Q?LB15zPHjY+lkhYDOW5KDS3NQRnotiJuyGol9aJgmU+Cq0jPUoMf27EHGoXcm?= =?us-ascii?Q?qTRzJaOJBv/m+ZtVJ0uVMDDjg6UPQvA4rrQLLcfCQ0xC3f9Oha66bD+l8SMi?= =?us-ascii?Q?XjrmO7jJTNgfIrkzrMvM9vC7H7IoxKmXOAnBhJUi2EeeXiYhmMxCOaxsxS4k?= =?us-ascii?Q?7vCpBng6HeL4Gyw8dDFiPCFUI5+E5Q0x+wD92I0nlNgmK2rR11k4WNaH2xs2?= =?us-ascii?Q?ggKEgHXhFHVaj8cQIGrOueJZIPS/FaIHnuE9tnNgD22UcXhJbqjL4QksQEig?= =?us-ascii?Q?KofL2f9BbbjMXsHW5Zu+V+xyTbkxqeN3wCPPsG5rFBv4p+4Cvjmh9m8XcUSG?= =?us-ascii?Q?ocoiaSUZxfBLHB9j+EIVIEc4+4mWU5DW8ngeWlnjOIYbamfSviPjcRqe3PCX?= =?us-ascii?Q?oC1bprZKOG1Hqrbu5q33kRAgWMcUalOl+ql4Se0qeQONCEGWqocqqS/+KUp7?= =?us-ascii?Q?rtroEQ4KSkXi4mfOOtwGfx3vCjMtOPyACXpwvzvPTmHpR9VoVLdUgFRNxRQ4?= =?us-ascii?Q?GlkLSGDZ4BwRCiPJ244Ej4dSBt77PoWFBqKidmWwD6bZoMB9kQ74Be/s/Tvj?= =?us-ascii?Q?QGXYJ0i4bb2u29hAGkZQq7mp/Dvvi70WuGQ1X6AYEALuYDJQJqOncPYQNqy4?= =?us-ascii?Q?s2lhYEHKs2uqm25g/pp0lb/SSjMCKaowwj5ZDLVJFeBen40qqefgmhVVhOeV?= =?us-ascii?Q?WY4oaIrPetPh77hweQLWunVUK7WjUWKmycGsgz3EWTV6FUXthJbLLdGDzVXF?= =?us-ascii?Q?cB2Gso7Jjk0bS32f9VyybkWFNdzw+eo5cHmPZSuJTxGob9pTjhVxYI5Y8VEU?= =?us-ascii?Q?1FRWDeYuXQ7+JT6K9J84L0W4nO5SK+tB+z7vdRyzYtW3yojKO814UNkbq1KE?= =?us-ascii?Q?Ix2kb4Yth7A2ITcmFNdOq82f9qNJse/c9hGWNdMV2CQv61B7vaOcoHOq8F7v?= =?us-ascii?Q?VNnxHNnpkkzmDGlJBpMkEQNmCx5UiCg=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: b7c5fdb1-b6b7-47fc-01ca-08da3348533f X-MS-Exchange-CrossTenant-AuthSource: VI1PR0402MB3503.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 May 2022 12:18:15.7865 (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: w4Lt1aHHNWg80V0USmBFyMIzL8PGSpqTErD9GOGrwi6iu3K3u342vVJI5P96PnKRrfKCOH0QKSleCO5bsiaF3w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB9075 Content-Type: text/plain; charset="utf-8" This patch adds the redundant BPF MPTCP scheduler test. Use sysctl to set net.mptcp.scheduler to use this sched. Signed-off-by: Geliang Tang --- .../testing/selftests/bpf/prog_tests/mptcp.c | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing= /selftests/bpf/prog_tests/mptcp.c index 6303eba67fab..58300a30f218 100644 --- a/tools/testing/selftests/bpf/prog_tests/mptcp.c +++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c @@ -7,6 +7,7 @@ #include "network_helpers.h" #include "mptcp_bpf_first.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 @@ -405,6 +406,41 @@ 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; + } + + system("ip link add veth1 type veth"); + system("ip addr add 10.0.1.1/24 dev veth1"); + system("ip link set veth1 up"); + system("ip mptcp endpoint add 10.0.1.1 subflow"); + system("sysctl -qw net.mptcp.scheduler=3Dbpf_red"); + server_fd =3D start_mptcp_server(AF_INET, NULL, 0, 0); + client_fd =3D connect_to_mptcp_fd(server_fd, 0); + + send_data(server_fd, client_fd); + + close(client_fd); + close(server_fd); + system("sysctl -qw net.mptcp.scheduler=3Ddefault"); + system("ip mptcp endpoint flush"); + system("ip link del veth1"); + bpf_link__destroy(link); + mptcp_bpf_red__destroy(red_skel); +} + void test_mptcp(void) { if (test__start_subtest("base")) @@ -413,4 +449,6 @@ void test_mptcp(void) test_first(); if (test__start_subtest("rr")) test_rr(); + if (test__start_subtest("red")) + test_red(); } --=20 2.34.1